SWEN90004 Modelling Complex Software Systems
Assignment 1b, 2024
Objective
To use a higher-level modelling language to specify and reason about a concurrent system.
Background and context
Assignment 1 has two parts. The first part, 1a, was worth 12.5% of your final mark; this part, 1b, is worth 12.5%. In the first part (which you should complete before attempting this part) you designed and implemented (in Java) a concurrent simulation of a hospital emergency department. Now your task is to model that system using FSP, to use LTSA to check your
model, and to identify and mitigate any problems that you discover through modelling.
The tasks
1. Model: The first task is to model your implementation from Assignment 1a in FSP. That is, reverse engineer an FSP model from your Java implementation. Your model should
contain comments that explain the design and its components. NB: If your implementation in Assignment 1a was incomplete, or too incorrect to form the basis of an FSP model, you
may wish to construct your model based on the system description in the Assignment 1a specification.
2. Check: Specify what you believe are the relevant safety and liveness properties for your FSP model. Note: for liveness, it may be the case that only a small number of properties
are required. Use LTSA to check these properties.
3. Modify: You will most likely have discovered, either while completing Assignment 1a, or while completing Tasks 1 and 2 of this Assignment, that there is a potential issue with the
operation of the system.)
Propose at least one modification to the design of the system that mitigates this problem and update your FSP model. If you wish, you may also implement this modification in
your original Java implementation of the system, and satisfy yourself that it now behaves “correctly” (ie, does not violate safety or liveness properties). Note: You do not need to
re-submit your Java code!
Be sure to create a copy of the file containing your original FSP model. You are required to submit both the original model from Task 1, and the modified model from Task 3 as separate files.
4. Discuss: Discuss your original and modified models. Points you may wish to address include:
• What (if any) problems did you find in your original model as a result of using LTSA?
• Had you identified these in your Java implementation?
• If not, why do you think you picked these up now and not before submitting Assign ment 1a?
• What was the reasoning behind the changes you suggested in your modified model?
Are there any trade-offs in system performance associated with your suggestion?
• If you did not find problems with your original implementation, were you convinced when you submitted Assignment 1a that no problems existed? Why did you believe this? Do you still believe there are no problems?
Keep your discussion to no more than 500 words.
Procedure and assessment
The assignment should be completed by students individually. A late submission will attract a penalty of 1 mark for every calendar day it is late. If you have a reason that you require an
extension, email Nic well before the due date to discuss this.
To tackle the assignment, first work through (and understand) the examples from lectures, and do the workshop exercises. FSP is not difficult—it is simpler than most programming
languages, and much simpler than languages like Java. However, as with other languages, the way to master it is to use it, and to learn by doing. Trying to do the assignment straight up
means you may struggle. Work through some easier examples first.
my wechat:_0206girl
Don't hesitate to contact me