THE UNIVERSITY OF SUSSEX
BSc SECOND YEAR EXAMINATION May/June 2017 (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. SpaceInstrumentsCorphasprovidedyouwithatextstatementoftheiruser requirements for a project. The text statement reads as follows:
“We build instruments for deployment on small scale satellites for use in the telecommunications industry. We need to develop software for an instrument that will help us monitor accurately the available bandwidth of the RF link that is used to return data to Earth. The bandwidth is affected by a number of factors including the quality of the voice signals to be carried and weather conditions in the Earth’s atmosphere. In normal operation, the instrument is fed with real time data on the number of voice channels in use at any time. A high-quality voice channel consumes 64kbits/second but if bandwidth is limited we can downscale that to 32kbits/second as a minimum quality of service per voice channel. The total maximum data throughput of the RF link when working at full capacity is 20Mbits/second, but atmospheric effects can reduce that capacity.
The instrument monitors atmospheric events and adjusts the data rate for each voice channel to ensure that no voice channels get dropped if the bandwidth is reduced. The satellite is equipped with a specially adapted Intel processor with an embedded Linux Operating System (OS). That can support applications written in a variety of languages. Ideally the software should operate autonomously, but it would be helpful to be able to override the decision making remotely such that the RF link operates a smaller number of higher quality voice channels. As the instrument will operate in space, we need to be able to update the software from mission control. If the software encounters an error, it needs to restart.
Ideally we could incorporate some diagnostics to help us improve the software remotely. It would be helpful to have a means of uploading patches to the codebase rather than uploading entire new versions. Our development team work mostly with C and C++ as the code has a small footprint. The software needs to be reliable as it has a projected 20-year lifespan, and we will need a toolset to enable us to configure it remotely. The software needs to monitor atmospheric effects including moisture in Earth’s upper atmosphere and high energy particles impacting the upper atmosphere and adjust the bandwidth per voice channel to ensure that all current calls are maintained.”
Working from this statement of user requirements:
a) State clearly two mandatory functional requirements and two desirable functional requirements.
2 marks for each requirement. Mandatory requirements should use “shall” and desirable requirements should use “should”.
Example answers include:
• The maximum bandwidth for each voice channel shall be 64kbits/s.
• The minimum bandwidth for each voice channel shall be 32kbits/s.
• The total maximum data throughput shall be 20Mbits/sec.
• It should be possible to manually adjust the bandwidth per voice
• A set of diagnostics should be included to allow remote monitoring of
the performance of the software (not specified how yet though).
b) State two mandatory non-functional requirements and two desirable non- functional requirements.
2 marks for each requirement. Mandatory requirements should use “shall” and desirable requirements should use “should”.
Example answers include:
• The software shall function under a Linux OS.
• A toolset shall be required to facilitate remote configuration.
• The software encounters an error it shall restart of its own accord.
• The software should be written in C/C++ (could also be mandatory –
it’s not clear).
• It should be possible to install software patches rather than upload
entire new versions.
c) Giveanexampleofadomainrequirementandexplainwhatneedstobedone with the domain requirement so that it can be acted upon.
A domain requirement is one that cannot be directly translated into functional and non-functional requirements within expert analysis of the problem. The statement “The software needs to monitor atmospheric effects including moisture in Earth’s upper atmosphere and high energy particles impacting the upper atmosphere and adjust the bandwidth per voice channel to ensure that all current calls are maintained” needs to be refined further as the actual requirements are not clear. The domain requirement needs to be developed to ensure that the requirement is expressed in terms of SMART functional and non-functional requirements.
d) 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.
A system level testing document should include:
• Description of test
• Statement of which requirement it is related to
• Expected output
• Actual output
• Determination of pass/fail
• If fail, action required to address shortcoming
Statement of time and date tests were performed, by whom and on what version of the software.
An example suitable test case might be
• T est 1: Ensure remote reset works
• Relates to: remote reset requirement
• Input: Send signal to reset from remote station
• Expected output: software reset occurs
• Actual output: nothing happened
• Determination: fail
• Action: inform development team and get them to check coding
e) 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.
Risk characterised by:
• Description of risk
• Analysis of risk, possibly quantifying how likely using probability or
more general statements of high/medium/low
• Actions: what can be done if the risk manifests itself
• Monitoring: how do we determine if this risk is occurring and how do we
monitor for it?
f) Define three different types of risk that may affect a software engineering project, explaining what the impact of each can be on the project.
Possible risk types include:
• Technological: e.g. is technology available, or is it reliable and perform as expected?
• People: e.g. it is possible to recruit and retain the staff that are needed.
• Organisational: e.g. is the management structure effective?
• Requirements: e.g. is the project subject to requirements drift?
• Estimation: e.g. are the planning estimates realistic?
Impact: can be high in all cases. Students should suggest what steps can be taken to ameliorate risk e.g. people risks can be reduced by motivating staff or taking on additional team members. Probably the biggest challenge is requirements shift.
[12 marks]
Part Marks (out of 50)
% Bookwork 0%
50% 100% 100%
Total % bookwork
Contribution bookwork 0%
8% 12% 24% 52%
/Turn over
G6046 Software Engineering
a) Compare and contrast the relative merits of using a planned Waterfall software
development process versus an 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 each process.
• 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.
Suitable example might be a computer gaming application as this is a fast paced business driven by fashion and trends, with short product lifespan and
• 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. Company has likely developed similar products before.
• Customer has fixed budget and a need to develop on time and on budget to meet needs of customer further down the business process chain.
Suitable example might be the development of a system for accounting or control systems in the aerospace industry.
[10 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
Duration Predecessor(s) (Working days)
Description
Requirements analysis 5
Initial Design
Build prototype 1
Build prototype 2 Hardware procurement Design review
Code final design
Test of hardware System testing Handover and Go Live
10 A 20 B 25 B 60 B
5 C,D 20 F 10 E 10 G,H 10 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
5 15 15 35 15 40 15 75 40 45 45 65 75 85 85 95 95 105
Critical path is: A,B,E,H,I,J
0 5 Yes 5 15 Yes 40 60 No 35 60 No 15 75 Yes 60 65 No 65 85 No 75 85 Yes 85 95 Yes 95 105 Yes
[10 marks] ii. Calculate the planned duration of the project in weeks.
105 days, 5 days/week gives 21 weeks.
iii. Identify any non-critical tasks and the float (free slack) on each.
Task C: 25 days Task D: 20 days Task F: 20 days Task G: 20 days
c) Describethekeyelementsof“clientserverarchitecture”.Giveanexampleof such an architecture in action to support your answer.
Key points should include:
• Client: An agent that can request a service.
• Server: An agent that can provide a service.
• Communication governed by a protocol.
• Client is agnostic of how the server performs its task.
• Client and server do not need to share common implementation language or
Many possible examples such as web browsing with HTTP request and HTTP response, governing HTTP protocol. Answer should include a simple diagram, and for full marks should consider chains of client server requests as a means of delivering complex systems.
[10 marks]
d) Explain how a 3-tier architecture can be used as a means of designing a simple on-line shopping application. Your answer should include a description of the role of each of the layers.
Key arguments for n-tier architecture:
• Breaks large system into smaller more cohesive components, making implementation simpler.
• Likely to scale better.
• Can employ different technologies at each layer.
• Can redevelop layers without affecting implementation of other
• Communication between layers defined by Application
Programming Interfaces.
• Suited to mobile and standalone use.
• Able to manage data independently of application.
Key functions:
• Presentation layer: collect and present data. Typically uses GUI centred technology e.g. HTML and CSS for mobile interface.
• Application layer: server centric, typically models the underlying
business process.
• Data tier: server centric, typically concerned solely with data
management e.g. using SQL or some other structured persistent data storage
[10 marks]
Part Marks (out of 50)
% Bookwork 100%
Total % bookwork
Contribution bookwork 20%
/Turn over
G6046 Software Engineering
3. Considerthefollowinginformalrequirementsspecificationforacomputerized sales management system:
CoolSoft are a company than produces entertaining smartphone apps. They need a system to manage the sale of their apps on their appstore. Customers can purchase CoolSoft apps for different smartphone platforms. Usually, but not always, an application is available for both iOS and Android. Sometimes it takes developers a while to produce both versions of their app. To use the appstore, customers must first register and provide their name, address, age (as some apps are age restricted), and the unique numeric integer identifier for their phone. Once registered, customers can browse the appstore by category (e.g. entertainment, maps, productivity etc) or by app title. You do need to know how this search feature works internally. When a customer has found an app they like, they can purchase it. Each app has a name, a size in kB, an age restriction and information about which platforms it is available for. The CoolSoft sales system also needs to keep track on which customers own which apps in case they need to reinstall their phone software at a later date. CoolSoft would also like information about how many people browsed an app compared to how many bought that app to help them with their marketing. A customer can buy as many apps as they like each day. To buy apps, customer pre-purchase credit for their appstore account using debit card, The account can remember the key debit card details such as card number, expiry date and 3-digit security number. Customers can register multiple cards to credit their account. To comply with card issuer rules, CoolSoft need to keep records of all apps purchase by any customer for the lifetime of their account and must be able to recall those details using the customer’s name. The CoolSoft accountants also need to know the total value of sales on the appstore at all times and produce statistics as to which of the apps are selling best.
a) Identify the main object classes involved in the system, and for each class briefly describe the primary attributes and operations associated with it.
Marking scheme generally 5 marks per class. Students do not need to provide general accessor, mutator or constructor methods.
Class Attributes
Customer String name String Address
addNewCard(Card) deleteCard(Card)
String name
int sizeKb
int ageRestriction boolean isIOS boolean isAndroid int timesPurchased int timesBrowsed
availableIOS(boolean b) availableAndroid(boolean b)
Iint identifier ArrayList
addCredit(Card c, float amount)
Customer cust (or by identifier) App app
makeSale(Customer c, App a, Date d)
float totalValue ArrayList
HashMap
calculateValueOfSales(void) getSalesForCustomer (Cust c) createNewCustomer(Cust c)
Something to support browsing?
String cardNo Date expiryDate Int securityNumber
boolean checkCardValid(void)
[25 marks]
b) Draw a class diagram showing the relationships between the classes you identified.
[10 marks]
c) Usingtheclassesyouidentified,drawaUMLsequencediagramto represent the act of a customer purchasing an app.
Answer depends on classes and methods defined by candidate. Answer should clearly show classes on the horizontal axis, and method calls and responses in accordance with the answer given in part (a).
Part Marks (out of 50) % Bookwork A 25 0%
Total % bookwork
Contribution bookwork 0%
[15 marks]
End of paper
程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com