THE UNIVERSITY OF SUSSEX
BSc SECOND YEAR EXAMINATION May/June 2019 (A2)
SOFTWARE ENGINEERING Assessment Period:
DO NOT TURN OVER UNTIL INSTRUCTED TO BY THE LEAD INVIGILATOR
Copyright By PowCoder代写 加微信 powcoder
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.
Do not write any answers on the question papers. All answer should be written in the answer books.
Candidate Number
G6046 Software Engineering
1. TravelTechCorphasprovidedyouwithatextstatementoftheiruser requirements for a project. The text statement reads as follows:
“TravelTech Corp are a major supplier of hotel and accommodation booking services. We wish to develop a replacement for our existing bookings management system, to enhance the range of search and booking options to support a wide range of desktop and mobile platforms.
Customers can browse the booking system on-line to find hotel and accommodation bookings that meets their needs based on location, arrival date, duration of stay and number of guests. Location can be defined either by broad geographical area (e.g. Tuscany) or by specific city (e.g. Pisa). It would be useful if customer could select areas by recent popularity. Customers can set upper and lower bound costs on a per night basis expressed in either pounds or euros. A customer can create an account on the site and save their provisional bookings for a minimum of 1 month and ideally a maximum of 3 months. If any underlying prices change prior to confirming the booking, it would be helpful if the system could notify the customer by email. The account can also then be used to confirm any provisional bookings, when payment is made via a secure payment system.
The system interface must offer all functionality across Mac/PC and Linux platforms and must work on Explorer, Chrome and Safari browsers. Ideally the interface would conform to ISO-IEC 40500 for accessibility. The interface must work on both desktop and mobile devices (phone and tablet). Ideally there could be an Appstore version for both Apple iOS and Android.
The software will be built using Java within a Jakarta EE framework. As this is business critical software, it must offer a mean time between failure of no less than one in 10,000 hours, but closer to the one in 20,000 hours would be preferred. Ideally the system should be 100% reliable as we have an excellent industry reputation to maintain. The software should ideally incorporate analytics so that senior management can remotely view how customers are interacting with system. The software should be easy to use, and a strategy needs to be produced to enable the migration of existing booking data from the existing old back end system to the new system on an agreed changeover date. The back end data storage is currently provided by a SQL database system and we have decided to move to a cloud based storage solution. ”
Working from this statement of user requirements:
a) State two mandatory functional requirements and two desirable functional requirements.
b) Stateclearlytwomandatorynon-functionalrequirementsandtwodesirable non-functional requirements.
c) Giveanexampleofadomainrequirementandexplainwhatneedstobedone with the domain requirement so that it can be acted upon.
d) Do you consider it reasonable for TravelTech to specify a 100% reliability metric for their booking system? You must provide reason(s) and justification for your answer.
e) TravelTech have expressed a desire to move to a cloud based storage solution for their back end data. This desire carries comes with risk. With reference to this specific example, explain how a risk may be characterised, and suggest appropriate measures that the TravelTech team can adopt to minimise this risk
[12 marks]
f) Give an example what is meant by an “organisational/people” risk and suggest what steps may be adopted to mitigate against it.
/Turn over
G6046 Software Engineering
a) In the context of the Agile development process, explain what is meant by the
following terms:
• Agile manifesto.
• User stories. • Sprint.
• Pair wise programming.
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:
[10 marks]
A B C D E F G H I
Description
Requirements analysis Initial design
Hire developers Procure hardware Coding
Code reviews
Hardware testing
Software testing
Hardware and software integration
Hire audit Team Review
Duration Predecessor(s) (Working days)
10 None 10 A
40 B,C 10 E
10 A 10 I,J
Produce a PERT analysis of this project (showing the earliest and latest start and finish times) and determine the critical path of the project.
[10 marks]
[5 marks] Identify any non-critical tasks and the float (free slack) on each.
/Turn over
Calculate the planned duration of the project in weeks.
c) Explainwhatismeantbya“designpattern”,andhowthisideahelpsusto produce better software engineering solutions. You should include an example of one design or architectural design pattern in your answer, including an explanation of where it might be used.
[10 marks]
d) A key feature of Enterprise scale framework based solutions is the concept of container managed services. The Java Jakarta EE framework provides the Java Persistence API (JPA) to support Object-Relational Mapping (ORM) between Java objects and a relational database. Explain what is meant by “container managed services” in the context of ORM as a means of providing persistent data storage, and explain clearly the advantages of such an approach over a 3-tier architecture implemented using PHP and SQL.
[10 marks]
/Turn over
G6046 Software Engineering
3. Considerthefollowinginformalrequirementsspecificationforacomputerised ticket sales system:
“LastMinuteTickets is a company that sells last minute ticket bargains for popular arts events. They sell theatre tickets, concert tickets and VIP tickets for museum viewing events. They want to build a new computer system to manage their ticket sales.
Customers must register to use the new system. To register, customers need to provide their name, age, telephone number and email address. The company then needs to verify these details before a customer can make any purchases, to prevent their system from abuse from ticket touts. Once the customer has been verified, they are free to make as many purchases as they like.
Theatre tickets are for a specific show, theatre location (e.g. “London Apollo”), time and seat number (one letter and two integers). Concert tickets are for a specific show, and can be allocated seating (also one letter and two integers) or standing. Some concerts are for over 18s only. Some concert tickets have restricted views due to old venues. VIP tickets for museum viewings have a name of the event, the name of the museum where the event is taking place and a starting time. Some museum events also have sandwiches and/or drinks available.
Customers can browse LastMinuteTickets range of bargains (you do not need to know how this is achieved), and then make purchases. Once the purchases are made, LastMinuteTickets needs to keep a record in case the customer loses any of the information about the bookings they have made. To help customers in that event, LastMinuteTickets need to be able to recover information about customer purchases using the customer name on their system.”
a) Draw a use case diagram for this system.
b) Identify the main object classes involved in the system, and for each class briefly describe the primary attributes and operations (methods) associated with it
[20 marks]
c) Drawaclassdiagramshowingtherelationshipsbetweentheclassesyou identified.
[10 marks]
d) Using one of the classes you identified in your previous answers, explain how unit testing can be utilised in Java as the basis of automated testing. Your answer should include outline Java code to support your explanation.
[15 marks]
End of paper
程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com