软件体系结构1-01可重构软件设计方法学
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4. 体系结构的设计层次 体现问题分割与抽象形式的规范化和结构化观点; 体现软件分块的粒度级划分思想与设计通则; 体现功能分割、软件分层、基于协议的层间交互和
语义规则描述等设计思想
(1) 层次构成特征 高层:接近应用描述与领域性模型,形成概念结构 中层:接近软件设计与原理性模型,形成逻辑结构 低层:接近硬件/程序与可用性模型,形成物理结构 (2) 层次划分方法 纵向:依据问题复杂度/重要性形成层间关系抽象
面向21世纪的软件方法论教材
软件体系结构
— 可重构软件设计方法学
万麟瑞
南京航空航天大学信息科学与技术学院
课程简介
第一章 概 论
第二章 基本体系结构风格 主程序/子过程结构,事件触发结构,解释器结构, 层次结构,管道-过滤器结构,黑板结构,面向对象结构 第三章 分布计算体系结构
C/S;CORBA,RMI;SOA,ESB,OGSA
表示方法:程序-模块/功能结构(控制结构,控制关系) 数据结构(类型,值) 抽象数据类型(对象,关系,操作方法,语义) 对象结构(对象,分类,关系,消息/方法) 通用划分:接口/实现;程序/数据;型/实例;实体/规约
1.2.2 软件体系结构及其设计理念
1. 软件体系结构定义
软件体系结构:是具有整体化抽象层次的骨架体结构, 是可模式化/模型化/模板化的问题解决框架; 是可预制、可替换、可组合和可演化的软件模型, 是由一组构件、连接子关系以及相关约束组成的软件系统
[3] 李英军等译.设计模式.机械工业出版社,2000 [4] B.P.Douglass著,麦中凡等译.实时设计模式. 北京航空航天大学出版社,2004 [5wenku.baidu.com 王志坚等.软件构件技术及其应用.科学出版社,2005
[6] 万麟瑞.面向构件的软件开发方法学研究.
小型微型计算机系统,2003,Vol.24 No.3
第 1 讲:软件体系结构的发展与应用概况
第一章 概 论 1.1 软件体系结构的研究概况 1.1.1 体系结构的模型抽象理念 1.1.2 体系结构描述语言 1.2 软件体系结构的设计理念 1.2.1 软件结构及其设计理念
1.2.2 软件体系结构及其设计理念
第一章 概
大系统认知理念:
框架 框架 过程 构架 设计方法 体系结构
横向:依据问题分块大小/结构独立性形成层内功能抽象
(3) 体系结构的层次模型 按软件抽象粒度级和构成关系划分(层次/粒度)
1. 软件的结构要素 程序:一组数据与处理方法(操作指令)的集合 早期:Pascal语言的发明者N.Wirth提出的程序理念 程序 = 算法 + 数据结构 发展:非交互 交互性数据处理与计算方法 三层构架
程序 = 界面 + 算法 +数据结构
软件:一组程序、相关信息及其文档的集合
程序 — 按预定功能和性能要求设计的可执行指令序列 信息 — 包括驱动数据结构正常工作的数据和设计知识 文档 — 与程序开发、维护和使用有关的图文资料
(1) 结构元素:关于软件的基本组成原理及软件分块机制 部件:程序片段(指令序列),数据(数据项集);
过程,函数,变量;模块;对象;表,库,仓
关系:顺序,分支,循环;并行,嵌套,选择;回环 中断,参数,消息;主程序/子过程;程序覆盖 (2) 控制流程:语句结构 程序结构 模块结构 ▲CHE
① 顺序结构:sequence [ i ] ② 分支结构: if … else … ③ 循环结构: while … do … switch case[ i ]… else … repeat … until …
适配器,桥接器
③ 行为型模式:模板方法,策略,观察器; 迭代器,命令结构,责任链; 发送—接收,客户—分发—服务,出版—订购
1.1.2 体系结构描述语言
ADL:为软件系统的概念框架建模和形式规约描述
提供具体的概念元、语法和语义的说明语言
(1) 数学描述语言MDL:Z语言,类属理论,Petri网 (2) 软件说明语言SDL:UML,XML,IDL;WPDL,XPDL (3) 体系结构语言ADL: ① 结构风格类: Aesop,C2,Wright
① 整体性:侧重体系化结构的描述与设计,
包括全局结构与局部结构的演化关系和宏观特性; 比基本软件结构具有更高层次的设计抽象, 一般针对复杂和大型的软件系统 ② 层次性:侧重软件抽象的粒度级划分,
一般定义为构架级、构件级和对象级
③ 可预制性:单元结构成熟,可预先设计、实现和提供选择 ④ 可替换性:不是可修改和可覆盖,而是可插拔和可重载 ⑤ 可组合性:结构可重组,部件可重用,应用接口可扩充 ⑥可演化性:框架-规则-实例;泛化/特化; 通过模板方法和创建机制动态生成一个特定应用
3. 软件体系结构抽象
内涵:体系结构风格,设计模式;构件,形式描述;MDA (1) 体系结构风格:具有相同风范或族集特性的特定结构类型 ① 调用-返回结构:静态结构的基础描述方法 主程序/子过程结构,层次结构,客户/服务器结构
② 请求-响应结构:运行结构的基础描述方法
中断/事件结构,进程/线程结构,消息结构 ③ 虚拟机系统:编译器,解释器,规则基/产生式系统 ④ 数据流系统:顺序批处理结构,编译器,状态转换器, 管道—过滤器结构,工作流结构
第四章 软件设计模式 Template Method,Strategy;Composite,MVC;Builder 第五章 体系结构的形式描述方法 第六章 软件构架与构件设计方法
第七章 应用案例分析
参考文献
[1] 万建成等.软件体系结构的原理、组成与应用. 科学出版社,2002
[2] 张友生.软件体系结构.清华大学出版社,2004
事件脚本定义:事件名[监护条件]/动作表达式 (3) 服务接口:部件间通过互连接口进行功能交互和数据交换,
以实现请求方和接收方之间的连接服务
接口∷=(接口名,类型,事件,操作,上下文)
4. 软件结构设计的总体理念
设计思想+概念元素+表示方法+通用划分策略
层次抽象:体现问题复杂度分割与组块分层的结构化观点
3. 基本连接机制
(1) 过程调用:部件间通过对方的过程或方法来实现显式连接 调用时必须知道对方的部件标识、操作标识及参数设置 形式: <过程名列表>(参数表)
扩充模式:本地过程调用(LPC),远程过程调用(RPC)
(2) 事件触发:用特定事件名来标识中断号所形成的隐式连接
事件:对象状态转换的控制信息/方法调用的消息 事件设置: set <事件> to <过程名>;
2. 体系结构设计的概念模型
要素:components,connectors,constraints;Configuration 构架 = 构件名(类型,端口,计算方法) + 连接件名(类型,角色,交互方法) + 约束(实体约束,连接约束)
+ 配置(构件名,连接件名,粘连特性)
3. 软件体系结构的特性
论
程序/数据/工具
软件框架:从总体上架构主部/子部结构的可实例化系统 软件构架:可重构领域化的软件体系结构 软件体系结构: ◆ 系统地研究软件结构设计与构造的软件领域工程
◆ 程序设计方法学/软件工程/领域工程/重构工程
等多学科相结合的新兴边缘学科 ◆ 面向21世纪的可重构软件设计方法学 ◆ 工程性/实用性强的应用学科与技术
⑤ 数据中心系统:黑板系统,数据仓库,超文本系统
⑥ 面向对象系统:对象结构,Agent结构
(2) 设计模式:结构/行为上具有参照价值的可预制设计样板 可形成面向模式的软件体系结构 三种类型:构造型,结构型,行为型
① 构造型模式:生成器,抽象工厂,工厂方法,原型,单例;
整体—部分,视图句柄;指针计数器 ② 结构型模式:组合器;代理结构;享元,外观; 模型—视图—控制(MVC), 表示—抽象—控制(PAC);
结构实例类:Adage,MetaH,Rapide,Unicon
约束配置类:Darwin,CHAM ② 可交换体系结构描述语言ACME(中介表达通用工具) 非ADL语言:编程语言,模块接口语言MIL,需求描述语言; 数学描述语言;软件说明语言
1.2 软件体系结构的设计理念
1.2.1 软件结构及其设计理念
1.1 软件体系结构的研究概况
软件方法论的发展历程:
面向过程方法 面向对象方法 面向构件方法
程序结构/数据结构
软件结构
软件体系结构
1.1.1 体系结构的模型抽象理念 1. 程序结构抽象:机器指令—汇编语言—子程序—控制流程 —高级语言—过程/函数—数据结构/类型—模块程序
2. 软件结构抽象
① 面向过程模型(功能模型,数据流模型) ② 面向数据模型(信息模型,语义数据模型) ③ 面向对象模型(对象模型,组件模型)
④ 转移语句:
过程调用:<过程名> (参数1,…,参数n) 中断/事件设置:set <事件> to <过程名>;
2. 模块结构:体现程序语句序列的基本功能分块
▲CHE
与连接控制流之间的构造关系
外部表示:具有顺序、选择、循环及其转移连接 控制方式的程序结构抽象 内部表示:具有I/O、处理逻辑、内部数据 及其运行特性的一组算法的集合