代写代考 THE UNIVERSITY OF SUSSEX

THE UNIVERSITY OF SUSSEX
BSc SECOND YEAR EXAMINATION May/June 2018 (A2)
SOFTWARE ENGINEERING
ANSWERS: DO NOT DISTRIBUTE

Copyright By PowCoder代写 加微信 powcoder

Assessment Period:
DO NOT TURN OVER UNTIL INSTRUCTED TO BY THE LEAD INVIGILATOR
Candidates should answer TWO questions out of THREE.
If all three questions are attempted only the first two answers will be marked.
The time allowed is TWO hours. Each question is worth 50 marks.
At the end of the examination the question paper and any answer books/answer sheets, used or unused, will be collected from you before you leave the examination room.
Candidate Number

G6046 Software Engineering
1. EyeDriveSystemsCorphasprovidedyouwithatextstatementoftheiruser requirements for a project. The text statement reads as follows:
“EyeDrive make computer vision and image processing software intended for use within autonomous vehicle systems. We have been asked to produce a software system for the latest range of Edison self-driving cars. The car has 4 integrated forward facing cameras each with a resolution of 1000 x 600 pixels and a frame rate of 100Hz in 24-bit colour, and are placed to offer a 170° forward view of the road ahead. Our software system needs to work with other systems to ensure that the car remains safely within the driving space ahead. It does not need to make decisions about turning left or right – the sat nav component does that. The output of our system needs to drive servo motors that steer the vehicle, and control the throttle (accelerator) and brake to ensure a safe distance is maintained from vehicles in front in all weather conditions. If a road sign is identified, a single snapshot image of the road sign needs to be taken when the sign is no less than 10%, ideally no less than 20%, of the total screen height and passed to the sign analysis system produced by another company (there is an API for this).
The software will locate the edge of the roadway on the left and right hand side and determine whether servos need to steer the car left or right so that it occupies the most central position possible in the roadway at all times. The software shall use the fullest extent of the data that the cameras can provide. If the roadway is diverging (such as at an exit), then the software will need to estimate the best path to ensure that the vehicle remains central on the main roadway unless a signal is received from the sat nav that a turn needs to be made. The software must update the roadway edge position each video frame and must be located to a minimum accuracy of +/- 20 pixels, ideally better than +/-10 pixels. If the system cannot update the roadway edge position for 5 consecutive frames, then an alarm must be raised so that drive assist can be demanded.
If a vehicle comes closer than 10m in front, the software needs to issue a brake demand. If there are no vehicles in front, then a throttle demand can be issued to take the vehicle up to the current speed limit.
The software will be built using C++ on an embedded platform on-board the Edison vehicle. As this is safety critical software, it must offer a mean time between failure of no less than one in 10,000 hours, ideally no less than one in 15,000 hours. The software should ideally incorporate self-test diagnostics so that the vision system can be checked and updated as part of the annual service program that Edison offer for their vehicles. The software should be easy to use and to integrate into the other on-board software systems.”
Working from this statement of user requirements:

General marking notes:
Mandatory requirements to be denoted as “shall”.
Desirable requirements to be denoted as “should”.
Or other similar clear labelling system.
One mark to be awarded in each case for identifying a requirement, the other mark in each case for clear expression in words/other format as noted above.
a) State two mandatory functional requirements and two desirable functional requirements.
Possible examples for mandatory functional requirements include:
The software shall analyse image at a resolution of 1000 x 600 pixels.
The software shall analyse images at a frame rate of 100 Hz.
The software shall analyse images in 24-bit colour.
The software shall update the roadway edge position estimate every frame (100 times a second).
If the system cannot identify the road edge position for 5 consecutive frames, an alarm shall be raised.
The software shall locate the road edge position to a minimum accuracy of +/- 20 pixels.
Possible examples for desirable functional requirements include:
The software should locate the road edge position to a minimum accuracy of +/- 10 pixels.
The software should produce screen shots of road signs at no less than 20% of the total screen height.
b) Stateclearlytwomandatorynon-functionalrequirementsandtwodesirable non-functional requirements.
Possible examples for mandatory non-functional requirements include:
The software shall be written in C++.
The Mean Time Between Failure shall be no less than 1 in 10,000 hours.
Possible examples for desirable non-functional requirements include:
The software should include self diagnostics to determine whether it is operating correctly.
The Mean Time Between Failure should be no less than 1 in 10,000 hours.

c) Giveanexampleofadomainrequirementandexplainwhatneedstobedone with the domain requirement so that it can be acted upon.
“The software should be easy to use and to integrate into the other on-board software systems”. This requirement is not specific and cannot be directly translated into meaningful functional and non-functional requirements. Further expertise and domain knowledge is required to translate this domain requirement into more specific and measurable functional and non-functional requirements.”
d) Good requirements are usually SMART. Explain what is meant by SMART. SMART: Specific, Measurable, Achievable, Realistic and Timely. This represents a set of test to determine whether a requirement has been clearly expressed. Candidates should explain what is meant by each term. SMART requirements are important as they are objective and can be translated into meaningful test schedules and can form the basis of determining whether a software system has met the needs of the customer.
1 mark for definition of the acronym.
5 marks, 1 each, for a simple definition of each of the 5 terms.
e) Explain why is it appropriate for requirements to adhere to the SMART concept. You should refer to an example from the previous parts.
2 marks for explaining that SMART objectives give rise to objective testing.
f) As part of the project management process, we need to perform a risk analysis. Define the key elements that are required to manage one single risk.
Risks should be characterised by:
Description of risk: text statement.
Assessment of likelihood of risk: could be probabilistic statement of qualitative assessment (high/low/medium).
Assessment of impact of risk: could be in terms of cost, time planning over- run.
Identification of factors that can mitigate against the risk.
g) Define three different types of risk that may affect a software engineering project, explaining what the impact of each can be on the project.
4 marks for each example. 1 mark for stating risk type, 2 marks for defining the given term, and 1 mark for stating possible impact on a project.

Many possible examples including:
Organisational risk: Risk arising from lack pf appropriate management structures, loss of key staff. Likely impact on delivery schedules and cost. Technical risk: Risk arising from whether the project is technically achievable, possible instability in software tools and systems, reliance on third party technical delivery. Likely impact on whether project can be delivered at all. Instability of requirements: Risk arising from lack of clarity of user requirements, or changes in requirements caused by poor customer commitment to the end goals. Impact depends on project lifecycle process. Can be terminal on Waterfall projects, will cause delay in Agile project.
[12 marks]
Marks (out of 50) % Bookwork Contribution bookwork (marks)
A800 B800 C800
D 6 50 E 2 50 F 6 100 G 12 100
Total % bookwork
22/50 = 44%
/Turn over

G6046 Software Engineering
a) What are the key elements of the Agile development process? Your answer
should characterize the key features of each process, and include an example of a software project that would be suited to the Agile development process. Agile
• Requirements may not be firm. Customer may have requirements that are hard to quantify and attach meaningful metrics to. Customer may shift and evolve requirements as development proceeds and market conditions evolve.
• High degree of creativity and innovation may be required.
• Short development times may be required to deal with hardware
evolution outside of the control of the customer and the development
• However, the customer likely has a fixed budget and a target time to
market, so some effective controls must be in place.
• Frequent short term goals and early code development to get feedback
from customer and possible sample end user groups.
A suitable example might be a computer gaming application as this is a fast paced business driven by fashion and trends, with short product lifespan. 8 marks for the characteristics, and 2 for the example.
[10 marks]
b) A project is to be executed using a planned Waterfall development process. Using the information in the table below, assuming that the project team will work a standard working week (5 working days in 1 week) and that all tasks will start as soon as possible:
A Requirements analysis 10 None
B Initial Design 10 A
C Procure hardware 8 B
D Write hardware docs 12 B
E Coding 20 B
F Code toolset reviewing 4 B
G Hardware testing 4 C,D
H Software testing 10 E,F
I Hire integration team 4 B
J Hardware and software integration 8 G,H,I
Description
Duration (Working days)
Predecessor(s)

i. Produce a PERT analysis of this project and determine the critical path of the project.
Earliest finish
Critical path?
Earliest start
Latest start
Latest finish
A B C D E F G H I J K
0 10 10 20 20 28 20 32 20 40 20 24 32 36 40 50 20 24 50 58 58 60
0 10 Yes 10 20 Yes 38 46 No 34 46 No 20 40 Yes 36 40 No 46 50 No 40 50 Yes 46 50 No 50 58 Yes 58 60 Yes
[10 marks]
ii. Calculate the planned duration of the project in weeks.
60 days, 5 working days/week gives 12 weeks.
iii. Identify any non-critical tasks and the float (free slack) on each.
One mark each:
Task C: 18 days Task D: 14 days Task F: 16 days Task G: 14 days Task I: 26 days
/Turn over

c) Manysmallandmedium-sizedbusinessesbuilde-commercesystemsbased on a 3 tier architecture using PHP and SQL. Explain what the limitations are of this approach in the long term. Use diagrams where appropriate to support your answer.
Example should include a brief description of 3 tier architecture (ideally supported by a diagram). Candidates should identify presentation layer, business/application logic layer and database/persistent data store layer.
PHP/SQL solutions generally provide for a single server process each to support the application layer (typically Apache) and the database layer (typically MySQL). There is no support for multiple servers. Code to manage database queries is embedded within PHP code, so separation between application logic and database management is not as strong as in other framework solutions (e.g. J2EE). Database layer is limited by maximum number of concurrent connections and response time. System will become slow under heavy load. Suffers from “bottleneck problem”. Solution does not scale for enterprise scale level of use. Servers are single points of failure.
2 marks for properly labelled 3 tier diagram with all 3 layers correctly identified. 8 marks for discussion.
[10 marks]
d) Explain what is meant by the “Model View Controller” design pattern. Your answer should include a description of the role of each of the components. Explain why the MVC pattern design is useful in mobile application development. Use diagrams where appropriate to support your answer.
The answer should address the following points:
Widely adopted architectural design pattern when there a software system has a non-trivial user interface element.
Seeks to partition the software system into:
• Model: the underlying application or business logic.
• View: the part that renders the visual appearance of a model.
• Controllers: the part that accepts user input and translates into actions for the model.

Model: e.g. for a computer game – character models, world model, locations, health points, physics engines. I.e. everything to do with how the game “works”, but nothing about how it is to appear
View: steerable cameras, mobile or tablet? frame rate? Controller: touch? Joystick? Gesture?
Appropriate for mobile development to facilitate multiple platform development. The model remains identical across al versions, and the controllers and view elements are customised for each platform.
6 marks for the general description of MVC (3 for a diagram and 1 mark each for a short description of model, controller and view). 2 marks for characterising links between the components, and 2 marks for the answer relating to mobile development.
Part Marks (out of 50)
% Bookwork
100 0 100 100
Total % bookwork
[10 marks]
Contribution bookwork (marks)
30/50 = 60%
/Turn over

G6046 Software Engineering
3. Considerthefollowinginformalrequirementsspecificationforacomputerised library system:
“Wallingford local authority operates a public library and wants to create a system to manage the lending of popular books, reference documents and DVDs. They need to ensure that they have records of who is using and borrowing the items. Library items can be accessed by members of the public who register as customers of the library. To register, customers must provide their name, age (as some of the items are age restricted) and address. The address needs to be verified by a member of the library staff. All items in the library have a unique barcode that is made up of between 10 and 13 numbers and some letters.
The library has a record of its popular books including the name of the book, the author and genre. Reference books are generally large and complex texts covering subjects such as medicine and law. They are known by their book name, the name of the institute that published it, the number of articles contained within them, and a description of the kind of information held within them. Some of the reference books are available for lending and others can only be viewed on the library premises. The DVDs available are generally well known films and television programs. They are catalogued according to title, publisher, whether they are plain DVDs or Blu-Ray compatible, and also whether they are available for lending to persons under the age of 18. Popular books and DVDs can be taken home by customers.
The library needs to keep a catalogue of all the items. A customer can then apply to either borrow or access one of the items. In either case, a record must be kept. Where an item is taken away from the library, a record must be kept of how many days it will be before the item is due to be returned. There is no particular limit yet as to how many items a customer may borrow to take home. At any time, the library staff need to be able to determine how many items a customer has borrowed or accessed. It should be possible to recall this information using the customer’s last name.”
a) Draw a use case diagram for this system.
Candidates should identify Actors (user, library staff), and basic operations such as register and borrow.
b) Identify the main object classes involved in the system, and for each class briefly describe the primary attributes and operations associated with it.
A suggested class structure might be:
• Library represents the entire lending system.
• Customer represents one specific customer.
• Item is a base class for all of the types of object that the library can
lend. It will contain fields such as unique barcode.

Students should
DVD (extends
Book (extends
DVD is a sub-class of Item and represents a loanable Item. This class will require a field to determine whether it is Blu-Ray compatible and a field to indicate whether it is suitable to loan to children.
Book is a sub-class of Item and represents a loanable Item. ReferenceDocument is a sub-class of Item and may be either a loanable or a non-loanable Item.
It might be helpful if the base class Item has a field isLoanable There is also a need to record the loans. There are several options here including using an ArrayList field within each Customer to store data about what Items they have loaned, both current and historical. The Library class can then store all loans as HashMap using the Customer name as a key and the ArrayList to store data about the loans that Customer has made.
produce some kind of class diagram to support their answer.
Attributes
String barcode
boolean isLoanable
String title
String publisher
Boolean isBlu name
String author
String genre
ArrayList stock
HashMap
ArrayList
createCustomer(…)
searchStock(…)
borrowItem(…)
returnItem(…)
checkCustomerLoans(…
ReferenceDocum
ent (extends
String bookname
String institution
int numArticles
String description
String name
String address
ArrayList myItems
updateAddress(…)
Very little answer given. At the higher end, at least one cohesive class has been identified. No coupling shown. No class diagram shown.

The start of a meaningful answer has been given. At the higher end, two cohesive classes have been identified with relevant coupling shown between them.
At least two cohesive classes have been shown, with at least some relevant methods to show key functionality. At the higher end, there may be an attempt at a class diagram.
At least 3 cohesive classes shown with relevant attributes and collection shown. At the higher end, there is a relevant class diagram and/or an attempt to show how collections are used to link classes together.
Towards a substantive solution to the problem. There may be some smaller issues, but the solution is substantially correct.
17 – 20 A high quality solution that meets all of the requirements.
[20 marks]
/Turn over

Drawaclassdiagramshowingtherelationshipsbetweentheclassesyou identified.
Depends on the classes that the candidate provides. Answer should show ALL classes identified in part (b) and association links. Where sub-classes are proposed, appropriate links should denote this.
[10 marks]
Using the classes you identified, draw a UML sequence diagram to represent the act of a member of the public borrowing a DVD.
Depends on the classes and methods that candidate provides. Answer must show classes/objects at the vertical headings, with method calls to the left of the appropriate class. Answer must show user Actor on left hand side. Return values from methods should be indicated.
5 marks for showing appropriate class/object vertical heading, 2 marks for showing Actor. 8 marks for logical solution that corresponds to classes defined in part (b).
[15 marks]
Marks (out of 50) % Bookwork Contribution bookwork (marks)
A500 B 20 0 0 C 10 0 0 D 15 0 0
Total % bookwork 0/50 = 0%
End of paper

程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com