Podcast
Questions and Answers
Which of the following is the primary characteristic of plan-driven software development processes?
Which of the following is the primary characteristic of plan-driven software development processes?
- Emphasis on rapid delivery and customer feedback with minimal planning.
- Incremental planning that adapts to changing customer needs.
- Detailed advance planning of all process activities and progress measurement against this plan. (correct)
- Flexibility to incorporate new technologies during the development cycle.
In the context of software process descriptions, what do 'pre- and post-conditions' define?
In the context of software process descriptions, what do 'pre- and post-conditions' define?
- The roles and responsibilities of the development team members.
- The statements that must be true before and after a process activity is enacted or a product is produced. (correct)
- The activities that must be completed before and after each phase of the project.
- The budget and timeline constraints for each stage of software development.
What is the primary goal of the 'validation' activity in a software process?
What is the primary goal of the 'validation' activity in a software process?
- Implementing the system's components.
- Checking that the system does what the customer wants. (correct)
- Defining what the system should do.
- Designing the organization of the system.
What is the most significant challenge associated with the waterfall model?
What is the most significant challenge associated with the waterfall model?
Which activity is unique to the 'operation and maintenance' phase of the waterfall model?
Which activity is unique to the 'operation and maintenance' phase of the waterfall model?
How does 'incremental development' address the limitations of the Waterfall model regarding changing customer requirements?
How does 'incremental development' address the limitations of the Waterfall model regarding changing customer requirements?
Which of the following is a potential problem associated with incremental development?
Which of the following is a potential problem associated with incremental development?
What is the primary focus of 'reuse-oriented software engineering'?
What is the primary focus of 'reuse-oriented software engineering'?
Which of the following is a key advantage of adopting a reuse-oriented approach to software development?
Which of the following is a key advantage of adopting a reuse-oriented approach to software development?
In 'reuse-oriented software engineering', what is the purpose of 'component analysis'?
In 'reuse-oriented software engineering', what is the purpose of 'component analysis'?
In software processes, what is the significance of 'software specification'?
In software processes, what is the significance of 'software specification'?
Which of the following activities is included in 'Requirements and Analysis' within software specification?
Which of the following activities is included in 'Requirements and Analysis' within software specification?
What is the primary focus of 'requirements validation' within the software specification process?
What is the primary focus of 'requirements validation' within the software specification process?
What is the main goal of 'software design' during software design and implementation?
What is the main goal of 'software design' during software design and implementation?
What are the key activities involved in 'design activities'?
What are the key activities involved in 'design activities'?
What is the purpose of 'Verification and Validation' (V & V) in software development?
What is the purpose of 'Verification and Validation' (V & V) in software development?
What does 'system testing' primarily involve?
What does 'system testing' primarily involve?
Which of the following best describes 'component testing'?
Which of the following best describes 'component testing'?
What triggers 'software evolution'?
What triggers 'software evolution'?
Which statement accurately reflects the nature of software?
Which statement accurately reflects the nature of software?
Flashcards
Software Process
Software Process
A structured set of activities required to develop a software system.
Software Process Model
Software Process Model
Abstract representation of a software process from a specific viewpoint.
Plan-driven processes
Plan-driven processes
Processes where all activities are planned in advance, and progress is measured against the plan
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
Reuse-Oriented Software Engineering
Reuse-Oriented Software Engineering
Signup and view all the flashcards
Requirements Analysis
Requirements Analysis
Signup and view all the flashcards
System and Software Design
System and Software Design
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 Specification
Software Specification
Signup and view all the flashcards
Architectural Design
Architectural Design
Signup and view all the flashcards
Database Design
Database Design
Signup and view all the flashcards
Interface Design
Interface Design
Signup and view all the flashcards
Debugging
Debugging
Signup and view all the flashcards
Software validation
Software validation
Signup and view all the flashcards
Component Testing
Component Testing
Signup and view all the flashcards
Customer Testing
Customer Testing
Signup and view all the flashcards
Software Evolution
Software Evolution
Signup and view all the flashcards
Study Notes
Software Processes Overview
- Software processes include activities for creating a software system.
- Software process models are abstract representations of these processes.
Software Process Descriptions
- Software process descriptions usually detail the activities and their ordering.
- Process descriptions may include products (outcomes), roles (responsibilities), and pre- and post-conditions (statements before/after activity).
Plan-Driven vs. Agile Processes
- Plan-driven processes plan all activities in advance, measuring progress against this plan.
- Agile processes use incremental planning, allowing easier adaptation to changing customer needs.
- Most practical processes combine elements of both approaches.
Software Process Models
- Waterfall Model: A plan-driven model with separate specification and development phases.
- Incremental Development: Specification, development, and validation are interleaved and can be plan-driven or agile.
- Reuse-Oriented Software Engineering: Systems are assembled from existing components and can be plan-driven or agile.
- Large systems often incorporate elements from multiple models.
The Waterfall Model
- A plan-driven model that has separate and distinct phases of specification and development
- It is appropriate to use when the requirements are well understood
Waterfall Model Phases
- Requirements analysis and definition: System services, constraints, and goals are established through user consultation.
- System and software design: Requirements are allocated to hardware or software systems, establishing an architecture.
- Implementation and unit testing: Software design is realized as programs or units; unit testing verifies specifications.
- Integration and system testing: Program units are integrated and tested to ensure requirements are met before delivery.
- Operation and maintenance: The system is installed and used; maintenance corrects errors, improves units, and enhances services.
Waterfall Model Problems
- A key drawback is the difficulty in accommodating changes once the process has started.
- Distinct project stages make it hard to adjust to changing customer needs.
- It is most suitable when requirements are well-understood and changes are limited.
- It's commonly used where a system is developed across multiple sites due to its plan-driven nature to coordinate work.
Incremental Development
- Specification, development and validation done concurrently in an iterative fashion
Incremental Development Benefits
- The cost of accommodating changing customer requirements is reduced since analysis and documentation is less.
- Customer feedback is more easily obtained.
- There is more rapid delivery and deployment of usable software.
Incremental Development Problems
- The process is not clearly visible.
- System structure can degrade as new increments are added, especially without refactoring
Reuse-Oriented Software Engineering
- It's based on integrating existing components or application systems (COTS).
- Process stages include: component analysis, requirements modification, system design and reuse, and development and integration.
- Reused elements are configured to meet user requirements.
- It's now standard for many business systems.
Types of Reusable Software
- Stand-alone application systems (COTS) configured for specific environments.
- Collections of objects developed as packages for integration with frameworks like .NET or J2EE.
- Web services developed according to service standards for remote invocation.
Reusable Software advantages
- Reduced costs and risks from less development from scratch
- Faster delivery and deployment
Reusable Software disadvantages
- Requirements may need to be compromised, so the system may not meet real user needs
- There is a loss of control over evolution of reused system elements
Process Activities
- Real software processes are sequences of technical, collaborative, and managerial activities.
- The goal is specifying, designing, implementing and testing a software system.
- The four basic activities are: specification, development, validation, and evolution differently organized based on chosen development processes
- For example in the waterfall model, they are in sequences, versus in incremental development they are interleaved.
Software Specification
- Software specification or requirements engineering establishes required services and constraints.
- Four main activities: feasibility study, requirements analysis, requirements specification, and requirements validation.
The requirements engineering process
- Has 6 steps
- Feasibility study towards requirements validation
- Requirements, models, and document are intermediate points.
Software Design and Implementation
- It's the process for converting system specifications into an executable system
- Involves software design to create a structure that realizes the specification
- Also involves implementation which translates this structure into an executable program
- These activities are closely related and interleaved.
Design Activities
- Architectural design: Identify system structure, components, relationships, and distribution.
- Database design: Design system data structures and database representation.
- Interface design: Define interfaces between system components.
- Component selection and design: Search for reusable components; if not found, design them.
System Implementation
- Software is implemented by programming or configuring an application.
- Design and implementation are interleaved for most software systems.
- Programming is an activity with no standard processes.
- Debugging is finding and fixing program faults.
Software Validation (V & V)
- Verification and validation ensures the system meets specifications and customer requirements.
- It includes checking, review, and system testing.
- System testing involves test cases from specifications that process real data.
- Testing is the most common V & V.
Stages of Testing
- Component testing: Testing individual components independently.
- System testing: Testing the system as a whole, focusing on emergent properties.
- Customer testing: Testing with customer data to meet customer needs.
Software Evolution
- Software is flexible and must change in response to evolving business requirements.
Key Points
- Design and Implementation includes transforming requirements specification into an executable software system
- Software Validation is the process of checking the system conforms to its specifications
- Software Evolution addresses the need to change existing software to meet new requirements
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.