Download presentation
Presentation is loading. Please wait.
1
Informatics 121 Software Design I
Lecture 8 André van der Hoek & Alex Baker Duplication of course material for any commercial purpose without the explicit written permission of the professor is prohibited. November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
2
© 2009 University of California, Irvine – André van der Hoek
Today’s Lecture Design theory Design Studio I continued November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
3
Positioning Software Design
Waterfall: once, in between requirements and implementation “design is a phase” Incremental: repeatedly, in between requirements and implementation Prototyping: once, in between prototyping/requirements and implementation Spiral: intermittently, when the risks being faced demand it XP: all the time, when coding “design is in the code” … November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
4
Software Design: Our View in 121 and 122
Application design Interaction design Architecture design Implementation design Maintenance design All five types of design take place throughout the software life cycle November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
5
Software Design: Our View in 121 and 122
Application design Interaction design Architecture design Implementation design Maintenance design All five types of design have their own design methods and representations November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
6
Software Design: Our View in 121 and 122
Application design Interaction design Architecture design Implementation design Maintenance design Users Alternative Designs Product Experiences Designers Stakeholders Final Design All five types of design involve the design cycle November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
7
Software Design: Our View in 121 and 122
Application design Interaction design Architecture design Implementation design Maintenance design Users Alternative Designs Product Experiences Designers Stakeholders Final Design All five types of design closely interrelate and must often be addressed in parallel November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
8
© 2009 University of California, Irvine – André van der Hoek
Focus of 121 Application design Interaction design Architecture design [Implementation design] Users Alternative Designs Product Experiences Designers Stakeholders Final Design November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
9
Predicting The Product-Use-Experience Cycle
Mental simulation Applying knowledge Creating approximations November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
10
Creating Approximations
November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
11
Creating Approximations
Many different approximations can be created… sketches models mock-ups formal models internal prototypes computer simulations walkthroughs videos …but keep in mind they need to be tested in some form! running the simulation cognitive walkthroughs focus groups user trials November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
12
Which Approximation Do You Want to Use?
What questions are you trying to answer about a potential design? Is the approximation “high fidelity”? does it need to be? How easily can you create and reflect on the design? How easily can others interpret and provide feedback on the design? Maybe make a quick allusion to the reflective conversation / reflection in action on that last one November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
13
© 2009 University of California, Irvine – André van der Hoek
Design 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 Sometimes, the importance and/or impact of a concern is not obvious (the devil is in the details) As a designer, you need to find the concerns that are most important and have most impact: the essence of the design problem November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
14
The Essence of a Design Problem – Where?
Structure Context Communication User interface Persistence Algorithms Naming Interchange … Internal data structures Error handling Distribution Glue … November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
15
The Essence of a Design Problem – 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 in one or more suitable approximations These approximations, in turn, each need to be specified in one or more appropriate languages November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
16
© 2009 University of California, Irvine – André van der Hoek
Design 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 requires a rationale As a designer, you need to work out each concern to the appropriate level of depth needed November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
17
© 2009 University of California, Irvine – André van der Hoek
Design Depth Concern 1 Concern 2 Concern 3 Concern 4 Concern 5 Concern 6 … System “A” November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
18
© 2009 University of California, Irvine – André van der Hoek
Design Depth Concern 11 Concern 12 Concern 13 Concern 14 Concern 15 Concern 16 … System “B” November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
19
© 2009 University of California, Irvine – André van der Hoek
Design Depth Concern 21 Concern 22 Concern 23 Concern 24 Concern 25 Concern 26 … System “C” November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
20
The Essence of a Design – 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 in one or more suitable approximations These approximations, in turn, each need to be specified in one or more appropriate languages November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
21
© 2009 University of California, Irvine – André van der Hoek
Design Languages Design Architecture description November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
22
© 2009 University of California, Irvine – André van der Hoek
Design Languages Design Architecture description or... November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
23
© 2009 University of California, Irvine – André van der Hoek
Design Languages Design Statecharts November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
24
© 2009 University of California, Irvine – André van der Hoek
Design Languages Design Statecharts or... November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
25
© 2009 University of California, Irvine – André van der Hoek
Design Languages UML Design November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
26
© 2009 University of California, Irvine – André van der Hoek
Design Languages UML Design or... November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
27
© 2009 University of California, Irvine – André van der Hoek
Design Languages Design Data Flow Diagrams November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
28
© 2009 University of California, Irvine – André van der Hoek
Design Languages Design Data Flow Diagrams or... November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
29
© 2009 University of California, Irvine – André van der Hoek
Design Languages Design Data Flow Diagrams Etc., etc., etc. November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
30
Design Languages: Our Approach
Booch … Pi calculus UML Design Sketches Pseudo code Architecture description Text Any and all as needed Code Data Flow Diagrams Statecharts JSD November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
31
Which Language Do You Want to Use?
What questions are you trying to answer about a potential design? Is the approximation “high fidelity”? does it need to be? How easily can you create and reflect on the design? How easily can others interpret and provide feedback on the design? Maybe make a quick allusion to the reflective conversation / reflection in action on that last one November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
32
The Essence of a Design Problem – Where?
Structure Context Communication User interface Persistence Algorithms Naming Interchange … Internal data structures Error handling Distribution Glue … November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
33
© 2009 University of California, Irvine – André van der Hoek
Structure 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 diagrams UML2 component diagrams simple drawings November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
34
© 2009 University of California, Irvine – André van der Hoek
Structure – Examples November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
35
© 2009 University of California, Irvine – André van der Hoek
Structure – Examples Not as formal, or even as informative, but helps people understand whats going on November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
36
© 2009 University of California, Irvine – André van der Hoek
Context 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 organization’s 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 November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
37
© 2009 University of California, Irvine – André van der Hoek
Context – Examples November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
38
© 2009 University of California, Irvine – André van der Hoek
Context – Examples November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
39
© 2009 University of California, Irvine – André van der Hoek
Communication 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 November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
40
Communication – Examples
November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
41
Communication – Examples
November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
42
© 2009 University of California, Irvine – André van der Hoek
User 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 November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
43
User Interface – Examples
November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
44
User Interface – Examples
November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
45
© 2009 University of California, Irvine – André van der Hoek
Persistence 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 November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
46
Persistence – Examples
November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
47
Persistence – Examples
November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
48
© 2009 University of California, Irvine – André van der Hoek
Algorithms 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 November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
49
© 2009 University of California, Irvine – André van der Hoek
Algorithms – Examples November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
50
© 2009 University of California, Irvine – André van der Hoek
Algorithms – Examples November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
51
© 2009 University of California, Irvine – André van der Hoek
Naming 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 November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
52
© 2009 University of California, Irvine – André van der Hoek
Naming – Examples http: protocol // separators domain name mens/ subdirectory name shirts/ subdirectory name formal.html document name (Web page) November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
53
© 2009 University of California, Irvine – André van der Hoek
Naming – Examples D:/eclipse/edu/uci/isr/palantir/core/PalantirPlugin:1.2::.80c318ce.109c f96511d31371ce2.0::null artifactID = filename:VID::wsID::parentID parentID = artifactID | null VID = [0-9.]* wsID = [a-b0-9.]* filename = <<continue with regular expression for pathnames>> November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
54
© 2009 University of California, Irvine – André van der Hoek
Interchange 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 November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
55
Interchange – Examples
November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
56
Interchange – Examples
November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
57
The Essence of a Design Solution – Where?
Structure Context Communication User interface Persistence Algorithms Naming Interchange … Internal data structures Error handling Distribution Glue … November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
58
Which Language Do You Want to Use?
What questions are you trying to answer about a potential design? Is the approximation “high fidelity”? does it need to be? How easily can you create and reflect on the design? How easily can others interpret and provide feedback on the design? Maybe make a quick allusion to the reflective conversation / reflection in action on that last one November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
59
Design Languages: Our Approach
Booch … Pi calculus UML Design Sketches Pseudo code Architecture description Text Any and all as needed Code Data Flow Diagrams Statecharts JSD November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
60
The Essence of a Design Problem – 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 in one or more suitable approximations These approximations, in turn, each need to be specified in one or more appropriate languages November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
61
Design Studio I Continued
What are some of the essential concerns in Professor E’s design problem? How to represent traffic? Map creation (user input)? How to visualize feedback to the students so it is educationally useful? How to specify the details of traffic lights? How to specify how an intersection works? [THIS ONE IS MANDATORY] Including sensors How to model the map? How to handle traffic behavior? The idea that we filter them here. November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
62
Design Studio I Continued
Create 2 preliminary design documents Pick three essential concerns, and produce three partial design solutions for each of the three concerns, independent of the other concerns. For each concern, spend 2-3 pages… …providing a summary of the design issues related to that concern …explaining each of your 3 partial design solutions, including a brief analysis of their strengths and weaknesses Separately, produce a 2-3 page document that takes a more holistic view of your design: which of the partial designs do you think are best, how do they align, and how might they be integrated into one or more overall, high-level designs November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
63
Design Studio I Continued
Choose your approximations (yes, they are expected) carefully what do they tell you what do they tell others (especially, since other teams will be asked to provide feedback) Bring five copies of the document pertaining to the concerns Bring one copy of the holistic document Due Tuesday, at the beginning of class November 16, 2018 – 19:57:06 © 2009 University of California, Irvine – André van der Hoek
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.