- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、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个简单的模块。 注:主模块太简单我们省略了。 模块名称:input 功能:输入运算数和运算符 输入 模块主要代码 输出/返回 无 提示输入信息:请输入数字A、B和运算符: 读入NumberA、NumberB和Operate NumberA,NumberB,Operate 输入 模块主要代码 输出/返回 NumberA NumberB Operate String Result = ; Switch(Operate) { case +: Result =string(NumberA + NumberB); break; case ?: Result =string(NumberA ? NumberB); break; case *: Result =string(NumberA × NumberB); break; case /: if (NumberB!= 0) Result =string(NumberA ÷ NumberB); else Result = 除数不能为0 break; } Result 输入 模块主要代码 输出/返回 Result Console.WriteLine(运算结果: + Result); 无 模块名称:comput 功能:计算 模块名称:output 功能:输出结果 结构化方法是将需求分解为一个个简单的功能,简单的功能直接影射为模块,复杂的功能可以设计多个模块。 当需求发生变化,例如,增加一个平方运算或开根运算时,需要修改计算模块,这就要求程序员对计算模块的代码非常了解。这对于功能简单的软件比较容易实现,当软件规模比较大,功能复杂时,非常容易出错,并且软件的维护量很大。 面向对象方法: 首先设计一个计算类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分支,其他的处理不受影响。也就是说,程序员不必了解其他运算的处理代码,程序的整体结构没有变化。 结构化方法的问题: 结构化方法分析和设计阶段所应用的模型之间存在鸿沟。分析阶段的主要模型是数据流程图,设计阶段的主要模型是软件模块结构图,数据流程图和软件模块结构图之间需要进行转换。不同的人转换出的模块图可能不同,有很大的随意性,这是做工程非常忌讳的,质量很难评价。 在分析阶段用数据流程图将用户需求和软件的功能需求统一起来。系统分析人员从整体至局部不断地理解用户需求,并且自顶向下逐步细化数据流程图。这里存在着两个问题: 细化程度没有标准,只能凭借分析人员的经验自己把握; 过程:分析用户需求?确定软件功能?分解复杂的功能为多个简单的功能。当需求变更时,功能分解就要重新进行,功能变化就会导致软件模块结构发生变化,造成了软件结构不稳定。 结构化方
您可能关注的文档
- 《新》第二篇 消防 初级技能.ppt
- 《新》第二十二课科学技术与思想文化(二)解析与测评.doc
- 《新》第二套-厦门赛区.ppt
- 《新》第二章 教育研究的一般过程4.26.ppt
- 《新》第二章 选择调查课(2011修改 调查统计).ppt
- 《新》第二章 管理信息系统概述.ppt
- 《新》第二章 家庭托幼机构社区.doc
- 《新》第二章 建设许可法规建设工程报章制度.ppt
- 《新》第二章 可行性分析.ppt
- 《新》第二章 临床信息管理系统概述.ppt
- 2025河南润柘投资集团有限公司社会招聘13人(国企工作人员)笔试历年参考题库附带答案详解.pdf
- 2025江苏苏州市太仓市生物医药产业园有限公司招聘最终笔试历年参考题库附带答案详解.pdf
- 2025浙江金华市市民卡服务有限公司招聘2人笔试历年参考题库附带答案详解.pdf
- 挂面质量管理手册.pdf
- 学校基孔肯雅热防控工作预案 (完整版).pdf
- 2025四川雅安市宝兴县兴绿林业投资有限公司招聘(第二批)2人笔试历年参考题库附带答案详解.pdf
- 2025中国建筑土木建设有限公司招聘20人笔试历年参考题库附带答案详解.pdf
- 第7课《隋唐时期的科技与文化》优质课件.pptx
- 直线和圆的位置关系示范课公开课获奖课件省赛课一等奖课件.pptx
- 故纸与社会变迁关系.pdf
最近下载
- 公司章程英文版 Company Articles of Association.doc VIP
- 英文版公司章程ARTICLES OF ASSOCIATION OF.docx VIP
- 从《倾城之恋》的白流苏透析张爱玲小说中的女性形象.docx
- 档案搬迁服务 投标方案.doc
- 日本 东要介--透析液纯净化.cn.pdf VIP
- mpr300电机保护器使用使用说明书.doc
- 2025年乡村振兴战略下县域经济产业链优化研究报告.docx VIP
- 胜利仪器VICTOR 240.240S.270.270S双通道系列示波器用户手册.pdf VIP
- 智能浇灌系统的策划书3篇.pdf VIP
- 新HSK3级词汇最新分析和总结.pdf VIP
文档评论(0)