AbstractSystems and Software Engineers often have an uneasy relationship. The job of the systems engineer is to work with the stakeholders to define a set of requirements that meet their needs. These are then allocated to various solution spaces such as electronic hardware, mechanical, procedural, and software among others. For many systems, the functional requirements are almost exclusively software requirements. Correspondingly, as an increasing amount of project manpower, schedule time, and budget are allocated to software, it becomes increasingly important that systems and software engineers communicate effectively. The Systems Modeling Language (SysML) has helped in this regard in that it can provide executable behavioral models with precise semantics to express software requirements in a model. These models define “What is required” without overly constraining the implementation. In addition, SysML can be used to define performance constraints, required concurrency, hardware memory and processor budgets, interfaces, safety critical requirements, etc. These aspects are essential for software engineers to understand the constraints and limitations of their environment. At the System of Systems (SoS)/Enterprise level, defining software/systems employs a similar pattern, but at a higher level of abstraction. In the Unified Architecture Framework, capabilities are defined for the enterprise, with systems and software allocated to realize the capabilities. In the same way that capabilities depend on one another, the implementing systems and software interact to support each other. In the past, enterprise software would be modeled as residing in mainframes in a federated software pattern. Modern software can be modeled throughout the enterprise in a distributed network that can adapt to the changing needs of the enterprise to do load leveling, dynamic and late binding, reconfiguration, and reallocation of hardware resources as necessary. If the domain includes the Industrial Internet of Things (IIOT), then deployment could include edge devices, embedded software, Programmable Logic Controllers (PLC), PCs, servers, cloud computing, and of course mainframes. The Object management Group (OMG) Data Distribution Services (DDS) standard enables these capabilities across these devices in a universal format implemented by multiple vendors. However, before this complex system of systems can be implemented, it must first be architected and designed to ensure that it will be fit for purpose both now and as the complex system of systems expands and evolves. This paper will examine the aspects of modeling software in the UAF, and how it can help guide enterprise and system and software architecture.
Read full abstract