第5章面向对象基础.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章面向对象基础.ppt

第 5 章 面向对象基础 4学时 引言 话说三国时期,曹操带领百万大军攻打东吴,大军在长江赤壁驻扎,军船连成一片,眼看就要灭掉东吴,统一天下,曹操大悦,于是大宴众文武,在酒席间,曹操诗性大发,不觉吟道:“喝酒唱歌,人生真爽。……”。众文武齐呼:“丞相好诗!”于是一臣子速命印刷工匠刻版印刷,以便流传天下。 把每个字做一个对象,只需更改四个字就可 第5章 面向对象基础 1)面向对象的基本概念 2)UML用例图、活动图和类图的应用 3)软件建模语言的作用 4)UML的5个视图的作用 5)UML顺序图、交互图、组件图、配置图、状态图的应用 第5章 面向对象基础 5.1 从一个例子看结构化方法的问题 5.2 面向对象概念 5.3 面向对象开发方法介绍 5.4 UML语言 5.5 用例图 5.6 活动图 5.7 状态图 5.8 交互图 5.9 类图 5.10 配置图 5.11 组件图 5.1 从一个例子看结构化方法的问题 例子:设计并实现一个四则运算软件,输入两个数和运算符号,输出运算结果。 用结构化设计: 这个例子很简单没有必要画数据流程图,如果一定要画的话,只有三个处理“数据录入”, “计算”, “结果输出”,转换成设计模块也只有“主模块”“数据录入”“计算”“结果输出”4个简单的模块。 注:主模块太简单我们省略了。 结构化方法是将需求分解为一个个简单的功能,简单的功能直接影射为模块,复杂的功能可以设计多个模块。 当需求发生变化,例如,增加一个平方运算或开根运算时,需要修改计算模块,这就要求程序员对计算模块的代码非常了解。这对于功能简单的软件比较容易实现,当软件规模比较大,功能复杂时,非常容易出错,并且软件的维护量很大。 点评: 首先设计一个计算类operation,有两个私有的操作数numberA和numberB、三个方法:NumberA(),NumberB()和GetResult() 在设计时考虑到软件的可扩充性,把计算类设计为基类,四则运算分别继承基类。为了增加软件的灵活性,设计一个实例化工厂类,专门生成运算类的实例化对象。类图如下: 点评: 在客户端主程序直接调用实例化工厂类创建相应的运算类对象,工厂返回相应的运算类对象指针。例如,下面的代码oper指向OperationAdd类,接着调用该类的方法NumberA和NumberB进行属性赋值,最后调用该类的GetResult方法计算结果。输入和输出的处理代码与结构化方法相同,故省略。 Operation oper; oper = OperationFactory. createOperate(+) ; oper.NumberA = 1; oper.NumberB =2; double.result = oper.GetResult(); 面向对象方法比结构化方法设计的软件结构要复杂一些。在本例中,每个计算分别设计为一个子类,如果要增加新的运算,只需添加子类,同时在实例化工厂类中添加相应的switch分支,其他的处理不受影响。也就是说,程序员不必了解其他运算的处理代码,程序的整体结构没有变化。 结构化方法的问题: 结构化方法分析和设计阶段所应用的模型之间存在鸿沟。分析阶段的主要模型是数据流程图,设计阶段的主要模型是软件模块结构图,数据流程图和软件模块结构图之间需要进行转换。不同的人转换出的模块图可能不同,有很大的随意性,这是做工程非常忌讳的,质量很难评价。 在分析阶段用数据流程图将用户需求和软件的功能需求统一起来。系统分析人员从整体至局部不断地理解用户需求,并且自顶向下逐步细化数据流程图。这里存在着两个问题: 细化程度没有标准,只能凭借分析人员的经验自己把握; 过程:分析用户需求?确定软件功能?分解复杂的功能为多个简单的功能。当需求变更时,功能分解就要重新进行,功能变化就会导致软件模块结构发生变化,造成了软件结构不稳定。 结构化方法的问题(续): 结构化程序设计将数据定义与处理数据的过程相分离,不利于软件复用。例如,在图书馆信息管理系统中,对图书基本信息进行处理的典型方法是:在数据说明中定义图书基本信息的结构,设计图书信息添加模块、修改模块、删除模块等等功能模块,实现对图书信息的处理。当新的系统要复用图书处理功能时,要分别复制数据说明定义和各个功能处理模块。 结构化方法设计的软件结构不稳定,缺乏灵活性,可维护性差。从上面的例子看出,结构化方法一旦需求变更,软件的结构变化比较大,扩充功能往往意味着修改原来的结构。当软件工程的规模比较大,用户需求经常变更的情况下,不宜使用结构化方法。 5.2 面向对象的概念 什么是对象? 在现实世界中的任何有属性的单个实体或概念,都可看做对象。 学生张三是一个对象,具有姓名、学号、班级等属性;一个银行账户是一个对象

文档评论(0)

gshshxx + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档