Software Process, Ian Sommerville (CH 4) Flashcards
What does CASE stand for?
Computer Aided Software Engineering
What are the four practices common to all software processes?
Specification. Design and Implementation. Validation. Evolution.
What are the three process models / paradigms the author explores?
Waterfall. Evolutionary Development. Component Based / Reuse-Oriented
What are the two categories of software processes?
Agile and Plan Driven.
Describe five phases of Waterfall process model (A plan driven process). 5
Requirements Definition. System and Software Design. Implementation and Unit Testing. Integration and System testing. Operation and Maintenance.
What are cons of Waterfall Model?
Because of costs of producing documents after each phase, iterations can be costly.
As a result parts of development are ‘frozen’ to continue with later stages of development. Problems are left for later resolution or programmed around.
Major problem is inflexible partitioning of project into distinct phases. Makes it difficult to respond to customers changing demands.
Describe incremental development.
Specification, development and validation are interleaved rather than seperate. Rapid feedback.
What is the formal system develpoment model?
A variation of the Waterfall Model. An example is the Cleanroom Process developed by IBM. The object is zero defects software. Used in safety critical systems.
What are the three imporant benefits of incremental model over waterfall model?
- The cost of accomadating customer is reduced
- Customer feedback on work done is easier
- More rapid delivery of useful software is possible
From a management perspective what two problems does the incremental (agile) process present?
- The process is not visible (little documentation as it is not cost effective).
- System structure degrades with each new increment. Regular change tends to corrupt. Offsetting this costs time and money.
Describe reuse-oriented software.
- Component Analysis
- Requirements Modification
- System Design with Reuse
- Development and Integration
What are the three types of software component that may be used in a reuse-oriented process?
- Web services.
- Collections of objects ie .NET or J2EE
- Stand alone software systems configured for use in a particular environment
Pros and Cons of Reuse-Oriented process?
- Pros: reduced amount, cost and risk of software. ALso faster delivery.
- Cons: Requirements compromised. Also reusable components not under control of organisation who uses them.