Presentation is loading. Please wait.

Presentation is loading. Please wait.

Informatics 122 Software Design II

Similar presentations


Presentation on theme: "Informatics 122 Software Design II"— Presentation transcript:

1 Informatics 122 Software Design II
Lecture 5 André van der Hoek & Alex Baker Duplication of course material for any commercial purpose without the explicit written permission of the professor is prohibited. December 8, 2018 – 16:03:58 © 2007 University of California, Irvine – André van der Hoek

2 © 2007 University of California, Irvine – André van der Hoek
Today’s Lecture Finishing up lecture 4 Evolvability (If time – let’s design Scrabble!) December 8, 2018 – 16:03:58 © 2007 University of California, Irvine – André van der Hoek

3 © 2007 University of California, Irvine – André van der Hoek
Some Deeper Questions December 8, 2018 – 16:03:58 © 2007 University of California, Irvine – André van der Hoek

4 © 2007 University of California, Irvine – André van der Hoek
Some Deeper Questions December 8, 2018 – 16:03:58 © 2007 University of California, Irvine – André van der Hoek

5 © 2007 University of California, Irvine – André van der Hoek
Some Deeper Questions December 8, 2018 – 16:03:58 © 2007 University of California, Irvine – André van der Hoek

6 © 2007 University of California, Irvine – André van der Hoek
Some Deeper Questions December 8, 2018 – 16:03:58 © 2007 University of California, Irvine – André van der Hoek

7 Important Points to Observe (Assignment)
Being a “1” or a “4” 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 “4” 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 (and, by now, you know it is easier to design or review than it is to implement) December 8, 2018 – 16:03:58 © 2007 University of California, Irvine – André van der Hoek

8 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 I 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 not good enough December 8, 2018 – 16:03:58 © 2007 University of California, Irvine – André van der Hoek

9 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 December 8, 2018 – 16:03:58 © 2007 University of California, Irvine – André van der Hoek

10 A Checklist on Overall Process
Apply rigor Separate concerns modularize abstract Anticipate change Generalize Work incrementally December 8, 2018 – 16:03:58 © 2007 University of California, Irvine – André van der Hoek

11 A Checklist on Overall Design
Strive for grouping related functionality (high cohesion) Strive for ungrouping semi-related functionality (high cohesion) Strive for reducing interdependency (low coupling) December 8, 2018 – 16:03:58 © 2007 University of California, Irvine – André van der Hoek

12 A Checklist on Class Design
Cohesion Completeness Convenience Clarity Consistency December 8, 2018 – 16:03:58 © 2007 University of California, Irvine – André van der Hoek

13 A Checklist on Principles and Strategies
keep it simple, stupid! (KISS) information hiding acyclic dependencies Strategies program to the interface refactor apply software patterns use aspects December 8, 2018 – 16:03:58 © 2007 University of California, Irvine – André van der Hoek

14 © 2007 University of California, Irvine – André van der Hoek
Designing for Change Looking at designs in the context of changes that might be made to them before implementation after implementation What elements of design help and hinder making changes? December 8, 2018 – 16:03:58 © 2007 University of California, Irvine – André van der Hoek

15 Adding a Computer-Controlled AI Opponent
Are the details that make up what a player does well isolated from other parts of the program? December 8, 2018 – 16:03:58 © 2007 University of California, Irvine – André van der Hoek

16 © 2007 University of California, Irvine – André van der Hoek
December 8, 2018 – 16:03:58 © 2007 University of California, Irvine – André van der Hoek

17 © 2007 University of California, Irvine – André van der Hoek
December 8, 2018 – 16:03:58 © 2007 University of California, Irvine – André van der Hoek

18 © 2007 University of California, Irvine – André van der Hoek
December 8, 2018 – 16:03:58 © 2007 University of California, Irvine – André van der Hoek

19 Automatic Dictionary Checking
Question two from your design reviews Is the functionality for determining a legal move well isolated from the rest of the program? December 8, 2018 – 16:03:58 © 2007 University of California, Irvine – André van der Hoek

20 © 2007 University of California, Irvine – André van der Hoek
December 8, 2018 – 16:03:58 © 2007 University of California, Irvine – André van der Hoek

21 © 2007 University of California, Irvine – André van der Hoek
December 8, 2018 – 16:03:58 © 2007 University of California, Irvine – André van der Hoek

22 © 2007 University of California, Irvine – André van der Hoek
December 8, 2018 – 16:03:58 © 2007 University of California, Irvine – André van der Hoek

23 © 2007 University of California, Irvine – André van der Hoek
December 8, 2018 – 16:03:58 © 2007 University of California, Irvine – André van der Hoek

24 © 2007 University of California, Irvine – André van der Hoek
Implementing Upwords Question 3 from your review forms How is a space represented? Have you made any problematic assumptions elsewhere in your design? December 8, 2018 – 16:03:58 © 2007 University of California, Irvine – André van der Hoek

25 © 2007 University of California, Irvine – André van der Hoek
December 8, 2018 – 16:03:58 © 2007 University of California, Irvine – André van der Hoek

26 © 2007 University of California, Irvine – André van der Hoek
December 8, 2018 – 16:03:58 © 2007 University of California, Irvine – André van der Hoek

27 © 2007 University of California, Irvine – André van der Hoek
December 8, 2018 – 16:03:58 © 2007 University of California, Irvine – André van der Hoek

28 © 2007 University of California, Irvine – André van der Hoek
December 8, 2018 – 16:03:58 © 2007 University of California, Irvine – André van der Hoek

29 Post-Implementation Space Changes
Question 4 on the review form Can you change the locations? Can you change the amounts of multipliers? Can you create bonus tiles of a wholly different nature? At coding stage, a subtle difference December 8, 2018 – 16:03:58 © 2007 University of California, Irvine – André van der Hoek

30 © 2007 University of California, Irvine – André van der Hoek
December 8, 2018 – 16:03:58 © 2007 University of California, Irvine – André van der Hoek

31 © 2007 University of California, Irvine – André van der Hoek
December 8, 2018 – 16:03:58 © 2007 University of California, Irvine – André van der Hoek

32 © 2007 University of California, Irvine – André van der Hoek
December 8, 2018 – 16:03:58 © 2007 University of California, Irvine – André van der Hoek

33 Post-Implementation Space Changes
How would we actually do this? December 8, 2018 – 16:03:58 © 2007 University of California, Irvine – André van der Hoek

34 © 2007 University of California, Irvine – André van der Hoek
Designing for Change Anticipating possible changes Isolating functionality Avoiding over-generalization or over-specialization An intuitive sense that we are helping you build “something seems wrong about this…” December 8, 2018 – 16:03:58 © 2007 University of California, Irvine – André van der Hoek

35 © 2007 University of California, Irvine – André van der Hoek
Designing Scrabble What would a good design, perhaps, look like? December 8, 2018 – 16:03:58 © 2007 University of California, Irvine – André van der Hoek


Download ppt "Informatics 122 Software Design II"

Similar presentations


Ads by Google