Intro to Object Oriented Design and Analysis
Design and Analysis falls under the larger blanket of software
engineering, which encompasses many activities.
- Primary software development activities
- Problem definition
- Analysis
- Design (overall system design, object/module design)
- Implementation
- Testing
- Some other software engineering activities/issues
- Installation
- Maintenance
- Quality Assurance (encompasses more than just testing during
development)
- Communication
- Management
Modeling
- A model is an abstraction describing a system or a subset of a
system
- Helps deal with complexity
- A view depicts selected aspects of a model.
- Each view focuses on a subset of the model
- Example: All the blueprints for a house constitute a model, but one
view might focus just on the plumbing schematics
- A notation is a set of graphical or textual rules for
representing views of models
- UML (Unified Modeling Language) contains notations for various types
of models in object-oriented development
Application vs Solution Domain
- Application Domain -- all aspects of the user's problem
- The environment that the system is to operate in
- Can change over time (includes physical environment, people, work
processes, etc).
- Modeling and analysis needed to understand things from the user's
point of view
- Modeling it involves problem specification (or requirements
elicitation) and analysis
- Solution Domain -- modeling space of all possible solutions (systems)
- Usually modeled in much more detail than application domain
- Need to be able to translate solution model into code
- Involves overall system design, as well as object/module design
- Developer's point of view
Primary Parts of a System's Model
- Functional model
- Describes the functionality of a system from the user's point
of view
- Object Model
- Describes the structure of a system (and of subsystems) in terms of
objects, attributes, operations, and associations
- Dynamic Model
- describes the internal behavior of the system
UML -- Unified Modeling Language
- Intended to provide standard notations for use with object-oriented
modeling
- Attempts to integrate the best elements of previous leading
notations
- Supported now by a number of CASE (Computer-Aided Software
Engineering) tools
- We will use UML in this course to learn about and practice with design
and analysis activities
UML Diagram Types
UML 2.0 contains 13 different kinds of diagrams. We
will focus mostly on these:
- Use Case Diagram
- Describes the functionality from the user's perspective. Used for
the functional model of a system
- Class/Object Diagram
- Describes the structure of a system or subsystem. Used in
the object model of a system
- Sequence Diagram
- A form of interaction diagram. Describes behavior as a
sequence of messages exchanged among a set of
objects. Used in the dynamic model of a system
- State Machine (or Statechart) Diagram
- Describes behavior in terms of the possible states of a single
object. Used in the dynamic model of a system
A few other diagram types we will look at:
- Activity Diagram - help represent control flow and data
flow through a system
- Package Diagram - used for grouping related classes and objects
together
- Deployment Diagram - represents relationship between software
run-time components and the hardware nodes of a system