Test 1 Flashcards
Lectures 1 - 7
What is Software Engineering?
“the application of a
systematic, disciplined,
quantifiable approach to
the development,
operation, and
maintenance of software”
Correctness
- lack of bugs and defects
▪ measured in terms of defect rate (# bugs per line of code)
Reliability
- does not fail or crash often
▪ measured in terms of failure rate (#failures per hour)
Capability
- does all that is required
▪ measured in terms of requirements coverage
(% of required operations implemented)
Maintainability
- is easy to change and adapt to new requirements
▪ measured in terms of change logs (time and effort required to add a new feature)
and impact analysis (#lines affected by a new feature)
Performance
- is fast and small enough
▪ measured in terms of speed and space usage (seconds of CPU time, Mb of
memory, etc.)
Why do we care about bugs?
Cheaper and easier to find early on in the program, harder and more expensive to find once released.
Usability
- is sufficiently convenient for the intended users
▪ measured in terms of user satisfaction (% of users happy with interface
and ease of use)
- is convenient and fast to install
▪ measured in terms of user satisfaction (#install problems reported per
installation)
Installability
Documentation
- is well documented
▪ measured in terms of user satisfaction (% of users happy with
documentation)
Availability
- is easy to access and available when needed
▪ measured in terms of user satisfaction (% of users reporting access
problems)
Three General Principles of QA
- Know what you are doing
- Know what you should be doing
- Know how to measure the difference
Name 5 Causes of Software Errors?
- Faulty definition of requirements
- Client-developer communication failures
- Deliberate deviations from software requirements
- Logical design errors
- Coding errors
- Non-compliance with documentation and coding instructions
- Shortcomings of the testing process
- Procedural errors
- Documentation errors
Name the 4 Fundamental Process Activities
Specification
Development
Validation
Evolution
6 Steps of the Waterfall Method
(1) Requirements Analysis and Definition
(2) System and Software Design
(3) Implementation and Unit Testing
(4) Integration and System Testing
(5) Operation and Maintenance
(6) Retirement and Decommissioning
Name 2 Drawbacks to Waterfall Method
Early Freezing and Inflexible Partitioning
Most common reason Waterfall failes
most failures are due to inadequate requirements
understanding
What are the 6 steps to the prototype method
(1) Requirements Gathering and Analysis
(2) Quick Design
(3) Build Prototype
(4) Customer Evaluation
(5) Design Refinement
(6) Full-Scale Development
Drawbacks to the Prototype method (3)
Wasted Work
Inadequate or Incomplete Prototypes
When to Stop Iterating
What are the steps spiral?
Each layer has:
▪ Determine Objectives
▪ Assess and Reduce Risks
▪ Develop and Validate
▪ Review and Plan
Drawbacks to the spiral method?
Heavyweight Process
Not Really a Development Model
Depends on Risk Analysis
Not for Novices
The Iterative Development Model is a ______ ________ Method
Subset Development
What is the iterative development model proccess?
Domain Analysis
Software
Architecture
ITERATION:
Risk Assessment
Develop Test
Suite OR Prototype
Highest Risk
Integrate with
Previous
Release
Drawbacks to the iterative process.
Needs Small Team
Needs Early Architecture