1 THE SOFTWARE PROCESS Ign.F.Bayu Andoro.S, M.Kom
Introduction 2 Proses perangkat lunak telah menjadi perhatian yang serius selama dekade terakhir Proses perangkat lunak merupakan sebuah kerangka kerja untuk tugas-tugas yang dibutuhkan dalam membangun perangkat lunak yang berkualitas tinggi Proses perangkat lunak menentukan pendekatan yang digunakan ketika perangkat lunak dikembangkan, termasuk teknologi untuk proses, metode teknis dan alat-alat otomatis
Software Engineering Layers 3 Topangan proses (automated/semiautomated) Tools Methods Process Quality Teknik membangun perangkat lunak (how to building software) Fondasi (foundation) [Pressman 97] Batu landasan (bedrock)
Software Quality 4 Critical Quality Attributes Maintainability Dependability Efficiency Usability [Sommerville 96] Other Attributes Completeness Compatibility Portability Internationalization Understandability Scalability Robustness Testability Reusability Customizability
Software Process by SEI 5 Five Process Maturity Levels Level 1: Initial - proses PL yang ditandai sebagai ad hoc dan chaotic (kacau). Level 2: Repeatable manajemen proyek untuk penelusuran masalah biaya, jadwal, dan fungsionalitas proyek-proyek terdahulu Level 3: Defined - Pendokumentasian, standarisasi, dan pengintegrasian pada perangkat lunak organisasi besar Level 4: Managed - Pengukuan detail proses dan kualitas produksi perangkat lunak Level 5: Optimizing - Penambahan proses melalui umpan balik kuantitatif, gagasan inovatif pengujian, dan teknologi
Process Principles 6 Menentukan semua aktivitas mayor Menggunakan resources dalam kumpulan terbatas untuk menghasilkan produk menengah dan akhir Dapat terdiri atas sub-processes Setiap aktivitas masukan dan keluaran harus memiliki kriteria Aktivitas diorganisir secara urut Mempunyai sekumpulan panduan untuk menjelaskan tujuan Batasan dapat diterapkan pada aktivitas, resource atau produk
Software Development Stages 7 Requirements Analysis & Specification Conceptual/System Design Detailed/Program Design Implementation/Coding Unit & Integration Testing System Testing System Delivery Maintenance
Software Process Models 8 Linier Sequential Model Waterfall Model V Model RAD Model Prototyping Model Evolutionary Model Incremental Model Spiral Model Component Assembly Model Concurrent Development Model Formal Model Fourth Generation Techniques
Waterfall Model 9 REQUIREMENTS ANALYSIS SYSTEM DESIGN PROGRAM DESIGN CODING UNIT & INTE- GRATION TESTING SYSTEM TESTING [Pfleeger 98] ACCEPTANCE TESTING OPERATION & MAINTENANCE
V Model 10 REQUIREMENTS ANALYSIS Validate requirements OPERATION & MAINTENANCE SYSTEM DESIGN Verify design SYSTEM TESTING ACCEPTANCE TESTING PROGRAM DESIGN UNIT & INTE- GRATION TESTING [Pfleeger 98] CODING
RAD Model 11 team #3 business modeling team #1 business modeling team #2 business modeling data modeling data modeling process modeling application generation data modeling process modeling testing & turnover process modeling application generation application generation testing & turnover testing & turnover 60-90 hari
Prototyping Model 12 Listen to Customer Build/Revise Mock-Up Customer Test-drives Mock-up [Pressman 97]
Prototyping Model 13 LIST OF REVISIONS LIST OF REVISIONS LIST OF REVISIONS revise prototype user/ customer review PROTOTYPE REQUIREMENTS PROTOTYPE DESIGN PROTOTYPE SYSTEM TEST SYSTEM REQUIREMENTS (sometimes informal or incomplete) DELIVERED SYSTEM [Pfleeger 98]
Incremental Model 14 system/information engineering analysis design code test delivery of 1st increment increment 2 analysis design code test delivery of 2nd increment increment 3 analysis design code test delivery of 3rd increment increment 4 analysis design code test delivery of 4th increment
Spiral Model 15 menentukan tujuan, alternatif, batasan sistem dan budget Planning Integration and test plan development plan development plan Requirements Risk Analysis analisa resiko berdasarkan evaluasi user analisa resiko berdasarkan kebutuhan awal Customer Communication prototipe awal Engineering prototipe tingkat berikutnya Project Entry Point Customer Evaluation Construction & Release Produk jadi
Component Assembly Model 16 Identify candidate components Look up components in library Construct n-th iteration of system Extract components if available build components if unavailable Put new componet in library entry point Customer communication planning risk analysis customer evaluation Engineering, contruction & release
Concurrent Development Model 17 Analysis activity none Under development A waiting changes Under review Under revision baselined done
3.8.4 Formal Model 18 Mencakup sekumpulan aktivitas yang membawa kepada spesifikasi matematis perangkat lunak komputer; Memungkinkan software engineer untuk mengkhususkan, mengembangkan, dan memverifikasi sistem berbasis komputer dengan menggunakan notasi matematis yang tepat; Variasi dari pendekatan ini disebut clean-room software engineering. Silahkan baca dibuku software engineering
Fourth Generation Techniques (4GT) 19 Terkait dengan penggunaan tools. Pengembang software mendefinisikan karakteristik software secara 'high level'; tool secara otomatis akan membangkitkan kode. 4GT mempercepat proses pengembangan perangkat lunak. Proses perancangan dan dokumentasi baik. Masih dipertanyakan beberapa pihak: efisiensi kode yang dihasilkan & kemudahan pemakaian (relatif).
4GT Techniques 20 requirements gathering design strategy implementation using 4GL testing
Terima Kasih 21