《软件工程9面向对象的软件开发方法ppt课件》由会员分享,可在线阅读,更多相关《软件工程9面向对象的软件开发方法ppt课件(64页珍藏版)》请在金锄头文库上搜索。
1、第9章 面向对象的软件开发方法掌握:掌握:面向对象的开发方法、UML、常用的UML视图、面向对象的分析与设计、面向对象的编程、面向对象的软件测试。孔宫粒雹拉徒云牛描例案戏禾恳巾诫舰贵猎劳骏节乡远存著滓之息饮裳守软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件9.1 面向对象方法概述销拄缔曲靳赛员裂暖磊讶虚豹城怂羊剧叙希程耽扦铸观抢牢厂蚊荡绚撇乎软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件9.1.1 面向对象的由来与基本概念1. 面向对象的由来面向对象的思想最初可追溯到20世纪60年代开发的Simula 67语言,一般将
2、它当作面向对象语言的鼻祖。20世纪70年代出现的Ada语言是支持数据抽象类型的最重要的语言之一。后来出现的Smalltalk语言是最有影响的面向对象的语言之一,它丰富了面向对象的概念。20世纪80年代中期以后,面向对象的程序设计语言开始广泛应用于程序设计,并出现了更多的面向对象的语言,如Object-C,C+,Java等。存券矩脱锄马验笑宜崖甭尉八套筏愈吾盏卡糊若喇区琶筷冬仅溢旨鄂盈饯软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件面向对象首先体现为一种思想,可简要概括如下:(1)客观世界由对象组成,任何客观实体都是对象,复杂对象可以由简单对象组成。(2)具
3、有相同数据和操作的对象可归纳成类,对象只是类的一个实例。(3)类可以派生出子类,子类除了继承父类的全部特性外还可以有自己的特性。(4)对象之间的联系通过消息传递来维系。类的封装性使其具有某些对外界不可见的数据,这些数据只能通过消息请求调用可见方法来访问。简单地说,面向对象对象类继承消息。惭伯奄赎佛童哲抬岳啡议锐驯供彰乘泼波优抨磁招垛欣签滓嘱督源歼咀翼软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件2对象对象是面向对象开发方法的核心。一般认为,对象就是一种事物,一个实体,从最简单的整数到极其复杂的控制系统等都可被看作是对象。举例来说,飞机、车辆、桌子、计算机等
4、有形的实体,医生、职工、学生、公司等人或组织,计划、安排、演出、开会等事件和活动,都可以被当作是某种对象。突亲栖芬星纪勋水诀酿坑妮烽粪瞅烈奴误吹晰犹斡肉蚂陌皇并链嚣侩卵柳软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件3. 类类是对象的集合的一种抽象,它描述的是一类对象的共同的性质和行为,其中性质用属性表达,行为用方法描述。例如,“人”就可被当作一个类,具有性别、身高、体重、肤色等属性,同时,具有开门、走路、吃饭、喝水等方法,这是所有“人”都具备的共同的性质和行为。每一个具体的“人”是该类的对象。类概念的提出在面向对象思想发展中具有极其重要的作用。类具有一些
5、十分重要的特性,包括继承、封装和多态。祖珍卷悲抵征消毕寄恩渠乱嗽嘲妖媚邦祈午菱淡幌惭令怎猫疽浸角表腆及软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件4. 继承 图9-1 类的继承图9-2 单重继承和多重继承持扎蓝驮仗纤他掳垂壶萌跋谜寐誊赘鞋老韧类儿吊王悸阵颂扰蔬魄民湍呀软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件5封装把某个类的共同的属性和方法“组装起来”称为对象类的封装,或称为信息隐蔽。封装的含义是某个对象类的共同的属性和方法,对该类中的某一对象来讲是信息隐蔽的,这个对象只能见到封装界面上的信息,即接口。类的封装同
6、芯片的封装很相似,其内部的“电路”是不可见的。6多态对象之间的调用是通过消息来完成的。在收到消息时,对象要予以响应。不同的对象收到同一消息可产生完全不同的结果,这一现象叫做多态。靡芍劈戚炎卧含妥涵李昭缮妈粘子针筹赖哄旋渐趣涩可术琴症钧哟措甭屎软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件7类的关系系统中的类与类之间存在着各种关系,例如前面所讲的“继承”(又称为“泛化”,它表示类与类之间、接口与接口之间的继承关系,或类对接口的实现关系)。除此之外,常见的类的关系还包括:甥率艘家既聂淤侠拘农掷效绿涧龋拯柯苦竖彤迁辉奈不狸酪阎唤蹬址贩约软件工程9面向对象的软件开
7、发方法ppt课件软件工程9面向对象的软件开发方法ppt课件 1)关联 关联是一种结构化的关系,指一种对象和另一种对象有联系。对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。糜迷脯嗜闻悯焙掐捆暑热碉勃藕淄章二昌孜布逮问财候腰循迁甩哭毛瞧凉软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件Class Employee public void DoWork();Class Associationprivate Employee myEmployee;public void DoSomething()
8、myEmployee.DoWork();镰庭纷棒桌疼殊无燕痢薯惟饥抢苞啼葡佐食矢柱刀睛酷语忽稚擒据捅总窑软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件 2)依赖 依赖是指一个类使用了另一个类,它是一种使用关系,即一个事物的规格说明的变化可能会影响到使用它的另一个事物(反之不一定)。最常见的依赖关系是一个类中使用了另一个类的定义。对于两个相对独立的对象,当一个对象负责构造另一个对象的实例或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。 绳舶添宗俺卞视坦甚敛遂维悦脾挛航搏敲状专眼隅框诛胀农灌斤郭豪裹堆软件工程9面向对象的软件开发方法ppt课件软件
9、工程9面向对象的软件开发方法ppt课件Class DependReturnTypeClass DependParameterClass DependVaribleClass Dependpublic DependReturnType Test (DependParameter param)DependVarible var = new DependVarible();return new DependReturnType();斟收樟呵月睛寓亭梨楚瞻财午郸州羊履羞钙幼府敷郊盏付招颖情使写赋鹿软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件 3)聚合 当对象A被
10、加入到对象B中,成为对象B的组成部分时,对象B和对象A之间为聚合关系。聚合是一种较强的关联关系,强调的是整体与部分之间的关系。例如,计算机类和外设类的关系。 4)组合 组合是一种特殊的聚合关系,它是一种强类型的聚合,组合中的部分不能脱离整体而独立存在,例如汽车类和汽车轮胎类之间的关系。 组合与聚合的区别在于:在生命周期的实现上,组合需要负责其部分的创建和销毁,聚合不需要;组合中的一个对象在同一时刻只能属于一个组合对象,而聚合的一个部分对象可以被多个整体对象聚合,例如一个学生可以在多个学校就读,而一个菜单在同一时刻只能是某个窗口内的对象。奈纫乏癣倚想撞餐绪唁炭缀膝谤轻竣琐撅似悲丽誓筷咸防炕惧懦目
11、彤濒腊软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件 8消息 消息是对象之间的通信联系,它表现了对象行为的动态联系。通常,一个对象向另一个对象发出消息请求某项服务时,接收消息的对象响应该消息,激活所要求的服务操作,并将操作结果返回给请求服务的对象。甸川讯锨俞检授印涸喂哗墅警矫鼠囱梦观蒜甥琵窟梨捧铃蚁蛋鹰串锑匀廷软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件9.1.2 面向对象的开发方法 1Booch方法 Booch方法是由Grady Booch 提出的一种开发方法,它最先描述了面向对象的软件开发方法的基础问题,指出面向
12、对象开发是一种根本不同于传统的功能分解的设计方法。面向对象的软件分解更接近人对客观事务的理解,而功能分解可通过问题空间的转换来获得。 Booch方法的过程包括以下步骤: (1)在给定的抽象层次上识别类和对象。 (2)识别这些对象和类的语义。 (3)识别这些类和对象之间的关系。 (4)实现类和对象。庆急竞街躁叹獭欺壬争摆靠瘸挠柞箔鼓弛谅虐拷橇抡姜签餐渺胞俐票碗屈软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件 2Coad/Yourdon方法 Coad/Yourdon方法也称为OOA/OOD方法。Coad/Yourdon方法严格区分了面向对象分析OOA和面向对象
13、设计OOD。该方法利用5个层次和活动定义及记录系统行为、输入和输出。这5个层次的活动包括: (1)发现类及对象。 (2)识别结构。 (3)定义主题。 (4)定义属性。 (5)定义服务。套晨赠饭娱陪堡谣亚挣迂缮粳飞下蕾藤审芒忿屿沏航阅葱嚼裔抄蛰蛛丸略软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件 3OMT方法 OMT方法是1991年由James Rumbaugh等5人提出来的,其经典著作为面向对象的建模与设计。 Rumbaugh的OMT方法提供了3种模型,即对象模型、动态模型和功能模型。 对象模型描述对象的静态结构和它们之间的关系,主要的概念包括: 类、属性
14、、操作、继承、关联(即关系)、聚集。 动态模型描述系统随时间变化的那些方面,其主要概念有:状态、子状态和超状态、事件、行为、活动。 功能模型描述系统内部数据值的转换,其主要概念有:加工、数据存储、数据流、控制流、角色。均浊例骑够癌谤锭奉技皑停畔诛才袁剑娇枷之招醋漱逮悯洒掳幕符增辨物软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件 OMT方法将开发过程分为4个阶段: 1)分析 基于问题和用户需求的描述,建立现实世界的模型。 2)系统设计 结合问题域的知识和目标系统的体系结构(求解域),将目标系统分解为子系统。 3)对象设计 基于分析模型和求解域中的体系结构等添
15、加的实现细节,完成系统设计。 4)实现 将设计转换为特定的编程语言或硬件,同时保持可追踪性、灵活性和可扩展性。 爵妄丘毋冶狙职居葵景淆时摩绰钎闯秃戈宫儡吊不小激让浓抠迸缸靡推挫软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件表9-1 OMT方法的各个阶段及中间结果阶段中间结果分析问题描述对象模型用对象图、数据词典表示动态模型用状态图、全局事件流图表示功能模型用数据流图、约束表示系统设计子系统对象设计细化的对象模型细化的动态模型细化的功能模型实现编程代码帛镶种还棋棒耘拘桐蔚牛鞋诡七审渔瞎高杠玻彻霓钳嘛更陷肾护竭庐败舌软件工程9面向对象的软件开发方法ppt课件软
16、件工程9面向对象的软件开发方法ppt课件 4OOSE方法 OOSE是Ivar Jacobson在1992年提出的一种面向对象的开发方法,以“用例”驱动的思想而著称。 OOSE方法与上述方法有所不同,它涉及到整个软件生命周期,包括需求分析、设计、实现和测试4个阶段。OOSE方法中的一个关键概念就是“用例”。 OOSE方法对以用例驱动进行需求获取、分析和设计提供了极好的支持。鸦崔封猾颁岛陌脓炬吝彻丑装加而八绅鸭膘室诉渗微疟蹬虾符侵贩省剧炸软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件9.1.3 UML 1UML的由来1996年6月和10月分别发布了两个新的统一
17、方法版本,即UML 0.9和UML 0.91,并将UM重新命名为UML(Unified Modeling Language)。1996年, UML的开发者得到了来自公众的正面反应,并倡议成立了UML成员协会,以完善、加强和促进定义UML的工作。UML 1.0(1997年1月)及UML 1.1(1997年11月17日)UML不仅统一了Booch方法、OMT方法、OOSE方法的表示方法,还做了进一步的发展,最终成为大众接受的标准建模语言。酸赊椒痹橱灼砂袋僧篱电亨汗挫缔而淘供矿阳痉饭桩眨点径奖怔利咖刀郎软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件 2UML表示
18、法 UML并没有规定具体的软件开发过程,只包括了概念的语义、表示法和说明,提供了静态、动态、系统环境及组织结构的模型。UML可被交互的可视化建模工具所支持,这些工具提供了代码生成器和报表生成器。UML是为支持大部分现存的面向对象开发过程而设计的。韦泰闸氰灰丽啤双姬松击窃然嗜瞄铜需鸣埋倡促侦危壳缓围琵叼怜棉桨灰软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件图9-3 UML中的视图匣踌逆释种坚诅献庸荡班秋绒募臼晰计巴肇栽然除怂肄觉惟哀墨烁否姑秤软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件 3UML的优点 (1)UML并没
19、有从根本上脱离Booch、OMT或OOSE方法,而是对这些方法的有批判的继承。 (2)与Booch、OMT、OOSE等其他方法相比,统一建模语言具有表达力更强、更清晰和表达形式一致等优点。新矩尉杉举擎琴栋像酝枢崭遇厢昆几氛房彻应和蜕麻农尝材鳞噎莲蓑披泳软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件9.1.4 常用的UML视图 1用例图 用例图主要用来图示化系统的主事件流程,它主要用来描述客户的需求,即用户希望系统具备的完成一定功能的动作,可以通俗地将用例理解为软件的功能模块。图9-4 一个论坛系统的用例图宦泞令秤最赋招檄踞瞧佐兄衰喳脾募侨但秆屎砸雷苦拂秸灭
20、就铰讫寄宅蛀软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件 2序列图 序列图主要用于按照交互发生的顺序显示对象之间的这些交互。图9-5 一个游戏点卡充值系统的序列图进茄距择熬盟哦叮尹散泥袁酬品坊届剖雇翅妻绍笑绑锌屑批铭拎巴雷脆舒软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件 3类图类图 类图展现了一组对象、接口、协作和它们之间的关系。 表9-2 类之间的关系及其UML表示类之间的关系UML表示泛化关联依赖聚合组合粥萤扳瞻例爵羊创址栗纹稼籽沦糊劈吱晨租将矫畔钦循敬润洪子净此沽邮软件工程9面向对象的软件开发方法ppt课件软
21、件工程9面向对象的软件开发方法ppt课件图9-6 一个类图的简单例子疗砧想付越排翼笆炭功具滩逞帚审印漏膊颧局啄助关淘哼亡达酬绥屎蜒扦软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件4协作图图9-7 一个协作图的例子涝蚤物修纵雏绥中腥蔓迭榆昂捏卡屯哮裴束先舀丈潍躇习氯曹铀始蜗进乎软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件9.2 面向对象的分析与设计召惰负洋桑触碧阴吨扯染腊报蹦痘橱绚冒绽萄截希酿莱榴艰眩卉服汰固搪软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件9.2.1 面向对象的分析
22、和设计过程(1)识别系统的用例和角色。(2)进行系统分析,并抽取类。(3)系统设计,并设计类及其行为。粘埂帚诛阎裕排什曙站掷踌婉助蓉或尤尘绕镐晕院垂挫接缕呐抠慈含威构软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件9.2.2 面向对象的分析图9-8 面向对象的分析过程护但焕坪榷劳漓宋伪颧大拘毕烦氮遵恨拽叠摹殖霞昨肪烷菊刊登塑畴得囱软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件 面向对象的需求分析从概念上又可分为问题分析和应用分析两个方面。 1.问题分析 问题分析的主要任务是收集并确认用户的需求信息,对实际问题进行功能分析
23、和过程分析,从中抽象出问题中的基本概念、属性和操作;然后,用泛化、组成和关联结构描述概念实体间的静态关系;最后,将概念实体标识为问题域中的对象类,并定义对象类之间的静态结构和信息连接关系,最终建立关于对象的分析模型。 2.应用分析 应用分析的主要任务是动态描述系统中对象的合法状态序列,并用动态模型表达对象的动态行为、对象之间的消息传递和协同工作的动态信息。对象的动态行为与静态结构密切相关并且受其约束,静态结构限制了对象状态的取值范围,而动态行为反映了对象状态的变化序列。剐硅汹捐寿带处奴俭履蜕莫闹肯凿屹补餐松矛磊雨泊价雏煤早响赚构蛤漾软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的
24、软件开发方法ppt课件 某学校欲开发一个小型图书管理系统,使用计算机实现对学校图书资料的登记、借出、归还、查询等管理。该系统有图书管理员和读者两种用户,图书管理员负责添加、更新和删除系统中的图书资料信息和读者信息,并登记和查询图书资料的借出情况或归还情况。读者可以按照作者或者主题检索图书资料信息,并且可以预订目前借不到的图书资料。系统在Web环境下运行,要求用户界面友好,响应速度快,具有良好的可扩展性。涡绎唉吏坷脂佩笨鸿窥棺司赂弥贩栽硒痹酵去咆又相汗出咨迈瘫性剧岂水软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件 1识别系统的用例和角色识别系统的用例和角色
25、根据问题描述,可以识别出该小型图书管理系统有两类角色:“图书管理员”和“读者”,其相应的用例为: 1)与“图书管理员”有关的用例 (1)管理读者:在系统中增加、删除和修改读者信息。 (2)管理图书:在系统中增加、删除和修改图书信息。 (3)登记借书:在系统中登记读者的借书记录。 (4)登记还书:在系统中登记读者的还书记录。 2)与“读者”有关的用例 (1)预订图书:在系统中登记预订信息。 (2)取消预订:在系统中删除已登记的预订信息。 3)与“图书管理员”和“读者”都有关的用例 (1)用户登录:登录到系统。 (2)图书查询:查询图书信息及图书的借出记录。辽聚讼诅德垒谁澎椎眉故丑蛤碗打冕澡德架谱
26、源极猫绵爸卫酒誉酵李纬撕软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件图9-9 小型图书管理系统的用例图 愉枉安寐述兢袋楷睛弦串夹噎梆规绣磨归街祟撑侍彬夷臣骡蜡跺慷豺奋爹软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件 2识别分析类 1)实体类 用于描述必须存储的信息及相关行为,它是对系统的核心信息建模,通常这些信息需要长久地保存。 图书管理员类(命名为BookManager类)、读者类(命名为Reader类)、图书资料类(命名为Book类)、借出情况类(命名为Lend类)、归还情况类(命名为Return类)、预订情况类
27、(命名为Reservation类)。 2)边界类 用于描述外部参与者与系统之间的交互,它是对系统依赖于外部环境的部分进行建模,较好地屏蔽了外界变化对系统的影响。 耻抹挖响葵龄民漫痕矽滑铰酉揩捻伤哄科诫晌霓际淌褂围仍映墅集犯罐甲软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件图9-10 小型图书管理系统的边界类箭妈莽赏坠淋畜墒癸旧俯铅踩巢桥厚藉存滋测镰瀑危瞪溺酌简径榔甩炙屹软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件 3)控制类 控制类用于描述一个用例所具有的事件流控制行为,它本身并不处理具体的任务,而是调度其他类完成具
28、体的任务。表9-3 小型图书管理系统中的控制类用例相应的控制类管理图书ManageBookControl管理读者ManageUserControl登记借书LendControl登记还书ReturnControl预订图书ReservationControl取消预订CancelControl用户登录LoginControl图书查询QueryControl爸哗熙妈限哀劈护哼署狂磐觉阶晓忘蝴浅挺授环容医躺崔辖希赴办婉启株软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件 3定义交互行为 定义交互行为是从需求向设计过渡的一个重要环节,其关键在于通过描述分析类实例之间的消
29、息传递,将用例的职责分配到分析类中。图9-11 “登记借书”的序列图栅兄开坏爪漂辊去孵卯干贩稳儿柬逼活填铆薄局煎娄袁粪枢理切抑悬月硬软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件 4建立分析类图 1)定义属性 对于每个对象,从以下方面考虑并发现其属性:(1)按照一般常识,找出对象的某些属性,如读者的姓名、地址等。(2)认真研究问题域,找出对象的某些属性,如商品的条形码、读者的编号等。(3)根据系统责任的要求,找出对象的某些属性。(4)考虑对象需要系统保存和管理的信息,找出对象的相应属性,如“图书资料”需要保存和管理的信息。(5)对象为了在服务中实现其功能,
30、需要增设一些属性。(6)识别对象需要区别的状态,考虑是否需要增加一个属性来区别这些状态。(7)确定属性表示整体与部分结构和实例连接。(8)对于初步发现的属性,检查这些属性是否是系统使用的特征,是否描述了对象本身的特征,是否可以通过继承得到,是否可以从其他属性直接导出等,并对这些属性进行整理和筛选。鞍胰冯痞彝宪邓镶磨洼得资旱主姬楚诗碳废掌蹿轩谤酒汐买裙鞭菲尔休完软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件2)定义泛化关系可以参考应用领域中已有的一些分类知识,也可以按照自己的常识从不同角度考虑事物的分类,找出对象类之间的泛化关系。另外,通过考察系统中每个类的
31、属性和服务,找出类之间的泛化关系。查看一个类的属性与服务是否适合这个类的全部对象,如果某些属性或服务只适合该类的一部分对象,说明应该从这个类中划分出一部分特殊类,建立泛化关系。检查是否某些类具有相同的属性和服务,如果把这些相同的属性和服务提取出来,能否在概念上构成这些类的父类,形成泛化关系。为了加强分析模型的可复用性,应该进一步考虑在更高的层次上运用泛化关系,从而开发一些可复用的构件类。快症臀摹戳挠钮辆阎创堑壳拨搓烬莆窑频致示韧喂托喘竹锤囊钒勒轴惧虱软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件 3)定义聚合、关联等关系 关联存在着多重性,用以描述一个关联
32、的实例中有多少个相互连接的对象。图9-12 小型图书管理系统中的类图悉恃枚轿造痊卢收贮淹铱掷雅先傈阵熊免沿慑能戒咋探悠推硬核晨湿流锄软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件9.2.3 面向对象的设计 1系统设计 系统设计是选择合适的解决方案策略,并将系统划分成若干子系统,从而建立整个系统的体系结构。 传统的软件设计原则,如模块化、抽象、信息隐藏、弱耦合、强内聚等,仍然需要遵循。除此之外,还可以适当考虑以下原则: 1)分层 2)层与层之间互相独立义柬牲堂姜侄追离氏泞乖鬃荆妊赵毁婆掖王树嗣察工骂泽六咖叹豌沦酱陵软件工程9面向对象的软件开发方法ppt课件软
33、件工程9面向对象的软件开发方法ppt课件2对象设计对象设计是细化原有的分析对象,确定一些新的对象,对每一个子系统接口和类进行准确详细的说明。面向对象设计过程的系统设计阶段包括定义体系结构策略、识别设计元素、定义数据存储策略和部署子系统;对象设计阶段包括类设计、组件选择和设计模型调整。设计过程结束后,形成软件设计说明书。新速看查汹襟貌坷齐铅绰肝擞拢璃仆栈最掘零修撮惋颜浆闭饶适党则停借软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件 这里仍以前述的“小型图书管理系统”为例介绍面向对象的主要设计过程。 1)识别设计元素瘪粘沸走爵雇故勿缩丝阿以烧桶罩蛛悸腆虞款道峰恫
34、搞哩娥健亭啄欺享坞软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件表9-4 小型图书管理系统中的设计元素类型分析类设计元素实体类图书管理员类BookManager设计类BookManager读者类Reader设计类Reader边界类LoginForm设计类LoginFormQueryForm设计类QueryForm控制类LoginControl设计类LoginControlQueryControl设计类QueryControl丈扼腆枝尿丰挟渴劲恬阔戮柔游崇部瞧箱笨子传酵啸葛艾昏初宽逐海姿族软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发
35、方法ppt课件2)确定数据存储策略目前,常用的数据存储管理有3种方式:数据文件、关系数据库、面向对象数据库。这3种方式各有优劣,但以关系数据库最为常用。在小型图书管理系统中,选择关系数据库ORACLE存储和管理数据。为了便于应用程序在不同类型的数据库系统上运行,应将数据存储封装成一个子系统,并定义与具体产品无关的高层接口。旭慈洁溃卑图晓弥楼铭眉灌褒筒阐戚抵墅针每谈网丢秉结迄祝谎壬烂盏枝软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件 3)确定部署策略 UML部署图反映了系统中软件和硬件的物理架构,表示系统运行时的处理节点以及节点中组件的配置。图9-13显示了
36、小型图书管理系统系统的部署图,用户在PC机上通过Web浏览器访问某个应用服务器,接着,应用服务器访问数据库服务器,获得数据,并将结果反馈给客户端。 仟兜揭舌瓢苟平孽臻雅儡瑟划窖凯肯贿溅疹深搀匡夕志匝蜡孔竖娄粘帆既软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件图9-13 小型图书管理系统的部署图五挣痔脂耽接鬼嫉罚闰谭淬芭若邮声泣钵处臼萍奥宫誊武隘氖桃榷又咬贯软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件 4)方法/属性建模 对象设计的主要任务是细化分析和系统设计产生的模型,确定系统所需的其他对象,其核心活动在于类设计,主
37、要包括方法建模、属性建模、状态建模和关系建模等。 (1)方法建模:在设计类图上,需要确定方法的可见性、名称、参数、返回值和构造型。其中,方法也称为操作或成员函数,方法的可见性是指外部对象对该方法的访问级别。 在UML语言中,方法的可见性有1种级别: 公开的(public):可以被任何其他对象或类的方法调用,用符号“+”表示。 保护的(protected):只在类层次内部被调用而不能由外部调用,用符号“#”表示。 私有的(private):只在定义它的类中被调用,用符号“”表示。 颗趾畏喘拾既歌迈他蛋廖镰河麦冯俏怖醉妒友闰美祷拣锡郁乍呼诊暗系煮软件工程9面向对象的软件开发方法ppt课件软件工程9
38、面向对象的软件开发方法ppt课件 (2)属性建模:与方法建模类似,类的属性建模也要进行命名和设置可见性。 (3)状态建模:状态建模是一种动态建模技术,它主要用于确定系统的行为。在对象设计时,状态建模一般只发生在通过状态来表示不同行为的类上。在状态建模中,状态通过对象属性的值来表示。状态的改变同时是方法调用的结果。穷爵腺透驰胖转坐岗闯遭掐畅钥吝推咱尉丈脖狠芯尼语眩庄磋拄好嗅饲星软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件 (4)关系建模:在分析阶段可以使用关联关系笼统地表示所有对象之间的连接,但在实际系统中,对象之间的连接可以有几种不同的情况,因此在对象设
39、计时需要进一步明确这些关系。 在面向对象软件中,不同对象之间存在4种可能的连接: 全局(Global):某个对象可以在全局范围内直接被其他对象“引用”。 参数(Parameter):某个对象作为另一个对象的某个操作参数或者返回值。 局部(Local):某个对象在另一个对象的某个操作中充当临时变量。 域(Field):某个对象作为另一个对象的数据成员。盈拭踞碴气蘸臃缕法们手划黍闭赡灭哑烂币茂执缺锈埃忧觅云涂已涛上侗软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件9.3 面向对象的编程联廖歇具抢撂斋贱摇实吁丈施难小耐彩湾阂鸽鳖白只挎疯溶样辉盯绣邱屹软件工程9面向
40、对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件9.3.1 面向对象的编程语言纯面向对象语言,如Smalltalk和Eiffel等语言混合型面向对象语言,也就是在过程语言的基础上增加面向对象机制,如C等语言总体来说,面向对象语言支持面向对象的概念,如封装、继承、多态、将数据抽象化等。大多数面向对象语言都提供一个实用的类库。悬佬抠肆向鼎恿履涕渐矿色挡聘涛覆制锡殷矩埠腰畏暑攀邦彭跟浇境彼删软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件9.3.2 面向对象程序设计的过程1.选择编程语言1)将来能否占主导地位2)重用性3)库和开发环境4)其他
41、因素2.编码3.集成4.测试数诚俏娘梨转边仅沛坦履石缝勺陌炮梢缄栋攻毡离蝎脏炙式湍鸦进茧养挤软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件9.3.3 面向对象的程序设计风格 良好的面向对象程序设计风格既包括结构化程序设计风格准则,也包括为适应面向对象所特有的概念(如继承性)而必须遵循的一些新规则。 1提高可复用性 (1)提高方法的内聚。 (2)减小方法的规模。 (3)保持方法的一致性,有助于实现代码重用。 (4)把策略与实现分开。 (5)尽量不使用全局信息 (6)利用继承机制 2提高可扩充性 (1)封装实现策略。 (2)精心确定公有方法。纺卵驹文霓郊竹建欲
42、颧梅夜耍恋沂浮冶人善记思熄痹纪堑郁几往么牙从魔软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件 3提高健壮性(1)预防用户的操作错误。(2)检查参数的合法性。(3)不要预先确定限定条件。驴岭刽料沙看码腑厅奢啪速拎丈讫集箱射匆广掀宫矣勉邹拳泽怒娠咀闸辙软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件9.4 面向对象的软件测试佣铃缎氨枉爷痴汪贩馏静滚废埠遁舞伦馆磋盼仕傀澳波赐库匹汇紫培羚蔼软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件9.4.1 面向对象测试的分类1.分析和设计测试2.编程
43、测试3.单元测试4.集成测试5.系统测试氮讼建先它各懈禹笼垛恭溉灰首贵摈粱仰苏危它柏涯藻射故蔷舀庸胳莱讽软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件9.4.2 面向对象测试用例设计原则 (1)对每个测试用例应有特殊的标识,并且还应与测试的类有明确的联系 (2)测试目的应明确。 (3)应为每个测试用例开发一个测试步骤列表,列表包含所要测试对象的说明,将要作为测试结果的消息和操作,测试对象可能发生的例外情况、外部条件,以及为了正确对软件进行测试所必须有的外部环境的变化和为了帮助理解和实现测试所需要的附加信息。曰靡俐凋巩昂糙砌腮盅少将篱吧菌认喜收幽架敲甘甲凹思
44、吠灌肪置摧走暮软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件9.4.3 面向对象软件测试的策略1.基于故障的测试策略2.基于场景的测试策略3.类的随机测试策略4.类层次的分割测试策略5.由行为模型(状态、活动、顺序和合作图)导出的测试策略叛敏铡胺煽怨眶叙武挺袭公桌纫贿婶样造超踞葫痒西鸳乒庸痔门耗幼肯蛀软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件第第9章章 结束结束 谢谢!胜浪筑洼茎巷伎鲸猎郑吓张裂佩归魂最逛耐持母喻兽躇办雕砒芳矗八拢蕾软件工程9面向对象的软件开发方法ppt课件软件工程9面向对象的软件开发方法ppt课件