Architecture Prototyping
- Architecture Prototyping
- the architecting
task during which executable software prototypes of the
architecture
(a.k.a., executable architectures) are produced
As illustrated in the preceding figure, architectural prototyping is part of the following inheritance hierarchy:
- Type: Concrete
- Superclass: Task
- Subclasses: None
The typical responsibilities of the architecture prototyping task are to:
- Verify the feasibility and correctness of the most important or high risk strategic architectural decisions.
Architecture prototyping typically can begin when the following preconditions hold:
Architecture prototyping typically is complete when the following postconditions hold:
- The architecture prototype is complete.
- The feasibility and correctness of the most important or
high risk strategic architectural decisions have been verified.
Architecture prototyping typically involves the
software development team collaborating closely with the
architecture team to perform the following steps in an
incremental, iterative, parallel, and time-boxed manner:
- Develop a minimal domain layer.
- Develop packages of classes that verify each
architectural mechanism that is to be at least partially
implemented using software components.
- Ensure that at least one representative end-to-end use case path functions correctly.
Architecture prototyping typically can be performed using the following techniques:
- Rapid prototyping
- Evolvable prototyping
Architecture prototyping typically results in the production
of all or part of the following work products:
- Production of the software architecture prototype is typically delegated to the software development team.
- Where practical, the executable software prototype should evolve into the deliverable application.