ComponentsSystems are composed of independent entities that are often described as components. For example, an information system may be composed of hundreds of microservices that are each deployed separately but work together in numerous ways.
BoundaryA system may include a large number of interconnected components. These require a boundary to think of them as a system. For example, the geographic boundaries of a nation. Boundaries can also be logical, i.e. non-physical, such as a sales system that includes 120 software components but connects to hundreds of other components that aren't considered part of the system.
EnvironmentThe environment is anything outside the boundary on which the system depends such as a society that depends on the natural environment for survival and quality of life.
SubsystemsSystems are often comprised of other systems that can be described as subsystems. For example, the human body is a system that is comprised of systems such as the circulatory, digestive, excretory, endocrine, integumentary, lymphatic, muscle, nervous, renal, urinary, reproductive, respiratory, skeletal, hematopoietic and immune systems.
InterrelationsThe components in a system are interrelated in some way such as the species in an ecosystem that all impact each other in various ways that aren't always obvious. Likewise, a software system may be too complex to fully understand how components impact each other. Systems tend to be a little mysterious due to factors such as chaos that make complex adaptive systems fully unpredictable over a long enough timeframe.
ObjectivesThe objectives of a system. This only applies to systems that have been constructed by humans. For example, you wouldn't speak of the objectives of the solar system. In the case of a software system, objectives are the business capabilities of a system or its individual components.
InterfacesInterfaces describe the possible interactions between components. For example, the contract for services offered by a software component that defines its behavior, inputs and outputs.
IntegrationsIntegrations describe the interactions between a system and its environment. For example, a society that has integrated its monetary system with other nations through markets for foreign exchange.
EmergenceA system either emerges, is designed or both. Emergence indicates a system that is created by the interactions of independent actors over time. Design indicates an intelligence that plans everything. In many cases, a system has both emerged and been designed such as a city that has been partially designed by urban planners but greatly shaped by the independent actions of property developers and residents.
DynamismThe degree of chaos in a system such that small things can change the future of the system greatly. For example, a society strictly guided by ancient principles versus a society where new ideas from anywhere lead to change.deterministic in a chaotic way. For example, an artificial intelligence that is constantly changing based on potentially obscure data is far more complex than a static system of code and highly structured and predictable data.
StructureA system may have an overarching structure that components are meant to fit into. For example, market regulations that guide the behavior of firms, investors, employees and consumers. In the case of technology systems, structures are things like standards and frameworks.
CentralizationThe degree to which a system is dependent on a centralized controller. For example, a nation that assigns more power to cities and citizens versus a nation where every aspect of life is controlled by a centralized bureaucracy. Modern software systems can be built without any centralized controlled whatsoever.
ConsistencyThe degree to which components are similar such as a software system composed of microservices that are all build on top of a common framework. Consistency isn't necessarily a desirable feature of a system as diversity can bring greater resilience. Nevertheless, software architects tend to push for consistency.
AdaptationThe ability of a system to obtain feedback and change in response to that feedback. For example, humans are highly adaptable and constantly change in response to experience such that systems that include humans are often more adaptable than a fully automated system. Technologies such as artificial intelligence may someday allow technology systems to be similarly adaptable.
CouplingCoupling is the degree to which components depend on each other in static ways. For example, a town with a single employer where all residents depend on employment from one organization. Coupling reduces resilience. As such, modern software systems are designed to be loosely coupled using techniques such as microservices that allow components to dependent on each other in flexible and fluid ways that adapt to change.
ResilienceResilience is the ability of the system to withstand stress and endure. In chaos theory, this would be described as the ability of a system approaching the edge of chaos to quickly bounce back towards equilibrium. For example, a diverse and vibrant economy whereby entrepreneurs view a recession as an opportunity and quickly exploit lower asset prices to build new organizations that end the recession. Likewise, a resilient software system may continue to operate in a reasonably useful way when components fail and under stress such as high load.
|Overview: System Characteristics|
Qualities that can be used to describe and document a system.