(a) |
Define what is meant by software reliability. |
[2] |
|
Software reliability
is the probability of failure free operation of a computer program in a specific
environment for a specific time. |
|
(b) |
McCall proposes a categorisation
that focuses on three important aspects of a software product, namely product operations,
product revision, and product transition. Describe each of these three aspects. In
addition, identify an example of a factor in each aspect. |
[6] |
|
Product
Operation
Refers to how well software operates, i.e. its operational characteristics. An example of
a characteristic is Integrity.Integrity : Refers to the extent to which the access of programs and data
by unauthorized people can be controlled.
Product revision
Refers to how easily software can be changed, modified or altered. Example is
maintainability.
Maintainability : The effort
required to locate and fix an error is a program.
Product transition
Refers to how well software can operate in another environment, and the effort required to
make modifications where necessary to suit this new environment. Example of a
characteristic would be interoperability.
Interoperability
The effort required to interface the software to another system.
|
|
(c) |
The implementation of Software
Quality Assurance (SQA) is not something that is taken lightly in today's organizations.
Write a short report discussing the following aspect in a possible implementation of SQA. |
[12] |
|
(i) Whether today's organizations
(management) are reluctant to implement SQA in the first place, and any possible reasons
behind their reluctance; |
|
|
- Managers are reluctant to incur the
extra upfront cost :
such upfront cost may not be budgeted in software development, and thus exist as
expenditure of resources that managers may not be ready for. Typically, incurring such
costs would exceed preplanned budgets.
- Everyone wants to avoid the
'red-tape' that SQA is perceived to introduce.'Red-tape' means that the extra
administrative activities that need to be performed as SQA involves a lot of paper work.
New procedures to determine that software quality is correctly being implemented would
need to be developed, followed through, and then verified by external auditing bodies.
These require an immense amount of administrative workload.
|
|
|
(ii) The benefits that
implementation of SQA would bring about; |
|
|
- Higher reliability will result in
greater customer satisfaction : as software development is essentially a business
transaction between a custome and developer, customers will naturally tend to patronize
the services of the developer again if they are satisfied with the product.
- Overall life cycle cost of software
reduced.
As software quality is performed to ensure that software is conformance to certain
requirements and standards. The maintenance cost of the software is gradually reduced as
the software requires less modification after SQA. Maintenance refers to the correction
and modification of errors that may be discovered only after implementation of the
program. Hence, proper SQA procedures would identify more errors before the software gets
released, therefore resulting in the overall reduction of the life cycle cost.
|
|
|
(iii) The constraints that SQA would
bring to the organization. For each aspect, you
should describe in some detail at least two distinct points of information. |
|
|
- Difficult to institute in small
orgranisations where available resources to perform the necessary activities are not
present. Smaller organizations tends not to have the required resources like manpower,
capital etc to assist in the process of SQA.
- In addition, SQA requires the
expenditure of dollars that are not otherwise explicitly budgeted to software engineering
and software quality. The implementation of SQA involves immediate upfront costs, and the
benefits of SQA tend to be more long-term than short-term. Hence, some organizations may
be less willing to include the cost of implementing SQA into their budget.
|
|