- 1、本文档共45页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第10章软件架构的演化和维护
软件架构一般会经历初始设计、实际使用、修改完善和退化弃用的过程,其中修改完善的过程实际上就是软件架构的演化和维护过程,演化和维护的目的就是为了使软件能够适应环境的变化而进行的纠错性修改和完善性修改等。软件架构的演化和维护过程是一个不断迭代的过程,通过演化和维护,软件架构逐步得到完善,以满足用户需求。本章详细讨论软件架构的演化和维护问题,包括基本概念、演化类型和维护手段,还介绍了一些实际有用的软件架构演化原则。
10.1软件架构演化和定义的关系
10.1.1演化的重要性
为了适应用户的新需求、业务环境和运行环境的变化等,软件架构需要不断地进行自身的演化,也就是说软件架构的演化就是为了维持软件架构自身的有用性。
本质上讲,软件架构的演化就是软件整体结构的演化,演化过程涵盖软件架构的全生命周期,包括软件架构需求的获取、软件架构建模、软件架构文档、软件架构实现以及软件架构维护等阶段。所以,人们通常说软件架构是演化来的,而不是设计来的。
为什么软件架构演化如此重要?首先,软件架构作为软件系统的骨架支撑着整个软件系统,是软件系统具备诸多好的特性的重要保障。因为最终软件系统的性能、可靠性、安全性和易维护性等是软件系统最重要的质量和功能属性,是决定软件系统是否被用户接受、是否具有市场竞争力、是否具有进一步改造升级的可能性、是否具有较长生命周期的重要因素;软件架构自身的好坏直接影响着它们是否满足用户需求,而软件架构演化正是为了保障这些方面向人们预期的方向发展的重要措施。
其次,软件架构作为软件蓝图为人们宏观管控软件系统的整体复杂性和变化性提供了一条有效途径,而且基于软件架构进行的软件检测和修改成本相对较低,所以要刻画复杂的软件演化,并对演化中的影响效应进行观察和控制,从软件架构演化出发更加合理。
软件架构的演化可以更好地保证软件演化的一致性和正确性,而且明显降低软件演化的成本,并且软件架构演化使得软件系统演化更加便捷,这里主要有3个原因。
(1)对系统的软件架构进行的形式化、可视化表示提高了软件的可构造性,便于软件演化。
(2)软件架构设计方案涵盖的整体结构信息、配置信息、约束信息等有助于开发人员充分考虑未来可能出现的演化问题、演化情况和演化环境。
(3)架构设计时对系统组件之间的耦合描述有助于软件系统的动态调整。
10.1.2演化和定义的关系
由于软件架构的定义很多,根据不完全统计已有近百种不同的定义。不同的定义确定了不同的软件架构组成方式和组成规则。同时在这些定义中,一些定义给出的架构又有很多共性的
描述。所以,软件架构演化根据这些定义体现了相同面,也体现了不同面。所以,我们在理解软件架构演化时,需要考虑具体的软件架构定义。
例如,如果软件架构定义是SA={components,connectors,constraints},也就是说,软件架构包括组件(Components)、连接件(Connectors)和约束(Constraints)三大要素,这类软件架构演化主要关注的就是组件、连接件和约束的添加、修改与删除等。
组件是软件架构的基本要素和结构单元,表示系统中主要的计算元素、数据存储以及一些重要模块,当需要消除软件架构存在的缺陷、增加新的功能、适应新的环境时几乎都涉及组件的演化。组件的演化体现在组件中模块的增加、删除或修改。通常模块的增加、删除和修改会产生波及效应,其中增加模块会导致增加新的交互消息,删除模块会导致删除已有交互消息,改变模块会导致改变已有交互消息。
连接件是组件之间的交互关系,大多数情况下组件的演化牵涉到连接件的演化。连接件的演化体现在组件交互消息的增加、删除或改变,它除了伴随模块的改变而改变外,还有一种情况是由于系统内部结构调整导致的人与系统交互流程的改变,即组件之间交互消息的增加、删除或改变。
约束是组件和连接件之间的拓扑关系和配置,它为组件和连接件提供额外数据支撑,可以是架构的约束数据,也可以是架构的参数。约束的演化体现在知识库中仿真数据的增加、删除或改变。无论是组件、连接件还是约束的演化都可能导致一系列的波及效应,从而分为受变更直接影响的组件、连接件、约束,以及受到变更波及的组件、连接件、约束两类变更元素。最终这两类变更元素和不受影响的元素共同组成了演化后的软件架构。
10.2面向对象软件架构演化过程
假设软件架构对应到具体的架构风格或模式,我们就可以讨论演化的各种具体操作了。下面以面向对象软件架构为例,结合UML顺序图来进一步讨论各种演化操作。
10.2.1对象演化
在顺序图中,组件的实体为对象。组件本身包含了众多的属性,如接口、类型、语义等,这些属性的演化是对象自身的演化,对于描述对象之间的交互过程并无影响。因此,会对架构设计的动态行为产生影
您可能关注的文档
- 系统架构师(第2版)第20章 系统架构设计师论文写作要点.docx
- 系统架构师(第2版)第19章 大数据架构设计理论与实践.docx
- 系统架构师(第2版)第18章 安全架构设计理论与实践.docx
- 系统架构师(第2版)第17章 通信系统架构设计理论与实践.docx
- 系统架构师(第2版)第16章 嵌入式系统架构设计理论与实践.docx
- 系统架构师(第2版)第15章 面向服务架构设计理论与实践.docx
- 系统架构师(第2版)第14章 云原生架构设计理论与实践.docx
- 系统架构师(第2版)第13章 层次式架构设计理论与实践.docx
- 系统架构师(第2版)第12章 信息系统架构设计理论与实践.docx
- 系统架构师(第2版)第11章 未来信息综合技术.docx
信息系统项目管理师持证人
(1)深耕智慧园区10年+ (2)IoT产品专家 (3)工业4.0领头羊 (4)就业咨询指导5年+ (5)方案输出百万字+
文档评论(0)