Evolution of Technology with Time
Computer Systems Engineering
Computer systems engineering is concerned with developing both hardware and software:
- Hence it encompasses software engineering.
- IBM System/360 – see Brooks (1995)
- Vending machines
- Mobile phones
- Games consoles
Software Engineering why bother?
To solve LARGE and/or COMPLEX problems using modern computer technology:
- There is an exponential growth in complexity, and hence difficulty, with software size;
- The ad hoc approach breaks down VERY quickly as software size increases.
Software engineers break large projects into smaller, more manageable parts…
- Which can be delivered within a short time.
To acquire the skills necessary to be a better software developer:
- Higher productivity.
- Lower cost.
- Better quality.
- First year programming exercises are trivial.
The Software crisis
Typically, software products:
- are expensive to develop, e.g. Win2000;
- are difficult to debug, e.g. WinNT3;
- are usually delivered late, e.g. Win2000;
- fail to meet user requirements, e.g. MS Word;
- crash frequently, e.g. Win95, Win98, WinNT4;
- are difficult to maintain, e.g. WinNT4 SP6;
- use resources non-optimally, etc, etc, etc….
Quality of Software
Depending on the type of software project the
qualities of software would be different.
e.g. Most systems should be reliable, functional
Some systems should be more reliable
e.g. Software running on the Space Shuttle
1.Complexity Increases
2.Work in Larger Teams
3.Quality of Software becomes more important
because of real users.
Relative cost of Hardware & Software
Featured Articles
إرسال تعليق