SWEN90004
Modelling Complex Software Systems
Introduction
Artem Polyvyanyy, Nic Geard Lecture Introduction
Semester 1, 2021 ©The University of Melbourne
SWEN90004
(2021)
Introduction
1 / 14
Modelling Complex Software Systems
What is a system?
SWEN90004 (2021) Introduction 2 / 14
Modelling Complex Software Systems
What is a software system?
SWEN90004 (2021) Introduction 3 / 14
Modelling Complex Software Systems
What is a complex system?
SWEN90004 (2021) Introduction 4 / 14
Modelling Complex Software Systems
What is a model?
SWEN90004 (2021) Introduction 5 / 14
Subject aims
The main aims of the subject are for students to understand:
the usefulness of abstraction for thinking and communicating about complex systems
the use of mathematical theories and notations to model and analyse complex software systems (particularly concurrent systems); and
the use of software models to explore the behavior of and understand complex real world systems.
SWEN90004 (2021) Introduction
6 / 14
Subject structure
concurrency and processes
(weeks 1–2; Java)
formal models of concurrent systems
(weeks 4–6; FSP and LTL)
cellular automata, agent-based and network models
(weeks 7–11; NetLogo)
formal models of concurrent systems
(week 12; Petri nets)
SWEN90004 (2021) Introduction
7 / 14
Subject staff
Lecturer:
Nic Geard (Weeks 1–6):
nicholas.geard@unimelb.edu.au
Artem Polyvyanyy (Weeks 7–12):
artem.polyvyanyy@unimelb.edu.au
Tutors:
Dongge Liu Wenjun Zhou
SWEN90004 (2021) Introduction 8 / 14
Resources
LMS: http://www.lms.unimelb.edu.au/ announcements
lecture slides and notes tutorial exercises assignments
discussion board
further reading and resources lecture capture
SWEN90004 (2021) Introduction 9 / 14
Contact hours
Lectures: 2 hours per week
12:05–12:55 Monday (pre-recorded from week 2; consultation hour) 10:05–10:55 Friday (“live” and recorded)
Tutorials: 1 hour per week (starting week 2)
Worksheets will be made available for each tutorial (on LMS). You should at least attempt these exercises before arriving at the tutorial. Keeping up with these exercises is essential to ensure you have the skills needed to complete the assignments, and to do well in the exam.
SWEN90004 (2021) Introduction 10 / 14
Questions
Please feel free to ask questions in live classes.
Outside of class, our strong preference is to answer questions on the LMS discussion board. If you have a question, probably other students also have that question too. This way all students benefit.
If you ask us questions about subject content by email, we will post (anonymised) versions of these questions, and our response, to the LMS discussion board. However, we will answer questions posted directly to the discussion board more quickly.
From weeks 2–6 I will use the Monday lecture slot as a consultation hour. This will not be recorded.
SWEN90004 (2021) Introduction 11 / 14
Assumed background
An understanding of discrete mathematics, especially logic. A solid understanding of algorithms and data structures. Practical experience with Java.
SWEN90004 (2021) Introduction 12 / 14
Assessment
Assignment 1: implement and model a concurrent system; worth 20%. Assignment 2: replicate a complex model in Java/Python; worth 20%. Exam: a three-hour end-of-semester examination; worth 60%
The following is the algorithm for determining the final mark:
def finalMark(assignment1 , assignment2 , exam): if (assignment1 + assignment2 < 20):
result = NH # hurdle failure. elif: (exam < 30):
result = NH # hurdle failure. else:
result = assignment1 + assignment2 + exam return result
ie, to pass, you must receive 20/40 for assignments and 30/60 for the exam!
SWEN90004 (2021) Introduction
13 / 14