第七面向对象分析设计基础软件工程摘要.pptVIP

第七面向对象分析设计基础软件工程摘要.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第七面向对象分析设计基础软件工程摘要

武当山旅游门户网站( ) 分类信息 第7章 面向对象基础 7.1 从一个例子看结构化方法的问题 7.2 面向对象概念 7.3 面向对象开发方法介绍 7.4 UML语言 7.5 用例图 7.6 活动图 7.7 状态图 7.8 交互图 7.9 类图 7.10 配置图 7.11 组件图 7.1 从一个例子看结构化方法的问题 例子:设计并实现一个四则运算软件,输入两个数和运算符号,输出运算结果。 用结构化设计: 这个例子很简单没有必要画数据流程图,如果一定要画的话,只有三个处理“数据录入”, “计算”, “结果输出”,转换成设计模块也只有“主模块”“数据录入”“计算”“结果输出”4个简单的模块。 注:主模块太简单我们省略了。 结构化方法是将需求分解为一个个简单的功能,简单的功能直接影射为模块,复杂的功能可以设计多个模块。 当需求发生变化,例如,增加一个平方运算或开根运算时,需要修改计算模块,这就要求程序员对计算模块的代码非常了解。这对于功能简单的软件比较容易实现,当软件规模比较大,功能复杂时,非常容易出错,并且软件的维护量很大。 结构化方法 面向对象方法: 首先设计一个计算类operation,有两个私有的操作数numberA和numberB、五个方法:setNumberA(),setNumberB() ,getNumberA(),getNumberB()和GetResult() 在设计时考虑到软件的可扩充性,把计算类设计为基类,四则运算分别继承基类。为了增加软件的灵活性,设计一个实例化工厂类,专门生成运算类的实例化对象。类图如下: 在客户端主程序直接调用实例化工厂类创建相应的运算类对象,工厂返回相应的运算类对象指针。例如,下面的代码oper指向OperationAdd类,接着进行属性赋值,最后调用该类的GetResult方法计算结果。输入和输出的处理代码与结构化方法相同,故省略。 Operation oper; oper = OperationFactory. createOperate(+) ; oper.setNumberA(1); oper.setNumberB(2); double.result = oper.GetResult(); 面向对象方法比结构化方法设计的软件结构要复杂一些。在本例中,每个计算分别设计为一个子类,如果要增加新的运算,只需添加子类,同时在实例化工厂类中添加相应的switch分支,其他的处理不受影响。也就是说,程序员不必了解其他运算的处理代码,程序的整体结构没有变化。 结构化方法的问题: 结构化方法分析和设计阶段所应用的模型之间存在鸿沟。分析阶段的主要模型是数据流程图,设计阶段的主要模型是软件模块结构图,数据流程图和软件模块结构图之间需要进行转换。不同的人转换出的模块图可能不同,有很大的随意性,这是做工程非常忌讳的,质量很难评价。 在分析阶段用数据流程图将用户需求和软件的功能需求统一起来。系统分析人员从整体至局部不断地理解用户需求,并且自顶向下逐步细化数据流程图。这里存在着两个问题: 细化程度没有标准,只能凭借分析人员的经验自己把握; 过程:分析用户需求?确定软件功能?分解复杂的功能为多个简单的功能。当需求变更时,功能分解就要重新进行,功能变化就会导致软件模块结构发生变化,造成了软件结构不稳定。 结构化方法的问题(续): 结构化程序设计将数据定义与处理数据的过程相分离,不利于软件复用。例如,在图书馆信息管理系统中,对图书基本信息进行处理的典型方法是:在数据说明中定义图书基本信息的结构,设计图书信息添加模块、修改模块、删除模块等等功能模块,实现对图书信息的处理。当新的系统要复用图书处理功能时,要分别复制数据说明定义和各个功能处理模块。 结构化方法设计的软件结构不稳定,缺乏灵活性,可维护性差。从上面的例子看出,结构化方法一旦需求变更,软件的结构变化比较大,扩充功能往往意味着修改原来的结构。当软件工程的规模比较大,用户需求经常变更的情况下,不宜使用结构化方法。 7.2 面向对象的概念 什么是对象? 在现实世界中的任何有属性的单个实体或概念,都可看做对象。 学生张三是一个对象,具有姓名、学号、班级等属性;一个银行账户是一个对象,具有用户名、余额等属性;一份订单也是一个对象,具有货品名、单价、数量等属性。 除了描述对象的属性之外,还可以说明对象所拥有的操作。例如,打印学生的姓名、学号和班级;查询一个顾客的账户余额;打印订单的价格等等。对象的操作是对象的动态特征。 软件中的对象封装了一组属性和对属性进行的操作,是对现实世界中的对象实体的抽象。 什么是类? 类是具有相同属性和相同行为的对象集合。 学生是一个类,其中的一名学生张三是学生类的一个实例,其属性有:姓名=张三,学号=J2

文档评论(0)

宝贝计划 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档