Object Modeling (Revised)

Objectives

To write software, we need to understand what we're doing. We need to have a well-defined universe of discourse. This understanding must be documented. The documentation proceeds through increasingly refined levels of documentation.

  1. English prose.
  2. Diagrams and other semi-formal notations.
  3. Formal notations (BNF, IDL, Java, etc.)

Sometimes, the first …

more ...

Deployment

The deployment document describes an installation of the system, with specific host names and addresses. This document is the last of the formal deliverables, and forms the basis for an operator's or user's guide.

The deployment follows successful implementation of the design, based on the architecture and requirements.

Content

UML …

more ...

Implementation

An implementation document is prepared along with the software to present the packaging and component structure, including visible interfaces of components. This shows the structure of the final deliverables, and describes the files, databases and other persitent features of the system. This document will also identify all third-party components used …

more ...

Design

Content

The Design model generally consists of UML diagrams plus narratives where necessary. The model describes the static structure and dynamic behavior of each class. Additional non-behavioral requirements must also be included in the design document.

In the 4+1 view, the design is the details of how to implement …

more ...

Architecture

An architecture document not only describes the solution, it must trace back to individual functional requirements, and also should satisfy the non-functional requirements. In most cases, the requirements must be prioritized, and there will be tradeoffs for meeting absolutely all of the requirements.

In some cases, an architecture exists, and …

more ...

Requirements

Requirements describe the problem, and provide a direction for composing a solution. The remaining deliverables, leading up to the creation of software, are created from the requirements. These includes the architecture, design, implementation and deployment documents.

By defining the problem, the requirements document also serves to bracket the scope of …

more ...

Good Design and Pragmatic Design

Kenny YoungBuck approaches the Master and asks, "What is good design?"

The Master replies, "Kenny, you innocent little monkey, it's a wonder you haven't joined a cult. Good design maximizes business value while minimizing costs including development, maintenance, adaptation and operation."

"Master, are there circumstances where this is not true …

more ...


Deliverables, Process and Standards

Software development evolves through four phases:

  1. Identification of a problem and inception of a project to implement a solution.
  2. Elaboration (analysis) of that problem to determine the most effective solution.
  3. Design of software to implement that solution.
  4. Implementation of the solution; installing and configuring software, training, and everything that goes …
more ...