ODVP, Fall 1999. OOD introduction.
The technical aspects of the development process preceding actual coding
Understanding the world
- Understand the
necessary elements within the domain
- Understand the
problems that must be solved.
- Understand the
collaboration between the system to be developed and the surrounding
organization.
Tools:
- Interview domain
experts and others
- Books about the
domain
- Other written
material
- Stories
- Users’ wishes
- Observe the domain
yourself
Results:
- A number of
specifications and analysis documents
- Specifically for
the design:
- A list of concepts
- Possibly an
UML-diagram giving relations between concepts
Imagine the system
- Understand the
functionality of the system and decide the extent of it
Tools:
- Scenarios
- Use cases
- Prototypes
- Requirements
specification
- Discussion
- Other stuff
Result:
- Event trace
- Event flow
- State machine
- Scenarios
- Use case diagrams
- Use cases
- More requirement
specification
- Other stuff
Designing the system
- Important tool:
Walkthrough (also called Role Play)
- Other tools and
results:
- Decide which
important classes and subsystem there should be
- Decide the primary
functionality of these classes
- Distribute
functionality over the classes
- Produce overviews of
the system
Important things to consider when designing a class
- Class name
- Public methods
- Private methods
(different degrees of privateness)
- References to other
objects and classes (direct or indirect)
- Data that is more or
less public
- Classes and
interfaces inherited by the class
- Classes that inherit
this class
- Purpose with the
class
Important things to consider and jot down
- Which classes receive
messages from which classes
- Which classes knows
which classes
- Which method uses
which methods in what classes
- What subsystems do we
need and what are they composed of
- Inheritance hierarchies