Pertemuan-4
Software Processes
1
The Software Process
Serangkaian kegiatan terstruktur diperlukan untuk mengembangkan
system perangkat lunak, antara lain sebagai berikut.
Spesifikasi
Desain
Validasi
Evolusi
2
Generic Software Process Models
Evolutionary development
Spesifikasi, pengembangan, dan validasi disatukan.
3
Generic Software Process Models
Waterfall model
Requirements
Requirements
definition
definition
System and
System and
software
software design
design
Implementa tion
Implementation
and
andunit
unittesting
testing
Integration and
Integration and
system
system testing
testing
4
Generic Software Process Models
Waterfall model phases:
5
Generic Software Process Models
Waterfall model problems:
6
Generic Software Process Models
Evolutionary development
Exploratory development
Tujuannya adalah bekerja dengan pelanggan dan
mengembangkan system akhir dari initial outline
specification. Harus mulai dengan persyaratan yang
dipahami dengan baik kemudian menambahkan fitur baru
seperti yang diusulkan oleh pelanggan.
Throw-away prototyping
Tujuannya adalah untuk memahami persyaratan
system. Dimulai dengan persyaratan yang kurang
dipahami kemudian mengklarifikasi apa yang
sebenarnya dibutuhkan.
7
Generic Software Process Models
Evolutionary development
Concurrent
Concurrent activities
acti vities
Initial
Specification
Specification Initial version
version
Outline
Outline Intermedia
Intermediatete
Development
Development versions
description
description versions
Final
Validation
Validation Final version
version
8
Generic Software Process Models
Evolutionary development
Problem:
Kurangnya visibilitas proses.
System seringkali tidak terstruktur dengan baik.
Keterampilan khusus mungkin diperlukan.
(misal: keterampilan dalam bahasa
pemrograman untuk pembuatan prototipe
cepat).
Applicability:
Untuk system interaktif ukuran kecil atau
menengah
Untuk bagian-bagian dari system besar (misal:
Antarmuka pengguna);
Untuk short-lifetime systems.
9
Generic Software Process Models
Tahapan proses
Analisis komponen
Modifikasi persyaratan
Desain sistem dengan konsep reuse
Pengembangan dan integrasi.
10
Generic Software Process Models
Reuse-oriented development
Requirements
Requirements Component
Component Requirements
Requirements System
Systemdesign
design
specification
specification analysis
analysis modification
modification with
withreuse
reuse
Development
Development System
System
and
and integration
integration validation
validation
11
Generic Software Process Models
Process iteration
12
Generic Software Process Models
Incremental delivery
Daripada men-deliver system dalam satu kesatuan, lebih baik
development dan delivery-nya dipecah menjadi beberapa increment
dimana setiap increment memberikan sebagian fungsi yang
diperlukan.
13
Generic Software Process Models
Incremental development
Define outline
Define outline Assign
Assignrequirements
requirements Design
Designsystem
system
requirements
requirements totoincrements
increments architecture
architecture
Develop system
Develop system Valida te
Validate Integrate
Integrate Validate
increment
increment increment
increment increment
increment Validate system
system
Final
system
System incomplete
14
Generic Software Process Models
Incremental development advantages
15
Generic Software Process Models
Extreme programming
16
Generic Software Process Models
Spiral development
Tidak ada fase tetap seperti spesifikasi atau desain - loop dalam spiral
dipilih tergantung pada apa yang diperlukan.
17
Generic Software Process Models
Spiral model sectors
Objective setting
Tujuan spesifik untuk fase diidentifikasi.
Planning
Proyek ditinjau dan fase spiral berikutnya direncanakan.
18
Process Activities
Software specification
Software validation
Software evolution
19
Process Activities
Software specification
Studi kelayakan.
Elisitasi (pengumpulan) dan analisis persyaratan.
Spesifikasi kebutuhan.
Validasi persyaratan.
20
Process Activities
Software specification
Feasibility Requirements
Requirements
Feasibility
elicitation and
elicitation and
stud
studyy
anal ysis
anaysis
Requirements
Requirements
specification
specification
Feasibility Requirements
Requirements
Feasibility
repor report
t validation
validation
System
System models
models
User
Userand
and system
system
requirements
requirements
Requirements
Requirements
document
document
21
Process Activities
Software design and implementation
Penerapan
Menterjemahkan struktur perangkat lunak ke
dalam program yang dapat dieksekusi.
22
Process Activities
Software design and implementation
Kegiatan proses desain:
Architectural design
Abstract specification
Interface design
Component design
Algorithm design
23
Process Activities
Software design and implementation
Kegiatan proses desain perangkat lunak:
Requirements
Requirements
specifica tion
specification
Design activities
Data
Ar
chitectural
Architectural Abstract
Abstract Interface
Interface Component
Component Data Algorithm
Algorithm
design specifica tion design design structure
structure design
design specification design design design design
design
Data
System
System Software
Software Interface
Interface Component
Component Data structure Algorithm
Algorithm
structur e
architecture
architecture specification
specification specifica tion
specification specifica tion
specification specification specification
specification
specification
24
Process Activities
Software design and implementation
Structured methods
Pendekatan sistematis untuk mengembangkan
desain perangkat lunak.
Desain biasanya didokumentasikan sebagai
satu set model grafis.
Model yang mungkin digunakan antara lain:
Object model.
Sequence model.
State transition model.
Structural model.
Data-flow model.
25
Process Activities
Software design and implementation
Programming and debugging
Menerjemahkan desain ke dalam program dan
menghapus kesalahan dari program tersebut.
Pemrograman adalah kegiatan personal - tidak ada
proses pemrograman yang generik.
Pemrogram melakukan beberapa pengujian
program untuk menemukan kesalahan dalam
program dan menghapus kesalahan tersebut dalam
proses debugging.
26
Process Activities
Software design and implementation
Proses debugging
Locate Design
Design error Repair Re-test
Re-test
Locate
errorerror error repair Repair
errorerror program
repair Program
27
Process Activities
Software validation
28
Process Activities
Software validation
The testing process:
Component
Component System Acceptance
Acceptance
System testing
testing
testing testing testing
testing
29
Process Activities
Software validation
Tahapan testing:
Component or unit testing
Komponen individual diuji secara
independen.
Komponen dapat berupa fungsi atau
objek atau pengelompokan yang koheren
dari entitas tersebut.
System testing
Pengujian system secara keseluruhan.
Pengujian properti system sangat penting
untuk dilakukan.
Acceptance testing
Menguji dengan data pelanggan untuk
memeriksa apakah system memenuhi
kebutuhan pelanggan.
30
Process Activities
Software validation
Tahapan testing:
Requirements
Requirements System
System System Detailed
System design Detailed design
specification
specification specification
specification design design
System Sub-system
Sub-system Module and
Acceptance
Acceptance test System integration Module and unit
integration integ ration
integration test unit code
testplan
plan code
test plan
test plan testplan
plan and and
test test
31
Process Activities
Software evolution
32
Process Activities
System evolution
Define system
Define system Assess
Assess existing
existing Propose
Propose system
system Modify
Modify systems
requirements
requirements systems
systems changes
changes systems
Existing
Existing New
systems New system
system
systems
33
Process Activities
System evolution
The Rational Unified Process (RUP)
Model proses modern berasal dari kerja pada
UML dan proses terkait.
34
Process Activities
System evolution
Tahapan RUP:
Inception
Buat kasus bisnis untuk sistem.
Elaboration
Kembangkan pemahaman tentang domain
masalah dan arsitektur system.
Construction
Desain system, pemrograman, dan pengujian.
Transition
Men-deploy system dalam lingkungan
operasinya.
35
Process Activities
System evolution
RUP good practice
Kembangkan perangkat lunak secara iterative.
Kelola persyaratan.
36
Process Activities
System evolution
Static workflows
Workflow Description
Business modelling Proses bisnis dimodelkan menggunakan business use
cases.
Requirements Aktor yang berinteraksi dengan system diidentifikasi
dan use cases dikembangkan untuk memodelkan
persyaratan system.
Analysis and design Model desain dibuat dan didokumentasikan
menggunakan architectural models, component
models, object models, dan sequence models
37
Process Activities
System evolution
Lanjutan Static workflows
Workflow Description
Implementation Komponen dalam system diimplementasikan dan
disusun menjadi sub-system. Pembuatan kode
otomatis dari model desain membantu mempercepat
proses ini.
38
Process Activities
System evolution
Lanjutan Static workflows
Workflow Description
Configuration and Alur kerja pendukung ini mengelola perubahan pada
change management system
Project management Alur kerja pendukung ini mengelola pengembangan
system
Environment Alur kerja ini berkaitan dengan penyediaan tools
untuk membuat perangkat lunak yang sesuai bagi tim
pengembangan perangkat lunak
39
Process Activities
System evolution
Computer-aided software engineering (CASE)
Merupakan perangkat lunak untuk mendukung
pengembangan perangkat lunak dan proses
evolusi.
Otomatisasi aktivitas:
Editor grafis untuk pengembangan model
system
Kamus data untuk mengelola entitas desain.
Pembuat UI grafis untuk konstruksi antarmuka
pengguna.
Debugger untuk mendukung pencarian
kesalahan program.
Penerjemah otomatis untuk menghasilkan versi
baru dari suatu program.
40
Process Activities
System evolution
CASE technology
Teknologi CASE telah menyebabkan
peningkatan yang signifikan dalam proses
perangkat lunak. Namun, ini bukan urutan
peningkatan yang terbesar yang pernah
diprediksi.
41
Process Activities
System evolution
CASE classification
Klasifikasi membantu kita memahami berbagai jenis
alat CASE dan dukungannya untuk kegiatan
proses.
Functional perspective
o Alat diklasifikasikan menurut fungsi
spesifiknya.
Process perspective
o Alat diklasifikasikan menurut aktivitas
proses yang didukung.
Integration perspective
o Alat diklasifikasikan menurut
pengorganisasiannya untuk menjadi unit
terintegrasi.
42
Process Activities
System evolution
Functional tool classification
Tool type Examples
Planning tools PERT tools, estimation tools, spreadsheets
Editing tools Text editors, diagram editors, word processors
Change management tools Requirements traceability tools, change control systems
Configuration management tools Version management systems, system building tools
Prototyping tools Very high-level languages, user interface generators
Method-support tools Design editors, data dictionaries, code generators
Language-processing tools Compilers, interpreters
Program analysis tools Cross reference generators, static analysers, dynamic analysers
Testing tools Test data generators, file comparators
Debugging tools Interactive debugging systems
Documentation tools Page layout programs, image editors
Re-engineering tools Cross-reference systems, program re-structuring systems
43
Process Activities
System evolution
Activity-based tool classification
Re-eng ineering tools
Testing tools
Language-processing
tools
Prototyping tools
Configuration
management tools
Documentation tools
Editing tools
Planning tools
44
Process Activities
System evolution
CASE integration
Tools
Mendukung tugas-tugas proses individu
seperti memeriksa konsistensi desain,
mengedit teks, dll.
Workbenches
Mendukung fase proses seperti
spesifikasi atau desain, biasanya
menyertakan sejumlah alat terintegrasi.
Environments
Mendukung semua atau sebagian besar
dari keseluruhan proses perangkat lunak.
Biasanya menyertakan beberapa
workbenches terintegrasi.
45
Process Activities
System evolution
Tools, workbenches, environments
CASE
technolo g y
Analysis and
Pro gramming Testing
design
46
T H A N K Y OU
Sampai jumpa di sesi berikutnya
47