Software Engendering

1. (a) What are functional and non-functional requirements? (10mks)
(b) Explain the steps involved in the prototyping (10mks)
(c) Enumerate the reasons for the failure of Waterfall Model. (5mks)
2. (a) Define Software Reliability (5mks)
(b) What is Modularity? (10mks)
(c) Explain why professional software is not just the programs that are developed for a
customer. (10mks)
3. (a) What is the most important difference between generic software product development and
custom software development? What might this mean in practice for users of generic
software products? (10mks)
(b) What are the four important attributes that all professional software should have? Suggest
four other attributes that may sometimes be significant. (8mks)
(c) Apart from the challenges of heterogeneity, business and social change, and trust and
security, identify other problems and challenges that software engineering is likely to face in
the 21st century (Hint: think about the environment). (7mks)
4. (a) Based on your own knowledge of some of the application types, explain, with examples,
why different application types require specialized software engineering techniques to
support their design and development. (15mks)
(b) Explain why there are fundamental ideas of software engineering that apply to all types of
software systems. (10mks)