Podcast
Questions and Answers
A structured set of activities required to develop a software system.
A structured set of activities required to develop a software system.
system
In software processes, ______ involves defining what the system should do.
In software processes, ______ involves defining what the system should do.
Specification
In agile processes, planning is ______ and it is easier to change the process.
In agile processes, planning is ______ and it is easier to change the process.
incremental
The ______ model is a plan-driven model with separate phases of specification and development.
The ______ model is a plan-driven model with separate phases of specification and development.
Integration and configuration may incorporate ______ or agile approaches.
Integration and configuration may incorporate ______ or agile approaches.
Flashcards are hidden until you start studying
Study Notes
The Software Process
- Structured set of activities required for software system development.
- Key activities include:
- Specification: Defining system requirements.
- Design and Implementation: Organizing and creating the system.
- Validation: Ensuring the system meets customer expectations.
- Evolution: Adapting the system to changing customer needs.
- Software process models provide an abstract representation of these processes from various perspectives.
Software Process Descriptions
- Descriptions typically focus on activities like data modeling and user interface design along with their sequence.
- Elements included in process descriptions:
- Products: Outcomes of activities.
- Roles: Responsibilities of individuals involved.
- Pre- and post-conditions: True statements before and after activities.
Plan-Driven and Agile Processes
- Plan-driven Processes: All activities are pre-planned, measuring progress against the plan.
- Agile Processes: Planning is iterative and adaptable, accommodating changing requirements.
- Most practical processes blend both approaches; no universally right or wrong processes exist.
Software Process Models
- Waterfall Model:
- Plan-driven with distinct phases for specification and development.
- Incremental Development:
- Interleaved phases of specification, development, and validation, adaptable to changes.
- Integration and Configuration:
- Systems assembled from existing configurable components, can be plan-driven or agile.
- Most large systems use a combination of these models.
Waterfall Model Phases
- Phases include:
- Requirements analysis and definition
- System and software design
- Implementation and unit testing
- Integration and system testing
- Operation and maintenance
- Main disadvantage is resistance to change once a phase is completed.
Waterfall Model Problems
- Inflexible stage partitioning complicates responses to customer requirement changes.
- Best for projects with well-understood and stable requirements.
- Commonly applied in large systems engineering projects with multiple sites due to its organized nature.
Incremental Development Benefits
- Reduced costs for adapting to changing customer requirements.
- Less re-analysis and documentation compared to waterfall model.
- Enhanced customer feedback opportunities through demonstrations.
- Faster delivery and deployment of actionable software benefits customers earlier.
Incremental Development Problems
- Lack of visibility in the process; challenges in measuring progress without regular deliverables.
- System structure may degrade with frequent increments without proper refactoring.
- Costs to incorporate further changes may rise as system complexity increases.
Integration and Configuration
- Based on reusing existing components or COTS (Commercial-off-the-shelf) systems.
- Configurable components adapt behavior to user requirements.
- Reuse is a standard approach for building business systems.
Types of Reusable Software
- Stand-alone application systems (COTS) for specific environments.
- Collections of objects developed as packages for integration with frameworks like .NET.
- Web services developed to standards for remote invocation.
Reuse-Oriented Software Engineering
- Key stages include:
- Requirements specification
- Software discovery and evaluation
- Requirements refinement
- Application system configuration
- Component adaptation and integration
Advantages and Disadvantages of Reuse
- Advantages include reduced costs and risks from less new software development.
- Faster system delivery and deployment.
- Inevitably leads to requirement compromises; systems may not fully meet user needs.
- Potential loss of control over lifecycle of reused components.
Process Activities
- Real software processes are interleaved sequences of technical, collaborative, and managerial actions aimed at specifying, designing, implementing, and testing a system.
- Basic activities: specification, development, validation, evolution, organized differently based on the development approach (sequential in waterfall, interleaved in incremental).
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.