The Engineering of Architecting
Keywords:Architecture, Engineering, Frameworks, Practices, Tools, Technologies, Methods
Per Kumar (2021), human-made entities are increasingly becoming more complex, large, and sophisticated in design, realization, and operation. They exhibit very high quality, respond in real-time, are reconfigurable, are highly interactive, and autonomous. The ability to engineer such entities has posed challenges driven by factors of organization, integration, communication, change, size, and scale. Engineering and Architecture collectively serve as the backbone for addressing these challenges based on which the different human-made entities are designed, developed, improved, utilized, analysed, and decommissioned.
Engineering is the act of using scientific principles to design, build, verify, validate, certify, operate, and maintain entities. Engineering establishes and maintains consistent practices, processes, approaches, and uniform ways of realizing human-made entities. It deals with the representations of economically producible components that can be assembled to construct the functional whole. It is driven by requirements and specifications and focuses on producibility, practicality, composability, interoperation and is as close to pragmatism as possible to allow for realization and subsequent operation. Life-cycle process standards like ISO/IEC/IEEE 15288 and ISO/IEC/IEEE 12207, provide overarching processes for systems and software engineering. Engineers often adapt and tailor these processes to the current needs of their projects and to improve efficiency, effectivity, and success.
The notion of architecture is heavily influenced by the ISO/IEC/IEEE 420x0 series of standards, which provides an implicit view of architecture as different from design. These standards consider architecture as the fundamental concepts or properties of an entity and governing principles for the realization and evolution of this entity and its related life cycle processes (ISO/IEC/IEEE 42020, ISO/IEC/IEEE 42030, and ISO/IEC/IEEE 42010). They establish the vocabulary, ontology, and best practices for describing, governing, managing, synthesizing, and evaluating architectures in the field of software, systems, and enterprises. Architecture frameworks like ToGAF, NAF, FEAF, UAF, TRAF, and IndEA, establish the conventions of practices, methods, procedures, approaches, and processes for architecting. Architects often adapt and tailor one or more of these frameworks, standards, reference models, styles and patterns while pursuing an architecture endeavour.
Per ISO/IEC/IEEE 42020, enablers like architecture repository, architecture library, architecture registry, resources, capabilities, and services are utilized to support architecting. However, despite the various enablers, architecting is still practiced as a form of art and significant human effort, trial and error, and ingenuity involved in architecting. To improve the scientific and engineering basis for architecting, this paper proposes that architecture is treated as an entity that would be engineered. This paper covers various facets of what it takes to transform architecting to engineering architectures by means of approaches, practices, principles, processes, standards, frameworks, and technologies.