Software Process Teknik Informatika S1 Rekayasa Perangkat Lunak 1. Linear Sequential Model 1. Waterfall Model 2. V Model 3. RAD Model 2. Prototyping Model 3. Evolutionary Model 1. Incremental Model 2. Spiral Model 3. Component Assembly Model 4. Concurrent Development Model 4. Formal Method Software Process Model 5. Unified Process 6. 4GT Model 7. Agile Methods (ex: XP) 1. Waterfall Model 1. Waterfall Model Sebuah pendekatan pengembangan perangkat lunak yang sistematik dan sekuensial. Disebut juga Classic Life Cycle. Paradigma yang sudah lama sekali, tetapi masih banyak yang memakai karena dianggap masih sesuai dengan keadaan sekarang. Roger S, Pressman 1. Waterfall Model 1. Waterfall Model Ian Sommerville Alan Dennis 1
Karakteristik Waterfall Model Kelebihan Waterfall Model 1. Setiap tahap menghasilkan dokumen di akhir tahapnya 2. Tidak ada overlapping pada setiap tahapnya 3. Setiap tahapan akan punya pengaruh besar pada hasil di tahap berikutnya 4. Memerlukan biaya besar jika melakukan rework 1. Menghasilkan mature process pada setiap tahapnya 2. Mudah untuk diaplikasikan pada sebuah proyek 3. Menghasilkan sistem yang terstruktur dengan baik 4. Memiliki tingkat visibilitas yang tinggi (setiap tahap mempunyai dokumen yang jelas) Kekurangan Waterfall Model Modified Waterfall Model (M.Kochanski) 1. Ketidak fleksibelan antar tahapan Sashimi 2. Sulit dalam merespon perubahan kebutuhan customer 3. Model ini hanya cocok jika: a. Kebutuhan customer sudah sangat jelas b. Perubahan kebutuhan dibatasi Modified Waterfall Model Waterfall with Spiral Introduction (M.Kochanski) Modified Waterfall Model (M.Kochanski) Waterfall with Subprojects 2
V model Rapid Application Development (RAD) RAD = Rapid Application Development Adaptasi dari waterfall model yang: menekankan siklus pengembangan perangkat lunak yang sangat pendek; menggunakan pendekatan konstruksi berbasis komponen. Menciptakan sistem fungsional yang utuh dalam waktu 60-90 hari. Rapid Application Development (RAD) Rapid Application Development (RAD) team #3 business Business Modelling team #1 business team #2 business data data data process application generation process testing & turnover Memodelkan fungsi-fungsi bisnis untuk menjawab pertanyaanpertanyaan: Informasi apa yang mengendalikan proses bisnis? Informasi apa yang dimunculkan? Ke mana infomasi itu pergi? Siapa yang process application generation application generation testing & turnover memprosesnya? Data Modelling 60-90 hari testing & turnover Aliran informasi yang didefinisikan pada fase business modelling ditransformasikan ke dalam serangkaian obyek data. Rapid Application Development (RAD) Prototyping Model Process Modelling Mentransformasikan obyek data pada suatu fungsi yang menghasilkan aliran informasi yang dibutuhkan. Membantu software engineer untuk mendapatkan kebutuhan berupa feedback cepat dari customer Application Generation Mengkonstruksi perangkat lunak dengan memakai komponen yang ada (bila memungkinkan) atau menciptakan komponen yang dapat dipakai lagi. Testing and Turnover Menguji komponen baru. 3
Prototyping Model Prototyping Model Dipakai jika: 1. Sistem mempunyai resiko tinggi tidak jelas permasalahannya 2. Lebih fokus pada perancangan dialog user komputer (Sistem dengan User) bagaimana membuat dialog yang baik, ramah, mudah? 3. Sistem diminati oleh banyak pemakai mencari kesepakatan (dasar untuk menyamakan persepsi) 4. User ingin cepat selesai user tidak sabar menunggu prototipe segera memperlihatkan bentuk kerja sistem 5. Masa pakai singkat sistem hanya dipakai beberapa kali saja 6. Ingin menunjukkan inovasi pengembang dapat menunjukkan kecanggihan 7. Kebutuhan berubah-ubah user sulit menjelaskan kebutuhan Prototyping Model Type of Prototyping 1. Evolutionary prototyping 2. Throw-away prototyping 22 Evolutionary Prototyping Throw-away Prototyping Prototype Requirements Prototype Requirements System Programming Prototype Programming Prototype Programming System Testing Reviews Reviews Validates? Reviews Validates? Validates? Release 23 Release 24 4
Prototyping Speciality Prototyping Speciality Frekuensi komunikasi user developer meningkat pengembang akan selalu meminta pendapat user Membantu analis dalam menentukan kebutuhan user yang sebenarnya meminimalkan salah persepsi Peran user meningkat evaluasi oleh user berkali-kali user bisa memberikan masukan setiap saat 25 Pengembangan lebih cepat program bisa langsung dibuat user melihat perkembangan tahap demi tahap Implementasi mudah user sudah mengenal perangkat lunak yang dikembangkan user tidak akan merasa asing sejak awal user sudah merasa memiliki 26 Prototyping Weakness Prototyping Weakness User sibuk user & pengembang harus sama-sama memiliki komitmen menyediakan waktu untuk bertemu. User sulit melakukan evaluasi bentuk prototipe sering berubah, disesuaikan dengan kebutuhan user. User ingin cepat selesai bentuk program sudah terlihat sejak awal. user merasa tidak akan lama lagi selesai. pengembang sering mengabaikan dokumentasi. 27 User berharap terlalu banyak keseringan evaluasi & komunikasi membuat user menjadi berubah keinginan dan tidak pasti dengan kebutuhan. Prototipe bekerja tidak efisien lebih mementingkan keberhasilan. 28 Evolutionary Model Incremental Model Incremental Model merupakan gabungan antara model linier sekuensial dan prototyping. Setiap linier sekuen menghasilkan produk yang deliveriables. Increment pertama merupakan produk inti (core), yang mengandung persyaratan/kebutuhan dasar. Penambahan dilakukan pada increment-increment berikutnya. Incremental Model Evolutionary Model 5
2. Spiral Model Digunakan software engineer skala besar. Growing of software menjadi ide dari model proses ini 2. Spiral Model Evolutionary process (pengembangan bertingkat) Menggabungkan keunggulan prototyping dan waterfall Memungkinkan dikembangkannya perangkat lunak secara bertahap (incremental) dan cepat. Terbagi atas 6 tahapan: * customer communication * planning * risk analysis * engineering * construction & release * customer evaluation 2. Spiral Model 3. Component Assembly Model menentukan tujuan, alternatif, batasan sistem dan budget Customer Communication Planning Integration and test plan development plan development plan Requirements Risk Analysis analisa resiko berdasarkan evaluasi user analisa resiko berdasarkan kebutuhan awal prototipe awal Engineering look up components in library extract components if available identify candidate components build components if unavailable construct n- th iteration of system put new components in library Project Entry Point Customer Evaluation Construction & Release prototipe tingkat berikutnya produk-jadi engineering entry point Engineering, contruction & release risk analysis planning customer evaluation Customer communication 4. Conccurent Model 4. Conccurent Model Model proses yang memungkinkan perubahan keadaan Analysis activity none dari under development ke awaiting change (berhenti sementara) ketika terjadi perubahan kebutuhan A waiting changes Under development Under review Under revision baselined done 6
4. Conccurent Model Aktivitas sistem dan komponen yang berlangsung secara simultan dan dapat dimodelkan dengan menggunakan pendekatan orientasi keadaan; Aplikasi klien/server khusus yang diimplementasikan dengan banyak komponen yang masing-masing bisa dirancang dan direalisasikan secara konkuren. Formal Method Mencakup sekumpulan aktivitas yang membawa kepada spesifikasi matematis perangkat lunak komputer; Memungkinkan software engineer untuk mengkhususkan, mengembangkan, dan mem-verifikasi sistem berbasis komputer dengan menggunakan notasi matematis yang tepat; Variasi dari pendekatan ini disebut clean-room software engineering. UNIFIED PROCESS Fourth Generation Techniques (4GT) Model proses yang menggabungkan beberap konsep unggulan dari model proses lainnya. Penekanan pada model proses ini, yaitu: 1. Komunikasi dengan customer secara intens (streamlined) Terkait dengan penggunaan tools. Pengembang software mendefinisikan karakteristik software secara 'high level'; tool secara otomatis akan membangkitkan kode. 2. Arsitektur yang reusable dan terbuka pada perubahan kebutuhan 3. Alur proses yang iterative atau incremental Fourth Generation Techniques (4GT) Fourth Generation Techniques (4GT) 4GT mempercepat proses pengembangan perangkat lunak. requirements gathering Proses perancangan dan dokumentasi baik. Masih dipertanyakan beberapa pihak: efisiensi kode yang dihasilkan, kemudahan (relatif). design strategy implementation using 4GL testing 4GL/ Fourth generation language 7
AGILE METHOD AGILE METHOD Model proses yang menekankan pada fast delivery dari setiap poin aktivitas dalam rangka memperpendek jangka waktu proyek pembangunan perangkat lunak. AGILE METHOD AGILE METHOD (Extreme Programming) Just a few rules that are easy to learn and follow Streamline the SDLC * Eliminate much of the and documentation * Emphasize simple, iterative application development Examples include: * Extreme Programming (XP) Core Values of XP 1. Communication All to All 2. Simplicity refactoring 3. Feedback Embrace Change 4. Courage Quality First, test and efficient coding * Scrum * Dynamic Systems Development Model (DSDM) AGILE METHOD (Extreme Programming) AGILE METHOD (Extreme Programming) 1. User Stories about system do 2. Code small program using defined standards * Naming conventions * Coding practices 3. User Feedback 4. Repeat 8
TERIMA KASIH 9