Anda di halaman 1dari 47

Software Engineering

Pertemuan-4

Software Processes

Dr. Sutedi, S.Kom., M.T.I., MTA, MCP

1
The Software Process
 Serangkaian kegiatan terstruktur diperlukan untuk mengembangkan
system perangkat lunak, antara lain sebagai berikut.

 Spesifikasi

 Desain

 Validasi

 Evolusi

 Model proses perangkat lunak adalah representasi abstrak dari suatu


proses yang menyajikan deskripsi proses dari beberapa perspektif
tertentu.

2
Generic Software Process Models

 The waterfall model


Fase pengembangan dan spesifikasi merupakan hal
yang berbeda serta terpisah.

 Evolutionary development
Spesifikasi, pengembangan, dan validasi disatukan.

 Component-based software engineering


Rekayasa perangkat lunak berbasis komponen.

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

Oper ation and


Operational and
maintenance
maintenance

4
Generic Software Process Models
 Waterfall model phases:

 Analisis dan definisi persyaratan

 Desain sistem dan perangkat lunak

 Implementasi dan pengujian unit

 Integrasi dan pengujian sistem

 Operasi dan pemeliharaan

Kelemahan utama dari waterfall model adalah sulitnya mengakomodir


perubahan setelah proses berlangsung. Satu fase harus lengkap
sebelum pindah ke fase berikutnya.

5
Generic Software Process Models
 Waterfall model problems:

 Pembagian proyek menjadi beberapa tahap


yang tidak fleksibel membuatnya sulit untuk
merespon perubahan kebutuhan pelanggan.

 Oleh karena itu, model ini hanya sesuai ketika


persyaratan dipahami dengan baik dan
perubahan akan sangat terbatas selama
proses desain.

 Hanya cocok untuk sistem bisnis yang memiliki


persyaratan yang stabil.

 Waterfall model sebagian besar digunakan


untuk proyek rekayasa system besar dimana
system dikembangkan di beberapa lokasi.

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

 Component-based software engineering


 Based on systematic reuse dimana system
diintegrasikan dari komponen yang ada atau sistem
COTS (Commercial-off-the-shelf).

 Tahapan proses
 Analisis komponen
 Modifikasi persyaratan
 Desain sistem dengan konsep reuse
 Pengembangan dan integrasi.

 Pendekatan ini menjadi semakin digunakan


sebagai standar komponen yang ada.

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

 Persyaratan sistem SELALU berevolusi dalam suatu


proyek sehingga proses iterasi dimana tahap sebelumnya
dikerjakan ulang selalu menjadi bagian dari proses untuk
system yang besar.

 Iterasi dapat diterapkan ke salah satu model proses


generik.

 Dua pendekatan (terkait):


 Incremental delivery.
 Spiral development.

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.

 Persyaratan pengguna diurutkan priotitasnya dan persyaratan dengan


prioritas tertinggi dimasukkan dalam increment awal pengembangan.

 Setelah pengembangan increment dimulai, persyaratannya ditetapkan,


meskipun persyaratan untuk increment selanjutnya dapat terus
berkembang.

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

 Customer value dapat dikirimkan ke setiap increment sehingga


fungsionalitas sistem tersedia lebih awal.

 Increment awal bertindak sebagai prototipe untuk membantu


mendapatkan persyaratan untuk increment selanjutnya.

 Risiko kegagalan proyek lebih rendah daripada pendekatan menyeluruh.

 Layanan system dengan prioritas tertinggi cenderung menerima paling


banyak pengujian.

15
Generic Software Process Models
 Extreme programming

 Suatu pendekatan untuk pengembangan berdasarkan pada development


dan delivery fungsionalitas increment yang sangat kecil.

 Bergantung pada peningkatan kode yang konstan, melibatkan pengguna


dalam tim pengembangan dan pairwise programming.

 Pairwise programming merupakan sebuah proses transfer knowledge


yang terjadi di dalam sebuah team software development. Cara kerjanya:
dua orang programmer bekerja bersama memecahkan sebuah masalah
dalam satu workstation, biasanya junior programmer yang menulis (driver)
source code dan senior programmer yang melakukan review  (observer
atau navigator) terhadap apa yang ditulis.

16
Generic Software Process Models
 Spiral development

 Proses direpresentasikan sebagai spiral dan bukan sebagai urutan


aktivitas dengan backtracking.

 Setiap loop dalam spiral mewakili fase dalam proses.

 Tidak ada fase tetap seperti spesifikasi atau desain - loop dalam spiral
dipilih tergantung pada apa yang diperlukan.

 Risiko secara eksplisit dinilai dan diselesaikan sepanjang proses.

17
Generic Software Process Models
 Spiral model sectors
 Objective setting
 Tujuan spesifik untuk fase diidentifikasi.

 Risk assessment and reduction


 Risiko dinilai dan dilakukan kegiatan untuk mengurangi risiko utama.

 Development and validation


 Model pengembangan untuk system dipilih yang dapat berupa salah
satu model generik.

 Planning
 Proyek ditinjau dan fase spiral berikutnya direncanakan.

18
Process Activities

 Software specification

 Software design and implementation

 Software validation

 Software evolution

19
Process Activities
 Software specification

 Proses penentapan layanan apa yang diperlukan serta kendalanya


pada operasi dan pengembangan system.

 Proses rekayasa persyaratan:

 Studi kelayakan.
 Elisitasi (pengumpulan) dan analisis persyaratan.
 Spesifikasi kebutuhan.
 Validasi persyaratan.

20
Process Activities
 Software specification

 Proses rekayasa persyaratan:

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

 Proses mengubah spesifikasi sistem menjadi sistem


yang dapat dieksekusi.

 Desain perangkat lunak


 Merancang struktur perangkat lunak yang
memenuhin spesifikasi.

 Penerapan
 Menterjemahkan struktur perangkat lunak ke
dalam program yang dapat dieksekusi.

 Kegiatan desain dan implementasi terkait erat dan


saling berhubungan.

22
Process Activities
 Software design and implementation
Kegiatan proses desain:

 Architectural design

 Abstract specification

 Interface design

 Component design

 Data structure 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

Design pro ducts

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

 Verifikasi dan validasi (V & V) dimaksudkan


untuk menunjukkan bahwa suatu system
sesuai dengan spesifikasinya dan memenuhi
persyaratan pelanggan system.

 Melibatkan pengecekan dan peninjauan proses


dan pengujian system.

 Pengujian system melibatkan pelaksanaan


system dengan kasus uji yang berasal dari
spesifikasi data nyata yang akan diproses oleh
system.

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

Acceptance System Sub-system


Service System Sub-system
Service test test
Acceptance integ ration test integ rationtest
integration test
integration test

31
Process Activities
 Software evolution

 Perangkat lunak pada dasarnya fleksibel dan dapat


berubah.

 Persyaratan berubah mengikuti perubahan keadaan


bisnis, oleh karenanya perangkat lunak yang
mendukung bisnis juga harus berkembang dan
berubah.

 Meskipun telah ada batasan antara pengembangan


dan evolusi (pemeliharaan), namun hal tersebut
semakin tidak relevan karena semakin sedikitnya
system yang benar-benar baru.

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.

 Biasanya digambarkan dari 3 perspektif:


 Perspektif dinamis yang menunjukkan fase
dari waktu ke waktu.
 Perspektif statis yang menunjukkan
aktivitas proses.
 Perspektif praktis yang menyarankan
praktik yang baik.

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.

 Gunakan arsitektur berbasis komponen.

 Perangkat lunak model visual.

 Verifikasi kualitas perangkat lunak.

 Kontrol perubahan pada perangkat lunak.

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.

Test Pengujian adalah proses berulang yang dilakukan


bersamaan dengan implementasi. Pengujian system
menyesuaikan dengan selesainya implementasi.
Deployment Rilis produk dibuat, didistribusikan ke pengguna dan
diinstal di tempat kerja mereka

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.

 Rekayasa perangkat lunak memerlukan


pemikiran kreatif - ini tidak bisa di otomatisasi
dengan mudah.

 Rekayasa perangkat lunak adalah kegiatan tim


dan, untuk proyek-proyek besar, banyak waktu
dihabiskan dalam interaksi tim. Teknologi CASE
tidak benar-benar mendukung ini.

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

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

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

Tools Wor kbenches Environments

File Integrated Pr ocess-centr ed


Editors Compilers
compar ators en vironments en vironments

Analysis and
Pro gramming Testing
design

Multi-method Single-method General-purpose Language-specific


workbenches workbenches workbenches workbenches

46
T H A N K Y OU
Sampai jumpa di sesi berikutnya

47

Anda mungkin juga menyukai