LANGKAH-LANGKAH MEMBUAT SOFTWARE MENURUT RUP (RATIONAL UNIFIED PROCESS)
Rational Unified Process (RUP) merupakan suatu metode rekayasa perangkat lunak yang dikembangkan dengan mengumpulkan berbagai best practises yang terdapat dalam industri pengembangan perangkat lunak. Ciri utama metode ini adalah menggunakan usecase driven dan pendekatan iteratif untuk siklus pengembangan perangkat lunak. RUP menggunakan konsep object oriented, dengan aktifitas yang berfokus pada pengembangan model dengan menggunakan Unified Model Language (UML). Untuk memperoleh manfaat maksimal dari UML beberapa yang sebaiknya menjadi bahan pertimbangan dalam proses pembuatan software adalah :
Use case driven Use case driven merupakan proses yang menjadikan usecase sebagai pusat atau central dari arsitektur software. Menggunakan use case sebagai artifact utama untuk membangun behavior yang dinginkan dari sistem, untuk keperluan verifikasi dan validasi arsitektur sistem dari software. Disamping itu juga untuk keperluan testing dan komunikasi antar stakeholder proyek. Arsitektur 4+1 merupakan arsitektur sistem yang use case driven. Arsitektur software penting untuk menentukan langkah-langkah membuat software. Berikut gambar arsitektur 4+1 :
Contoh arsitektur 4+1
Rational Unified Process menitikberatkan pada aktifitas menciptakan dan merawat model daripada aktifitas produksi yang memfokuskan pada penciptaan dokumen project yang banyak. Architecture-centric Arsitektur sistem digunakan sebagai artifact primer untuk konseptualisasi, konstruksi, pengaturan, dan mengembangkan sistem selama pengembangan.
Iterative and incremental Sebuah proses yang iterative merupakan salah satu yang termasuk pengaturan aliran dari keluaran yang executable. Rational Unified Process terdiri dari : Workflow yang menghasilkan model: requirements, analysis, design/deployment, implementation, test. Workers yang mengimplementasikan workflow : user, manager, analis, architect, designer, tester, dsb. Phasa development dan iterasi: inception, elaboration, construction, transition Aktivitas dalam iterasi: perencanaan, eksekusi workflow , evaluasi.
Phase RUP Metode dari RUP ada empat phase sebagai berikut : Inception Penyusunan sebuah bisnis case untuk proyek. Menentukan Ruang lingkup proyek. Membuat ‘Business Case’. Menjawab pertanyaan “apakah yang dikerjakan dapat menciptakan ‘good business sense’ sehingga proyek dapat dilanjutkan.
Elaboration Penyusunan sebuah project plan dan sound architecture. Menganalisa berbagai persyaratan dan resiko. Menetapkan ‘base line’. Merencanakan fase berikutnya yaitu construction.
Construction Perkembangan sistem. Melakukan sederetan iterasi. Pada setiap iterasi akan melibatkan proses berikut: analisa desain, implementasi dan testing.
Transition Menyediakan sistem untuk end user dari sistem tersebut. Membuat apa yang sudah dimodelkan menjadi suatu produk jadiDalam fase ini dilakukan: • Beta dan performance testing. •
Membuat dokumentasi tambahan seperti; training, user guides dan sales kit.
•
Membuat rencana peluncuran produk ke komunitas pengguna.
Inception dan elaboration meliputi engineering activities dari development of cycle (siklus pengembangan). Gambar dibawah ini menggambarkan development cycle dimana phase dari RUP termasuk di dalamnya :
STRUKTUR RINGKAS DARI WORKFLOW
KEBUTUHAN SUMBERDAYA DARI SETIAP TAHAP
Role Aktivitas RUP dan Workers 1.
Aturan pertama
2.
3.
Aturan Kedua
Aturan Ketiga
4.
Aturan Keempat
Hasil Workflow Seperti apa yang tertulis sebelumnya bahwa RUP salah satunya terdiri dari workflow yang menghasilkan model diantaranya : requirements, analysis, design/deployment, implementation, test. Penjelasan dari tiap model yang dihasilkan dari workflow akan ditampilkan di sini. Requirements Implikasi dari aktivitas dalam pembuatan model requirement dapat terlihat dalam sekema berikut : Aktivitas Artifak Daftar kandidat Daftar Fitur requirements. Memahami konteks sistem.
Model Bisnis/domain
Memahami requirements fungsionalitas.
Use Case Model
Memahami requirements kualitas dan bisnis.
Supplementary Requirements.
Tujuan dari model requirements adalah : Mengarahkan development agar sesuai dengan sistem Tugas lainnya agar fokus dalam pembangunan sistem yang benar. Membatasi apa yang boleh dan tidak dilakukan sistem
Persetujuan diantara customer (termasuk pengembangan. Dalam bahasa customer/user. Tugas-tugas Daftar kandidat requirements. Memahami konteks sistem. Memahami requirements fungsionalitas. Memahami requirements non fungsionalitas. Validasi requirements.
user)
dan
organisasi
Analysis Hubungan Requirements dengan Analysis dapat dilihat pada bagan di bawah ini:
Analysis Model Analisa class-class dan/atau subsystems : Fokus pada fungsional requirement Konseptual, granularity yang besar Model desain akan mempunyai elemen model Minimal interface operasi Definisi responsibilities (textual) Atribute pada high level Relasi konseptual Boundary (interaksi dengan actor), control (koordinasi, sequencing, transaksi) atau entity (long-lived real-life object atau event) class-class.
Desain/Deployment Aktivitas pada saat desain meliputi : Menentukan bentuk sistem arsitektur yang memenuhi semua requirements. Memahami isu pada requirements non-fungsional dan batasan teknologi. Mengidentitaskan subsystem ( semua struktur, requirement, interface, classclass) yang membolehkan implementasi konkuren. Membuat abstraksi yang tak terlihat pada implementasi sistem. Implementasi menambah isi ke arsitektur yang stabil. Menyediakan visualisasi implementasi.
Implementasi Tugas-tugas pada tahap implementasi meliputi : Implementasi desain dalam komponen-komponen {source code, script, binary, executable, dsb.} Sempurnakan arsitektur. Rencanakan integrasi sistem pada setiap iterasi. incremental : kecil dan langkah yang teratur. Distribusi sistem : petakan komponen ke node-node. Implementasi class-class desain dan subsystem. Komponen-komponen unit testing. Integrasi komponen-komponen ( kompile dan link ke dalam satu atau lebih executable ) untuk integrasi dan testing sistem. Implementasi Aktivitas Workflow dan Workers Berikut model implementasi aktivitas workflow dan workers :
Testing Aktivitas yang dilakukan meliputi : Verifikasi hasil dari implementasi dengan testing setiap pembangunan Rencanakan test pada setiap iterasi Test integrasi untuk setiap pembangunan dalam iterasi Test sistem untuk akhir iterasi Test desain dan implementasi dengan membuat Kasus-kasus test untuk menentukan apa yang akan ditest Prosedur-prosedur test yang menentukan bagaimana melakukan test Komponen test executable untuk mengotomasi test Lakukan test dan secara sistematis menangani hasil test Pembangunan yang cacat dikirim ke workflow yang lain (misalnya desain dan implementasi) untuk perbaikan kecacatan Testing pada daur hidup software Pada umumnya, dimanapun ada hasil implementasi, terdapat sebuah test. Sebagai contoh adalah test pada setiap pembangunan. Phasa Inception Pada phasa ini meliputi : perencanaan test awal, test prototype. Phasa Elaboration Meliputi : test dasar arsitektural. Phasa Construction Meliputi : testing pada setiap pembangunan. Phasa Transition Meliputi : re-test perbaikan dan test regresi. Test regresi merupakan test terhadap pembanguan lama saat pembangunan baru untuk meyakinkan tidak ada kesalahan dalam pembangunan baru. Menyusun model test Membuat kasus-kasus test yang baru untuk setiap pembangunan. Perbaiki kasus-kasus test lama menjadi test regresi. Pindahkan testing, prosedur dan komponen test kuno yang berhubungan. Prosedur Test Menentukan bagaimana melakukan satu atau beberapa test case atau sebagian dari padanya. Instruksi untuk tester dalam manual test case. Instruksi untuk interaksi dengan tool tes otomatis untuk membuat komponen tes executable kemudian instruksi untuk mengintegrasikan dan mengeksekusi komponen tes tersebut Satu prosedur tes mungkin meliputi beberapa test case. Satu prosedur tes mungkin membutuhkan beberapa test case.
Instruksi prosedur tes sering merefleksikan deskripsi flow-of-events, termasuk nilai input, bagaimana untuk memasukkan nilai input dan bagaimana memverifikasi hasil.