Podcast
Questions and Answers
The waterfall model is a __________ design process in which progress is seen as flowing steadily downwards through the phases of SDLC.
The waterfall model is a __________ design process in which progress is seen as flowing steadily downwards through the phases of SDLC.
- cyclical
- iterative
- sequential (correct)
- concurrent
Design phase is not one of the steps in a process model.
Design phase is not one of the steps in a process model.
False (B)
What is Prototyping defined as?
What is Prototyping defined as?
Prototyping is defined as the process of developing a working replication of a product or system that has to be engineered.
List the phases that each iteration passes through in the incremental model.
List the phases that each iteration passes through in the incremental model.
The spiral model is risk-driven software development process model.
The spiral model is risk-driven software development process model.
Which one of the following is not a values in the Agile Software Development Model?
Which one of the following is not a values in the Agile Software Development Model?
Which of the following is a feature of Extreme Programming (XP)?
Which of the following is a feature of Extreme Programming (XP)?
What are the four phases of Unified Process?
What are the four phases of Unified Process?
Which point is important to understand when choosing the best model out of all the different types of SDLC models?
Which point is important to understand when choosing the best model out of all the different types of SDLC models?
Which of the following is NOT a criteria for deciding on a model?
Which of the following is NOT a criteria for deciding on a model?
Flashcards
What is a Software Process Model?
What is a Software Process Model?
A process model that steps through the phases of a software product’s lifecycle.
Build-and-Fix Model
Build-and-Fix Model
An early, unsatisfactory software development model with no specifications or design phase, leading to difficult maintenance and high costs.
Waterfall Model
Waterfall Model
A sequential design process where progress flows steadily downwards through the phases of the SDLC.
Waterfall Model: Documentation
Waterfall Model: Documentation
Signup and view all the flashcards
Rapid Prototyping Model
Rapid Prototyping Model
Signup and view all the flashcards
Rapid Prototyping: Usage
Rapid Prototyping: Usage
Signup and view all the flashcards
Prototype and Waterfall
Prototype and Waterfall
Signup and view all the flashcards
Incremental Model
Incremental Model
Signup and view all the flashcards
Incremental Model Iteration Phases
Incremental Model Iteration Phases
Signup and view all the flashcards
Incremental Model: Benefit
Incremental Model: Benefit
Signup and view all the flashcards
Models: End Result
Models: End Result
Signup and view all the flashcards
Incremental Model: Output
Incremental Model: Output
Signup and view all the flashcards
Incremental Model iteration
Incremental Model iteration
Signup and view all the flashcards
Using Incremental Models
Using Incremental Models
Signup and view all the flashcards
When to use Incremental models
When to use Incremental models
Signup and view all the flashcards
Spiral Model
Spiral Model
Signup and view all the flashcards
Spiral Model guides
Spiral Model guides
Signup and view all the flashcards
Spiral Model: Risk Analysis
Spiral Model: Risk Analysis
Signup and view all the flashcards
Spiral Model phase
Spiral Model phase
Signup and view all the flashcards
Spiral Model phase
Spiral Model phase
Signup and view all the flashcards
When to Use Spiral Model
When to Use Spiral Model
Signup and view all the flashcards
Spiral Model: Cost
Spiral Model: Cost
Signup and view all the flashcards
When to use
When to use
Signup and view all the flashcards
Agile Software Engineering
Agile Software Engineering
Signup and view all the flashcards
Agile Approach
Agile Approach
Signup and view all the flashcards
Agile Guidelines
Agile Guidelines
Signup and view all the flashcards
Agile Methods: Important Values
Agile Methods: Important Values
Signup and view all the flashcards
What delivers...
What delivers...
Signup and view all the flashcards
What is Agile Process Models?
What is Agile Process Models?
Signup and view all the flashcards
Waterfall
Waterfall
Signup and view all the flashcards
An Agile method
An Agile method
Signup and view all the flashcards
Features of XP (Extreme Programming)
Features of XP (Extreme Programming)
Signup and view all the flashcards
What is Advantage of Agile?
What is Advantage of Agile?
Signup and view all the flashcards
Disadvantages of Agile Model
Disadvantages of Agile Model
Signup and view all the flashcards
When to use Agile?
When to use Agile?
Signup and view all the flashcards
Unified Process
Unified Process
Signup and view all the flashcards
Characteristics of Unified Process
Characteristics of Unified Process
Signup and view all the flashcards
Unified Process: Phases
Unified Process: Phases
Signup and view all the flashcards
Criteria to Deciding a Model?
Criteria to Deciding a Model?
Signup and view all the flashcards
Study Notes
Software Process Models Overview
- Process model or life-cycle model defines the steps a product progresses through
- Different process models include:
- Build-and-fix model
- Waterfall model
- Incremental model
- Evolutionary process models
- Rapid prototyping model
- Spiral model
- Agile process models
- Extreme programming
- Object-oriented life-cycle models
- Unified Process
- Criteria exist for determining which model to use
Software Process Model Stages
- Model includes stages such as:
- Requirements phase
- Specification phase
- Design phase
- Implementation phase
- Integration phase
- Maintenance phase
- Retirement
"Build-and-Fix" Model
- Prone to problems such as no specifications or design
- Ultimately deemed unsatisfactory
- Leads to high costs and difficult maintenance
Waterfall Model
- Sequential design process where progress flows steadily downwards through SDLC phases
- An example of a sequential model where software development is split into phases each with different tasks and objectives
- The pioneer of SDLC processes
- Characterized by feedback loops and documentation being key
Waterfall Model: Advantages
- Enforces a disciplined approach
- Documentation exists for each phase
- Products checked by SQA group at each phase
- Results in easier maintenance with every change reflected in documentation
Waterfall Model: Disadvantages
- Fully working software version unavailable until late in the project timeframe
- Specifications are lengthy, highly detailed, and in client-unfamiliar style
- "Blocking states" that cause delays when one team needs another to complete dependent tasks
Rapid Prototyping Model
- Develops functional product or system replication for engineering
- Provides a small-scale replica of the end product as a means to obtain customer feedback
- Prototypes are used in the requirements phase
- Prototypes are evaluated by the customer/user
- Prototypes are discarded rather than turned into the final product
Rapid Prototyping Model: Caveats
- Not a proven model with its own shortcomings
- Potential solution is to use rapid prototyping for requirement definition
- A waterfall model implementation can be used for the remainder of the life cycle
Incremental Model
- Software development process where requirements are broken down into standalone modules
- Each iteration goes through: requirements, design, coding, and testing
- Typical product takes between 5 and 25 iterations
- Models are delivered in portions
Incremental Model: Advantages
- Software is generated quickly during the life cycle
- Changes to requirements and scope are less costly
- Changes can be done throughout development
- Less costly compared to other models
- Customers can respond to each building increment
- Errors are easy to identify
Incremental Model: Disadvantages
- Requires good planning and designing
- System architecture problems may occur since not all requirements are collected up front
- Iteration phases are rigid and do not overlap
- Correcting a problem in one unit requires correction in all units
Incremental Model: Use Cases
- Requirements of the system are distinctly understood
- Demand exists for an early software release
- Software engineering teams are made up of less-skilled individuals
- High-risk features and goals are involved
- Commonly used for web applications and product-based companies
Spiral Model
- Risk-driven software development process model
- Teams adopt elements of incremental, waterfall of evolutionary prototyping depending on risk patterns
- Risk analysis done as risk mitigation strategy is planned and finalized
- Phases are preceded by alternative and risk analyses
- Phases are followed by evaluation and planning of next phase
Spiral Model: Use Cases
- Projects are large
- Frequent releases are required
- Prototype creation is applicable
- Risk/cost evaluation is important
- Medium to high-risk projects
- Requirements are unclear and complex
- Changes may be required at any time
- Long-term commitments are not feasible
Spiral Model: Advantages
- Functionality/changes can be done at a later stage
- Cost estimation is done in small fragments making it easier
- Repeated development helps in risk management
- Streamlined development and systematic feature additions
- Open to customer feedback
Spiral Model: Disadvantages
- Risk of not meeting the schedule or budget exists
- Only works for larger projects and requires risk assessment expertise
- Protocols must be followed strictly for smooth operation
- Robust documentation is required due to intermediate phases
- Not advisable for smaller projects
Agile Process Models
- Philosophy combines with development guidelines
- Philosophy:
- Promotes customer satisfaction through early, incremental software delivery
- Small, highly motivated development teams
- Informal methods
- Minimal software engineering work products
- Overall development simplicity
- Development guidelines:
- Prioritization of delivery over analysis and design
- Active and continuous communication between developers and customers
- Top Agile Process Models:
- Scrum
- Crystal Methodologies
- DSDM (Dynamic Software Development Method)
- Feature driven development (FDD)
- Lean software development
- Extreme Programming (XP)
Agile vs. Waterfall
- Agile proposes incremental iterative approaches to software design vs. waterfall sequentially flows from start to end
- Agile processes break down into individual models while waterfall does not design individual models
- Agile offers early and frequent opportunities to look at the product, waterfall is at end of project
- Agile considers less structured than waterfall, which is plan oriented
- Agile can be implemented quickly for small projects, while all sorts of projects can be completed in Waterfall
- Agile errors can be fixed in middle of project vs waterfall at the end of project
- Agile development iterative in short iterations (2-4 weeks) vs phased and larger iterations in waterfall
- Agile less priority on documentation vs waterfall which prioritizes documentation
Agile Model: Advantages
- Customer satisfaction through rapid, continuous software delivery
- Emphasis on individuals and interactions
- Frequent software delivery (weeks rather than months)
- Face-to-face communication
- Close, daily cooperation between business people and developers
- Regular adaptation to changing circumstances
- Welcomes late requirement changes
Agile Model: Disadvantages
- Difficult to assess needed effort at the beginning of life cycle
- Emphasizes the necessary designing and documentation
- The project can be taken off track if the customer is unclear
- Only experienced software engineers can make the decisions
Agile Model: Use Cases
- New changes need to be implemented
- Freedom to change is very important
- Developers can roll back and implement new feature in hours
- Stakeholders get greater freedom than rigid approaches
- Avoids project standstill
Extreme Programming (XP)
- New approach involving incremental model variance
- Determines client's desired features
- Estimate duration and cost per each feature
- Client then selects stories (features) for each successive build
- Tasks are divided into builds
- Test cases drawn up for each task
- Pair programming done with partner on one screen
- Continuous integration
Extreme Programing (XP): Features
- The computers will all be put in a room lined with cubicles
- The client is working with the team
- Individuals don't work more than two successive week over time
- No division of labor. Specification, design, code and testing can all be done be the team members.
- There is no design before builds – Refactoring
Unified Process
- Framework for OO (object-oriented) software engineering using UML (Unified Modeling Language)
- An attempt to use conventional software process models with agile principles
- Characteristics include:
- Iterative and incremental development framework
- Architecture-centric
- Risk-focused
- Use-case and UML model driven
Unified Process: Phases
- Inception: customer communication and planning activities, rough architecture, plan, and preliminary use-cases
- Elaboration: customer communication and modeling, refines/expands use-cases, expands architectural representation, and carefully reviewed/modified plan
- Contstruction: reflect the software increment, integrate activities
- Transition: end-users get software for beta testing
SDLC Method Selection
- Understand that models are suited for different projects/environments, and requirements
- Waterfall best for simple, straightforward projects with fixed requirements
- Iterative/spiral better for large-scale, multicomponent projects with several segments
- No one SDLC model is best on its own
- SDLC methodology should be selected by assessing stakeholder needs and fitting them to the tool
- Factors for deciding include:
- Product Complexity
- Product Size
- Magnitude of Changes
- Frequency of Changes
- Dev Team skills
- Time Constraints
- User Access
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.