Models of Software
Evolution: Life Cycle Model
Magister Teknologi Informasi Fakultas Ilmu Komputer
Universitas Indonesia
2
Pengantar Pengantar
n
Software Evolution: rangkaian aktivitas yang terjadi selama pengembangan, pemakaian dan pemeliharaan sistem perangkat lunak.
3
Aktivitas dalam
daur hidup perangkat lunak Aktivitas dalam
daur hidup perangkat lunak
n
System Initiation/Adoption
npengembangan sistem baru ataukah melengkapi sistem yang sudah ada.
n
Requirement Analysis and Specification
nidentifikasi masalah-masalah yang diharapkan dapat diselesaikan oleh sistem yang baru.
4
Aktivitas dalam
daur hidup perangkat lunak Aktivitas dalam
daur hidup perangkat lunak
n Functional Specification or Protoyping
n identifikasi dan formalisasi objek-objek, atributnya dan operasi-operasinya beserta batasan- batasannya.
n Partition and Selection (Build/Buy/Reuse)
n dengan hasil aktivitas sebelumnya, sistem dibagi- bagi ke dalam subsistem-subsistem. Kemudian diidentifikasi apakah harus membangun baru, membeli atau me-reuse.
5
Aktivitas dalam
daur hidup perangkat lunak Aktivitas dalam
daur hidup perangkat lunak
n
Architectural Configuration Specification
npendefinisian inter-koneksi antara modul- modul dari sistem.
n
Detailed Component Design Specification
npendefinisian layanan-layanan tingkat prosedural serta data-data yang ditransformasikan.
6
Aktivitas dalam
daur hidup perangkat lunak Aktivitas dalam
daur hidup perangkat lunak
n Component Implementation and Debugging
n implementasi spesifikasi yang telah dibuat ke program sumber yang dapat dioperasikan dan divalidasi.
n Software Integration and Testing
n pengecekan keseluruhan integritas konfigurasi arsitektur sistem perangkat lunak: verifikasi konsistensi dan kelengkapan modul, verifikasi hubungan antar sumber daya
7
Aktivitas dalam
daur hidup perangkat lunak Aktivitas dalam
daur hidup perangkat lunak
n Documentation Revision and System Delivery
n penyusunan dokumentasi dari perangkat lunak yang dibangun untuk keperluan system support.
n Training and Use
n penyusunan bantuan instruksional dan petunjuk dari kemampuan sistem dan batasan sistem untuk penggunaan sistem yang efektif.
8
Aktivitas dalam
daur hidup perangkat lunak Aktivitas dalam
daur hidup perangkat lunak
n
Software Maintenance
ndukungan terhadap pengoperasian sistem, meliputi: peningkatan fungsi, perbaikan, peningkatan unjuk kerja dan konversi.
9
Software Life Cycle Models Software Life Cycle Models
n
Build and Fix Model
n
Waterfall Model
n
Prototyping
n
Incremental Model
n
Spiral Model
10
Build and Fix Model
n
Product is constructed without
specifications or any attempt at design.
n
Developers simply build a product that is reworked as many times as necessary to satisfy the client.
n
This models may work well on short programming (100-200 LOC).
Build and Fix Model
Build first version
Modify until client is satisfied
Operations mode
Development Maintenance
Build and Fix Model
1 2 3 4 10 30
200
0 20 40 60 80 100 120 140 160 180 200
1
Planning Requirements Analysis Design Implementation Integration Maintenance Approximate relative cost to detect and correct a fault
Source: Barry Boehm, Software Engineering Economics, 1981, p.40
13
Build and Fix Model
n
Cost of this approach is far greater than the cost of a properly specified and carefully designed product.
n
Maintenance can be difficult without specification or design documents, and the chances of a regression fault occuring are considerably greater.
14
Waterfall Model Waterfall Model
System Engineering
Analysis Design
Code
Testing
Maintenance
15
Waterfall Model Waterfall Model
n
Titik awal dan titik akhir yang eksplisit.
n
Setiap tahapan didefinisikan dengan jelas.
n
System Engineering
nPengumpulan kebutuhan seluruh elemen sistem.
16
Waterfall Model Waterfall Model
Software Software Hardware Hardware
People People Database
Database Documents Documents
Procedures Procedures
System System
17
Waterfall Model Waterfall Model
n
Sofware Requirements Analysis
npengumpulan kebutuhan dengan berfokus pada perangkat lunak.
nmeliputi:
ndomain informasi
nfungsi
nunjuk kerja
nantar muka
18
Waterfall Model Waterfall Model
n
Design
nperancangan stuktur data
narsitektur perangkat lunak
nrincian prosedural
nkarakteristik antar muka
n
Coding
npenerjemahan perancangan ke bentuk yang dapat dimengerti oleh mesin.
19
Waterfall Model Waterfall Model
n
Testing
npengujian lojikal
npengujian fungsional
nmenemukan kesalahan dan memastikan suatu masukan akan diproses menjadi keluaran yang sesuai dengan yang diinginkan.
20
Waterfall Model Waterfall Model
n
Maintenance
nbagian terujung dari siklus pengembangan dan dilakukan setelah perangkat lunak dipergunakan.
nKegiatan:
nCorrective Maintenance
nmengkoreksi kesalahan pada perangkat lunak, yang baru terdeteksi pada saat perangkat lunak dipergunakan.
21
Waterfall Model Waterfall Model
n Adaptive Maintenance
npenyesuaian dengan lingkungan baru, misalnya sistem operasi.
nsebagai tuntutan atas perkembangan teknologi sis-tem komputer, misalnya penambahan printer driver.
n Perfective Maintenance
nbila perangkat lunak sukses dipergunakan serta memuaskan pemakai. Pemeliharaan ditujukan untuk menambah kemampuannya seperti memberikan fungsi- fungsi tambahan, peningkatan kinerja dsb.
22
Waterfall Model Waterfall Model
nPreventive Maintenance
nditurunkan dari konsep pemeliharaan perangkat keras. Perubahan perangkat lunak dilakukan dengan tujuan:
nPerangkat lunak lebih mudah dipelihara
nkehandalan perangkat lunak meningkat
n
Kelebihan
nLebih disiplin
nDorongan bahwa dokumentasi selalu tersedia untuk tiap tahapan (documentation driven).
nDorongan bahwa setiap produk yang dihasilkan selalu dicek
Waterfall Model Waterfall Model
n
Kekurangan
nPengguna hanya mendapatkan deskripsi yang panjang, rinci, dan
‘agak membosankan’
untuk dibaca.
nPengguna baru melihat produk setelah selesai diprogram.
Saya tahu ini yang saya minta, tapi bukan ini yang sebenarnya saya inginkan.
Waterfall Model
Waterfall Model
25
Prototyping Prototyping
Pengembang Pengembang
Pemakai Pemakai
26
Prototyping Prototyping
n
Teknik untuk membangun versi sistem yang dikurangi fungsionalitasnya sebelum
pengembangan yang sebenarnya.
27 n
Bisa saja hanya data capture dan cetak
report, tanpa file updating, error handling, validasi.
n
Mempercepat tahap perancangan.
Prototyping Prototyping
28 n Pengembang bekerja sama dengan calon
pemakai dalam mengevaluasi prototype.
n Sebutan lain: Rapid Prototyping
n Prototyping dimungkinkan karena terse- dianya teknologi pengembangan perangkat lunak baru. Contoh: software prototyping languages dan environment-nya, reusable software dan application generator.
Prototyping Prototyping
29
Prototyping Prototyping
Requirements Requirements gathering gathering and refinement and refinement
Quick Quick Design Design
Building Building Prototype Prototype Customer
Customer Evaluation of Evaluation of prorotype prorotype Refining
Refining Prototype Prototype Engineer Engineer Product Product
30
Prototyping Prototyping
nPrototype bukan produk akhir, prototype hanyalah model.
nSistem yang lengkap dapat dibangun dengan teknik:
nevaluasi/pengembangan
nbuang dan buat baru, hanya demo
nreuse sebagian/semuanya dari sistem perangkat lunak yang sudah ada.
31 n
Kekurangan
nPengguna sering menganggap prototype adalah produk akhir.
nAnggapan di sisi user bahwa perubahan dapat dilakukan dengan mudah dan secepat prototype.
nUser minta lebih banyak setelah melihat prototype.
Prototyping Prototyping
32
Joint Application Design (JAD)
n Dalam penerapan model prototyping, peran user sangat diharapkan dalam memberikan feedback.
n Oleh karenanya, penerapan JAD dimana pengembang dan user
bekerja bersama dalam satu tim akan sangat mendukung penerapan prototyping.
33
Prototyping: Teknik Reusability Prototyping: Teknik Reusability
n mengkonfigurasikan dan mengkhususkan komponen perangkat lunak yang sudah ada ke sistem aplikasi yang akan dibangun.
n cocok untuk pendekatan object-oriented.
n Contoh populer: sistem pengaturan interaksi, penggunaan kepustakaan yang sudah ada.
34 define
define objects objects
browse browse library library
build build custom custom classes classes assemble assemble prototype prototype review
review result result refine
refine requirements requirements refine refine objects objects requirements requirements
class class library library
Prototyping: Teknik Reusability Prototyping: Teknik Reusability
Prototyping:
Application Generation Prototyping:
Application Generation
n Sangat berguna dalam rangka mempercepat pembuatan prototype.
n Sangat populer untuk aplikasi basis data.
n Contoh:
n sistem interaksi untuk aplikasi basis data
n report generator
n menu generator
n screen generator
Incremental Model
n Produk dirancang, diprogram, diintegrasikan, dan diuji sebagai serangkaian serial produk yang incremental.
n Setiap produk terdiri dari program dari berbagai modul yang saling berinteraksi untuk menyediakan sebuah kemampuan fungsional yang spesifik.
n Satu atau beberapa fungsi khusus ditambahkan pada setiap release.
37 n Sistem dikembangkan dengan memberikan
fungsi-fungsi dasar terlebih dahulu dan memberikan sistem yang lebih dikembangkan dalam jadwal yang teratur.
n Model ini cukup populer karena termasuk dapat mengakomodir pemeliharaan sistem.
Setiap release dapat merupakan periodisasi pemeliharaan sistem.
n Sebutan lain: Incremental Release.
Incremental Model
38 n
Jika produk dibuat dalam release yang
hanya sedikit maka tidak ada bedanya dengan build and fix model.
n
Namun jika terlalu sering, akan terlalu banyak waktu dihabiskan untuk melakukan integration testing.
Incremental Model
39
Incremental Model
n Incremental selalu menghasilkan produk operasional pada setiap release namun hanya memenuhi sebagian kebutuhan pengguna.
Model ini dapat memberikan produk operasional hanya dalam beberapa minggu dibandingkan model waterfall atau prototyping.
n Perkenalan kepada produk baru yang
berlangsung secara bertahap dapat mengurangi
‘dampak trauma’ dari implementasi produk baru secara keseluruhan.
40
Incremental Model
n
Release yang bertahap tidak
membutuhkan biaya yang sangat besar pada satu saat. Cash flow dapat lebih diatur dan klien dapat menghentikan pengembangan setiap saat.
n
Setiap release yang dibuat harus dapat bekerja sama dan tidak merusak release sebelumnya.
41
Spiral Model Spiral Model
n
Membagi proses menjadi 4 kuadran
nplanning
nrisk analysis
nengineering
ncustomer evaluation
n
Memperhatikan formal risk analysis
n
Hanya cocok untuk software berskala besar.
42
Spiral Model Spiral Model
Risk analysis Risk analysis Planning
Planning
Customer Customer Evaluation
Evaluation EngineeringEngineering
risk analysis based on risk analysis based on initial requirements initial requirements
risk analysis based on risk analysis based on customer reaction customer reaction
go, no go decision go, no go decision
toward a completed toward a completed system system initial software prototype initial software prototype next level prototype next level prototype engineered system engineered system customer
customer evaluates evaluates initial requirements initial requirements gathering and gathering and project planning project planning