爱思维尔

系统与软件杂志

第80卷第1期,2007年1月,第106-126页
系统与软件杂志

从五种工业方法导出的软件体系结构设计通用模型

https://doi.org/10.1016/j.jss.2006.05.024获取权限和内容

摘要

我们比较五个工业软件体系结构设计方法,并从它们的共性中提取出一种通用的软件体系结构设计方法。使用这种通用方法,我们比较了五种方法中它们使用或推荐的工件和活动,并指出了它们的相似性和差异性。一旦我们超越了术语和描述上的巨大差异,我们就会发现这五种方法有很多共同点,或多或少与我们介绍的“理想”模式相匹配。从理想模式中,我们导出了一个评估网格,可用于进一步的方法比较。

介绍

在过去的15年里,许多组织和个人研究人员开发并记录了软件架构设计的技术、过程、指南和最佳实践(Bass等人,2003年,Bosch,2000年,Clements等人,2002a,Clements和Northrop,2002年,Dikel等人,2001年,Garland和Anthony,2002年,Gomaa,2000年)。其中一些是作为建筑设计方法或建筑设计的概念、过程和技术系统而铸造和出版的(Hofmeister等人,1999年,Kruchten,2003年,Obbink等人,2000年,Ran,2000年)。

由于许多设计方法都是独立开发的,因此它们的描述使用了不同的词汇表,并且看起来彼此之间有很大的不同。有些差异是必不可少的。在不同领域开发的体系结构设计方法自然表现出领域特征,强调不同的目标。例如,信息系统的体系结构设计强调数据建模,而电信软件的体系结构设计则强调连续运行、实时升级和互操作性。其他本质上的区别可能包括为大型组织设计的方法与适用于十几个软件开发人员团队的方法、明确支持产品系列的方法与针对某一类系统的方法,等等。

另一方面,所有的软件架构设计方法必须有许多共同点,因为它们处理的是相同的基本问题:保持对软件系统设计的智能控制:需要多个利益相关者的参与和协商;通常是由大型的、分布式的团队在较长的时间内开发的;必须解决多个可能相互冲突的目标和关注点;必须长期保养。因此,理解不同方法之间存在的共性并开发一个通用的体系结构设计模型是非常有意义的。这样的模型将帮助我们更好地理解现有不同方法的优缺点,并为开发更适合特定应用领域的新方法提供框架。

考虑到这个目标,我们选择了五种不同的方法:属性驱动设计(ADD)方法(Bass等人,2003),由SEI开发;西门子的4种观点(S4V)方法(Hofmeister等人,1999),由西门子公司研究所开发;理性统一过程®4 + 1视图(RUP 4 + 1) (Kruchten,1995,Kruchten,2003)由Rational软件开发并商业化,现在是IBM;业务架构流程和组织(BAPO)主要由Philips Research开发(America et al.,2003,Obbink et al.,2000)和Nokia Research开发的架构关注点分离(ASC)(Ran,2000)。我们还召集了一个团队,他们对开发和记录至少一种方法做出了重大贡献。通过对典型的架构(architecture)设计任务是如何用不同的方法完成的广泛讨论,我们对这五种方法基础上的通用软件架构设计模型达成了共识。在本文中,我们记录了我们对架构设计的基本概念的理解。1

本文组织如下。在第二节中我们介绍了五种贡献方法,然后在第三节中我们提出了一个通用的体系结构设计模型。第四节介绍了使用通用模型的术语和概念的五种贡献方法,并讨论了它们之间的共性和差异。第5节描述了如何使用网格将其他软件体系结构方法与通用模型进行比较,并将网格应用于另一个已发布的方法。第六节讨论相关工作,第七节提出下一步的工作,第八节总结全文。

节代码段

属性驱动设计

属性驱动设计(ADD)方法(Bass等人,2003)是SEI开发的一种方法,它通过基于体系结构的质量属性需求来定义软件体系结构。

在ADD中,体系结构设计遵循递归分解过程,在分解的每个阶段,选择体系结构策略和模式来满足一组质量属性场景(见图1)。使用ADD方法设计的体系结构表示

软件体系结构设计的通用模型

我们开发的软件体系结构设计通用模型首先对设计过程中执行的活动进行分类。体系结构分析根据体系结构关注点和上下文阐明架构上重要的需求(ASR)。体系结构综合会产生满足这些需求的候选体系结构解决方案。架构评估确保使用的架构决策是正确的(见图10)。

因为

用一般模型进行方法比较

这五种体系结构方法是独立开发的,但它们之间有许多共同点。

分析软件体系结构设计方法的模板

这项工作的另一个成果是基于图10和表1、表2提出了一种网格或模板,用于分析其他提出的软件体系结构设计方法,甚至推动新的体系结构设计方法的开发;见表4。

为了说明这种网格的使用,我们将其应用于Garland和Anthony(2002)提出的体系结构方法,这里我们将其称为G&A;见表5。本表中的数字表示本书的页码。更完整的

相关工作

我们发现了四种主要的方法来比较设计方法。一些研究人员通过比较结果或人工制品来比较这些方法。其他人则比较遵循这些方法时所做的活动。这些方法中的每一种进一步细分为基于将方法应用于特定示例应用程序的比较,或者通过对工件或活动进行分类来比较方法。

第一组比较示例应用程序的构件。Bahill等人(1998)第一次

今后的工作

我们设想的未来工作集中在三个基本的架构活动上:架构分析、架构合成和架构评估(见图10)。它们存在于所有的研究方法中。我们预计将不断协调和整合每种研究方法中的最佳概念。这项工作可以走两条路。第一种方法是最明显的方法,即某种方法中的某些概念被更好的方法所取代

结论

在本文中,我们分析了一些经过工业验证的建筑设计方法。使用一个建筑设计活动的通用模型,我们已经确定了这些方法的共同成分和可变成分。尽管各个方法使用的词汇不同,但它们在概念层面上有很多共同之处。基本的建筑学活动,如建筑分析,建筑综合和建筑评估都在所有的研究中

承认

软件工程研究所是由美国国防部赞助的联邦资助的研发中心。

克里斯汀·霍夫迈斯特是宾夕法尼亚州伯利恒莱海大学计算机科学与工程的助理教授,目前她的研究领域是软件体系结构和基于组件的系统。她在布林莫尔学院获得数学学士学位,莱海大学计算机科学硕士学位,马里兰大学博士学位,论文主题是分布式系统的动态重构。在2000年加入莱海学院之前,她花了很多时间

工具书类(五十一)

  • J、 美国。杰罗等等。

    情境功能-行为-结构框架

    设计研究

    (2004年)
  • P。美国等等。

    面向场景分析的多视图变化建模

  • F。巴赫曼等等。

    阐明软件架构(Architecture)质量的基本贡献者(编号:CMU/SEI-2002-TR-025)

    (2002年)
  • A、 T。巴希尔等等。

    设计方法比较项目

    IEEE系统、人与控制论汇刊,C部分

    (1998年)
  • Barbacci,M.R.,Ellison,R.,Lattanze,A.J.,Stafford,J.A.,Weinstock,C.B.,Wood,W.G.,2003.质量属性。。。
  • L。低音的等等。

    实践中的软件体系结构

    (2003年)
  • J。博世

    软件体系结构的设计和使用:采用和发展产品线方法

    (2000年)
  • P。克莱门特等等。

    软件产品线:实践与模式

    (2002年)
  • P。克莱门特等等。

    记录软件体系结构:视图和其他

    (2002年)
  • P。克莱门特等等。

    评估软件体系结构

    (2002年)
  • D、 M。迪凯尔等等。

    软件体系结构:组织原则和模式

    (2001年)
  • L。多布里卡等等。

    软件体系结构质量分析方法

  • L。多布里卡等等。

    软件体系结构分析方法综述

    IEEE软件工程学报

    (2002年)
  • R、 G。菲克曼等等。

    面向对象和传统的分析和设计方法

    IEEE计算机

    (1992年)
  • M。福勒

    面向对象分析与设计方法比较

  • M。福勒

    分析模式:可重用对象模型

    (1997年)
  • Fowler,M.,2005。语言工作台和模型驱动架构。可从。。。
  • J。花环等等。

    大规模软件体系结构:使用UML的实用指南

    (2002年)
  • J、 美国。杰罗

    设计原型:一种面向设计的知识表示方案

    人工智能杂志

    (1990年)
  • H。戈马

    用UML设计并发分布式实时应用程序

    (2000年)
  • C。霍夫迈斯特等等。

    应用软件体系结构

    (1999年)
  • C。霍夫迈斯特等等。

    从五种工业方法概括软件体系结构设计模型

  • C。霍夫迈斯特等等。

    全局分析:从软件需求规范到软件架构的结构视图

    IEE程序软件

    (2005年)
  • 洪,S.,范登古尔,G.,布林肯珀,S.,1993。面向对象分析与比较的形式化方法。。。
  • IEEE公司

    IEEE std 1471:2000–软件密集型系统的体系结构描述推荐规程

    (2000年)
  • 引用人(182)

    • 连续软件开发中文档的映射研究

      2022年,信息和软件技术
    • 系统体系结构:第三次研究

      2020年,信息和软件技术
    • 视觉约束对学生设计认知的影响

      2021年,工程设计、分析和制造的人工智能:AIEDAM
    向右上箭头查看Scopus上所有引用的文章

    克里斯汀·霍夫迈斯特是宾夕法尼亚州伯利恒莱海大学计算机科学与工程的助理教授,目前她的研究领域是软件体系结构和基于组件的系统。她在布林莫尔学院获得数学学士学位,莱海大学计算机科学硕士学位,马里兰大学博士学位,论文主题是分布式系统的动态重构。在2000年加入Lehigh学院之前,她曾在新泽西州普林斯顿市的西门子公司研究所工作多年。在西门子工作期间,她与人合著了这本书应用软件体系结构和罗伯特·诺德。[电子邮件保护]

    克鲁奇顿是加拿大温哥华不列颠哥伦比亚大学软件工程教授。他目前的兴趣是软件过程建模和软件体系结构,以及文化对全球工程项目的影响。在UBC之前,他在Rational软件(现在的IBM)工作了16年,在那里他作为顾问参与了世界各地的几个大型国防和航空航天项目,并在那里开发了Rational统一过程®,一个软件工程过程。他还在法国阿尔卡特工作了8年,开发电话交换机。他拥有法国院校的机械工程文凭和信息系统博士学位。他是三本关于RUP的书的作者。[电子邮件保护]

    罗伯特·L·诺德是软件工程研究所(SEI)产品线系统项目的高级技术人员,他在那里开发和交流软件架构的有效方法和实践。在加入SEI之前,Nord博士是西门子软件体系结构项目的成员,在该项目中,他平衡了软件体系结构研究与大型系统设计和评估的工作。他在卡内基梅隆大学获得计算机科学博士学位。他是应用软件体系结构和文档化软件体系结构:视图和超越.[电子邮件保护]

    亨克·奥宾克是位于埃因霍温的飞利浦研究实验室的首席科学家。他领导软件密集型医疗系统的架构研究团队。他的研究兴趣包括计算机系统、通信系统、防御系统和消费品。他在乌得勒支大学获得化学和物理博士学位。他是IFIP软件架构工作组2.10的成员,也是IEEE/IFIP软件架构会议和软件产品线会议的指导委员会成员。他最近是3月/4月IEEE专刊的客座编辑之一,该专刊是软件体系结构的过去、现在和未来。[电子邮件保护]

    亚历山大跑了是美国马萨诸塞州剑桥市诺基亚研究中心(NRC)的研究员,目前是诺基亚和麻省理工学院合作的首席研究员,专注于面向任务的用户界面架构。在此之前,他领导了一个研究小组,致力于软件体系结构分析,以改善手机的性能特征,进行软件体系结构审查,协助建立软件体系结构流程,并担任诺基亚多个业务部门软件架构小组的顾问。[电子邮件保护]

    美国皮埃尔1982年获得乌得勒支大学硕士学位,1989年获得阿姆斯特丹自由大学博士学位。自1982年加入飞利浦研究所以来,他一直致力于计算机科学的不同领域,从并行面向对象编程的正式方面到音乐处理。在过去的几年里,他一直致力于产品系列的软件和系统架构方法。他一直在与飞利浦医疗系统公司密切合作,应用和验证这些方法。[电子邮件保护]

    查看全文