System designing is the process of designing system elements such as architectures, modules, components, different interfaces of those components. Its the process of defining the lowest level entities in a software. It is the backbone of any software.

System design is of two types

  1. Low level design
  2. High level design

There is no fine line or a separator difference between the two that upto this part of software is low level and above this is high level but mostly,

Low level defines reusable entities and relationship between them as well as the object creation and dependencies.

High level defines functionalities into components and the management of those components into a system.

These concepts are well explained in the below presentation along with an example of tic-tac-toe.