Gee Ch7-Computer Reliability Lecture
Gee Ch7-Computer Reliability Lecture
Disfranchised Voters
November 2000 general election
Florida disqualified thousands of voters
Reason: people identified as felons (with criminal charges)
Cause: incorrect records in voter database
Consequence: may have affected election’s outcome
VALIDATING SIMULATIONS
- Erroneous simulation because of
Bugs in SW
Model uses SW is flawed
- Solutions:
Verification: Does program correctly implement model?
Validation: does the model accurately represent the real system
- Validation methods
Make prediction, wait to see if it comes true (car crash)
Predict the present from old data (weather forecast)
Test credibility with experts and decision makers (acceptance form from the expert)
SOFTWARE ENGINEERING
- SE is a four step process:
1.) Specification: determine the functions to be performed (xrs – would lease all functionalities included in
the system)
2.) Development: produce SW that meet specs
3.) Validation: testing the SW (needs that the person assigned here is very meticulous)
4.) Evolution: modify SW to meet change requirements
SPECIFICATION:
- Followed SW Crisis in 1960s
- Specification of software
Understand constraints
Determine feasibility (budget and schedule)
- End products
High-level statement of requirements (Summary)
Mock-up of user interface
Low-level requirements statement (detailed)
DEVELOPMENT:
- Create high-level design
- Discover and resolve mistakes, omissions in specifications
- CASE tools to support design process (ex. gant chart)
- Object-oriented systems have advantages
- After detailed design, actual programs written
- Result: working software system
VALIDATION (TESTING)
- Ensure software satisfies specification
- Ensure software meets user’s needs
- Challenges to testing software
Noncontinuous responses to changes in input. No identical data set of inputs
Exhaustive………….
SHRINKWRAP WARRANTIES
- Some say you accept software “as is”
- Some offer 90-day replacement or money back guarantee
- None accept liability for harm caused by use of software