Preliminary Software Engineering
Unit 1 - Programming Fundamentals
Unit 1 - Programming Fundamentals
  • 1 - Programming Fundamentals
    • Programming Fundamentals Content
  • 2 - Python
    • Expected Python Knowledge
    • GitHub
    • Learning Python
    • Data Structures and File Management
      • Data Structures
        • Lists
        • Arrays
          • Single and Multi-Dimensional Arrays
        • Lists vs Arrays
          • Activities
        • Tuples
        • Sets
        • Dictionaries
          • Activities
      • File Handling
        • Loops, Lists, Dictionaries
        • Activities
  • 3 - Theory Content
    • Theory Content Explained
      • NESA Directional Verbs
      • Responding to Directional Verbs
  • 4 - Software Development and Management
    • Approaches to Software Development
      • Waterfall Model
      • Agile Model
      • Summary: Waterfall vs Agile
      • Activities
    • Software Development Steps
      • Sample Exam Question
      • Requirements Definition
        • Understanding the Need
        • Key Questions to Ask
        • Examples
        • Activities
        • Sample Exam Question
      • Determining Specifications
        • Functional Specifications
        • Non-Functional Specifications
        • Activities
      • Design
        • Top-Down Design Approach
        • Bottom-Up Design Approach
      • Development
        • Optimising Code
      • Integration
        • Example: Payment Program
        • Activity
        • Application Programming Interface (API)
          • Example: OpenWeather API
          • Example: WeatherAPI
          • Activity: Prepare Spells
      • Testing and Debugging
        • Test Data
          • Activities
        • Testing the System
          • Activities
        • Debugging
          • Types of Errors
            • Activities
          • Python Debugger
            • Activities
          • VS Code Debugger
            • Activities
      • Installation
        • Activities
        • Sample Exam Question
      • Maintenance
  • Charts and Algorithms
    • Example: IPO Charts and Pseudocode
      • Activities
    • Algorithms, Flowcharts, Pseudocode
      • Pseudocode Activities
      • Flowchart Activities
      • Sample Exam Questions
    • Structure Charts
      • Activities
      • Sample Exam Questions
    • Data Flow Diagrams
      • Activities
    • Data Dictionaries
      • Activities
    • Decision Trees
      • Activities
      • Sample Exam Questions
    • Gantt Chart
    • Class Diagrams
      • Sample Exam Question
    • Storyboards
      • Sample Exam Question
  • Testing and Debugging
    • Test Data
      • Activities
    • Testing the System
      • Activities
    • Debugging
      • Types of Errors
        • Activities
      • Python Debugger
        • Activities
      • VS Code Debugger
        • Activities
  • Computational Thinking
    • Decomposition
    • Abstraction
    • Activities
  • Version Control
    • Git
    • GitHub
    • Activities
  • Number Systems
    • Binary Systems
    • Hexadecimal Numbers
    • Using Two's Complement
    • Activities
  • 5 - Assessment Task 1
    • Data Science Project
      • Before we Start
        • Setting up GitHub Repository
        • Setting Up Markdown Documentation
      • Examples of API Usage
        • Starter Code: NASA Scenario
        • Starter Code: Spell Book
        • Starter: Pokédex Explorer
        • Starter Code: Weather App
        • Example: OpenWeather API
        • Example: WeatherAPI
        • Example: Prepare Spells
    • Task Guide
      • Requirements Definition
      • Determining Specifications
        • Use Cases
      • Design
        • Gantt Chart
        • Structure Chart
        • Algorithms
        • Data Dictionary
      • Development
        • Comments vs DocStrings
        • UI - main.py
        • Create Python Module
          • Example: NASA Module
          • Example: WeatherFetch Module
          • Example: SpellBook Module
      • Integration
        • Example: Pokedex
      • Testing and Debugging
        • Commit Changes
      • Installation
      • Maintenance
    • Submitting Your Task
Powered by GitBook
On this page
  1. Charts and Algorithms

Class Diagrams

PreviousGantt ChartNextSample Exam Question

Last updated 3 months ago

PLEASE NOTE: We will revisit Class Diagrams in Term 2, so DO NOT worry too much about understanding them yet! There are NO ACTIVITIES here.

Class diagrams provide a visual representation of systems that are implemented using the object-oriented paradigm. They model classes, their attributes and methods, and the relationships between classes.

In software engineering, class diagrams are essential tools for planning and understanding the structure of an application. They help developers and stakeholders visualise how different components of a system interact and how data flows between these components.

A class diagram typically consists of several classes, each represented as a rectangle divided into three sections: the top section contains the class name, the middle section lists the attributes (or properties) of the class, and the bottom section shows the methods (or functions) that operate on the attributes.

The relationships between classes in a class diagram are depicted using various types of lines, each representing a different type of relationship. These relationships help developers understand how objects in the system are connected, how they interact, and how changes in one class may affect others.

By using class diagrams, developers can effectively plan and communicate the structure of a software system, ensuring that all team members have a shared understanding of the system's architecture. They are not only useful during the design phase but also serve as valuable documentation that can be referred to throughout the software development lifecycle. This helps in maintaining the system, extending its functionality, and onboarding new team members.

Example

In the above school management system:

  • Each Person has the attributes firstName and lastName, and the printFullName() method will display these.

  • Both a Student and Parent will inherit attributes from Person (parents and students all have full names).

  • Each Parent has an occupation and information on whether they are alumni (true/false).

  • Each Student has a studentID and a homeroom. Each student can be enrolled into a class with the enrolClass() method.

  • Each Subject has 1 or more studentIDs and a subjectName. Each subject can display the list of students with the printStudentList() method.

  • Each Student has 1 or more Subjects.

  • Each Subject has 0 or more Students.

From HSC Course Specifications
From HSC Course Specifications