This post is an example of design and development policy for Software. The policy was established using the methodology of Rational Unified Process (RUP).
7.3.1 & 7.3.2 Design and Development Planning and Inputs
Inception Phase
The primary objective is to scope the system adequately as a basis for validating initial costing and budgets. In this phase the business case which includes business context, success factors (expected revenue, market recognition, etc.), and financial forecast is established. To complement the business case, a basic use case model, project plan, initial risk assessment and project description (the core project requirements, constraints and key features) are generated. After these are completed, the project is checked against the following criteria:
- Stakeholder concurrence on scope definition and cost/schedule estimates.
- Requirements understanding as evidenced by the fidelity of the primary use cases.
- Credibility of the cost/schedule estimates, priorities, risks, and development process.
- Depth and breadth of any architectural prototype that was developed.
- Establishing a baseline by which to compare actual expenditures versus planned expenditures.
- Prototypes (optional)
If the project does not pass this milestone, called the Lifecycle Objective Milestone, it either can be cancelled or repeated after being redesigned to better meet the criteria.
7.3.2 Design and Development Planning Inputs
Elaboration Phase
The primary objective is to mitigate the key risk items identified by analysis up to the end of this phase. The elaboration phase is where the project starts to take shape. In this phase the problem domain analysis is made and the architecture of the project gets its basic form.
The outcome of the elaboration phase is:
- A use-case model in which the use-cases and the actors have been identified and most of the use-case descriptions are developed. The use-case model should be 80% complete.
- A description of the software architecture in a software system development process.
- An executable architecture that realizes architecturally significant use cases.
- Business case and risk list which are revised.
- A development plan for the overall project.
- Prototypes that demonstrably mitigate each identified technical risk (optional).
- Test Scripts
This phase must pass the Lifecycle Architecture Milestone criteria answering the following questions:
- Is the architecture stable?
- Does the executable demonstration indicate that major risk elements are addressed and resolved?
- Is the construction phase plan sufficiently detailed and accurate?
- Do all stakeholders agree that the current vision can be achieved using current plan in the context of the current architecture?
- Is the actual vs. planned resource expenditure acceptable?
If the project cannot pass this milestone, there is still time for it to be cancelled or redesigned. However, after leaving this phase, the project transitions into a high-risk operation where changes are much more difficult and detrimental when made. The key domain analysis for the elaboration is the system architecture.
7.3.3; 7.3.4 & 7.3.5 Design and Development Outputs, Review and Verification
Construction Phase
The primary objective is to build the software system. In this phase, the main focus is on the development of components and other features of the system. This is the phase when the bulk of the coding takes place. In larger projects, several construction iterations may be developed in an effort to divide the use cases into manageable segments that produce demonstrable prototypes.
This phase produces the first external release of the software. Its conclusion is marked by the Initial Operational Capability Milestone.
As a general requirement, Daily Stand-up Meeting is performed to answer the following questions:
“What did you accomplish?”
“What are your planned activities for today?”
“What are your blockers or issues?”
Moreover, the verification activities such as System Integration Test (SIT) is performed to determine that the design and development outputs satisfy the conditions imposed at the start of this phase.
7.3.6 Design and Development Validation
Transition Phase
The primary objective is to ‘transit’ the system from development into production, making it available to and understood by the end user. The activities of this phase include training the end users and maintainers and beta testing the system to validate it against the end users’ expectations. The product is also checked against the quality level set in the Elaboration phase. A User Manual may be developed
If all objectives are met, the Product Release Milestone is reached and the development cycle is finished.
To evidence the verification and validation requirements of product design, the following test are performed
- User Acceptance Test – to obtain confirmation that a system meets mutually agreed-upon requirements.
- System Integration Test – to determine the system functionality and performance of the product