软件工程5-1

上传人:ji****n 文档编号:54847581 上传时间:2018-09-20 格式:PPT 页数:54 大小:792KB
返回 下载 相关 举报
软件工程5-1_第1页
第1页 / 共54页
软件工程5-1_第2页
第2页 / 共54页
软件工程5-1_第3页
第3页 / 共54页
软件工程5-1_第4页
第4页 / 共54页
软件工程5-1_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《软件工程5-1》由会员分享,可在线阅读,更多相关《软件工程5-1(54页珍藏版)》请在金锄头文库上搜索。

1、现代软件工程,第五部分软件体系结构与系统概要设计,现代软件工程,本部分主要参考书软件工程-实践者的研究方法 现代软件工程概论 软件体系结构的原理、组成与应用 需求分析与系统设计 设计模式-可复用面向对象软件的基础,体系结构的基本问题-1 软件系统的框架与体系结构-2 面向对象的设计模式-3 MVC结构与用户界面设计-4 基于构件的软件体系结构-5 从需求分析到系统设计过程-6,第五部分 软件体系结构与系统概要设计,第五部分 软件体系结构与系统概要设计,第一章 体系结构的基本问题体系结构的意义-1.1 体系结构的定义-1.2 体系结构的基础-1.3 抽象与求精-1.4 模块化与信息隐蔽-1.5,

2、构造一栋房屋,需要一张设计图纸或模型 需要具有规划良好的过程 需要具备一定功能的工具,需要由一个小型团体完成,并且需要更明确的目标和计划、更高的效率、更精确的时间限制,构建一个高层建筑?复杂!,软件体系结构的复杂性=技术的+管理的,更高的技术复杂性- 嵌入式,实时的,分布式的,不可出错的- 定制的, 空前的,可复用的- 高性能的,较低的技术复杂度- 大部分是4GL, 或基于组件技术的- 应用反向工程- 基于交互式的对性能要求不高,较高管理复杂度- 大范围- 合同契约性- 受很多人制约的- “项目”型的,较低的管理复杂度- 小范围- 非正式的- 简单的资金运作- “产品”型的,一个中等的项目-

3、5-10 人- 10-15 个月的开发周期- 3-5 个外部界面- 一些不可知的事情 & 风险,理解软件系统的复杂性因素,新技术融合,软件体系结构的重要性,已经比算法和数据结构更重要,灵活性与可扩展性,处理能力与吞吐量,负载与容量,可用性,失败安全与稳固性,出错容忍程度,功能,成本,兼容与可移植性,现在的挑战已经不是速度、成本和性能,而是复杂度的问题了。Bill Raduchel, Sun微系统公司策略执行总裁,理解体系结构定义,软件体系结构定义了软件计算部件的局部和总体的构成 以及这些部件之间的相互作用关系 计算部件: 客户、服务器、数据库、中间件、程序包、过程、子程序、进程等切碎、再切碎(

4、粒度) 相互作用关系: 过程调用、共享变量访问、信号灯、进程通信、消息传递、访问/网络协议等 除了描述系统的构成和结构关系外,体系结构还表达了系统需求和构成之间的对应关系,这为系统的设计,提供了分析和评价的依据 体系结构比需求更进一步要面对或满足系统非功能性的内容,如:容量、数据吞吐量、一致性、兼容性、安全性、可靠性,体系结构的类型与作用,体系结构在不同的阶段,依据层次和细节的不同,分为概略型、需求型和设计型 概略型是上层宏观的描述,反映系统最上层的部件和连接关系 需求型是对概略结构的深入表达,以满足用户功能和非功能需求的表达为主 设计型从设计实现的角度,对需求型进行更深入的描述表达,需要从不

5、同的侧面/视图,设计系统的各个层面的各个部件和连接结构。在这个层面上的描述,将直接为系统实现和性能分析服务,好的体系结构的特征,设计灵活和可伸缩性的 考虑全面并可扩展的 思路简单明了、直接可以理解的 结构划分和关系定义清楚的 模块职责明确和分布合理的 效益和技术综合平衡的,不同阶段、不同的人,对体系结构的不同视角,不同的人对体系结构有不同的视角 最终用户 客户 项目经理 系统分析师 编码工程师 架构工程师 维护人员 其他开发人员体系结构的视图是根据观察者的需要,来进行描述简化(抽象)的,它关注观察者的关注点,而忽略与关注点无关的部分,UML:描绘系统体系结构,逻辑视图,实现视图,面向编程 软件

6、管理,过程视图,分布图,系统拓扑结构 分发, 安装 通信,面向系统实施,概念模型,物理模型,用例图,用例,节点,组件,类, 接口, 协作,活动类,体系结构的视角,对体系结构的不同认识,反映在看待体系结构的视角上,也有不同,形成了不同的体系结构概念和描述形式: 主要的有:结构风格、设计模式、模型和关键部件、ADL语言 体系结构风格(风格:一种现实存在的抽象) 数据流系统:顺序批处理、管道和过滤器 调用-返回系统;主/子程序 面向对象系统:层次结构 独立部件:通信进程、事件隐式调用 虚拟机:解释器、规则系统 以数据(库)为中心的系统:数据库、超文本、黑板 特殊领域风格:过程控制、模拟器 特殊结构风

7、格:分布式处理、状态转移系统,体系结构的层次,系统是由许多层次构成的,每个层次处理不同的问题 每个层次都有二个方面组成:部件和规则 构成系统的原始的或集成的部件 由部件集成为系统的集成规则(静态) 为系统提供语义的行为规则(动态) 软件设计发展过程中,对体系结构认识的三个层次 执行级 包括存储器的映射、数据地址的安排、堆栈和寄存器的分配等,在此,部件是硬件,集成和行为规则是非常明确具体的 代码级 包括算法和数据结构的选择。在此,部件是程序设计语言的字符、指针、进程控制等,集成的是记录、数组和过程 结构级 包括与部件相关联的系统总体性能。在此,部件是模块、模块的相互关系,它指明从模块到子系统、到

8、系统的集成 在上世纪80年代,软件开发者关注的是代码级的,如今,关注的是结构级,“结构级”体系结构的认识,软件体系结构的“结构”元素:部件 系统的总体组织架构、全局控制、通信协议、同步、数据存取、设计元素的功能、设计元素的组织、规模、性能、设计方案的选择等 部件不只是有形的、物理的程序片段:还包括“结构件” 软件体系结构的集成规则和行为规则 体系结构是关于软件的系统级层次上的组成和行为 体系结构是由软件部件和部件之间的联系组成 部件的描述应包括:部件功能、结构特征、非功能特征 部件的概念,根据设计方法的不同,代表不同的对象:类/对象、库/包、构件/组件、制品/配置项/基线等,关系数据库,体系结

9、构的四视图观点,四视图:概念、模块、代码、运行,体系结构的模型和关键部件观点,模型的演变和深入: 过程抽象,关键部件:系统边界、系统服务和客户、系统界面、事务管理,模型的演变和深入: 对象和数据抽象,顺序/条件/循环、分布、并行、激发/响应、应用环境、任务控制,复杂的Internet系统,客户端,WEB 服务器,应用 服务器,认证 系统,财务 系统,库存 系统,数据库 系统,Dynamic HTML, JavaScript, Java plug-ins, source code enhancements,Java, C, C+, JavaScript, CGI,Java, C, C+, Jav

10、aBeans,CORBA, DCOM,Native languages,复杂的商业系统的体系结构,数据库,用户界面层,ServiceAgent,purchase(customer, product, items),Customer,name : String,Address : String,save(),Customer,name : String,Address : String,save(),getName(),updateName(),Customer,Order Line,*,*,Product,*,*,Order Line,items : Product,getName(),upd

11、ateName(),Observer,update(),Order,date : Date,Product,name : String,price : Currency,getName(),updateName(),Sales,product : Product,中间件,体系结构的研究范畴,体系结构的研究领域 体系结构的实践经验积累 通用的软件体系结构框架和构件 特殊应用领域的体系结构框架和组件 基于体系结构的软件开发环境和工具 体系结构本身的形式化研究 体系结构的形式化语言描述方法,软件设计经历了40年的发展演化过程:1、早期的模块化程序设计和自顶向下逐步求精的结构化方法面向结构的方法2、由

12、数据库技术的发展,带来的将数据流和数据结构,转化为设计定义的方法(E-R模型)面向数据的方法3、面向对象的方法从对象及其关系导出系统的方法4、现在的方法:软件设计的重点,已经移到软件体系结构和实现软件体系结构的设计模式,5.1.3 体系结构基础,体系结构的基本问题:结构基础,软件结构始终是软件研究的重要课题,而研究的层次和侧重点,从最基本和底层,向越来越抽象层次发展,但结构的基本思想仍然有指导意义。 曾作为软件结构研究发展的基本思想包括:,(1)结构化控制流 (2)部件连接方式 (3)结构化控制模式 (4)基本数据结构,(5)抽象数据结构 (6)进程 (7)分时与并发 (8)资源共享与并行同步

13、,不论何种方法,都具有以下一些共同的特征: (1)一种用于将分析模型变换到设计表示的机制; (2)用于表示功能性结构及其接口的符号体系; (3)用于求精和划分的启发信息; (4)质量评价的指导原则,软件的结构基础,1、结构化控制流 伴随着高级语言的产生,最基本的结构化程序控制规范就产生了,例如: 顺序语句 形式:;程序按语句1-n顺序执行。 转向语句 形式:goto;程序转到所指示的语句执行。 过程调用 形式:(参数1、参数2、参数n)程序转到指定的过程开始执行,执行完过程后,返回到的下一条语句继续执行。,软件的结构基础,条件语句 形式:if(条件表达式)then;条件成立,执行语句 形式:i

14、f(条件表达式)thenelse;如果条件成立,执行语句1,否则执行语句2。 开关语句 形式:switch(计算表达式)case 值1:;case值n:语句n;else 语句N+1; 计算表达式的值,根据取值i,分别执行语句I,否则,执行语句n+1。 循环语句 形式:for(循环控制变量=初值,循环变量计算)从循环控制变量初值开始,判断条件是否满足,满足则执行循环体,改变控制变量值,再进行判断 形式:while(条件表达式)do;先判断条件,满足则执行语句。 形式:repeatuntil(条件表达式);先执行,再判断条件满足再次执行。,软件的结构基础,2、部件连接方式(控制模式) 在控制流之上

15、,存在着比语句更集中的部件,这些部件可以是数据、外部设备、程序段等。与这些部件的连接方式,是复杂程序设计更高一层的抽象,也称为控制模式。 直接过程调用方式 部件与部件之间,通过直接调用对方的过程、函数或方法实现连接的方法,这是最普通、常用的方法。 过程调用是通过系统提供的CALL和堆栈机制实现的。,过程调用表(间接)方式 如图:过程调用表是通过维护一张表格的形式,来系统地管理过程调用的方法。 各过程按标识排列在表中,建立起标识与代码的对应。 调用表的可动态维护,是这种方法的优点,所以也称为间接调用。,调用方主动/被调用方被动,软件的结构基础,中断/事件触发方式 中断事件触发是通过硬件所提供的中

16、断及其控制机制,实现的部件连接方式。 部件的调用,依靠中断设置和中断触发实现的。中断设置就是将特定的中断号码的中断指针指向中断处理入口。中断处理根据代码号,转向不同的处理代码段,执行相应的处理操作。,发生x号中断 进入转入中断处理,过程链接方式 过程链接在原理上与中断方式有些类似,它通过一些标识,在多个事件或过程的处理链中,进行转移。 过程链接方式是动态扩展系统功能的常用设计方法。在中断服务、设备管理、消息传递等服务中,有广泛的应用。 只要增加一个标识,就可以把新的代码段插入到处理链中,达到功能扩充的目的。,调用方被动/被调用方主动,软件的结构基础,服务连接方式 服务连接方式的服务部件由接口、分析器、执行器构成 其他部件与服务部件进行交互,是通过接口进行的 分析器分析获得的服务请求信息然后交执行器执行 服务部件是被动接收服务请求,解释器和各类服务器就是采用这种连接方式,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 初中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号