Software Processes Software Engineering Chapter 4 Tujuan Mengenalkan
- Slides: 44
Software Processes Software Engineering Chapter 4
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
The software process • Aktivitas yang terstruktur yang dibutuhkan untuk mengembangkan sebuah sistme software – – Spesifikasi Design Validasi Evolusi
Model proses software yang umum • The waterfall model – Memisahkan fase spesifikasi dan pengembangan • Pengembangan evolusioner – Spesifikasi, pengembangan dan validasi saling bersisipan • Component-based software engineering – Sistem dibangun dari komponen yang sudah ada • Banyak sekali varian dari model seperti pengembangan formal yang mirip dengan waterfall tapi spesifikasi terdiri dari beberapa langkah spesifikasi yang lebih formal.
Waterfall model
Fase waterfall model • • • Analisa kebutuhan definisi Desain software dan sistem Implementasi dan unit testing Integrasi dan sistem testing Operation dan maintenance Permasalahan : kesulitan untuk mengakomodasi perubahan ketia proses berjalan, fase harus diselesaikan satu persatu
Waterfall model problems • Pembagian yang tidak fleksibel dari sebuah project ke beberapa tahap, membuat kita sulit untuk mengakomodasi perubahan kebutuhan customer • Model ini hanya cocok ketika sebuah requirement sudah dimengerti dengan baik dan perubahan hanya terjadi sesekali selama proses desain • Cocok untuk sistem dengan business yang kecil dan memiliki requirement yang stabil • Model waterfall sering digunakan untuk project rekayasa sistem dimana sistem tersebut dikembangkan di lokasi yang berbeda
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
Component-based software engineering • Berdasarkan penggunaan ulang yang sistematis dimana sistem terintegrasi dengan komponen atau sebuah COTS. • Tahapan proses : – Analisis komponen – Modifikasi requreiemt – Sistem design dengan penggunaan ulang – Pengembangan dan integrasi
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
Keuntungan penggunaan incremental • Customer mendapatkan setiap inkremen, sehingga fungsionalitas sistem dapat digunakan didapatkan diawal • Pelanggan dapat memakai inkrement yang pertama sebagai bentuk prototipe dan mendapatkan pengalaman yang dapat menginformasikan pada pengembangan inkrement selanjutnya • Resiko kecil dari kegagalan project secara total
Extreme programming • Pendekatan pengembangan berdasar pengembangan dan pengiriman dari masing 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
Spiral model of the software process
Step Spiral model • Penetapan tujuan – Fase Identifikasi untuk penetapan tujuan yang spesifik • Penilaian dan pengurangan resiko – Resiko dinilai dan berbagai aktifitas dilakukan untuk mengurangi resiko • Pengembangan dan validasi – Pengembangan model untuk sistem dipilih dari generic models • 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
The requirements engineering process
Desain software dan implementasi • Proses konversi spesifikasi sistem ke sistem yang dapat di eksekusi • Perancangan software – Merancang struktur software yang merealisasikan spesifikasi • Implementation – Menerjemahkan struktur ke sebuah executable program • Aktifitas implementasi dan desain sangat dekat dan sering sekali saling tumpang tindih
Design process activities • • • Desain arsitektural Spesifikasi abstract Interface desain Komponen desain Struktur data desain Desain algoritma
The software design process
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.
Programming and debugging • Menerjemahkan desain ke sebuah program dan menyingkirkan error dari sebuah program • Programming adalah aktifitas personal, tidak ada proses programming yang generic • Programmer melakukan program testing untuk menemukan kesalahan pada program dan membenahi kesalahan ini dalam debugging proses
The debugging process
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
The testing process
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
Computer-aided software engineering • CASE adalah software untuk mendukung pengembangan software dan proses evolusi • Activity automation – – Editor grafis untuk pengembangan system model Data dictionary untuk manage entities desain UI builder untuk pembuatan user interface Debuggers untuk mendukung pencarian kesalahan
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
Functional tool classification
Activity-based tool classification
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
Tools, workbenches, environments
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.
- Concurrent in os
- What is system in software engineering
- Forward engineering and reverse engineering
- Manufacturing process for engineering materials
- Agile engineering processes
- Software maintenance in software engineering ppt
- What is software implementation in software engineering
- Metrics computer science
- Software engineering crisis
- Halstead software metrics example
- Real time software design in software engineering
- Design principles in software engineering
- Software processes
- Software processes
- Software processes
- Software engineering chapter 2
- Software engineering pressman chapter 3 ppt
- Software engineering problems
- Software engineering pressman chapter 4 ppt
- Chapter 19 normal newborn processes of adaptation
- Designing and managing service processes
- Principles of complex systems for systems engineering
- Elegant systems
- Forward and reverse engineering
- Salah satu tujuan dari perencanaan proyek software adalah
- Iit kharagpur virtual lab
- User interface design steps in software engineering
- Srs in software engineering
- Activity diagram software engineering
- Software engineering task
- The management spectrum
- Ck metrics
- Sds software engineering
- Supportability in software engineering
- Inverse requirements in software engineering
- Inverse requirements
- What is domain requirements in software engineering
- Statistical sqa
- Rapid software development
- Rmm plan
- Communication planning modeling construction deployment
- Program evolution dynamics in software engineering
- What is user interface design in software engineering
- Use case diagram of hospital management system
- Rsl/revs in software engineering