Software Development Concepts
Systems Development Models
Agile
- Emphasizes the customer's needs.
- Quick development of functionality in an iterative manner.
- Four Core Principles:
- Individuals and interactions over processes and tools.
- Working software over comprehensive documentation.
- Customer collaboration over contract negotiation.
- Responding to change over following a plan.
-
- User Acceptance Testing (UAT) can provide guidance on adapting and pivoting direction.
Remember the four core principles of Agile for the exam.
Waterfall
- Sequential development leading to a complete product.
- Allows return to the previous phase for corrections only.
- Seven stages:
- System Requirements
- Software Requirements
- Preliminary design
- Detailed Design
- Code and Debug
- Testing
- Operations & Maintenance
Spiral
- Metamodel or "model of models".
- Several iterations of the waterfall model.
- Each spiral loop results in a new prototype/iteration.
- Iterative in nature.
Think of Spiral as a "repeating Waterfall".
Software Development Maturity Models
- Helps in improving the quality and maturity of software processes.
- Follows an evolutionary path from chaotic to disciplined processes.
Capability Maturity Model (CMM)
- Level 1: Initial - No consistent processes.
- Level 2: Repeatable - Basic lifecycle management.
- Level 3: Defined - Documented and standardized process.
- Level 4: Managed - Quantitative measures for understanding.
- Level 5: Optimized - Continuous development with feedback loops.
Level 5 indicates a high maturity in development processes.
Ideal Model
- A software development model that incorporates attributes of SW-CMM.
- Stages:
- Initiating - Business reasons established, infrastructure put in place.
- Diagnosing - Current state analysis and change recommendations.
- Establishing - Development of change plans.
- Acting - Implementation of the plan and solutions.
- Learning - Continuous analysis for improvement.
Software Development Life Cycle (SDLC)
Phase Name | Description | Mnemonic |
Requirements and Analysis |
In this phase, the needs of potential users are understood and analyzed to produce a requirements specification. |
Robots |
Design | This phase involves creating a detailed design of the software system, specifying architecture, components, interfaces, and other characteristics. |
Design, |
Implementation (or coding) | The actual code is written in this phase, transforming design documentation into functional software. |
Implement, |
Testing | The software is tested to ensure it meets the specifications and is free of defects. |
Test, then |
Evolution (or Maintenance) |
As software gets used, it will evolve to meet new user requirements, address discovered bugs, and incorporate other changes. |
Evolve. |