《现代软件工程》培训课件.ppt.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《现代软件工程》培训课件.ppt.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 现代软件工程 现代 软件工程 培训 课件 ppt
- 资源描述:
-
1、现代软件工程现代软件工程第五部分第五部分软件体系结构与系统概要设计软件体系结构与系统概要设计 现代软件工程现代软件工程本部分主要参考书本部分主要参考书软件工程软件工程-实践者的研究方法实践者的研究方法现代软件工程概论现代软件工程概论软件体系结构的原理、组成与应用软件体系结构的原理、组成与应用需求分析与系统设计需求分析与系统设计设计模式设计模式-可复用面向对象软件的基础可复用面向对象软件的基础体系结构的基本问题-1软件系统的框架与体系结构-2面向对象的设计模式-3MVC结构与用户界面设计-4基于构件的软件体系结构-5从需求分析到系统设计过程-6第五部分第五部分 软件体系结构与系统概要设计软件体系
2、结构与系统概要设计第五部分第五部分 软件体系结构与系统概要设计软件体系结构与系统概要设计第一章 体系结构的基本问题体系结构的意义-1.1 体系结构的定义-1.2体系结构的基础-1.3抽象与求精-1.4模块化与信息隐蔽-1.55.1.1 体系结构的重要性和意义体系结构的重要性和意义软件设计与建筑设计在软件设计与建筑设计在某些方面是类似的:某些方面是类似的:搭建一个小狗屋,可以由一个人来完成:l 最小的整体结构l 最简单的过程l 最原始的工具 整体结构和精化都在一个人脑子里完成、并由本人亲自实现构造一栋房屋构造一栋房屋需要一张设需要一张设计图纸或模型计图纸或模型需要具有规需要具有规划良好的过程划良
3、好的过程需要具备一定功能的工具需要具备一定功能的工具需要由一个小型团体完成,并且需要由一个小型团体完成,并且需要更明确的目标和计划、更高需要更明确的目标和计划、更高的效率、更精确的时间限制的效率、更精确的时间限制构建一个高层建筑?复杂!构建一个高层建筑?复杂!软件体系结构的复杂性软件体系结构的复杂性=技术的技术的+管理的管理的更高的技术复杂性更高的技术复杂性-嵌入式,实时的,分布式的,不可出错的嵌入式,实时的,分布式的,不可出错的-定制的定制的,空前的,可复用的空前的,可复用的-高性能的高性能的较低的技术复杂度较低的技术复杂度-大部分是大部分是4GL,或基于组件技术的或基于组件技术的-应用反向
4、工程应用反向工程-基于交互式的对性能要求不高基于交互式的对性能要求不高较高管理复杂度较高管理复杂度 -大范围大范围 -合同契约性合同契约性 -受很多人制约的受很多人制约的 -“项目项目”型的型的较低的管理复杂度较低的管理复杂度 -小范围小范围 -非正式的非正式的 -简单的资金运作简单的资金运作 -“产品产品”型的型的防御防御 MIS系统系统防御防御武器系统武器系统信息信息 交换交换CASE工具工具国际空中运输国际空中运输控制系统控制系统企业企业IS(IS应用应用)商业商业编译器编译器商业制表软件商业制表软件IS应用应用分布式对象分布式对象小型科学模拟小型科学模拟大型组织大型组织/实体仿真模拟实
5、体仿真模拟一个中等的项目 -5-10 人人-10-15 个月的开发个月的开发周期周期-3-5 个外部界面个外部界面-一些不可知的事情一些不可知的事情&风险风险嵌入式嵌入式车用软件车用软件IS应用应用GUI/RDB 理解软件系统的复杂性因素理解软件系统的复杂性因素新技术融合软件体系结构的重要性,已经比算法和数据结构更重要软件体系结构的重要性,已经比算法和数据结构更重要灵活性与可扩展性处理能力与吞吐量负载与容量可用性失败安全与稳固性出错容忍程度功能成本兼容与可移植性系统的复杂性现在的挑战已经不是速度、成本和性能,而是复杂度的问题了。Bill Raduchel,Sun微系统公司策略执行总裁体系结构的
6、域体系结构的域体系结构体系结构元素元素/关系关系处理处理体系结构体系结构 集成集成/约束约束 体系结构是体系结构是“什么什么”体系结构体系结构“为什么为什么”体系结构体系结构“如何如何”“谁谁”保证体系结构保证体系结构系统系统功能功能结构结构S/W 需求需求系统系统质量属性质量属性满足满足限制限制组织组织构建构建技巧技巧风险承担人风险承担人定义规则定义规则生产生产跟踪跟踪技术技术定义定义为什么体系结构在软件系统中具有如此的重要性?为什么体系结构在软件系统中具有如此的重要性?一个表现体系结构作用和价值的典型案例一个表现体系结构作用和价值的典型案例软件无线电与体系结构软件无线电与体系结构Softw
7、are Radio Architecture5.1.2 体系结构定义体系结构定义n软件体系结构是:由结构和功能各异、相互作用的部软件体系结构是:由结构和功能各异、相互作用的部件集合,按照层次构成。它包含了系统的基础构成单件集合,按照层次构成。它包含了系统的基础构成单元、它们之间的作用关系、在构成系统时,它们的集元、它们之间的作用关系、在构成系统时,它们的集成方法以及对集成约束的描述。成方法以及对集成约束的描述。n软件的体系结构是关于软件系统组织的配置定义软件的体系结构是关于软件系统组织的配置定义l定义了:组成系统的结构(结构元素)和部件;l定义了:结构与部件间特定的构成和协作关系;l定义了:系
8、统继承集成方法和约束;因此,系统中的子系统定义,是系统体系构建(集成)的结果,而不是开始;l体系结构不但决定了系统的物理构成,也支配了开发的组织行为(需求分配、范围和任务定义、进度计划、测试方案、集成方法、配置项与基线管理),这是现代软件工程更注重的地方。n内容与形式、过程与结果内容与形式、过程与结果理解体系结构定义理解体系结构定义软件体系结构定义了软件计算部件的局部和总体的构成软件体系结构定义了软件计算部件的局部和总体的构成以及这些部件之间的相互作用关系以及这些部件之间的相互作用关系n计算部件:计算部件:l客户、服务器、数据库、中间件、程序包、过程、子程序、进程等切碎、再切碎(粒度)n相互作
9、用关系:相互作用关系:l过程调用、共享变量访问、信号灯、进程通信、消息传递、访问/网络协议等n除了描述系统的构成和结构关系外,体系结构还表达了系统需求和构成之间的对应关系,这为系统的设计,提供了分析和评价的依据n体系结构比需求更进一步要面对或满足系统非功能性的内容,如:容量、数据吞吐量、一致性、兼容性、安全性、可靠性 体系结构元模型体系结构元模型视图展现了体系结构的不同视角一个具体的体系结构构成的例子,当然并不只有窗体,约束来自需求和设计规范模板提供了设计规范和重用表现了风格规范制定和成果积累从具体到抽象的提升体系结构的类型与作用体系结构的类型与作用n体系结构在不同的阶段,依据层次和细节的体系
10、结构在不同的阶段,依据层次和细节的不同,分为概略型、需求型和设计型不同,分为概略型、需求型和设计型l概略型是上层宏观的描述,反映系统最上层的部件和连接关系l需求型是对概略结构的深入表达,以满足用户功能和非功能需求的表达为主l设计型从设计实现的角度,对需求型进行更深入的描述表达,需要从不同的侧面/视图,设计系统的各个层面的各个部件和连接结构。在这个层面上的描述,将直接为系统实现和性能分析服务体系结构的类型与作用体系结构的类型与作用n在项目规划阶段:体系结构是项目可行性、工程复杂度、计划进度、投资规模和风险预测的依据(概略型)n在需求分析阶段:体系结构是开发团队与用户进行需求交互沟通的表达形式和结
11、果(需求型)n在系统设计阶段:体系结构是系统设计分解的基础n在项目实施阶段:体系结构是工作分工、人员安排、组织协调、绩效管理的依据n在项目评估阶段:体系结构是性能测试和评估的依据n在维护升级阶段:体系结构是在保证系统整体合理性、正确性、性能和可控的维护成本的前提下,软件系统修改、扩充、升级的基础模型好的体系结构的特征好的体系结构的特征n设计灵活和可伸缩性的设计灵活和可伸缩性的n考虑全面并可扩展的考虑全面并可扩展的n思路简单明了、直接可以理解的思路简单明了、直接可以理解的n结构划分和关系定义清楚的结构划分和关系定义清楚的n模块职责明确和分布合理的模块职责明确和分布合理的n效益和技术综合平衡的效益
12、和技术综合平衡的不同阶段、不同的人,对体系结构的不同视角不同阶段、不同的人,对体系结构的不同视角n不同的人对体系结构有不同的视角不同的人对体系结构有不同的视角l最终用户l客户l项目经理l系统分析师l编码工程师l架构工程师l维护人员l其他开发人员n体系结构的视图是根据观察者的需要,来进行描述简体系结构的视图是根据观察者的需要,来进行描述简化(抽象)的,它关注观察者的关注点,而忽略与关化(抽象)的,它关注观察者的关注点,而忽略与关注点无关的部分注点无关的部分UML:描绘系统体系结构:描绘系统体系结构逻辑视图面向系统设计 功能实现视图面向编程 软件管理 过程视图性能可伸缩性吞吐能力 面向系统集成分布
13、图系统拓扑结构 分发,安装通信面向系统实施概念模型物理模型用例图用例节点组件 类,接口,协作活动类体系结构的视角体系结构的视角对体系结构的不同认识,反映在看待体系结构的视角上,也有对体系结构的不同认识,反映在看待体系结构的视角上,也有不同,形成了不同的体系结构概念和描述形式:不同,形成了不同的体系结构概念和描述形式:主要的有:结构风格、设计模式、模型和关键部件、主要的有:结构风格、设计模式、模型和关键部件、ADL语言语言体系结构风格(体系结构风格(风格:一种现实存在的抽象风格:一种现实存在的抽象)数据流系统:顺序批处理、管道和过滤器调用-返回系统;主/子程序面向对象系统:层次结构独立部件:通信
14、进程、事件隐式调用虚拟机:解释器、规则系统以数据(库)为中心的系统:数据库、超文本、黑板特殊领域风格:过程控制、模拟器特殊结构风格:分布式处理、状态转移系统体系结构的层次体系结构的层次系统是由许多层次构成的,每个层次处理不同的问题系统是由许多层次构成的,每个层次处理不同的问题每个层次都有二个方面组成:部件和规则每个层次都有二个方面组成:部件和规则构成系统的原始的或集成的部件由部件集成为系统的集成规则(静态)为系统提供语义的行为规则(动态)n软件设计发展过程中,对体系结构认识的三个层次软件设计发展过程中,对体系结构认识的三个层次l执行级包括存储器的映射、数据地址的安排、堆栈和寄存器的分配等,在此
15、,部件是硬件,集成和行为规则是非常明确具体的l代码级包括算法和数据结构的选择。在此,部件是程序设计语言的字符、指针、进程控制等,集成的是记录、数组和过程l结构级包括与部件相关联的系统总体性能。在此,部件是模块、模块的相互关系,它指明从模块到子系统、到系统的集成n在上世纪在上世纪80年代,软件开发者关注的是代码级的,如今,关注的是结构级年代,软件开发者关注的是代码级的,如今,关注的是结构级“结构级结构级”体系结构的认识体系结构的认识n软件体系结构的软件体系结构的“结构结构”元素:部件元素:部件l系统的总体组织架构、全局控制、通信协议、同步、数据存取、设计元素的功能、设计元素的组织、规模、性能、设
16、计方案的选择等l部件不只是有形的、物理的程序片段:还包括“结构件”n软件体系结构的集成规则和行为规则软件体系结构的集成规则和行为规则l体系结构是关于软件的系统级层次上的组成和行为l体系结构是由软件部件和部件之间的联系组成l部件的描述应包括:部件功能、结构特征、非功能特征l部件的概念,根据设计方法的不同,代表不同的对象:类/对象、库/包、构件/组件、制品/配置项/基线等RUP的统一过程结构的统一过程结构预备循环 Iter.#1周期周期处理工作流处理工作流反复反复支持工作流支持工作流 Iter.#2 Iter.#n Iter.#n+1 Iter.#n+2 Iter.#m Iter.#m+1管理环境
17、管理环境配置管理配置管理业务模型业务模型实现实现测试测试分析和设计分析和设计分布分布需求需求详细化详细化提交提交初始化初始化构造构造RUP统一过程统一过程三大要素:三大要素:用例驱动用例驱动源头和全过程驱动源头和全过程驱动迭代迭代开发过程与基本方法开发过程与基本方法以体系结构为中心以体系结构为中心适应适应需求变更需求变更和和迭代开发迭代开发的的 需要,以体系结构为基础的需要,以体系结构为基础的 增量开发增量开发。发现发现创造创造实现实现生命周期与生命周期与重要的里程碑重要的里程碑时间时间想象 体系结构基线 初始能力产品发布最初详细构造提交n最初最初 定义项目的范围和开发商业案例(业务定义项目的
18、范围和开发商业案例(业务/系统模型)系统模型)n详细详细 计划项目,详细说明功能和结构的基线计划项目,详细说明功能和结构的基线n构造构造 创建产品创建产品n提交提交 把产品提交给用户把产品提交给用户以产品线为目标、以框架为基础的迭代过程以产品线为目标、以框架为基础的迭代过程迭代迭代一个循环是一次确定的计划、评估、标准审查活动的阶段,一个循环是一次确定的计划、评估、标准审查活动的阶段,最终结果是产生可执行发布版本(基线发布与中间版本)。最终结果是产生可执行发布版本(基线发布与中间版本)。主要循环.开发循环开发循环.提交循环.发布发布发布发布发布发布发布发布预备循环.以体系结构为中心以体系结构为中
19、心nRUP的视图和模型是使体系结构可视化、可详细的视图和模型是使体系结构可视化、可详细描述和定义、可文档化的构造工具和手段描述和定义、可文档化的构造工具和手段n统一过程指明了可执行体系结构的顺序行为过程统一过程指明了可执行体系结构的顺序行为过程时间体系结构构造提交体系结构和循环体系结构和循环用例模型设计模型分布模型测试模型实现模型内容关系数据库关系数据库C客户端客户端WWW BrowserWeb服务器服务器HTMLCGIASPJava商业对象服务商业对象引擎应用商业对象服务A客户端客户端商业对象引擎廋客户端,胖服务器B客户端客户端Application商业对象服务商业对象引擎商业逻辑服务商业逻
20、辑服务器器DCOMADO/RCORBABeansCOMMTSBeansETS体系结构的四视图观点体系结构的四视图观点四视图:概念、模块、代码、运行四视图:概念、模块、代码、运行体系结构的模型和关键部件观点体系结构的模型和关键部件观点关系数据库图形用户界面关系数据库图形用户界面商业对象模型图形用户界面商业对象模型关系数据库模型的演变和深入:过程抽象关键部件:系统边界、系统服务和客户、系统界面、事务管理模型的演变和深入:对象和数据抽象顺序/条件/循环、分布、并行、激发/响应、应用环境、任务控制复杂的复杂的Internet系统系统客户端客户端WEB服务器服务器应用应用服务器服务器认证认证系统系统财务
21、财务系统系统库存库存系统系统数据库数据库系统系统Dynamic HTML,JavaScript,Javaplug-ins,source code enhancementsJava,C,C+,JavaScript,CGIJava,C,C+,JavaBeans,CORBA,DCOMNative languages复杂的商业系统的体系结构复杂的商业系统的体系结构数据库用户界面层ServiceAgentpurchase(customer,product,items)Customername:StringAddress:Stringsave()Customername:StringAddress:Str
22、ingsave()getName()updateName()CustomerOrder Line*Product*Order Lineitems:ProductgetName()updateName()Observerupdate()Orderdate:DateProductname:Stringprice:CurrencygetName()updateName()Salesproduct:Product中间件体系结构的研究范畴体系结构的研究范畴n体系结构的研究领域体系结构的研究领域l体系结构的实践经验积累l通用的软件体系结构框架和构件l特殊应用领域的体系结构框架和组件l基于体系结构的软件开发
23、环境和工具l体系结构本身的形式化研究l体系结构的形式化语言描述方法软件设计经历了软件设计经历了40年的发展演化过程:年的发展演化过程:1、早期的模块化程序设计和自顶向下逐步求精的结构化方法面向结构的方法2、由数据库技术的发展,带来的将数据流和数据结构,转化为设计定义的方法(E-R模型)面向数据的方法3、面向对象的方法从对象及其关系导出系统的方法4、现在的方法:软件设计的重点,已经移到软件体系结构和实现软件体系结构的设计模式 5.1.3 体系结构基础体系结构基础体系结构的基本问题:结构基础体系结构的基本问题:结构基础 软件结构始终是软件研究的重要课题,而研究的层次软件结构始终是软件研究的重要课题
24、,而研究的层次和侧重点,从最基本和底层,向越来越抽象层次发展和侧重点,从最基本和底层,向越来越抽象层次发展,但结构的基本思想仍然有指导意义。,但结构的基本思想仍然有指导意义。n曾作为软件结构研究发展的基本思想包括:曾作为软件结构研究发展的基本思想包括:(1)结构化控制流(2)部件连接方式(3)结构化控制模式(4)基本数据结构(5)抽象数据结构(6)进程(7)分时与并发(8)资源共享与并行同步n不论何种方法,都具有以下一些共同的特征:不论何种方法,都具有以下一些共同的特征:n(1)一种用于将分析模型变换到设计表示的机制;n(2)用于表示功能性结构及其接口的符号体系;n(3)用于求精和划分的启发信
25、息;n(4)质量评价的指导原则软件的结构基础软件的结构基础1、结构化控制流、结构化控制流n伴随着高级语言的产生,最基本的结构化程序控制规范就产生伴随着高级语言的产生,最基本的结构化程序控制规范就产生了,例如:了,例如:l顺序语句形式:;程序按语句1-n顺序执行。l转向语句形式:goto;程序转到所指示的语句执行。l过程调用形式:(参数1、参数2、参数n)程序转到指定的过程开始执行,执行完过 程后,返回到的下一条语句继续执行。软件的结构基础软件的结构基础l条件语句形式:if(条件表达式)then;条件成立,执行语句形式:if(条件表达式)thenelse;如果条件成立,执行语句1,否则执行语句2
展开阅读全文