Podcast
Questions and Answers
What is the first step in the requirements engineering process?
What is the first step in the requirements engineering process?
Software design and implementation are separate, unrelated activities.
Software design and implementation are separate, unrelated activities.
False
What is the purpose of software validation?
What is the purpose of software validation?
To ensure that a system conforms to its specification and meets the requirements.
The activity of finding program faults and correcting them is known as ______.
The activity of finding program faults and correcting them is known as ______.
Signup and view all the answers
Match the following design activities with their descriptions:
Match the following design activities with their descriptions:
Signup and view all the answers
Which of the following is a key part of requirements specification?
Which of the following is a key part of requirements specification?
Signup and view all the answers
In software processes, programming is considered to have a standard process.
In software processes, programming is considered to have a standard process.
Signup and view all the answers
What activity involves checking the validity of requirements?
What activity involves checking the validity of requirements?
Signup and view all the answers
What is the main drawback of the waterfall model?
What is the main drawback of the waterfall model?
Signup and view all the answers
The incremental development process allows for faster delivery of software.
The incremental development process allows for faster delivery of software.
Signup and view all the answers
Name the first phase of the waterfall model.
Name the first phase of the waterfall model.
Signup and view all the answers
The _____ model is only appropriate when the requirements are well-understood.
The _____ model is only appropriate when the requirements are well-understood.
Signup and view all the answers
Match the following terms to their descriptions:
Match the following terms to their descriptions:
Signup and view all the answers
In which scenario is the waterfall model mostly used?
In which scenario is the waterfall model mostly used?
Signup and view all the answers
Incremental development eliminates the need for documentation.
Incremental development eliminates the need for documentation.
Signup and view all the answers
What is a potential problem with incremental development?
What is a potential problem with incremental development?
Signup and view all the answers
What is the primary focus of system testing?
What is the primary focus of system testing?
Signup and view all the answers
Change is irrelevant in all large software projects.
Change is irrelevant in all large software projects.
Signup and view all the answers
What is one method to reduce the costs of rework in software projects?
What is one method to reduce the costs of rework in software projects?
Signup and view all the answers
The process of testing with customer data to ensure the system meets their needs is called _____ testing.
The process of testing with customer data to ensure the system meets their needs is called _____ testing.
Signup and view all the answers
Match the following stages of testing with their descriptions:
Match the following stages of testing with their descriptions:
Signup and view all the answers
Which phase allows for the incremental development of software?
Which phase allows for the incremental development of software?
Signup and view all the answers
Software evolution refers to the ability of software to remain unchanged over time.
Software evolution refers to the ability of software to remain unchanged over time.
Signup and view all the answers
What must be tested during system testing to ensure the overall quality of the software?
What must be tested during system testing to ensure the overall quality of the software?
Signup and view all the answers
What is the primary purpose of system prototyping?
What is the primary purpose of system prototyping?
Signup and view all the answers
Incremental delivery allows for the system to be delivered as a single complete product.
Incremental delivery allows for the system to be delivered as a single complete product.
Signup and view all the answers
What is one benefit of prototyping?
What is one benefit of prototyping?
Signup and view all the answers
A prototype may involve leaving out certain ______ to focus on essential features.
A prototype may involve leaving out certain ______ to focus on essential features.
Signup and view all the answers
Match the types of development approaches with their purposes:
Match the types of development approaches with their purposes:
Signup and view all the answers
What is emphasized during prototype development?
What is emphasized during prototype development?
Signup and view all the answers
User requirements can evolve even after the development of an increment has started.
User requirements can evolve even after the development of an increment has started.
Signup and view all the answers
Name a rapid development approach often used in prototype development.
Name a rapid development approach often used in prototype development.
Signup and view all the answers
What is a primary benefit of incremental delivery?
What is a primary benefit of incremental delivery?
Signup and view all the answers
Incremental development is typically used in traditional waterfall methodologies.
Incremental development is typically used in traditional waterfall methodologies.
Signup and view all the answers
What is the purpose of using early increments in incremental delivery?
What is the purpose of using early increments in incremental delivery?
Signup and view all the answers
Incremental delivery can be challenging for __________ systems because increments often possess less functionality than the existing system.
Incremental delivery can be challenging for __________ systems because increments often possess less functionality than the existing system.
Signup and view all the answers
Match the following types of prototypes with their characteristics:
Match the following types of prototypes with their characteristics:
Signup and view all the answers
What is a common issue faced when determining requirements in incremental development?
What is a common issue faced when determining requirements in incremental development?
Signup and view all the answers
Software process improvement is often adopted to increase software quality and reduce costs.
Software process improvement is often adopted to increase software quality and reduce costs.
Signup and view all the answers
Name one reason why throw-away prototypes are not suitable for production systems.
Name one reason why throw-away prototypes are not suitable for production systems.
Signup and view all the answers
What are the capability maturity levels described in the SEI capability maturity model?
What are the capability maturity levels described in the SEI capability maturity model?
Signup and view all the answers
Software validation is the process of ensuring that the system meets its specification and user needs.
Software validation is the process of ensuring that the system meets its specification and user needs.
Signup and view all the answers
What are the two principal approaches to process improvement?
What are the two principal approaches to process improvement?
Signup and view all the answers
The process of developing a software specification is known as ______.
The process of developing a software specification is known as ______.
Signup and view all the answers
Match the following software processes with their descriptions:
Match the following software processes with their descriptions:
Signup and view all the answers
Which of the following best describes 'iterative development'?
Which of the following best describes 'iterative development'?
Signup and view all the answers
The waterfall model is an example of a general software process model.
The waterfall model is an example of a general software process model.
Signup and view all the answers
Incremental delivery promotes the ______ of changes in a software system.
Incremental delivery promotes the ______ of changes in a software system.
Signup and view all the answers
Study Notes
Software Processes
- Software processes are the activities required to produce a software system.
- Software process models are abstract representations of these processes.
- General process models outline the organization of software processes.
- Examples include the waterfall model, incremental development, and reuse-oriented development.
- Design and implementation processes transform requirements into an executable system.
- Software validation verifies the system's adherence to specifications and user needs.
- Software evolution is the modification of existing systems to meet new requirements.
- Processes need activities like prototyping and incremental delivery to cope with change.
- Processes can be structured for iterative development so changes do not disrupt the whole system.
- Key improvement approaches are agile, geared towards reducing overhead, and maturity-based, relying on better process management and good software engineering practices.
- The SEI process maturity framework defines maturity levels, correlating with good software engineering practices.
Key Process Stages
- Requirements specification: Defines the system's services and constraints.
- Software discovery and evaluation: Identifies available components or systems.
- Requirements refinement: Specifies the requirements in detail.
- Application system configuration: Configures existing systems to meet needs.
- Component adaptation and integration: Adapts and integrates reusable components.
Waterfall Model
- A plan-driven model.
- Separate and distinct phases: specification, development, validation, and evolution.
- Phases must be complete before the next begins.
- Difficult to accommodate changes during development.
- Suitable for projects with stable requirements.
Incremental Development
- Specification, development, and validation are interleaved.
- Plan-driven or agile.
- Easier to accommodate changes.
- Enables early delivery of customer value.
- Visible process and feedback.
- System structure can degrade over time.
- Difficult to measure progress.
- Time or money must be spent on refactoring to improve structure.
- Less effective for large projects and complex systems.
Integration and Configuration
- Relies on software reuse from existing components or systems (COTS).
- Used for business systems.
- Configuring reusable components to fit user needs.
- Advantages include reduced cost and risk, faster delivery.
- Disadvantages include requirement compromises and loss of system evolution control.
- Types of reusable software include stand-alone applications, collections of objects, and web services.
System Implementation
- Implementing the designed software.
- Programming is a core individual activity within this stage.
- Design and implementation are often interleaved.
Software Validation
- Verifies that the system meets the specification and user requirements.
- Methods include checking, review processes, and testing.
- System testing involves executing the system with real data.
- Testing is a significant part of validation.
Stages of Testing
- Component testing (individual components, independent).
- System testing (complete system, emergent properties, important).
- Customer testing (real customer data, system meets customer needs).
Software Evolution
- Software is inherently flexible.
- Requirements change based on business circumstances.
- Software must evolve to support these changes.
Coping with Change
- Change is inevitable in large software projects (business changes, new technologies, changing platforms).
- Change leads to rework and new costs, including cost of re-analysis, and implementation.
- Techniques for handling change include: change anticipation (e.g., prototyping), and change tolerance (e.g., incremental development).
Coping with Changing Requirements
- System prototyping: quickly check requirements and design feasibility.
- Incremental delivery: provide system increments for feedback and experimentation.
Software Prototyping
- Initial version of a system to demonstrate concepts and design options.
- Used in requirements engineering (elicitation and validation), and in design (explore design options and develop UI design).
- Benefits include: improved system usability, closer match to needs, improved design quality, improved maintainability, and reduced development effort.
- Types of Prototyping include throwaway.
Prototype Development
- Steps involved in prototype creation: (establishing objectives, defining functionality, developing, evaluating).
- Prototyping may be based on rapid prototyping tools or languages.
- Prototyping may involve leaving out functionality not well understood, or error checking/recovery.
- Focus is on functional (required behavior) requirements, not necessarily non-functional (reliability, security).
Incremental Delivery
- Delivers system in increments rather than as a whole.
- User requirements are prioritized.
- Requirements are often frozen once an increment starts.
- Benefits include earlier customer value and lower risk of project failure.
- Easier to adopt and make changes.
- Disadvantage: Hard to identify common system facilities.
- Needs a flexible procurement model to handle changing requirements after increments are deployed.
Process Improvement
- Enhancing software quality, reducing costs, or accelerating development
- Method: understanding existing processes, making changes to boost product quality and reduce time.
Approaches to Improvement
- Process maturity: focuses on improving process and project management (using better software engineering practices).
- Agile approach: iterative development reduces overhead (faster delivery of functionality, responsiveness to change).
Process Improvement Cycle
- Continuous Cycle: Measure, Analyze, Change.
Process Improvement Activities
- Process measurement: baseline metrics to track improvements.
- Process analysis: identify and address weaknesses, bottlenecks.
- Process change: implement proposed changes systematically.
Process Measurement
- Collecting quantitative process data.
- Needs clear process standards to measure/determine what to collect.
- Quantifiable metrics like time taken to complete activities, resources required (effort), defects found.
Capability Maturity Model (CMM)
- Levels of maturity in software development processes: from initial (uncontrolled) to optimizing (continuous improvement). (Level 1 to 5).
- Framework for assessing and improving software development processes.
Key Points Summary
- Software processes involve activities to build systems. Models abstract these processes.
- General process models (e.g., waterfall, incremental, reuse-oriented) structure activities.
- Requirements engineering defines software specifications.
- Design and implementation convert specifications into executable code.
- Software validation checks the system against specifications and user needs.
- Software evolution allows adjustments to meet changing demands.
- Coping with change involves prototyping and incremental delivery to handle evolving specifications.
- Process improvement enhances software quality and development efficiency.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
This quiz tests your knowledge on the fundamentals of software engineering, including requirements engineering, software validation, and various development models like the waterfall and incremental models. Evaluate your understanding of key concepts and terminology in software processes.