-
Notifications
You must be signed in to change notification settings - Fork 0
/
06-detailed-design.Rmd
99 lines (84 loc) · 2.9 KB
/
06-detailed-design.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# Detailed Design
- Overview
- What is detailed design?
- What is OO design?
- How should we do OO design?
- Detailed design
- To decompose subsystems into modules
- Two approaches of decomposition
- Procedual
- System is decompose
- Object-oriented
- Abstraction
- To focus on important, inherent properties while suppressing unnecessary details
- Permits separation of concern
- Allows postponements
- Two abstraction mechanisms
- Procedural abstraction
- Specification describes input/output
- Implementation describes algorithm
- Data abstraction
- Specification describes attributes, values
- Implementation describes representation and
manipulation
- OOD
- To identify responsibilities and assign them to classes and objects
- Responsibility for doing
- E.g., create an object, perform calculations, invoking operations on other objects
Responsibilities for knowing
- E.g., attributes, data involved in calculations, parameters when invoking operations
- How Do developers Design Objects?
- Code
- Draw, then code
- UML Diagrams
- Only draw
- The tool generates everything from diagrams
- How much time spent drawing UML before coding?
- Spend a few hours or at most one day (with partners) near
- Draw uml for the hard, creative parts of the detailed object design
- Stop and transition to coding
- UML drawings
- Inspiration as a starting point
- The final design in code may diverge and improve
- Detailed design resultes
- Dynamic models
- Help design the logic/behavior of the code
- UML interaction diagrams
- Static models
- Help design the definition of packages, class names, attributes, and method signatures
- (detailed) UML class diagrams
- UML Interaction Diagrams
- To illustrate how objects interact via messages
- Two types of interaction diagrams
- Communication diagram
- Sequence diagram
- Illustrate interactions in akind of fence format, in which each new object is added
- How should we do OO Design
- Responsibility-driven
- Responsibilities
- Obligations/behaviors
- Doing Responsibiliities
- Doing something itself
- Guideline
- The transition of responsibilities into classes and methods is influenced by the gra
- Knowing responsibilities
- Knowing about private encapsulated data
- Knowing related objects
- Knowing about things it can derive of calcualate
- "a sale of ject"
- Guideline
- The attributes and associations illuatrats=ed by domain objects
- GRASP:
- Principles
- Creator(doing)
- Problem: who creates an A?
- Advice: Assign class B the responsibility to create an instance of class A if:
- B "contains" or compositely aggregates A
- Whole-part; assembly
- Information expert
- Low coupling
- Controller
- High cohesion
- Sequence vs communication
- Summary
- Object fullfill tasks using their info or the info of objects the