UNIVERSITY EXAMINATIONS: 2011/2012
THIRD YEAR EXAMINATION FOR THE BACHELOR OF
SCIENCE IN INFORMATION TECHNOLOGY
BIT 4201 ADVANCED SOFTWARE ENGINEERING
DATE: AUGUST, 2012 TIME: 2 HOURS
INSTRUCTIONS: Answer Question ONE and any other TWO
QUESTION ONE
a) Outline two specific laws of Software Evolution as formulated by Lehman and
discuss the empirical evidence supporting the validity of each law. (4 Marks)
b) For each of the key phases of the software development life cycle, discuss the key
features and practices that distinguish the Extreme Programming approach to
software development from traditional software development. (6 Marks)
c) Discuss the importance of the following activities in software engineering
(8 Marks)
i. Project Management
ii. Risk management:
iii. Configuration Management
iv. Quality management: uses quality assurance and control of processes as
well as products to achieve more consistent quality.
d) Using relevant examples discuss the levels and types of requirements (3 Marks)
e) Discuss the advantages of using formal specification languages (5 Marks)
f) Identifying and considering the needs of all of the different stakeholders can help
prevent software product requirements from being overlooked. Explain (4 Marks)
QUESTION TWO
a) Why is random testing insufficient even for relatively small programs? (2 Marks)
b) Unit testing is the process of testing a single program unit (e.g. a procedure) in
isolation from the rest of the program. How would you go about choosing test
cases for unit testing? (4 Marks)
c) Integration testing can be tacked top-down or bottom-up. Describe each of these
strategies. Why is integration testing harder than unit testing? (4 Marks)
d) Explain the purpose of each of the following. What types of error is each likely to
find?
i. Endurance testing
ii. Recoverability testings
iii. Regression testing
(6 Marks)
e) The company you work for develops internet applications. To reduce time to
market, the company is considering dispensing altogether with integration testing.
Instead, the company plans to rely on Beta testing, in which free trial versions of
new software will be sent to existing, trusted customers to try out, with the
agreement that they will report any problems they encounter. What are the
advantages and disadvantages of this approach? (4 Marks)
QUESTION THREE
Below is the draft specification for a proposed software system:
“A program is required to run the controller of a burglar alarm system. A typical system
consists of a number of sensors connected by individual circuits to a central control box
containing the controller. The control box has a simple keypad and display. Sensors
include switches, heat detectors and motion detectors. Each sensor has an identification
code which can be read by the controller to identify the sensor. The controller allows an
operator to select which sensors are active and turn on or off the system. If a sensor is
triggered when the system is active, the controller must activate the alarms (a siren and a
bell) and display a message on the display panel
indicating which sensor is involved. The operator must enter a security code before the
system is turned on or off.”
a) Create a detailed UML class diagram for the alarm program. Make sure each class
Is labelled with any key attributes or operations. (10 Marks)
b) Create UML sequence diagrams to show how the program responds to an alarm
being triggered, and how the operator can turn the system off. (10 Marks)
QUESTION FOUR
a) A software architecture describes a high-level design view of a software system.
What are the advantages of explicitly describing the architecture independently
from the implementation? (4 Marks)
b) Pipe-and-filer architectures treat a task as a series of processing steps, such that
the output of one step forms the input of the next step. Give an example of a pipe-
and-filter system and describe the advantages and disadvantages of this style?
(6 Marks)
c) Object oriented architectures can be difficult to develop because each object
needs to know which other objects exist and how to call their methods. This
limitation can be overcome using implicit invocation. Describe how an implicit
invocation scheme works, and give two examples of its use. (4 Marks)
d) An architectural description language (ADL) is a general purpose language for
Describing software architectures. What kinds of basic components and basic
connectors would you expect an ADL to provide? What advantages are there in
using an ADL? (6 Marks)
QUESTION FIVE
a) Your company has just acquired a smaller company that sells office automation
software. The smaller company’s spreadsheet software has a large market share,
with many satisfied users (A major reason for the acquisition was that these
existing users are potential customers for your company’s other products).
Unfortunately, no documentation for the spreadsheet software can be found, and
the source code is not commented. How would you go about maintaining this
software to keep the customers happy? (5 Marks)
b) It is noted that the bank’s software is somewhat unreliable. Discuss what this
means in software engineering terms. (4 Marks)
c) Discuss why Requirements Engineering is considered to be the most important
part of software engineering? (6 Marks)
d) You are in the contract stage of a project and are developing a comprehensive
proposal for a safety critical software system. Your director has consulted you for
preparing a guideline document what will enlist user’s role during acceptance
testing phase. Indicate the key roles you feel that the user should play during
acceptance stage. (5 Marks)