Sasaran Agar mahasiswa dapat: Memahami permasalahan dalam pengembangan perangkat lunak Memahami 6 (enam) praktik terbaik dalam pengembangan perangkat lunak Memahami penggunaan Rational Unified Process (RUP) dalam praktik pengembangan perangkat lunak
Agenda Permasalahan Pengembangan Software Praktik Terbaik Pengembangan Software Penggunaan Rational Unified Process (RUP)
Permasalahan Pengembangan Software
Permasalahan Pengembangan Software Kebutuhan pengguna dan atau bisnis tidak terpenuhi. Modul-modul tidak terintegrasi. Sulit untuk dikelola dan dipelihara. Sulit menemukan kesalahan. Kinerja rendah dibawah beban tinggi. Kurangnya koordinasi tim. Isu-isu pengembangan dan release.
Praktik Terbaik Pengembangan Software
Praktik Pengembangan Software Pengembangan iteratif. Mengelola kebutuhan. Menggunakan arsitektur komponen. Dimodelkan secara visual (UML) Verifikasi kualitas. Mengelola perubahan.
Praktik Pengembangan Software Pengembangan Iteratif Mengelola Kebutuhan Menggunakan Arsitektur Komponen Model Visual Verifikasi Kualitas Mengelola Perubahan
Praktik 1: Pengembangan Iteratif Waktu dan uang yang dihabiskan dalam mengimplementasikan suatu desain yang salah, tidak dapat dikembalikan. Keterlambatan – kesalahan desain mengakibatkan biaya membengkak dalam pelaksanaan bahkan kegagalan proyek. Riset membuktikan: 30% dari proyek s/w dibatalkan sebelum selesai. 50% dari proyek memiliki kenaikan dana 180%+.
Karakteristik Model Waterfall Menghambat penanganan resiko Mengukur kemajuan melalui kajian pekerjaan Menghambat proses integration dan testing Requirement Analysis Design Code & unit test Subsystem integration System testing time
Pengembangan Iteratif vs Waterfall Menerapkan waterfall secara iteratif terhadap pengembangan sistem Iterasi lebih awal akan menghasilkan resiko yang lebih besar di awal Setiap iterasi menghasilkan suatu executable release Setiap iterasi termasuk integration dan test. waterfall risk Risk reduction iterative time
Praktik 2: Mengelola Kebutuhan Kebutuhan adalah dinamis, artinya berubah sepanjang proses development. Mengorganisir dan mendokumentasi fungsionalitas dan batasan yang diperlukan. Mengevaluasi perubahan dan menentukan dampaknya. Memantau dan mendokumentasi keputusan. Mengelola perjanjian antara pelanggan dengan tim proyek. Kebutuhan-kebutuhan untuk memantau elemen-elemen proyek seperti Desain, Implementasi, QA, testing, manajemen proyek, dan lain-lain.
Langkah Pengelolaan Kebutuhan Menganalisis permasalahan. Mengetahui kebutuhan pengguna. Mendefinisikan sistem. Menentukan lingkup. Memperbaiki definisi sistem. Membangun sistem yang benar.
Praktik 3: Menggunakan arsitektur komponen Dasar untuk melakukan penggunaan kembali Penggunaan kembali komponen. Penggunaan kembali arsitektur. Dasar untuk manajemen proyek Perencanaan Staffing Delivery Kontrol intelektual Mengelola kompleksitas Mengelola integritas
Praktik 4: Dimodelkan secara visual (UML) Mengapa perlu pemodelan visual? Mengakomodasi struktur dan behavior. Menunjukkan bagaimana elemen-elemen sistem saling bersesuaian. Menjaga desain dan implementasi tetap konsisten. Menyembunyikan atau memunculkan detil bila perlu. Meningkatkan komunikasi. Jawabannya : UML
Pemodelan Visual dengan UML Use case diagram Sequence diagram Class diagram Object diagram Collaboration diagram Model Component diagram StateChart diagram Activity diagram Deployment diagram
Pemodelan Visual dengan UML Use-case diagram Statechart diagram Class diagram Use Case 1 GrpFile read( ) open( ) create( ) fillFile( ) rep Repository name : char * = 0 readDoc( ) readFile( ) (from Persistence) FileMgr fetchDoc( ) sortByName( ) DocumentList add( ) delete( ) Document name : int docid : int numField : int get( ) close( ) sortFileList( ) fillDocument( ) fList 1 FileList File read() fill the code.. Actor A Actor B Use Case 2 Use Case 3 Deployment diagram Collaboration diagram 9: sortByName ( ) Document FileManager GraphicFile File Repository DocumentList FileList mainWnd : MainWnd Window95 Windows95 1: Doc view request ( ) Windows95 L 2: fetchDoc( ) 4: create ( ) gFile : GrpFile ¹®¼°ü¸® Ŭ¶óÀ̾ðÆ®.EXE ¹®¼°ü¸® ¾ÖÇø´ 8: fillFile ( ) Windows user : Clerk NT Solaris fileMgr : FileMgr 3: create ( ) ¹®¼°ü¸® ¿£Áø.EXE 6: fillDocument ( ) Alpha Windows UNIX NT ÀÀ¿ë¼¹ö.EXE 5: readDoc ( ) 7: readFile ( ) Mainframe IBM repository : Repository document : Document µ¥ÀÌŸº£À̽º¼¹ö Component diagram mainWnd fileMgr : user FileMgr document : Document gFile repository Target System »ç¿ëÀÚ°¡ ¿äûÇÑ´Ù. ƯÁ¤¹®¼¿¡ ´ëÇÑ º¸±â¸¦ 1: Doc view request ( ) 2: fetchDoc( ) 3: create ( ) 4: create ( ) 5: readDoc ( ) ÈÀÏ°ü¸®ÀÚ´Â Àоî¿Â °´Ã¼¿¡ ¼³Á¤À» ¿äûÇÑ´Ù. ¹®¼ÀÇ Á¤º¸¸¦ ÇØ´ç ¹®¼ 6: fillDocument ( ) Forward and Reverse Engineering 7: readFile ( ) 8: fillFile ( ) Á¤·ÄÀ» ½ÃÄÑ È¸é¿¡ º¸¿©ÁØ´Ù. °´Ã¼µé¿¡ ´ëÇØ À̸§º°·Î È¸é °´Ã¼´Â ÀоîµéÀÎ 9: sortByName ( ) Sequence diagram
Praktik 5: Verifikasi Kualitas Permasahan s/w 100 – 1000 kali lebih mahal untuk ditemukan dan diperbaiki sesudah diimplementasikan Biaya perbaikan s/w Biaya kehilangan peluang Biaya kehilangan pelanggan cost inception elaboration construction transition
Bagaimana Melakukan Verifikasi Kualitas? Uji untuk skenario utama. Uji seluruh dimensi kualitas s/w: Fungsionalitas Reliabilitas Kinerja Otomasi mengurangi waktu dan upaya pengujian. Uji tiap iterasi.
Praktik 6: Mengelola Perubahan Change request management (CRM) Configuration status reporting. Configuration management.(CM) Change tracking. Version selection. Software manufacture.
Pengenalan Rational Unified Process (RUP)
Apakah artinya Proses? “Suatu Proses didefinisikan Siapa melakukan Apa, Kapan dan Bagaimana untuk meraih sasaran tertentu” Memberikan panduan demi pengembangan software yang lebih efisien. Mengurangi resiko dan meningkatkan kepastian. Meningkatkan visi dan budaya bersama. Menerapkan Best Practices.
Tahap Siklus RUP Insepsi (Inception). Elaborasi (Elaboration). Konstruksi (Construction). Transisi (Transition). Inception Elaboration Construction Transition time
Tahap Siklus RUP Insepsi (Inception): mendefinisikan lingkup dari proyek. Elaborasi (Elaboration): perencanaan proyek, spesifikasi fitur, arsitektur dasar. Konstruksi (Construction): membangun produk. Transisi (Transition): transisi produk ke komunitas pengguna akhir.
Milestones pada Tahap Siklus RUP Inception Elaboration Construction Transition time Lifecycle Objective Milestone Architecture Initial Operational Capability Product Release
Iterasi dan Tahapan Iterasi adalah suatu urutan aktivitas berdasarkan pada rencana dan kriteria evaluasi yang telah ditetapkan, menghasilkan executable release (internal atau eksternal). Preliminary Iteration Architect. Devel. Transition Inception Elaboration Construction Minor Milestones: Releases
Model Alur Kerja (Workflow)
Iterasi dan Tahapan dalam RUP Dalam iteration, kita berjalan melewati workflows Workflows aktivitas kelompok lokal
Notasi RUP Peran yang dimainkan oleh individu atau tim dalam organisasi Satuan pekerjaan yang dilakukan Actor Activity Actor Describe a Use-Case Use Case Specifier Potongan informasi yang dihasilkan, dimodifikasi, atau digunakan di proses responsible for Artifact Use-Case Package Use Case
Actor Melakukan Aktivitas dan Menghasilkan Artifact Example- Workflow Detail: Define the System
Mencetak Tim Kinerja Tinggi Performance Engineer Developer Analyst Project Manager Tester Release Best Practices Team-Based Best Practices Effective Software Process Team Success + =
Tugas Rekayasa perangkat lunak Object Oriented (OO) saat ini secara cepat telah menggantikan pendekatan pengembangan yang konvensional. Seperti halnya teknologi lain, OO memiliki sisi buruk. Menggunakan internet maupun sumber lain, tuliskan paper singkat mengenai kritik Anda terhadap OO dan mengapa kita harus berhati-hati dalam menerapkan OO.
SELESAI