ICT340
Application Analysis and Design
Tutor-Marked Assignment July 2024 Semester Presentation
ICT340 Tutor-Marked Assignment
TUTOR-MARKED ASSIGNMENT (TMA)
This assignment is worth 18 % of the final mark for ICT 340 – Application Analysis and Design.
The cut-off date for this assignment is Wednesday, 09 October 2024, 2355 hours.
Note to Students:
You are to include the following particulars in your submission: Course Code, Title of the TMA, SUSS PI No., Your Name, and Submission Date.
All TMAs must be submitted electronically through Canvas. No partial submission of TMA will be accepted unless otherwise specified.
Please refer to undergraduate student handbook for more information:
Combined UG Student Handbook January 2024 (suss.edu.sg)
ICT340 Tutor-Marked Assignment
Answer all questions. (Total 100 marks)
Read the following negotiated system requirements (NSR) for a Drone Service and answer the questions that follow.
DroneTech is a technology company that develops numerous unmanned aerial vehicles, called drones for many purposes. DroneTech invests heavily on research and development of its drone products. A new Drone Service application is required to allow clients to request and receive drone services.
A licenced drone pilot registers with DroneTech to fly a DroneTech drone. The drone pilot uses a model drone, provided at a favourable lease rate, in return for providing prompt flight service when requested by a client that is near the drone pilot. A pilot may lease more than one drone.
A flight request has a request id, request date, flight date and time, location, flight area, flight pattern and flight altitude. Once a client’s flight request is received, a flight request notification will be posted for all drone pilots to see. The flight request notification contains the flight notification id, suggested pricing of maximum and minimum values based on characteristics of the flight request and the flight bidding window start and stop date/time. A pilot may be notified for many flight requests or receive no notification. After receiving a flight request notification, a pilot may want to submit a bid with a specific price to try to get assigned to perform the requested drone flight. Pilots are not limited to just one bid submission. Pilots will have a specific window of time to submit a bid to conduct the flight. After the bidding window closes, the application would rank the bids according to an algorithm for the administrator to pick the “winner”. Thereafter, the application automatically notifies the pilots (whether win or lose) and the client of the result including the date the bid was conferred. The client will also be informed of the price of the bid.
Clients and pilots can register with their name and contact information including their address, phone number and email address for this drone service. Pilots also need to specify their location and drone pilot licence. The former so that they receive request flight notifications by a client that is near them. The administrator checks with the aviation authority that the drone pilot licence is valid before the pilot is allowed to receive flight notifications.
DroneTech expects the application to be perfect. Clients should be able to browse through a wide selection of drones. Clients should also be able to filter their search based on preferences such as make, model, maximum ceiling height, maximum flight duration, lift capacity and visible camera type. In addition, download speeds of drone flight results shall be monitored and to be at an acceptable level. As there is an existing web-based Drone Sales application, the Drone Service application should also be web-based. In addition, appropriate help should be available for users to fill in mandatory fields, in case of invalid input.
ICT340 Tutor-Marked Assignment
Question 1 (10 marks)
Here are 5 classifications of requirements:
-
(a) Functional requirement
-
(b) Non-functional requirement
-
(c) Design directive
-
(d) Implementation directive
-
(e) Platitude
Analyse the NSR and find one requirement that falls under each classification. Justify your classification.
State clearly if no requirement is found for a particular classification.
Question 2 (40 marks)
(10 marks)
Part (a) of this question is groupwork discussion with the start date being the first week of the Course Timetable available from e-Services through the Student Portal. If you do not see the Discussion link in the Canvas portal T-group by the end of the first week, please contact your tutor immediately.
You are asked to discuss with your fellow group members how to produce the structural model for the Drone Service application, i.e.:
-
the class diagram; and
-
the class description.
You must not post a complete class diagram to your group discussion board. The complete class diagram should only be submitted in your TMA solution document.
You should limit your discussions to identifying the classes, their attributes, the associations and relationships between the classes, and any invariants needed.
As part of your discussions, you are asked to submit two or three postings to the discussion board.
Examples of the types of postings that would gain you credit are:
-
initiating a new thread of discussion about some significant aspect of the application;
e.g., pointing out a problem in the requirements, suggesting how a particular aspect of the application might be modelled in terms of classes and associations or explaining why you think an invariant is needed;
-
a response to a posting, where you attempt to resolve a problem that another group member has identified;
-
a response to a posting, in which you state clearly and give evidence of why you agree or disagree with another group member’s suggestions, expanding significantly on what has been previously presented.
-
ICT340 Tutor-Marked Assignment
In all your postings, please maintain professional courtesy and avoid any comments that may give rise to unpleasant exchanges in the discussions. Remember that your comment may be correct even if someone else says it is incorrect.
Further notes:
-
Do not include attachments in your postings.
-
Justify each comment or suggestion you make. Simply saying “I agree. This is correct." or
"XYZ should be a class. What do you think?” is not enough. These are not meaningful
discussions and will not be considered.
-
Make postings that should be between a third and half a page long.
-
Initiate a new thread of discussion in one of your postings.
-
Focus on one aspect of the application, rather than attempting to cover all aspects of the
application. For instance, an association, the attributes of a particular class or an invariant. Your posting should still leave scope for other members of your discussion forum to make a significant contribution.
-
Postings that do not leave enough scope for the other members to contribute will be penalised.
Experience has shown that it is very difficult to obtain good marks for your postings if you attempt to make all your postings in a very short space of time. Time for reflection and measured judgement is an important part of this work.
(a) The NSR has limited information on the problem and requirements for the application. Analyse the NSR in your group Canvas discussion board and discuss possible classes, their attributes, the associations and relationships between the classes, and any invariants needed.
Copy TWO (2) postings you have contributed to the discussion.
For each posting, submit a screenshot AND a text copy of the posting.
(10 marks)
(b) Develop a structural model for the system design by submitting the class description for the application.
Your answer should identify the classes, their attributes and any hierarchical relationship(s), omitting any foreign key associations.
(15 marks)
(c) Complete the structural model for the system design, by appraising the associations among the set of classes in your solution to Question 2(b).
Construct the class association diagram in UML as your answer. Any derived association should be labelled, but you need not give the derivation.
(11 marks)
ICT340 Tutor-Marked Assignment
Question 3 (50 marks)
Special note:
The information provided here is not necessarily applicable to the previous questions.
Consider the following requirement to notify the pilots who are near the client when the client submits a flight request:
• Notify pilots near the client who submitted a flight request. From this, we extract the following information:
• Given a flight request id, the maximum and minimum price and the bidding window start and end date/time, find all the pilots whose location is the same as the flight request location and create flight notifications for these pilots.
From this, we can identify the use case: Notify Pilots near Flight Request, with the following specification:
Given: A flight request id, a max price, a min price, a start date/time and an end date/time Goal: For each pilot whose location is the same as the flight request location:
-
create a flight notification
-
associate the flight notification to the flight request
-
associate the flight notification to the pilot
Figure Q3 shows a fragment of the class-association diagram relevant to this case:
Figure Q3: class association diagram
(a) Using the ICT340 convention, add an Orchestrating Class to the class association diagram in Figure Q3 and show the navigation(s) required to locate the required object(s) at the start of the walk-through.
Your solution should show the Orchestrating Class, the association name, navigation arrow with multiplicities clearly.
(2 marks)
ICT340 Tutor-Marked Assignment
(b) Appraise the navigation for the association posts, by using the tabular format in Table Q3b below:
Class being modified
Association being implemented
Direction of navigation
Multiplicity
Instance variable added
Value of instance variable
Justification
posts
Table Q3b
(c) Construct a dynamic model of the system, by writing the complete walkthrough for the use case, Notify Pilots near Flight Request, using the following template:
Objective: ... Given: ... 1. Locate ... 2. ...
3. Locate ...
3.1 For each such instance ...
3.1.1 If ... 3.1.1.1 ...
Result:For the given flight request id, a flight notification is created with values max price, min price, start date/time and end date/time. This flight notification is associated with the flight request and pilot.
(13 marks)
-
(d) Develop a dynamic model of the system, by constructing a sequence diagram based on the walkthrough depicted in Question 3(c).
(17 marks)
-
(e) Consider the following messages as depicted in the sequence diagram in Question 3(c):
-
(i) the message sent to the orchestrating object;
-
(ii) the create message to create the FlightNotification object.
Implement the dynamic model, by coding the methods corresponding to these TWO (2) messages. Name the classes that should own the respective methods.
-
---- END OF ASSIGNMENT ----