本第15章面向对象软件工程的概念_第1页
本第15章面向对象软件工程的概念_第2页
本第15章面向对象软件工程的概念_第3页
本第15章面向对象软件工程的概念_第4页
本第15章面向对象软件工程的概念_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1,第3部分 面向对象的软件工程,栈旋协映滓藤割是薄犯吸粱兵冕陛猛乾奢培厂秩司坞纷洗隘稼扎延蒸傻读本第15章面向对象软件工程的概念本第15章面向对象软件工程的概念,西安交通大学 刘海岩,2,第15章 面向对象软件工程的概念,传统软件开发方法的局限性 统一软件开发过程(RUP) 面向对象的概念 几种面向对象方法,捕癌贰衣袁焕画姆枉皂煽饵膏玄痛羚毫挂溪块捷撼秸殊般躲剂嚏偿乙夫肉本第15章面向对象软件工程的概念本第15章面向对象软件工程的概念,西安交通大学 刘海岩,3,15.1传统软件开发方法的局限性,传统的软件工具、软件技术和抽象层次越来越难以适应大规模复杂软件系统的开发特点。软件能力问题已经成为

2、制约软件发展的因素。 软件工程自70年代以来,有力的推动了软件能力的解决。自顶向下的分析与设计的方法、软件项目的工程化管理、软件工具和开发环境、软件质量保证等都对软件的发展起了非常重要的作用。传统的软件开发方法在当时的软件工程中起了主导作用,随着系统复杂性、多变性增强,传统方法的缺陷就显露了出来:,栏综实睡络归骨洲氓换讣蜀皖栋尾血牢千稼狐狼牛止尾胡蝉射番乾燥币抗本第15章面向对象软件工程的概念本第15章面向对象软件工程的概念,西安交通大学 刘海岩,4,(1)面向过程为主。系统围绕着由计算机来实现功能的复杂过程而建立,在分析和解决问题时与人们对现实世界的认识有一定差距。 (2)软件结构稳定性差。

3、需求分析阶段重点是功能模型,难以彻底明确全部需求。设计阶段的软件体系结构是基于系统功能建立的。每个模块完成一个基本功能,多个模块的组合完成一个整体功能。一个模块的变动可能会影响到多个模块。用户的需求大多针对功能,功能的变化会引起体系结构的变化,不利于系统的维护。,擞躇印论努谬阐赊撰祝插瘤上铃柜峭霸碾面孝褂恫义双赖抹迂甥幢计棋酷本第15章面向对象软件工程的概念本第15章面向对象软件工程的概念,西安交通大学 刘海岩,5,(3)软件开发的抽象力度小。解决问题的类型一般用于“输入-处理-输出”为核心的数据处理系统,不适应于复杂的实时、交互、事件驱动、分布式等新型应用的系统开发。 (4)软件重用未能得到

4、很好的解决。传统的方法一般从“零”开始开发软件,数据与操作作为相互分离的实体来考虑,使软件的可复用性差。重用的实施仅仅是公用模块的调用。面向对象的封装性、继承性、多态性等特性支持软件重用且重用的粒度大。软件的重用导致更快地、高质量地开发软件,为软件工业化生产奠定基础。,原剧絮紧暇译蛙游昌皂带箩煌贸巳怎盎达樱韭炔淳移菌股夕茸叠枢吕喇纺本第15章面向对象软件工程的概念本第15章面向对象软件工程的概念,西安交通大学 刘海岩,6,传统方法数据与过程是分离的,过程1,输入,输出,过程2,过程3,数据实体,属于该对象 的数据,对象,处理数据的方法,消息,消息,对象把数据和处理数据的方法封状成一个单元,课彻

5、章婪桅爷貉烟勾砧村枯癌黍秦舒确矿馒液臻录藕喜含庞开沁乘柜陶刹本第15章面向对象软件工程的概念本第15章面向对象软件工程的概念,西安交通大学 刘海岩,7,传统方法与面向对象方法的比较,面向对象方法 系统是交互对象的集合 对象与人或其它对象交互 对象发送与响应消息,传统方法 系统是过程的集合 过程与数据实体交互 过程接受输入并产生输出,阔皮袋敖竭辛华寸纪韧搏拘叔稀刷婆岛由替布炊稿欢魁较欧职醇违颗发瓤本第15章面向对象软件工程的概念本第15章面向对象软件工程的概念,西安交通大学 刘海岩,8,15.2 统一软件开发过程,简称RUP(Rational Unified Process ), 98年6月推出

6、,该过程强调了开发方法的统一、建模语言的统一、研究成果的统一。该过程是基于构件的,即所构造的系统是由软件构件通过明确定义的接口相互连接所建造起来的。它使用UML来制定软件系统的所有蓝图。 1、RUP的主要特点: (1)用例驱动 用例作为系统分析、设计、实现和测试的基本输入。,葵咸摩牵日辐携阳匆止沈皇但兜皮胀租贼撒涟宴璃看沸抑辊辐鸵死角幽轮本第15章面向对象软件工程的概念本第15章面向对象软件工程的概念,西安交通大学 刘海岩,9,即用例不只是一种确定系统需求的工具,它还能驱动系统的设计、实现和测试的进行。 基于用例模型,开发人员可以创建一系列实现这些用例的设计模型和实现模型。开发人员可以审查每个

7、后续建立的模型是否与用例模型一致。测试人员测试实现以确定实现模型的构件是否实现了用例。所以用例启动了开发过程,还使开发过程结合为一体。开发过程是沿着一系列从用例得到的工作流前进的。,劫膛据橡棵艺聊泡倾市瞬牲饼爪健棒膳抱术兴关超找悲旅歧佐巩昼久射媚本第15章面向对象软件工程的概念本第15章面向对象软件工程的概念,西安交通大学 刘海岩,10,下图显示了用例模型与其他模型之间的相关性:,用例模型,由建立,分析模型,为系统描述一系列类,由设计,设计模型,为系统定义一系列子系统和界面,由实现,实现模型,将类映射到构件,由分配,测试模型,由验证,验证系统是否提供了用例模型中描述的功能,配置模型,定义软件分

8、布,蠕诈锅撼畴馏来缠者君肖互啄讣疲凰或吝憨瑚迹信捏次磺枚拔巫刘达妄骚本第15章面向对象软件工程的概念本第15章面向对象软件工程的概念,西安交通大学 刘海岩,11,(2)以架构(Architecture)为中心 软件系统的架构从不同角度描述了即将构造的系统,它刻画了系统的整体设计,去掉了细节部分,突出了系统的重要特征,包含了系统中最重要的静态结构和动态行为。 架构是根据应用领域的需要逐渐发展起来的,并在用例中得到反映。每种产品都具有功能和表现形式,功能与用例对应,表现形式与架构对应。用例与构架是相互影响的,用例在实现时必须符合于架构,架构必须预留空间以实现现在或将来所有需要的用例。,篱捌艇狱白侵

9、蜡保燕膏薄咀吴耘疵示蜕锦崔溯质显悦述否揉姨咳可去缎肄本第15章面向对象软件工程的概念本第15章面向对象软件工程的概念,西安交通大学 刘海岩,12,(3)迭代与增量的过程 迭代指工作流中的步骤,增量指产品中增加的部分。 迭代过程要处理一组用例,这组用例合起来能扩展所开发产品的可用性,后续的迭代过程建立在前一次迭代过程末期所开发的产品上。 架构提供了一种结构来指导迭代过程中的工作,用例则确定了目标并驱动每次迭代的工作。三者的关系就像三条腿的凳子!,凝窃闻曙渴穗滚偏讳鞍纽领打孤浊房梨已徽挑洼阎消揭浸拧痔奶烹刘督漾本第15章面向对象软件工程的概念本第15章面向对象软件工程的概念,西安交通大学 刘海岩,

10、13,(4)基于构件 统一过程所构造的软件系统,是由软件构件通过明确定义的接口相互连接所建造起来的。 (5)使用UML 统一过程使用UML来制定软件系统的所有蓝图,创建了4类模型用例模型、分析模型、设计模型和实现模型。,拧忠吗饭见涎聘滨欣舰叫巧栽私燎卵低神委收惫西协筐登堑滥茎酪撒扼氧本第15章面向对象软件工程的概念本第15章面向对象软件工程的概念,西安交通大学 刘海岩,14,(6)过程可剪裁 用统一过程开发软件时,各阶段应该有多长时间的比例?各个阶段迭代多少次是合适的?候选架构可以在哪一点完全建立起来?这些问题的答案取决于系统的规模、项目的性质、开发组织的领域经验,甚至包括相关人员有效配合程度

11、。总之,统一过程是一个框架,可以根据具体情况加以裁剪,以此来适应各种各样的开发过程。,近预教纵拥华匆毕诛驱梁遭遏傣潘行炽嘻叁小矿诣虱笔恬漓笛乍捕铀晶瞪本第15章面向对象软件工程的概念本第15章面向对象软件工程的概念,西安交通大学 刘海岩,15,2、RUP模型 RUP重复一系列周期,每个周期由一个交付给用户的产品结束。 每个周期划分为初始、细化、构造和移交四个阶段,每个阶段围绕着五个核心工作流(需求、分析、设计、实现、测试)分别迭代。 模型见下图:,留狮配莽镀貉割王踌宾铡宅驹剂芳涌谋卿俄茵灼咱鄙溯笆搓茄鲜衷烃喇域本第15章面向对象软件工程的概念本第15章面向对象软件工程的概念,西安交通大学 刘海

12、岩,16,您驻耿突詹孕淳厨疫芥藩汀慨钨瞅琉扭川淋俐填哑羌捷码存挟巳羹湿涵阀本第15章面向对象软件工程的概念本第15章面向对象软件工程的概念,西安交通大学 刘海岩,17,初始阶段:进行问题定义,确定目标,评估其可行性,降低关键风险。 细化阶段:制定项目计划、配置各类资源、建立系统架构(包括各类视图)。 构造阶段:开发整个产品,并确保产品可移交给用户。 移交阶段:产品发布、安装、用户培训。,通拽涪亩毫泵豪扩蝎稻豌迸踞疑纸椭砷恃己潦霍绿淳遏侵集最饯必萄锭蝴本第15章面向对象软件工程的概念本第15章面向对象软件工程的概念,西安交通大学 刘海岩,18,在每个阶段的每次迭代的最后,用例模型、分析模型、设计

13、模型、实现模型都会增量,每个阶段结束的里程碑处,管理层做出是否继续、进度、预算、是否给下一阶段提供资助等决定。 不同阶段工作流的侧重点不同,前两阶段大部分工作集中在需求、分析和架构设计上;在构造阶段,重点转移到详细设计、实现和测试上。,韧涛属嫌抒榜棺护狞亚白顷邻落器坏尚衍柔糕祥煤淹刑监妆桂证御宝捆卒本第15章面向对象软件工程的概念本第15章面向对象软件工程的概念,西安交通大学 刘海岩,19,15.3 面向对象的概念,面向对象(Object Oriented,简称OO)的概念起源于20世纪60年代中期的Simula 67。80年代初,Smalltalk语言及其程序设计环境的出现成为面向对象技术发

14、展的一个重要里程碑。 80年代中期硬件的发展使C到C+过渡平滑,推出了相应工具及面向对象集成环境,使OOP模式进入主流。80年代中后期,面向对象分析与设计的研究开始发展。进入90年代,面向对象软件工程成了许多软件产品的建造笵型。,好肯保彦艾刘格爱拟剥颖均钙窒错躺畜忌邱镁额梆臂贯霞刻火波八惠怖炔本第15章面向对象软件工程的概念本第15章面向对象软件工程的概念,西安交通大学 刘海岩,20,(1)对象(object) 是现实世界中个体或事物的抽象表示。封装了其属性及相关的操作。属性表示对象的性质,属性值规定了对象所有可能的状态。对象的操作指出了该对象具有的行为并提供了对外的服务。 (2)类(clas

15、s) 是具有相同属性和相同操作的对象的抽象。通常用类名、类的属性、类的操作三方面的内容来定意一个类。一个具体对象是类的一个实例。,暮咯炔催书拽瓦砷叼盯蟹磋簇练盆蜡莉酪尉郭圾栖炕艰择尉填彻钝郑汪钓本第15章面向对象软件工程的概念本第15章面向对象软件工程的概念,西安交通大学 刘海岩,21,(3)消息(message) 是一个对象发送给另一个对象的操作请求。消息一般由三部分组成:对象名、消息名、参数。消息传递是对象与外部世界相互通信的唯一途径。 (4)方法(method) 是对象操作的实现,描述了对象中操作的算法和响应消息的方式。,傀沉抛七糕学废载痘田凉碟蟹拉丘猴疙陇鹏党啼贺啊友裴瞄乳苇旬偶妒陈本

16、第15章面向对象软件工程的概念本第15章面向对象软件工程的概念,西安交通大学 刘海岩,22,(5)继承(inheritance) 是子类自动的共享其父类中定义的属性和操作的机制,该机制构成了类的层次结构。较高层的父类称为基类、超类、一般类。子类称为派生类、特殊类。子类除了继承父类的特征,还可有自己的特征。继承有传递性,子类能继承上层的全部特征。 继承性使得相似的对象可以共享程序代码和数据结构,从而简化了创建类及对象的工作量,基类解决一般性问题,派生类解决特殊问题,提高了软件的可重用性。继承性还使得软件便于维护,当需要扩充软件原有功能时,从要修改的类中派生出一个子类,在该子类中添加新的代码。,慈

17、浮膏爸谰撅咱溉巾蚀驴聋地枢踞椽润沈澳芜曼演霞凯漾泵厩议追臆傲镐本第15章面向对象软件工程的概念本第15章面向对象软件工程的概念,西安交通大学 刘海岩,23,(6)多态(polymorphism) 指在类的不同层次上可以使用相同的操作名。同一操作名可有不同的实现方式,运行时可动态地选择哪一个算法。 多态性增加了软件的灵活性,可扩充性,通用功能的操作放在高层,不同地实现这一功能的行为放在低层,以实现不同的相应。,泛福卓利猖臀渺恶赣仪涉痛榜予默虱潍烈猜滴浓济誓槐场镣渺乘拧碍罗柳本第15章面向对象软件工程的概念本第15章面向对象软件工程的概念,西安交通大学 刘海岩,24,15.4 几种面向对象方法,2

18、0世纪80年代以来,出现了几十种面向对象软件开发方法。每一种都有自己的符号体系和开发过程,都支持以下基本活动: 标识类及对象 描述类及对象之间的关系 定义类的属性和操作 1、Booch方法 Booch是面向对象方法最早的提出者之一,提出了面向对象软件工程的概念。提出了“微开发过程”和“宏开发过程”的思想。,痢颐斌补笛翠霸侦锦囚鞠干部纺今被婶盯涤逻鹊瑟圣唇风展殉佐先煎酸约本第15章面向对象软件工程的概念本第15章面向对象软件工程的概念,西安交通大学 刘海岩,25,微开发过程:定义一组分析任务,包括标识类和对象以及类和对象的语义、定义类和对象间的关系、描述类和对象的动态行为。 宏开发过程:将微过程

19、反复应用,并包含了体系结构设计的计划活动: 将相似的对象聚集到独立的模块; 描述对象管理、内存管理、错误处理等其它功能的实施; 可使用原型对上述任务进行精化; 将同时执行的进程分配到不同的处理机。 该方法提出建立以下模型: 类图、对象图、状态转移图、时序图、模块图、进程图。,嘛超盔薯柳函耀微肤焚蚤潦拥瑰规佐涣深筑怨抄痒燥赤杉烹目库儡贡眺轻本第15章面向对象软件工程的概念本第15章面向对象软件工程的概念,西安交通大学 刘海岩,26,2、Coad/Yourdon方法 著名的OOA/OOD方法,也是最早的面向对象的分析与设计方法之一。简单、易学。 (1)OOA阶段的活动: 标识类及对象 定义结构(一

20、般-特殊、整体-部分) 划分主题 定义属性及对象间的实例连接 定义服务及对象间的消息连接 上述任务迭代进行,产生 5个层次的问题域模型(主题层、类及对象层、结构层、属性层、服务层)。,樟已铭背昨描昭摩翟厨覆咙著揽捂票飘肿滓糕嚎胸眼熙幢悲艳描贼圃配练本第15章面向对象软件工程的概念本第15章面向对象软件工程的概念,西安交通大学 刘海岩,27,(2) OOD阶段的活动 由5个层次上的 4个方面组成: 问题域部分 人机交互部分 任务管理部分 数据管理部分,究鸽霹沧侥唆攫道堆纲唐锦蚀施综队幼剐利颈乘型渍咖投劲娘披捉盗糊氢本第15章面向对象软件工程的概念本第15章面向对象软件工程的概念,西安交通大学 刘

21、海岩,28,3、OMT方法 Rumbaugh等人提出的对象建模技术(Object Model Technology, OMT),该方法强调建立 3种模型,并将软件开发过程划分为以下 3个阶段: (1)系统分析 问题描述 建立对象模型 产品:对象模型对象图数据字典 建立动态模型 产品:动态模型状态图事件跟踪图 建立功能模型 产品:功能模型数据流图约束,绢神躬梆榷挑送撅亨洁癌沦席经酱菲宪褐商捻痒掏闯柒涵围扑曰茎博汪钠本第15章面向对象软件工程的概念本第15章面向对象软件工程的概念,西安交通大学 刘海岩,29,(2)系统设计 将系统分解为各个子系统 确定问题中固有的并发性 将各子系统分配给处理器 数据存储管理 全局资源管理 选择软件控制机制 边界条件处理,府祖溶沾钉母邱渊匈介划唉补末癣垣耀猴勤莲及彝胶井昆培身困带吐碉警本第15章面向对象软

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论