+ Informatics 122 Software Design II Lecture 6 Emily Navarro Duplication of course material for any...
-
Upload
kellie-underwood -
Category
Documents
-
view
214 -
download
0
Transcript of + Informatics 122 Software Design II Lecture 6 Emily Navarro Duplication of course material for any...
+
Informatics 122Software Design IILecture 6
Emily Navarro
Duplication of course material for any commercial purpose without the explicit written permission of the professor is prohibited. 1
+But first… A Few Updates about Assignment 2
Deadline extended to Tuesday, February 4
Remember, no real GUI is required But you should show the intermediate boards
after each sequence is removed but before the spaces are filled in with random numbers
and after the spaces are filled in with random numbers
3
+Design Aesthetics
What makes a given software implementation design “beautiful”?
What is it that makes someone appreciate a particular software implementation design?
What are the qualities that determine whether a particular software implementation design is “good” or “bad”?
What is it, then, that we can strive for in creating a software implementation design that will help others in appreciating it?
4
+Purpose of Implementation Design An implementation design is a road map
An implementation design describes a path from application / interaction / architecture design to the product
An implementation design describes what the implementers should do
An implementation design is a guide towards future change
5
+Purpose of Implementation Design An implementation design is a road map
understandable, unambiguous, consistent, helpful, … uses a good naming schema
An implementation design describes a path from application / interaction / architecture design to the product correct, complete, concise, verifiable, effective, …
attention to detail, well-documented, has clear flow, has a clear layout, has a clear interaction between classes, uses UML syntax correctly
An implementation design describes what the implementers should do elegant, partitionable, recomposable, resilient, …
An implementation design is a guide towards future change evolvable, …
6
+Less of a Shared Understanding
An implementation design is a road map understandable, unambiguous, consistent, helpful, … uses a good naming schema
An implementation design describes a path from application / interaction / architecture design to the product correct, complete, concise, verifiable, effective, …
attention to detail, well-documented, has clear flow, has a clear layout, has a clear interaction between classes, uses UML syntax correctly
An implementation design describes what the implementers should do elegant, partitionable, recomposable, resilient, …
An implementation design is a guide towards future change evolvable, …
7
+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
8
+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 may be an indicator in peer’s rankings, but not necessarily in ours
It is easier to review than to design, or is it?
11
+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
12
+Important Points to Observe (Process) Where to start?
what about with the set of nouns in the description of the problem (e.g., grid, cell, sequence, flame number, …)
what about with the set of verbs in the description of the problem (e.g., chooses adjacent cells, cells are swapped, cells are emptied …)
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
13
+A Checklist for the Overall Process
Apply rigor
Separate concerns modularize abstract
Anticipate change
Generalize
Work incrementally
14
+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)
15