Beginning Flashcards
Software Development Life-Cycle
Process followed for a software project. Consists of detailed plan describing how to develop, maintain, replace and alter or enhance specific software.
The software process model
Abstract representation of a process
Specification
Identifies a necessary attribute, capability, characteristic, or quality of a system in order for it to have value and utility to a user.
Design
Implementation of specification in code form. The part where SE program the code for the project.
Validation
Testing portion of software process. Deals with detection of errors and bugs.
Evolution
Process of removing errors and bugs to better refine the code of the project, then repeatedly updating.
Things that determine the model to use:
Budget
Time
Resource Constraints
Complexity
Describe the Waterfall Model.
Sequential(non-iterative) design process, used in software development processes, in which progress is seen as flowing steadily downwards through distinct phases of specification and development.
What are the phases of the waterfall model?
- Requirement Analysis
- System Design
- Implementation
- Testing
- Deployment
- Maintenance
What are drawbacks of the waterfall model?
It has difficulty accommodating change after process if underway. One phase has to be complete before moving onto the next phase.
Evolutionary Development
Initially a rapid version of the product is being developed and then product is developed to more accurate version with the help of the reviewers who review the product after each release and submit improvements. Specification, development, and validation are interleaved.
Exploratory Development
Planning and reviewing potential scenarios and approaches until the one that appears to be optimal is selected.
Throw-away prototyping
Small part of system is developed and then given to end users to try out and evaluate. User feedback can be quickly be incorporated into the development of the main system. Prototype is then discarded or thrown away.
Component-based Software Engineering
Process that assembles a project from existing software programs. Based on systematic reuse where systems are integrated from existing components
Iterative Model
Start with simple implementation of small set of software requirements and iteratively enhance the evolving versions until the complete system is implemented and ready to be deployed.