网站大量收购独家精品文档,联系QQ:2885784924

软件工程模型与方法 10、面向对象设计.ppt

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

软件工程模型与方法 Models Methods of Software Engineering 第十章 面向对象设计 修佳鹏 本章内容 10.1 面向对象设计综述 10.2 模型的层次化 10.3 面向对象设计原则 10.4 设计用例实现方案 10.1 面向对象设计综述 面向对象的设计就是在OOA模型基础上运用面向对象方法进行系统设计,目标是产生一个符合具体实现条件的面向对象设计(OOD)模型。与实现条件有关的因素有:图形用户界面、硬件、操作系统、网络、数据库管理系统、编程语言和可复用的类库等。 OOD的成果是以UML包图等表示的软件体系结构、以交互图和类图表示的用例实现、针对复杂对象的状态图和用以描述流程化处理过程的活动图等。 面向对象的设计过程 10.2 模型的层次化 10.2.1 用户界面层 10.2.2 控制器/处理层 10.2.3 业务/领域层 10.2.4 持久化层 10.2.5 系统层 层次化模型 用户界面类实现了系统的主要用户界面元素。 业务/领域类实现与业务领域相关的概念,源于领域模型 。 控制器/处理类作为完成用例任务的责任承担者,用于协调、控制其他类共同完成用例规定的功能或行为。 持久类把永久存储、检索、更新和删除对象的能力封装起来,使底层的存储技术不暴露出来。 系统类为应用提供操作系统相关的功能,通过把特定于操作系统的特性包装起来,使软件与操作系统分离,增加应用的可移植性。 10.2.1 用户界面层 用户界面层指与用户进行交互的部分,包含应用程序中用户界面部分的代码。 系统与用户的用户界面可以以多种形式出现: 图形用户界面GUI 命令行界面 其他交互界面(语音等) 尽量将用户界面层与系统的业务逻辑分离离,专门处理系统与用户的交互。 用户与系统的交互方式发生变化,系统的基本业务逻辑不需改变;系统业务逻辑变化,在交互内容不变的情况下,用户界面不需要进行改变。 10.2.2 控制器/处理层 当用户通过用户界面使用系统时,用户界面类会产生系统事件传递给控制器类,后者负责该系统事件的处理。 在系统事件的处理过程中,控制器类可能会调用领域类、系统类甚至其他的控制器类。 10.2.3 业务/领域层 在面向对象分析阶段,已经识别出了问题域中重要的概念,该阶段关注的是概念的本质含义以及属性。 在面向对象设计阶段,将会对这些概念增加操作,并进行必要的修改和调整,使之成为设计模型中业务/领域层中的类。 这也是为什么说OOA和OOD采用一致的表示法,OOA和OOD之间不存在结构化方法中分析与设计的鸿沟,两者能够紧密衔接。 10.2.4 持久化层 对象持久化:将对象状态永久保存到物理存储介质中。 持久化层提供了存储、检索、更新和删除对象的基础结构。 持久层封装对永久存储介质的访问,但其本身并不是永久存储机制。例如,持久层可能封装了对关系数据库的访问,但本身不是数据库,而是完成持久化功能的类的集合。 为何引入持久化类 引入持久层的目的在于当数据存储机制或策略发生变化的时候,能减少维护工作。 目前大部分系统都是采用数据库作为存储介质。但数据库肯定会改变,包括: 数据库升级 从一种数据库移动到另一种数据库 数据模式变化,如增加字段、修改字段名称、改变字段类型等 持久层将对数据库的操作类封装起来,提供专门数据管理功能,向业务/领域对象提供持久化服务,从而使数据库变化对业务领域的影响的范围局部化。 无论持久存储策略如何变化,业务/领域类都不会受影响,从而增加了应用程序的可维护性、可扩展性和可移植性。 10.2.5 系统层 系统层提供对操作系统和非面向对象资源的访问。 系统类将操作系统提供的系统调用封装起来,生成系统访问类,例如Java语言中的文件流类库。上层业务逻辑直接访问系统类。而不直接访问系统调用。 这样当程序需要在不同操作系统平台上进行移植时,只需要修改少数系统类就可以了。 10.3 面向对象设计原则 10.3.1单一职责原则SRP (Single Responsibility Principle) 10.3.2开闭原则OCP(Open Closed Principle) 10.3.3里氏替换原则LSP(Liskov Substitution Principle) 10.3.4依赖倒置原则DIP (Dependency Inversion Principle) 10.3.5接口隔离原则ISP(Interface Segregation Principle) 10.3.6组合/聚合复用原则(Composite/Aggregation Reuse Principle, CARP) 10.3.7迪米特法则(Law of Demeter, LoD) 10.3.1单一职责原则SRP (Sing

文档评论(0)

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

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

1亿VIP精品文档

相关文档