10.1软件架构演化和定义的关系
10.1.1演化的重要性
架构不是设计来的,而是演化来的
软件架构作为软件系统的骨架支撑着整个软件系统,是具备诸多好特性的重要保障
软件架构作为软件蓝图为人们宏观管控软件系统的整体复杂性和变化性提供了一条有效途径,而且基于软件架构进行的软件检测和修改的成本相对较低,所以要刻画复杂的软件演化,并对演化中影响效应进行观察和控制,从演化出发更加合理
软件架构的演化可以更好的保证软件演化的一致性和正确性,且明显降低软件演化的成本,并且软件架构演化使得软件系统演化更加便捷
10.2演化和定义的关系
软件架构包括组件、连接件、约束,演化主要关注的就是组件、连接件、约束的添加、修改、删除等
10.2面向对象软件架构演化过程
10.2.1对象演化
组件实体为对象,演化包括:AddObject(AO)、DeleteObject(DO)
10.2.2消息演化
AddMessage(AM)、DeleteMessage(DM)、SwapMessageOrder(SMO)、OverturnMessage(OM)、ChanageMessageModule(CMM)
消息是顺序图核心内容,消息演化是顺序图演化的核心
10.2.3复合片段演化
AddFragment(AF)、DeleteFragment(DF)、FragmentTypeChange(FTC)、FragmentConditionChange(FCC)
10.2.4约束演化
Add Constraint(AC)、Delete Constraint(DC)
10.3软件架构演化方式的分类
按实现方式和实施粒度分类:基于过程和函数演化、面向对象演化、基于组件的演化、基于架构的演化
按照研究方法:对演化支持、版本和工程的管理工具、架构变化的形式方法、架构演化的成本收益分析
按软件架构的演化过程是否处于系统运行期:静态演化、动态演化
10.3.1软件架构演化时期
设计时演化、运行前演化、有限运行时演化、运行时演化
10.3.2软件架构静态演化
静态演化需求:设计时演化需求、运行前演化需求
静态演化一般过程:更正性维护、适应性维护、完善性维护;步骤(软件理解、需求变更分析、演化计划、系统重构、系统测试)</