| Lista de comprobación: Architecture | |
 |
| This checklist provides questions to help in evaluating whether architectural decisions have been captured appropriately. |
|
Relaciones
Descripción principal
The items in this checklist represent good practices for creating and communicating a robust architecture. It may not
be possible to address every item, and some items may only be able to be addressed to a limited extent. In these cases,
be sure that there are good reasons for only partially addressing an item, or not addressing an item at all.
Architecture can be performed every day. Use this checklist regularly to ensure the results are robust, consistent, and
understandable. Make the architecture good enough for the specific goals being addressed by using this checklist to
identify areas that have been skipped, ignored, or not sufficiently addressed.
|
Elementos de comprobación
|
Is the overall structure of the architecture clear?
-
Are the key abstractions adequately defined?
-
Have necessary Architectural Mechanisms been identified and described?
-
Does the architecture divide the system’s responsibilities into well-defined subsystems with well-defined
interfaces?
-
Does the packaging approach reduce complexity and improve understanding?
-
Is subsystem and package partitioning and layering logically consistent?
-
Are packages defined to be highly cohesive within the package, while the packages themselves are loosely coupled?
-
Are all of the subsystem components for the iteration identified?
-
Do the dependencies between subsystems and packages correspond to dependency relationships between the contained
classes?
-
Do the classes in a subsystem support the services identified for the subsystem?
-
Are the number and types of components reasonable?
|
Have the supporting requirements been adequately addressed?
-
Does the architecture adequately address the global Functional requirements?
-
Does the architecture adequately address the Usability requirements?
-
Does the architecture adequately address the Reliability requirements?
-
Does the architecture adequately address the Performance requirements?
-
Does the architecture adequately address the Supportability requirements?
-
Does the architecture adequately address the other needs identified in the Supporting Requirements?
|
Can the architecture be delivered by the team?
-
Does the component architecture provide a suitable basis for organizing the development teams?
-
Does each team have the skills required to implement their allocated components?
-
Are responsibilities divided well between teams?
-
Do all team members share the same understanding of the architecture as the one presented by the architect?
-
Can team members understand enough from the architecture to successfully design and code their allocated
components?
|
Is architecture showing appropriate stability?
-
If in Inception, is a candidate architecture emerging?
-
If in Elaboration, is the architecture beginning to stabilize?
-
If in Construction, is the architecture generally stable?
-
If in Transition, is the architecture very stable?
|
In general, does the architecture seem sensible?
-
Is the architecture at an appropriate level of detail, given the objectives?
-
Are concepts handled in the simplest way possible?
-
Can the architecture easily evolve, so that expected changes can be easily accommodated?
-
At the same time, has the architecture been overly structured to handle unlikely change at the expense of
simplicity and comprehensibility? (Hint: "Yes" to this question is not good).
-
Are the key assumptions and decisions that the architecture is based on documented and visible to reviewers
and consumers of the architecture?
-
Is the architecture description current?
-
Have the design guidelines been followed?
-
Are all technical risks either mitigated or addressed in a contingency plan?
|
|
Más información
|