Presentation is loading. Please wait.

Presentation is loading. Please wait.

© 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 &

Similar presentations


Presentation on theme: "© 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 &"— Presentation transcript:

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 & Alex Baker Duplication of course material for any commercial purpose without the explicit written permission of the professor is prohibited.

2 © 2009 University of California, Irvine – André van der Hoek2June 17, 2015 – 09:17:24 Today’s Lecture Design aesthetics Your Ogre designs

3 © 2009 University of California, Irvine – André van der Hoek3June 17, 2015 – 09:17:24 Design 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?

4 © 2009 University of California, Irvine – André van der Hoek4June 17, 2015 – 09:17:24 Purpose 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

5 © 2009 University of California, Irvine – André van der Hoek5June 17, 2015 – 09:17:24 Purpose 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, …

6 © 2009 University of California, Irvine – André van der Hoek6June 17, 2015 – 09:17:24 Purpose 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, …

7 © 2009 University of California, Irvine – André van der Hoek7June 17, 2015 – 09:17:24 Some 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

8 Designs Rated Highly By Peers © 2007 University of California, Irvine – André van der Hoek8June 17, 2015 – 09:17:24

9

10

11

12

13

14 © 2009 University of California, Irvine – André van der Hoek14June 17, 2015 – 09:17:24 What About This One?

15

16 © 2009 University of California, Irvine – André van der Hoek16June 17, 2015 – 09:17:24 Some “Obvious” Room for Improvement

17

18

19

20

21 © 2009 University of California, Irvine – André van der Hoek21June 17, 2015 – 09:17:24 What About These?

22

23

24 Anybody Else ? © 2007 University of California, Irvine – André van der Hoek24June 17, 2015 – 09:17:24

25 © 2009 University of California, Irvine – André van der Hoek25June 17, 2015 – 09:17:24 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

26 © 2009 University of California, Irvine – André van der Hoek26June 17, 2015 – 09:17:24 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

27 © 2009 University of California, Irvine – André van der Hoek27June 17, 2015 – 09:17:24 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

28 © 2009 University of California, Irvine – André van der Hoek28June 17, 2015 – 09:17:24 A Checklist for the Overall Process Apply rigor Separate concerns –modularize –abstract Anticipate change Generalize Work incrementally

29 © 2009 University of California, Irvine – André van der Hoek29June 17, 2015 – 09:17:24 A 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)

30 © 2009 University of California, Irvine – André van der Hoek30June 17, 2015 – 09:17:24 A Checklist on Class Design Cohesion Completeness Convenience Clarity Consistency

31 © 2009 University of California, Irvine – André van der Hoek31June 17, 2015 – 09:17:24 A 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 –…

32 © 2009 University of California, Irvine – André van der Hoek32June 17, 2015 – 09:17:24 Appendix For completeness, all of the designs are included in the following slides

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


Download ppt "© 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 &"

Similar presentations


Ads by Google