What Is Architecturally Significant in Elaboration? - Employing "wide and shallow" design and implementation; or "designing at the seams" [Grady Booch] That means: I
- Identifying the separate processes, layers, packages, and subsystems, and their high-level responsibilities and interfaces.
- Partially implement these in order to connect them and clarify the interfaces.
- Modules may contain mostly "stubbed" code.
What Is Architecturally Significant in Elaboration? (cont.) - Refining the inter-module local and remote interfaces (this includes the finest details of the parameters and return values).
For example, the interface to the object which will wrap access to third-party systems. Version one of an interface is seldom perfect. Early attention to stress testing, "breaking," and refining the interfaces supports later multi-team parallel work relying on stable interfaces. - Integrating existing components.
- Implementing simplified end-to-end scenarios that force design, implementation, and test across many major components.
Organize requirements and iterations by risk, coverage, and criticality. Risk includes both technical complexity and other factors, such as uncertainty of effort or usability. Coverage implies that all major parts of the system are at least touched on in early iterations - perhaps a "wide and shallow" implementation across many components. Criticality refers to functions of high business value. Ranking These criteria are used to rank work across iterations. Use cases or use case scenarios are ranked for implementation - early iterations implement high ranking scenarios. In addition, some requirements are expressed as high-level features unrelated to a particular use case, such as a logging service. These are also ranked.
Do'stlaringiz bilan baham: |