Podcast
Questions and Answers
Which activity is NOT considered a core element in all software processes?
Which activity is NOT considered a core element in all software processes?
- Marketing (correct)
- Specification
- Design and Implementation
- Validation
What is the primary distinction between plan-driven and agile processes?
What is the primary distinction between plan-driven and agile processes?
- The level of documentation required
- The approach to planning and change management (correct)
- The use of automated testing tools
- The involvement of stakeholders
In the context of software process models, what does 'abstract representation of a process' refer to?
In the context of software process models, what does 'abstract representation of a process' refer to?
- A simplified description of a process from a specific perspective. (correct)
- A fully automated system for managing software development.
- A legal document outlining the terms of software ownership.
- A detailed, step-by-step guide for developers.
Which of the following is the main drawback of the waterfall model?
Which of the following is the main drawback of the waterfall model?
When is the waterfall model most appropriate for use?
When is the waterfall model most appropriate for use?
Managers require regular deliverables to measure progress, if systems are developed quickly, why is it not cost-effective to produce documents that reflect every version of the system?
Managers require regular deliverables to measure progress, if systems are developed quickly, why is it not cost-effective to produce documents that reflect every version of the system?
In what scenario is the plan focused nature of the waterfall model most beneficial?
In what scenario is the plan focused nature of the waterfall model most beneficial?
What is the primary goal of 'Requirements elicitation and analysis' in the software specification process?
What is the primary goal of 'Requirements elicitation and analysis' in the software specification process?
What is the focus of 'Requirements validation' during the requirements engineering process?
What is the focus of 'Requirements validation' during the requirements engineering process?
Which activity is a part of the software design?
Which activity is a part of the software design?
Why are software design and implementation considered closely related?
Why are software design and implementation considered closely related?
What does 'Architectural Design' primarily focus on?
What does 'Architectural Design' primarily focus on?
What is the primary goal of Verification and Validation (V & V) in software development?
What is the primary goal of Verification and Validation (V & V) in software development?
What does system testing primarily focus on?
What does system testing primarily focus on?
What is the focus of customer testing?
What is the focus of customer testing?
Why is software evolution important?
Why is software evolution important?
What does change anticipation involve in software development?
What does change anticipation involve in software development?
How does change tolerance help in reducing the costs of rework?
How does change tolerance help in reducing the costs of rework?
What is the primary purpose of system prototyping in managing changing requirements?
What is the primary purpose of system prototyping in managing changing requirements?
How does incremental delivery support change tolerance?
How does incremental delivery support change tolerance?
What main types of elements do most practical processes include?
What main types of elements do most practical processes include?
Which software process model includes separate and distinct phases of specification and development?
Which software process model includes separate and distinct phases of specification and development?
Which software process model encourages specification, development, and validation to be interleaved?
Which software process model encourages specification, development, and validation to be interleaved?
If there is regular change to a software's structure, what process should be followed to remedy this?
If there is regular change to a software's structure, what process should be followed to remedy this?
What is a key advantage of the incremental development model?
What is a key advantage of the incremental development model?
What is a potential drawback of incremental development?
What is a potential drawback of incremental development?
What is the primary focus of integration and configuration in software development?
What is the primary focus of integration and configuration in software development?
What is a key step in 'Reuse-oriented software engineering' before adapting components or developing new ones?
What is a key step in 'Reuse-oriented software engineering' before adapting components or developing new ones?
What is a major disadvantage of 'Reuse-oriented software engineering'?
What is a major disadvantage of 'Reuse-oriented software engineering'?
Which of the following accurately describes the relationship between software processes and software process models?
Which of the following accurately describes the relationship between software processes and software process models?
If a software follows the waterfall model, how are real sequences of technical, collaborative and managerial activities organised?
If a software follows the waterfall model, how are real sequences of technical, collaborative and managerial activities organised?
How does the waterfall model organize the four basic process activities?
How does the waterfall model organize the four basic process activities?
Which design activity involves defining how data is structured and represented within a system?
Which design activity involves defining how data is structured and represented within a system?
What is the focus of interface Design?
What is the focus of interface Design?
In the testing stages, why is testing emergent properties particularly important in system testing?
In the testing stages, why is testing emergent properties particularly important in system testing?
What is the first stage in system evolution?
What is the first stage in system evolution?
In the context of managing changing software requirements, why does change often lead to rework?
In the context of managing changing software requirements, why does change often lead to rework?
What is the definition of debugging
What is the definition of debugging
What is the main benefit of obtaining customer feedback in development work?
What is the main benefit of obtaining customer feedback in development work?
Flashcards
Software Process
Software Process
A structured set of activities needed to develop a software system.
Specification
Specification
Defining what the system should do.
Design and Implementation
Design and Implementation
Defining the system's organization and its 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
Incremental Development
Incremental Development
Signup and view all the flashcards
Integration and Configuration
Integration and Configuration
Signup and view all the flashcards
Drawback of Waterfall Model
Drawback of Waterfall Model
Signup and view all the flashcards
Debugging
Debugging
Signup and view all the flashcards
Software Reuse
Software Reuse
Signup and view all the flashcards
Software Specification
Software Specification
Signup and view all the flashcards
Software Validation
Software Validation
Signup and view all the flashcards
Software Evolution
Software Evolution
Signup and view all the flashcards
Software Processes
Software Processes
Signup and view all the flashcards
Requirements Engineering
Requirements Engineering
Signup and view all the flashcards
Design and Implementation
Design and Implementation
Signup and view all the flashcards
Study Notes
- Software processes are structured activities for developing a software system.
Software Processes
- Specification involves defining what the system should do.
- Design and implementation involves defining the organization of the system and implementing it.
- Validation means checking that the system does what the customer wants.
- Evolution means changing the system in response to changing customer needs.
- Software process model is an abstract representation of a process.
- The abstract representation presents a description of a process from some particular perspective.
- Plan-driven processes plan all process activities in advance and measure progress against that plan.
- Agile processes incrementally plan, thus making it easier to change the process to reflect changing customer requirements.
- Most practical processes include elements of both plan-driven and agile approaches.
- There are no right or wrong software processes.
Software Process Models
- The waterfall model has separate and distinct phases of specification and development along with being a plan-driven model.
- Incremental development interleaves specification, development, and validation and can be plan-driven or agile.
- Integration and configuration assembles the system from existing configurable components and can be plan-driven or agile.
- Most large systems are developed using a process that incorporates elements from all the software process models.
Waterfall model phases
- Requirements analysis and definition
- System and software design
- Implementation and unit testing
- Integration and system testing
- Operation and maintenance
- A main drawback is difficulty accommodating change after the process is underway.
- In principle, a phase needs to be complete before advancing to the next phase.
- Inflexible partitioning of a project into distinct stages makes it difficult to respond to changing customer requirements.
- The model is appropriate when the requirements are well-understood and changes will be fairly limited during the design process.
- Few business systems have stable requirements.
- The model is mostly used for large systems engineering projects where a system is developed at several sites.
Incremental Development Benefits
- The costs of accommodating changing customer requirements is reduced.
- The amount of analysis and documentation that has to be redone is much less than is required in the waterfall model.
- Gaining Customer feedback is easier on the development work that has been done.
- Customers can comment on demonstrations of the software and see how much has been implemented.
- Rapid delivery and deployment of useful software to the customer is possible.
- Customers can use and gain value from the software earlier than is possible with a waterfall process.
Incremental Development Problems
- The process is not visible.
- Managers need deliveries to measure progress.
- If systems are developed quickly, creating documents that reflect every version of the system is not cost-effective.
- System structure tends to degrade as increments are added.
- Without time and money spent on refactoring the software, regular change tends to corrupt a system's structure.
- Incorporating further software changes becomes increasingly difficult and costly.
Integration and Configuration systems
- Based on software reuse, systems are integrated from existing components or application systems sometimes called Commercial-off-the-shelf (COTS) systems.
- The reused components can be configured to adapt their behaviour and functionality to a user's requirements.
- Reuse is a standard approach for building many types of business system.
- Reduced costs and risks with less software being developed from scratch.
- Faster delivery and deployment of system
- Requirements compromises are inevitable, so the system may not meet real needs of users.
- The process can cause loss of control over evolution of reused system elements.
Process Activities
- Real software processes involve inter-leaved sequences of technical, collaborative, and managerial activities with the overall goal of implementing/testing a software system.
- The four basic process activities of specification, development, validation, and evolution are organized based on the development processes being used.
- These are organized in sequence in the waterfall model, whereas they are interleaved in incremental development
Software Specification
- This establishes required services and the constraints on the system's operation and development.
Requirements engineering process
- Requirements elicitation and analysis answers what the system stakeholders require or expect from the system.
- Requirements specification defines the requirements in detail.
- Requirements validation checks the validity of those requirements.
Software Design
- Involves designing a software structure that realises the specification.
Implementation
- Implementation translates this structure into an executable program.
- Design and implementation are closely related and may be inter-leaved.
General Model of The Design Process
- Architectural design identifies the overall structure of the system, the principal components and how they are distributed.
- Database design involves designing the system data structures and their representation in a database.
- Interface design defines interfaces between system components.
- Component selection and design means searching for reusable components otherwise design how the components will operate.
System Implementation
- Software is implemented by either developing a program or programs or by configuring an application system.
- Design and implementation are interleaved activities for most types of software systems.
- Programming is an individual activity with no standard process.
- Debugging is the activity of finding and correcting program faults.
Software Validation
- Validation is intended to show a system conforms to its specifications and meets the customer's requirements.
- The process involves review processes and system testing.
- System testing entails executing the system with test cases derived from the specification of the real data to be processed by the system.
- Testing is the most commonly used validation activity.
Stages of Testing
- Component testing individually tests the components. -May involve using functions or objects of coherent groupings of these entities.
- System testing tests the system as a whole.
- Emergent properties are important.
- Customer testing uses customer data to check if the system meets the customer's needs.
Software Evolution
- Software is flexible and can change.
- Software evolution takes place when you change existing software systems to meet new requirements.
- Software must evolve to stay useful. As requirements change through changing business circumstances, software must also evolve and change.
- There has been less differentiation between development and evolution, as fewer systems are completely new.
Coping with change in projects
- Change anticipation includes anticipating possible changes before major rework is needed. -A prototype system may be developed to show some key features of the system to customers.
- Change tolerance designs the process, so that it can accommodate changes at a relatively low cost.
- Change requires rework, so the costs of change include rework as well as implementing new functionality.
- Incremental development is required.
- Proposed changes may be implemented in increments that have not yet been developed.
- Otherwise, a single increment may have to be altered.
- Processes should include activities such as prototyping and incremental delivery to cope with change.
Coping with change in system and software
- System Prototyping approach supports change anticipation.
- System prototyping quickly develops a version of the system or part of the system to check the customer's requirements and the feasibility of design decisions.
- Incremental delivery supports both change avoidance and change tolerance.
- Incremental delivery is an evolutionary strategy, where system increments are delivered to the customer for comment and experimentation.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Explore structured activities for software development, including specification, design, validation, and evolution. Learn about plan-driven and agile processes, and software process models. There are no right or wrong software processes.