System Design
What does it mean to design a system?
When you build a website, or start a company you need to design your system. System design is the the creation, defining, and development of systems in order to satisfy user requirements.
Software is standardized which means systems can now be modular, and this increases the importance of software engineering. Unified Modeling Language (UML) is the standard language which is supposed to provide a way to visualize the design of a system. The idea of UML is to blueprint elements such as activities (jobs), components of the system (how they interact with software components), how the system will run, how components and interfaces interact, and external user interface.
UML designs have static (structural) views which emphasize the static structure of the system using objects, attributers, operations, and relationships. Including class diagrams and composite structure diagrams. For example a component diagram describes how a software system is split up into components and shows the dependencies amongst these components.
It also has dynamic (behavioral) view which emphasizes the dynamic behavior of the system through displaying the internal states of objects. This is used to describe how software/ideas are supposed to function and interact with each other. Logical design pertains to the abstract idea of how the data flows, inputs/outputs to the system, etc.
The physical design describes how data is actually input into the system, and is usually broken down into user interface, data design, and process design. User interface design is concerned with how users add information to the system, and how it presents that information back to them. Data design is concerned with how the data is represented and stored within the system. Process design is concerned with how data moves through the system, how/where it is validated, etc.