Podcast
Questions and Answers
Which of the following activities is NOT typically part of a software process?
Which of the following activities is NOT typically part of a software process?
- Validation
- Specification
- Deprecation (correct)
- Evolution
A software process model is a concrete implementation of a specific software project's workflow.
A software process model is a concrete implementation of a specific software project's workflow.
False (B)
Besides activities and actions, what three elements can software process descriptions also include?
Besides activities and actions, what three elements can software process descriptions also include?
Products, Roles, Pre- and post-conditions
In the context of software processes, what do 'roles' primarily define?
In the context of software processes, what do 'roles' primarily define?
Agile processes require all process activities to be planned in advance, with progress strictly measured against this plan.
Agile processes require all process activities to be planned in advance, with progress strictly measured against this plan.
In ______ processes, planning is incremental and it's easier to change the process to reflect changing customer requirements.
In ______ processes, planning is incremental and it's easier to change the process to reflect changing customer requirements.
Match each process type with it's description.
Match each process type with it's description.
Which of the following is a characteristic of the Waterfall model?
Which of the following is a characteristic of the Waterfall model?
In the Waterfall model, it is easy to go back to previous phases once a later phase has started.
In the Waterfall model, it is easy to go back to previous phases once a later phase has started.
What are the names of the phases of the waterfall model?
What are the names of the phases of the waterfall model?
The Waterfall model is most appropriate when:
The Waterfall model is most appropriate when:
An advantage of the Waterfall model is that it easily accommodates changes to the requirements after the process is underway.
An advantage of the Waterfall model is that it easily accommodates changes to the requirements after the process is underway.
A major drawback of the waterfall model is the difficulty of accommodating ______ after the process is underway.
A major drawback of the waterfall model is the difficulty of accommodating ______ after the process is underway.
Match each feature to the software model that it belongs to.
Match each feature to the software model that it belongs to.
Which model breaks the system down into increments, with each increment adding a part of the required functionality?
Which model breaks the system down into increments, with each increment adding a part of the required functionality?
In the Incremental model, requirements for later increments are frozen once the development of an early increment begins.
In the Incremental model, requirements for later increments are frozen once the development of an early increment begins.
Name the activities of the incremental model.
Name the activities of the incremental model.
Which of the following is a primary benefit of using the Incremental Model?
Which of the following is a primary benefit of using the Incremental Model?
The incremental model avoids regular change.
The incremental model avoids regular change.
The list of features is defined from the beginning in the classical ______ model.
The list of features is defined from the beginning in the classical ______ model.
Match each scenario with the most appropriate model between Incremental or Evolutionary Model.
Match each scenario with the most appropriate model between Incremental or Evolutionary Model.
The Evolutionary model is best used when:
The Evolutionary model is best used when:
In Evolutionary Prototyping, all prototypes are built as 'throw away' prototypes.
In Evolutionary Prototyping, all prototypes are built as 'throw away' prototypes.
List the phases of the Evolutionary Models - Prototyping approach.
List the phases of the Evolutionary Models - Prototyping approach.
Which evolutionary model advantage allows stakeholders to see a working version of the software quickly?
Which evolutionary model advantage allows stakeholders to see a working version of the software quickly?
Stakeholders are always aware of the software limitations when looking at an early prototype.
Stakeholders are always aware of the software limitations when looking at an early prototype.
The ______ model couples the iterative nature of prototyping with controlled aspects of the waterfall model.
The ______ model couples the iterative nature of prototyping with controlled aspects of the waterfall model.
Match each category with its description.
Match each category with its description.
In the Spiral Model, what is the purpose of each pass through the planning region?
In the Spiral Model, what is the purpose of each pass through the planning region?
Cost and schedule are not adjusted with customer feedback in the spiral model.
Cost and schedule are not adjusted with customer feedback in the spiral model.
The spiral model uses what to help mitigate risks?
The spiral model uses what to help mitigate risks?
What is the basis of component-based development?
What is the basis of component-based development?
Reusing software is not a standard approach.
Reusing software is not a standard approach.
If component ______ becomes part of your organization's culture, reusability provides software engineers with a number of benefits.
If component ______ becomes part of your organization's culture, reusability provides software engineers with a number of benefits.
Match each system with it's use.
Match each system with it's use.
In reuse-oriented software engineering, what comes after software discovery?
In reuse-oriented software engineering, what comes after software discovery?
A disadvantage of reusability is that the system always meets the needs of the users.
A disadvantage of reusability is that the system always meets the needs of the users.
The Unified Process is a [blank] and [blank] development process:
The Unified Process is a [blank] and [blank] development process:
Each iteration results in an ______, which is a release of the system that contains added or improved functionality compared with the previous release.
Each iteration results in an ______, which is a release of the system that contains added or improved functionality compared with the previous release.
Match the Unified Process (UP) phases with their primary goals:
Match the Unified Process (UP) phases with their primary goals:
Agile software engineering focuses on:
Agile software engineering focuses on:
Agile software engineering favors processes and tools.
Agile software engineering favors processes and tools.
Flashcards
Software Process
Software Process
A structured set of activities required to develop a software system.
Specification
Specification
Defining what the system should do in a software process.
Design and implementation
Design and implementation
Defining the organization of the system and implementing it.
Validation
Validation
Signup and view all the flashcards
Evolution
Evolution
Signup and view all the flashcards
Products (Software Process)
Products (Software Process)
Signup and view all the flashcards
Roles (Software Process)
Roles (Software Process)
Signup and view all the flashcards
Pre- and post-conditions
Pre- and post-conditions
Signup and view all the flashcards
Plan-driven (Prescriptive) processes
Plan-driven (Prescriptive) processes
Signup and view all the flashcards
Agile processes
Agile processes
Signup and view all the flashcards
Waterfall Process Model
Waterfall Process Model
Signup and view all the flashcards
Incremental Process Model
Incremental Process Model
Signup and view all the flashcards
Evolutionary/Iterative Process Model
Evolutionary/Iterative Process Model
Signup and view all the flashcards
Waterfall model phases
Waterfall model phases
Signup and view all the flashcards
When to Use Waterfall Model
When to Use Waterfall Model
Signup and view all the flashcards
Waterfall Model Drawback
Waterfall Model Drawback
Signup and view all the flashcards
Incremental Model
Incremental Model
Signup and view all the flashcards
Difference of Incremental to Evolutionary models
Difference of Incremental to Evolutionary models
Signup and view all the flashcards
Incremental Model Activities
Incremental Model Activities
Signup and view all the flashcards
Evolutionary Models
Evolutionary Models
Signup and view all the flashcards
Prototyping Model
Prototyping Model
Signup and view all the flashcards
Spiral Model
Spiral Model
Signup and view all the flashcards
Component-Based Development
Component-Based Development
Signup and view all the flashcards
Component based development(CBD)
Component based development(CBD)
Signup and view all the flashcards
The Unified Process (UP)
The Unified Process (UP)
Signup and view all the flashcards
Agile
Agile
Signup and view all the flashcards
The Four Values of the Agile Manifesto
The Four Values of the Agile Manifesto
Signup and view all the flashcards
Agile Principles
Agile Principles
Signup and view all the flashcards
Study Notes
Software Engineering
- Agile Software Engineering includes agile methods, Scrum, and Extreme Programming.
Course Learning Outcome
- Course Learning Outcome 1 (CLO1) focuses on recognizing software engineering principles, life cycle phases, processes, and activities.
The Software Process
- A software process is a structured set of activities needed to develop a software system.
- Different software processes exist, but generally include:
- Specification: Defining what the system should do.
- Design and implementation: Defining the organization and implementing the system.
- Validation: Checking that the system meets customer needs.
- Evolution: Changing the system based on evolving customer needs.
- A software process model is an abstract representation of a process that describes it from a particular perspective.
Software Process Descriptions
- Process descriptions include activities or actions like specifying a data model or designing a user interface, including the order of these activities.
- The descriptions also include:
- Products: The outcomes of a process activity.
- Roles: The responsibilities of people involved in the process.
- Pre- and post-conditions: Statements true before and after a process activity.
Plan-Driven and Agile Processes
- Plan-driven (Prescriptive) processes plan all activities in advance, measuring progress against this plan.
- Agile processes plan incrementally, making process changes easier to meet changing customer requirements.
- Most practical processes utilize elements from both plan-driven and agile approaches.
- There is no single right or wrong software process.
Software Process Models
- The Waterfall Process Model is a plan-driven model with separate phases for specification and development.
- The Incremental Process Model is a plan-driven model with separate phases of specification and development in increments.
- The Evolutionary/Iterative Process Model is an iterative model that builds increasingly complete software versions, emphasizing risk management.
Waterfall Model Phases
- Requirements analysis and definition.
- System and software design.
- Implementation and unit testing.
- Integration and system testing.
- Operation and maintenance.
- Each phase is marked by milestones and deliverables, also known as artifacts.
When to Use Waterfall Model
- Works well for well-understood problems with minimal or no changes needed in the requirements.
- Easy to explain to customers.
Waterfall Model Drawback
- A key drawback is the difficulty to accommodate changes after starting the process.
- Each phase must be complete before moving to the next.
- It may be challenging for customers to explicitly state all requirements, and responding to changes is difficult due to the inflexible partitioning into distinct stages.
- It is suitable when requirements are well-understood and changes will be fairly limited.
Modified Waterfall
- This allows going back to previous phases and this opened the door for other iterative models
Incremental Model
- Instead of delivering a system as a single delivery, it is broken down into increments, each adding part of the functionality.
- Combines elements of linear and parallel process flow.
- Focuses on delivering an operational product with each increment.
- User requirements are prioritized and included in early increments. Once development starts on an increment, its requirements are frozen, but requirements for later increments can evolve.
Incremental Model Activities
- Choose features to include in an increment from the planned product features.
- Add details to feature descriptions for team understanding to enable implementation.
- Implement and test the chosen feature with automated tests to validate system behavior.
- Integrate the developed feature with the existing system, testing it to ensure proper functioning with other features.
- Deliver the system increment to the product manager for review; a version may be released for customer use if there are enough implemented features.
Incremental Model Benefits
- Reduced costs for accommodating changes to customer requirements.
- Easier to get customer feedback on development work.
- Rapid delivery and deployment of useful software.
- Higher priority system services receive more system testing.
- Reduced risk of overall project failure, compared to the waterfall model.
Incremental Model Problems
- System structure can degrade as new increments are added.
- Regular change corrupts its structure unless time and money are spent on refactoring.
- In the classical incremental model, the list of features is defined from the beginning.
Evolutionary Model
- Evolutionary models are iterative and develop increasingly complete software versions in increments.
- It is used when core or system requirements are well understood, but additional system requirements are not yet defined.
- Two common types of evolutionary process models are the Prototyping Model and Spiral Model.
Evolutionary Models - Prototyping
- Customers define general objectives without specific details for functions and features Or developers are unsure of the efficiency of an algorithm.
- The prototype can be "the first system,” but is evolutionary by it slowly evolves into the actual system.
- Users can feel the system and developers build something immediately.
Evolutionary Models - Prototyping Paradigm
- Begins with communication, where you will meet with stakeholders to outline overall software objectives, known requirements, and further definitions.
- Quick iteration and planning occurs.
- Quick design occurs through modeling.
- A prototype construction takes place once the quick design is done.
- The prototype is used by stakeholders who provide feedback for improvements.
- Iteration occurs to satisfy the differing stakeholders needs while understanding what needs to be done.
Evolutionary Models - Prototyping - Benefits
- Both Stakeholders and developers immediately improve the design before systems deployment.
Evolutionary Models - Prototyping - Drawbacks
- Stakeholders see working versions while the software quality is poor.
- The stakeholders did not consider overall software quality or long-term maintainability.
- Use of inappropriate OS, programming language or poor algorithm.
Evolutionary Models - Spiral
- Mixes prototyping iterative nature with the systematic parts of the waterfall model.
- It supports increasing software versions development.
- It is a risk-driven model, with 2 features:
- Cyclic nature for growing system's implementation while decreasing risks.
- It is a set of milestones for supporting commitment to solution.
Evolutionary Models - Spiral
- The first circuit iteration can create a product specification.
- Subsequent versions may create a prototype with more sophisticated software.
- All circuits can adjust to the project plan.
- All costs can be adjusted through customer feedback.
- Spiral models use prototyping for minimizing risk.
Specialized Process Model
- Component-Based Development
- Unified Process
Component-Based Development
- Involves software re-use by integrating existing components or application systems (Commercial-off-the-shelf or COTs).
- Reused elements can be customized for needs functionality.
- Re-use creates a standard for all types of business
Component Based Development
- The proper process to apply is when the use is a development process.
- Use already made components or use reused components
- Reusability helps developers reduce the development time to create software.
Types of reusable software
- Stand-alone application systems configured for a particular environment.
- Object Collections developed as a package integrated with component frameworks such as .NET or J2EE.
- Web services developed using standards available with remote invocation.
Reusability Advantages and Disadvantages
- Advantages:
- Reduced costs are created as less software is created from scratch.
- System deliveries are completed faster.
- Disadvantages:
- Requirements compromises are inevitable so the software may fail to meet some of the proper needs
- Losses of control of elements of reused systems.
The Unified Process (UP)
- The unified process is an iterative and incremental development process.
- Its Elaboration, construction and transition phases are timeboxes.
- Each iteration creates a new increment which is a new release of the current system
The Unified Process (UP) Phases
- Inception: Identify all business use-cases as requirements. Propose rough system architecture.
- Elaboration:
Refine and expand use-cases.
Expand the architecture into 5 views:
-Use-case model, analysis model, design model, implementation model & deployment model
- Construction: Develop and obtain initial software components for release.
- Transition: Give users beta to conduct necessary changes. Make support manual guides for troubleshooting.
- Production: Monitor all on-going uses and evaluate report defects.
Agile software engineering
- Software products must be brought to market quickly via rapid software development and delivery.
- The majority of software products are developed using agile approaches.
- Agile approaches deliver quickly, adapt based on specifications and minimize overheads.
Values of the Agile Manifesto
1 - individuals and interactions over processes and tools 2 - working software over documentation 3 - customer collaboration over contract negotiation 4 - responding for change
Agile Manifesto and Mindset
- Agile relies on a mindset of four values with 12 guidelines that have different approaches.
- All agile managers select based on the need.
Agile principles
- Satisfying customer through early and continuous delivery of valuable software
- Welcome changing requirements late in development.
- Deliver working software frequently (weeks to months with higher timeframe rate)
- Daily worker cohesion to developer and stakeholders.
- High environment with motivated teams
- Transparent in-person discussions.
- Working code is valuable
- Agile supports development and constant pace
- Continual attention and design
- Simplicity to maximize amount of work
- Team-led teams
- Regular team tuning
Agile Definition
- Agile is term for "Lean" with multiple varieties of Kanban.
Key points
- Software processes are producing systems.
- Software models are producing the systems.
- Traditional models describe the organizations.
- EX: waterfall
- Requirement engineering creates a software specification
Key points
- Transform an specifications to executable system by design and implementation.
- Software Validation inspects conformity by user needs.
- Software evolution can always change and remain useful.
- Implementation processes support prototyping and delivery for easier coping of changes.
Key points
- Processes build for iterative system delivery with changes disrupting the system from whole.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.