1 - Intro Flashcards
(37 cards)
Big problem with modern software?
Needs to be updated regularly to fix bugs and issues
Bugs in past for software development
Relatively rare cause of failure
Most common failure?
Building wrong system
Difficult to find customer requirements, more difficult as system becomes larger
Cost of developing software
Cheap to duplicate
Expensive to design
Where is most of the software work
Design, not manufacturing
Labor intensive and craft activity
Automating software creation
Very difficult to automate design activity
Can create better tools for designers
Cost of developing software vs copies sold
Largely indepedent, it is a high risk activity
Software complexity
Can be very complex
Difficult to understand exactly how it works
Relatively easy to modify
Relatively easy to create software that appears to work
Hard to show it does everything it should do
Main way of testing?
Using different input values
There are so many, impossible to test all
Estimating how much work to create software
Very difficult to price in advance
First 90% takes 90% of the time, second 90% takes remaining 90%
Quoting price for software
Quote lowest price and increase later when you know more about work involved
Wear and tear of software
Does not wear out
Finding bugs after release
User experience
Continued testing
In-direct changes to operation of software
Changes to OS and supporting programs
Making corrections to released software
Consistency of design deteriorates
New defects are introduced
Software after a length of time
Will eventually stop working due to changes in OS, runtimes etc
Making small pieces of software
Possible to do this with almost any approach
Making larger software
Most approaches of software dev don’t scale up
Reaches and stays “almost working” state
Becomes difficult to understand and change
Software development market
Very competitive
Getting new software to market first
Will get most of the sales
Latecomer bringing the “best” software to market
Often won’t make as much money as those who done it first
Quality of software to sell it
Just has to be “good enough”
“best” is enemy of “good enough”
After selling software
Many bugs will still have to be fixed after product is sold
Patch cycle
Types of software - Custom
Developed to solve specific problem
Air traffic control