Title: Remarks%20on%20Software%20Design
1Remarks onSoftware Design
2Todays Lecture
- System design and implementation design
- System design
3Informatics 43 View
- Architecture design
- high-level partitioning of a software system into
separate modules (components) - focus on the interactions among parts
(connections) - focus on structural properties (architecture)
- How does it all fit together?
- Module design
- detailed design of a component
- focus on the internals of a component
- focus on computational properties
- How does it work?
4Informatics 121 View
- System design
- describes what the software system should do
- focus towards addressing Goal and Domain of Use
- How do we fundamentally approach the problem?
- typically represents an intermediate design in
progress - architecture design can be part of system design
- Implementation design
- describes what the implementer should do
- focus towards addressing Domain of Materials
- How do we make the approach reality?
- typically represents a final completed design
- module design can be part of implementation design
5Definitions
- A system design captures the essence of the
solution - customers
- system designers themselves
- implementation designers
- testers
-
- An implementation design captures the full
solution - system designers
- implementation designers themselves
- programmers
- testers
6Design Diamond
Domain of Materials
Implementation Design
Representation
System Design
Activity
Ideas
concern
manipulates
informs
Goal
captures
enhances
7Design Diamond
Domain of Materials
Representation
System Design
Activity
Ideas
concern
manipulates
informs
Goal
captures
enhances
8Traditional View of System Design
SystemDesign
architecture
9Traditional View of System Design
SystemDesign
architecture
or...
10Traditional View of System Design
SystemDesign
Statecharts
11Traditional View of System Design
SystemDesign
Statecharts
or...
12Traditional View of System Design
UML
SystemDesign
13Traditional View of System Design
UML
SystemDesign
or...
14Traditional View of System Design
SystemDesign
Data Flow Diagrams
15Traditional View of System Design
SystemDesign
Data Flow Diagrams
or...
16Traditional View of System Design
SystemDesign
Data Flow Diagrams
etc., etc., etc.
17Informatics 121 View of System Design
Booch
pi calculus
informal drawing
UML
SystemDesign
pseudo code
architecture
text
code
data flow diagrams
JSD
Statecharts
any and all as needed
18Design Concerns
- A typical design problem consists of many
different concerns that must all be addressed by
a design solution - Some of these concerns are more important and/or
have more impact than others - I want my e-commerce site to have a recognizable
logo versus My e-commerce site must scale to 1
million hits per minute - Sometimes, the importance and/or impact of a
concern is not obvious (the devil is in the
details) - I want my payroll software to properly handle
the exchange rate
As a designer, you need to find the concernsthat
are most important and have most impact
19Design Depth
- Some concerns need to be designed in much greater
depth than others - call control sequence of a cell phone versus the
menu input mechanism of that same cell phone - This depth relates to
- importance
- impact
- audience
- This depth usually requires a rationale
As a designer, you need to work out each
concernto the appropriate level of depth needed
20Design Depth
Concern 1
Concern 2
Concern 3
Concern 4
Concern 5
Concern 6
System A
21Design Depth
Concern 11
Concern 12
Concern 13
Concern 14
Concern 15
Concern 16
System B
22Design Depth
Concern 21
Concern 22
Concern 23
Concern 24
Concern 25
Concern 26
System C
23The Essence of a Design Solution Where?
- Structure
- Context
- Communication
- User interface
- Persistence
- Algorithms
- Naming
- Interchange
- Internal data structures
- Error handling
- Distribution
- Glue
-
24The Essence of a Design Solution Where?
- Often, the essence is located in multiple places,
related or unrelated - internal data structures and persistence
- communication and protocols
- user interface, persistence, and internal data
structure - The essence usually constitutes a nucleus of
concerns of high importance and high impact - The essence needs to be detailed at an
appropriate depth - The essence needs to be captured in one or more
appropriate design notations
25Structure
- Why may the essence be found here?
- what if the design concerns a distributed
application? - what if the design concerns a highly scalable
application? - what if the design concerns a business
application with highly changeable business
rules? -
- What may be a good design notation?
- software architecture
- UML2 component diagrams
- simple drawings
26Structure Examples
27Architecture Examples
28Context
- Why may the essence be found here?
- what if the design concerns an integrated system
constituting many existing systems? - what if the design concerns an application that
will automate a significant portion of an
organizations business? - what if the design concerns an application
spanning multiple businesses? -
- What may be a good design notation?
- context diagrams
- informal drawings of external entities
29Context Examples
30Context Examples
31Communication
- Why may the essence be found here?
- what if the design concerns a sensor network
consisting of many different sensors emitting
much different data? - what if the design concerns network quality of
service? - what if the design concerns a broadcasting
satellite? - what if the design concerns a document-centric
system? -
- What may be a good design notation?
- labeled transition systems
- UML sequence diagrams
- data flow diagrams
- protocols
32Communication Examples
33Communication Examples
34Communication Examples
35User Interface
- Why may the essence be found here?
- what if the design concerns real-time
visualization? - what if the design concerns multiple kinds of
displays? - what if the design concerns a drawing program?
- what if the design concerns a new interaction
mechanism? - what if the design concerns an e-commerce system?
-
- What may be a good design notation?
- sketches
- mock-ups
- interaction scenarios
- prototypes
36User Interface Examples
37User Interface Examples
38Persistence
- Why may the essence be found here?
- what if the design concerns a database
application? - what if the design concerns a system that must be
fail safe? - what if the design concerns an application that
must span multiple sessions? -
- What may be a good design notation?
- entity-relationship diagram
- file format definition
- UML class diagram
- database schema
39Persistence Examples
40Persistence Examples
41Algorithms
- Why may the essence be found here?
- what if the design concerns a search engine?
- what if the design concerns encryption?
- what if the design concerns a scheduling tool?
- what if the design concerns a file converter?
-
- What may be a good design notation?
- pseudo code
- flow chart
- Petri net
42Algorithms Examples
public boolean moveRobot (Robot aRobot)
//IF robot has no obstacle in front THEN
// Call Move robot // Add the move
command to the command history // RETURN
true //ELSE // RETURN false without
moving the robot //END IF
43Algorithms Examples
44Algorithms Examples
45Naming
- Why may the essence be found here?
- what if the design concerns a distributed system?
- what if the design concerns replicated data?
- what if the design concerns a complex set of
interrelated data items? -
- What may be a good design notation?
- examples and counterexamples
- regular expressions
46Naming Examples
http//www.clothes.com/mens/shirts/formal.html
http protocol // separators
www.clothes.com/ domain name mens/
subdirectory name shirts/ subdirectory
name formal.html document name (Web page)
47Naming Examples
D/eclipse/edu/uci/isr/palantir/core/PalantirPlugi
n1.2.80c318ce.109c2515402.f96511d31371ce2.0nu
ll artifactID filenameVIDwsIDparentID par
entID artifactID null VID 0-9. wsID
a-b0-9. filename ltltcontinue with regular
expression for pathnamesgtgt
48Interchange
- Why may the essence be found here?
- what if the design concerns a manufacturers
supply chain management system? - what if the design concerns a credit report
system? - what if the design concerns an airline booking
system? -
- What may be a good design notation?
- ontology
- data declarations
- application programmer interface
49Interchange Examples
50Interchange Examples
51The Essence of a Design Solution Where?
- Structure
- Context
- Communication
- User interface
- Persistence
- Algorithms
- Naming
- Interchange
- Internal data structures
- Error handling
- Distribution
- Glue
-
52Informatics 121 View of System Design
Booch
pi calculus
informal drawing
UML
SystemDesign
pseudo code
architecture
text
code
data flow diagrams
JSD
Statecharts
any and all as needed
53Pocket Guide to System Design
- Consider your goals and identify key issues
- what is at the heart of the system?
- what do people (including you) need to understand
about this system? - Choose design notations that will help you
explain these issues - what depth of understanding is needed?
- what does your audience already know?
- Remember to reflect on these representations as
you progress - you will not have all the answers up front
change course as needed