Podcast
Questions and Answers
Which activity is NOT typically involved in all software processes?
Which activity is NOT typically involved in all software processes?
- Evolution of the system in response to changing needs.
- Detailed hardware design and integration. (correct)
- Specification of what the system should do.
- Validation to verify the system meets customer needs.
What is the primary characteristic of a plan-driven software process?
What is the primary characteristic of a plan-driven software process?
- Incremental planning that adapts to customer feedback.
- All activities are planned in advance, and progress is measured against this plan. (correct)
- Emphasis on automated testing and continuous integration.
- Focus on rapid prototyping with minimal documentation.
In which scenario is the Waterfall model most suitable?
In which scenario is the Waterfall model most suitable?
- When the system is developed across several geographically dispersed sites. (correct)
- When developing small, interactive applications with unclear goals.
- When requirements are evolving and subject to frequent changes.
- When the project requires rapid prototyping and user feedback.
What is a key limitation of the Waterfall model regarding changes?
What is a key limitation of the Waterfall model regarding changes?
Which phase must be completed before moving on to the next in the Waterfall model?
Which phase must be completed before moving on to the next in the Waterfall model?
What is the core principle of Evolutionary development?
What is the core principle of Evolutionary development?
In Evolutionary development, how are specification, development, and validation handled?
In Evolutionary development, how are specification, development, and validation handled?
What is a key benefit of Evolutionary development over Waterfall development regarding changes?
What is a key benefit of Evolutionary development over Waterfall development regarding changes?
Which could be considered a problem from a management perspective when using Evolutionary development?
Which could be considered a problem from a management perspective when using Evolutionary development?
For what type of system is Evolutionary development most applicable?
For what type of system is Evolutionary development most applicable?
What is the primary focus of the Reuse-oriented software process model?
What is the primary focus of the Reuse-oriented software process model?
What are systems integrated from existing components or application systems commonly called?
What are systems integrated from existing components or application systems commonly called?
In the Reuse-oriented model, what is the purpose of 'Requirements refinement'?
In the Reuse-oriented model, what is the purpose of 'Requirements refinement'?
A key advantage of Reuse-oriented software engineering is:
A key advantage of Reuse-oriented software engineering is:
Suggest an appropriate model to use for Car anti-lock braking system (ABS).
Suggest an appropriate model to use for Car anti-lock braking system (ABS).
What is the name of an initial version of a system used to demonstrate concepts and try out design options?
What is the name of an initial version of a system used to demonstrate concepts and try out design options?
In which process is a prototype NOT helpful?
In which process is a prototype NOT helpful?
During prototype development, what is often intentionally left out?
During prototype development, what is often intentionally left out?
Why should throw-away prototypes be discarded after development?
Why should throw-away prototypes be discarded after development?
What type of version of the system or part of the system is developed quickly to check customer's requirements and feasibility of design decisions?
What type of version of the system or part of the system is developed quickly to check customer's requirements and feasibility of design decisions?
What is the main benefit of Plan-driven software processes?
What is the main benefit of Plan-driven software processes?
Where does the evolutionary model work best?
Where does the evolutionary model work best?
The anti-lock braking system (ABS) would most likely benefit from using what kind of model?
The anti-lock braking system (ABS) would most likely benefit from using what kind of model?
Which of the following is not a basic process activity?
Which of the following is not a basic process activity?
Where would you use prototyping?
Where would you use prototyping?
When using Reuse-oriented Software engineering you are unable to perform what action?
When using Reuse-oriented Software engineering you are unable to perform what action?
The Waterfall model and which other model need to be carefully thought about?
The Waterfall model and which other model need to be carefully thought about?
Which of the following isn't a advantage of evolutionary Software development?
Which of the following isn't a advantage of evolutionary Software development?
When does system structure tend to degrade?
When does system structure tend to degrade?
Flashcards
Software Process
Software Process
A structured set of activities required to develop a software system.
Specification
Specification
Defining what the system should do.
Development
Development
Defining the system's organization and implementation.
Validation
Validation
Signup and view all the flashcards
Evolution
Evolution
Signup and view all the flashcards
Software Process Model
Software Process Model
Signup and view all the flashcards
Plan-driven Processes
Plan-driven Processes
Signup and view all the flashcards
Agile Processes
Agile Processes
Signup and view all the flashcards
Waterfall Model
Waterfall Model
Signup and view all the flashcards
Waterfall Model Phases
Waterfall Model Phases
Signup and view all the flashcards
Evolutionary Development
Evolutionary Development
Signup and view all the flashcards
Incremental Development
Incremental Development
Signup and view all the flashcards
Evolutionary Development
Evolutionary Development
Signup and view all the flashcards
Reuse-Oriented Development
Reuse-Oriented Development
Signup and view all the flashcards
Reuse-oriented Stages
Reuse-oriented Stages
Signup and view all the flashcards
Prototype
Prototype
Signup and view all the flashcards
Prototype Development Aspects
Prototype Development Aspects
Signup and view all the flashcards
Throw-away Prototypes
Throw-away Prototypes
Signup and view all the flashcards
Software Prototyping
Software Prototyping
Signup and view all the flashcards
Study Notes
Software Process
- Set of activities required to develop a software system.
- Specification, development, validation, and evolution are always involved.
- A software process model is an abstract representation of said process.
Plan-Driven vs Agile Processes
- Plan-driven processes plan all activities in advance and measure progress against this plan.
- Agile processes use incremental planning to reflect changing customer needs.
- Most processes utilise elements of both plan-driven and agile approaches.
- There are no correct or incorrect software processes.
Software Process Models
- Waterfall model, evolutionary development and reuse-oriented models exist.
- Most large systems incorporate elements from all of these models.
Waterfall Model
- Plan-driven model with distinct phases of specification and development.
- In principle, each phase is completed before moving on to the next.
- Phases include: Requirements analysis and definition, system and software design, implementation and unit testing, integration and system testing, operation and maintenance.
- Inflexible partitioning makes the waterfall model difficult in responding to changing customer needs.
- Suited when the requirements are well-understood, changes will be limited during the design process, ideal in large systems with plans to coordinate work across sites.
- The waterfall model is appropriate for safety-critical systems.
Evolutionary/Incremental Development
- Involves developing an initial implementation, obtaining user feedback, and software evolution through versions until the needed system is developed
- Specification, development, and validation activities are interleaved, with rapid feedback across activities.
- Process model starts with well-understood requirements while adding new features as the customer proposes.
- Objectives include working with the customer to evolve a final system from an initial outline specification.
Evolutionary Development Benefits Over Waterfall
- Reduces the cost of accommodating changing customer requests
- Less analysis and documentation is needed compared to the waterfall model.
- Facilitates easier customer feedback on development work that has been done.
- Customers can comment on demonstrations of the software and see how much has been implemented.
- Allows for more rapid software delivery that is useful for the customers.
- Customers can use and gain value from the software earlier than with a waterfall process.
Evolutionary development problems from a management perspective
- Process is not visible due to a lack of regular deliverables to measure progress.
- Quick system development is not cost-effective when producing documents to reflect every system version.
- System structure degrades with new increments
- Regular changes without refactoring corrupt the structure making further changes are difficult and costly.
- Suited for small/medium interactive systems, parts of large systems user interfaces, and short-lifetime systems.
Reuse-Oriented Model
- Based on software reuse.
- Systems are integrated from existing components or application systems, sometimes called COTS (commercial-off-the-shelf) systems.
- Reused elements configured to adapt to a user's requirements.
- It is a standard approach.
Reuse-Oriented Key Process Stages
- Requirements specification, software discovery and evaluation, requirements refinement, component adaptation, and integration.
Reuse-Oriented: Advantages and Disadvantages
- Reduced costs and risks due to less developed software.
- Faster system delivery and deployment.
- Requirements compromises are unavoidable so the system may not meet real user needs.
- There is a loss of control over the evolution of reused system elements.
Software Prototyping
- Prototype is an initial system version to demonstrate concepts and try out design options.
- It can be used in the requirements engineering process for requirements elicitation and validation.
- Used in design processes to explore options/ develop UI and testing processes to run back-to-back tests.
- Back-to-back tests involve testing components of different versions, using the same inputs, and expecting the same output.
Prototype Development
- May involve leaving out functionality.
- Prototypes should focus on areas not well-understood.
- Focus on functional rather than non-functional requirements such as reliability and security.
Throw-Away Prototypes
- They are discarded after development.
- It may involve leaving out functionality.
- Impossible to tune the system to meet non-functional requirements
- Prototypes are normally undocumented.
- Prototype structure is degraded through rapid change.
- Prototypes do not meet normal organizational quality standards.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.