《软件工程》第6章 面向对象的软件开发技术.pptVIP

《软件工程》第6章 面向对象的软件开发技术.ppt

  1. 1、本文档共104页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第 6 章 面向对象的软件开发技术 邢承杰 北京大学计算中心管理信息中心 E-mail: xingcj@ 面向对象方法的产生 传统的以瀑布模型为基础的软件生命周期方法学给软件产业带来了巨大的进步,部分地缓解了“软件危机”。 但这种方法学仍然存在比较明显地缺点,不能胜任所有的软件开发任务。 因此,人们在软件开发的时间中逐渐创造出新的软件开发方法——面向对象方法学。 传统的瀑布型软件存在的问题 (1)客观世界的描述——自然语言与计算机对客观世界的描述——程序设计语言存在语义断层。 语义断层举例 SADT方法举例——家庭安全系统(SafeHome) 用户可通过控制面板对SafeHome进行编程和配置: 用户可通过控制面板了解SafeHome状况。 当传感器监测到异常情况, SafeHome激活一个附于系统上的可发声警报器。报警延迟一定时间后, SafeHome拨打监控服务的电话号码,并报告关于位置和被监测到的事件性质等信息。电话号码将每20秒重拨一次,直至电话接通。 传统的瀑布型软件存在的问题(续1) (2)对需求不稳定的系统很难实现。 传统的瀑布型软件存在的问题(续2) (3)软件的重用问题。 再编写一个银行ATM自助提款机的程序 自助提款机也需要控制面板,也需要密码处理程序 思考:刚才编写的控制面板相关的程序能否移植到新系统中?? 面向对象方法的产生和发展 面向对象(Object Oriented)的思想最初来源于抽象数据类型(ADT),后来在程序设计语言中引入。 最早引入面向对象思想概念的语言是60年代末的Simula67仿真语言。使用了 “对象”的概念,但并没有得到推广。 70年代的Smalltalk语言是面向对象的主要里程碑,它完整地体现了面向对象语言的特点。推动了“面向对象”的发展。这是一种全新的语言。 我们熟悉的C++和Java都是面向对象语言。 面向对象方法的发展(续) 面向对象的概念和程序设计方法很快受到重视。80年代中期以后,逐渐形成了面向对象分析(OOA)、面向对象设计(OOD)以及面向对象实现(OOP)一整套面向对象方法。 到了90年代,面向对象技术开始变得广泛使用,并且成为软件分析与设计的主流方法。随着时间的流逝,面向对象技术正在替代传统的软件开发方法。 对象技术的发展图示 为什么要学习面向对象和UML 需要理由吗? 我们从事软件行业 面向对象是最主流的软件开发思想 UML是最主流的建模方法 本章主要内容 6.1从结构化到面向对象 6.2 什么是面向对象 6.3 面向对象相关的基本概念 6.4 面向对象的开发模型 6.5 UML基础 素数问题 筛选法求素数 思考? 用结构化思维解决上述问题 用对象思维解决上述问题 将解决思路用合适的方式记录下来 思考: 结构化的思维与对象化的思维有什么本质的不同?体现了怎样的思维差异?面向对象思想有何优势? 如何表达设计思想:代码?图形? 结构化设计 结构化实现 结构化小结 通过流程图(结构化建模)可以更清楚表达设计思想 针对过程的抽象 过程(函数)是系统的核心,通过过程实现系统功能 数据是静态的,由过程来控制对数据的访问 Java实现-是对象思维吗? 用对象思维解决问题? 这才是对象思维! 面向对象的编程—过滤器(筛子眼) 面向对象的编程-筛子 验证设计方案 面向对象方法小结 通过UML类图(面向对象建模)可以更清楚表达设计思想,并为代码实现提供框架 针对数据的抽象:类 类拥有自己的数据和行为 过程是类的组成部分,为类提供行为 类的对象之间的协作完成系统功能 对象技术的思考 对象思维具有更大的灵活性,更好的模块化,可以进行更大规模的设计 面向对象设计和开发的难度更大,面临着对象的识别、职责分配等一系列问题 学习更多知识和技术,并掌握一系列面向对象的设计原则和模式 图形化工具(UML)有助于表达和交流设计思想,并简化实现的过程 总结:结构化VS面向对象 结构化思维用函数刻画数据间关系 面向对象思维直接用类表达数据间关系 结构化中,数据是死的,全部依赖算法操作 面向对象中,数据是活的,“她”知道自己的信息(属性),并能完成自己的工作(操作) 结构化思维更像是一个人在解决所有问题 面向对象思维更像是一个团队的分工协作 面向对象 VS 结构化-1 扬弃,不是否定 面向对象 VS 结构化-2 (程序)实现角度 面向对象 VS 结构化-3 面向对象 VS 结构化-4 例:选课系统 用户需求: 某学校欲开发一个学生选课系统。业务活动描述如下,学生能够登录系统查看课程情况并进行选课,系统能够记录考生选课结果,任课老师能够查看选课情况,管理员能够对课程信息进行维护和管理,选课结束后,管理员能够打印选课名单。 要求: 对系统进行建模。 结构化方法 面向对

文档评论(0)

nuvem + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档