Pages

Diberdayakan oleh Blogger.

Hakk�mda

Foto Saya
Nini Chen
hi there ! i'm nini. i very love my mom, and very love my daddy ~ i LOVE my family ^^ i have one bro and one sist , i like sleep and eat something delicious :D find me at : facebook : Nini Chen Twitter : @ninichenn
Lihat profil lengkapku

Rabu, 12 Juni 2013

Overview
UP ( Unified Process ) merupakan sebuah metodologi pengembangan perangkat lunak yang dibangun dengan tujuan untuk memudahkan pengontrolan dan meningkatkan kualitas perangkat lunak yang dibangun.UP ini sendiri diperlukan dalam sebuah system agar dapat diimplementasi, diuji, dijalankan, dan dimanage 
 
Implementation
Seluruh aktifivitas yang terjadi dalam implementasi itu sendiri  bersangkutan dengan komponen software dimana dapat diperoleh atau dibangun berdasarkan pada projek tertentu.
Komponen itu sendiri merupakan sebuah modul perangkat lunak yang sudah terpasang dengan lengkap, siap untuk digunakan dan sudah diatur sedemikian rupa sebagai interface untuk menghubungkan client atau bagian lain dalam sebuah system
Setiap komponen dalam suatu system membutuhkan sebuah standart untuk dapat mendeskripsikan bagaimana komponen dapat berinteraksi. Sayangnya, ada beberapa standart interaksi komponen termasuk : Common Object Request Broker Architecture (CORBA), Java 2 Enterprise Edition (J2EE), Common Object Model (COM), dan Simple Object Access Protocol (SOAP)
Pada dasarnya, membangun dan menjalankan software aplikasi modern adalah sebuah proses untuk menentukan standart interaksi komponen, menerapkan class dari sebuah object oriented design (OOD), mempaketkan class-class tersebut ke dalam unit executable unit dengan standart yang telah ditentukan, dan menginstal software aplikasi dengan bantuan hardware dan software infrastructure.

Testing
Testing merupakan sebuah salah satu proses dalam  memeriksa dan mengidentifikasi masalah yang terdapat dalam produk. Untuk dapat melakukan testing, sebelumnya developers sudah harus membangun atau memiliki software dan memiliki standart untuk mengindentifikasi apa yang menyebabkan terjadinya masalah.
Developers dapat melakukan testing software dengan melakukan review pembuatan dengan mendesign dan membangun software, kemudian melakukan ujicoba dan memeriksa hasil dari ujicoba tersebut. Jika ditemukan adanya error, maka developers perlu melakukan developers cycle dengan mendesign, membuat, mengeksekusi, dan melakukan evaluasi sampai error tersebut dapat diatasi.
Berikut adalah aktivitas yang dilakukan dalam testing : 
-Menetapkan dan melakukan unit testing 
-Menetapkan dan melakukan intefration testing 
-Menetapkan dan melakukan usability testing 
-Menetapkan dan melakukan user acceptance testing
Berikut ini adalah type-type dari jenis testing :  
- Unit testing : mengidentifikasi masalah dalam komponen software yang tidak menjalankan fungsi yang seharusnya ketika ditesting secara terpisah 
-  Integration testing : mengindentifikasi masalah dalam komponen software yang tidak menjalan  yang seharusnya ketika dioperasikan bersama dengan komponen lain 
- Usability testing : mengidentifikasi masalah yang terjadi pada rendahnya tingkat kepuasan user dalam menggunakan software 
- User Acceptance testing : mengindentifikasi seluruh jenis masalah yang terjadi
Bagian penting dalam uji pengembangan (developing test) adalah dengan menspesifikasi test case dan test data. Test case itu sendiri adalah sebuah deskripsi formal dari keadaan awal, kemudian satu atau beberapa peristiwa dimana perlu untuk direspon oleh software, sampai respon akhir dari software atau disebut juga sebagai keadaan akhir.
Test data merupakan himpunan dari keadaan awal dan events yang digunakan untuk melakukan test pada sebuah module atau pada keseluruhan system.
Unit testing merupakan proses pengujian metode individu, kelas, atau komponen, sebelum mereka berintegrasi dengan perangkat lunak lain. Tujuan dari unit testing itu sendiri itu adalah untuk mengindentifikasi dan memperbaiki banyak kesalahan yang terjadi sebisa mungkin sebelum digabungkan dengan software unit yang lebih besar.

Berikut adalah dua metode untuk melakukan testing unit secara terpisah : 
- Driver : sebuah method atau class , dikembangkan untuk pengujian unit yang digunakan untuk mensimulasikan perilaku dari sebuah method yang mengirim pesan ke method yang sedang diuji 
- Stub : sebuah method atau class, dikembangkan untuk pengujian unit yang digunakan untuk mensimulasikan perilaku dari sebuah method yang belum ditulis
Integration Testing merupakan proses pengujian evaluasi perilaku dari sebuah kumpulan method atau class.
Usability Testing merupakan proses pengujian untuk menentukan apakah method, class, subsystem, atau system sinkron dengan user requirement : 
- Performance test merupakan sebuah pengujian integrasi dan kegunaan untuk menentukan apakah system atau subsystem dapat sinkron dengan criteria dari time based performance 
- Response time merupakan keinginan atau tunjangan maksimum yang memperbolehkan software untuk dapat meresponse pada query atau update. 
- Troughput merupakan keinginan atau tunjangan minimum dari query dan transaksi yang perlu diproses per menit atau perjam.
User Acceptance Testing merupakan sebuah system pengujian yang digunakan untuk menentukan apakah system tersebut dapat memenuhi keinginan dan memuaskan user. Acceptance testing merupakan prosedur formal yang perlu dilakukan dalam setiap project.

Pihak-pihak yang terlibat dalam Pengujian Software
Programmer : berperan sebagai unit testing dalam source code system
User : berperan sebagai pengguna system dimana system layak digunakan atau tidak
Personil Jaminan Kualitas : berperan sebagai pengembang software dengan menentukan apa yang perlu ditambahkan

Configuration and Change Management
Konfigurasi dan manajemen digunakan ketika sedang dilakukannya aktivitas support implementasi, testing, dan deployment. Konfigurasi dan manajemen mencangkup berbagai kegiatan yang membantu dalam pengontrolan komplektisitas yang terkait dengan pengujian (testing) dan support sebuah system melalui beberapa pengembangan dan operasional
Aktivitas dari konfigurasi dan manajemen itu sendiri memiliki hubungan pada manajemen project, implementasi, testing, dan deployment. Merubah prosedur pada system biasanya dikembangkan pada statement awal sebelum pengembangan system software yang lebih lanjut dilakukan.

Versioning
Versioning itu sendiri digunakan untuk membantu pengembangan, penginstalasi, dan maintain  sistem yang kompleks dalam serangkaian versi untuk menyederhanakan pengujian, deployment, dan support system.
Jenis-jenis Versioning : 
· Alpha Version : Versi testing yang sudah cukup lengkap tetapi siap digunakan untuk beberapa tingkat integrasi dengan level yang ketat atau pengujian layak kegunaan. 
· Beta : Versi testing yang cukup stabil untuk diuji oleh pengguna akhir untuk jangka waktu tertentu 
· Production : Versi system yang secara resmi sudah bisa didistribusikan kepada pengguna atau dibuat secara operasional untuk tujuan penggunaan jangka panjang. 
· Maintenance Release : System pembaharuan yang menyediakan perbaikan bug dan perubahan kecil untuk fitur yang ada pada system
Submiting Change Requet and Error Report
Untuk memanage resiko yang terkait dengan perubahan sebagian besar organisasi menerapkan prosedur pengendalian secara formal untuk seluruh system operasional. Pengendalian formal ini di desain dengan tujuan memastikan bahwa ada kemungkinan untuk terjadinya perubahan,dan tentunya akan dipertimbangkan dan dierncakan sebelum benar-benera di implementasikan kedalam system. Prosedur pengendaliannya berupa :
  1. request form untuk perubahan,
  2. review request utk melakukan permintaan perubahan,
  3. setelah itu baru melakukan perencanaan yang luas untuk melakukan desain dan pengimplementasian.
Change request form yang telah diselesaikan oleh user atau pemilik system akan diisi dengan deskripsi ttg perubahan yang dilakukan,request date,request by,target sistemnya,dll. Semuanya akan di isi form ini,yang nantinya akan diserahkan ke bagian yang megurusi ttg perubahan untuk dipertimbangkan. Kemudian bagian komite perubahan akan mereview ttg permintaan perubahan mengakses dampak pada hardware dan software co,puter,kinerja system nya bagaimana,budget,dan security nya. Nah , rekomendasi dari komite pengendalian perubahan akan dimasukkan ke dalam form change review .


Implementing a Change
Setelah mendapat form change review maka langkah selanjutnya adalah mengimplementasikan perubahan tersebut kedalam system.  Untuk mengimplementasikan perubahan , disni mengikuti Up life cycle. Pada dasarnya perubahannya akan dilakukan secara bertahap dan harus mengetahui persyaratn teknikal secara jelas terlebih dahulu. Biasanya kegiatan ttg business modeling,requirement discipline akan dilewatkan dan mengurangi kegiatan design,namun lebih fokus pada aktivitas sebagai berikut: 
1. Mengdentifikasi bagian mana dari system yang akan dilakukan perubahan 
2. Mengamankan sumber daya untuk mengimplementasikan perubahan 
3. Melakukan penjadwalan design dan mengimplementasikan aktivitasnya 
4. Mengembangkan criteria test dan melakukan pengujian atas system yang sudah diganti
Staff bagian design,implemenatsi,dan testing akan melakukan reviw ttg dokumentasi system utk mengetahui ruang lingkup perubahan . Melakukan criteria test dan pernecanaan merupakan titik awal utk mengevaluasi system baru. Design system yang ada akan dilakukan evaluasi dan dimodifikasi sesuai keperluan untuk menerapkan perubahan yang diajukan.  The production system merupakan versi dari system yang digunakan sehari-hari. Test version ini merupakann copy dari system produksi yang dimodifikasi untuk menguji perunahan yang dilakukan.

Upgrading Computing Infrastructure
Hardware computer,system software dan network harus di upgrade secara berkala dengan alasan
1.Melakukan maintance software 
2.Upgrade versi software 
3.Adanya Penurunan kinerja system

Seperti pada aplikasi software,system software seperti dbms dimana harus terus menerus di ubah untuk memperbaiki kesalahan yang ada ataupun untuk menambahkan fungsi2 baru.Mungkin saja aplikasi software yang dapat bekerja dengan baik pada software versi lama akan gagal ketika software itu diupdate.Oleh karena itu harus di test terkebih dahulu sebelum di apply di system operasional nya.Input dari user atau staff IS dapat mengindikasikan kebutuhan untuk pengingkatan performance.Tapi keputusan akhir apakah upgrade itu dibutuhkan adalah dengan melalui penyelelidikan atau research.

Deployment
Setelah sistem baru telah dikembangkan dan diuji, maka harus ditempatkan ke dalam operasi. Deployment discipline adalah serangkaian kegiatan yang dibutuhkan untuk membuat sistem operasional yang baru. Kegiatan deployment nya melibatkan banyak kendala yang bertentangan, termasuk biaya, kebutuhan untuk mempertahankan hubungan pelanggan yang positif, kebutuhan untuk mendukung karyawan, kompleksitas logistik, dan secara keseluruhan berisiko bagi organisasi.

Acquiring Hardware and System Hardware
Aplikasi perangkat lunak harus memiliki infrastruktur pendukung . Jika infrastruktur yang sama sekali baru harus diperoleh, maka developer akan  bekerja dengan IS staf untuk memilih dan memperolehnya. Cara memperolehnya adalah :
1.Perencanaan
2.Mengembangkan
request for proposal
3.mengevaluasi
hasil
4. Memilih satu atau lebih vendor
5. Instalasi dan configurating perangkat keras baru dan perangkat lunak sistem

Packaging and Installing Components
Komponen harus di install secara fisik ke host server,kemudian baru ditambahkan,setelah itu masing masing baru diberi tugas satu/lebih alamat jaringan untuk memungkinkan akses client.  Standar interaksi untuk komponen baru diisi dengan format file XML untuk menyimpan registration dan akses informasi. Developer biasanya akan menggunakan komponen untuk melakukan testing atau production server seperti yang dikembangkan atau ditest. Developer biasanya bisa membuatt package dan menginstall komponen dengan menggunakan utilitas yang disediakan dengan software pengembangan apliaksi

Training Users
Training merupakan bagian yang pentng dalam melakukan pengembangan system,karena user merupakan bagian dari system oleh karena itu training sangt diperlukan.Tanpa adanya training,user akan bekerja dengan cara mereka sendiri secara lambat,memungkinkan tingkat kesalahan yang tinggi,. Dengan adanya training maka akan memungkinkan user untuk menjadi lebih produktif.
Ada 2 jenisnys: 
1.End user : Adalah orang yang menggunakan system dari hari ke hari dengan tujuan mencapao tujuan bisnis , aktivitas nya adalah
1. Membuat catatan atau transaksi yang terjadi
2. Melakukan modifikasi isi database
3. Menghasilkan laporan
4. Query database
5. Mengimpor atau ekspor data

2.System operator : Adalah orang yang melakukan fungsi administrative dan pemeliharaan secara rutin untuk menjaga system operasi,aktivitasnya adalah
1.Memulai atau menghentikan system
2.Melakukan query status siste,
3.Melakukan back up data untuk di arsip
4.Melakukan recovery data untuk di arsip
5 Menginstall atau upgrade software

Secara umum,end user  sering menggunakan system dalam waktu yang lama,sedangkan system operator jarang berinteraksi dengan system  dan biasanya hanya untuk jangka waktu yang pendek.
End user memecahkan masalah dengan menerapkan prosedur bisnis yang spesifik,dan pelatihan end user lebih menekankan pada hands-on dimana aktivitas nya dilakukan secara fisik pada penerapan system untuk proses bisnis yang spesifik seperti mengentry pemesanan,melakukan control ketersediaan atau accounting. Sedangkan sysem operator , training yang dilakukan tidak terlalu formal ketika operator nya bukan end user.  Dan secara ideal di dunia,training tidak dimulai sampai interface diselesaikan dan versi testing selesai diinstal namun pada akhirnya adalah project harus masuk pada kesempurnaan .

Converting and Initializing Data
System operasional memerlukan database yang diisi penuh dengan proses yang mendukung masuknya sebuah system. Developers ahrus memastikan bahwa informasi yang dibutuhkan harus ada pada databse sebagai subsistem yang akan menjadi operasional. Yang mana data yang dibutuhkan pada startup system adalah dapat diperoleh dari : 
1.File atau databse dari system 
2.Catatan manual 
3.File atau databse dari system lain pda organisasi 
4.Feedback user selama pengoperasiaon system normal

Reloading Databases
Database system lama digunakan secara langsung oleh sisttem baru dengan sedikit/tidak ada perubahan pada struktur database nya. Menggunakan kmbali database yang ada cukup umum karena adanya kesulitan yang ditimbulkan dan masalah biaya untuk menciptakan database yang baru dari awal,terutama ketika database single yang mendukung beberapa system informasi seperti system ERP yang digunakan pada saat ini.Perubahan yang lebih kompleks untuk struktur database mungkin memerlukan memerlukan reload data setelah perubahan dilakukan. Dalam kasus pada gambar ini,staff pelaksana harus mengembangkan program untuk mengubah database setelah dilakukan modifikasi. Disini ada 2 kemungkinan pendekatan untuk melakukan reload data.: 
1.Menginisialisasi database baru dan mengcopy isi lama dari database Kemudian program akan akan menerjemahkan data yang tersimpan dalam struktur database pertama ke dalam struktur database yang baru dimodifikasi 
2.Menggunakan program atau alat dbms untuk mengekstract dan menghapus data dari database yang sudah ada dan menyimpannya kedalam tempat penyimpanan data sementara. Struktur database tsb kemudian akan dimodifikasi dan program yang dgunakan untuk reload database akan dimodifikasi.
 
Planning and managing implementation, testing, and deployment 
Chapter 2 menggambarkan UP sebagai bentuk pengembangan adaptif di mana sebuah sistem bertahap dijelaskan, dibangun, dan diuji.
 Dalam sesi ini, akan lebih berfokus pada hubungan timbal balik (interrelationship)  dan menggambarkan bagaimana developer membuat iteration plan dan mengelola aktifitas dari semua UP disiplin

Testing 
Chapter lain telah mengenalkan bagaimana peran sebuah testing sebagai teknik validasi untuk model requirement dan desain. Dengan demikian, salah satu tujuan dari pengujian memvalidasi kebutuhan pengguna dan desain keputusan diwujudkan dalam perangkat lunak. Tujuan testing :
o   Validasi Kegunaan sistem
o   Penerimaan user (Accetance user)
o   Validasi kebutuhan pengguna
o   Discover error (menemukan error)

Implementation 
salah satu keputusan yang paling dasar yang harus dibuat tentang pembangunan perangkat lunak adalah urutan komponen perangkat lunak yang akan dikembangkan.  memilih bagian mana dari sistem untuk melaksanakan di mana iterasi itu sulit, dan pengembang harus mempertimbangkan banyak faktor, salah satu dari beberapa yang timbul dari perangkat lunak itu sendiri. Kebutuhan yang mungkin :
o   input,proses,output
o   top down
o   buttom up
setiap proyek harus beradaptasi satu atau kombinasi dari pendekatan ini untuk kebutuhan dan kendala proyek tertentu 

Input,process,output development order
o   Input,process,output development order didasarkan pada aliran data melalui sistem atau program
o   Masalah utama yaitu menganalisis ketergantungan, kelas dan metode yang mana yang berfungsi untuk menampung atau menghasilkan data yang dibutuhkan oleh kelas-kelas dan metode lain ? Ketergantungan antar class ini sudah di dokumentasikan dalam package diagram dan class diagram, Dengan demikian, salah satu atau kedua jenis diagram dapat memandu pelaksanaan keputusan/pengembangan. Figure 13-19 menunjukan bahwa pelanggan dan katalog subsistem pemeliharaan tidak tergantung satu sama lain atau pada salah satu dari dua subsistem lainnya

Top-down and buttom-up development order
o   Istilah  top down and buttom up
o   desain structed tradisional terurai software menjadi serangkaian modul atau fungsi yang hiererchically terkait satu sama lain.
o   sebagai analogi visual, pertimbangkan sebuah bagan organisasi khas dengan presiden atau ceo di bagian atas
o    Top-down development dimulai dengan ceo untuk menyediakan tingkat detail yang lebih baik
o   Bottom up development dimulai dengan modul rinci pada tingkat terendah dan bekerja untuk ceo
o   Implementasi Top-down , akan dijalankan view layer class dan methodnya terlebih dahulu, kemudian domain layer class dan method selanjutnya, dan yang terakhir  data access dan methodya
o   Sedangkan implementasi bottom up akan berjalan terbalik dari implemetasi yang dilakukan top-down
o   Method dependency juga di dokumentasikan dalam sequence diagram, method dependency teleh di dokumentasi dalam aliran pesan dari kiri ke kanan
o   Keunggulan utama dalam top-down development : ada program yang selalu berjalan dalam versi working. Contohnya : 
Source Code Control System (SCCS) : Alat otomatis untuk melacak file kode sumber dan pengendalian perubahan ke file-file
o   Menyimpan file dalam repositori
o   Mencegah perubahan konsisten dan mengotomatisasi koordinasi

Pemrogram dapat memanipulasi file dalam tiga mode
o   Check out file dalam modus read-only : ketika dia ingin menguji tanpa mengubah kode
o   Check out file dalam membaca / menulis modus : ketika programmer membutuhkan untuk mengubah file
o   Check in berkas yang telah diubah : mengecek apakah file telah terubah
Dalam SCCS, mencegah programmer beberapa programmer mengubah file yang sama dalam waktu yang sama, sehingga mencegah perubahan yang inkonsisten 
SCCS adalah kebutuhan mutlak ketika program yang dikembangkan oleh beberapa programmer 
repositori juga berfungsi sebagai fasilitas umum untuk backup dan pemulihan operasional

Framework Development 
Dalam menjalankan system OO, biasanya tidak membangun sebuah object framework (satu set foundation class) yang meliputi sebagian atau seluruh domain dan data access layer
Foundation classes adalah reuse
Disamping itu, jika terjadi perubahaan, kemungkinan besar akan mempengaruhi system sehingga diperlukan perubahan yang signifikan 

Team-based software Development
Masalah masalah management yang mungkin ditemukan dalam Team based program : 
· organisasi dari tim programming 
· Tugas tugas untuk tim atau anggota tertentu 
· komunikasi dan koordinasi anggota dan team
Cara / metode dalam implementasi organisasi :
Team Type
Team Characteristic
Task and Project type
Cooperating peer
-  tingkat kemampuan yang sama
-  Tumpang tindih (Saling Melengkapi)

-   Experimen
-   pemecahan masalah yang kreatif
Chief Developer
-  Seperti militer dimana seorang pemimpin akan mengambil keputusan
-   Tujuan yang jelas
-   cara penyelesayan yang jelas
Collaborative specialist
-  Kemampuan dan pengalaman yang luas
-  Tumpang tindih yang minim
-  Kesepakatan dalam mengambil keputusan
-   Dianogsan dan experiment
-   pemecahan masalah yang kreatif dan terintegrasi
o
o   Mengeluarkan dana dari operasional
o   mendeteksi dan mengkoreksi error dalam sistem
o   hal hal yang berpotensi mengganggu perusahaan dan operasi SI-nya
o   pelatihan anggota dan membiasakan konsumen dengan prosedur yang baru 
Pendekatan deployement :
o   Direct Deployment
o   parallel deployment
o   Phased deployment
Setiap pendekatan memiliki kekuatan dan kelemahannya tersendiri, dan tidak ada pendekatan yang paling bagus untuk semua sistem  
Direct Deplloyement :
o   System baru telah diinstal dan operasional yang cepat dibuat, dan setiap sistem yang tumpang tindih akan di matikan
o   Keunggulan utama : simple (sederhana)
o   Kelemahan : karena sistem lama tidak beroperasi lagi, maka kemungkinan sistem baru gagal akibat tidak ada back up. Besarnya resiko terletak pada sifat sistem,biaya kegagalan sistem dan biaya ketersediaan sistem
o   Biasanya digunakan ketika :
§  Sistem baru ini tidak mengganti / menimpa system lama
§  Waktu penghentian dapat di tolerir  
Parallel deployment
o   Menjalankan dua sistem secara bersamaan dengan periode waktu yang diperpanjang
o   Keunggulan utama : memiliki resiko kegagalan sistem yang relative lebih kecil
o   Kelemahan : Biaya yang lebih untuk menjalankan 2 sistem
o   Biaya yang dimaksud adalah :
§  memperoleh ruang ekstra untuk peralatan komputer dan personil
§  mempekerjakan personil sementara atau sementara menugaskan personil yang ada
§  meningkatnya kompleksitas manajerial dan logistik
o   Jika berjalan, system lama berperan sebagai cadangan untuk sistem baru
o   Segala kegagalan yang dialami dalam sistem baru dapat diatasi dengan mangandalkan sistem lama  
Phased Deployment
o   Sistem di deploy dalam serangkaian langkah-langkah atau fase
o   Setiap fase akan menambahkan komponen atau fungsi untuk sistem operasional
o   selama setiap fase, sistem ini diuji untuk memastikan bahwa ia siap untuk menuju ke tahap berikutnya
o   penyebaran bertahap dapat dikombinasikan dengan penyebaran paralel, terutama ketika sistem baru akan mengambil alih dari beberapa pengoperasian sistem yang ada
o   tidak ada metode tunggal untuk melakukan penyebaran bertahap
o   dibagi menjadi 3 bagian :
§  fase pertama adalah pengganti langsung dari salah satu sistem yang ada
§  fase ke dua dan ketiga adalah bagian yang berbeda dari penyebaran paralel dimana pada fase ini akan menggantikan sistem lain yang ada
o   Keunggulan : mengurangi resiko
o   Resiko dikurangi karena kegagalan fase tunggal tidak mengakibatkan efek yang fatal daripada kegagalan seluruh sistem
o   Kelemahan : meningkatnya kompleksitas
o   Membagi  sistem menjadi fase fase membutuhkan aktifitas yang lebih, sehingga membuat prosesnya menjadi lebih kompleks
o   Namun disetiap fase berisi satu set yang lebih kecil dan kegiatan yang lebih mudah dikelola
o   Lebih berguna diguakan untuk sistem yang besar, complex, 
Personnel Issues
o   Biasanya adanya tuntutan waktu,jadwal, pembelajaran yang harus cepat, adaptasi sehingga menimbulkan stress yang tinggi
o   Planning harus mengantisipasi masalah ini dan mengambil tindakan yang tepat untuk mengurangi efeknya

cc : Andreas Hadi & Riky Angga 
Our presentation in Anapersil's Class week 13



Categories:

0 komentar :

Posting Komentar