程序代写案例-CSCU9P6

欢迎使用51辅导,51作业君孵化低价透明的学长辅导平台,服务保持优质,平均费用压低50%以上! 51fudao.top



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作业君
51作业君

Email:51zuoyejun

@gmail.com

添加客服微信: abby12468