Software engineering c2_241007_080600
SOFTWARE PROCESS MODELS
A software process model is a simplified representation of the software process.
THE WATERFALL MODEL
Represents fundamental process activities such as:
Requirements specification
Software design
Implementation
Testing
Activities are separated into distinct phases.
INCREMENTAL DEVELOPMENT
Interleaves specification, development, and validation activities.
Develops the system in versions (increments), where each version adds functionality to the previous one.
Incremental Development vs Waterfall Model
Advantages of Incremental Development:
Reduced cost for accommodating changing customer requirements.
Less analysis and documentation required compared to the waterfall model.
Easier to obtain customer feedback from demonstrations rather than design documents.
Rapid delivery and deployment, allowing customers to use early versions of the software, creating early value.
Incremental Development Details
Most common approach for developing application systems today.
Can be:
Plan-driven (increments identified in advance)
Agile (early increments defined, later based on progress and priorities)
Management Perspective Challenges:
Visibility issues during the process.
Potential degradation of system structure.
Large, Complex Systems Concerns
Specifically challenging for large systems due to:
Different teams working on various parts.
Necessity of a stable architecture and clear team responsibilities defined in advance.
REUSE-ORIENTED SOFTWARE ENGINEERING
Focuses on integrating existing reusable components instead of developing new ones from scratch.
PROCESS ACTIVITIES: SOFTWARE SPECIFICATION
Requirements engineering processes include:
Feasibility Study: Assessing user needs against current technologies for cost-effectiveness and feasibility.
Requirements Elicitation and Analysis: Deriving system requirements through various analyses, discussions, and observations.
Requirements Specification: Documenting user and system requirements clearly.
Requirements Validation: Ensuring that the requirements are realistic, consistent, and complete.
Requirements Engineering Details
Feasibility Reports relate to how the system can operate within budgetary and technological constraints.
Requirements Documents summarize user (abstract statements) and system (detailed functionalities) requirements.
PROCESS ACTIVITIES: SOFTWARE DESIGN AND IMPLEMENTATION
Implementation involves converting specifications into an executable system.
PROCESS ACTIVITIES: SOFTWARE VALIDATION
Validation ensures that software conforms to specifications and meets customer expectations.
Alpha vs Beta Testing
Alpha Testing: Continuous testing for custom systems until agreement on functionality between developer and client.
Beta Testing: Involves releasing the system to potential customers to detect unforeseen errors and gather problem reports before general availability.
V-MODEL
Model indicating detailed connections between requirements and testing activities at various stages:
Requirements Specification to Testing Plans and System Integration.
PROCESS ACTIVITIES: SOFTWARE EVOLUTION
Evolution processes to manage system changes include:
Define system
Assess existing systems
Propose modifications
Implement changes
COPING WITH CHANGE
Change management must address inevitable adjustments in large projects due to:
External pressures and changing priorities.
Change Avoidance: Focus on activities that anticipate required changes.
Change Tolerance: Make processes adaptable to accommodate changes at a lower cost.
PROTOTYPING
Involves creating preliminary models to define and evaluate system objectives prior to actual development.
INCREMENTAL DELIVERY
System development proceeds by outlining, assigning, designing, validating, and integrating incremental components until a full system is achieved.
BOEHM'S SPIRAL MODEL
A risk-driven model that emphasizes:
Identifying objectives and constraints.
Risk analysis and evaluations at various iterations.
Operational prototypes to verify requirements progressively.