Systems architecture: Difference between revisions

Content deleted Content added
Creacon (talk | contribs)
OAbot (talk | contribs)
m Open access bot: doi updated in citation with #oabot.
 
(315 intermediate revisions by more than 100 users not shown)
Line 1:
{{Short description|Conceptual model of a system}}
In [[engineering]], a '''system architecture''' or '''systems architecture''' is related to some aspect of the [[structure]] of a [[system]]. There is no strict definition of which aspects constitutes a system architecture, and various organizations define it in different ways, including:
[[File:Computer system architecture.svg|thumb|right|Example of a high-level systems architecture for a computer]]
 
A '''system architecture''' is the [[conceptual model]] that defines the [[structure]], [[behavior]], and [[view model|views]] of a [[system]].<ref>Hannu Jaakkoррмшлинla and Bernhard Thalheim. (2011) "Architecture-driven modelling methodologies." In: ''Proceedings of the 2011 conference on Information Modelling and Knowledge Bases XXII''. Anneli Heimbürger et al. (eds). IOS Press. p. 98</ref> An architecture description is a formal description and representation of a system, organized in a way that supports reasoning about the [[structure]]s and [[behavior]]s of the system.
# ''The fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution.'' From [[ANSI]]/[[IEEE]] [[Ieee_1471|1471-2000]].
# ''The composite of the design architectures for products and their life cycle processes.'' From [[IEEE]] 1220-1998 as found at [http://www.acq.osd.mil/osjtf/termsdef.html their glossary].
# ''A representation of a system in which there is a mapping of functionality onto [[hardware]] and [[software component]]s, a mapping of the [[software architecture]] onto the [[hardware architecture]], and human interaction with these components.'' From the [http://www.cmu.edu Carnegie Mellon University]'s [http://www.sei.cmu.edu Software Engineering Institute] as found at [http://www.sei.cmu.edu/opensystems/glossary.html its glossary].
# ''An allocated arrangement of physical elements which provides the design solution for a consumer product or life-cycle process intended to satisfy the requirements of the functional architecture and the requirements baseline.'' From [http://www.manningaffordability.com/s&tweb/HEResource/Other/Definitions.htm The Human Engineering Home Page's Glossary].
# ''An architecture is the most important, pervasive, top-level, strategic inventions, decisions, and their associated rationales about the overall structure (i.e., essential elements and their relationships) and associated characteristics and behavior.'' From [http://www.opfro.org/Components/WorkProducts/ArchitectureSet/Architectures/Architectures.html OPEN Process Framework (OPF) Repository].
# ''A description of the design and contents of a computer system. If documented, it may include information such as a detailed inventory of current hardware, software and networking capabilities; a description of long-range plans and priorities for future purchases, and a plan for upgrading and/or replacing dated equipment and software.'' From [http://nces.ed.gov/pubs98/tech/glossary.asp The National Center for Education Statistics glossary].
# ''A formal description of a system, or a detailed plan of the system at component level to guide its implementation.'' [[TOGAF]]
# ''The structure of components, their interrelationships, and the principles and guidelines governing their design and evolution over time.'' [[TOGAF]]
 
A system architecture can consist of system [[System|components]] and the sub-systems developed, that will work together to implement the overall system. There have been efforts to formalize languages to describe system architecture, collectively these are called [[architecture description languages]] (ADLs).<ref>Paul C. Clements (1996) "[http://www.sei.cmu.edu/library/assets/Survey_of_ADLs.pdf A survey of architecture description languages]." Proceedings of the 8th international workshop on software specification and design. IEEE Computer Society, 1996.</ref><ref>Nenad Medvidovic and Richard N. Taylor (2000). "[https://web.archive.org/web/20100611222506/http://ftp.ics.uci.edu/pub/arch/papers/TR-UCI-ICS-97-02.pdf A classification and comparison framework for software architecture description languages.]" Software Engineering, IEEE Transactions on 26.1 (2000): 70-93.</ref><ref name=":0">{{Citation |last=Nejad |first=Bobby |title=The Physical Architecture |date=2023 |url=https://doi.org/10.1007/978-3-031-15900-8_13 |work=Introduction to Satellite Ground Segment Systems Engineering: Principles and Operational Aspects |series=Space Technology Library |volume=41 |pages=187–197 |editor-last=Nejad |editor-first=Bobby |place=Cham |publisher=Springer International Publishing |language=en |doi=10.1007/978-3-031-15900-8_13 |isbn=978-3-031-15900-8 |access-date=2022-12-07|url-access=subscription }}</ref>
“An architecture description is a formal description of a system, organized in a way that supports reasoning about the structural properties of the system. It defines the [system] components or building blocks...and provides a plan from which products can be procured, and systems developed, that will work together to implement the overall system. It thus enables you to manage...investment in a way that meets [business] needs...” (TOGAF)
 
== Overview ==
Systems architecture can best be thought of as a representation of an engineered (or To Be Engineered) system, and the [[process]] and discipline for effectively implementing the [[design]](s) for such a system. Such a system may consist of [[information]] and/or [[hardware]] and/or [[software]].
Various organizations can define systems architecture in different ways, including:
 
#* ''The fundamental organization of a system, embodied in its components, their relationships to each other and to the environment, and the principles governing its design and evolution.'' <ref>From [[ANSI]]/[[IEEE]] [[Ieee_1471IEEE 1471|1471-2000]].</ref>
It is a '''representation''' because it is used to convey the informational content of the [[wiktionary:element|elements]] comprising a system, the relationships among those elements, and the [[wiktionary:rule|rules]] governing those relationships.
#* ''A representation of a system, in which there isincluding a mapping of functionality onto [[hardware]] and [[software component]]s, a mapping of the [[software architecture]] onto the [[hardware architecture]], and human interaction with these components.'' <ref>From the [http://www.cmu.edu Carnegie Mellon University]'s [http://www.sei.cmu.edu Software Engineering Institute] as found at [http://www.sei.cmu.edu</opensystems/glossary.html its glossary].ref>
#* ''An allocated arrangement of physical elements which provides the design solution for a consumer product or life-cycle process intended to satisfy the requirements of the functional architecture and the requirements baseline.'' <ref>From [http://www.manningaffordability.com/s&tweb/HEResource/Other/Definitions.htm The Human Engineering Home Page's Glossary]. {{Webarchive|url=https://web.archive.org/web/20150213071022/http://www.manningaffordability.com/s%26tweb/HEResource/Other/Definitions.htm |date=2015-02-13 }}</ref>
#* ''An architecture isconsists of the most important, pervasive, top-level, strategic inventions, decisions, and their associated rationales about the overall structure (i.e., essential elements and their relationships) and associated characteristics and behavior.'' <ref>From [http://www.opfro.org/Components/WorkProducts/ArchitectureSet/Architectures/Architectures.html OPEN Process Framework (OPF) Repository] {{Webarchive|url=https://web.archive.org/web/20060305173824/http://www.opfro.org/Components/WorkProducts/ArchitectureSet/Architectures/Architectures.html |date=2006-03-05 }}.</ref>
#* ''A description of the design and contents of a [[computer system]]. If documented, it may include information such as a detailed inventory of current hardware, software and networking capabilities; a description of long-range plans and priorities for future purchases, and a plan for upgrading and/or replacing dated equipment and software.'' <ref>From [http://nces.ed.gov/pubs98/tech/glossary.asp The National Center for Education Statistics glossary]. </ref>
#* ''A formal description of a system, or a detailed plan of the system at component level to guide its implementation.'' <ref>[[TOGAF]]</ref>
#* ''The composite of the design architectures for products and their life -cycle processes.'' <ref>From [[IEEE]] 1220-1998 as found at [http://www.acq.osd.mil/osjtf/termsdef.html their glossary] {{webarchive|url=https://web.archive.org/web/20060517130043/http://www.acq.osd.mil/osjtf/termsdef.html |date=2006-05-17 }}.</ref>
#* ''The structure of components, their interrelationships, and the principles and guidelines governing their design and evolution over time.'' <ref>[[TOGAF]] </ref>
 
One can think of system architecture as a set of representations of an existing (or future) system. These representations initially describe a general, high-level functional organization, and are progressively refined to more detailed and concrete descriptions.
It is a '''process''' because a sequence of steps is prescribed to produce or change the architecture, and/or a design from that architecture, of a system within a [[set]] of [[constraints]].
 
System architecture conveys the informational content of the [[wiktionary:element|elements]] consisting of a system, the relationships among those elements, and the [[wiktionary:rule|rules]] governing those relationships. The architectural components and set of relationships between these components that an architecture description may consist of hardware, [[software]], documentation, facilities, manual procedures, or roles played by organizations or people.{{huh?|date=May 2014}}
It is a '''discipline''' because a [[body]] of [[knowledge]] is used to inform [[practitioner]]s as to the most effective way to design the system within a set of constraints.
 
A systemssystem architecture is primarily concernedconcentrates withon the internal [[Interface (computer science)|interface]]s among the system's [[wikt:component|components]] or [[system | subsystem]]s, and on the interface(s) between the system and its external environment, especially the [[User (computing)|user]]. (ThisIn the specific case of computer systems, this latter, special, interface, is known as the [[computer human interface]], ''AKA'' human computer interface, or [[Human-computer interaction|CHIHCI]]; formerly called the man-machine interface.)
 
One can contrast a system architecture with [[system architecture engineering]] (SAE) - the method and discipline for effectively implementing the architecture of a system:<ref>
==Background==
The Method Framework for Engineering System Architectures, [[Donald Firesmith]] et al., 2008</ref>
Prior to the advent of digital computers, the electronics and other engineering disciplines used the term system as it is still commonly used today. However, with the arrival of [[digital computers]] on the scene and the development of [[software engineer]]ing as a separate discipline, it was often necessary to distinguish among engineered hardware artifacts, software artifacts, and the combined artifacts. A [[programmable]] hardware artifact, or [[Computer|computing machine]], that lacks its [[software program]] is impotent; even as a software artifact, or program, is equally impotent unless it can be used to alter the sequential states of a suitable (hardware) machine. However, a hardware machine and its software program can be designed to perform an almost illimitable number of abstract and physical tasks. Within the computer and software engineering disciplines (and, often, other engineering disciplines, such as communications), then, the term system came to be defined as containing all of the elements necessary (which generally includes both hardware and software) to perform a useful function.
 
It* SAE is a '''process'method'' because a sequence of steps is prescribed{{by whom?|date=May 2014}} to produce or to change the architecture, and/or a design from that architecture, of a system within a [[set (mathematics)|set]] of [[Constraint (mathematics)|constraints]].
Consequently, within these engineering disciplines, a system generally refers to a programmable hardware machine and its included program. And a systems engineer is defined as one concerned with the complete device, both hardware and software and, more particularly, all of the interfaces of the device, including that between hardware and software, and especially between the complete device and its user (the CHI). The [[hardware architect|hardware engineer]] deals (more or less) exclusively with the hardware device; the [[software engineer]] deals (more or less) exclusively with the software program; and the [[systems engineer]] is responsible for seeing that the software program is capable of properly running within the hardware device, and that the system composed of the two entities is capable of properly interacting with its external environment, especially the user, and performing its intended function.
It* SAE is a '''discipline''' because a [[body]] of [[knowledge]] is used to inform [[wikt:practitioner|practitioner]]s as to the most effective way to design the system within a set of constraints.
 
== History ==
By analogy, then, a systems architecture makes use of elements of both software and hardware and is used to enable design of such a composite system. A good architecture may be viewed as a '[[partitioning]] [[Scheme (mathematics)|scheme]],' or [[algorithm]], which partitions all of the system's present and foreseeable requirements into a [[workable]] set of cleanly [[bounded]] [[subsystem]]s with nothing left over. That is, it is a partitioning scheme which is [[exclusive]], [[inclusive]], and [[exhaustive]]. A major purpose of the partitioning is to arrange the elements in the subsystems so that there is a minimum of communications needed among them. In both software and hardware, a good subsystem tends to be seen to be a meaningful "object." Moreover, a good architecture provides for an easy mapping to the user's requirements and the [[V&V: Verification and Validation|validation tests]] of the user's requirements. Ideally, a mapping also exists from every least element to every requirement and test.
Systems architecture depends heavily on practices and techniques which were developed over thousands of years in many other fields, perhaps the most important being civil architecture.
 
* Prior to the advent of digital computers, the electronics and other engineering disciplines used the term "system" as it is still commonly used today. However, with the arrival of [[digital computers]] on the scene and the development of [[software engineer]]ing as a separate discipline, it was often necessary to distinguish among engineered hardware artifacts, software artifacts, and the combined artifacts. A [[Computer program|programmable]] hardware artifact, or [[Computer|computing machine]], that lacks its [[softwarecomputer program]] is impotent; even as a software artifact, or program, is equally impotent unless it can be used to alter the sequential states of a suitable (hardware) machine. However, a hardware machine and its software programprogramming can be designed to perform an almost illimitable number of abstract and physical tasks. Within the computer and software engineering disciplines (and, often, other engineering disciplines, such as communications), then, the term system came to be defined as containing all of the elements necessary (which generally includes both hardware and software) to perform a useful function.
A '''robust architecture''' is said to be one that exhibits an [[Optimization (computer science)|optimal]] degree of [[fault-tolerance]], [[backward compatibility]], [[forward compatibility]], [[extensibility]], [[reliability]], [[maintainability]], [[availability]], [[serviceability]], [[usability]], and such other [[ilities]] as necessary and/or desirable.
* Consequently, within these engineering disciplines, a system generally refers to a programmable hardware machine and its included program. And a [[systems engineer]] is defined as one concerned with the complete device, both hardware and software and, more particularly, all of the interfaces of the device, including that between hardware and software, and especially between the complete device and its user (the CHI). The [[hardware architectdesigner|hardware engineer]] deals (more or less) exclusively with the hardware device; the [[software engineer]] deals (more or less) exclusively with the softwarecomputer program; and the [[systems engineer]] is responsible for seeing that the software program is capable of properly running within the hardware device, and that the system composed of the two entities is capable of properly interacting with its external environment, especially the user, and performing its intended function.
By* analogy, then, aA systems architecture makes use of elements of both software and hardware and is used to enable the design of such a composite system. A good architecture may be viewed as a '[[partitioning]] [[Scheme (mathematics)|scheme]],' or [[algorithm]], which partitions all of the system's present and foreseeable requirements into a [[wikt:workable|workable]] set of cleanly [[bounded set|bounded]] [[subsystem]]s with nothing left over. That is, it is a partitioning scheme which is [[:wikt:exclusive|exclusive]], [[Interval (mathematics)|inclusive]], and [[Collectively exhaustive events|exhaustive]]. A major purpose of the partitioning is to arrange the elements in the subsystemssub systems so that there is a minimum of communicationsinterdependencies needed among them. In both software and hardware, a good subsystemsub system tends to be seen to be a meaningful "object.". Moreover, a good architecture provides for an easy mapping to the user's requirements and the [[V&V: Verification and Validation|validation tests]] of the user's requirements. Ideally, a mapping also exists from every least element to every requirement and test.
 
== Modern trends in systems architecture ==
With the increasing complexity of [[Digital electronics|digital systems]], modern systems architecture has evolved to incorporate advanced principles such as [[Modularity|modularization]], microservices, and [[artificial intelligence]]-driven optimizations. [[Cloud computing]], edge computing, and distributed ledger technologies (DLTs) have also influenced architectural decisions, enabling more scalable, secure, and [[Fault tolerance|fault-tolerant]] designs.
 
One of the most significant shifts in recent years has been the adoption of Software-Defined Architectures (SDA), which decouple hardware from [[software]], allowing systems to be more flexible and adaptable to changing requirements.<ref name=":1">{{Cite journal |last=Zeng |first=Ruiqi |last2=Niu |first2=Yiru |last3=Zhao |first3=Yue |last4=Peng |first4=Haiyang |date=2022 |editor-last=Liu |editor-first=Shuai |editor2-last=Ma |editor2-first=Xuefei |title=Software Architecture Evolution and Technology Research |url=https://link.springer.com/chapter/10.1007/978-3-030-94551-0_54 |journal=Advanced Hybrid Information Processing |language=en |___location=Cham |publisher=Springer International Publishing |pages=708–720 |doi=10.1007/978-3-030-94551-0_54 |isbn=978-3-030-94551-0|url-access=subscription }}</ref> This trend is particularly evident in network architectures, where [[Software-defined networking|Software-Defined Networking (SDN)]]{{citation needed|date=April 2025}} and [[Network function virtualization|Network Function Virtualization (NFV)]] enable more dynamic management of [[Network topology|network]] resources.<ref name=":2">{{Citation |last=Ziemann |first=Jörg |title=Enterprise Architecture in a Nutshell |date=2022 |work=Fundamentals of Enterprise Architecture Management: Foundations for Steering the Enterprise-Wide Digital System |pages=23–60 |editor-last=Ziemann |editor-first=Jörg |url=https://link.springer.com/chapter/10.1007/978-3-030-96734-5_2 |access-date=2025-03-03 |place=Cham |publisher=Springer International Publishing |language=en |doi=10.1007/978-3-030-96734-5_2 |isbn=978-3-030-96734-5|url-access=subscription }}</ref>
 
In addition, AI-enhanced system architectures have gained traction, leveraging machine learning for [[predictive maintenance]], [[anomaly detection]], and automated system optimization. The rise of [[Cyber-physical system|cyber-physical systems (CPS)]] and digital twins has further extended system architecture principles beyond traditional computing, integrating real-world data into virtual models for better decision-making.<ref name=":3">{{Cite journal |last=Michaels |first=Paul |date=2022 |title=Software Architecture by Example |url=https://link.springer.com/book/10.1007/978-1-4842-7990-8 |journal=SpringerLink |language=en |doi=10.1007/978-1-4842-7990-8|doi-access=free }}</ref>
 
With the rise of [[edge computing]], system architectures now focus on [[decentralization]] and [[real-time processing]], reducing dependency on centralized data centers and improving latency-sensitive applications such as [[autonomous vehicles]], [[robotics]], and [[Internet of things|IoT networks]].<ref name=":0" />
 
These advancements continue to redefine how systems are designed, leading to more resilient, scalable, and intelligent architectures suited for the digital age.
 
== Types ==
Several types of system architectures exist, each catering to different domains and applications. While all system architectures share fundamental principles of structure, behavior, and interaction, they vary in design based on their intended purpose. Several types of systems architectures (underlain by the same fundamental principles<ref>[http://borisgolden.com/systems_architecture.html#principles ''The fundamental principles of Systems Architecture''], by Boris Golden</ref>) have been identified as follows:<ref>The Art of Systems Architecture, [[Mark Maier]] and [[Eberhardt Rechtin]], 2nd ed 2002</ref>
 
* Hardware Architecture: Hardware architecture defines the physical components of a system, including processors, [[Memory hierarchy|memory hierarchies]], buses, and input/output interfaces. It encompasses the design and integration of computing hardware elements to ensure performance, reliability, and scalability.<ref>{{Cite book |last1=Abbas |first1=Karim |url=https://link.springer.com/book/10.1007/978-3-031-08693-9 |title=From Algorithms to Hardware Architectures |year=2023 |isbn=978-3-031-08692-2 |language=en |doi=10.1007/978-3-031-08693-9 |s2cid=251371033}}</ref>
* Software Architecture: Software architecture focuses on the high-level organization of software systems, including modules, components, and communication patterns. It plays a crucial role in defining system behavior, security, and maintainability.<ref name=":3" /> Examples include monolithic, microservices, event-driven, and layered architectures.<ref name=":1" /><ref name=":3" />
* Enterprise Architecture: Enterprise architecture provides a strategic blueprint for an organization’s IT infrastructure, ensuring that business goals align with technology investments. It includes frameworks such as [[The Open Group Architecture Framework|TOGAF]] (The Open Group Architecture Framework) and [[Zachman Framework]] to standardize IT governance and business operations.<ref>{{Citation |last=Musukutwa |first=Sheunopa Chalmers |title=Developing an Enterprise Architecture |date=2022 |work=SAP Enterprise Architecture: A Blueprint for Executing Digital Transformation |pages=51–92 |editor-last=Musukutwa |editor-first=Sheunopa Chalmers |url=https://link.springer.com/chapter/10.1007/978-1-4842-8575-6_3 |access-date=2025-03-03 |place=Berkeley, CA |publisher=Apress |language=en |doi=10.1007/978-1-4842-8575-6_3 |isbn=978-1-4842-8575-6|url-access=subscription }}</ref><ref name=":2" />
* Collaborative Systems Architecture: This category includes large-scale interconnected systems designed for seamless interaction among multiple entities. Examples include the [[Internet]], [[Intelligent transportation system|intelligent transportation systems]], [[air traffic control]] networks, and [[defense systems]]. These architectures emphasize [[interoperability]], distributed control, and resilience.
* Manufacturing Systems Architecture: Manufacturing system architectures integrate automation, [[robotics]], IoT, and AI-driven decision-making to optimize production workflows. Emerging trends include [[Industry 4.0]], cyber-physical systems (CPS), and [[Digital twin|digital twins]], enabling predictive [[maintenance]] and real-time monitoring.<ref>{{Cite journal |last=Markusheska |first=Nastasija |last2=Srinivasan |first2=Venkatachalam |last3=Walther |first3=Jan-Niclas |last4=Gindorf |first4=Alex |last5=Biedermann |first5=Jörn |last6=Meller |first6=Frank |last7=Nagel |first7=Björn |date=2022-07-01 |title=Implementing a system architecture model for automated aircraft cabin assembly processes |url=https://link.springer.com/article/10.1007/s13272-022-00582-6 |journal=CEAS Aeronautical Journal |language=en |volume=13 |issue=3 |pages=689–703 |doi=10.1007/s13272-022-00582-6 |issn=1869-5590|doi-access=free }}</ref>
* Cloud and Edge Computing Architecture: With the shift toward cloud-based infrastructures, [[Cloud computing|cloud architecture]] defines how resources are distributed across data centers and virtualized environments. [[Edge computing]] architecture extends this by processing data closer to the source, reducing [[Latency (engineering)|latency]] for applications like autonomous vehicles, industrial automation, and smart cities.<ref name=":0" />
* AI-Driven System Architecture: [[Artificial intelligence|Artificial intelligence (AI)]] and [[machine learning]]-driven architectures optimize decision-making by dynamically adapting system behavior based on real-time data. This is widely used in autonomous systems, cybersecurity, and intelligent automation.
 
== See also ==
* [[SystemsArcadia architect(engineering)]]
* [[Architectural pattern (computer science)]]
*[[Enterprise architecture]]
* [[Department of Defense Architecture Framework]]
*[[Software architecture]] / [[Software architect]]
* [[HardwareEnterprise architecture]] / [[Hardware architectframework]]
* [[ProcessEnterprise information security architecture]]
* [[EnterpriseProcess architecture]]
*[[Systems engineering]] / [[Systems engineer]]
* [[Requirements analysis]]
*[[Software engineering]] / [[Software engineer]]
* [[Software architecture]] / [[Software architect]]
*[[Requirements analysis]]
* [[SystemsSoftware designengineering]]
* [[DODAFSystems architect]]
* [[Systems analysis]]
* [[Federal Enterprise Architecture|FEAF]]
* [[MODAFSystems design]]
* [[TOGAFSystems engineering]]
 
* [[Zachman framework]]
== References ==
* [[Ieee_1471|ANSI/IEEE 1471-2000 (ISO/IEC DIS 25961)]]
{{Reflist}}
 
== External links ==
{{Commonscat}}
*[http://sysarch.pbwiki.com Principles of system architecture]
*[http://wwwborisgolden.incose.orgcom/practice/techactivities/processimprov/sawgsystems_architecture.aspxhtml INCOSEWhat is Systems Architecture Working Group?]
*[httphttps://www.elsevierincose.comorg/wpscommunities/findworking-groups-initiatives/journaldescription.cws_home/505616/description#descriptionarchitecture Journal ofINCOSE Systems Architecture Working Group]
*[https://www.sciencedirect.com/journal/journal-of-systems-architecture Journal of Systems Architecture (Embedded Software Design)]
 
[[Category:EngineeringSystems architecture| ]]
[[Category:Systems engineering]]
[[Category:Software architecture]]