SOFTWARE ENGINEERING MANAGEMENT
CO3314 SOFTWARE ENGINEERING MANAGEMENT
COURSEWORK ASSIGNMENTS 1 & 2 2013-14
General background information on Coursework assignments 1 and 2
System requirements. A software company is given the task to develop a distributed client-server system for a London based motorcycle courier (parcel delivery) service. The system is to comprise of (i) a centrally maintained global database detailing information on jobs and couriers; and (ii) a client smart-phone application which (a) registers availability for work; and (b) displays details of the current job and suggested route; and (c) every thirty seconds monitors the courier’s position and average speed and returns this information to the server on demand.
There are at least five major requirements to such a system (keeping a register of couriers on duty; booking jobs; scheduling jobs to couriers; monitoring courier status; monitoring network status ):
1. Registering couriers on duty: logging whenever a courier indicates – using their smart phone courier-app – that they:
are available for work: generate a new riderID and log their ‘start of shift time’ (to facilitate a log of the number of hours the courier has been available for work [for salary and safety reasons etc]);
have finished their shift: de-allocate the riderID and calculate the pay due to the rider for that shift.
2. Booking jobs: whenever a customer places an order, initiate the creation [and/or modification] of a job-booking; with each job-booking defining:
• the customer specified time of parcel collection (typically asap); • where the parcel is to be collected from; • ‘identifying details’ of the point of contact at parcel collection; • where the parcel is to be delivered to; • ‘identifying details’ of the point of contact at parcel delivery.
3. Scheduling jobs to couriers: allocating each new job to a courier; balancing efficiency (speed of delivery) with work load across the fleet of motor-cycle despatch riders. This entails:
• reviewing each of the available couriers to establish which is the closest [in time] to the pick-up point, who has enough time remaining on their shift to safely pick-up and deliver the parcel to its destination.
1
2 CO3314 SOFTWARE ENGINEERING MANAGEMENT * COURSEWORK ASSIGNMENTS 1 & 2 2013-14
• Where couriers are [approximately] equally suited to take the job, the scheduler should endeavour to allocate jobs fairly across all registered couriers.
• The scheduling process will make use of real-time congestion information ob- tained by the server from all of its smart-phone courier-apps.
4. Monitoring courier status: each rider’s status by regularly polling their smart phone courier-app:
• polling the GPS every 30 seconds to update rider location and job status (available; on a pick-up; on a delivery);
• displaying each rider’s status on a common display showing a street map of London;
• advising riders of any congestion developing on the suggested route; • making courier location information available [via a suitable web interface] to
customers, so they can monitor the progress of their parcel delivery in real time and have an up to the minute estimate of its likely delivery time.
5. Monitoring network status: the server should analyse the real-time location data from each courier and use this information intelligently to update a map of real-time traffic congestion across London.
Categories of user. There are four categories of user that will interact with the system: (i) a system administrator (sysadmin), (ii) the sales team, (iii) the motor cycle couriers (despatch riders) and (iv) clients.
sysadmin: is responsible for maintaining: • the server and the global database; • each courier’s smart-phone and courier-app; • the client-server communications between the central database and the smart-
phone courier-app. sales-team: take client orders; enter job-information onto the server; use the common
job-display to respond to client queries regarding current parcel position; estimated parcel delivery time etc.
couriers: use their smart-phone courier-app to: • register start-of-shift and end-of-shift with central server; • display current job-information, route-information and traffic-congestion in-
formation (as received from server); • enter job status (available; on-pick-up; on-delivery ) and automatically log cur-
rent position and upload this information to the server on request (typically every thirty seconds).
clients: can either call the sales-team for job information or use the web-interface to request a real-time job-update on their parcel’s current location and its estimated time of delivery.
CO3314 SOFTWARE ENGINEERING MANAGEMENT COURSEWORK ASSIGNMENTS 1 & 2 2013-14 3
Scenario. Consider the following scenario that leads to the system despatching a courier to deliver a client’s parcel; it consists of the following six steps:
(1) A client calls the company and requests a parcel-delivery from ‘Head Office’ to their ‘Sales Centre’.
(2) The scheduler books the new job, logging: • the time the client specified for parcel collection (asap); • Where the parcel is to be collected from (the client’s Head Office); • ‘identifying details’ of the point of contact at parcel collection (reception); • where the parcel is to be delivered to (the client’s Sales Office); • ‘identifying details’ of the point of contact at parcel delivery (reception).
(3) By polling each courier’s smart-phone app, the server-system obtains current loca- tion and job-status (riderID, location, status) for all the registered couriers.
(4) the server-system calculates how long it would take each available rider to pick up the parcel and deliver it to its destination; checking that safe delivery is possible given the amount of time each rider has left for work on that shift.
(5) The system selects the rider that can deliver the parcel in the least time, allocates the job to that rider and updates the global database. In cases where two (or more) riders can execute the job in approximately the same time, the system will endeavour to distribute jobs in the most equitable way.
(6) The system sends the selected rider the relevant job information, clearly highlight- ing:
• the time the client specified for parcel collection (asap); • where the parcel is to be collected from (the client’s Head Office); • ‘identifying details’ of the point of contact at parcel collection (reception); • where the parcel is to be delivered to (the client’s Sales Office); • ‘identifying details’ of the point of contact at parcel delivery (reception); • the suggested route and any local congestion information.
4 CO3314 SOFTWARE ENGINEERING MANAGEMENT * COURSEWORK ASSIGNMENTS 1 & 2 2013-14
Coursework assignment 1
Question 1. Make a project plan for developing such a scenario for adding a new client job. The plan should contain the following components:
• (a) a hierarchical decomposition of the necessary functions to implement the main six steps of the scenario which indicates the order for their design, in context of the system requirements; [40]
• (b) a schedule as a task network for design of these functions that will carry out the steps from the scenario, and suggest milestones as well as intermediate products that have to be delivered after each milestone. [40]
Question 2.
• (a) Describe how this plan can be accomplished for successful software development following the waterfall model; [15]
• (b) Explain how many programmers might be needed for implementing all the func- tions involved in the scenario, justifying any assumptions you make in arriving at your answer. [5]
Coursework assignment 2
Question 1.
• (a) Design software components for guiding the implementation of all functions for the scenario steps using data-flow diagrams; [60]
• (b) Reason what complications may arise during the implementation phase, and in which components, based on the data-flow diagram. [10]
Question 2. Calculate an estimate of the size-cost for the five steps from the scenario according to the COnstructive COst MOdel (COCOMO), and more precisely:
• (a) compute an estimate of the size of each of the functions for implementing the five steps from the scenario in terms of the number of delivered (thousands of) source code instructions; [20]
• (b) assume that this is an intermediate software which is organic (i.e. it is free- standing). Discuss briefly how this estimate will change if the software is made as semi-detached. [10]