Software Engineering Software Process Software Engineering
Outline Lifecycle Model Firewall Model Alternatives to Firewall Model Software Process Evaluation Software Process Observation and Improvement Process Programming Software Engineering
Target Software Engineering Produk Seluruh produk – termasuk hasil sementara selama proses pengembangan dan dokumen – yang dihasilkan Process Tahapan/proses untuk menghasilkan produk di atas → Dalam software engineering, pertimbangan metodologi dalam proses pengembangan/pembangunan software, merupakan hal yang penting Software Engineering
Lifecycle Model Konsep lifecycle muncul pada awal lahirnya software engineering Pemodelan proses mulai dari perencanaan, perancangan dan pembuatan, pengoperasian, sampai ke penghapusan Istilah lifecycle muncul dari ilmu biologi, namun secara umum menunjuk pada proses suatu "benda" mulai dari lahir sampai mati, seperti pada manusia atau produk barang Software lifecycle menunjukkan bagaimana proses pengembangan software secara normative, dengan tujuan: Menentukan tahapan pengembangan yang standar Menggunakannya sebagai model manajemen proyek Sebagai dasar untuk menentukan standar metodologi, alat, sistem instrumen dokumen, dsb. Software Engineering
Firewall Model Model lifecycle software yang paling awal, yang sampai sekarang masih digunakan di beberapa tempat analysis design programming test operation/ maintenance Software Engineering
V-Model user acceptance test operation/ maintenance analysis design system test programming unit test Software Engineering
Firewall Model Explained Artikel yang memuat konsep firewall model pertama kali W. W. Royce. Managing the development of large software systems. In Proceedings WESCON, Aug. 1970. reprinted in the Proceedings 9th International Conference on Software Engineering, 1987. Belum ada istilah "firewall" maupun "lifecycle" Penekanan dalam firewall model: Batasan antar tahapan harus jelas, dan antar tahapan harus dijembatani dengan dokumentasi yang resmi Proses kembali ke tahapan sebelumnya harus diminimalisir Software Engineering
Alternatif Firewall Model "Proses kembali ke tahapan sebelumnya harus diminamilisir", dalam prakteknya tidak mungkin/tidak realistis Alternatif lain: Prototyping Model → Sebelum membuat softare sistem yang diinginkan, dibuat dulu sistem ujicoba → Untuk memastikan kebutuhan pengguna Sequential Evolving Type Model → Berbeda dengan prototyping, model ini semuanya sudah jelas, hanya dalam implementasinya dilalukan secara bertahap → eXtreme Programming, agile process Software Engineering
Software Process Evaluation Upaya untuk mengkaji, apakah proses yang digunakan sudah benar Upaya untuk menilai/memberikan ranking pada perusahaan dilihat dari proses yang digunakan Contoh: CMM → CMMI, SE-CMM ISO → ISO9000/ISO9001, ISO9000-3 SPICE → mirip CMM yang lahir di US, tapi SPICE lahir di Eropa Software Engineering
Process Programming M.Lehman (Chairman), 8th ICSE (International Conference on SE), 1985: "Proses adalah hal yang penting dalam pengembangan software" "Software processes are software too", L. Osterweil, 9th International Conference on Software Engineering, pp. 2–13, Apr. 1987 Proses pengembangan software dideskripsikan dalam secara procedural seperti halnya program, setelah itu di-"execute" Tujuan process programming: Mengkaji dan mencari solusi perbaikan pada proses yang dilakukan, terutama pada tahapan di mana faktor manusianya besar Melakukan penelitian terhadap bahasa dan ujicoba deskripsi pada sistem yang dapat menjelaskan proses secara sistematis Mengembangkan suatu development environment di mana konsep proses menjadi intinya Software Engineering
Contoh Penelitian dalam PP Deskripsi secara sistematis/pemodelan proses Menggunakan Hierarchycal and Functional Type Language Rule-based process description dan object-based production management Software development environment based on process Process design and execution Process design concept: prescriptive & proscriptive Scheduling description methods Object (product/artifact) management PCTE (Portable Common Tool Environment), IRDS (Information Resource Dictionary System) Software Engineering