Professional Documents
Culture Documents
Document ID: AG
Architecture Guidelines
Version:
0.1
Architecture Guidelines
Version 0.1
Initial Draft
Public Domain
Page 1 of 14
Donald Firesmith
Document ID: AG
Architecture Guidelines
Version:
0.1
Revision History
Date
10/30/1999
Version
0.1
Public Domain
Description
Initial draft
Author
Donald Firesmith
Page 2 of 14
Donald Firesmith
Document ID: AG
Architecture Guidelines
Version:
0.1
Table of Contents
1
INTRODUCTION.......................................................................................................................................5
1.1
DOCUMENT OBJECTIVES..........................................................................................................................5
1.2
INTENDED AUDIENCES.............................................................................................................................5
1.3
REFERENCES.............................................................................................................................................5
1.4
DOCUMENT OVERVIEW............................................................................................................................5
GENERAL GUIDELINES.........................................................................................................................6
2.1.1
2.1.2
2.1.2.1
Architects...............................................................................................................................................6
2.1.2.2
Architecture Teams.................................................................................................................................6
2.1.3
2.1.4
Architecture Patterns..............................................................................................................................7
3.1.1.2
System Components...............................................................................................................................7
3.1.2
3.1.2.1
Ensuring Configurability........................................................................................................................7
3.1.2.2
Ensuring Efficiency................................................................................................................................7
3.1.2.3
Ensuring Extensibility............................................................................................................................7
3.1.2.4
Ensuring Interoperability........................................................................................................................7
3.1.2.5
3.1.2.6
Ensuring Performance............................................................................................................................8
3.1.2.7
Ensuring Reliability................................................................................................................................8
3.1.2.8
Ensuring Reusability...............................................................................................................................8
3.1.2.9
Ensuring Robustness...............................................................................................................................8
3.1.2.10
Ensuring Safety......................................................................................................................................8
3.1.2.11
Ensuring Scalability................................................................................................................................8
3.1.2.12
Ensuring Security...................................................................................................................................8
3.1.2.13
Ensuring Usability..................................................................................................................................9
4.1.1.1
Architecture Patterns............................................................................................................................10
4.1.1.2
Software Components...........................................................................................................................10
4.1.1.3
Cohesion...............................................................................................................................................10
4.1.1.4
Coupling...............................................................................................................................................10
4.1.2
4.1.2.1
Public Domain
Concurrency Architecture.....................................................................................................................11
Page 3 of 14
Donald Firesmith
Document ID: AG
Architecture Guidelines
Version:
0.1
4.1.2.2
Distribution Architecture......................................................................................................................11
4.1.2.3
Ensuring Configurability......................................................................................................................11
4.1.2.4
Ensuring Efficiency..............................................................................................................................11
4.1.2.5
Exception Architecture..........................................................................................................................11
4.1.2.6
Ensuring Extensibility...........................................................................................................................11
4.1.2.7
Ensuring Interoperability......................................................................................................................11
4.1.2.8
4.1.2.9
Ensuring Performance..........................................................................................................................12
4.1.2.10
Ensuring Portability..............................................................................................................................12
4.1.2.11
Ensuring Reliability..............................................................................................................................12
4.1.2.12
Ensuring Robustness.............................................................................................................................12
4.1.2.13
Ensuring Safety....................................................................................................................................12
4.1.2.14
Ensuring Scalability..............................................................................................................................12
4.1.2.15
Ensuring Security.................................................................................................................................12
4.1.2.16
Ensuring Usability................................................................................................................................13
4.1.2.17
Persistence Architecture........................................................................................................................13
4.1.2.18
Reusability............................................................................................................................................13
4.1.2.19
4.1.3
4.1.3.1
Public Domain
Page 4 of 14
Donald Firesmith
Document ID: AG
Architecture Guidelines
Version:
0.1
1 Introduction
This section introduces the Architecture Guidelines (AG) to the reader.
1.3 References
These AG were derived from the following sources:
TBD
Public Domain
Page 5 of 14
Donald Firesmith
Document ID: AG
Architecture Guidelines
Version:
0.1
2 General Guidelines
2.1.1 Architecture Work Products
Training. Provide initial classroom training for all relevant personnel (architects and
inspectors of architectures) who will either produce, inspect, or read an architecture
document. Provide ongoing on-the-job training for all members of the architecture team.
Rationale: TBD
2.1.2.2 Architecture Teams
Architecture teams. Provide initial classroom training for all relevant personnel
(architects and inspectors of architectures) who will either produce, inspect, or read an
architecture document. Provide ongoing on-the-job training for all members of the
architecture team.
Rationale: TBD
Public Domain
Page 6 of 14
Donald Firesmith
Document ID: AG
Architecture Guidelines
Version:
0.1
None
None
None
Public Domain
None
Page 7 of 14
Donald Firesmith
Document ID: AG
Architecture Guidelines
Version:
0.1
Redundant hardware.
Fail over.
None
None
None
None
None
Load balancing.
Standardized hardware.
Page 8 of 14
Donald Firesmith
Document ID: AG
Architecture Guidelines
Version:
0.1
Physical security. Determine and document how the system architecture will
provide any required physical security.
Firewalls. Determine how many firewalls are needed and where they will occur
within the system architecture.
3.1.2.13 Ensuring Usability
This subsection documents guidelines for producing system architectures that can be easily installed
and used.
Public Domain
None
Page 9 of 14
Donald Firesmith
Document ID: AG
Architecture Guidelines
Version:
0.1
Avoid use case driven design. Do not drive the architecture from the structure of
the use cases. Instead, use domain experts and object modeling to identify the key business
abstractions. Use externals and the information passed with the interactions of the use cases
to identify additional classes of objects.
Rationale: Use cases are functional abstractions that are often functionally decomposed.
Thus, use case driven design often results in a functional decomposition design based on godlike controller objects violating the encapsulation of dumb data objects.
4.1.1.2 Software Components
Coupling. Components should be loosely coupled with well defined inbound and
outbound interfaces
Rationale: TBD
Public Domain
Page 10 of 14
Donald Firesmith
Document ID: AG
Architecture Guidelines
Version:
0.1
Processor architecture.
Thread-safe classes.
Middleware tools.
None
None
Exception hierarchy.
None
Public Domain
None
Page 11 of 14
Donald Firesmith
Document ID: AG
Architecture Guidelines
Version:
0.1
None
None
None
Exception handling.
Defensive programming.
None
None
Database size.
Transaction rates.
Public Domain
Page 12 of 14
Donald Firesmith
Document ID: AG
Architecture Guidelines
Version:
0.1
User access. Determine is different actors required different user access and how it
will be provided (e.g., via passwords)
Data access. Determine which users and which components may access which data.
Determine a consistent way to implement data access.
None
Object databases.
Relational databases.
Files.
4.1.2.18 Reusability
This subsection documents guidelines for producing software architectures that can be used for
purposes other than originally intended (e.g., as part of other applications).
Public Domain
None
Page 13 of 14
Donald Firesmith
Document ID: AG
Architecture Guidelines
Version:
0.1
None
Public Domain
None
Page 14 of 14