Lunak
Dr. Mohammad Iqbal
Universitas Gunadarma
Workshop Peranan Teknologi Informasi dan Komunikasi
dalam Pengembangan Aplikasi Cerdas
12 Juli 2018 di Lab E531 Kampus Kelapadua
USB (Unlimited Software Building) 2018
Outline
1. Pendahuluan : Pengertian, definisi, tujuan,
karakteristik produk perangkat lunak
2. Tahapan pengembangan perangkat lunak.
3. Teknik, model dan metode pengembangan
Perangkat Lunak.
4. Praktek pengembangan perangkat lunak
1. Pendahuluan
Pengertian Produk perangkat lunak
• Produk Perangkat Lunak menurut Ian Sommerville
didefinisikan sebagai berikut:
• Software Products are Software Systems delivered to a
customer with the documentation which describes how to
install and use the system
• Produk perangkat lunak adalah sistem perangkat lunak
beserta dokumentasinya yang menjelaskan prosedur
penyiapan dan penggunaan perangkat lunak tersebut.
1. Pendahuluan
Definisi produk perangkat lunak
a. instruksi-instruksi yang jika dieksekusi akan
memberikan layanan-layanan atau fungsi seperti
yang diinginkan
b. Struktur data yang diperlukan oleh suatu program
untuk memanipulasi informasi
c. Dokumen-dokumen yang mendeskripsikan
penggunaan suatu program.
Tujuan Rekayasa perangkat lunak
Menghasilkan suatu produk perangkat lunak
1. Pendahuluan
Karakteristik produk perangkat lunak
1. Perangkat lunak adalah suatu produk yang lebih
menekankan pada kegiatan rekayasa (engineering)
bukan kegiatan manufacturing (rancang bangun di
pabrik) yang rumit.
2. Perangkat lunak bukanlah produk yang dapat usang
atau rusak untuk kemudian dibuang, seperti halnya
produk perangkat keras : Yang dapat terjadi adalah
produk-produk perangkat lunak tersebut tidak dapat
melayani beberapa kebutuhan yang dikehendaki
pemakainya, disebabkan berkembangnya kebutuhan-
kebutuhan baru, sehingga perlu dilakukan perubahan-
perubahan pada perangkat lunak tersebut
1. Pendahuluan
Karakteristik produk perangkat lunak
3. Kebanyakan perangkat lunak tidak dibangun dari
perangkat lunak-perangkat lunak yang sudah ada.
• Pembangunan aplikasi baru kebanyakan dimulai dari
awal, dari tahap analisis sampai tahap pengujian
• Kini ada paradigma baru mulai dikembangkan, yaitu
konsep reuseability
1. Pendahuluan
Karakteristik produk perangkat lunak (yang Baik)
1. Pendahuluan
Karakteristik produk perangkat lunak (yang Baik)
2. Tahapan pengembangan Software
• Pengembangan Software bukan sekedar
dengan cara coba-coba – Trial & Error
Input Output
Buat Kode
& Tes
Dilakukan
sampai pas
2. Tahapan pengembangan Software
• Pengembangan Software harus dengan
metode Pengembangan Produk
Teknologi : Aplikasi
pengetahuan ilmiah
dalam industri atau
bisnis
Tool : Implementasi
atau penggunaan
mesin untuk
Products menyelesaikan tugas
tertentu.
Metode : aturan
Metode Langkah untuk
menyelesaikan suatu
Software Engineering Project Management
proses.
2. Tahapan pengembangan Software
Manajemen Proyek Software akan mencegah resiko-
resiko yang mungkin terjadi dalam proses
pengembangan
Produk
P
r
o
d
u
c
t
s
Meth
ods
Pr
o
d
u
ct
s
Metods
Ide
2. Tahapan pengembangan Software
Perencanaan
Definisi
Konsep
Management
Plan
Risk Identifikasi
Databases
Analysis Kandidat
ROI
Specifications Arsitektur
Analysis
Needs
Project Assessment
Plans
Pemasaran &
System
Requirement
Analisa
2. Tahapan pengembangan Software :
Pendekatan Build and Fix
13
2. Tahapan pengembangan Software :
Build and Fix – Kelebihan dan Kekurangan
Kelebihan Kekurangan
Akan bekerja untuk Satu langkah ke depan
proyek yang kurang dari untuk membuat code
200 LOC (line of code) dan tes
Tidak bisa untuk proyek
S/W besar
Tidak ada spec S/W
Tidak ada model life
cycle
14
2. Tahapan pengembangan Software :
Basic 1074 Life Cycle
2. Tahapan pengembangan Software :
Full 1074 Life Cycle (1)
2. Tahapan pengembangan Software :
Full 1074 Life Cycle (2)
2. Tahapan pengembangan Software : Full
1074 Life Cycle – Kelebihan dan Kekurangan
Kelebihan Kekurangan
Poin awal untuk Terlalu banyak Proses
mendefiniskan life cycle
Mengandung banyak hal Mengandung terlalu
dari life cycle yang banyak hal yang kadang
dapat mendukung apa tidak dibutuhkan
yang kita butuhkan
Proses untuk Tidak semua life cycle
mendefinisikan life cycle dapat diimplementasikan
2. Tahapan pengembangan Software :
Waterfall Model
Planning
Analysis
Design
Build
Test
Deploy
2. Tahapan pengembangan Software : Waterfall
Model – Kelebihan dan Kekurangan
Kelebihan Kekurangan
Mudah dipahami Tidak membuat model
dunia nyata secara tepat
Mudah diukur Terlalu banyak
dokumentasi
Menerapkan disiplin
Penyebarannya
dikendalikan dengan
dokumen
2. Tahapan pengembangan Software :
Waterfall dengan Purwarupa / Prototipe
Process Steps Process Gates Prototypes
SYSTEM CONSTRUCTION
REVIEW
Kelebihan Kekurangan
Mudah dipahami Tidak berhenti menghasilkan
prototipe
Mudah diukur Prototipe akan membuka
kesempatan hacking
Modeling dunia nyata
Berulang di setiap langkah
proses
Penyebarannya dikendalikan
dengan dokumen
2. Tahapan pengembangan Software :
Model Spiral
2. Tahapan pengembangan Software :
Model Spiral – Kelebihan dan Kekurangan
Kelebihan Kekurangan
Mengurangi resiko Internal development
sistem yang sangat besar
Mendukung penggunaan Biaya yang cukup mahal
kembali
Jaringan Maintenance dan Membutuhkan organisasi
development yang luas yang sudah teritegrasi
Mudah melihat hasil Banyak menggunakan
dengan adanya prototipe tools terkait resiko dan
prototipe
Pengujian fokus ke Resiko
2. Tahapan pengembangan Software : Rapid
Application Development (RAD)
2. Tahapan pengembangan Software :
RAD – Kelebihan dan Kekurangan
Kelebihan Kekurangan
Interaksi user yang sangat Keterlibatan pengguna sangat
kompleks tinggi
Cepat mengimplementasikan Membutuhkan kematangan alat
konsep dan proses
Pembangunan secara bertahap Meningkatkan biaya overhead jika
dan teratur terlalu banyak prototipe
Pengendalian pengiriman yang
sangat ketat
Penentuan ekspektasi yang buruk
dikendalikan sistem
2. Tahapan pengembangan Software : Memilih Model
Life Cycle – Karakteristik Proyek Kategori Matrix
Requirements
System
Maintenance
Testing
3. Teknik, model dan metode
pengembangan Perangkat Lunak
Metode Pengembangan S/W :
1. Requirement Analysis
2. Domain analysis
3. Behavior Modeling : use case and
context diagram
4. Structural Modeling : Class Diagram
5. Dynamic Modelling : sequence
diagram
6. Desain
3. Teknik, model dan metode
pengembangan Perangkat Lunak
Metode Pengembangan S/W :
1. Requirement Analysis
Aspect-Oriented
Requirements
Object-Oriented
Analysis & Design
Structured
Analysis & Design
Agile Development
User Stories
3. Teknik, model dan metode
pengembangan Perangkat Lunak
1. Requirement Analysis
Problem domain Software (Solution) domain
Describes
Specifi
Requirements Program
Customer cation
Specifies
Analyzes Develops
Software Engineer
3. Teknik, model dan metode
pengembangan Perangkat Lunak
Metode Pengembangan S/W :
1. Memahami kebutuhan (contoh mesin
ATM)
1
7
4
0
2
5 3
8 6
9
Communication link
Bank’s
remote
ATM machine
datacenter
Bank
customer
35
Bagaimana Mesin ATM bekerja
Domain Model
Transaction
How may I record
help you? Cash
Bookkeeper
Speakerphone Safe
Safe keeper
Phone
Window clerk
Datacenter
liaison
Dispenser
Bank’s
remote
datacenter
Customer
36
: Bagaimana Mesin ATM
Komik
bekerja
A Enter B C Verify
account
D
your PIN
XYZ
Verify
this
account
Withdraw Dispense
H Dispensing!
$60 $60
Please take
your cash
37
ATM: Gallery of Players
1
4 2
7 5 3
8 6
0 9
1
4 2
7 5 3 1
8 6 4 2
0 9 7 5 63
8
0 9
D E XYZ
Please take
your cash withdrew
$60
1
4 2
7 5 63
8
0 9
Collecting
cash …
Acknowledged
40
Contoh User Stories
Identifier User Story Size
As an authorized person (tenant or landlord), I can keep the doors locked at all
ST-1 4 points
times.
ST-2 As an authorized person (tenant or landlord), I can lock the doors on demand. 3 pts
ST-3 The lock should be automatically locked after a defined period of time. 6 pts
ST-6 As an authorized person (tenant or landlord), I can view past accesses. 6 pts
ST-7 As a tenant, I can configure the preferences for activation of various devices. 6 pts
Domain definition
Penentuan Domain Anaysis : Bagaimana
Pemula membagi Pekerjaannya
Projection: :Partitioning
Function-1:
description
Function-2:
Interface for description Tables for
what functions? … what data?
What to
write about?
Team communication is
simple: Subgroup Subgroup Subgroup
What do we have Φ-RED Φ-GREEN Φ-BLUE
They only need to define in common?
Actor Actor’s Goal (what the actor intends to accomplish) Use Case Name
Landlord To disarm the lock and enter, and get space lighted up. Unlock (UC-1)
Landlord To lock the door & shut the lights (sometimes?). Lock (UC-2)
Landlord To create a new user account and allow access to home. AddUser (UC-3)
Landlord To retire an existing user account and disable access. RemoveUser (UC-4)
To find out who accessed the home in a given interval of
Tenant InspectAccessHistory (UC-5)
time and potentially file complaints.
Tenant To disarm the lock and enter, and get space lighted up. Unlock (UC-1)
Tenant To lock the door & shut the lights (sometimes?). Lock (UC-2)
Tenant To configure the device activation preferences. SetDevicePrefs (UC-6)
LockDevice To control the physical lock mechanism. UC-1, UC-2
LightSwitch To control the lightbulb. UC-1, UC-2
[to be To auto-lock the door if it is left unlocked for a given
AutoLock (UC-2)
identified] interval of time.
( Actors already given if working from user stories instead of system requirements )
3. Behavior Modeling : Use Case Diagram
- Device Control UC1:
UC2:
Unlock
Lock
UC3: AddUser
UC4: RemoveUser
UC5: InspectAccessHistory
UC6: SetDevicePrefs
UC7: AuthenticateUser
UC8: Login
system
boundary First tier use cases Second tier use cases
actor lude
» UC7: AuthenticateUser
«inc
«participate»
«initiate» »
UC1: Unlock t i c i pate
r
«pa
«in
it «particip LockDevice
iat ate»
e»
Tenant
ate»
e» «particip
i t iat
«in
«pa LightSwitch
rtici
«initiate» UC2: Lock pate
»
«initiate + participate»
communication use case
Landlord Timer
3. Behavior Modeling : Use Case Diagram
- Account Management UC1:
UC2:
Unlock
Lock
UC3: AddUser
UC4: RemoveUser
UC5: InspectAccessHistory
UC6: SetDevicePrefs
UC7: AuthenticateUser
UC8: Login
«initiate»
UC3: AddUser
« in
«ini clu
tia te » de
»
Landlord »
te «incl
p a UC4: RemoveUser ud e»
t ici
par
« UC8: Login
lu de »
« inc
t e»
«initia UC5: InspectAccessHistory
d e»
u
n cl
«initi
ate» «i
Apply Close
Step 2. Type in the correct System flashes a green light to indicate success;
records successful access in the database;
keycode and door identifier disarms the lock device
3. Behavior Modeling : Use Case 2 - Lock
Use Case UC-2: Lock
Related REQ1, REQ2, and REQ5 stated in Table 2-1
Requirements:
Initiating Actor: Any of: Tenant, Landlord, or Timer
Actor’s Goal: To lock the door & get the lights shut automatically (?)
Participating LockDevice, LightSwitch, Timer
Actors:
Preconditions: The system always displays the menu of available functions.
Postconditions: The door is closed and lock armed & the auto-lock timer is reset.
Flow of Events for Main Success Scenario:
1. Tenant/Landlord selects the menu item “Lock”
System (a) signals affirmation, e.g., “lock armed,” (b) signals to LockDevice to arm the lock (if
2. not already armed), (c) signal to Timer to reset the auto-lock counter, and (d) signals to
LightSwitch to turn the light off (?)
Flow of Events for Extensions (Alternate Scenarios):
2a. System senses that the door is not closed, so the lock cannot be armed
1. System (a) signals a warning that the door is open, and (b) signal to Timer to start the alarm
counter
2. Tenant/Landlord closes the door
System (a) senses the closure, (b) signals affirmation to the Tenant/Landlord, (c) signals to
3. LockDevice to arm the lock, (d) signal to Timer to reset the auto-lock counter, and (e) signal to
Timer to reset the alarm counter
3. Behavior Modeling : Diagram Konteks
Diagram konteks
adalah diagram yang
terdiri dari suatu
proses dan
menggambarkan
ruang lingkup suatu
sistem. Diagram
konteks merupakan
level tertinggi dari
DFD yang
menggambarkan
seluruh input ke
dalam sistem atau
output dari sistem
yang memberi
gambaran tentang
keseluruhan sistem.
3. Behavior Modeling : Diagram Aktivitas
1
2 Enter Key
3 Action
4
5 Decision
X Verify Key
Y
Signal
Success
Notify
Intrusion
Open Lock &
Lit Light
Sound Alarm
Start Autolock
Timer
Activity
Merge
final node
CONTOH LAIN :
3. Teknik, model dan metode
pengembangan Perangkat Lunak
Metode Pengembangan S/W :
4. Structural Modeling : Class Diagram
enter key
verify key
start ("duration“)
: System
User AlarmBell Police
«initiating actor» «supporting actor» «offstage actor»
select function(“unlock")
enter key
verify key
notify intrusion