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 分钟前
【数据结构】排序
c语言·开发语言·数据结构·算法·排序算法
我要成为c嘎嘎大王16 分钟前
【C++】初识C++(1)
开发语言·c++
良木林20 分钟前
JavaScript书写基础和基本数据类型
开发语言·前端·javascript
艾莉丝努力练剑3 小时前
【LeetCode&数据结构】单链表的应用——反转链表问题、链表的中间节点问题详解
c语言·开发语言·数据结构·学习·算法·leetcode·链表
brzhang7 小时前
我操,终于有人把 AI 大佬们 PUA 程序员的套路给讲明白了!
前端·后端·架构
倔强青铜37 小时前
苦练Python第18天:Python异常处理锦囊
开发语言·python
u_topian8 小时前
【个人笔记】Qt使用的一些易错问题
开发语言·笔记·qt
珊瑚里的鱼8 小时前
LeetCode 692题解 | 前K个高频单词
开发语言·c++·算法·leetcode·职场和发展·学习方法
AI+程序员在路上8 小时前
QTextCodec的功能及其在Qt5及Qt6中的演变
开发语言·c++·qt
xingshanchang8 小时前
Matlab的命令行窗口内容的记录-利用diary记录日志/保存命令窗口输出
开发语言·matlab