(a) |
Explain, in your own words, why each of the
following three developments has led to increased demand for software and software
development :
- Home computing
- More powerful hardware
- Microprocessors in everyday devices
|
[6] |
|
- Home computing : as computer
hardware became cheaper, it also became affordable for households to own personal
computers. This led to software being developed not just for business uses, but also for
entertainment uses, home-business etc.
- More powerful hardware : as hardware
becomes more powerful, software must be written in order to make use of these newer
hardware features. A particularly good example would be in gaming software, which
frequently is the first type of software to make popular use of the newest computer
hardware advances.
- The use of microprocessors in
everyday appliances (e.g microwave ovens, lifts, cars) and in order to make them
intelligent: this necessitates the creation of software to drive the hardware appliance
itself.
|
|
(b) |
Explain carefully why the following statements
are often made:
- Prototyping leads to longer development time.
- 4th generation techniques are easy to use.
- Prototyping can be used for new projects.
- Classical method of development is a default methodology
that many software developers would adopt.
|
[8] |
|
- In the event that the customer
repeatedly changes his mind about requirements, despite seeing the prototype, the
continual creation and modification of the prototyping could lead to a waste of resources
and time.
- 4th generation techniques are
generally thought to be easy to use due to their ability to create systems and programs in
a non-procedural manner, and on intuitive platforms ( e.g graphical user interface based).
- The classical method of development
is well-established, and thus should have been well-expounded, discussed, and have
produced many possible variations to suit specific types of projects.
|
|
(c) |
Explain each of the following phases of the
classical development life-cycle:
- Systems engineering
- Software analysis
- Design
- Coding
- Testing
- Maintenance
|
[6] |
|
- Systems engineering : establishing
requirements for the entire system.
- Analysis : establishing requirements
for the software aspect of the system.
- Design : translating requirements to
a design/software representation.
- Coding : translating the
design/software representation to machine-readable forms.
- Testing : determines whether the
developed program matches established requirements.
- Maintenance : accommodation of
changes that need to be made to the software.
|
|