Sample Exam (adapted from 2020 paper) Faculty of Natural Sciences CSCU9P6: Software Engineering II Date Time This paper contains THREE questions. Attempt ALL THREE questions. (Total: 75 marks). All questions carry equal marks. The distribution of marks among the parts of each question is indicated. IMPORTANT NOTE This is an open book exam. You may consult your notes, textbooks and the teaching materials on Canvas, but no other resources. You must complete the exam under exam conditions. You must talk to no one and must work alone. Include the following declaration at the end of your submission: “I declare that this is my own work.” Do not sign the declaration 2 CSCU9P6 Section A Question 1: Refactoring and re-use [Total marks: 25] (a) Implementing a new system component (for example, a class) by re-use of an existing component is an important technique. What are the advantages of re-using existing components in this way? [5] (b) Consider the two classes A and B in the outline class diagram below. A is a new class and what we see in the diagram is the requirement for a full class A yet to be implemented. B is an existing, fully implemented class: Note: The functionality required of A’s operation op1 is already available through B’s op1, and that of A’s op2 through B’s op2. On the other hand, op3 is unique to A, and op4 is unique to B. (i) A could be implemented by using inheritance to re-use B. Explain how this can be done, giving a refactored class diagram and outline Java code for class A. [5] (ii) Explain the difference between behavioural inheritance and implementation inheritance. State which is usually regarded as acceptable and which is inadvisable, and explain why. In an example such as in (i), how would you decide whether behavioural inheritance or implementation inheritance were present? [5] (c) In (b), instead of using inheritance to implement A by reusing B, A could be implemented by incorporating an instance of B using aggregation. (i) Explain how this can be done, giving a refactored class diagram and outline Java code for class A. [8] (ii) In what circumstances would it be appropriate or necessary to use the aggregation approach rather than inheritance? [2] Continued B + op1(int) : void + op2() : int + op4() : String … A + op1(int) : void + op2() : int + op3(int) : void … 3 CSCU9P6 Section B Question 2: Formal Specification [Total marks: 25] Consider the Alloy code below. abstract sig Person { hasChild: set Person } sig Man, Woman extends Person { } (a) Explain the meaning of the code shown, paying particular attention to the keywords abstract, set, and extends. [6] (b) The diagram below shows a model of this specification. Assume that the hasChild relation is intended to represent the traditional, biological parent-child relationship, where each person has one male parent and one female parent. Describe three ways in which the model above is incorrect. [3] (c) Below is an attempt to solve some of the problems seen in the model shown in part (b): fact aCyclic { all p:Person | p not in p.^hasChild } fact TwoParents { all p:Person | one m:Man | p in m.hasChild and one w:Woman | p in w.hasChild } i. What will go wrong if this code is added to the specification? ii. Describe how you would modify the code to fix the problem you identified above. iii. Discuss whether it is in fact possible to modify the specification to simultaneously fix all of the problems you identified in part (b) [8] (d) Alloy commands for analysing a specification include running a predicate and checking an assertion. Describe what happens when these two kinds of commands are executed. Explain how the limitations of Alloy affect the possible results of running these commands, and discuss whether or not Alloy can still be useful in spite of these limitations. [8] Continued 4 CSCU9P6 Question 3: Software Project Management [Total marks: 25] You have been hired by the University of Stirling to manage the reimplementation of the Student Portal system. The Student Portal is a large and complex software system consisting of a web interface connected to a database holding student records, teaching and examination timetables, and other miscellaneous information such as university announcements and advertisements of events. The Student Portal is used regularly by around 11,000 students to register for classes, check their records and timetables, self-certify absence from classes, and many other functions. Information Security and Data Protection are important concerns, because the Student Portal holds confidential personal data. Another concern is that the system must remain available during periods of heavy use, such as the start of semester and the examination period. The University wishes to reimplement the Student Portal in order to improve its speed, make it more user-friendly and accessible on a range of devices, and improve its integration with other systems such as Canvas. You will head the project team. You have been told that you can select team members from existing Information Services staff at the University, and you also have a small budget for hiring a new temporary staff member if needed. A. Cost and effort estimation. (a) Explain why it is important to be able to estimate the effort and cost that a software project will involve. (b) Discuss what the difficulties are in making such estimates. (c) Describe two methods that have been proposed for project cost estimation. (d) Discuss how you would go about estimating cost and effort for the Student Portal project. [25] B. Activity planning. (a) Explain the reasons for producing a project activity plan. (b) Discuss what is meant by an “activity” and how a project manager might go about identifying the different activities that make up a project. (c) Describe in detail the general structure of a project activity plan, the kinds of diagrams that it might contain, and the ways in which it might be analyzed. (d) Identify activities and sketch a possible activity plan for the Student Portal project. [25] C. Team management. (a) Explain why project team management has been described as one of the most challenging aspects of software project management. (b) Discuss what factors should be considered in selecting and training staff to make up a new team. (c) Write a list of guidelines for project managers to follow when managing teams, giving reasons for each guideline. (d) Discuss how you would go about selecting and managing a team for the Student Portal project. [25] Continued 5 CSCU9P6 D. Configuration management. (a) Explain what is meant by configuration management. (b) Discuss the reasons why configuration management is needed. (c) Describe in detail some of the techniques and methods that are used for configuration management. (d) Discuss how you would approach configuration management in the Student Portal project. [25] E. Quality assurance. (a) Discuss what is meant by “quality” in the context of software. (b) Describe some ways in which quality can be measured. (c) Describe techniques that have been proposed for software quality assurance. (d) Explain what approach you would use for quality assurance in the Student Portal project. [25] F. Project management tools. (a) Explain why software tools might be helpful in project management. (b) Describe in general the kinds of functions that a project management tool should provide. (c) Give a detailed description of at least two specific project management tools, explaining what functions they provide and discussing their strengths and weaknesses. (d) State whether you would recommend one of these tools for use in the Student Portal project, explaining your reasons. [25] END OF EXAMINATION
欢迎咨询51作业君