A Product
- Computing potential itself
- What the machine can actually do for someone
A Delivery Vehicle
- Operating systems, networks and development tools that carry other products
Software is an Information changer
it manages, produces, modifies, displays, and transfers information,
from a single bit to full multimedia
- Decide what is being build, and for whom
- Discipline, not improvisation
- Handle the difficulties nobody predicted
Step 3 is where most software project are won or lost.
- Instructions that tells the computer what to do
- Sets of instructions written using predefined formats and procedures
- For a wider market, requirements are common, stable, well understood
- Example: Operating System Software (OS)
- For one customer, domain, environment, requiremente are unique
- Example: Application Software for a specific client
- Progams, Languages and Documentations
- Supplied by the manufacturer for computer's own use
- OS, BIOS, Compilers
- Built by professionals for a specific function
- "user-based software"
- payroll, banking, embedded
- Support software used in developing other programs
- debuggers, interpreters
- Did it return more than it cost?
- Can we use it, and does it hold up?
- Can we live with this code next year?
- Customer satisfaction, achieved within cost and budget constraints
| Generation |
Hardware |
Software |
| 1st1944-1955 |
Vacuum tubes |
Machine language |
| 2nd1956 |
Transistors |
Symbolic language |
| 3rd1964-1970 |
Integrated circuits |
High-level: FORTRAN, ALGOL |
| 4th1971-1990 |
Large-scale ICs |
PL/I, BASIC, PASCAL |
| 5th1990+ |
Very large-scale integration |
C, C++, Visual Basic, FoxPro, DBMS, Prolog, LISP |
| Timely produced |
User-friendly |
Reliable |
| Cost-effective |
Portable |
Versatile |
| Inter-operable |
Maintainable |
Reusable |
GO BACK