COMP1531

🐶Software Engineering

8.1 - Design - System Modelling


Author: Hayden Smith 2021

In this lecture

Why?

  • A critical element of software design is to be able to translate complex system ideas into something high level and understandable

What?

  • Conceptual Model
  • State Diagrams

 

What's a model?

Conceptual Modelling

  • A model is an attempt to represent a more complex system
  • A conceptual model captures a system in a conceptual way
    • High level abstraction
    • Tends to be diagramatic or visual

Conceptual models software engineers care about

  • Data models
  • Mathematical models
  • Domain models
  • Data flow models
  • State transition models (today)

How models are used

  • To predict future states of affairs.
  • Understand the current state of affairs.
  • Determine the past state of affairs.
  • To convey the fundamental principles and basic functionality of systems (communication)

Communicating models

  • Four fundamental objectives of communicating with a conceptual model:
    1. Enhance an individual's understanding of the representative system
    2. Facilitate efficient conveyance of system details between stakeholders
    3. Provide a point of reference for system designers to extract system specifications
    4. Document the system for future reference and provide a means for collaboration

Conceptual Models

  • Structural – Emphasise the static structure of the system
    • UML class diagrams (object oriented programming)
    • ER diagrams (database design)
    • ... many others
  • Behavioural - Emphasise the dynamic behaviour
    • State diagrams (state machines)
    • Use case diagram (user flows)
    • ... some others

 

We will discuss some of these, and explore state diagrams in detail.

State Diagrams

  • State machines made up of a finite number of states.
  • The machine can be transitioned from one state to another through an action
  • Simple example: a door

State diagrams

  • A diagrammatic representation of a state.
  • Some variation in notation.
  • Typically: states are circles, transitions are labelled arrows connecting them

State machines

  • Useful for modelling systems that have clearly defined states. For example:
    • UIs with different screens
    • Network protocols
    • Conversational interfaces
 

Parking meter

Parking meter

Opal Card

  • Can we model the opal card system as a state machine?

For fun: A complex conceptual model

  • In 2015 a UNSW student wrote a conceptual model "Gallium" based off of previous research to represent the energy usage of a solar car as it drove from Darwin to Adelaide
  • The model was written in python and modeled the physical system of the vehicle and it's energy consumption over a fixed distance in response to a dynamic environmental and physical characteristics

 

The model calculated the energy usage across a number of fixed-distance intervals (e.g. a 200 metre stretch of road) over a 3000km journey across Australia.

Wind Speed

Wind Direction

Solar Output

Cloud cover

Elevation

Speed of vehicle

Orientation of vehicle

Weight of vehicle

Power usage across intervals

Energy usage

For each of ~10,000 interval

Feedback

COMP1531 21T3 - 8.1 - System Modelling

By haydensmith

COMP1531 21T3 - 8.1 - System Modelling

  • 1,670