© 2009 university of california, irvine – andré van der hoek1june 17, 2015 – 09:17:24...
Post on 20-Dec-2015
213 views
TRANSCRIPT
![Page 1: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/1.jpg)
© 2009 University of California, Irvine – André van der Hoek 1April 18, 2023 – 21:10:42
Informatics 122Software Design II
Informatics 122Software Design II
Lecture 6
André van der Hoek & Alex Baker
Duplication of course material for any commercial purpose without the explicit written permission of the professor is prohibited.
![Page 2: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/2.jpg)
© 2009 University of California, Irvine – André van der Hoek 2April 18, 2023 – 21:10:42
Today’s LectureToday’s Lecture
Design aesthetics
Your Ogre designs
![Page 3: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/3.jpg)
© 2009 University of California, Irvine – André van der Hoek 3April 18, 2023 – 21:10:42
Design AestheticsDesign Aesthetics
What makes a given software design “beautiful”?
What is it that makes someone appreciate a particular software design?
What are the qualities that determine whether a particular software design is “good” or “bad”?
What is it, then, that we can strive for in creating a software design that will help others in appreciating it?
![Page 4: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/4.jpg)
© 2009 University of California, Irvine – André van der Hoek 4April 18, 2023 – 21:10:42
Purpose of Implementation DesignPurpose of Implementation Design
An implementation design is a road map
An implementation design describes a path from application design to the outcome
An implementation design describes what the implementers should do
An implementation design is a guide towards future change
![Page 5: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/5.jpg)
© 2009 University of California, Irvine – André van der Hoek 5April 18, 2023 – 21:10:42
Purpose of Implementation DesignPurpose of Implementation Design
An implementation design is a road map– understandable, unambiguous, consistent, helpful, …
An implementation design describes a path from application design to the outcome– correct, complete, concise, verifiable, effective, …
An implementation design describes what the implementers should do– elegant, partitionable, recomposable, resilient, …
An implementation design is a guide towards future change– evolvable, …
![Page 6: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/6.jpg)
© 2009 University of California, Irvine – André van der Hoek 6April 18, 2023 – 21:10:42
Purpose of Implementation DesignPurpose of Implementation Design
An implementation design is a road map– understandable, unambiguous, consistent, helpful, …
An implementation design describes a path from system design to the outcome– correct, complete, concise, verifiable, effective, …
An implementation design describes what the implementers should do– elegant, partitionable, recomposable, resilient, …
An implementation design is a guide towards future change– evolvable, …
![Page 7: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/7.jpg)
© 2009 University of California, Irvine – André van der Hoek 7April 18, 2023 – 21:10:42
Some CaveatsSome Caveats
We are going to be showing, praising, and critiquing your designs– not to ridicule, rather to provide constructive feedback
This is a normal part of any design studio class
Rules of the game– do not identify someone, even if you know whose design it is– someone may choose to volunteer and explain their design, but
they may also choose not to do so
We only highlight parts of certain designs, so please do not correlate our comments here with your final grade for this assignment
We only do this based on the UML diagram, not the text
![Page 8: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/8.jpg)
Designs Rated Highly By PeersDesigns Rated Highly By Peers
© 2007 University of California, Irvine – André van der Hoek 8April 18, 2023 – 21:10:42
![Page 9: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/9.jpg)
![Page 10: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/10.jpg)
![Page 11: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/11.jpg)
![Page 12: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/12.jpg)
![Page 13: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/13.jpg)
![Page 14: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/14.jpg)
© 2009 University of California, Irvine – André van der Hoek 14April 18, 2023 – 21:10:43
What About This One?What About This One?
![Page 15: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/15.jpg)
![Page 16: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/16.jpg)
© 2009 University of California, Irvine – André van der Hoek 16April 18, 2023 – 21:10:44
Some “Obvious” Room for ImprovementSome “Obvious” Room for Improvement
![Page 17: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/17.jpg)
![Page 18: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/18.jpg)
![Page 19: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/19.jpg)
![Page 20: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/20.jpg)
![Page 21: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/21.jpg)
© 2009 University of California, Irvine – André van der Hoek 21April 18, 2023 – 21:10:45
What About These?What About These?
![Page 22: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/22.jpg)
![Page 23: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/23.jpg)
![Page 24: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/24.jpg)
Anybody Else ?Anybody Else ?
© 2007 University of California, Irvine – André van der Hoek 24April 18, 2023 – 21:10:46
![Page 25: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/25.jpg)
© 2009 University of California, Irvine – André van der Hoek 25April 18, 2023 – 21:10:46
Important Points to Observe (Assignment)Important Points to Observe (Assignment)
Being a “1” or a “5” on someone’s ranking is not an absolute evaluation– if you are a “1” on someone’s ranking, the other designs
may have all been relatively poor– if you are a “5” on someone’s ranking, the other designs
may have all been relatively stellar
Length of the document seems to be an indicator in peer’s rankings, but not necessarily in ours
It is easier to review than to design
![Page 26: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/26.jpg)
© 2009 University of California, Irvine – André van der Hoek 26April 18, 2023 – 21:10:46
Important Points to Observe (UML)Important Points to Observe (UML)
Having a document “heavy on UML” by itself is not a guarantee for a great design– it may indeed be more complete– it may also be less understandable
If we cannot find the “flow” in the UML diagram, something tends to be wrong – for some designs, we end up searching for their meaning– for others, it is clear from the diagram
physical layout, often, has something to do with this
Design languages are a factor– UML by itself is insufficient
![Page 27: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/27.jpg)
© 2009 University of California, Irvine – André van der Hoek 27April 18, 2023 – 21:10:46
Important Points to Observe (Process)Important Points to Observe (Process)
Where to start?– what about with the set of nouns in the description of the
problem (e.g., word, rack, tile, board, …)– what about with the set of verbs in the description of the
problem (e.g., challenge, play, double, triple, …)
Work towards completeness– does my current design account for all possible features– does it do so explicitly, or are some features hidden
This is merely a rough and rules of thumb process, but one that tends to help the beginning designer
![Page 28: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/28.jpg)
© 2009 University of California, Irvine – André van der Hoek 28April 18, 2023 – 21:10:46
A Checklist for the Overall ProcessA Checklist for the Overall Process
Apply rigor Separate concerns
– modularize– abstract
Anticipate change Generalize Work incrementally
![Page 29: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/29.jpg)
© 2009 University of California, Irvine – André van der Hoek 29April 18, 2023 – 21:10:46
A Checklist for Overall DesignA Checklist for Overall Design
Strive for grouping related functionality (high cohesion) Strive for ungrouping semi-related functionality (high
cohesion) Strive for reducing interdependency (low coupling)
![Page 30: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/30.jpg)
© 2009 University of California, Irvine – André van der Hoek 30April 18, 2023 – 21:10:46
A Checklist on Class DesignA Checklist on Class Design
Cohesion Completeness Convenience Clarity Consistency
![Page 31: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/31.jpg)
© 2009 University of California, Irvine – André van der Hoek 31April 18, 2023 – 21:10:46
A Checklist on Principles and StrategiesA Checklist on Principles and Strategies
Principles– keep it simple, stupid! (KISS)– information hiding– acyclic dependencies– …
Strategies– program to the interface– refactor– apply software patterns– use aspects– …
![Page 32: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/32.jpg)
© 2009 University of California, Irvine – André van der Hoek 32April 18, 2023 – 21:10:46
AppendixAppendix
For completeness, all of the designs are included in the following slides
![Page 33: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/33.jpg)
![Page 34: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/34.jpg)
![Page 35: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/35.jpg)
![Page 36: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/36.jpg)
![Page 37: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/37.jpg)
![Page 38: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/38.jpg)
![Page 39: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/39.jpg)
![Page 40: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/40.jpg)
![Page 41: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/41.jpg)
![Page 42: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/42.jpg)
![Page 43: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/43.jpg)
![Page 44: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/44.jpg)
![Page 45: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/45.jpg)
![Page 46: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/46.jpg)
![Page 47: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/47.jpg)
![Page 48: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/48.jpg)
![Page 49: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/49.jpg)
![Page 50: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/50.jpg)
![Page 51: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/51.jpg)
![Page 52: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/52.jpg)
![Page 53: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/53.jpg)
![Page 54: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/54.jpg)
![Page 55: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/55.jpg)
![Page 56: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/56.jpg)
![Page 57: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/57.jpg)
![Page 58: © 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &](https://reader037.vdocuments.us/reader037/viewer/2022110322/56649d475503460f94a22b3c/html5/thumbnails/58.jpg)