CH 2. Software Processes Flashcards
What is involved in the software process?
- Specification
- Design and implementation
- Validation
- Evolution
What is a software process model?
An abstract representation of a process
What is the software process?
A structured set of activities required to develop a software system
What might process descriptions include?
- Products
- Roles
- Pre and post conditions
What are the types of software process models?
- Waterfall
- Incremental development
- Integration and configuration
What are the benefits of incremental development?
- Cost of accommodating changing customer requirements is reduced
- Easier to get customer feedback on the development work thats been done
- More rapid delivery and deployment
What are the problems with incremental development?
- Process isn’t visible
- System structure tends to degrade as new increments are added
What are the types of reusable software?
- Standalone application systems
- Collections of objects
- Web services
What are the key process stages
- Requirements specification
- Software discovery and evaluation
- Requirements refinement
- Application system configuration
- Component adaption and integration
Name the four basic process activities.
- Specification
- Development
- Validation
- Evolution
What is the requirements engineering process?
- Requirements elicitation and analysis
What do the system stakeholders require or expect from the system? - Requirements specification
Defining the requirements in detail - Requirements validation
Checking the validity of the requirements
What is software design?
Design a software structure that realises the specification
What is system implementation?
Translation a software structure into an executable program
What are the design activities?
- Architetural design
- Database design
- Interface design
- Component selection and design
What are the stages of testing?
- Component testing
Components are tested independently - System testing
Tests the system as a whole - Customer testing
Tests with customer data
What is system prototyping?
A version of the system or part of the system is developed quickly to check the customers requirements and feasibility of the design decisions
What is incremental delivery?
System increments are delivered to the customer for comment and experimentation
What are the benefits of prototyping?
- Improved system usability
- A closer match to user’s real needs
- Improved design quality
- Improved maintainability
- Reduced development effort
What are the advantages of incremental delivery?
- Customer value can be delivered with each increment so system functionality is available earlier
- Early increments act as a prototype to help elicit requirements for later increments
- Lower risk of overall project failure
- The highest priority system services tend to receive the most testing
What are some approaches to imporvement?
- Process maturity approach
- Agile approac
What is the process maturity approach?
Focuses on improving process and project management and introducing good software engineering practice
What is the agile approach?
Focuses on iterative development and the reduction of overheads in the software process
What are the capability maturity levels?
- Level 1: initial
- Level 2: managed
- Level 3: defined
- Level 4:quantitatively managed
- Level 5: Optimizing
What is the SEI capability maturity model?
- Initial
- Repeatable
- Defined
- Managed
- Optimising