Answer all questions. (Total 100 marks)
Read the negotiated statement of requirements (NSR) for a discussion forum application and answer the questions that follow.
A discussion forum provides a convenient and fast way for electronic exchange of ideas, thoughts, opinions and information. There are many types of discussion forums with a variety of functions and features.
Question 1 (10 marks)
Consider the following requirements, where (c), (d) and (e) are undesirable requirements:
(a) Functional requirement
(b) Non–functional requirement
(c) Design directive
(d) Implementation directive
(e) Platitude
Analyse the NSR and specify a new requirement for the discussion forum application, each of which falls under ONE (1) of the above classification. Justify your classification. (10 marks)
Question 2 (33 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 discussion forum 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.
(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. (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.
(8 marks)
(c) Complete the structural model for the system design, by appraising the associations among the set of classes in your solution to Q2 (b). Construct the class association diagram in UML as your answer. Any derived association should be labelled, but you need not give the derivation. (15 marks)
Question 3 (57 marks)
Special note:
The information provided here is not necessarily applicable to the previous questions.
For the discussion forum application, the following requirement is given:
The application displays posts that contain a target word.
From this, we extract the following information:
Given a string, for all topics, all posts that contain the string are displayed.
From this, we can identify the use case: Search Posts, with the following specification:
Given: A string
Goal: For each topic, find each post that contains the string and display the post information and the user who made that post
Figure Q3 shows a fragment of the class–association diagram which is relevant to this case:
Figure Q3: class association diagram
You may assume:
the post information is the dateTime and content attributes of the Post class.
the User class has the name attribute.
replies to posts are not included in this application feature.
(a) Using the ICT340 convention, add an Orchestrating Class to the class association
diagram in Figure Q3 and show the navigation 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.
(3 marks)
(b) Appraise the associations among the set of classes, by using the tabular format in Table
Q3(b) below:
Class being modified
Association being implemented has
Direction of navigation
Multiplicity
Instance variable added
Value of instance variable
Justification
Table Q3(b)
(9 marks)
SINGAPORE UNIVERSITY OF SOCIAL SCIENCES (SUSS) TMA – Page 6 of 6
(c) Construct a dynamic model of the system, by writing the complete walkthrough for the
use case, Search Posts, using the following template:
Objective: To find all posts for a target word
Given: …
1. Locate …
1.1 For each such instance, …
1.1.1 Locate …
1.1.2 For each such instance, …
1.1.1.1 If …
1.1.1.1.1 Display …
1.1.1.1.2 …
Result: For the target word, each post’s date/time and contents are displayed. The name
of the user who made the post is also displayed.
(12 marks)
(d) Develop a dynamic model of the application, by constructing a sequence diagram based
on the walkthrough depicted in Q3(c).
(20 marks)
(e) Consider the following messages as depicted in the sequence diagram in Q3(d):
(i) the message sent to the orchestrating object;
(ii) the message sent by the Topic object to the Post object.
Implement the dynamic model, by coding the methods corresponding to these TWO (2)
messages. Name the classes that should own the respective methods.
(13 marks