Escolar Documentos
Profissional Documentos
Cultura Documentos
Design Process
Introduction to UML
Processes
Tools
Programming languages
Sequence diagrams
Class diagram
Activity diagram
10
State machine
11
Sequence diagram
12
Communications diagram
13
14
Modeler
Rational Software
Architect
Rational RequisitePro
Rational Method
Composer
Rational Unified
Process
15
Analysis
Design
of the code
Implementation
Testing
17
Topics
18
UML
From Problem to Code
The Object and Class Concepts
Identifying Classes
Identifying Responsibilities
Relationships Between Classes
Use Cases
CRC Cards
UML Class Diagrams
Sequence Diagrams
State Diagrams
Using javadoc for Design Documentation
Case Study: A Voice Mail System
Three Phases:
Analysis
Design
Implementation
19
Analysis Phase
tasks to be solved
Free from internal contradictions
Readable both by domain experts and software developers
Reviewable by diverse interested parties
Testable against reality
20
Design Phase
Goals
Identify classes
Identify behavior
of classes
Artifacts
Textual description of
Diagrams
of class relationships
Diagrams
State diagrams
21
classes
Implementation Phase
22
23
Identifying Classes
24
Don't
messages
Categories of Classes
Tangible Things
Agents
Systems
Foundational Classes
25
Identifying Responsibilities
message to tail
Remove
Test
Class Relationships
The following relationships can exist among classes:
Dependency ("uses")
27
Dependency Relationship
with
public class Message{
String getText() { // can print anywhere }
28
Association
29
Aggregation
30
Composition
31
Association Direction
e.g.
it
32
unidirectional
Multiplicities
exactly one: 1
Implementation:
1, 0..1 relationship:
public class Mailbox{
...
private MessageQueue queue;
}
1:n relationship:
public class MessageQueue{
...
private ArrayList<Message> elements;
}
33
34
35
Use Cases
Analysis technique
36
2.
3.
4.
System speaks
You have reached mailbox xxxx. Please leave a
message now
5.
6.
Caller hangs up
7.
37
Variation #1
1.1. In step 3, user enters invalid extension number
Variation #2
2.1. After step 4, caller hangs up instead of speaking message
38
CRC Cards
Responsibilities on left
Collaborators on right
39
CRC Cards
40
CRC Cards
41
Find classes
42
Walkthroughs
Caller dials
extension number
43
Walkthroughs
44
Diagrams
Sequence
Diagrams
State Diagrams
45
Sequence Diagrams
46
Sequence Diagrams
Self call
47
Object Construction
State Diagram
48
Design Documentation
49
50
2.
3.
4.
System speaks
You have reached mailbox xxxx. Please
leave a message now
51
2.
3.
Caller hangs up
4.
52
2.
3.
53
2.
3.
1
2
3
4
to
to
to
to
4.
5.
6.
7.
8.
54
55
2.
3.
4.
5.
56
2.
3.
4.
5.
57
Mailbox
Message
MailSystem
58
59
Telephone
60
Connection
With MailSystem?
61
2.
3.
4.
5.
6.
7.
8.
62
63
64
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
65
66
CRC Summary
67
68
Dependency Relationships
69
Aggregation Relationships
70
71
72
Each key press results in separate call to dial, but only one
is shown
73
74
75
76