面向对象软件开发技术(OOA-OOD-OOP).ppt

上传人:s9****2 文档编号:568641310 上传时间:2024-07-25 格式:PPT 页数:38 大小:1.85MB
返回 下载 相关 举报
面向对象软件开发技术(OOA-OOD-OOP).ppt_第1页
第1页 / 共38页
面向对象软件开发技术(OOA-OOD-OOP).ppt_第2页
第2页 / 共38页
面向对象软件开发技术(OOA-OOD-OOP).ppt_第3页
第3页 / 共38页
面向对象软件开发技术(OOA-OOD-OOP).ppt_第4页
第4页 / 共38页
面向对象软件开发技术(OOA-OOD-OOP).ppt_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《面向对象软件开发技术(OOA-OOD-OOP).ppt》由会员分享,可在线阅读,更多相关《面向对象软件开发技术(OOA-OOD-OOP).ppt(38页珍藏版)》请在金锄头文库上搜索。

1、面向对象的开发方法传统开发方法存在问题1. 1.软件重用性差软件重用性差 重用性是指同一事物不经修改或稍加修改就可多次重复重用性是指同一事物不经修改或稍加修改就可多次重复使用的性质。软件重用性是软件工程追求的目标之一。使用的性质。软件重用性是软件工程追求的目标之一。 2. 2.软件可维护性差软件可维护性差 软件工程强调软件的可维护性,强调文档资料的重要性,软件工程强调软件的可维护性,强调文档资料的重要性,规定最终的软件产品应该由完整、一致的配置成分组成。规定最终的软件产品应该由完整、一致的配置成分组成。实践证明,用传统方法开发出来的软件,维护时其费用和实践证明,用传统方法开发出来的软件,维护时

2、其费用和成本仍然很高,其原因是可修改性差,维护困难,导致可成本仍然很高,其原因是可修改性差,维护困难,导致可维护性差。维护性差。 3. 3.开发出的软件不能满足用户需要开发出的软件不能满足用户需要 用传统的结构化方法开发大型软件系统涉及各种不同领用传统的结构化方法开发大型软件系统涉及各种不同领域的知识,在开发需求模糊或需求动态变化的系统时,所域的知识,在开发需求模糊或需求动态变化的系统时,所开发出的软件系统往往不能真正满足用户的需要。开发出的软件系统往往不能真正满足用户的需要。面向对象的定义面向对象是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程

3、面向对象软件开发技术面向对象分析(OOA)面向对象设计(OOD)面向对象实现(OOP)OOA - 面向对象分析面向对象分析不论采用哪种方法开发软件,分析的过程都是提取系统需求的过程。分析工作主要包括3项内容,这就是理解、表达和验证。分析过程得出的最重要的文档资料是软件需求规格说明(在面向对象分析中,主要由对象模型、动态模型和功能模型组成)。面向对象分析面向对象分析(OOA)(OOA)的关键的关键: : 识别出问题域内识别出问题域内的类与对象,并分析它们相互间的关系,最终的类与对象,并分析它们相互间的关系,最终建立起问题域的简洁、精确、可理解的正确模建立起问题域的简洁、精确、可理解的正确模型。型

4、。在用面向对象观点建立起的在用面向对象观点建立起的3 3种模型中,对象种模型中,对象模型是最基本、最重要、最核心的。模型是最基本、最重要、最核心的。一、一、 面向对象分析的基本过程面向对象分析的基本过程 面向对象分析,就是抽取和整理用户面向对象分析,就是抽取和整理用户需求并建立问题域精确模型的过程。需求并建立问题域精确模型的过程。 三个模型、五个层次三个模型、五个层次3 3个模型个模型: :对象模型对象模型 ( (静态结构静态结构) )、动态模型动态模型( (交互次交互次序序) )和和功能模型功能模型( (数据变换数据变换) )。复杂问题(大型系统)的对象模型由复杂问题(大型系统)的对象模型由

5、5 5个层次组成个层次组成三种模型之间的关系三种模型之间的关系三种模型分别从3个不同侧面描述了所要开发的系统。它们相互补充、相互配合,使得我们对系统的认识更加全面:功能模型指明了系统应该“做什么”;动态模型明确规定了什么时候(即在何种状态下接受了什么事件的触发)做;对象模型则定义了做事情的实体。在面向对象方法学中,对象模型是最基本最重要的,它为其他两种模型奠定了基础。 OOA OOA 过程过程概念上:概念上:OOAOOA大体上按照下列顺序进行:寻找类大体上按照下列顺序进行:寻找类与对象,识别结构,识别主题,定义属性,建立与对象,识别结构,识别主题,定义属性,建立动态模型,建立功能模型,定义服务

6、。动态模型,建立功能模型,定义服务。但,正如前面已经多次强调指出过的,分析不可但,正如前面已经多次强调指出过的,分析不可能严格地按照预定顺序进行,大型、复杂系统的能严格地按照预定顺序进行,大型、复杂系统的模型需要模型需要反复构造反复构造多遍才能建成。通常,先构造多遍才能建成。通常,先构造出模型的子集,然后再逐渐扩充,直到完全、充出模型的子集,然后再逐渐扩充,直到完全、充分地理解了整个问题,才能最终把模型建立起来。分地理解了整个问题,才能最终把模型建立起来。二、需求陈述二、需求陈述需求陈述的内容包括:问题范围,功能需求,性需求陈述的内容包括:问题范围,功能需求,性能需求,应用环境及假设条件等。总

7、之,需求陈能需求,应用环境及假设条件等。总之,需求陈述应该阐明述应该阐明“做什么做什么”而不是而不是“怎样做怎样做”。书写需求陈述时,要尽力做到语法正确,而且应书写需求陈述时,要尽力做到语法正确,而且应该慎重选用名词、动词、形容词和同义词。该慎重选用名词、动词、形容词和同义词。需求陈述可简可繁。需求陈述可简可繁。反复迭代,逐步完整、准确、有效。反复迭代,逐步完整、准确、有效。三、建立对象模型三、建立对象模型获取客户对获取客户对OOOO系统的需求系统的需求使用基本的需求作为指引来选择类和对象使用基本的需求作为指引来选择类和对象为每个系统对象标识属性和操作为每个系统对象标识属性和操作定义组织类的结

8、构和层次定义组织类的结构和层次建造对象建造对象关系模型关系模型1 1、确定类和对象、确定类和对象找出候选的类与对象筛选出正确的类与对象ATM系统ATM系统候选类和对象: 银行,ATM,系统,中央计算机,分行计算机,柜员终端,网络,总行,分行,软件,成本,市,街道,营业厅,储蓄所,柜员,储户,现金,支票,账户,事务,现金兑换卡,余额,磁卡,分行代码,卡号,用户,副本,信息,密码,类型,取款额,账单,访问。冗余:用户、磁卡、副本-储户、现金兑换卡无关:成本、市、街道、营业厅、储蓄所笼统:银行、网络、系统、软件、信息、访问属性:有些名词实际上描述的是其他对象的属性,应该把这些名词从候选类与对象中去掉

9、。当然,如果某个性质具有很强的独立性,则应把它作为类而不是作为属性。 在ATM系统的例子中,“现金”、“支票”、“取款额”、“账单”、“余额”、“分行代码”、“卡号”、“密码”、“类型”等,实际上都应该作为属性对待。操作、实现2 2、确定关联、确定关联初步确定关联初步确定关联筛选筛选进一步完善进一步完善 ATM系统原始的类图系统原始的类图 3 3、划分主题、划分主题4 4、确定属性(分析、选择)、确定属性(分析、选择)5 5、识别继承关系、识别继承关系6 6、反复修改、反复修改修修改改后后的的ATM对对象象模模型型四、建立动态模型四、建立动态模型在开发交互式系统时,动态模型却起着很重要的作用。

10、第一步,是编写典型交互行为的脚本。虽然脚本中不可能包括每个偶然事件,但是,至少必须保证不遗漏常见的交互行为。第二步,从脚本中提取出事件,确定触发每个事件的动作对象以及接受事件的目标对象。第三步,排列事件发生的次序,确定每个对象可能有的状态及状态间的转换关系,并用状态图描绘它们。最后,比较各个对象的状态图,检查它们之间的一致性,确保事件之间的匹配。1 1、编写脚本、编写脚本脚本:系统在某一执行期间内出现的一系列事件。脚本描述用户(或其他外部设备)与目标系统之间的一个或多个典型的交互过程,以便对目标系统的行为有更具体的认识。编写脚本的目的:是保证不遗漏重要的交互步骤,它有助于确保整个交互过程的正确

11、性的和清晰性。编写脚本:首先编写正常情况的脚本。然后,考虑特殊情况,最后,考虑出错情况。2 2、设想用户界面、设想用户界面界面对用户是否喜欢、是否接受一个系统起着很重要的作用。界面中的信息交换方式是非常重要的。设想用户界面的目的就是确保能够完成全部必要的信息交换,而不会丢失重要的信息。3 3、画事件跟踪图、画事件跟踪图/ /状态图状态图确定事件与状态UML顺序图、活动图表示事件活动的过程UML状态图表示事件与对象状态的关系ATM取款类的状态图取款类的状态图ATM正常情况的事件顺序图正常情况的事件顺序图五、建立功能模型五、建立功能模型/ /定义服务定义服务功能模型表明了系统中数据之间的依赖关系,

12、以及有关的数据处理功能。建立功能模型:数据流图、UML的用例图定义服务 OOD OO系统的设计子系统设计子系统设计类及对象设计类及对象设计消息设计消息设计责任设计责任设计OOD设计金字塔设计金字塔OOD OOD OOOO系统的设计系统的设计尽管分析和设计的定义有明显区别,但是在实际的软件开发过程中二者的界限是模糊的。许多分析结果可以直接映射成设计结果,而在设计过程中又往往会加深和补充对系统需求的理解,从而进一步完善分析结果。因此,分析和设计活动是一个多次反复迭代的过程。面向对象方法学在概念和表示方法上的一致性,保证了在各项开发活动之间的平滑(无缝)过渡,领域专家和开发人员能够比较容易地跟踪整个

13、系统开发过程,这是面向对象方法与传统方法比较起来所具有的一大优势。生命周期方法学把设计进一步划分成总体设计和详细设计两个阶段。面向对象设计细分为系统设计和对象设计。 系统设计确定实现系统的策略和目标系统的高层结构。 对象设计确定解空间中的类、关联、接口形式及实现服务的算法。系统设计与对象设计之间的界限,比分析与设计之间的界限更模糊。OOD设计一般过程以可实现的方式描述每个子系统对象设计消息设计复审设计模型并在需要时迭代分析分析系统设计系统设计对象设计对象设计OODOOD设计准则设计准则模块化抽象信息隐藏弱耦合(减少交互耦合、增加继承耦合)强内聚(服务内聚、类内聚、一般-特殊内聚)可重用OOD

14、OOD 系统设计过程系统设计过程划分分析模型并发性和子系统分配任务管理构件数据管理构件资源管理构件人机界面构件子系统间通信 OOD OOD 对象设计过程对象设计过程对象描述对象描述 涉及算法和数据结构涉及算法和数据结构 程序构件和接口程序构件和接口 OOP - OOP - 面向对象实现面向对象实现面向对象实现(OOP)(OOP)实现语言基本实现手段实现环境(类库、开发工具)编码调试测试基本实现手段基本实现手段 类定义类定义 对象创建对象创建 结构定义结构定义 实例关联定义实例关联定义 操作调用和消息发送操作调用和消息发送 内存管理内存管理 封装封装 多态多态小小 结结近年来,面向对象方法学日益

15、受到人们的重视,特近年来,面向对象方法学日益受到人们的重视,特别是在用这种方法开发大型软件产品时,可以把该别是在用这种方法开发大型软件产品时,可以把该产品看作是由一系列本质上相互独立的小产品组成,产品看作是由一系列本质上相互独立的小产品组成,这就不仅降低了开发工作的技术难度,而且也使得这就不仅降低了开发工作的技术难度,而且也使得对开发工作的管理变得比较容易了。对开发工作的管理变得比较容易了。使用面向对象范型能够开发出稳定性好、可重用性使用面向对象范型能够开发出稳定性好、可重用性好和可维护性好的软件。好和可维护性好的软件。UMLUML是基于面向对象技术的标准建模语言。通常,是基于面向对象技术的标准建模语言。通常,使用使用UMLUML的类图来建立对象模型,使用的类图来建立对象模型,使用UMLUML的状态的状态图来建立动态模型,使用数据流图或图来建立动态模型,使用数据流图或UMLUML的用例图的用例图来建立功能模型。来建立功能模型。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

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