#Computer-Science#CS307#Software
- IEEE definition of software - computer programs procedures and possibly associated documentation and data pertaining to the operation of a computer system
- nature of software - software is intangible - hard to understand or explain the development effort required - software is easily reproducible - cost is in its development. in other engineering products manufacturing is often the costly stage - software development is labor intensive - Its difficult to automate the creation of software
- Untrained people can hack something together pretty quick generally
- Qualitiy problems may be hard to determine
- Software is easy to modify
- Can mean people make changes without fully understanding the effects
- Software does not “wear out”
- It deteriorates by having its design changed for one reason or another
- Demand for software is high and rising
- Producing quality software is STILL a challenge
- Software should be “engineered”
- Not just hacked together
Types of Software
- Applications
- Business, CAD, databases, spreadsheets, simulations, video games, word processors
- Compilers, middleware
- System
- Operating systems
- Device Drivers
- Privileged Utilities
- Embedded
- Firmware
- Microcode
- Real Time
- Control and monitoring
- Must react within some delta T
- Often safety critical
Development
- Custom
- For a specific customer
- Generic
- Sold on open market
- Commerical off the shelf
- Shrink wraped
- Embedded
- Tied closely to hardware
- Harder to modify