#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