Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

G6046

2018

SOFTWARE ENGINEERING

1.  Universal Exports Corp has provided you with a text statement of a set of user 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:

a)  State clearly two mandatory functional requirements and two desirable functional requirements.

[8 marks]

b)  State clearly two mandatory non-functional requirements and two desirable non-functional requirements.

[8 marks]

c)  Give an example of a domain requirement and explain what needs to be done with the domain requirement so that it can be acted upon.

[8 marks]

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.

[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

[8 marks]

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.

[6 marks]

 

2.

a)  Swann Software 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 Swann Software 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.

[ 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:

Task

Description

Duration

(Working days)

Predecessor(s)

A

Requirements analysis

10

None

B

Software design

5

A

C

Software test schedules

25

A

D

Develop test tools

40

A

E

Coding team 1

50

B

F

Coding team 2

40

B

G

Coding team 3

60

B

H

Code integration

10

E, F, G

I

Test software

10

C, D, H

J

Installation

5

I

i.     Produce a PERT analysis of this project and determine the critical path of the project.

[10 marks]

ii.      Calculate the planned duration of the project in weeks.

[5 marks]

iii.     Identify any non-critical tasks and the float (free slack) on each.    [5 marks]

c)  Describe the key elements and features of a software version control system such as GitHub.

[5 marks]

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.       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.

[10 marks]

 

3.  You have been given an outline specification for a stock control and retail system.

“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.

[25 marks]

b)  Explain the purpose of each of these terms in UML design. In each case you should give a simple example based on your answer to part (a) to    support your explanation:

Use Case

[5 marks]

ii)        Sequence Diagram

[5 marks]

c)  What is meant by the following terms as applied to Object Oriented (OO) Design:

i)         High cohesion

ii)        Low coupling

iii)       Encapsulation

iv)       Application Programming Interface.

v)       Test Driven Development (TDD)

[15 marks]