Source Code

WEB, DESKTOP, MOBILE, Mata Kuliah, Ebook, Artikel, Jurnal Teknologi Informasi, Inspirasi , Motivasi, Literasi, Seputar Islam dan Cerita Lucu

Gambar Koala

Monday 25 April 2016

Unified Software Development Process ( USDP )


USDP (Unified Software Development Process)
USDP merupakan metodologi untuk pengembangan perangkat lunak, utamanya perangkat lunak yang berorientasi objek. Metodologi ini pertema kali diperkenalkan oleh Rational Team, yang pada perkembangan selanjutnya metodologi ini disempurnakan kembali menjadi metodologi baru yang bernama Rational Unified Process (RUP), yang sekaligus menjadi cikal bakal terbentuknya kurang lebih tujuh metodologi lainnya.
       Proses yang terjadi di USDP tidaklah sesederhana jika dibandingkan dengan metodologi klasik, seperti waterfall dan iterative model. Hal ini dikarenakan USDP lebih digunakan untuk membangun sebuah kerangka kerja (framework) yang bisa dikustomisasi untuk kepentingan organisasi dan proyek yang lebih spesifik. Dengan framework bisa menghasilkan beragam aplikasi karena adanya konsep coding reuse, dimana coding yang sama bisa dipakai untuk keperluan aplikasi sejenis.
       Seperti pada gambar 1 berikut, Profil proyek yang khas dimana menunjukkan ukuran relative dari empat fase Unified Process.
Gambar 1 Unified Process


1. Iterative dan Incremental
            Yang dimaksud dengan Iterative dan Incremental di sini adalah proses pengembangan perangkat lunak yang dibagi dalam beberapa fase, dimana di setiap fase tersebut dilakukan beberapa tahap kerja yang dilakukan secara berulang, yang diharapkan di setiap tahap tersebut terdapat beberapa perbaikan yang menuju kepada kematangan perangkat lunak tersebut seperti pada gambar 2

Gambar 2 Diagram Fase USDP

Dari Gambar 2 terlihat bahwa USDP terbadi atas 4 fase, yaitu Inception, ElaborationContruction, dan Transition. Di tiap – tiap fase tersebut terdapat 6 tahap kerja (iterasi) yang harus dilakukan, yaitu Business ModelingRequirementsAnalysis & DesignImplementation, Test , dan Deployment. Fase kerja ini berkaitan erat dengan peran seorang project manager ,sedangkan tahap kerja (iterasi) berkaitan dengan peran seorang developers atau programmer.
            Kemudian dapat dilihat grafik pada setiap fase gambar diatas mempunyai penekanan pada beberapa tahap kerja. Contohnya, pada fase Inception, maka tahap kerja lebih dipentingkan adalah Business Modeling.Sedangkan pada fase Elaboration, maka tahap kerja lebih dipentingkan adalah Business Modeling, Requirements, Analysis dan Design.

Use Case Driven
            Dalam USDP yang menjadi elemen dasarnya adalah interaksi tunggal pengguna dengan sistem, USDP direpresentasikan oleh use case.Use case memainkan peranan yang krusial dalam seluruh proses dan berguna sebagai langkah awal untuk memodelkan interaksi tersebut. Setiap use case merepresentasikan kebutuhan dan hubungan dari tiap-tiap entity yang kemudian akan diimplementasikan dalam sistem.
            Use case di sini digunakan untuk memenuhi kebutuhan fungsi dan mendefinisikan isi dari tiap-tiap iterasi.Dengan demikian tiap iterasi dalam USDP mempunya use case atau skenario yang spesifik. Hal ini akan memandu sistem developers untuk selalu melihat dari sudut pandang kebutuhan pengguna sehingga sistem yang dihasilkan betul-betul sesuai dengan keinginan pengguna.
            Untuk menggambarkan use case tersebut, biasa digunakan sebuah pemodelan dalam bentuk diagram, yang disebut use case diagram. Dari use case diagram, sistem developers bisa lebih mudah menganalisa hubungan antara pengguna dengan sistem atau juga hubungan antara sistem dengan sistem. Dalam proses implementasinya nanti, use case diagram ini bisa dikembangkan menjadi kerangka coding dan Unified Modeling Language (UML).



Architecture Centric
            USDP mempunyai arsitektur yang menjadi dasar yang jelas untuk membentuk sebuah sistem.Salah satu keunggulan dari USDP ini adalah mendukung berbagai macam model dan sudut pandang arsitektur. Dimana arsitektur ini berfungsi untuk :
1.   Memastikan batasan-batasan, control dan kelas entity dari perangkat lunak itu sendiri sehingga diharapkan tidak terjadi hal-hal yang diluar skenario yang telah direncanakan sebelumnya.
2.   Melakukan control antara model dengan aktivitas pembuatan perangkat lunak itu sendiri sehingga diharapkan tidak terjadi hal-hal diluar skenario yang telah direncanakan sebelumnya.
3.   Melakukan control terhadap sumber daya yang diperlukan dalam pembuatan perangkat lunak, seperti waktu, uang, sumber daya manusia, dan lain-lain.

4  Risk Focused
            USDP memungkinkan para pengembang perangkat lunak untuk bisa mengetahui resiko di setiap awal tahapan pengerjaan. Dengan demikian faktor-faktor yang mempunyai resiko yang paling penting bisa lebih mendapatkan perhatian terlebih dahulu sehingga nantinya tidak mengganggu proses pengembangan perangkat lunak selanjutnya. Selain itu USDP juga menghendaki agar resiko di setiap fase bisa segera diselesaikan pada fase itu juga sehingga tidak menghambar fase-fase selanjutnya.

5  Workflowss
Gambar 3 The Unified Development Process
(Sumber :Bennett, McRobb and Farmer, Object Oriented System Analysis and Design Using UML, 2010, 4th Edition)

Fase dalam USDP terdiri dari beberapa iterasi dan tiap iterasi terdiri dari 5 (lima) workflows, yaitu :
1.      Requirement, bertujuan untuk mengidentifikasikan permintaan (requirementuser. Permintaan dari user harus dapat dituangkan dalam suatu bentuk yang jelas bagi developers maupun user itu sendiri. Biasanya bentuk yang digunakan adalah use caseUse Case adalah serangkaian kegiatan yang menggambarkan bagaimana user (juga disebut actor) berkomunikasi dengan sistem.
2.      Analysis, tujuannya memberikan deskripsi dan model yang lebih jelas (berdasarkan gambaran pada use case). Dalam tahap ini use case akan dianalisa secara seksama, setiap detail akan dijabarkan lebih lanjut, setiap relasi antar objek akan diidentifikasi, juga karakteristik statik dan dinamik dari tiap class akan diidentifikasi. Beberapa teknik pendukung tahap ini, contohnya analisis gramatikal dari material dokumen yang sangat berguna untuk mengidentifikasi class, kata benda mewakili karakteristik statis dan kata kerja mewakili karakteristik dinamis.
3.      Design, dalam tahap ini model analisa akan disempurnakan dan diadaptasikan dalam platform tertentu yang spesifik (compiler, hardware, sistem operasi, basis data dan lain-lain). Modelnya analisis merupakan model konseptual sedangkan model desain lebih menyerupai model “fisik”.
4.      Implementation, tahap ini mentransformasikan model desain menjadi suatu program yang executable, misalnya program akan dibuat dalam bahasa pemrograman, di-compiled, di-debug dan sebagainya.
5.      Test, tujuan dari tahap ini adalah melakukan verifikasi dan perbaikan kinerja software, seperti menguji apakah sistem menghasilkan output yang tepat untuk setiap input yang masuk.

6 Fase-fase USDP
6.1 Fase Inception
Dalam fase ini pengembang perangkat lunak dituntut untuk bisa melakukan interaksi dengan pelanggan, sebagai langkah awal untuk pengidentifikasian kebutuhan-kebutuhan sistem yang hendak dibuat. Langkah ini cukup penting agar para pengembang perangkat lunak punya kesamaan persepsi antara sistem yang akan dibuat dengan kebutuhan pengguna.Fase ini berfokus pada cakupan dan tujuan dari proyek.
Tahap-tahap iterasi kerja yang dilakukan developers pada fase ini :
1.    Business Modeling dan Requirements, menganalisa, merumuskan, dan menentukan perencanaan, cakupan dan kebutuhan utama bisnis.
2.    Analysis, mengadakan studi kelayakan terhadap proyek yang akan dijalani
3.    Design, mendesain konsep atau protype teknisnya
4.    Implementation membuat prototype konsepnya
5.    Test tahap ini belum diperlukan pada fase ini.

Hasil akhir yang dicapai pada fase ini adalah :
1.    Ruang lingkup sistem sudah terdefinisikan.
2.    Kebutuhan sistem sudah bisa diidentifikasi dan telah mendapat persetujuan dari stakeholder.
3.    Arsitektur sistem sudah jelas, walaupun mungkin masih dalam tahap perencanaan awal dan masih bisa berubah di fase selanjutnya.
4.    Sudah melakukan analisa terhadap segala kemungkinan resiko yang mungkin akan terjadi selama pengerjaan proyek.
5.    Sudah mempunyai perencanaan bisnis yang baik untuk memperlancar jalannya proyek.
6.    Studi kelayakan proyek sudan jelas dan pasti
7.    Stakeholder sudah menyetujui kerangka kerja proyek tersebut
8.    Dokumen atau produk yang dihasilkan dalam fase ini adalah System Charter

6.2  Fase Elaboration
            Fase ini digunakan untuk mematangkan konsep-konsep yang sudah terbentuk di fase Inception. Fase ini belum masuk ke tahap pembuatan perangkat lunak secara langsung, tetapi lebih kepada pemantapan konsep dari peninjauan kembali terhadap rencana-rencana yang sudah ditentukan sebelumnya.Dengan demikian diharpkan proyek yang berjalan, resikonya dapat ditekan seminimal mungkin.Fase ini berfokus pada requirement yang didapat dan menentukan strukturisasi sistem
Pada fase ini tahap-tahap iterasi kerja yang dilakukan developers pada fase ini adalah :
1.    Business Modeling dan Requirements memperbaiki cakupan dari kebutuhan sistem.
2.    Analysis, menganalisa kebutuhan sistem dan cara membangun sistem tersebut.
3.    Design, membuat arsitektur yang baik.
4.    Implementation membuat garis besar arsitektur
5.    Test, melakukan test atau pengujian garis besar arsitektur yang sudah dibuat.

Adapun hasil akhir yang ingin dicapai pada fase ini adalah :
1.    Membuat garis besar dari arsitektur proyek yang lebih baik dan handal.
2.    Memperbaiki analisa atau meminimalkan segala kemungkinan resiko yang ada.
3.    Mendefinisikan atribut kualitas (misalnya, atribut parameter apa saja yang mempengaruhi keberhasilan dan kegagalan proyek)
4.    Merangkum use case menjadi satu kebutuhan fungsional
5.    Membuat perencanaan detail untuk fase selanjutnya.
6.    Memformulasikan perencanaan kebutuhan peralatan, waktu, staf, biaya, dan sumber daya lainnya.
7.    Memperoleh persetujuan dari stakeholder untuk melanjutkan ke fase beriktunya.
8.    Dokumen atau produk yang dihasilkan dalam fase ini adalah UML model.

Sumber :

Scott W. Ambler, John Nalbone, Michael J. Vizdos ,The Enterprise Unified Process: Extending the Rational 
Unified Process

Ivar Jacobson, Grady Booch,James Rumbaugh, The Unified Sofware Development Process, 1999


Semoga bisa bermanfaat. Terima Kasih - Mr.Dicsr

2 comments:

  1. Replies
    1. Referensi / sumbernya sekarang sudah saya sertakan diatas.Semoga bisa membantu

      Delete