Metodologi Pengembangan
Perangkat Lunak
Karmilasari
2000an :
Extreme Programming (1999)
Rational Unified Process /RUP (1998)
Agile Unified Process / AUP (2005)
Integrated Methodology (QAIassist IM) (2007)
10
Software Process
Satu set kegiatan terstruktur yang dibutuhkan
untuk mengembangkan sistem perangkat lunak
Specification
Design
Validation
Evolution
Waterfall model
Requirements
definition
System and
software design
Implementation
and unit testing
Integr ation and
system testing
Operation and
maintenance
13
14
Evolutionary development
Exploratory development
Penetapan tujuan dikerjakan bersama dengan
pelanggan, termasuk pengembangan
sistemnya,dari awal hingga akhir. Dimulai
dengan pemahaman kebutuhan yang baik.
Throw-away prototyping
Tujuan adalah untuk memahami kebutuhan
sistem. Dimulai dengan pemahaman
kebutuhan yang kurang
16
Evolutionary development
Concurr ent
activities
Outline
description
Specification
Initial
version
Development
Intermediate
versions
Validation
Final
version
17
Evolutionary development
Masalah
Kurangnya visibilitas proses
Sistem ini sering kurang terstruktur
Keterampilan khusus (misalnya dalam bahasa
untuk rapid prototyping) mungkin diperlukan
Applicability
Untuk sistem interaktif yang kecil atau menengah
Untuk bagian dari sistem yang besar (misalnya
user interface)
Untuk sistem yang berumur pendek
18
Requirements
definition
Formal
specification
Formal
transformation
Integration and
system testing
21
22
List specification
LIST ( Elem )
sort List
imports INTEGER
Defines a list where elements areadded at the end and remo
ved
from the front. The oper ations are Create , which br ings an emptylist
into e xistence , Cons ,which creates ane
w list with an added member
,
Length, which e valuates the list siz
e,Head, which e valuates the front
element of the list, and
Tail, which createsa list b
yremo ving the head from its
input list. Undefined representsan undefined value of type Elem.
Create List
Cons(List, Elem)
List
Head (List) Elem
Length (List) Integer
Tail (List) List
Head (Create) = Undefined exception (empty list)
Head (Cons (L, v)) = if L = Create then v else Head (L)
Length (Create) = 0
Length (Cons (L, v)) = Length (L) + 1
Tail (Create ) = Create
Tail (Cons (L, v)) = if L = Create then Create else Cons (Tail (L), v)
23
Formal transformations
Formal transformations
T1
Formal
specification
T2
R1
P1
T3
R2
P2
T4
Executable
program
R3
P3
P4
24
Applicability
Sistem kritis terutama kasus keamanan harus
dilakukan sebelum sistem ini dimasukkan ke
dalam operasi
25
Reuse-oriented development
Component-based software engineering /
Rekayasa Perangkat Lunak Berbasis Komponen
Berdasarkan penggunaan kembali / reuse sistem yang
sistematis di mana sistem terintegrasi dari komponen yang
ada or COTS (Commercial-off-the-shelf) systems.
Tahapan proses
Analisis Komponen;
Modifikasi Kebutuhan;
Perancangan Sistem dengan penggunaan kembali / reuse yang sudah
ada;
Pengembangan dan integrasi.
26
Reuse-oriented development
Requirements
specification
Component
analysis
Requirements
modification
System design
with reuse
Development
and integration
System
validation
27
Process iteration
Kebutuah sistem selalu berkembang dalam proyek
sehingga proses iterasi pada tahap-tahap awal
selalu dikerjakan ulang bagian dari proses untuk
sistem yang besar
Iterasi dapat diterapkan pada salah satu model
proses generik
Pendekatan
Incremental development
Spiral development
28
Incremental development
Sistem sebagai pengiriman tunggal, pengembangan dan pengiriman dipecah menjadi bertahap
dengan setiap kenaikan memberikan bagian dari
fungsi yang diperlukan
Kebutuhan pengguna diprioritaskan dan
persyaratan prioritas tertinggi dimasukkan dalam
awal increment
Setelah pengembangan suatu increment dimulai,
kebutuhan dibekukan meskipun persyaratan untuk
kenaikan nantinya bisa terus berkembang
29
Incremental development
Define outline
requirements
Develop system
increment
Assign requirements
to increments
Valida te
increment
Design system
architecture
Integrate
increment
Valida te
system
Final
system
System incomplete
30
Extreme programming
Pendekatan baru untuk pengembangan
berdasarkan pengembangan dan
pengiriman bertahap sangat kecil dari
fungsi yang ada
Mengandalkan kode perbaikan konstan,
keterlibatan user dalam tim
pengembangan dan pemrograman
berpasangan
32
Spiral development
Proses digambarkan sebagai spiral bukan sebagai
urutan aktivitas dengan backtracking
Setiap loop dalam spiral merupakan tahap dalam
proses.
Tidak ada fase tetap seperti spesifikasi atau desain
- loop dalam spiral dipilih tergantung pada apa
yang dibutuhkan.
Risiko secara eksplisit dinilai dan diselesaikan
selama proses.
33
Risk
analys is
Risk
analys is
Risk
analys is
REVIEW
Requirements plan
Life-cycle plan
Develop ment
plan
Integration
and test p lan
Prototyp e 3
Prototyp e 2
Risk
analysis Prototy pe 1
Operational
protoyp e
S/W
requirements
Requirement
valid ation
Prod uct
design
Detailed
design
Code
Unit tes t
Design
V&V
Integr ation
test
Accep tance
test
Develop, v erify
Serv ice
next-level p rod uct
34
Perencanaan
Proyek terakhir di-review dan fase berikutnya dari
spiral direncanakan
35
Aktivitas Proses
Spesifikasi Perangkat Lunak
Perancangan dan implementasi peranngkat
lunak
Validasi perangkat lunak
Evolusi perangkat lunak
36
Studi kelayakan
Kebutuhan analisis
Kebutuhan spesifikasi;
Kebutuhan validasi.
37
Feasibility
stud y
Requir ements
elicitation and
anal ysis
Requir ements
specification
Requir ements
validation
Feasibility
repor t
System
models
User and system
requirements
Requir ements
document
38
Perancangan arsitektur
Spesifikasi Abstrak
Perancangan Pengantarmukaan
Perancangan Komponen
Perancangan Struktur Data
Perancangan Algoritma
40
Proses Perancangan
Perangkat Lunak
Requirements
specification
Design activities
Architectural
design
Abstract
specification
Interface
design
Component
design
Data
structure
design
Algorithm
design
System
architecture
Software
specification
Interface
specification
Component
specification
Data
structure
specification
Algorithm
specification
Design products
41
Metode Terstruktur
Pendekatan sistematis untuk membangun
rancangan perangkat lunak
Perancangan biasanya didokukentasikan
dalam suatu set model grafis
Model grafis yang digunakan :
Object model;
Sequence model;
State transition model;
Structural model;
Data-flow model.
42
Proses Debugging /
Penanganan Kesalahan
Locate
err or
Design
error repair
Repair
error
Re-test
pr ogram
44
Component
testing
System
testing
Acceptance
testing
46
Requir ements
specifica tion
System
specifica tion
System
integ ration
test plan
Acceptance
test plan
Service
System
design
Acceptance
test
System
integ ration test
Detailed
design
Sub-system
integ ration
test plan
Module and
unit code
and test
Sub-system
integ ration test
48
Evolusi Sistem
Define system
requirements
Assess existing
systems
Existing
systems
Propose system
changes
Modify
systems
New
system
50
Phase iteration
Inception
Elaboration
Construction
Transition
52
Fase RUP
Inception / Permulaan
Penetapan kasus bisnis untuk sistem.
Elaboration / Elaborasi-Perluasan
Pengembangan dan pemahaman domain
masalah dan arsitektur sistem
Construction / Pembangunan
Perancangan sistem, pemrograman dan uji coba
Transition / Transisi
Penyebarluasan sistem di lingkungan
operasional
53
Description
Business modelling
Requirements
Actors who interact with the system are identified and use cases are
developed to model the system requirements.
Implementation
Test
Deployment
Configuration and
change management
Project management
Environment
55
Teknologi CASE
Teknologi CASE telah membawa perbaikan
yang signifikan dalam proses perangkat lunak.
Namun demikian ada beberapa hal yang perlu
dipetimbangkan dalam penggunaan CASE :
Rekayasa perangkat lunak membutuhkan
pemikiran kreatif tidak selalu dapat diotomatisasi
Rekayasa perangkat lunak adalah kegiatan tim dan
untuk proyek-proyek besar, banyak waktu yang
dihabiskan dalam interaksi tim. Teknologi CASE
tidak benar-benar mendukung untuk hal tersebut57
Klasifikasi CASE
Klasifikasi membantu kita memahami perbedaan tipe perangkat
pendukung (tools) CASE dalam mendukung proses aktivitas
Perspektif Fungsional
Perangkat pendukung (tools) diklasifikasikan berdasarkan fungsi
spesifik
Perspektif Proses
Perangkat pendukung (tools) diklasifikasikan berdasarkan aktivitas
proses yang didukungnya
Perspektif Integrasi
Perangkat pendukung (tools) diklasifikasikan berdasarkan organisasi
dan unit yang terintegrasi di dalamnya.
58
Examples
Planning tools
Editing tools
Prototyping tools
Method-support tools
Language-processing tools
Compilers, interpreters
Testing tools
Debugging tools
Documentation tools
Re-engineering tools
59
Klasifikasi Perangkat
Berbasis Aktivitas
Re-eng ineering tools
Testing tools
Debugg ing tools
Prog ram analysis tools
Language-processing
tools
Method suppor t tools
Prototyping tools
Configuration
management tools
Change management tools
Documentation tools
Editing tools
Planning tools
Specification
Design
Implementation
Verification
and
Validation
60
Integrasi CASE
Tools / Perangkat
Dukungan proses tugas individual, seperti perancangan,
pengecekan konsistensi, text editing dsb.
Workbenches
Dukungan fase proses seperti spesifikasi atau perancangan.
Biasanya menggunakan sejumlah perangkat / tools yang
terintegrasi
Environments / Lingkungan
Dukungan terhadap semua atau sebagian besar dari proses
software secara keseluruhan. Biasanya termasuk
terintegrasi beberapa workbenches.
61
Wor kbenches
Tools
Editors
Compilers
File
compar ators
Analysis and
design
Multi-method
workbenches
Integ rated
en vironments
Pro gramming
Single-method
workbenches
Environments
Pr ocess-centr ed
en vironments
Testing
Gener al-purpose
workbenches
Langua ge-specific
workbenches
62