《第7章-基于体系结构的软件开发.doc》由会员分享,可在线阅读,更多相关《第7章-基于体系结构的软件开发.doc(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第7章 基于体系结构的软件开发7.1 设计模式7.1.1 设计模式概述Erich Gamma、Richard Helm、Ralph Johnson、John Vlissides四人95年出版了Design Patterns一书,可重用设计。来源于建筑设计重用。算法,编程领域的设计模式,可以重用。MVC模式:图7-1,视图虽变,但模型可重用。设计模式:系统地命名、解释和评价某一个重要的可重现的面向对象的设计方案。软件体系结构的模式:出现在特定设计语境、再现问题、解决方案、通用图示。做到几点:P1937.1.2 设计模式的组成四个基本成分:(1) 模式名称:描述设计问题。(2) 问题:什么时候使用
2、。(3) 解决方案:如何解决再现问题。(4) 后果:结果和权衡。描述格式:Gamma等人的书,P195-196。7.1.3 模式和软件体系结构1.作为构造块:用已定义属性进行特定的软件体系结构的构造。2.异构:多个模式,解决多个问题,支持构造已定义属性的软件体系结构。3.微方法:模式描述包含了实现指南。4.实现:用几乎所有编程语言实现。7.1.4 设计模式方法分类1.Coad的划分:三类,P198。2.代码模式:从语法角度对软件体系结构提供基本规范。3.应用框架:特定的框架适用于特定的需求,“菜谱”。4.形式合约:描述框架设计,优缺点:P1995. Gamma分类:表7-27.2 基于体系结构
3、的设计方法ABSD产生概念体系结构(Conceptual Architecture),(Module、Execution、Code),第一选择,体系结构驱动。三个基础:功能分解,选择风格,软件模板。7.2.1 有关术语1.设计元素:泛指软件系统、概念子系统或概念构件,图7-2。2.视角和视图:从动态和静态视角观察体系结构元素,逻辑、并发、配置视图。3.用例和场景:用例使功能需求具体化,特定场景捕获质量需求。7.2.2 ABSD方法与生命周期图7-3中间,输入:六部分。输出:三个视图的概念构件集合。7.2.3 ABSD方法的步骤1.定义设计元素:顶层分解-概念子系统分解-概念构件。2.产生顺序:
4、广度遍历或深度遍历(图7-4)。3.活动:分解序列:图7-5反馈环,逻辑视图定义步骤:图7-6。实例:从图7-7开始,设计步骤:(1) 功能分解:每组在结构中独立。(2) 选择风格:体系结构驱动。(3) 分配功能:决定构件类型数量和功能。(4) 细化模板:加上功能。(5) 功能校验:由用例验证功能。(6) 并发视图:图7-8。(7) 配置视图:图7-9。(8) 验证质量:用场景。(9) 验证约束:没有矛盾。7.3 体系结构的设计与演化演化增量开发已成为标准,需求变化,初始原型与最终产品相差很大。好的结构应演化。7.3.1 设计和演化过程实验原型阶段和演化开发阶段。7.3.2 实验原型阶段第一开
5、发周期:两个小组,一个创建界面,另一个创建问题域。第二开发周期:设计正交软件体系结构,六个小阶段:(1) 标识构件:生成类图(7-10),分组,类簇打包。(2) 提出模型:选风格。(3) 映射:产生中间结构。(4) 分析交互:分析构件的相互作用,用顺序图(7-11)。(5) 产生结构:精化中间结构。(6) 正交化:自顶向下、由左到右进行。7.3.3 演化开发阶段确定正交体系结构后,开始构件开发,八个步骤:P214-215。7.4 基于体系结构的软件开发模型ABSDM,六个子过程,图7-12。7.4.1 体系结构需求图7-13,需求获取、标识构件、需求评审。7.4.2 体系结构设计图7-14,五
6、步。7.4.3 体系结构文档化输出需求规格说明和质量设计说明书。7.4.4 体系结构复审由外部人员进行复审。7.4.5 体系结构实现图7-15(虚线框)。7.4.6 体系结构演化图7-16,七步。7.5 应用开发实例7.5.1 系统简介劳动和社会保险信息系统,图7-17,层次式体系结构。1.通用核心层:图7-18,图7-19,基类:P221。2.基层单位管理平台:图7-20。3.业务管理系统:图7-21。4.扩展应用层:图7-22。7.7.2 系统设计与实现三级正交结构,第一级八个线索:图7-23。某个二级线索:图7-24,某个三级线索:图7-25,整个系统五层:图7-26。7.5.3 系统演
7、化六个步骤,P225-226。7.6 基于体系结构的软件过程7.6.1 有关概念1.软件过程:三个研究方向。2. Petri网:特点(1)、(2)、(3)、(4)。例子图7-27。7.6.2 软件过程网定义1. Petri网定义定义2. 活的,有界的。定义3. 路径定义4. 强连通定义5. 软件过程网SPN定义6. 完全展开软件过程网C_SPN定义7. 过程基本正确定义8. 过程正确7.6.3 基本结构的表示1.顺序:图7-282.与汇合:图7-293.或汇合:图7-304.与分支:图7-315.或分支:图7-326.迭代:图7-337.6.4 基于体系结构的软件过程Petri网ABSPN:图
8、7-34。定理4. ABSPN活的,有界的,过程基本正确。1.ABSPN_R:图7-35,过程正确,活的,有界的。2.ABSPN_D:图7-36,过程正确,活的,有界的。3.ABSPN_I:图7-37,过程正确,活的,有界的。4.ABSPN_E:图7-38,过程正确,活的,有界的。5.C_ABSPN:图7-39,ABSPN过程正确。7.7 软件体系结构演化模型7.7.1 SA静态演化模型1.软件体系结构静态演化模型定义1. 构件Com定义2. 连接件Con定义3. SA网络,NSA=定义4. SA简化模型,SAS=定义5. SA演化图7-40,实例,5个构件,6个连接件。图7-41,有向图,连
9、接件方向语义,简化模型。2. SA邻接矩阵与变换,图7-42,图7-43,语义关系连接矩阵。定义6. SA结构关系邻接矩阵图,图7-42定义7. SA语义关系连接矩阵图,图7-43定义8. 填上具有一定语义的数值后,称SA结构关系邻接矩阵和SA语义关系连接矩阵。7.7.2 SA的动态演化模型1. SA动态语义网推论1,P238,NSA能用有向图刻画。定义9. NSA=浸润,有向图GS,动态语义网。定理1 NSA与GS同构。定义10. NSA称为SA动态语义网。2. 浸润过程定义11. 浸润域推论2,GSA上的浸润域定义12. 策动源定义13. 邻接矩阵定义14等价于元素操作定义15. 浸润算子定义16. 浸润步定义17. 浸润过程定义18. 不动点定义19. 收敛定理2 收敛充要条件,Fi收敛于i。定义20. SA最优3. SA动态演化分析定义21. 特定条件域Ui定义22. SA条件域U定义23. 不动点软件体系结构SAi定义24. 不动点转移
限制150内