Software Engineering Chapter 4 - PowerPoint PPT Presentation

About This Presentation
Title:

Software Engineering Chapter 4

Description:

Software Engineering Chapter 4 Testing phases Software evolution Software diharapkan dapat berubah secara fleksible Apabila terdapat perubahan requirement karena ... – PowerPoint PPT presentation

Number of Views:209
Avg rating:3.0/5.0
Slides: 45
Provided by: IanSomm4
Category:

less

Transcript and Presenter's Notes

Title: Software Engineering Chapter 4


1
Software Processes
  • Software Engineering Chapter 4

2
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

3
Topics covered
  • Model proses software
  • Proses iterasi
  • Aktifitas proses
  • Computer-aided software engineering

4
The software process
  • Aktivitas yang terstruktur yang dibutuhkan untuk
    mengembangkan sebuah sistme software
  • Spesifikasi
  • Design
  • Validasi
  • Evolusi

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

6
Waterfall model
7
Fase waterfall model
  • Analisa kebutuhan dan 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

8
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

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

10
Evolutionary development
11
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

12
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

13
Reuse-oriented development
14
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

15
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

16
Incremental development
17
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

18
Extreme programming
  • Pendekatan pengembangan berdasar pengembangan dan
    pengiriman dari masing-masing fungisonalitas
    terkecil
  • Bergantung pada improvisasi code, keterlibatan
    user dalam team pengembang, dan pemrogramana
    secara berpasangan

19
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

20
Spiral model of the software process
21
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

22
Aktifitas proses
  • Spesifikasi perangkat lunak
  • Desain software dan implemetasi
  • Validasi software
  • Evolusi software

23
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

24
The requirements engineering process
25
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

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

27
The software design process
28
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.

29
Programming and debugging
  • Menerjemahkan dan 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

30
The debugging process
31
Software validation
  • Verifikasi dan validasi (VV) 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

32
The testing process
33
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

34
Testing phases
35
Software evolution
  • Software diharapkan dapat berubah secara
    fleksible
  • Apabila terdapat perubahan requirement karena
    kondisi bisnis, software yang mendukung bisnis
    tersebut juga harus berubah

36
System evolution
37
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

38
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

39
Functional tool classification
40
Activity-based tool classification
41
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

42
Tools, workbenches, environments
43
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.

44
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.
Write a Comment
User Comments (0)
About PowerShow.com