




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二次体系结构概述及调用返回体系结构演示文稿*第一页,共四十页。(优选)第二次体系结构概述及调用返回体系结构第二页,共四十页。*软件体系结构概述提纲背景软件体系结构的概念软件体系结构的意义软件体系结构和软件质量属性软件体系结构风格第三页,共四十页。*1.1背景Edsger.Dijstra指出“软件的规模越大,其整体构架就越重要”20世纪90年代,软件体系结构逐渐被工业界和学术界广泛接受,并且业内普遍认为:对于大规模复杂软件系统而言,构架的设计比数据结构以及算法的设计更为重要第四页,共四十页。*1.2软件体系结构的概念MaryShaw和DavidGarlan的定义:软件体系结构用于描述系统的构成要素、构成要素之间的交互和组合模式以及在进行组合时的约束条件LenBass的定义:软件体系结构是指程序或者系统的组成关系,这种组成关系包括软件、软件的外部可见属性以及这些软件之间的关系第五页,共四十页。*1.2.1软件体系结构的概念(续)IEEE1471-2000中的定义:软件体系结构是系统的基本组织结构,包括系统构成要素,这些要素相互之间以及与运行环境之间的关系,还包括系统设计及演化时应遵循的原则软件体系结构包括三个基本要素:构件、连接件和约束第六页,共四十页。*1.3软件体系结构的意义软件体系结构是软件相关人员之间进行交流的手段软件体系结构是一种高层次的设计复用手段软件体系结构是早期设计决策的体现,决定了最终软件的质量第七页,共四十页。*1.4软件体系结构与软件质量属性软件体系结构的优劣依赖于各种因素,这些因素通常被称为软件质量属性(qualities)质量属性包括:性能,可伸缩性,可用性,可维护性,安全性,易用性,可重复性,可测试性以及可移植性等第八页,共四十页。*1.5软件体系结构的风格软件体系结构风格是对软件体系结构的分类,每一种软件体系结构风格都代表一类软件的结构组织模式软件体系结构风格是在实践中被重复使用的构件设计的总结第九页,共四十页。*1.5.1软件体系结构的风格(续)软件体系结构风格包括:数据流风格,顺序批处理风格,管道-过滤器风格,调用-返回风格,主程序-子程序风格,面向对象风格,分层的风格,独立构件风格,进程通讯,事件系统,虚拟机风格,解释器,基于规则的系统,以数据为中心的风格,数据库,超文本以及黑板风格等。另外还有分布式的风格,比如云计算,P2P风格等第十页,共四十页。*2调用-返回风格提纲非结构化的编程简介调用-返回风格软件体系结构的概念主程序-子程序软件体系结构面向对象软件体系结构主程序-子程序与面向对象体系结构举例第十一页,共四十页。*2.1非结构化的编程简介非结构化的编程技术是历史上最早的编程范型非结构化语言(比如汇编语言)编写的程序通常包内含一系列有序的命令,每行有一个行号标记,便于程序跳转第十二页,共四十页。*2.1.1非结构化编程的特点非结构化编程已经引入了循环,分支及子程序的概念非结构化编程中的子程序允许有多个入口和多个出口程序的执行顺序可以被任意变换第十三页,共四十页。*2.1.2非结构化编程的举例01main02movAX,045;03movBX,012;04addAX,BX;05jnz17;06…07jump012;08…第十四页,共四十页。*2.2调用-返回风格软件体系结构调用-返回风格体系结构(CallandReturnArchitecture)采用分而治之的策略,其主要思想是将一个复杂的大系统分解为一些子系统,以便降低复杂度,并且增加可修改性这种系统的程序执行顺序通常只由一个单线程控制第十五页,共四十页。*2.2.1调用-返回风格体系结构示意AMainBCDE12910456738程序运行的控制流示意第十六页,共四十页。*2.2.2调用-返回风格体系的概念每个软件都设计为有一个唯一的程序执行入口和一个唯一的程序执行出口;程序执行结束后,则控制被返回给程序的调用构件;这些程序的构件被称为子程序(Subroutine)从一个构件到另一个构件的控制传递被称为程序调用(call)第十七页,共四十页。*2.2.3调用-返回风格体系的组织拥有整个软件入口的构件叫做主程序(MainProgram),它控制子程序的执行顺序可以被所有构件访问的共享数据被称为全局变量(Globalvarible)MainSub1Sub2Sub3GlobalDataSub4Sub5第十八页,共四十页。*2.2.4调用-返回风格体系的层次组织调用-返回风格体系结构可以被组织成任何形式。但层次结构的组织形式更清晰层次结构的设计被称为共享数据的主程序-子程序软件体系结构MainSub1Sub2Sub3Sub4Sub5Sub6Sub7Sub8DataSub10DataSub9Sub11第十九页,共四十页。*2.3主程序-子程序软件体系结构主程序-子程序软件体系结构在设计上使用层次化的划分方法,该体系结构中使用由编程语言直接支持的单一控制线程相比于非结构化编程,主程序-子程序软件体系结构能够较好地支持系统的可改变性和可伸缩性等性能,其采用分而治之的策略第二十页,共四十页。*
自顶向下的设计方法主程序-子程序软件体系结构通常采用自顶向下的设计方法,即从系统的功能角度出发,从高层开始,将整个功能逐步细化为子功能MainSub1Sub2Sub3Sub11Sub12Sub21Sub22Sub31Sub211Sub121Sub111第二十一页,共四十页。*
自顶向下的设计举例一个药品成本计算系统(MedicineCostComputation)要计算一种药品的单位成本,要求输入药品的名称(MedicineName),然后系统输出该药品的单位成本(MedicineCostperUnit)MedicineCostComputationMedicineNameMedicineCost系统的第一层数据流图(DFD)第二十二页,共四十页。*
系统层次化数据流图结构化设计从数据流图开始,然后将数据流图转换为程序结构图系统的第三层数据流图(DFD)系统的第二层数据流图(DFD)MedicineCostComputationEnterMedicineNameOutputMedicineCostGetResearchCostperUnitEnterMedicineNameGetProductionCostperUnitOutputMedicineCost第二十三页,共四十页。*
系统结构图设计数据流图从数据输入开始,对数据的各个处理过程以及最后的输出进行描述,然后构建结构图GetResearchCostperUnitEnterMedicineNameGetProductionCostperUnitOutputMedicineCostMedicineCostComputationSystemCalculatemedineCost13245678第二十四页,共四十页。*2.3.2.3自顶向下结构化设计的问题功能演化困难现实中的系统功能不容易描述,比如服务请求式的系统难于找到顶层功能模块功能化设计丢掉了数据与数据结构由功能设计得到的软件产品产生的可复用代码较少第二十五页,共四十页。*
结构化设计的优缺点优点逻辑设计与物理设计分离开发过程中形成一套规范化的文档,便于将来修改和维护缺点开发周期长,开发过程复杂系统难于适应环境变化经验表明,较小的程序(小于10万行)适合于结构化开发第二十六页,共四十页。*2.4
面向对象的体系结构结构化编程中的数据可以被程序的任何语句访问,当程序变大时,这种做法使得程序缺陷可能被传到很远,难于维护面向对象设计可以将数据和操作封装起来,使数据的访问受到限制。这种将数据和操作捆绑的方式被称为对象第二十七页,共四十页。*
面向对象的体系结构面向对象的设计中,系统被看作为一些对象的集合,消息从一个对象发送到另一个对象,每个对象完成一定的功能Obj1Obj7Obj6Obj5Obj4Obj3Obj2CallCallCallCallCallCallCallCall面向对象的体系结构第二十八页,共四十页。*
面向对象的特点封装性继承性多态复用和可维护性对象是对现实世界的抽象并且可以管理自己系统功能通过对象服务表示共享数据区域被取消对象可以是分布式的第二十九页,共四十页。*2.4.3面向对象的继承机制继承的目的是代码复用继承提供了一个统一的接口,容易实现多态AnimalLandAnimalAquaticAnimalBirdfamilyMammalsElephantWhale第三十页,共四十页。*2.4.4面向对象的优点面向对象设计有如下优点:容易维护,没有共享的数据可复用性好映射现实世界,便于理解容易对一个系统进行分解第三十一页,共四十页。*2.4.5面向对象的缺点面向对象设计有如下缺点:程序占用的内容大一个对象要和其它对象交互,必须知道其它对象的身份第三十二页,共四十页。*2.5主程序-子程序与面向对象的体系结构比较设计一个文档更新系统,对符合一定格式的输入文档进行更新,系统的功能描述如下:政治问题,将文档中的Japanese修改为Germany两千年问题,将两位日期修改为四位日期对商品按字典序排序第三十三页,共四十页。*文档更新系统的数据变化原始文件 Printer$230Germany89-02-01 Refrigerator$380Japaness88-12-08 Refrigerator$360Taiwan89-05-12 Printer$330Japaness89-07-11政治修改后的文件 Printer$230Germany89-02-01 Refrigerator$380Germany88-12-08 Refrigerator$360Taiwan89-05-12 Printer$330Germany89-07-11第三十四页,共四十页。*文档更新系统的数据变化经过两千年问题修改的文件 Printer$230Germany1989-02-01 Refrigerator$380Germany1988-12-08 Refrigerator$360Taiwan1989-05-12 Printer$330Germany1989-07-11排序后的文件 Printer$230Germany1989-02-01 Printer$330Germany1989-07-11 Refrigerator$360Taiwan1989-05-12 Refrigerator$380Germany1988-12-08第三十五页,共四十页。*结构化程序设计文档更新系统结构化程序中包含一个主程序和5个子程序结构化设计的程序包含数据与函数,程序中的全局变量没有被封装,由每个函数访问与修改MainInputCorrectPoliticalErrorCorrectY2KErrorSortOutput第三十六页,共四十页。*面向对象设计文档更新系统面向对象的设计将数据、政治问题,排序及输出功能封装在不同的类中,类之间的数据通过参数进行传递LegacyFileUpdateGUI《Interface》FileUpdateInterface+update():voidInput-file:ArrayList+update():voidPoliticalIssue-file:ArrayList+update():void
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山东省济南市平阴县2025届初三最后一模英语试题试卷含答案
- 南丹县2025届小升初模拟数学测试卷含解析
- 2025年公共卫生专业学生复习试题及答案
- 2025年法律专业资格考试试题及答案
- 2025年中国棺木市场调查研究报告
- 2025年中国摇臂式换向喷头市场调查研究报告
- 智慧农业示范园智能病虫害防治技术可行性研究及2025年应用前景报告
- 2025年中国岩芯分析仪器市场调查研究报告
- 2025年中国壳聚糖胶囊市场调查研究报告
- 2025年中国后备式UPS市场调查研究报告
- GB/T 44967-2024饲料用酶制剂通则
- 【MOOC】电子商务-四川大学 中国大学慕课MOOC答案
- 声乐课件教学课件
- 《卓越非凡的纽崔莱》课件
- 医疗安全不良事件报告制度培训
- 无人机空气动力学与飞行原理学习通超星期末考试答案章节答案2024年
- 2022年俄乌冲突专题俄罗斯和乌克兰的恩怨情仇课件
- 舒适化医疗麻醉
- 手工小船的原理
- 2024年高级汽车维修工职业鉴定考试题库及答案
- 2024年离婚不离家互不干涉的婚姻协议书范文
评论
0/150
提交评论