Software Modeling

From Computer Science Wiki

Students must be able to interpret UML diagrams and system flow diagrams and write code which models the system.[edit]

UML (Unified Modeling Language) is a standardized visual language for representing and documenting software systems. It is used to model the structure and behavior of a system and is used in software engineering to visualize, specify, construct, and document the artifacts of a software-intensive system.

There are several types of UML diagrams that can be used to model different aspects of a system, including:

Class diagrams: model the static structure of a system, including the classes and relationships between them Object diagrams: show the instances of classes and the relationships between them Sequence diagrams: model the interactions between objects in a system over time, showing the messages that are passed between them State diagrams: model the behavior of a system by showing the states that an object can be in and the transitions between those states Use case diagrams: model the interactions between a system and its users, showing the actions that the system performs and the results of those actions System flow diagrams, also known as process flow diagrams or flow charts, are used to represent the flow of activities in a system. They consist of a series of boxes or symbols, connected by arrows, that represent the steps in a process. Flow charts are used to document, analyze, and communicate processes, and can be used to model a wide variety of systems, including business processes, manufacturing processes, software development processes, and more.

In order to write code that models a system, you will need to understand the requirements of the system and the design decisions that have been made. You can use the UML diagrams and system flow diagrams as a guide to help you understand the structure and behavior of the system and to identify the key components and interactions that need to be represented in your code. You will then need to use a programming language to implement the system according to the design specified in the diagrams.


Students must be able to construct UML diagrams that communicate how a system should function including the objects represented in the system and the relationships between the objects (inheritance, associations, dependency and aggregation) using the standardised UML symbols.[edit]

To construct a UML diagram that communicates how a system should function, you will need to follow a set of rules and conventions for creating and using the various types of UML diagrams. Here are some general guidelines for creating UML diagrams:

  1. Identify the purpose of the diagram. Is it to model the static structure of the system, the interactions between objects, the flow of activities, or some other aspect of the system?
  2. Identify the scope of the diagram. What parts of the system will be included in the diagram?
  3. Identify the objects that will be represented in the diagram. These may be classes, interfaces, objects, components, or some other type of element.
  4. Identify the relationships between the objects. These may include inheritance, associations, dependencies, and aggregations.

Use the standard UML symbols to represent the objects and relationships. These symbols include rectangles for classes, circles for objects, arrows for associations, and diamonds for inheritance relationships, among others.

Use labels and other annotations to provide additional detail and clarity.

Use layout and formatting to make the diagram easy to read and understand.

It may also be helpful to refer to the UML specification or other resources that provide more detailed information about the rules and conventions for creating UML diagrams.


Students must be able to construct system flow diagrams that communicate the flow of control in a system including the terminals, inputs/outputs, processes, decisions, and arrows using the standardised system flow diagram symbols.[edit]

To construct a system flow diagram, you will need to follow a set of rules and conventions for creating and using flow charts. Here are some general guidelines for creating system flow diagrams:

  1. Identify the purpose of the diagram. Is it to document a process, analyze a problem, or communicate a solution?
  2. Identify the scope of the diagram. What parts of the system will be included in the diagram?
  3. Identify the terminal points of the process. These may be the start and end points, as well as any other points where the process branches or terminates.
  4. Identify the inputs and outputs of the process. These may include data, materials, or other resources that are required or produced by the process.
  5. Identify the processes that make up the system. These may include activities, tasks, or operations that are performed in order to achieve a specific goal.
  6. Identify any decisions that need to be made within the process. These may include conditions that need to be evaluated or choices that need to be made based on the inputs or outputs of the process.

Use standard flow chart symbols to represent the terminal points, inputs/outputs, processes, and decisions. These symbols include rectangles for processes, diamonds for decisions, and arrows for the flow of control.

Use layout and formatting to make the diagram easy to read and understand.

It may also be helpful to refer to resources that provide more detailed information about the rules and conventions for creating flow charts.



Students must be able to interpret the following diagrams and explain their use: Data Flow Diagram (DFD); ERD diagram.[edit]

A Data Flow Diagram (DFD) is a graphical representation of the flow of data within a system. It shows the movement of data between different processes, data stores, and external entities, and is used to model the flow of information in a system.

DFDs are made up of four main components:

  1. External entities: These represent the sources and destinations of data within the system.
  2. Processes: These represent the activities or tasks that are performed on the data.
  3. Data stores: These represent the places where data is stored, such as databases or files.
  4. Data flows: These represent the movement of data between the different components of the system.

DFDs can be used to model the flow of information at different levels of detail, ranging from a high-level overview of the entire system to a detailed representation of individual processes. They are often used to identify the sources and destinations of data, as well as the processes that transform it, and can be used to improve the efficiency and effectiveness of a system by identifying bottlenecks or redundant steps.

An Entity Relationship Diagram (ERD) is a graphical representation of the entities in a database and the relationships between them. It shows the entities that make up a system and the relationships between them, and is used to design and model database systems.

An ERD consists of three main components:

  1. Entities: These represent the objects or concepts that are stored in the database, such as customers, orders, or products.
  2. Attributes: These represent the properties or characteristics of an entity, such as name, address, or price.
  3. Relationships: These represent the connections or associations between entities, such as a customer placing an order or a product being included in an order.

ERDs are used to model the logical structure of a database and to identify the relationships between different entities. They are often used in the design phase of database development to ensure that the database is structured in a way that is efficient and effective for storing and retrieving data.