Download Software Development and Computer Networking Exam: SENG S4002, Spring 2008 and more Exams Software Engineering in PDF only on Docsity! Cork Institute Of Technology Bachelor of Science (Honours) in Software Development and Computer Networking - Award (KDNET_8_Y4 – DNET 4) Spring 2008 Software Engineering (Time: 2 Hours) Instructions Answer FOUR questions. Examiners: Mr. J. O’Brien Dr. J. Buckley Dr. A. Kinsella - 2 - SENG S4002 Q1. (a) Expand, briefly, on each of the following pieces of advice offered, by Bowen & Hinchley, 1995, to individuals and/or organisations planning to invest in a formal-methods based approach to software development: (i) Thou shalt estimate costs; (ii) Thou shalt document sufficiently; (iii) Thou shalt not compromise thy quality standards. [6 Marks] (b) Consider the following declarations that form part of the description of a college: [PERSON] the set of all possible uniquely identified persons [MODULE] the set of all module codes at the college students, lecturers, EU, international : PERSON offered : MODULE studies : PERSON ↔ MODULE teaches : PERSON ↔ MODULE Consider, also, the following predicates: EU international = {} EU international = students dom studies ⊆ students dom teaches ⊆ lecturers ran studies ⊆ offered ran teaches = ran studies (i) Give an expression for the set of modules studied by student s. (ii) What does the inverse of relation studies, i.e. studies~ do? (iii) What does the composition of relations studies and teaches~, i.e. studies ; teaches~ do? (iv) Give an expression for the number of persons who teach both student s1 and student s2. (v) Give an expression that states that l1 and l2 teach some of the same international students. [7 Marks] - 5 - SENG S4002 Q3. (a) In 1990, W. Tracz proposed a model for describing reusable components. The model was known as the 3C model. (i) Describe, briefly, each element of Tracz’s 1990 3C model. (ii) How did Tracz’s model contribute to resolving the following issues encountered by those attempting the large-scale reuse of software components: Searching, Understanding, and Adaptation.? [9 Marks] (b) In the context of software development, once a set of candidate components has been identified, the developer(s) needs to evaluate each component for suitability in the current reuse-project. Identify, and describe briefly, the main types of information that would be useful for such an evaluation. [6 Marks] (c) Consider the following quote: “Software reuse is a technical problem.” Do you agree/disagree? State your reasons. [6 Marks] (d) Contrast labour-intensive software production with capital-intensive software production. [4 Marks] Q4. (a) The majority of software engineering standards are voluntary, that is the software development organisation makes its own decision, without coercion, to adopt one/more of the standards. Such a decision is usually influenced by benefits expected to accrue from their application. Elaborate on the importance of software engineering standards to each of the following: (i) Improving the product; (ii) protecting the buyer; (iii) Protecting the business; (iv) Increasing professional discipline; (v) Introducing technology. [15 Marks] (b) (i) What is/are the purpose(s) of IEEE/EIA Std. 12207, as determined by the Institute of Electrical and Electronic Engineers, IEEE, and Electronics Industry Association, EIA? (ii) The concepts underlying IEEE/EIA Std. 12207 may be classified into general concepts and task-related concepts. Explain, briefly, these concepts. [10 Marks] - 6 - SENG S4002 Q5. (a) Consider the following definition, by T.A. Stewart, 1993, of the term business process reengineering, BPR: “ . . .the search for, and the implementation of, radical change in business processes to achieve breakthrough results.” Describe, briefly, each of the following BPR activities: i. Business definition. ii. Process identification. iii. Process evaluation. iv. Process specification and design. [6 Marks] (b) (i) What is software reengineering? (ii) Why is software reengineering such an important activity? [7 Marks] (c) Elaborate on each of the following reverse engineering activities for software systems: (i) Reverse engineering to understand processing. (ii) Reverse engineering to understand data. (iii) Reverse engineering user interfaces. [12 Marks]