Capability Pattern: Microcycle
A microcycle is an iterative, incremental development process that is focused on analyzing, optimizing, and validating high quality pieces of the system that is being built.
Work Breakdown Structure
Purpose
Develop a prototype according to the microcycle's mission statement.
Description

The microcycle is an iterative, incremental development process.  In the microcycle, the subsystem software team begins with the specification of requirements and context. The team then selects functionality - organized around the software subsystem use cases - to be developed. In the Analysis phase of the microcycle, the use cases to be added to the prototype are identified and detailed, if necessary. Following this a domain analysis (also known as object analysis) is done to identify the essential elements that must be in any acceptable software solution to the problem. Following the analysis phase, the project enters the design phase.

Design is all about optimization of a system against the set of design criteria for the product. The design criteria is a set of properties of the system that measure goodness of the design - properties such as worst case performance, throughput, bandwidth, reliability, safety, security, time to market, complexity, maintainability, and so on. These properties are weighted in order of their criticality. Design then proceeds by identifying design patterns that optimize the most important design criteria at the expense of the least important criteria. It is during this stage that technological solutions are adopted to achieve these design goals.

Following design, the code is produced that realizes the design. Depending on the tool environment, the code might be entirely generated automatically from the UML design specification. With less capable tools, significant effort must be expended to create the code and maintain the code in synch with the model. As an integral part of the development of this code, we include unit-level test - mostly oriented around the important classes from the analysis model - and, following successful unit test, peer review. Peer review of the model allows not only for other sets of eyes to look at and find fault with the design, but also to disseminate information about parts of the design to other team members.

Once the high-quality (i.e. tested and verified) architectural units (subsystems) are produced they are integrated together (along with specific artifacts from other engineering disciplines) into a system prototype that is then validated against the requirements of the prototype. These requirements are not only the new requirements added during the current microcycle, but also requirements added in previous microcycles. This is what is known as regression testing.

The system prototypes becomes increasingly complete as more of the remaining capabilities are added over time until the system meets the entire set of requirements necessary for product release. At this point, the engineered system is passed to final acceptance testing and released to the customer.

Workflow

Activity diagram: Microcycle Validation Detailed Design Update Dependability Analysis Collaboration Design Architectural Design High-Fidelity Modeling Prototype Definition Continuous Integration Prepare for Validation
Work Breakdown