UNIVERSITY EXAMINATIONS: 2012/2013
SECOND YEAR EXAMINATION FOR THE BACHELOR OF
SCIENCE IN INFORMATION TECHNOLOGY
BIT 2106 SOFTWARE ENGINEERING PRINCIPLES
DATE: DECEMBER, 2012 TIME: 2 HOURS
INSTRUCTIONS: Answer Question ONE and any other TWO
QUESTION ONE
a) Define the term software stating two types of software products. (4 Marks)
b) Assume that you are a software engineer practicing in a software development
firm. Assume further that your team mates have been undertaking some unethical
practices during their course of duty. Discuss four issues of professional
responsibility that you would advise them to follow. (8 Marks)
c) Discuss four software cost estimation techniques (8 Marks)
d) Giving examples discuss the types of non-functional requirements (6 Marks)
e) Discuss four sources of changes in software requirements. (4 Marks)
QUESTION TWO
a) Define the term software maintenance (2 Marks)
b) Discuss four importance of maintenance (4 Marks)
c) Describe four types of maintenance stating when each is applicable (8 Marks)
d) Discuss the following quality factors in software, stating the metric for measuring
each one of them (4 Marks)
i. Portability
ii. Usability
QUESTION THREE
a) Describe a critical system (2 Marks)
b) Discuss the “dependability” requirement in critical system. (3 Marks)
c) Discuss three consequences of undependable system (3 Marks)
d) Discuss three types of critical systems (6 Marks)
e) State and explain three types of failures in critical systems (6 Marks)
QUESTION FOUR
a) Suppose that you are carrying out the software validation activity. Differentiate
between the following activities, explaining when each takes place and its
importance. Use examples where applicable. (6 Marks)
i. Verification and Validation
ii. Static verification and dynamic verification
b) Briefly discuss the following testing strategies (4 Marks)
i. Black box testing
ii. White box testing
iii. Unit testing / Component testing
iv. Stress testing
c) With the help of a well labeled diagram, discuss the component-based (CBSE)
approach to software development. (10 Marks)
QUESTION FIVE
a) Describe the following software design approaches (4 Marks)
i. Distributed Systems Design
ii. Architectural Design
b) Discuss four benefits of designing a system as a Distributed System. (4 Marks)
c) Using the ATM (Automatic Teller Machine) Discuss the View Points requirement
engineering technique, giving appropriate examples (6 Marks)
d) State and explain the challenges that are facing software engineers in the 21st
Century showing how those challenges can be overcome. (6 Marks)