ISO-IEC-IEEE 42010架构规范

4 概念基础

4.1 介绍

本条款介绍了架构说明的概念基础,包括架构说明的概念模型(见 4.2);架构在生命周期中的角色(见 4.3);架构说明的使用(见 4.4);架构框架和架构说明语言(见 4.5)。本条款介绍的概念在第 5 章至第 7 章中用于表达相关的需求。

【注】附录 A 提供了对本国际标准中使用的术语和概念的进一步讨论,并提供了它们的使用示例。

4.2 架构说明的概念模型

4.2.1 架构说明的上下文

图 1 描绘了与系统及其架构相关的关键概念、理解架构说明实践的上下文。

本国际标准中使用的术语系统(system)是指某个实体,架构是它的利益。该术语旨在包含但

不限于、以下领域中的实体:

-- 在[ISO/IEC 15288]中,系统(systems)描述为:"系统是人工制造的,可由在此列出的一个或多个事物构成:硬件、软件、数据、人、过程(例如为用户提供服务的过程)、规程(例如操作指令)、设施、材料和自然发生的实体";

-- 在[ISO/IEC 12207]中描述为软件产品和服务(software products and services);

-- 在[IEEE Std 1471: 2000]中描述为软件密集型系统(software-intensive systems):

"软件对整个系统的设计、构建、开发和演进起着基础性影响的任何系统",涵盖了"单个应用程序,传统意义上的系统,子系统和系统的系统,产品线,产品族,整个企业和其他利益的集合"。

本国际标准对这些领域内或其他场所的系统的构成没有任何立场。本国际标准不定义系统的属性。

本国际标准旨在用于上述的系统领域,然而,此处不阻止本国际标准应用于这些领域之外的利益相关实体的体系结构说明(如自然的系统和概念性的系统)。

系统的干系人是该在系统中存在利益的各方。干系人的利益表达为关注点(见 4.2.3)。干系人将各种目标(purposes)归于系统。目标是一种关注点。

一个系统位于一个环境中。环境决定了整个生命周期中施加于系统的所有影响,包括系统在环境中,与环境的交互。一个系统的环境中可以包含其他系统。

系统的架构包含与其环境相关的系统基本要素。单一的特征刻画不能定义系统的本质的或基础;系统的特征可能与以下部分或全体相关:

-- 系统组成或元素;

-- 系统元素如何安置或相互关联;

-- 系统组织或设计的原则;以及,

-- 管控系统在其生命周期中演进的原则。

架构说明用于表达利益系统的架构(见 4.2.2)。

4.2.2 架构和架构说明

架构说明是构造系统和软件架构时输出的工作产品。

图 2 描绘了将本国际标准用于生成表述一个利益系统架构时,架构说明实践的相关概念。在本国际标准中,术语利益系统(system-of-interest,或简称系统)是在系统架构准备活动中,正在考虑其架构的系统。

4.2 其余部分中的图形和文本构成了架构说明的概念模型(conceptual model)。

架构说明表达了利益系统的架构。

本国际标准将系统架构(architecture of a system)与架构说明(architecture description)区分开来。架构说明,而不是架构,是本国际标准的主题。架构说明是一种工作产品,而架构是抽象的,由概念和属性组成。本国际标准指明了架构说明的需求。本国际标准中没有关于架构、系统或其环境的需求。

本国际标准未指定用于记录架构说明的任何格式或媒体。本国际标准旨在能适用于一系列架构说明的方法,包括以文档为中心的、基于模型的和基于存储库的技术。本国际标准没有规定用于生成架构说明的过程或方法。本国际标准不假设或规定用于生成架构说明的特定的架构方法、模型、符号系统或技术。

相关推荐
软件测试-阿涛16 分钟前
【自动化测试】Python Selenium 自动化测试元素定位专业教程
开发语言·python·selenium·自动化
勇闯逆流河1 小时前
【C++】Stack and Queue and Functor
开发语言·c++
来来走走2 小时前
Flutter开发 了解Scaffold
android·开发语言·flutter
AlbertZein2 小时前
HarmonyOS5 源码分析 —— ‘状态管理’如何管理的(1)?
架构·harmonyos
xiangweiqiang3 小时前
用phpstudy安装php8.2后报错:意思是找不到php_redis.dll拓展时
开发语言·php
mitt_3 小时前
go语言变量
开发语言·后端·golang
你的人类朋友4 小时前
❤️‍🔥对过度设计的反思
程序员·架构·设计
TravisBytes4 小时前
gRPC C++ 从 0 到 1 → 到线上:**超详细** 环境搭建、编码范式、性能调优与 DevOps 全攻略
开发语言·c++·devops
kngines4 小时前
【Node.js从 0 到 1:入门实战与项目驱动】1.1 什么是 Node.js?(定义、运行环境、与浏览器 JavaScript 的区别)
开发语言·javascript·node.js
大阳1235 小时前
数据结构2.(双向链表,循环链表及内核链表)
c语言·开发语言·数据结构·学习·算法·链表·嵌入式