Software Processes Software Engineering Chapter 4 Tujuan Mengenalkan

  • Slides: 44
Download presentation
Software Processes Software Engineering Chapter 4

Software Processes Software Engineering Chapter 4

Tujuan • Mengenalkan models software proses • Menjelaskan 3 proses model yang umum •

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

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

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

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

Waterfall model

Fase waterfall model • • • Analisa kebutuhan definisi Desain software dan sistem Implementasi

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,

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

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

Evolutionary development

Pengembangan evolusioner • Problems – Sistem memiliki struktur yang jelek – Special skills dibutuhkan

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

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

Reuse-oriented development

Proses iterasi • Untuk kebanyakan sistem besar perlu digunakan berbagai model pendekatan untuk berbagai

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

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

Incremental development

Keuntungan penggunaan incremental • Customer mendapatkan setiap inkremen, sehingga fungsionalitas sistem dapat digunakan didapatkan

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 •

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

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

Spiral model of the software process

Step Spiral model • Penetapan tujuan – Fase Identifikasi untuk penetapan tujuan yang spesifik

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

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 &

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

The requirements engineering process

Desain software dan implementasi • Proses konversi spesifikasi sistem ke sistem yang dapat di

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

Design process activities • • • Desain arsitektural Spesifikasi abstract Interface desain Komponen desain Struktur data desain Desain algoritma

The software design process

The software design process

Structured methods • Pendekatan sistematis untuk mengembangkan desain software • Desain biasanya di dokmentasikan

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

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

The debugging process

Software validation • Verifikasi dan validasi (V&V) untuk menunjukkan sistem sudah sesuai dengan spesifikasi

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

The testing process

Tahapan testing • Component or unit testing – Masing-masing komponen di lakukan tes •

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

Testing phases

Software evolution • Software diharapkan dapat berubah secara fleksible • Apabila terdapat perubahan requirement

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

System evolution

Computer-aided software engineering • CASE adalah software untuk mendukung pengembangan software dan proses evolusi

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

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

Functional tool classification

Activity-based tool classification

Activity-based tool classification

CASE integration • Tools – Mendukung proses/tugas individual seperti konsistensi desain, editing text, dst

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

Tools, workbenches, environments

Key points • Software processes are the activities involved in producing and evolving a

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. •

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.