Common Methodologies

Analysis / Design
Traditional Development
WHAT ?
requirements
gathering
HOW ?
requirements
analysis
design
coding
Ali Doğru
Process models
METU
ƒ Big organizations have their own
ƒ Known methodologies:
ƒ
ƒ
ƒ
ƒ
METU
68
User
•External Entity
ƒ DFD, ERD, Data Dictionary
ƒ Design
•Process
ƒ DFD, Tables, Normalization, PSL/PDL
ƒ Data -> Structure -> Function
ƒ Transform Analysis
Password check
•Data store
ƒ ‘Procedural’ language + SQL
Traditional Software Development
Ali Doğru
Analysis: DFD
ƒ Analysis:
METU
Yourdon
Jackson
SSADM
SDM, SADT, DSSD ....
67
Common Approach
Ali Doğru
66
Common Methodologies
ƒ Usually Waterfall derivatives
ƒ Data and Function based models
ƒ Dataflow / Entity-Relation / Structure
Diagrams (DFD ERD Structure Chart)
ƒ RDBMs, supporting CASE tools
Ali Doğru
METU
•Data
69
ID info
ID info
Ali Doğru
METU
70
11
DFD: Level 1
DFD: Context Diagram
ATM System
account info
card info
Account info
Card info
user
1
check account
Central bank
database
ATM System
Money
process
output
report
METU
updated
account
info
3
Updated account info
Ali Doğru
process
transaction
result
money
Report
2
verified
account
number
71
current cash
Ali Doğru
METU
72
An Example ERD
Entity Relationship Diagrams
private
school
1
Entity
has
< name>
Property
Relation
full
N
inheritance
room
new
< name>
<plurality>
< name>
classroom
laboratory
office
<plurality>
floor
blackboard
Ali Doğru
METU
73
School
Description
Name of the
school
Format
Text
Date
Status
9/25/01
cancelled
Ali Doğru
Text
(hardwood,
carpet)
9/26/01
Active
Capacity
Attribute of the
laboratory entity
Integer
9/26/01
Active
State diagram
Has
Relation: 1st entity
owns the 2nd
9/26/01
active
Control specification
Traditional Software Development
74
interface
design
Data
dictionary
Attribute of the
room entitiy:
material
METU
SquareFeet
Process
design
Floor
Ali Doğru
METU
Analysis to Design
A Data Dictionary Example
Name
capacity
Structural design
75
Data design
Ali Doğru
METU
76
22
A System and its Modules
System
Modular Complexity
depth
ƒ Complexity:
ƒ
C(p1+p2) > C(p1) + C(p2)
ƒ Functional Dependency:
Output fan = 3
a
d
ƒ Cohesion
ƒ Coupling
b
e
f
Ali Doğru
METU
banking
operation
input flow
password
check
password
balance
report
prepare
balance
Output flow
prepare
report
valid
ID
Operation
report
First Step in Transform
ATM
software
j
width
Operation flow 1
balance
prepare
report
Transaction flow
Input flow
balance
report
operation operation
Operation Flow 2
Account
control
operation
type
number
prepare
report
operation
banking
report
Valid ID
operation
withdraw
check
ID
information
ID
withdraw op/. Flow 3
valid
password
money
transfer
password
check
transfer
information
ç
Operation
flow 4
password
Transaction flow: first step
ATM
software
transaction flow
example
Transform flow
example
Input control
Input control
Operation control
METU
Traditional Software Development
Operation
control
Output control
Balance
operation
Ali Doğru
k
Transaction Flow
Transform flow
account
number
i
77
Transform: Transform Flow
access
account
g
Input fan = 2
h
ID
c
81
Report
generation
Ali Doğru
withdraw
METU
Money transfer
82
33
Transaction flow: second step
ATM
software
Procedural Specification: PDL
Transaction flow
Do
Operation
Control
Input Control
Operation
control
Prepare balance
report
Read account number
If (invalid account number) go to beginning
Ask for operation type
If (Operation type == deposit) then {Deposit(); go to beginning}
Ask for password
If (invalid password) go to beginning
If (Operation type == balance) then {Balance(); go to beginning}
If (insufficient balance) then go to beginning
If (Operation type == money transfer) then {Transfer(); go to beginning}
If (Operation type == money transfer) then {Transfer(); go to beginning}
Else Withdraw()
Money transfer
withdraw
Prepare operation
report
Check ID
While (continuous)
Balance
Check Password
Ali Doğru
Testing
Test Plan
™ Test cases
™ Testing techniques
™ Testing strategies
™
METU
84
Testing Techniques
Unit Test
● Integration Test
● System Test
● V&V
●α & β
●
™
Black box
™
White box
?
– Exhaustive testing: prohibitive complexity
– Basis path testing: manageable:
• Cyclomatic complexity =
– # decision points + 1
– Nn-Ne + 2
– # Loops in a planar flow-graph
Ali Doğru
METU
85
Ali Doğru
Basis path testing
A=2
While B <> A do
If C > A
D=C
Else if D> C
D=A
End while
If D > 2
D=A
B=A
™
Top-down
2
stub
3
{3}
4
{4}
{5}
™
Bottom-up
™
Sandwich
driver
5
6
{6}
86
Testing Strategies
1
{1}
{2}
METU
Cyc.Comp=9-6+2 = 5
Ali Doğru
Traditional Software Development
METU
88
44
Object Oriented Approaches - II
Object Oriented Approaches
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
Programming languages: raising abstraction
Languages in 80s, methodologies later
A modeling that is closer to human mind than to
machines
Very similar OO modeling languages
Consistent development media from analysis to
coding
Meanwhile maturing of SE; incorporating non OO
techniques
Ali Doğru
METU
ƒ
ƒ
ƒ
ƒ
89
Entities should be modeled with their
operations
Supports reuse and modularity
Complexity is attempted to be addressed by
generalization and specialization mechanisms
Details to come soon…
Ali Doğru
METU
90
Newly Developing Concepts
ƒ
ƒ
ƒ
ƒ
ƒ
Component Technologies
Design Patterns
Architectural Frameworks
No methodological support yet !
Domain orientation
Ali Doğru
METU
Traditional Software Development
91
55