RUP(Rational Unified Process)

RUP… ada ngga siy yang ngerti tentang RUP? Sebenernya aku sendiri bingung, apa siy perbedaan RUP ma SDLC yang kebetulan, keduanya punya fase-fase yang hampir sama, malah cenderung sama persis… jadi, daripada panjang lebar bingung pa siy sebenernya RUP itu… Check it out..

RUP ( Rational Unified Process )

Buat smua yang udah sering make’ software rational rose, pasti tau dunk perusahaan IT, Rational Software? Rational Software adalah perusahaan yang mbuat software rational rose itu sendiri. Klo menurut sejarah perkembangan UML, pasti tau dunk ma yang namanya Booch, Rumbough, n’ Jacobson… mereka itulah para pengembang model UML yang terkenal sekarang… trus hubungannya ma Ratonal Software? Jadi kebetulan, Beliau bertiga itu pertama kali ngumpul di perusahaan Rational Software itu sendiri… jadilah, Rational Software berani mengeluarkan metode-metode yang berhubungan dengan pengembangan software, yang salah satunya adalah RUP alias Rational Unified Process… Jadi apa siy sebenernya RUP itu?

  • Definisi RUP

RUP merupakan suatu metode rekayasa perangkat lunak yang dikembangkan dengan mengumpulkan berbagai best practises yang terdapat dalam industri pengembangan perangkat lunak. Seperti yang udah dibahas di atas, RUP dikembangkan oleh perusahaan Rational Software. RUP menggunakan konsep object oriented, dengan aktifitas yang berfokus pada pengembangan model dengan menggunakan Unified Model Language (UML).

Sekedar tambahan, dalam Wikipedia disebutkan bahwa cara kerja RUP itu didasarkan pada 6 kunci prinsip bagi perkembangan bisnis yang terkendali yaitu :

1.    Mengadaptasi proses

2.   Menyeimbangkan prioritas dari para stakeholders

3.   Melakukan kolaborasi antar tim

4.   Mendemonstrasikan hasil-hasil yang ada secara berulang-ulang

5.   Menaikkan level abtraksi dari sebuah software

6.   Memfokuskan pada kualitas secara terus-menerus

  • Daur Hidup RUP

1.        Inception

Yang perlu dilakuin dalam fase ini antara lain :

–          Kebutuhan akan model bisnis diterapkan,

contohnya aja nilai-nilai bisnis yang ada, hal-hal yang memicu keuntungan, dan hal-hal yang berhubungan ama keuangan juga termasuk di sini.

–          Nentuin batasan-batasan dalam sebuah project.

–          Perencanaan dalam menentukan type model yang mau dipake dalam proses pengembangan software itu sendiri.

2.       Elaboration

Beda Inception, beda lagi ma Elaboration. Dalam fase kedua dalam RUP ini, yang perlu dilakuin diantaranya :

–          Menganalisa problem domain.

–          Mengembangkan perencanaan project.

–          Menghilangkan kemungkinan-kemungkinan terbesar yang memungkinkan timbulnya sebuah resiko dalam proses perkembangan project itu sendiri, dikarenakan jika sampai terjadi perubahan terhadap project dalam fase berikutnya, akan menyulitkan pengembang project tersebut untuk kembali meninjau ulang.

–          Pengembangan perencanaan arsitektural kalo’ analisa dari keseluruhan system udah lengkap.

–          Pengimplementasian use case, sebagai perwujudan dari arsitektur system software.

3.       Construction

Namanya aja fase konstruksi… udah bisa dikira pasti bahwa tujuan utama dalam fase ini tentu aja perkembangan sebuah project dalam bentuk coding. Perkembangan project ini tentu aja ngga dilakuin secara serempak, tapi dilakukan secara berulang-ulang dengan beberapa penambahan tentu aja di tiap-tiap pengulangannya.

Jadi, aktivitas yang terjadi dalam fase ini antara lain design, implementasi, dan tentu aja pengujian software tersebut.

4.       Transition

Dari arti kata transition itu sendiri, transisi, udah sepatutnya kita ngerti apa yang jadi tujuan utama dalam fase ini. Tentu aja, transisi, alias peralihan, software atau project yang emang dikembangkan, dari tangan pengembang alias developer-nya, ke tangan yang pesen project alias customer ato pelanggannya. Ngga selesai gitu aja, karena tentu aja si developer atau pengembang project bertanggung jawab, kalau-kalau terjadi error pada software alias project yang dikembangkan. Selain kedua hal di atas, dalam fase ini juga ditentukan apakah software atau project yang udah jadi ini sesuai dengan standard yang udah ditetapin oleh end users, kalau belum sesuai maka mau ngga mau project atau software ini harus diulang dari fase paling awal, alias fase inception….

eBagian-bagian dan Cara Kerja RUP

Udah mbahas masalah fase-fase yang ada pada RUP, kita lanjut ke bahasan selanjutnya…

RUP didasarkan pada 1 set building blocks atau lebih dikenal dengan elemen-elemen isi. RUP sebenernya menekankan pada masalah, penggambaran hal apa yang seharusnya dihasilkan, keterampilan-keterampilan apa saja yang dibutuhkan, dan penjelasan perlangkah yang menjelaskan tentang bagaimana tujuan-tujuan tertentu dikembangkan.

Sebenernya building blocks utama atau disebut juga elemen-elemen isi, adalah :

1.         Peranan ( who )

2.        Hasil kerja ( what )

3.        Tugas-tugas ( how )

Dalam tiap-tiap iterasi / pengulangannya, tugas-tugas dikategorikan menjadi 9 bagian :

1.   Bagian Business Modeling

Tujuan utama dalam business modeling di sini adalah untuk memungkinkan adanya komunikasi dan pengertian yang lebih baik dari business engineering dan software engineering.

Fase-fase yang terlibat dalam business modeling :

Inception                š            pertama kalinya business modeling dideklarasikan dan difenisikan.

Elaboration           š            peninjauan kembali terhadap requirement bisnis untuk meminimalisasikan terjadinya perubahan pada tahap selanjutnya yaitu construction.

Construction          š            penerapan dari business modeling yang telah terdefinisi dalam bentuk coding.

Transition              š            dimungkinkan apablia terjadi kesepakatan antara developer dengan end users dalam perawatan software yang telah dibuat.

2.   Bagian Requirement

Tujuan dari tahap ini adalah mendeskripsikan apa yang harus dilakukan oleh system dan memungkinkan terjadinya kesepakatan antara customer dan developer tentang hal itu.

Fase-fase yang terlibat antara lain :

Inception                š            requirement dari software pertama kali dibahas. Lebih terfokus pada requirement pengembangan software yang akan dipakai.

Elaboration           š            mengurangi / meninjau kembali requirement dari software, dan dimungkinkan terjadi pergantian requirement dalam software yang akan dikembangkan.

Construction          š            perwujudan requirement yang ada dalam bentuk coding dari software yang dikembangkan beserta pengujian apakah software sudah memenuhi requirement awal.

Transition              š            bisa aja requirement dalam fase ini berupa requirement dari end users untuk menambah aplikasi software, atau mungkin perawatan software, atau mungkin yang lain juga karna aku sendiri ngrasa belum ngerti requirement yang terjadi di tahap transition itu apa… mohon bantuan     JJJ

3.   Bagian Analysis dan Design

Tujuan dalam tahap ini adalah untuk menunjukkan bagaimana project akan diwujudkan dalam fase implementasi kelak. Hasil dari tahap ini adalah model design.

Fase-fase yang terlibat :

Inception                š            analysis dan design udah mulai dibahas dengan adanya pembahasan tentang business modeling dan requirement tentu aja.

Elaboration           š            fase inilah yang menjadi pusat perkembangan dari analysis dan design. Selain karna emang segala macem domain, scope project, peninjauankembali terjadi di fase ini. Hampir bisa depastikan bahwa perancangan dan analisa dibakukan pada fase ini.

Construction          š            dari design-lah project dikembangkan dalam bentuk coding.

Transition              š            aku kurang ngerti sama penerapan analysis dan design pada fase ini… jadi mohon bantuannya ya…JJ

4.   Bagian Implementasi

Tujuan dari implementasi di sini adalah mendefinisikan pengkodean secara terorganisasi, mengimplimentasikan classes dan objects dalam bentuk komponen-komponen, menguji perkembangan komponen-komponen dalam bentuk kesatuan, dan mengintegrasikan hasil-hasil dari tiap-tiap kelompok yang mengerjakan project.

Fase-fase yang terlibat :

Inception                š            senangkep aku di tahap ini implementasi berlaku dengan terjadinya percakapan antara end users dan developer mengenai software yang akan dikembangkan.

Elaboration           š            selain  implementasi terhadap pembuatan use case, tahap ini juga memuat implementasi dari perkembangan perencanaan arsitektural dan sebagainya.

Construction          š            dari nama fase ini, construction alias konstruksi, tentu aja jelas dapat diambil kesimpulan, bahwa pada fase ini-lah implementasi terhadap rancangan software dan sebagainya diterapkan.

Transition              š            implementasi yang terjadi pada tahap ini adalah penyerahan software terhadap end users dan implementasi pada penerapan aplikasi software yang telah dikembangkan .

5.     Bagian Testing

Tujuan dari testing adalah memverifikasi interaksi antar object, memverifikasi integrasi yang sesuai antar komponen, memverfikasi apakah semua requirement telah terpenuhi dengan benar, mengidentifikasi dan memastikan defect telah ditangani secara benar.

Fase-fase yang terlibat :

Inception              š            dalam fase ini testing dilakukan apabila moeling bisnis dan requirement telah teridentifikasi. Testing dilakukan dengan tujuan menghasilkan kesepakatan antara end users dengan developer.

Elaboration         š            testing di sini merupakan testing setelah use case diimplementasikan, masih seputar tercapainya kesepakatan antara end users dengan developer.

Construction        š            testing kebanyakan dilakukan di akhir fase construction, karena setelah penyelesaian program-lah, testing baru dilaksanakan.

Transition            š            testing dilakukan sebelum penyerahan software kepada end users dengan keadaan yang sebenarnya.

6.     Bagian Pengembangan

Tujuan dari pengembangan di sini adalah suksesnya menghasilkan suatu project dan mengantarkan project tersebut pada end users.

Fase-fase yang terlibat :

Elaboration         š            mulailah pengembangan tentang realitas dari software itu akan seperti apa dalam fase ini.

Construction        š            dalam fase ini pengembangan software secara nyata terjadi dengan adanya coding.

Transition            š            fase yang paling berpengaruh karena adanya penyerahan software dari developer kepada end users.

7.     Bagian Managemen Konfigurasi dan Perubahan

Area-area spesifik dalam bagian ini adalah management konfigurasi, merubah management requirement, status dan management pengukuran.

Fase-fase yang terlibat :

Inception              š            terjadi diskusi mengenai konfigurasi dari system software yang diinginkan.

Elaboration         š            masih membahas seputar konfigurasi software, ditambah dengan perubahan-perubahan yang terjadi, terkait dengan diminimalisasikannya perubahan dalam fase selanjutnya.

Construction        š            dalam fase inilah akan terlihat jelas penerapan dari konfigurasi yang telah ditentukan, dan mungkin tidaknya konfigurasi yang diinginkan terpenuhi.

Transition            š            konfigurasi yang ada adalah mengenai konfigurasi system dalam keadaan yang sesungguhnya.

8.     Bagian Managemen Project

Ada 2 level yang terjadi dalam managemen project di sini, yaitu fase-fase yang ada ( menggambarkan keseluruhan software ) dan pengulangan tiap fase-fase tersebut.

Karena merupakan gambaran dari keseluruhan project, baik dari prosesnya, coding, business modeling, dan lain-lain, maka semua fase dalam RU terlibat dalam bagian ini. Fase-fase tersebut adalah inception, elaboration, construction, dan transition.

9.     Bagian Lingkungan

Bagian ini terfokus pada aktivitas-aktivitas yang penting terkait dengan proses konfigurasi sebuah software. Terkait dengan aktivitas yang diperlukan dalam usaha mengembangkan aturan-aturan yang mendukung sebuah software.

Karena masih membicarakan seputar aktivitas-aktivitas yang terkait dalam pengembangan sebuah software, maka semua fase yang ada di RUP ini tentu saja terlibat. Fase-fase tersebut adalah inception, elaboration, construction, dan transition.

  • Keuntungan Menggunakan RUP

Ngga lucu juga kan kalo mbahas panjan lebar tentang RUP, tapi ngga ngerti keuntungan dari penggunaan metode-metode itu sendiri… jadi, ngga rugi kok sebenernya kalo para pengembang software memakai metode RUP itu sendiri, karna ada beberapa keuntungan yang bisa kita ambil dari penggunaan RUP itu sendiri, di antaranya :

§  Menyediakan akses yang mudah terhadap pengetahuan dasar bagi anggota tim.

§  Menyediakan petunjuk bagaimana menggunakan UML secara efektif.

§  Mendukung proses pengulangan dalam pengembangan software.

§  Memungkinkan adanya penambahan-penambahan pada proses.

§  Memungkinkan untuk secara sistematis mengontrol perubahan-perubahan yang terjadi pada software selama proses pengembangannya.

§  Memungkinkan untuk menjalankan test case dengan menggunakan Rational Test Manager Tool

§  Ada 2 lagi siy, kalau menurut buku yang aku baca… alias buku di kampus.. tapi aku kurang paham maksudnya… jadi… hehehe… tolong ya kalo ada yang ngerti… yang satunya, support the tools that automate large parts of the development process n’ satunya lagi support an architecture-centric development process.

gitu aja dulu posting an RUP nya, smoga bermanfaat yawh…

:p

Leave a comment