Systems design

Last updated

The basic study of system design is the understanding of component parts and their subsequent interaction with one another. [1]

Contents

Systems design has appeared in a variety of fields, including sustainability, [2] computer/software architecture, [3] and sociology. [4]

Product Development

If the broader topic of product development "blends the perspective of marketing, design, and manufacturing into a single approach to product development," [5] then design is the act of taking the marketing information and creating the design of the product to be manufactured.

Thus in product development, systems design involves the process of defining and developing systems, such as interfaces and data, for an electronic control system to satisfy specified requirements. Systems design could be seen as the application of systems theory to product development. There is some overlap with the disciplines of systems analysis, systems architecture and systems engineering. [6] [7]

Physical design

The physical design relates to the actual input and output processes of the system. This is explained in terms of how data is input into a system, how it is verified/authenticated, how it is processed, and how it is displayed. In physical design, the following requirements about the system are decided.

  1. Input requirement,
  2. Output requirements,
  3. Storage requirements,
  4. Processing requirements,
  5. System control and backup or recovery. [8]

Put another way, the physical portion of system design can generally be broken down into three sub-tasks:

  1. User Interface Design
  2. Data Design
  3. Process Design

Web System design

Online websites, such as Google, Twitter, Facebook, Amazon and Netflix are used by millions of users worldwide. A scalable, highly available system must be designed to accommodate an increasing number of users. Here are the things to consider in designing the system:

  1. Functional and non functional requirements
  2. Capacity estimation
  3. Database to use, Relational or NoSQL
  4. Vertical scaling, Horizontal scaling, Shard
  5. Load Balancing
  6. Primary-secondary Replication
  7. Cache and CDN
  8. Stateless and Stateful servers
  9. Datacenter georouting
  10. Message Queue, Publish-Subscribe Architecture
  11. Performance Metrics Monitoring and Logging
  12. Build, test, configure deploy automation
  13. Finding single point of failure
  14. API Rate Limiting
  15. Service Level Agreement

Machine Learning Systems Design

Machine learning systems design focuses on building scalable, reliable, and efficient systems that integrate machine learning (ML) models to solve real-world problems. ML systems require careful consideration of data pipelines, model training, and deployment infrastructure. ML systems are often used in applications such as recommendation engines, fraud detection, and natural language processing.

Key components to consider when designing ML systems include:

  1. Problem Definition: Clearly define the problem, data requirements, and evaluation metrics. Success criteria often involve accuracy, latency, and scalability. [9]
  2. Data Pipeline: Build automated pipelines to collect, clean, transform, and validate data. [10]
  3. Model Selection and Training: Choose appropriate algorithms (e.g., linear regression, decision trees, neural networks) and train models using frameworks like TensorFlow or PyTorch.
  4. Deployment and Serving: Deploy trained models to production environments using scalable architectures such as containerized services (e.g., Docker and Kubernetes). [11]
  5. Monitoring and Maintenance: Continuously monitor model performance, retrain as necessary, and ensure data drift is addressed. [12]

Designing an ML system involves balancing trade-offs between accuracy, latency, cost, and maintainability, while ensuring system scalability and reliability. The discipline overlaps with MLOps, a set of practices that unifies machine learning development and operations to ensure smooth deployment and lifecycle management of ML systems.

See also

Related Research Articles

<span class="mw-page-title-main">Systems engineering</span> Interdisciplinary field of engineering

Systems engineering is an interdisciplinary field of engineering and engineering management that focuses on how to design, integrate, and manage complex systems over their life cycles. At its core, systems engineering utilizes systems thinking principles to organize this body of knowledge. The individual outcome of such efforts, an engineered system, can be defined as a combination of components that work in synergy to collectively perform a useful function.

The waterfall model is a breakdown of developmental activities into linear sequential phases, meaning that each phase is passed down onto each other, where each phase depends on the deliverables of the previous one and corresponds to a specialization of tasks. This approach is typical for certain areas of engineering design. In software development, it tends to be among the less iterative and flexible approaches, as progress flows in largely one direction through the phases of conception, initiation, analysis, design, construction, testing, deployment, and maintenance. The waterfall model is the earliest Systems Development Life Cycle (SDLC) approach used in software development.

Systems analysis is "the process of studying a procedure or business to identify its goal and purposes and create systems and procedures that will efficiently achieve them". Another view sees systems analysis as a problem-solving technique that breaks a system down into its component pieces and analyses how well those parts work and interact to accomplish their purpose.

<span class="mw-page-title-main">Systems development life cycle</span> Systems engineering terms

In systems engineering, information systems and software engineering, the systems development life cycle (SDLC), also referred to as the application development life cycle, is a process for planning, creating, testing, and deploying an information system. The SDLC concept applies to a range of hardware and software configurations, as a system can be composed of hardware only, software only, or a combination of both. There are usually six stages in this cycle: requirement analysis, design, development and testing, implementation, documentation, and evaluation.

<span class="mw-page-title-main">Product lifecycle</span> Duration of processing of products from inception, to engineering, design & manufacture

In industry, product lifecycle management (PLM) is the process of managing the entire lifecycle of a product from its inception through the engineering, design and manufacture, as well as the service and disposal of manufactured products. PLM integrates people, data, processes, and business systems and provides a product information backbone for companies and their extended enterprises.

Object-oriented analysis and design (OOAD) is a technical approach for analyzing and designing an application, system, or business by applying object-oriented programming, as well as using visual modeling throughout the software development process to guide stakeholder communication and product quality.

<span class="mw-page-title-main">Enterprise modelling</span>

Enterprise modelling is the abstract representation, description and definition of the structure, processes, information and resources of an identifiable business, government body, or other large organization.

Axiomatic Product Development Lifecycle (APDL) (also known as Transdisciplinary System Development Lifecycle (TSDL), and Transdisciplinary Product Development Lifecycle (TPDL) ) is a systems engineering product development model proposed by Bulent Gumus that extends the Axiomatic design (AD) method. APDL covers the whole product lifecycle including early factors that affect the entire cycle such as development testing, input constraints and system components.

In software engineering, a software development process or software development life cycle (SDLC) is a process of planning and managing software development. It typically involves dividing software development work into smaller, parallel, or sequential steps or sub-processes to improve design and/or product management. The methodology may include the pre-definition of specific deliverables and artifacts that are created and completed by a project team to develop or maintain an application.

Kevin C. Dittman is an American computer scientist, IT consultant and Professor of Information Technology at the Purdue University, especially known for his textbook Systems analysis and design methods written with Lonnie D. Bentley and Jeffrey L. Whitten, which is in its 7th edition.

The Lifecycle Modeling Language (LML) is an open-standard modeling language designed for systems engineering. It supports the full lifecycle: conceptual, utilization, support and retirement stages. Along with the integration of all lifecycle disciplines including, program management, systems and design engineering, verification and validation, deployment and maintenance into one framework. LML was originally designed by the LML steering committee. The specification was published October 17, 2013.

<span class="mw-page-title-main">Enterprise Architect (software)</span> Visual modeling and design tool

Sparx Systems Enterprise Architect is a visual modeling and design tool based on the OMG UML. The platform supports: the design and construction of software systems; modeling business processes; and modeling industry based domains. It is used by businesses and organizations to not only model the architecture of their systems, but to process the implementation of these models across the full application development life-cycle.

Apache SystemDS is an open source ML system for the end-to-end data science lifecycle.

Predictive engineering analytics (PEA) is a development approach for the manufacturing industry that helps with the design of complex products. It concerns the introduction of new software tools, the integration between those, and a refinement of simulation and testing processes to improve collaboration between analysis teams that handle different applications. This is combined with intelligent reporting and data analytics. The objective is to let simulation drive the design, to predict product behavior rather than to react on issues which may arise, and to install a process that lets design continue after product delivery.

Industrial artificial intelligence, or industrial AI, usually refers to the application of artificial intelligence to industry and business. Unlike general artificial intelligence which is a frontier research discipline to build computerized systems that perform tasks requiring human intelligence, industrial AI is more concerned with the application of such technologies to address industrial pain-points for customer value creation, productivity improvement, cost reduction, site optimization, predictive analysis and insight discovery.

Automated machine learning (AutoML) is the process of automating the tasks of applying machine learning to real-world problems. It is the combination of automation and ML.

<span class="mw-page-title-main">MLOps</span> Approach to machine learning lifecycle management

MLOps or ML Ops is a paradigm that aims to deploy and maintain machine learning models in production reliably and efficiently. The word is a compound of "machine learning" and the continuous delivery practice (CI/CD) of DevOps in the software field. Machine learning models are tested and developed in isolated experimental systems. When an algorithm is ready to be launched, MLOps is practiced between Data Scientists, DevOps, and Machine Learning engineers to transition the algorithm to production systems. Similar to DevOps or DataOps approaches, MLOps seeks to increase automation and improve the quality of production models, while also focusing on business and regulatory requirements. While MLOps started as a set of best practices, it is slowly evolving into an independent approach to ML lifecycle management. MLOps applies to the entire lifecycle - from integrating with model generation, orchestration, and deployment, to health, diagnostics, governance, and business metrics.

Kubeflow is an open-source platform for machine learning and MLOps on Kubernetes introduced by Google. The different stages in a typical machine learning lifecycle are represented with different software components in Kubeflow, including model development (Kubeflow Notebooks), model training (Kubeflow Pipelines,Kubeflow Training Operator), model serving (KServe), and automated machine learning (Katib).

<span class="mw-page-title-main">ModelOps</span>

ModelOps, as defined by Gartner, "is focused primarily on the governance and lifecycle management of a wide range of operationalized artificial intelligence (AI) and decision models, including machine learning, knowledge graphs, rules, optimization, linguistic and agent-based models" in Multi-Agent Systems. "ModelOps lies at the heart of any enterprise AI strategy". It orchestrates the model lifecycles of all models in production across the entire enterprise, from putting a model into production, then evaluating and updating the resulting application according to a set of governance rules, including both technical and business key performance indicators (KPI's). It grants business domain experts the capability to evaluate AI models in production, independent of data scientists.

Artificial intelligence engineering is a technical discipline that focuses on the design, development, and deployment of AI systems. AI engineering involves applying engineering principles and methodologies to create scalable, efficient, and reliable AI-based solutions. It merges aspects of data engineering and software engineering to create real-world applications in diverse domains such as healthcare, finance, autonomous systems, and industrial automation.

References

  1. Papanek, Victor J. (1984) [1972]. Design for the Real World: Human Ecology and Social Change (2nd ed.). Chicago: Academy Chicago. p. 276. ISBN   0897331532. OCLC   12343986.
  2. Blizzard, Jacqualyn; Klotz, Leidy (2012). "A framework for sustainable whole systems design". R Design Studies. 33 (5): 456–479. doi:10.1016/j.destud.2012.03.001.
  3. Lukosh, Heidi; Bekebrede, Geertje; Kurapati, Shalini; Lukosch, Stephan (2018). "A Scientific Foundation of Simulation Games for the Analysis and Design of Complex Systems". Simulation & Gaming. 49 (3): 279–314. doi:10.1177/1046878118768858. PMC   6187265 . PMID   30369775.
  4. Werner, Ulrich (September 1987). "Critical heuristics of social systems design". European Journal of Operational Research. 31 (3): 276-283. doi:10.1016/0377-2217(87)90036-1.
  5. Ulrich, Karl T.; Eppinger, Steven D. (2000). Product Design and Development (Second ed.). Boston: Irwin McGraw-Hill.
  6. PD-icon.svg This article incorporates public domain material from Federal Standard 1037C. General Services Administration. Archived from the original on 2022-01-22.
  7. PD-icon.svg This article incorporates public domain material from Dictionary of Military and Associated Terms . United States Department of Defense.
  8. Arden, Trevor (1991). Information technology applications. London: Pitman. ISBN   978-0-273-03470-4.
  9. Sorvisto, Dayne (2023). MLOps Lifecycle Toolkit: A Software Engineering Roadmap for Designing, Deploying, and Scaling Stochastic Systems. Apress. ISBN   978-1-4842-9641-7.
  10. Polyzotis, Neoklis (2018). "Data Management Challenges in Production Machine Learning". Proceedings of the 2017 ACM SIGMOD International Conference on Management of Data. doi:10.1145/3035918.3054782.
  11. Huyen, Chip (2022). Designing Machine Learning Systems. O'Reilly Media. ISBN   978-1-098-10796-3.
  12. "Machine Learning at Scale: Challenges and Best Practices". Google Cloud Blog. 2020.

Further reading