Based-on slide Ivan Marsic
Rekayasa Perangkat Lunak
Untuk SISTEM KOMPUTER
Kuliah 1: Pendahuluan
Mohammad Iqbal
Based-on slide Ivan Marsic
Course Information
Textbooks
– Bruegge & Dutoit: Object-Oriented Software Engineering: Using UML, Patterns and
Java, Third Edition, Prentice Hall, 2010. | ISBN 0-13-6061257
– Miles & Hamilton: Learning UML 2.0, O’Reilly Media, 2006. ISBN: 0-596-00982-8
2
Pendahuluan : Software itu
Kompleks
• Complex complicated
• Complex = composed of many simple parts
related to one another
• Complicated = not well understood, or explained
Contoh Kompleksitas:
Skedul Tugas Membangun Konstruksi Pagar
Setting posts
[ 3 time units ]
Cutting wood
[ 2 time units ]
Nailing
[ 2 time units for unpainted;
3 time units otherwise ]
Painting
[ 5 time units for uncut wood;
4 time units otherwise ]
Setting posts Nailing, Painting
Cutting Nailing
…shortest possible completion time = ?
[ “simple” problem, but hard to solve without a pen and paper ]
4
More Complexity
Suppose today is Tuesday, November 29
What day will be on January 3?
[ To answer, we need to bring the day names and the day numbers
into coordination, and for that we may need again a pen and paper ]
Peranan Software Enggineer (1)
A bridge from customer needs to programming implementation
Customer
Programmer
First law of software engineering
Software engineer is willing to learn the problem domain
(problem cannot be solved without understanding it first)
6
Peranan Software Enggineer (2)
Customer:
Requires a computer system to achieve some business goals
by user interaction or interaction with the environment
in a specified manner
System-to-be
User
Software-to-be
Environment
Software Engineer’s task:
To understand how the system-to-be needs to interact with
the user or the environment so that customer’s requirement is met
and design the software-to-be
May be the
same person
Programmer’s task:
To implement the software-to-be
designed by the software engineer
7
Contoh: Mesin ATM
Understanding the money-machine problem:
7
4
1
0
2
5 3
8 6
9
ATM machine
Communication link
Bank’s
remote
datacenter
Bank
customer
8
Strategi Pemecahan-Masalah
Divide-and-conquer:
Identify logical parts of the system that each
solves a part of the problem
Easiest done with the help of a domain expert
who already knows the steps in the process
(“how it is currently done”)
Result:
A Model of the Problem Domain
(or “domain model”)
9
Bagaimana Mesin ATM bekerja
Domain Model
How may I
help you?
Transaction
record
Cash
Bookkeeper
Speakerphone
Safe keeper
Safe
Phone
Window clerk
Datacenter
liaison
Dispenser
Customer
Bank’s
remote
datacenter
10
Komik
A
: Bagaimana Mesin ATM bekerja
Enter
your PIN
C
B
Verify
account
XYZ
D
Verify
this
account
Typing in
PIN number
…
E
How may
I help
you?
Withdraw
$60
Account
valid.
Balance:
$100
XYZ valid.
Balance:
$100
F
G
Release
$60
Dispense
$60
Record
$60 less
Dispensing!
H
Please take
your cash
11
Cetak Biru Software Engineering
Specifying
software problems and solutions is
like cartoon strip writing
Unfortunately,
most of us are not artists, so we
will use something less exciting:
UML symbols
However …
12
Hukum Kedua Software Engineering
Software
should be written for people first
– ( Computers run software, but hardware quickly
becomes outdated )
– Useful + good software lives long
– To nurture software, people must be able to understand
it
13
Metode Pengembangan Software
Method
= work strategy
The Feynman Problem-Solving Algorithm:
(i) Write down the problem (ii) think very hard, and
(iii) write down the answer.
Waterfall
Unidirectional, finish this step before moving to the next
Iterative
+ Incremental
Develop increment of functionality, repeat in a feedback loop
Agile
Continuous user feedback essential; feedback loops on several levels
of granularity
14
Metode Waterfall
Requirements
Design
Implementation
Waterfall
method
Testing
Each activity confined to its “phase”.
Unidirectional, no way back;
finish this phase before moving to the next
Deployment &
Maintenance
15
UML – Bahasa Simbol
UML = Unified Modeling Language
«interface»
BaseInterface
ClassName
# attribute_1 : int
# attribute_2 : boolean
# attribute_3 : String
Three common
compartments:
Actor
1.
Classifier name
2.
Attributes
3.
Operations
+ operation()
+ operation_1() : void
+ operation_2() : String
+ operation_3(arg1 : int)
Class1Implement
Class2Implement
+ operation()
+ operation()
Stereotype
«» provides
additional info/
annotation/
explanation
Inheritance
relationship:
BaseInterface
is implemented
by two classes
Software Class
Comment
Software Interface Implementation
instance1 : Class1
instance5 : Class2
doSomething()
instance8 : Class3
doSomethingElse()
Interaction Diagram
doSomethingYetElse()
Online information:
http://www.uml.org
16
Seberapa Banyak Kita Membuat
Diagram?
Use informal, ad-hoc, hand-drawn, scruffy diagrams
during early stages and within the development team
– Hand-drawing forces economizing and leads to low emotional
investment
• Economizing focuses on the essential, most important considerations
– Prioritize substance over the form
• Not being invested facilitates critique and suggested modifications
– Always take snapshot to preserve records for future
Use standardized, neat, computer-generated diagrams
when consensus reached and designs have “stabilized”
– Standards like UML facilitate communication with broad range of
stakeholders
– But, invest effort to make neat and polished diagrams only when
there is an agreement about the design, so this effort is worth doing
• Invest in the form, only when the substance is worth such an investment
17
Memahami Problem Domain
System to be developed
Actors
– Agents external to the system that interact with it
Concepts/ Objects
– Agents working inside the system to make it function
Use Cases
– Scenarios for using the system
18
ATM: Gallery of Players
7
4
0
Bank customer
1
8
5
2
9
6
3
System
(ATM machine)
Bank’s remote
datacenter
Aktor (Easy to identify because they are visible!)
19
Gallery of Workers + Tools
Window clerk
Datacenter
liaison
Bookkeeper
Safe keeper
Dispenser
Speakerphone
Telephone
Transaction
record
Safe
Cash
Konsep (Hard to identify because they are invisible/imaginary!)
20
Studi Kasus : Ambil Uang Cash
A
B
Verify
account
XYZ
Enter
your PIN
7
4
1
0
8
C
How may
I help
you?
2
5 3
6
9
7
4
1
0
XYZ valid.
Balance:
$100
Typing in
PIN number
…
D
7
4
1
0
Collecting
cash …
8
2
5 63
9
Withdraw
$60
E
Please take
your cash
8
XYZ
withdrew
$60
2
5 63
9
Acknowledged
21
Bagaimana ATM Bekerja (2)
Domain Model (2)
Solution
modification
Alternative
solution
How may I
help you?
Transaction
record
Bookkeeper
Speakerphone
Draftsman
Window clerk
Dispenser
Customer
Bagaimana ATM Bekerja (3)
Domain Model (3)
Alternative
solution
Solution
modification
How may I
help you?
Transaction
record
Bookkeeper
Speakerphone
Courier
Window clerk
Dispenser
Customer
Solusi mana yg terbaik atau lebih fisibel ?
Remote
bank
Desain Rube Goldberg
Pembuka Pintu Garasi
24
Desain Aktual
Operator (includes motor and radio control mechanism)
1
2
Remote control transmitter
6
5
3
7
4
Rail with a belt or chain
5
8
6
Pressing of a button on the remote control transmitter (1)
Garage door
authenticates the device & activates the motor in the operator (2).
The motor pulls the chain (or belt) along the rail (3) and winds
the torsion spring (4).
The torsion spring winds the cable on the pulleys (or drums) (5)
on both sides of the door.
The cables lift the door, pushing the different sections of the door
into the horizontal tracks (6)
At the same time, the trolley (or traveler) (7) moves along the rail (3)
and controls how far the door opens (or closes),
Safety reversing sensor
as well as the force the garage door exerts by way of the curved door arm (8)
25
Fisibilitas & Kualitas Desain
Judging feasibility
or quality of a design
requires great deal of domain knowledge
(and commonsense knowledge!)
26
Pengukuran Software
What to measure?
– Project (developer’s work),
for budgeting and scheduling
– Product,
for quality assessment
27
Formal hedge pruning
28
Strategi Estimasi Pekerjaan
1.
Make initial guess for a little part of the work
2. Do a little work to find out how fast you can go
3. Make correction on your initial estimate
4. Repeat until no corrections are needed
or work is completed
29
Mengukur Masalah (1)
Step 1: Divide the problem into small & similar parts
Step 2:
Estimate relative
sizes of all parts
Size( ) = 4
Size( ) = 7
Size( ) = 10
Size( ) = 3
Size( ) = 4
Size( ) = 2
Size( ) = 4
Size( ) = 7
Mengukur Masalah (2)
• Step 3: Estimate the size of the total work
Total size = points-for-section i
(i = 1..N)
• Step 4: Estimate speed of work (velocity)
• Step 5: Estimate the work duration
Travel duration =
Path size
Travel velocity
Mengukur Masalah (3)
• Assumptions:
– Relative size estimates are accurate
• That’s why parts should be small & similar-size!
• Advantages:
– Velocity estimate may need to be adjusted (based on
observed progress)
– However, the total duration can be recomputed quickly
• Provided that the relative size estimates of parts are accurate
—accuracy easier achieved if the parts are small and similar-size
Estimasi Biaya Eksponensial
Estimation accuracy
100%
Estimation cost
Improving accuracy of estimation beyond a certain point requires huge
cost and effort (known as the law of diminishing returns)
In the beginning of the curve, a modest effort investment yields huge
gains in accuracy
33
Estimasi Error Over Time
Estimation
error
Requirements
Start
Waterfall Method
Design
Implementation
Completion
Time
Waterfall method cone of uncertainty starts high and narrows
down to zero as the project approaches completion.
Estimasi Error Over Time
Estimation
error
Agile Method
Leap in estimation accuracy
because of experience gained
through completion of a part of work
Requirements
Design
Implementation
Start
Requirements
Design
Implementation
Requirements
Design
Implementation
Completion
Time
Waterfall method cone of uncertainty starts high and narrows
down to zero as the project approaches completion.
Agile Project Effort Estimation
36
Mengukur Kualitas Pekerjaan
Good Shape
(Low branches get sun)
Snow accumulates
on broad flat tops
Poor Shape
(Low branches
shaded from sun)
Straight lines require
more frequent trimming
Heading back not
recommended as
it alters the natural
shape of the shrub
Peaked and rounded tops
hinder snow accumulation
Remove dead wood
Remove water spouts
and suckers
Rounded forms, which
follow nature’s tendency,
require less trimming
37
Peta Konsep
Useful tool for problem domain description
SENTENCE: “My friend is coding a new program”
translated into propositions
I
Proposition
Concept
Relation
Concept
1.
I
have
friend
2.
friend
engages in
coding
3.
coding
constructs a
program
4.
program
is
new
have
friend
engages in
coding
constructs a
program
is
Search the Web for Concept Maps
new
38
Studi Kasus : Home Access
Control
Objective:
Design an electronic system for:
– Home access control
• Locks and lighting operation
– Intrusion detection and warning
Alarm bell
System
1
2
3
4
5
X
Y
Light bulb
Lock
Photosensor
Switch
39
Studi Kasus – Detail
Alarm bell
System
1
2
3
4
5
X
Y
Lock
Light bulb
Photosensor
Switch
40
Memahami Problem
Mortise Lock Parts
1 Lock case
4
1
2 Latch bolt
3 Dead bolt
6
2
9
5
4 Strike plate
5 Strike box
3
7
6 Protective plate
7 Thumb-turn
8 Lock cylinder
8
9 Left hand lever
1
2
3
4
5
X
Y
41
Peta Konsep untuk Home Access
Control
tenant
enters
wishes
key
can be
upper bound on failed attempts
lock opened
causes
valid key
invalid key
may signal
burglar
launches
can be prevented by enforcing
dictionary attack
42
Aturan Status dan Transisi
IF validKey AND holdOpenInterval THEN unlock
IF validKey THEN unlock
locked
unlocked
IF pushLockButton THEN lock
IF timeAfterUnlock ≥ max{ autoLockInterval, holdOpenInterval } THEN lock
… what seemed a simple problem, now is becoming complex
43
Untuk SISTEM KOMPUTER
Kuliah 1: Pendahuluan
Mohammad Iqbal
Based-on slide Ivan Marsic
Course Information
Textbooks
– Bruegge & Dutoit: Object-Oriented Software Engineering: Using UML, Patterns and
Java, Third Edition, Prentice Hall, 2010. | ISBN 0-13-6061257
– Miles & Hamilton: Learning UML 2.0, O’Reilly Media, 2006. ISBN: 0-596-00982-8
2
Pendahuluan : Software itu
Kompleks
• Complex complicated
• Complex = composed of many simple parts
related to one another
• Complicated = not well understood, or explained
Contoh Kompleksitas:
Skedul Tugas Membangun Konstruksi Pagar
Setting posts
[ 3 time units ]
Cutting wood
[ 2 time units ]
Nailing
[ 2 time units for unpainted;
3 time units otherwise ]
Painting
[ 5 time units for uncut wood;
4 time units otherwise ]
Setting posts Nailing, Painting
Cutting Nailing
…shortest possible completion time = ?
[ “simple” problem, but hard to solve without a pen and paper ]
4
More Complexity
Suppose today is Tuesday, November 29
What day will be on January 3?
[ To answer, we need to bring the day names and the day numbers
into coordination, and for that we may need again a pen and paper ]
Peranan Software Enggineer (1)
A bridge from customer needs to programming implementation
Customer
Programmer
First law of software engineering
Software engineer is willing to learn the problem domain
(problem cannot be solved without understanding it first)
6
Peranan Software Enggineer (2)
Customer:
Requires a computer system to achieve some business goals
by user interaction or interaction with the environment
in a specified manner
System-to-be
User
Software-to-be
Environment
Software Engineer’s task:
To understand how the system-to-be needs to interact with
the user or the environment so that customer’s requirement is met
and design the software-to-be
May be the
same person
Programmer’s task:
To implement the software-to-be
designed by the software engineer
7
Contoh: Mesin ATM
Understanding the money-machine problem:
7
4
1
0
2
5 3
8 6
9
ATM machine
Communication link
Bank’s
remote
datacenter
Bank
customer
8
Strategi Pemecahan-Masalah
Divide-and-conquer:
Identify logical parts of the system that each
solves a part of the problem
Easiest done with the help of a domain expert
who already knows the steps in the process
(“how it is currently done”)
Result:
A Model of the Problem Domain
(or “domain model”)
9
Bagaimana Mesin ATM bekerja
Domain Model
How may I
help you?
Transaction
record
Cash
Bookkeeper
Speakerphone
Safe keeper
Safe
Phone
Window clerk
Datacenter
liaison
Dispenser
Customer
Bank’s
remote
datacenter
10
Komik
A
: Bagaimana Mesin ATM bekerja
Enter
your PIN
C
B
Verify
account
XYZ
D
Verify
this
account
Typing in
PIN number
…
E
How may
I help
you?
Withdraw
$60
Account
valid.
Balance:
$100
XYZ valid.
Balance:
$100
F
G
Release
$60
Dispense
$60
Record
$60 less
Dispensing!
H
Please take
your cash
11
Cetak Biru Software Engineering
Specifying
software problems and solutions is
like cartoon strip writing
Unfortunately,
most of us are not artists, so we
will use something less exciting:
UML symbols
However …
12
Hukum Kedua Software Engineering
Software
should be written for people first
– ( Computers run software, but hardware quickly
becomes outdated )
– Useful + good software lives long
– To nurture software, people must be able to understand
it
13
Metode Pengembangan Software
Method
= work strategy
The Feynman Problem-Solving Algorithm:
(i) Write down the problem (ii) think very hard, and
(iii) write down the answer.
Waterfall
Unidirectional, finish this step before moving to the next
Iterative
+ Incremental
Develop increment of functionality, repeat in a feedback loop
Agile
Continuous user feedback essential; feedback loops on several levels
of granularity
14
Metode Waterfall
Requirements
Design
Implementation
Waterfall
method
Testing
Each activity confined to its “phase”.
Unidirectional, no way back;
finish this phase before moving to the next
Deployment &
Maintenance
15
UML – Bahasa Simbol
UML = Unified Modeling Language
«interface»
BaseInterface
ClassName
# attribute_1 : int
# attribute_2 : boolean
# attribute_3 : String
Three common
compartments:
Actor
1.
Classifier name
2.
Attributes
3.
Operations
+ operation()
+ operation_1() : void
+ operation_2() : String
+ operation_3(arg1 : int)
Class1Implement
Class2Implement
+ operation()
+ operation()
Stereotype
«» provides
additional info/
annotation/
explanation
Inheritance
relationship:
BaseInterface
is implemented
by two classes
Software Class
Comment
Software Interface Implementation
instance1 : Class1
instance5 : Class2
doSomething()
instance8 : Class3
doSomethingElse()
Interaction Diagram
doSomethingYetElse()
Online information:
http://www.uml.org
16
Seberapa Banyak Kita Membuat
Diagram?
Use informal, ad-hoc, hand-drawn, scruffy diagrams
during early stages and within the development team
– Hand-drawing forces economizing and leads to low emotional
investment
• Economizing focuses on the essential, most important considerations
– Prioritize substance over the form
• Not being invested facilitates critique and suggested modifications
– Always take snapshot to preserve records for future
Use standardized, neat, computer-generated diagrams
when consensus reached and designs have “stabilized”
– Standards like UML facilitate communication with broad range of
stakeholders
– But, invest effort to make neat and polished diagrams only when
there is an agreement about the design, so this effort is worth doing
• Invest in the form, only when the substance is worth such an investment
17
Memahami Problem Domain
System to be developed
Actors
– Agents external to the system that interact with it
Concepts/ Objects
– Agents working inside the system to make it function
Use Cases
– Scenarios for using the system
18
ATM: Gallery of Players
7
4
0
Bank customer
1
8
5
2
9
6
3
System
(ATM machine)
Bank’s remote
datacenter
Aktor (Easy to identify because they are visible!)
19
Gallery of Workers + Tools
Window clerk
Datacenter
liaison
Bookkeeper
Safe keeper
Dispenser
Speakerphone
Telephone
Transaction
record
Safe
Cash
Konsep (Hard to identify because they are invisible/imaginary!)
20
Studi Kasus : Ambil Uang Cash
A
B
Verify
account
XYZ
Enter
your PIN
7
4
1
0
8
C
How may
I help
you?
2
5 3
6
9
7
4
1
0
XYZ valid.
Balance:
$100
Typing in
PIN number
…
D
7
4
1
0
Collecting
cash …
8
2
5 63
9
Withdraw
$60
E
Please take
your cash
8
XYZ
withdrew
$60
2
5 63
9
Acknowledged
21
Bagaimana ATM Bekerja (2)
Domain Model (2)
Solution
modification
Alternative
solution
How may I
help you?
Transaction
record
Bookkeeper
Speakerphone
Draftsman
Window clerk
Dispenser
Customer
Bagaimana ATM Bekerja (3)
Domain Model (3)
Alternative
solution
Solution
modification
How may I
help you?
Transaction
record
Bookkeeper
Speakerphone
Courier
Window clerk
Dispenser
Customer
Solusi mana yg terbaik atau lebih fisibel ?
Remote
bank
Desain Rube Goldberg
Pembuka Pintu Garasi
24
Desain Aktual
Operator (includes motor and radio control mechanism)
1
2
Remote control transmitter
6
5
3
7
4
Rail with a belt or chain
5
8
6
Pressing of a button on the remote control transmitter (1)
Garage door
authenticates the device & activates the motor in the operator (2).
The motor pulls the chain (or belt) along the rail (3) and winds
the torsion spring (4).
The torsion spring winds the cable on the pulleys (or drums) (5)
on both sides of the door.
The cables lift the door, pushing the different sections of the door
into the horizontal tracks (6)
At the same time, the trolley (or traveler) (7) moves along the rail (3)
and controls how far the door opens (or closes),
Safety reversing sensor
as well as the force the garage door exerts by way of the curved door arm (8)
25
Fisibilitas & Kualitas Desain
Judging feasibility
or quality of a design
requires great deal of domain knowledge
(and commonsense knowledge!)
26
Pengukuran Software
What to measure?
– Project (developer’s work),
for budgeting and scheduling
– Product,
for quality assessment
27
Formal hedge pruning
28
Strategi Estimasi Pekerjaan
1.
Make initial guess for a little part of the work
2. Do a little work to find out how fast you can go
3. Make correction on your initial estimate
4. Repeat until no corrections are needed
or work is completed
29
Mengukur Masalah (1)
Step 1: Divide the problem into small & similar parts
Step 2:
Estimate relative
sizes of all parts
Size( ) = 4
Size( ) = 7
Size( ) = 10
Size( ) = 3
Size( ) = 4
Size( ) = 2
Size( ) = 4
Size( ) = 7
Mengukur Masalah (2)
• Step 3: Estimate the size of the total work
Total size = points-for-section i
(i = 1..N)
• Step 4: Estimate speed of work (velocity)
• Step 5: Estimate the work duration
Travel duration =
Path size
Travel velocity
Mengukur Masalah (3)
• Assumptions:
– Relative size estimates are accurate
• That’s why parts should be small & similar-size!
• Advantages:
– Velocity estimate may need to be adjusted (based on
observed progress)
– However, the total duration can be recomputed quickly
• Provided that the relative size estimates of parts are accurate
—accuracy easier achieved if the parts are small and similar-size
Estimasi Biaya Eksponensial
Estimation accuracy
100%
Estimation cost
Improving accuracy of estimation beyond a certain point requires huge
cost and effort (known as the law of diminishing returns)
In the beginning of the curve, a modest effort investment yields huge
gains in accuracy
33
Estimasi Error Over Time
Estimation
error
Requirements
Start
Waterfall Method
Design
Implementation
Completion
Time
Waterfall method cone of uncertainty starts high and narrows
down to zero as the project approaches completion.
Estimasi Error Over Time
Estimation
error
Agile Method
Leap in estimation accuracy
because of experience gained
through completion of a part of work
Requirements
Design
Implementation
Start
Requirements
Design
Implementation
Requirements
Design
Implementation
Completion
Time
Waterfall method cone of uncertainty starts high and narrows
down to zero as the project approaches completion.
Agile Project Effort Estimation
36
Mengukur Kualitas Pekerjaan
Good Shape
(Low branches get sun)
Snow accumulates
on broad flat tops
Poor Shape
(Low branches
shaded from sun)
Straight lines require
more frequent trimming
Heading back not
recommended as
it alters the natural
shape of the shrub
Peaked and rounded tops
hinder snow accumulation
Remove dead wood
Remove water spouts
and suckers
Rounded forms, which
follow nature’s tendency,
require less trimming
37
Peta Konsep
Useful tool for problem domain description
SENTENCE: “My friend is coding a new program”
translated into propositions
I
Proposition
Concept
Relation
Concept
1.
I
have
friend
2.
friend
engages in
coding
3.
coding
constructs a
program
4.
program
is
new
have
friend
engages in
coding
constructs a
program
is
Search the Web for Concept Maps
new
38
Studi Kasus : Home Access
Control
Objective:
Design an electronic system for:
– Home access control
• Locks and lighting operation
– Intrusion detection and warning
Alarm bell
System
1
2
3
4
5
X
Y
Light bulb
Lock
Photosensor
Switch
39
Studi Kasus – Detail
Alarm bell
System
1
2
3
4
5
X
Y
Lock
Light bulb
Photosensor
Switch
40
Memahami Problem
Mortise Lock Parts
1 Lock case
4
1
2 Latch bolt
3 Dead bolt
6
2
9
5
4 Strike plate
5 Strike box
3
7
6 Protective plate
7 Thumb-turn
8 Lock cylinder
8
9 Left hand lever
1
2
3
4
5
X
Y
41
Peta Konsep untuk Home Access
Control
tenant
enters
wishes
key
can be
upper bound on failed attempts
lock opened
causes
valid key
invalid key
may signal
burglar
launches
can be prevented by enforcing
dictionary attack
42
Aturan Status dan Transisi
IF validKey AND holdOpenInterval THEN unlock
IF validKey THEN unlock
locked
unlocked
IF pushLockButton THEN lock
IF timeAfterUnlock ≥ max{ autoLockInterval, holdOpenInterval } THEN lock
… what seemed a simple problem, now is becoming complex
43