- 1、本文档共65页,可阅读全部内容。
- 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章 面向对象设计 4学时 引言?面向对象的设计 第7章 面向对象设计 1)面向对象设计方法和步骤 2)面向对象设计的概念 3)面向对象设计规格说明书的主要内容 7.1 面向对象设计的概念 面向对象设计强调定义软件对象,并且使这些软件对象相互协作来满足用户需求。 面向对象分析和设计的界限是模糊的,从面向对象分析到面向对象设计是一个逐渐扩充模型的过程。分析的结果通过细化直接生成设计结果,在设计过程中逐步加深对需求的理解,从而进一步完善需求分析的结果。 分析和设计活动是一个反复迭代的过程。 面向对象方法学在概念和表示方法上的一致性,保证了各个开发阶段之间的平滑性。 面向对象设计的四个层次: 确定系统的总体结构和风格,构造系统的物理模型,将系统划分成不同的子系统。 中层设计:对每个用例进行设计,规划实现用例功能的关键类,确定类之间的关系。 进行底层设计:对每个类进行详细设计,设计类的属性和操作,优化类之间的关系。 补充实现非功能性需求所需要的类。 面向对象设计与结构化设计的过程和方法完全不同,要设计出高质量的软件系统,记住: 对接口进行设计 发现变化并且封装它 先考虑聚合然后考虑继承 强内聚 类内聚——设计类的原则是一个类的属性和操作全部都是完成某个任务所必须的,其中不包括无用的属性和操作。 例如设计一个平衡二叉树类,该类的目的就是要解决平衡二叉树的访问,其中所有的属性和操作都与解决这个问题相关,其他无关的属性和操作在这里都是垃圾,应该清除。 弱耦合 在面向对象设计中,耦合主要指不同对象之间相互关联的程度。如果一个对象过多地依赖于其它对象来完成自己的工作,则不仅使该对象的可理解性下降,而且还会增加测试、修改的难度,同时降低了类的可重用性和可移植性。 对象不可能是完全孤立的,当两个对象必须相互联系时,应该通过类的公共接口实现耦合,不应该依赖于类的具体实现细节。 耦合(续) 交互耦合——如果对象之间的耦合是通过消息连接来实现的,则这种耦合就是交互耦合。在设计时应该尽量减少对象之间发送的消息数和消息中的参数个数,降低消息连接的复杂程度。 耦合(续) 继承耦合——继承耦合是一般化类与特殊化类之间的一种关联形式,设计时应该适当使用这种耦合。在设计时要特别认真分析一般化类与特殊化类之间继承关系,如果抽象层次不合理,可能会造成对特殊化类的修改影响到一般化类,使得系统的稳定性降低。另外,在设计时特殊化类应该尽可能多地继承和使用一般化类的属性和服务,充分利用继承的优势。 可重用性 软件重用是从设计阶段开始的,所有的设计工作都是为了使系统完成预期的任务,为了提高工作效率、减少错误、降低成本,就要充分考虑软件元素的重用性。重用性有两个方面的含义: 尽量使用已有的类,包括开发环境提供的类库和已有的相似的类; 如果确实需要创建新类,则在设计这些新类时考虑将来的可重用性。 设计一个可重用的软件比设计一个普通软件的代价要高,但是随着这些软件被重用次数的增加,分摊到它的设计和实现成本就会降低。 框架 框架是一组可用于不同应用的类的集合。框架中的类通常是一些抽象类并且相互有联系,可以通过继承的方式使用这些类。例如,Java应用程序接口(API)就是一个成功的框架包,为众多的应用提供服务,但一个应用程序通常只需要其中的部分服务,可以采用继承或聚合的方式将应用包与框架包关联在一起来获得需要的服务。一般不会直接去修改框架的类,而是通过继承或聚合为应用创建合适的GUI类。 面向对象设计的活动 系统构架设计 用例设计 类设计 数据库设计 用户界面设计。 7.2 构架设计 构架设计的目的是要勾画出系统的总体结构,这项工作由经验丰富的构架设计师主持完成。 该活动以用例模型、分析模型为输入。 输出:物理结构、子系统及其接口、概要的设计类。 第1步:构造系统的物理模型 首先用UML的配置图描述系统的物理构架 将需求分析阶段捕获的系统功能分配到这些物理节点上。 配置图上可以显示计算节点的拓扑结构、硬件设备配置、通信路径、各个节点上运行的系统软件配置、应用软件配置。 一个图书馆信息管理系统的物理模型如图示 配置图中 考虑到图书馆内部用户如果也通过互联网使用系统,效率会受影响。 这个系统中设计了三种访问模式:一种是远程读者,通过Internet访问系统,实现查询图书、预借图书的功能;第二种是本单位其他部门的读者,通过单位局域网查询、预借图书;第三种是图书馆内部工作人员,在局域网上完成日常的借还书、采编、图书管理等工作。 第2步 设计子系统 对于一个复杂的软件系统来说,将其分解成若干个子系统,子系统内还可以继续划分子系统或包,这种自顶向下、逐步细化的组织结构非常符合人类分析问题的思路。 每个子系统与其它子系统之间应该定义接口,在接口上说明交互信息,注意这时还不要描述子系统的内部实现
文档评论(0)