- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六章 面向对象设计 传统方法学概述 传统方法学存在的问题 生产率提高的幅度远远不能满足需要 软件重用程度很低 软件仍然很难维护 软件往往不能真正满足用户需要 出现问题的原因 僵化的瀑布模型 *某些类型的系统需求是模糊的 *项目参与者之间存在通信鸿沟 *预先定义的需求可能是过时的 结构化技术的缺点 *用这种技术开发出的软件,其稳定性、可修改性和可重用性都比较差。 *结构化分析、设计技术的本质是功能分析。从代表目标系统整体功能的单个处理着手,自顶向下不断把复杂的处理分解为子处理,层层分解下去,直至仅剩下若干个容易实现的子处理为止。 功能与数据分离的软件设计结构与人类的现实世界环境很不一样,和人的自然思维也就很不一致,因此对现实世界的认识与编程之间存在着一道很深的理解上的鸿沟。 系统是围绕着如何实现一定的行为来进行的,当系统行为易变,需要常常修改时,修改极为困难。 在系统中模块之间的控制作用有重要影响时,也就是说,实际的控制发生的根源来自分散的各个模块之中时,由于在“好的模块结构”中的模块间的控制作用只能通过上下之间的调用关系来进行,造成信息传递路径过长,效率低,易受干扰,甚至出错。 自顶向下功能分解的分析方法极大地限制了软件的可重用性。 面向对象方法学概述 面向对象方法学概述 “面向对象”(Object-Oriented)是针对“面向过程”一词提出的,是从本质上区别于传统的结构化方法的一种新方法,新思路。 OO技术的基本原理是:按照问题域的基本事物实现自然分割,按人们通常的思维方式建立问题域的模型,设计尽可能直接自然表现问题求解的软件系统。 为此,OO技术引入了对象(object)概念来表现事物,用消息(message)传递建立事物间的联系。用类(class)和继承(inheritance)作为适应人们一般思维方式的描述模型。用方法(method)表示作用在对象上的各种操作。 建立在对象、消息、类、继承和方法等概念基础上的面向对象软件的基本特征是对象的封装性和继承性。 通过封装可以将对象的定义与对象的实现分开。这样,无论是对象功能的完善扩充,还是对象实现的修改,影响仅限于该对象内部,保证了面向对象软件的可构造性和易维护性。 通过继承可以表达类与类之间的联系,大大减少了重复定义,同时也使系统的结构更加清晰、易于理解和维护。 教学内容: §6.1 面向对象设计概述 §6.2 系统设计 §6.3 对象设计 §6.4 领域对象设计 在第五章讲述了软件设计的几条基本原理,这些原理在进行面向对象设计时仍然成立,但是增加了一些与面向对象方法密切相关的新特点,从而具体化为下列的面向对象设计准则: 模块化——对象就是模块; 抽象——类实际上是一种抽象数据类型; 信息隐蔽——通过对象的封装性实现; 弱耦合——主要指不同对象之间相互关联的紧密程度; 强内聚——设计中使用的一个构件内的各个元素,对完成一个定义明确的目的所做出的贡献程度; 可重用——尽量使用已有的类,确实需要创建新类,则在设计这些新类的协议时,应该考虑将来的可重复使用性; 面向对象设计 分析是提取和整理用户需求,并建立问题与精确模型的过程。设计则是把分析阶段得到的需求转变成符合成本和质量要求的、抽象的系统实现方案的过程。 面向对象设计就是用面向对象观点建立求解域模型的过程。 OOA与OOD的本质: OOA是一个分类活动,即分析问题力图确定在开发 解决方案时可应用的对象类,同时确定对象关系和行为。 OOD使得软件工程师能够确定从类中导出的对象, 以及这些对象的相互关联,此外,OOD描述了:对象间的 关系如何达到; 行为如何实现;对象间通信如何实现。 从OOA到OOD 逐渐扩充模型的过程 OOD分为两个阶段: 高层设计(系统设计) 低层设计(对象设计) §6.1 面向对象设计概述 OOD则主要考虑“如何实现”的问题,因而这一阶段注意的焦点从问题空间转移到解空间。着重完成各种不同层次的模块设计。 系统设计主要完成系统整体结构的设计,包括将子系统分配到处理器和任务,选择实现数据管理、界面支持和任务管理的设计策略,为系统设计合适的控制机制等。 对象设计,对OOA模型中的类对象模型具体化、详细化。 消息设计使用对象间的协作和对象—关系模型,设计出消息模型。 复审设计模型,对设计模型进行复审,并伴随着附加的OOA活动。 和传统的结构化设计一样,面向对象设计也是将分析阶段所建立的分析模型转变为软件设计模型。 分析模型 使用实例,处于OOA模型核心的是“使用实例”(Use Case ),简称“用例”。获得软件的需求后,软件分析
文档评论(0)