Software Engineering Process Diah Priharsari diah.priharsari@ub.ac.id priharsari@yahoo.com Sumber: Roger Pressman – Software Engineering 7th edition Ian Sommerville – Software Engineering 9th edition PTIIK – Universitas Brawijaya Malang
Yang dipelajari software process model Generic Waterfall Iterative RUP prinsip umum pengembangan software
Diambil dari Ian Sommerville Software Engineering 9th edition
Software Process A process is a collection of activities, actions, and tasks that are performed when some work product is to be created A process framework foundation for a complete software engineering process that are applicable to all software projects, regardless of their size or complexity.
generic process framework Software specification Software development Software validation Software evolution Berbeda sistem akan membutuhkan proses pengembangan yang berbeda
Software Specification where customers and engineers define the software that is to be produced and the constraints on its operation COMMUNICATION !!!
Software Development: where the software is designed and programmed Software validation: where the software is checked to ensure that it is what the customer requires Software evolution: where the software is modified to reflect changing customer and market requirements
Prescriptive Process Model Waterfall Incremental Evolutionary Specialized Process Model Component based development Formal methods model Aspect oriented software development Unified Process sumber: Roger Pressman
Prescriptive Model Awal munculnya untuk mengatur proses pengembangan P/L yang berantakan (chaos) Info dari Roger Presman model2 tradisional tersebut telah memberikan jalan untuk pengembangan P/L yang efektif Namun, tetap membuat proses maupun produknya “on the edge of chaos” tidak stabil, terstruktur sebagian.
Waterfal Model
Dokumentasi dibuat di setiap akhir fase Masalah utama: kurangnya fleksibilitas dalam merespon perubahan permintaan Lebih baik digunakan jika kebutuhan jelas Walaupun kurang fleksibel, sampai saat ini masih banyak yang menggunakan
Incremental
Fokus: menghasilkan produk di setiap iterasi Bermanfaat jika jumlah staff terbatas atau kurang Sampai sekarang banyak yang menggunakan
Komentar untuk prescriptive model Berbasis linier sehingga agak kurang fleksibel Kecepatan pengembangan tidak dapat maksimal Seharusnya software lebih berfokus pada fleksibilitas dan extensibilitas daripada kualitas. Why? late delivery opportunity niche disappear
Specialized Process Model Menjawab kekurangan dari prescriptive model sebelumnya, berkembanglah model pengembangan perangkat lunak yang berfokus pada kecepatan pengembangan dan fleksibilitas.
Rational Unified Process Model proses modern yang didapatkan dari penggunaan UML dan Unified Software Development Model Menekankan pada: Pentingkan komunikasi dengan customer dan memberikan metode mendeskripsikan dari sudut pandang customer (Use Case) Peranan software architecture memfokuskan pada tujuan Aliran proses iteratif UML—unified modeling language berisi notasi untuk memodelkan dan pengembangan sistem berbasis OO
Unified Modelling Language Bahasa untuk: Visualisasi mengkomunikasikan secara visual Spesifikasi membangun model tepat, lengkap, tidak ambigu Konstruksi dapat terhubung otomatis ke beberapa bahasa pemrograman dokumentasi
4+1 model view
Penggunaan UML yang berhasil Use Case Driven Architectural Centric Iterative and Incremental
Business Modeling – Encompasses all modeling techniques you can use to visually model a business. Requirements – Defines what the system should do. Analysis & Design – Shows how the system's use cases will be realized in implementation. Implementation – Implements software components that meet quality standards. Test – Integrates and tests the system. Deployment - Provides the software product to the end-user. Configuration & Change Management – Controls and tracks changes to artifacts. Project Management – Ensures tasks are scheduled, allocated and completed in accordance with project schedules, budgets and quality requirements. Environment – Defines and manages the environment in which the system is being developed.
Tipe Test RUP
Prinsip pengembangan perangkat lunak provide value to its users KISS (Keep It Simple, Stupid!) Maintain the Vision What You Produce, Others Will Consume Be Open to the Future Plan Ahead for Reuse Think!
Ada Pertanyaan???