Systems architecture: Difference between revisions
Added IEEE 1471 as a link to the new page |
|||
Line 1: | Line 1: | ||
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: |
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: |
||
# ''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]] 1471-2000. |
# ''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]. |
# ''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]] [[components]], 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]. |
# ''A representation of a system in which there is a mapping of functionality onto [[hardware]] and [[software]] [[components]], 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]. |
||
Line 45: | Line 45: | ||
* [[TOGAF]] |
* [[TOGAF]] |
||
* [[Zachman framework]] |
* [[Zachman framework]] |
||
* [[Ieee_1471|ANSI/IEEE 1471-2000 (ISO/IEC DIS 25961)]] |
|||
== External links == |
== External links == |
Revision as of 19:03, 14 May 2006
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:
- 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 1471-2000.
- The composite of the design architectures for products and their life cycle processes. From IEEE 1220-1998 as found at their glossary.
- A representation of a system in which there is a mapping of functionality onto hardware and software components, a mapping of the software architecture onto the hardware architecture, and human interaction with these components. From the Carnegie Mellon University's Software Engineering Institute as found at 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 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 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 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
“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)
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.
It is a representation because it is used to convey the informational content of the elements comprising a system, the relationships among those elements, and the rules governing those relationships.
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.
It is a discipline because a body of knowledge is used to inform practitioners as to the most effective way to design the system within a set of constraints.
A systems architecture is primarily concerned with the internal interfaces among the system's components or subsystems, and the interface between the system and its external environment, especially the user. (This latter, special interface, is known as the computer human interface, AKA human computer interface, or CHI; formerly called the man-machine interface.)
Background
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 engineering 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 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.
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 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.
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,' or algorithm, which partitions all of the system's present and foreseeable requirements into a workable set of cleanly bounded subsystems 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 validation tests of the user's requirements. Ideally, a mapping also exists from every least element to every requirement and test.
A robust architecture is said to be one that exhibits an optimal degree of fault-tolerance, backward compatibility, forward compatibility, extensibility, reliability, maintainability, availability, serviceability, usability, and such other ilities as necessary and/or desirable.
See also
- Systems architect
- Enterprise architecture
- Software architecture / Software architect
- Hardware architecture / Hardware architect
- Systems engineering / Systems engineer
- Software engineering / Software engineer
- Requirements analysis
- Systems design
- DODAF
- FEAF
- MODAF
- TOGAF
- Zachman framework
- ANSI/IEEE 1471-2000 (ISO/IEC DIS 25961)