System design creates the architecture, modules, components, many interfaces, and the data that flows through them.
System analysis breaks down a system into its constituent parts to determine how effectively they work together to meet the specified goals.
The goal of the System Design process is to give enough precise data and knowledge about the system and its components to allow for implementation following the architectural entities described in the system architecture’s models and views.
A System’s Elements
This conceptual model describes a system’s structure, behavior, and other aspects. Flowcharts may be used to depict and visualize the architecture.
These are components of a system that handle a single job, and the system has various modules.
It performs a specific function or a set of related parts. Modules make up the structure.
Its common boundary allows system components to communicate and exchange information.
It is information and data flow management.
Major System Design Tasks
During the system design process, many significant tasks must be completed.
1. Create a new design definition
- Plan and identify the technologies used to build and implement the system’s components and physical interfaces.
- Determine whether technologies and system components are in danger of becoming outdated or evolving throughout the system’s operating stage. Then, make preparations for their eventual replacement.
- Document the design definition approach, including the need for and specifications for any enabling systems, goods, or services required to complete the design.
2. Determine the design parameters
- Define the design criteria related to the architectural features and ensure they can be implemented.
- Define any interfaces that were not established during the System Architecture process or need to be defined as the design becomes more detailed.
- Define and record each system element’s design attributes.
3. Consider your options for getting system components
- Consider your design alternatives.
- Choose the most appropriate options.
- The remainder of the design definition and implementation processes are employed if the choice to create the system element is made. In addition, the acquisition method may be utilized to get a system element if the option is to obtain or reuse it.
4. Keep track of the design
- Capture and keep the reasoning for all design and architectural choices and alternatives.
- Evaluate and maintain control over the design attributes’ progression.
Factors Influencing Technology Trade-offs in System Design
Size of the Product
For instance, business software firms that develop system-level software premium on stability since their clients rely on them. Therefore, before a modification can be released, it must be thoroughly tested and often approved.
Meanwhile, consumer internet firms devote time and resources to make their user interfaces appealing so that consumers will want to use them. They’re willing to put their trust in someone else. Because many of them are web-based, companies can iterate fast and provide updates often.
Learning new technology takes time. In this case, the trade-offs will be based on which stack/technology will meet the given delivery dates. If transitioning to a new stack/technology would cause a significant shift in delivery dates and significant discomfort to stakeholders, the change may be postponed until a more appropriate time.
On a broader scale, technology selections are made based on which option is the most cost-efficient. For example, a comparison may be made between purchasing an off-the-shelf system and modifying it against constructing a new system.
Technology trade-offs are also made depending on which technology is more efficient, such as using ReactJs or AngularJs for a front-end application.
User Support and Experience
The quantity of support and documentation available for a particular technology may also influence decision-making. Because of the vast number of resources available to support it, working with technologies that have a solid support base, extensive documentation, and a pleasant user experience is considerably more straightforward. It takes a relatively short time to ramp upon.
In this situation, maintainability refers to the simplicity with which a product may be updated to remedy mistakes, patch issues, and add new features. Decisions on trade-offs will be determined based on the technology’s ability to be maintained.
The trade-offs are determined based on technology that regularly performs well and upgrades to more efficient versions in this situation.
Technology trade-offs are also made to favor more scalable technologies and handle increased loads without compromising system efficiency.
Model View Controller (MVC) Design Pattern
The Model View Controller (MVC) design pattern includes a data model, presentation information, and control information are all included in the Model View Controller (MVC) design pattern.
MVC is primarily concerned with an application’s user interface/interaction layer.
The user sees the view, which the model updates, then modified by the controller in the MVC architecture.
The “model” holds pure application data; no logic explaining how to show the data to a user is included. They are the components of an application that implement the logic for the data domain. They use a database to obtain and store model states.
The “view” shows the user the model’s data. The view can only be used to get data from the model. They are the components that deliver the program’s user interface (UI).
Between the view and the model lies the “controller.” It responds to events caused by the view by executing the necessary instructions. They’re the parts that manage user interaction, deal with the model, and finally choose a view to render that shows the user interface.
The MVC design pattern advantages
- Multiple developers may work on the model, controller, and views simultaneously.
- MVC allows for the logical grouping of similar activities on a controller. A given model’s views are also grouped.
- Little coupling — The MVC framework is designed to have low coupling between models, views, and controllers.
- Multiple views are possible for models.
- Ease of modification – Future development or change is more straightforward due to the separation of tasks.
The MVC Design Pattern Disadvantages
The ability to master a variety of technologies has become the standard. Therefore, MVC developers must be proficient in a variety of technologies.