Beruflich Dokumente
Kultur Dokumente
Purpose
To define the architectural patterns, key mechanisms and modeling conventions for the system.
To define the reuse strategy
To provide input to the planning process
Steps
Frequency: Once per iteration, with most work occurring in the early iterations; later iterations visit the activity primarily
to validate and adjust the analytic aspects of the architecture.
Worker: Architect
Concepts: Distribution Patterns, Analysis Mechanisms, Concurrency, Layering
Purpose
To ensure that the representation of the architecture and design are consistent across teams and iterations.
Architectural patterns and mechanisms, as well as the design in general are represented in a number of different ways: with descriptive
texts, formal languages, diagrams (including class, sequence, collaboration, and activity diagrams, among others).
Modeling conventions are documented in the Artifact: Design Guidelines; the format and style for the architectural description is
defined in the Architectural Representation section of the Artifact: Software Architecture Document.
Purpose
The design model is normally organized in layers. The number of layers is not fixed, but varies from situation to situation.
During architectural analysis, focus is normally on the two high-level layers, that is, the application and business-specific layers; this
is what is meant by the "high-level organization of subsystems." The other lower-level layers are in focus during architectural design,
refer to the Activity: Architectural Design for more information.
Purpose
To define the architectural patterns and services used by designers to give "life" to their objects.
An analysis mechanism represents a pattern that constitutes a common solution to a common problem. They may be patterns of
structure, patterns of behavior, or both. They are used during analysis to reduce the complexity of analysis, and to improve its
consistency by providing designers with a short-hand representation for complex behavior. Mechanisms allow the analysis effort to
focus on translating the functional requirements into software concepts without bogging-down in the specification of relatively
complex behavior needed to support the functionality but not central to it.
Analysis mechanisms are usually unrelated to the problem domain, but instead are "computer science" concepts. They provide
specific behaviors to a domain-related class or component, or correspond to the implementation of cooperation between classes and/or
components. They may be implemented as a framework, Examples include mechanisms to handle persistence, inter-process
communication, error or fault handling, notification, and messaging, to name a few.
Purpose
To "prime the pump" for analysis by identifying the key abstractions (representation of concepts identified during
business modeling and requirement activities) that the system must handle.
Requirements and Business Modeling activities usually uncover key concepts that the system must be able to handle; these concepts
manifest themselves as key design abstractions. Because of the work already done, there is no need to repeat the identification work
again during Activity: Use Case Analysis. To take advantage of existing knowledge, we identify preliminary entity analysis classes to
represent these key abstractions on the basis of general knowledge of the system, such as the Requirements, the Glossary, and in
particular, the Domain Model, or the Business Model, if you have one. While defining the key abstractions, also define any
relationships that exist between entity classes. Present the key abstractions in one or several class diagrams, and create a short
description for each.
The analysis classes identified at this point will probably change and evolve during the course of the project. The purpose of this step
is not to identify a set of classes that will survive throughout design, but to identify the key concepts the system must handle. Don't
spend much time describing entity classes in detail at this initial stage, because there is a risk that you identify classes and
relationships that are not actually needed by the use cases. Remember that you will find more entity classes and relationships when
looking at the use cases.
Purpose
To create the Design Model artifacts used to express the behavior of the use cases.
Guidelines:
Use-Case Realization
Use Cases form the central focus of most of the early analysis and design work. To enable the transition between Requirements-
centric activities and Design-centric activities, the Artifact: Use-Case Realization serves as a bridge, providing a way to trace behavior
in the Design Model back to the Use-Case Model, as well as organizing collaborations in the Design Model around the Use Case
concept.
For each Use Case in the Use Case Model, create a Use-Case Realization in the Design Model. The name for the Use-Case
Realization should be the same as the associated Use Case, and a trace dependency should be established from the use-case realization
to its associated use case.
Purpose
As Architectural Analysis concludes, review the architectural mechanisms, the subsystems, packages and classes that have been
identified, to ensure that they are complete and consistent. As the results of Architectural Analysis are preliminary and relatively
informal, reviews should be informal as well.
Purpose
Properties
Timing
Responsibility
Purpose
Properties
Timing
The use-case model primarily sets the functional requirements on the system, and is used as an essential input to analysis and
architectural design. It can be used early in the inception phase to outline the scope of the system, as well as during the elaboration
phase. The use-case model is refined by more detailed flows of events during the construction phase. The use-case model is
continuously kept consistent with the design model.
Because it is a very powerful planning instrument, the use-case model is generally used in all phases of the development cycle.
Responsibility
A system analyst is responsible for the integrity of the use-case model, and ensures that the use-case model as a whole is correct,
consistent, and readable. The use-case model is correct when it describes the system's functionality, and only this functionality.
Note that details of use-case packages, use cases, actors, relationships, and diagrams are the responsibilities of the corresponding use-
case specifier. For more information, refer to Worker: Use-Case Specifier. The use-case view is the responsibility of an architect. For
more information, refer to Worker: Architect.
Supplementary Specifications
The Supplementary Specifications capture the system requirements that are not
readily capturable in the use cases of the use-case model. Such requirements
include:
Supplementary
Specifications Legal and regulatory requirements and application standards.
Quality attributes of the system to be built, including usability, reliability,
performance and supportability requirements.
Other requirements such as operating systems and environments,
compatibility requirements, and design constraints.
Purpose
Brief Outline
Timing
Responsibility
Tailoring
Purpose
The system analyst creates and maintains the Supplementary Specifications, which serve as a communication medium between the
system analyst, the customer, and other developers.
Designers use the Supplementary Specifications as a reference when defining responsibilities, operations, and attributes on classes,
and when adjusting classes to the implementation environment.
Implementers refer to the Supplementary Specifications for input when implementing classes.
The manager refers to the Supplementary Specifications for input when planning iterations.
The testers use the Supplementary Specifications to verify system compliance.
Brief Outline
Supplementary Specifications should list the requirements that are not readily capturable in the use cases of the use-case model. For a
more detailed outline, see the IEEE recommended practice for software requirements specifications [IEEE Std 830-1993]. Following
is a sample outline.
1. Functionality
List functional requirements are general to many use cases.
2. Usability
Include all of those requirements that relate to, or affect, the usability of the system. Examples include ease-of-use requirements
or training requirements that specify how readily the system can be used by its actors.
2.1 <Usability Requirement One>
3. Reliability
Specify any requirements concerning the reliability of the system. Quantitative measures such as mean time between failure or
defects per thousand lines of code should be stated.
4. Performance
Outline the performance characteristics of the system. Include specific response times. Reference related use cases by name.
5. Supportability
Indicate any requirements that will enhance the supportability or maintainability of the system being built.
6. Design Constraints
Indicate in this section any design constraints on the system being built.
Timing
They are initially considered in the inception phase, as a complement to defining the scope of the system.
They are refined in an incremental fashion during the elaboration and construction phases.
Responsibility
A system analyst is responsible for producing the Supplementary Specifications, which is an important complement to the use-case
model. The Supplementary Specifications and the use-case model should together capture a complete set of requirements on the
system.
Glossary
Glossary
Worker: System Analyst
Purpose
Brief Outline
Timing
Responsibility
Tailoring
Tool Mentors
Purpose
There is one Glossary for the system. This document is important to many developers, especially when they need to
understand and use the terms that are specific to the project.
Brief Outline
1. Introduction
Present any information the reader might need to understand the document in this section. This document is used to define
terminology specific to the problem domain, explaining terms which may be unfamiliar to the reader of the use-case
descriptions or other project documents. Often, this document can be used as an informal data dictionary, capturing data
definitions so that use-case descriptions and other project documents can focus on what the system must do with the
information. This document should be saved in a file called Glossary.
2. Definitions
The terms defined here form the essential substance of the document. They can be defined in any order desired, but generally
alphabetic order provides the greatest accessibility.
1. aTerm
The definition for aTerm is presented here. As much information as the reader needs to understand the concept should be
presented.
2. anotherTerm
The definition for anotherTerm is presented here. As much information as the reader needs to understand the concept should
be presented
3. aGroupOfTerms
Sometimes it is useful to organize terms into groups to improve readability. For example, if the problem domain contains
terms related to both accounting and building construction (as would be the case if we were developing a system to manage
construction projects), presenting the terms from the two different sub-domains might prove confusing to the reader. To solve
this problem, we use groupings of terms. In presenting the grouping of terms, provide a short description that helps the reader
understand what aGroupOfTerms represents. Terms presented within the group should be organized alphabetically for easy
access.
1. aGroupTerm
The definition for aGroupTerm is presented here. As much information as the reader needs to understand the concept should
be presented
2. anotherGroupTerm
The definition for anotherGroupTerm is presented here. As much information as the reader needs to understand the concept
should be presented
4. aSecondGroupOfTerms
1. yetAnotherGroupTerm
The definition for the term is presented here. As much information as the reader needs to understand the concept should be
presented
2. andAnotherGroupTerm
The definition for the term is presented here. As much information as the reader needs to understand the concept should be
presented.
Timing
The Glossary is primarily developed during the inception and elaboration phases, because it is important to agree on a
common terminology early in the project.
Responsibility
A Worker: System Analyst is responsible for the integrity of the Glossary, ensuring that:
Tailoring
In some projects the glossary will be the only artifact used to capture the business domain of the project. This is when neither
business modeling nor domain modeling is performed.
If the context of the business modeling effort is much different than a following software engineering effort, you may need to
produce one Glossary specific to the business modeling effort. That Glossary would then be the responsibility of the Business-
Process Analyst.
Business Model
The business object model is an object model describing the realization of
business use cases.
Purpose
Properties
Timing
Responsibility
Tailoring
Purpose
Properties
Timing
A business object model is created during inception and finalized during the elaboration phase.
Responsibility
A business-process analyst is responsible for the integrity of the business object model, ensuring that:
Tailoring
You can choose to develop an "incomplete" business object model, focusing on explaining "things" and products important to the
business domain. Such a model does not include the responsibilities people carry, and is often referred to as a domain model. In such a
case, you would stereotype the model as «domain model» instead of «business object model».
Purpose
Brief Outline
Timing
Responsibility
Tailoring
Annotated Outline
Purpose
There is one Software Architecture Document for the system. This document is particularly important to the following people:
It is the primary artifact created and maintained by the architect, and serves as a communication medium between the architect
and other developers.
Designers for a reference when creating use-case realizations, or defining responsibilities, operations, and attributes on classes,
and when adjusting classes to the implementation environment.
Implementers, as input when implementing classes.
Managers for input when planning iterations.
Design Model
The design model is an object model describing the realization of use cases, and
serves as an abstraction of the implementation model and its source code. The
design model is used as essential input to activities in implementation and test.
Design Model
UML representation: Model, stereotyped as «design model».
Worker: Architect
Purpose
Properties
Timing
Responsibility
Purpose
The use-case designer to see what classes and objects are available at a specific time.
The designer to get a comprehensive picture of the design.
The architect to get a comprehensive picture of the software architecture.
The tester to plan tests and follow up test results.
The manager to plan and follow up the design work.
The people looking at the next evolution cycle to get a full picture of the design.
o Design Guidelines
Describes the design and implementation guidelines.
Design Guidelines
Worker: Architect
Template: Word template
Purpose
Brief Outline
Timing
Responsibility
Tailoring
Annotated Outline
Purpose
Design Guidelines is a product of architecture definition. Many people will need this document because it describes the guidelines to
be followed during design, architectural design, and implementation.
It is an artifact created and maintained by the Architect, and serves as a communication medium between the Architect and other
developers.
Designers will use it as a reference when defining operations on design classes, and when adjusting design classes to the
implementation environment.
Package owners will use it as a reference when describing dependencies between packages.
Implementers will use it as a reference when implementing design classes.
Reviewers will use it as a reference when reviewing the software architecture, design model, and implementation model. This
resolves a lot of debate regarding the quality of the artifacts produced.
Newcomers to the project will use it to understand what is being produced.