Exam 1 Study Flashcards
What is the definition of software engineering?
A discipline whose aim is the production of fault free software, delivered on-time, within budget and that satisfies the clients needs.
What are three criteria of a successful software project?
on-time
budget
satisfies clients needs
6 Stages of Classical Waterfall Model
- Requirements Phase
- Analysis Phase
- Design Phase
- Implementation Phase
- Post-delivery Maintenance
- Retirement
Temporal Maintenence
In the temporal model the activities defined as maintenance are define as such because they occur after development.
8 Principles of Software Engineering
Public Client Product Judgment Management Profession Colleagues Self
Benefits of incremental process
Generates working software quickly
More flexible
Easier to test and debug
Easier to manage risk
Disadvantages of incremental process
Rigid phases cannot overlap
not all requirements are known upfront
What is a specification?
a specification defines what the software should do.
What is design?
The process of turning requirement specification into a design model
What actions are performed during implementation?
code is generated and tested
What is the purpose of testing?
identifying bugs
Plan Driven
All activities are specified in advance
A project management process with no detailed plan, that uses incremental development
Agile
Refactoring
re-organizing code to make it simpler, straightforward and satisfactory
5 Core workflows of iterative model
Requirements Workflow Analysis Workflow Design Workflow Implementation Workflow Test Workflow
List 9 Life Cycle Development Models
Evolution Tree Model Iterative and Incremental Life Cycle Model Code and Fix Life Cycle Model Waterfall Life Cycle Model Rapid Prototyping Life Cycle Open Source Life Cycle Model Agile Processes Synchronize and Stabilize Life Cycle Model Spiral Life Cycle Model
Planning Phase Activities
Preliminary Planning
Software Project Management Plan
Monitor SPMP
What is pair programming?
a programming process where two programmers alternate typing every 15 minutes. One programmer generates code the other checks the code as it is being generated.
Millers’ Law
human beings are only capable of concentrating on 7 pieces of information at a time.
What are the pros of the Iterative Incremental Software Development model?
Defects are spotted early Robustness can be determined early Early risk detection/mitigation Always have working version of software Empirical Evidence supports it
Negatives of the Iterative Incremental Software Development model?
Phases are rigid and do not overlap
More project management required
Difficult to predict the project completion date