Informatics 122 Software Design II

Slides:



Advertisements
Similar presentations
(c) 2009 University of California, Irvine – André van der Hoek1April 20, 2015 – 00:59:05 Informatics 122 Software Design II Lecture 11 André van der Hoek.
Advertisements

Informatics 122 Software Design II 1 Portions of the slides in this lecture are adapted from a/classes/5448/f12/lectures/
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 223 Applied Software Design Techniques.
Design patterns exercise Nick Lopez Duplication of course material for any commercial purpose without the explicit written permission of the professor.
© 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &
© 2009 University of California, Irvine – André van der Hoek1June 10, 2015 – 18:31:15 Informatics 122 Software Design II Lecture 2 André van der Hoek &
© 2009 University of California, Irvine – André van der Hoek1February 8, 2009 – 21:49:30 Informatics 122 Software Design II Lecture 9 André van der Hoek.
© 2010 University of California, Irvine – André van der Hoek1June 12, 2015 – 07:51:20 Informatics 121 Software Design I Lecture 8 André van der Hoek &
Week 2 Design Examples and Designing for Change Alex Baker.
© 2009 University of California, Irvine – André van der Hoek1June 13, 2015 – 18:19:12 Informatics 122 Software Design II Lecture 5 André van der Hoek &
(c) 2009 University of California, Irvine – André van der Hoek1June 13, 2015 – 21:42:16 Informatics 122 Software Design II Lecture 8 André van der Hoek.
© 2010 University of California, Irvine – André van der Hoek1June 14, 2015 – 15:24:35 Informatics 121 Software Design I Lecture 11 André van der Hoek &
© 2010 University of California, Irvine – André van der Hoek1June 15, 2015 – 14:08:09 Informatics 122 Software Design II Lecture 4 André van der Hoek &
© 2009 University of California, Irvine – André van der Hoek1June 15, 2015 – 14:29:37 Informatics 121 Software Design I Lecture 1 André van der Hoek and.
© 2010 University of California, Irvine – André van der Hoek1June 16, 2015 – 21:42:11 Informatics 121 Software Design I Lecture 7 André van der Hoek &
© 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 &
(c) 2010 University of California, Irvine – André van der Hoek1February 21, 2010 – 18:05:18 Informatics 122 Software Design II Lecture 10 Nick Lopez Duplication.
© 2010 University of California, Irvine – André van der Hoek1June 22, 2015 – 23:08:13 Informatics 122 Software Design II Lecture 4 Nick Lopez Duplication.
© 2010 University of California, Irvine – André van der Hoek1June 25, 2015 – 15:42:49 Informatics 121 Software Design I Lecture 13 André van der Hoek &
© 2010 University of California, Irvine – André van der Hoek1June 25, 2015 – 20:03:07 Informatics 121 Software Design I Lecture 5 André van der Hoek &
1 Informatics 121 Software Design I Design Studio I Discussion Alex Baker and André van der Hoek Duplication of course material for any commercial purpose.
© 2010 University of California, Irvine – André van der Hoek1June 26, 2015 – 00:06:40 Informatics 122 Software Design II Lecture 6 André van der Hoek &
© 2010 University of California, Irvine – André van der Hoek1June 28, 2015 – 09:26:53 Informatics 121 Software Design I Lecture 12 André van der Hoek &
(c) 2010 University of California, Irvine – André van der Hoek1February 21, 2010 – 18:05:18 Informatics 122 Software Design II Lecture 10 André van der.
(c) 2010 University of California, Irvine – André van der Hoek1June 29, 2015 – 08:55:05 Informatics 122 Software Design II Lecture 8 André van der Hoek.
© 2009 University of California, Irvine – André van der Hoek1June 29, 2015 – 10:35:56 Informatics 122 Software Design II Lecture 4 André van der Hoek &
Introduction to Software Engineering Lecture 8 André van der Hoek.
© 2010 University of California, Irvine – André van der Hoek1July 14, 2015 – 14:37:42 Informatics 122 Software Design II Lecture 4 Nick Lopez Duplication.
(c) 2010 University of California, Irvine – André van der Hoek1July 16, 2015 – 13:45:31 Informatics 122 Software Design II Lecture 8 Nick Lopez Duplication.
Week 2 Design Examples and Designing for Change Alex Baker.
+ Informatics 122 Software Design II Lecture 6 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
© 2010 University of California, Irvine – André van der Hoek1October 23, 2015 – 10:21:58 Informatics 122 Software Design II Lecture 1 André van der Hoek.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 Introduction to Software Engineering.
Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
+ Informatics 122 Software Design II Lecture 3 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 122 Software Design II
Informatics 121 Software Design I
Informatics 122 Software Design II
Informatics 122 Software Design II
Informatics 121 Software Design I
Informatics 122 Software Design II
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 122 Software Design II
Informatics 122 Software Design II
Informatics 122 Software Design II
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 122 Software Design II
Informatics 121 Software Design I
Informatics 122 Software Design II
Informatics 122 Software Design II
Informatics 122 Software Design II
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Presentation transcript:

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

© 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

© 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

© 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

© 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

© 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

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

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

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

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

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

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

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

© 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

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

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

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

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

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

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

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

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

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

© 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

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

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

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

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

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

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

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

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

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

© 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

© 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