IEEE 1471的软件系统架构描述
关于1471
IEEE 1471发布于2000年,其目标在于方便体系结构的表达与交流,并通过体系结构要素及其实践标准化,奠定质量与成本的基础。什么是密集型系统呢?1471中的框架标准,主要是针对密集型系统(software-intensive 也称作增强型软件),是指软件对于整个系统的设计、构建、部署和评估有重要影响的任何系统。
IT这个行业中的词汇许多都来源于传统行业。传统行业发展了很多年,有一套成熟的理论,而软件设计这个行业才几十年,在实践中,为了提高生产效率和品质,工程化是一个必然化的趋势,于是传统行业工程化的理论和实践就有了在软件设计这个行业移植的可能性。 在建筑行业或者机械设计行业,在建筑建造出来或者产品加工出来之前,设计人员用图纸来表达自己的设计意图。当然成熟的设计人员在取得认证之前,需要到施工单位或者到加工车间实习很长时间,以防止设计出来之后,无法建造或加工。
如果要描述软件的架构,在你对系统架构描述的过程中,需要出现那些要素(element),这些要素之间又有着怎样的关系?IEEE std 1471-2000这篇文档给出答案。下面的图描述了要素之间的关系。
图中描述要素之间的关系使用的语言是UML。对UML需要专门的时间来解读。UML已经发展成软件设计描述语言的事实标准。上面的图,图中的方框表示架构设计文档中需要描述的要素,要素之间的连线表示这些要素之间的关系。整个图分五层:
- Mission:任务,使命,也就是为什么我们要做这个系统。可能的原因是为了更大的赢利,市场占有率更高,完善产品系列等等。一个任务是指一种使用或操作,是一个系统想要满足由一个或多名利益相关者的目标。
- Environment,System,Architecture: 系统的定义是:一系列组件,组织在一起,相互作用从而完成一个或者一些特殊的功能。系统不可能单独存在,它总是存在于一个环境之中。我们将系统范围之外的东西,对系统有影响,有交互的客观存在定义为环境(Environment).有时也称为系统的上下文(context)。系统架构。每个系统有一个架构。无论你是有意设计而形成,或者自发形成。
- Stakeholder,Architectural Description,Rationale: 系统利益相关方,干系人。从图中我们可以看出一个系统有一个到多个利益相关方。利益相关者拥有1个或多个关注点。系统描述,从图中我们可以看出,一个系统架构,有一个系统描述和它对应。系统描述是由stakeholder来识别出来并整理成文。Rationale含义是基本原理,根本原因。比如,在设计软件架构时,我们做了许多取舍,选择。我们需要列出之所以选择A而不是B的理由,以及架构设计是如何满足功能性需求和非功能性需求。
- Concern,Viewpoint,View: 关注点,图中可以看出concern是和stakeholder联系在一起。利益相关方有一个或多个concern。关注点是指对于那些操作或其他方面对于一个或多个利益相关者非常重要,且与那些系统发展相关的利益。通常关注点包括系统的功能要求、性能需求、安全性、可靠性和保密性等。通常不同的利益相关方其关注点不尽相同。有时甚至是矛盾的。观点就是你站在什么地方来看这个系统。不同的stakeholder可能有不同的concern,从而导致不同的观点。视图就是stakeholder站在某个观点,他看到系统是个什么样子。视图和观点一一对应。
- Library Viewpoint,Model: 外部定义的视点被称作视点库,库中存放了前人正对各种系统,各种不同的stakeholder,各种不同的concern,总结出来的观点。这样可以方便后人来参考使用。模型是用来表达视图的方法。直白地说,就是系统中各种元素是如何组织在一起发挥作用。我们用图形化的表示把你看到的东西表达出来。
关于软件架构编档
2002年,软件工程研究所(SEI)发布了《软件架构编档》,该书探讨了软件构架文档的使用方法以及它之所以重要的原因,定义了构架视图类型、风格和视图,具体的介绍了3个基本视图类型:模块视图、组件和连接器视图类型以及分配视图类型。每个视图类型包含多种构架风格,即视图类型的特化。此外,还论述了完整的构架文档包,制作构架文档包是出色的软件构架师的职责。
该书和1471对应关系如下
关于ISO 42010
2006年,ISO采纳了IEEE 1471作为内部标准,然后IEEE和ISO一起修订并以ISO 42010- Systems and Software Engineering Architectural Description为新标题发布。涉及修订的内容有
- 术语澄清:例如架构关注点、架构模型、架构视点
- 应用范围:从软件密集型系统扩展到更大范围
- 和ISO生命周期一致:对应ISO 12207和ISO 15288
- 概念演化:调查‘架构描述’和‘架构决策’是否已有实用的描述
此外,42010还往元模型中添加了架构框架的概念,如下
不同视图中元素需要满足视图关联规则,比如逻辑视图中的每个软件元素都要对应部署视图中的至少某个计算元素。
视图设计
关于观点设计方法,有人提出如下四步来实践
- 利益相关方的侧写:每个利益相关方有五个属性,名称、目标、任务、概念、利害关系。
下面是一个侧写实例
- 概述内部设计文档:生成一个架构信息的概述,来缕清这些信息和利益相关人的关系。这步生成2个交付件,一个是内部设计文档概述,一个是关键框架概念的映射关系图。文档概述实例如下,一般在5-10个描述,所谓关键概念就是诸如利害关系、设计原则、目标、应用、过程、产品、基础构建服务、期限、设计方针等。
- 把内部设计文档概述和利益相关联系起来:比如以表格形式展现框架设计内容和利益相关方的利害关系,如下实例
- 定义出观点:目的在于考虑框架设计对于利益相关方的意义来定义观点,文本形式的概述、术语、图表一起展示给利益相关方。实例如下
该实例包含2个模板,斜体字是长模板,正体是短模板
参考文献
- https://www.cnblogs.com/Natural-way/p/7580638.html
- http://blog.sina.com.cn/s/blog_5a010cd10100xxiz.html
- http://www.few.vu.nl/~hans/publications/y2006/JSSviewpoints.pdf
- https://wenku.baidu.com/view/94d1ef27dd36a32d73758171.html
- http://repository.cmu.edu/cgi/viewcontent.cgi?article=1451&context=sei
- http://web.mit.edu/richh/www/writings/emery-hilliard2008.pdf