CS代考 THE UNIVERSITY OF SUSSEX

THE UNIVERSITY OF SUSSEX
BSc SECOND YEAR RESIT EXAMINATION August/September 2018 (A3)
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. UniversalExportsCorphasprovidedyouwithatextstatementofasetofuser requirements for an innovative project they are bidding on. The text statement reads as follows:
“Universal Exports offer high end travel and travel support services for the discerning business traveller all over the world. We have provided such services for presidents, prime ministers and government officials at all levels and they have a reputation for impeccable service. We need to build a new booking and support management information system to replace our existing system, as the hardware and software on the old system is getting too old and expensive to support.
The system is not a traditional on-line system – our clients make their arrangements through our office, so our staff are the main users of the system. The system needs to communicate with server systems for our trusted suppliers through web services and other middleware connection protocols. Our system needs to keep a permanent record of our customer details on our secure database. Ideally the database will back up daily automatically. Our staff need to be able to search our suppliers’ servers to identify flight dates, times and make flight bookings. Our staff need to be able to search our suppler servers for accommodation dates, process and make bookings. All the data recovered needs to be stored with our customer details. All data needs to be preserved for at least 24 months. If a customer leaves us, we need to ensure that all of their data is permanently removed from our system. Some of our suppliers’ system are not compatible with our web services interface. In that case, our system stores their contact details and our staff use that data to contact them via email and the telephone. When bookings are made, the data is recorded on our database. The software needs to be able to support our current office staff of 20 people, but our business is expanding, so we need a system that could cope if that number of staff trebled over the next 5 years. The system needs to be compliant with current data protection legislation and provide an easy to learn user interface.
If a customer is out travelling and requires support, they telephone our office. Our staff need to be able to recover all relevant customer details by customer name. We might consider adding an option to provide remote access by smartphone to the travel support system later on. Records must be recallable from our system in less than 5 seconds.
The software system needs to be written in a language that can deployed on a range of platforms including PC and Mac. We think Java would be a good choice in this respect. We require a Mean Time Between Failures (MTBF) of no less than 1 month of operation and ideally better than 2 months. The software is intended to run continuously 24 hours a day, seven days a week.
The software system will need to have an operational life of 20 years.”

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 clearly two mandatory functional requirements and two desirable functional requirements.
Possible examples for mandatory functional requirements include:
All data shall be preserved for 24 months.
It shall be possible to permanently remove all data relating to a customer. The system shall be able to search for flights by flight date and time.
Possible examples for desirable functional requirements include:
The database should backup automatically daily.
The design should accommodate possible integration with a smartphone application at a later date.
b) Stateclearlytwomandatorynon-functionalrequirementsandtwodesirable non-functional requirements.
Possible examples for mandatory non-functional requirements include:
The software shall be written in Java.
The Mean Time Between Failure shall be no less than 1 month of operation. Records for a customer shall be recallable in less than 5 seconds.
The software shall be able to support 20 concurrent users.
Possible examples for desirable non-functional requirements include:
The Mean Time Between Failure should be no less than than 2 months of operation.
The software should be expandable to support 60 users.
c) Giveanexampleofadomainrequirementandexplainwhatneedstobedone with the domain requirement so that it can be acted upon.

“The software needs to be compliant with current data protection legislation” or that it needs to “provide an easy to learn user interface”. These requirements are 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) A detailed analysis of risk forms one part of the quality manual that specifies what types of planning documentation we should prepare when considering a project. Describe four other types of documentation that a typical quality manual specifies we should prepare.
Examples include:
• Organisational information,
• A breakdown of the phases and tasks,
• A list of milestones for each phase, and
• A PERT chart.
• Conflict resolution protocol.
• Peer assessment plan.
Examples should be supported by an appropriate text description.
[12 marks]
e) One key aspect of clear functional requirements is that they help us develop a testing strategy. Draw up an example of a system level testing document suitable for testing one of the functional requirements that you have identified.
Candidates should produce a table such as the one shown below and populate it with one example:
Test Reference
Description
Test input A
Expected output
Actual output
If fail, action required
Fix method1()
f) Explain the difference between system testing and unit testing, and give one example (you do not need to provide detailed code) of how automated unit testing can be carried out.

System level testing: testing the system as a whole, looking at system level inputs and outputs and testing whether the software as a whole is meeting the requirements set out for it. May involve the customer or end users.
Unit testing involves testing individual elements of the software. Typically organized using unit testing software tools such as Unit. Intended for use by software developers as testing is concerned with inner workings of software components not necessarily visible to the end user.
In Java, automated unit testing can be achieved using JUnit test classes. Such classes provide a mechanism for annotating methods as test methods. Objects can be created and methods called and the expected results compared with the actual results to determine pass/fail conditions.
2 marks for definition of system testing. 2 marks for definition of unit testing. 2 marks for explanation of automated testing using JUnit classes.
/Turn over

G6046 Software Engineering
a) Corp have two projects. One project requires their
development team to produce an innovative new desktop and mobile compatible crypto currency token trading platform. Details are sketchy at the moment but it is said that the customer will be able to create a trading account that will allow them to buy and sell Bitcoin and Ethereum tokens, and create rules for automated trading. Over the next 12 months, it is anticipated that government around the world may start to pass laws and regulations to govern the operation of crypto currency trading platforms.
The other project is to develop a battery monitoring application for lithium ion batteries aboard aircraft, as there has been concern that batteries can catch fire if not used correctly. The system is needed to provide an effective means of monitoring the voltage output and current flowing from the batteries in use, and recording this data in a persistent form, and alerting cabin crew when the batteries are operating outside of tolerance. Any systems that form part of the safety assurance facilities aboard an aircraft are subject to regulatory control and regular inspection.
You are asked to advise on what would be the most appropriate software development process for each of these projects. Your answer should state the key elements of the development process and must state clearly why you think that process model is suited to each of the two projects.
Key points to make in the answer: Crypto currency trading platform:
• 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. Crypto currency trading is a fast-paced business driven by short term events.
• High degree of creativity and innovation may be required.
• Short development times may be required to deal with currency
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.
• Suggest Agile, or more likely hybrid plan and Agile based approach, with
frequent short term goals and early code development to get feedback from customer and possible sample end user groups.
Battery monitoring system:
• Requirements are likely well understood and unlikely to evolve over the medium term. Customer likely has a very firm understanding of

requirements and can develop meaningful and firm metrics to quantify
performance.
• Creativity is not at a premium. Adherence to regulations and standards
are important.
• Customer has fixed budget and a need to develop on time and on
budget to meet needs of customer further down the business process
• Likely plan based approach is appropriate.
[15 marks]
b) 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 B C D E F G H I J
Description
Requirements analysis Software design Software test schedules Develop test tools Coding team 1
Coding team 2 Coding team 3 Code integration T est software Installation
Duration Predecessor(s) (Working days)
10 None 5 A
10 E,F,G 10 C,D,H 5 I
Produce a PERT analysis of this project and determine the critical path of the project.
Duration Earliest start
Earliest Latest finish start
10 0 15 10 35 60 50 45 65 25 55 35
Latest Critical finish path?
10 Yes 15 Yes 85 No 85 No 75 No 75 No
A 10 B 5 C 25 D 40 E 50 F 40
0 10 10 10 15 15

G 60 15 75 15 75 Yes H 10 75 85 75 85 Yes I 10 85 95 85 95 Yes
95 100 95 100 Yes Critical path is A, B, G, H, I, J
Calculate the planned duration of the project in weeks.
100 days, at 5 days/week gives 20 weeks. Max 3 marks if answer is not given in weeks as specified.
[5 marks] Identify any non-critical tasks and the float (free slack) on each.
Task C: 50 days (10 weeks) Task D: 35 days (7 weeks) Task E: 10 days (2 weeks) Task F: 20 days (4 weeks)
2 marks for identifying tasks. 1 mark each for correct numeric values.
c) Describethekeyelementsandfeaturesofasoftwareversioncontrolsystem such as GitHub.
Key elements and features that should be defined:
A repository: Network storage for all data and resources.
Client: A program to access the repository.
Check in: A means of adding a file to a repository.
Check out: A means of extracting files from a repository.
Conflict resolution: A means of dealing with multiple version of a files being checked in by different users.
Other features that would merit a mention:
Trunk/branch/fork. Merge.
d) Three software developers (Richard, Tom and Selena) are working on a joint codebase. Richard starts writing the code, but then he is called onto another project and so passes development on to Tom. Tom makes further changes and then asks Selena to develop some additional components in parallel.
[10 marks]

Selena develops these components, but also notices some improvements are possible in Tom’s work and so makes some changes to code he has written. Tom and Selena’s work is then brought together to make a first prototype of the complete system. Produce a diagram to illustrate the version control sequence, and describe any problems that may arise during the development of the codebase.
Richard produces version V1.
Tom updates V1 to V2.
V2 then branched to make V2_1 that Tom continues to work on and V2_2 that Selena works on.
Tom updates V2_1 to V3_1.
Selena updates V2_2 to V3_2.
V3_1 and V3_2 are then merged to make V4.
When V3_1 and V3_2 are merged, conflict resolution management is required as Selena may have modified Tom’s code. Any reasonable description of this process will be required.
[10 marks]
/Turn over

G6046 Software Engineering
3. Youhavebeengivenanoutlinespecificationforastockcontrolandretailsystem.
“Belle Vue Garden Centre’s owners have decided to replace their outdated stock control and retail system. Belle Vue sell a wide range of products including live plants, bulbs and small garden statues. Customers can buy goods directly in the store or order them by telephone or on-line for collection in store. Data needs to be stored on each of the items that the centre sells, effectively providing a catalogue of all the items that are stocked, although not the actual stock levels themselves at this stage. Each item has a unit price expressed in pounds and pence, a numeric reference to a wholesale supplier and a product code for that supplier. One wholesale supplier may be responsible for supplying any number of products to Belle Vue. Live plants need to have their Latin name stored, along with data to indicate whether they are indoor or outdoor plants. Bulbs come in packets and the number of bulbs in each packet needs to be stored, along with information about how many months are needed before the bulbs develop. For a small garden statue, the height in cm needs to be recorded along with the material that it is constructed from and an indication of whether the statue is fragile and requires careful handling.
In order to make an order, customers need to provide their name, address, telephone number and an email address. They also need to let Belle Vue know whether they are happy to receive the new monthly newsletter, and if so whether they would like to receive it by post or by email. Customer can order as many items for collection as they like at any one time. However, sometime there can be delays in processing orders due to delays in delivery from the wholesale suppliers. So it is important that if a customer calls up to ask about progress of a delayed order, that customer’s order can be brought up on the computer system based on the customer’s last name. Ideally, the computer system would keep a record of all of the orders that the customer has ever made.”
a) 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:
• BelleVue represents the entire system. It keeps records or customers and items that are sold and that have been ordered.
• Customer represents one specific customer.
• Order to represent a collection of Items that a Customer wishes to
• Item is a base class for all of the types of object that the garden
centre sells.
• LivePlant is a sub-class of Item and represents an Item that the
garden centre sells.
• Bulb is a sub-class of Item and represents an Item that the garden
centre sells.
• Statue is a sub-class of Item and represents an Item that the
garden centre sells.

• There is also a need to record sales and orders. There are many options here. Students might separate purchases and orders as distinct classes. It is also possible to combine them to indicate whether a purchase is an order waiting to be fulfilled. In any event, the BelleVue class will need a means of recovering the data of purchases and orders by customer name and that is most easily achieved using a HashMap.
Students should produce some kind of class diagram to support their answer.
LivePlant (extendsItem)
Bulb (extends
Attributes
String latinName booleanisIndoor
int numInPacket
int numMonthsToDevelop
Belle List allStock ArrayList allCustomers HashHap allOrders
createCustomer(…) makeOrder(…) recoverOrderDetails(…)
double price
int wholesaleReference int productCode
(extends Item) String material
int heightCm
boolean isFragile
int numberOrdered
boolean onOrder
String name
String address
ArrayList myOrders
updateAddress(…)
orderItem(…)
purchaseItem(…)
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.
A high quality solution that meets all of the requirements.
[25 marks]
ExplainthepurposeofeachofthesetermsinUMLdesign.Ineachcase you should give a simple example based on your answer to part (a) to support your explanation:
5 marks for each definition. Max 2 marks if no diagram is provided.
i) Use Case
Answer should show at least one Actor and some operations e.g. add an item to an order, remove item from order etc.
ii) Sequence Diagram
Answer must show classes/objects at the vertical headings, with method calls to the left of the appropriate class. Answer should show user Actor on left hand side. Return values from methods should be indicated.
/Turn over

c) WhatismeantbythefollowingtermsasappliedtoObjectOriented(OO) Design:
3 marks for each definition.
i) High cohesion
The notion that a class does one well defined job and corresponds to a single useful entity forming part of an OO solution.
ii) Low coupling
The notion that we should seek to minimise possible interactions between classes/objects to only those that are required for the software system to operate. Can also

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