Great designs come from great designers.
Software construction is a creative process. —
F.P. Brooks, The Mythical Man Month, 1975
-
Software Design
-
Software
design
— Focus on the
“Overview” and “Design Concepts”
sections.
- Design is a modern buzz word. Why is it
such an important concept/practice for the 21st
century?
- Identify and explain Booch’s four basic
principles of (object-oriented software) design.
- Booch doesn’t mention another familiar design
principle, information hiding. Explain how this
principle is related (or not related) to
Booch’s four principles.
-
Software design
patterns — Focus on
the introduction, the “History” and the
individual patterns listed below.
- What is a design pattern?
- From whose work did the original idea for software
design patterns come and who made the connection to
software design?
- Be familiar with the following common design
patterns:
- Factory method
- Singleton
- Adapter
- Facade
- Iterator
- Observer
-
No Silver
Bullet —
This entire paper is work reading, but focus on the
questions below.
- Does software have an analog to Moore’s law?
- Compare and contrast essential and
accidental issues.
- What approaches to software development appear to
Brooks to be the most promising? Are these
approaches more compatible with traditional or with
agile methods?
- How would you summarize Brook’s thesis in one
or two sentences? Do you agree with him?
-
Design Modeling
- UML Class Diagrams
- What are the basic building blocks of a class
diagram, that is, what do the nodes and
arcs represent?
- How does a class diagram represent the inter-class
relationships commonly referred to as is-a
and has-a?
- How do you represent multiplicity on
association links?
-
Technology Stack
- Refactoring
— Be able to explain the purpose of
refactoring a software system.
-
JavaScript modules
— In the lab, we’ll be modularizing the code
from the previous lab, so it would be good to review the
first sections of this reference, from “Introducing an
example” through
“Importing features into your script”.