Tujuan
Mengenalkan models software proses Menjelaskan 3 proses model yang umum Menjelaskan proses outline untuk rekayasa kebutuhan, pengembangan software, testing dan evolusi Mengenalkan CASE technology sebagai pendukung aktifitas software process
Topics covered
Model proses software Proses iterasi Aktifitas proses Computer-aided software engineering
Pengembangan evolusioner
Spesifikasi, pengembangan dan validasi saling bersisipan
Banyak sekali varian dari model seperti pengembangan formal yang mirip dengan waterfall tapi spesifikasi terdiri dari beberapa langkah spesifikasi yang lebih formal.
Waterfall model
Pengembangan evolusioner
Pengembangan secara eksplorasi Tujuannya adalah untuk bekerja dengan customer dan mengembangkan final sistem. Harus dimulai dengan pemahaman kebutuhan secara detail dan menambahkan fitur baru yang diajukan pelanggan Throw-away prototyping Tujuannya adalah untuk mengerti kebutuhan sistem requirement. Dimulai dari pemahaman yang sedikit tentang requirement untuk klarifikasi apa yang dibutuhkan sebenarnya.
Evolutionary development
Pengembangan evolusioner
Problems Sistem memiliki struktur yang jelek Special skills dibutuhkan Applicability Small or medium size (sistem interaktif) Menjadi bagian dari sebuah sistem yang besar ( misal : user interface) Sistem dengan lifetime yang pendek
Reuse-oriented development
Proses iterasi
Untuk kebanyakan sistem besar perlu digunakan berbagai model pendekatan untuk berbagai bagian sistem sehingga harus digunakan model hibrid. Iterasi dapat diterapkan pada model proses generic diatas. Pendekatan relasi : pengembangan incremental Pengembangan spiral
Pengembangan inkremental
Pelanggan mengidentifikasi secara garis besar layanan (services) yang akan disediakan oleh sistem.mereka mengidentifikasi layanan mana yang paling penting dan mana yang paling tidak penting Layanan dengan prioritas tertinggi akan dikirimkan kepada pelanggan. Pada saat pengembangan, analisis persyaratan selanjutnya untuk inkrement lainnya dapat dilakukan, tetapi perubahan persyaratan untuk inkremen yang sedang dikerjakan tidak dapat diterima
Incremental development
Extreme programming
Pendekatan pengembangan berdasar pengembangan dan pengiriman dari masingmasing fungisonalitas terkecil Bergantung pada improvisasi code, keterlibatan user dalam team pengembang, dan pemrogramana secara berpasangan
Pengembangan spiral
Proses direpresentasikan sebagai spiral Setiap loop pada spiral merepresentasikan fase dalam setiap proses Tidak ada fase tetap seperti spesifikasi atau desain loops dalam spiral dipilih berdasar apa yang dibutuhkan
Planning
Proyek ditinjau dan selanjutnya dibuat keputusan apakah akan diteruskan dengan fase spiral selanjutnya
Aktifitas proses
Spesifikasi perangkat lunak Desain software dan implemetasi Validasi software Evolusi software
Spesifikasi software
Proses menetapkan layanan apa yang dibutuhkan dan mendesak pada operasi & pengembangan sistem Proses rekayasa requirement :
Studi kelayakan Elisitasi dan analisis persyaratan Spesifikasi persyaratan Validasi persyaratan
Structured methods
Pendekatan sistematis untuk mengembangkan desain software Desain biasanya di dokmentasikan dengan model dalam bentuk grafis Model yang memungkinkan
Object model; Sequence model; State transition model; Structural model; Data-flow model.
Software validation
Verifikasi dan validasi (V&V) untuk menunjukkan sistem sudah sesuai dengan spesifikasi dan memenuhi kebutuhan untuk customer Cek dan review proses dan system testing Mengeksekusi / testing system dengan beberapa test case yang diturunkan dari spesifikasi dengan menggunakan data real untuk diproses ke sistem
Tahapan testing
Component or unit testing Masing-masing komponen di lakukan tes System testing Testing sistem secara keseluruhan. Testing emergent properties. Acceptance testing Testing dengan data customer untuk cek apakah sistem memenuhi kebutuhan user
Testing phases
Software evolution
Software diharapkan dapat berubah secara fleksible Apabila terdapat perubahan requirement karena kondisi bisnis, software yang mendukung bisnis tersebut juga harus berubah
System evolution
CASE classification
Klasifikasi membantu kita untuk mengerti tipe dari case tools dan dukungannya untuk aktifitas proses Functional perspective
Tools yang digunakan untuk fungsi spesifik
Process perspective
Tools yang digunakan untuk mendukung aktifitas proses
Integration perspective
Tools yang digunakan untuk mengklasifikasikan integrasi unit
CASE integration
Tools
Mendukung proses/tugas individual seperti konsistensi desain, editing text, dst
Workbenches
Mendukung fase proses seperti spesifikasi atau desain
Environments
Mendukung semua bagian untuk proses software
Key points
Software processes are the activities involved in producing and evolving a software system. Software process models are abstract representations of these processes. General activities are specification, design and implementation, validation and evolution. Generic process models describe the organisation of software processes. Examples include the waterfall model, evolutionary development and component-based software engineering. Iterative process models describe the software process as a cycle of activities.
Key points
Requirements engineering is the process of developing a software specification. Design and implementation processes transform the specification to an executable program. Validation involves checking that the system meets to its specification and user needs. Evolution is concerned with modifying the system after it is in use. The Rational Unified Process is a generic process model that separates activities from phases. CASE technology supports software process activities.