Lessons 3-4 Flashcards
What is SDLC?
Software Development Life Cycle
What are the 7 Phases of SDLC?
- Identifying problems, opportunities, and objectives
- Determining human information requirements
- Analyzing system needs
- Designing the recommended system
- Developing and documenting software
- Testing and maintaining the system
- Implementing and evaluating the system
What are the 5 phases of SDLC? (Process Flows) R. Pressman, SE 7th Ed
- Communication
- Planning
- Modeling
- Construction
- Deployment
What are the 4 kinds of Process Flows?
- Linear Process Flow
- Iterative Process Flow
- Evolutionary Process Flow
- Parallel Process Flow
What are the Sequential/Prescriptive Process models?
- Waterfall Model
- V-model
What are the Evolutionary/Iterative/Incremental Process Models?
- Incremental Model
- Spiral Model
- Prototyping
What are the other terms for the Waterfall Model? (other names)
- Linear-sequential life cycle model
- Classic Life Cycle
What does the Classic life cycle suggest?
It suggests a systematic sequential approach to software development
Each phase must be completed before the next phase can begin and there is no overlapping in the phases.
Waterfall Model
Who created the Original Waterfall Model?
Winston Royce, 1970
What types of systems are appropriate for the waterfall model?
- Embedded systems
- Critical Systems
- Large Software Systems
Waterfall Model Appropriate System
There are some issues which come up in the client environment. To fix those issues, patches are released. Also to enhance the product some better versions are released. Maintenance is done to deliver these changes in the customer environment.
Embedded Systems
Waterfall Model Appropriate System
where there is a need for extensive safety and security analysis of the software specification and design
Critical Systems
Waterfall Model Appropriate System
that are part of broader engineering systems developed by several partner companies
Large Software Systems
What are the 6 phases in the Waterfall Model?
- Requirement Gathering and Analysis
- System Design
- Implementation
- Integration and Testing
- Deployment of system
- Maintenance
Waterfall Model Phase
All possible requirements of the system to be developed are captured in this phase and documented in a requirement specification document
Requirement Gathering and analysis
Waterfall Model Phase
The requirement specifications from first phase are studied in this phase and the ________ is prepared. ________ helps in specifying hardware and system requirements and helps in defining the overall system architecture.
System Design
Waterfall Model Phase
With inputs from the system design, the system is first developed in small programs called units, which are integrated in the next phase. Each unit is developed and tested for its functionality, which is referred to as Unit Testing.
Implementation
Waterfall Model Phase
All the units developed in the implementation phase are integrated into a system after testing of each unit. Post integration the entire system is tested for any faults and failures.
Integration and Testing
Waterfall Model Phase
Once the functional and non-functional testing is done; the product is deployed in the customer environment or released into the market.
Deployment of system
Waterfall Model Phase
There are some issues which come up in the client environment. To fix those issues, patches are released. Also to enhance the product some better versions are released. This is done to deliver these changes in the customer environment.
Maintenance
Illustrates how verification and validation actions are associated with earlier engineering actions
V-Model
Depicts the relationship of quality assurance actions to the actions associated with communication, modeling, and early construction activities
V-Model
How does the V-Model work?
As a software team moves down the left side of the V, basic problem requirements are refined into progressively more detailed and technical representations of the problem and its solution.
Once code has been generated, the team moves up the right side of the V, essentially performing a series of tests (quality assurance actions) that validate each of the models created as the team moved down the left side
A software project repeatedly passes through these phases in iterations
Spiral Model
Who created the Spiral Model?
Boehm, 1988
In the spiral model, what is term for “ repeatedly passes through these phases in iterations”?
Spirals
Combines change avoidance with change tolerance
Spiral Model
Assumes that changes are a result of project risks and includes explicit risk management activities to reduce these risks
Spiral Model
What are the phases for the Spiral Model?
- Objective setting
- Risk assessment and reduction
- Development and validation
- Planning
Spiral Model Phase
Specific objectives for that phase of the project are defined
Objective Setting
Spiral Model Phase
Constraints on the process and the product are identified and a detailed management plan is drawn up
Objective Setting
Spiral Model Phase
Project risks are identified
Objective Setting
Spiral Model Phase
Alternative strategies, depending on these risks, may be planned
Objective Setting
Spiral Model Phase
For each of the identified project risks, a detailed analysis is carried out
Risk Assessment and Reduction
Spiral Model Phase
Steps are taken to reduce the risk
Risk Assessment and Reduction
Spiral Model
After risk evaluation, a development model for the system is chosen
Development and Validation
Spiral Model Phase
The project is reviewed and a decision made whether to continue with a further loop of the spiral
Planning
Spiral Model Phase
If it is decided to continue, plans are drawn up for the next phase of the project
Planning
building software application prototypes which displays the functionality of the product under development, but may not actually hold the exact logic of the original software
Prototyping
enables to understand customer requirements at an early stage of development
Prototyping
helps get valuable feedback from the customer and helps software designers and developers understand about what exactly is expected from the product under development
Prototyping
What are the 4 Types of Prototyping?
- Throwaway Prototyping/rapid or close ended prototyping
- Evolutionary Prototyping/breadboard prototyping
- Incremental Prototyping
- Extreme Prototyping
Type of Prototyping
uses very little efforts with minimum requirement analysis to build a prototype
Throwaway Prototyping
Type of Prototyping
once the actual requirements are understood, the prototype is discarded and the actual system is developed with a much clear understanding of user requirements
Throwaway Prototyping
Type of Prototyping
based on building actual functional prototypes with minimal functionality in the beginning
Evolutionary Prototyping
Type of Prototyping
the prototype developed forms the heart of the future prototypes on top of which the entire system is built
Evolutionary Prototyping
Type of Prototyping
the well-understood requirements are included in the prototype and the requirements are added as and when they are understood
Evolutionary Prototyping
Type of Prototyping
refers to building multiple functional prototypes of the various sub-systems then integrating all the available prototypes to form a complete system
Incremental Prototyping
Type of Prototyping
used in the web development domain
Extreme Prototyping
Types of Prototyping
This process is used to draw attention to the second phase of the process, where a fully functional UI is developed with very little regard to the actual services
Extreme Prototyping
What are the three phases of Extreme Prototyping?
- basic prototype with all the existing pages is presented in the HTML format
- the data processing is simulated using a prototype services layer
- the services are implemented and integrated to the final prototype
based on the idea of developing an initial implementation, exposing this to user comment and evolving it through several versions until an adequate system has been developed
Incremental Model
specification, development, and validation activities are interleaved rather than separate, with rapid feedback across activities
Incremental Model
a fundamental part of agile approaches
Incremental Model
better than a waterfall approach for most business, e-commerce, and personal systems
Incremental Model
it is cheaper and easier to make changes in the software as it is being developed
Incremental Model
```
~~~
The basic idea behind this method is to develop a system through repeated cycles and in smaller portions at a time, allowing software developers to take advantage of what was learned during development of earlier parts or versions of the system
Iterative and Incremental Model
What does WBS mean?
Work Breakdown Structure
What is WBS?
A repeatable process that can be used as a template for future projects
How is WBS used?
1) effectively decompose the project scope
2) improve estimating
3) better control the project execution and
4) more accurately verify project completion
Why should you use GANTT charts for project scheduling?
- an easy way to schedule tasks
- bars represent each task or activity
- the length of each bar represents the relative length of the task
Who invented GANTT charts?
Henry Gantt
What are the advantages of using GANTT charts?
- main advantage: simplicity
- Another advantage: the size of the bar indicates the relative length of time it will take to complete each task
What does PERT mean?
Program Evaluation and Review Techniques
When and how was PERT developed?
Developed in the late 1950s for use in the US Navy’s Polaris nuclear submarine project
Represented by a network of nodes and arrows that are then evaluated to determine the critical activities, improve the schedule if necessary, and review progress once the project is undertaken
PERT Diagram