软件工程007.ppt

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程 面向对象的分析和 设计方法 尽管传统的生命周期方法学曾经给软件产业带来了巨大的进步,部分地缓解了软件危机,在开发许多中、小规模软件项目都获得了成功。但是,这种方法学应用于大型软件产品的开发时,很少取得成功。 为了克服传统方法学的缺点,近年来很快发展起来的面向对象方法学已成为当前最好的软件开发技术,是人们开发软件时的首选范型。 9.1 面向对象方法学概述 面向对象(Object-Oriented,缩写为OO)方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程。也就是使描述问题的问题空间(也称为问题域)与实现解法的解空间(也称为求解域)在结构上尽可能一致。 客观世界的问题都是由客观世界中的实体及实体与实体间的关系构成的。我们把客观世界中的实体抽象为问题域中的对象(object)。 1 面向对象方法学的要点 认为客观世界是由各种对象组成,任何事物都是对象,复杂的对象可由比较简单的对象以某种方式组合而成。 把所有对象划分成类(class),每个类都定义了一组数据和一组方法(method)。数据表示对象的静态属性(attribute),是对象的状态信息。方法是允许施加于该类对象上的操作,又称服务。 对象类组成层次结构的系统(又称为类等级)。处于下层的子类(派生类)可以继承(inherit)上层的父类(基类)的特性(包括数据和方法)。但如果在子类中对某些特性做了重新描述,在子类中这些特性将以新描述为准,即低层特性将屏蔽高层的同名特性。 对象彼此间仅能通过传递消息(message)互相联系。对象不同于传统的数据,不能从外界直接对它的私有数据进行操作;对象是进行处理的主体,必须必消息请求它执行它的某个操作(方法),处理它的私有数据。私有信息被封装(encapsulate)在对象类中,实现了信息隐藏。 面向对象的定义 OO=Object+Class+Inheritance+Communication with messages 面向对象=对象+类+继承+通信 可重用性好。传统方法学,数据和操作是分离的,具有功能内聚的模块就是理想的可重用模块。但即使功能内聚模块也并不是自含的和独立的。操作脱离了数据毫无意义,要重用模块,相应的数据也必须重用。如果数据不同,就要修改数据或模块。  在面向对象范型中,对象封装了数据和操作,因此有很强的自含性,此外,对象固有的封装性和信息隐藏机制,使对象内部实现与外界隔离,只通过接口与外界通信,具有较强的独立性。所以,对象是比较理想的模块和可重用的软件成分。  两种重用对象类方法:一是创建该类的实例,从而直接使用它,二是从对象类派生出一个满足当前需要的新类。 可维护性好。 稳定定好。 容易修改。 对象类的独立性好,修改一个类很少会影响软件其他类。 继承机制使得修改和扩充比较容易,只须派生新类,不用修改原有成分。 多态性机制使得功能扩充时所需的修改和新增代码进一步减少。 容易理解。  面向对象技术符合人们习惯的思维方式,容易理解。 易于测试和调试。  类是独立性强的模块,向类的实例发消息即可运行它,测试容易实现。如果发现错误也常常集中在类的内部,容易调试。 较易开发大型软件产品  面向对象范型中,每个对象有自己的数据、操作、功能和用途,象一个微型程序,因此,把一个大型软件产品分解成一系列本质上相互独立的小产品来处理,降低了开发的技术难度,管理也变得容易。 3 面向对象的软件工程方法 面向对象的软件工程方法是面向对象方法在软件工程的全面运用。 它包括面向对象的分析(OOA)、面向对象的设计(OOD)、面向对象的编程(OOP)、面向对象的的测试(OOT)和面向对象的的软件维护等主要内容。 面向对象技术模糊了各阶段间的过渡  OOA->OOD->OOP  整个开发过程都是吻合一致的,无缝接连。 喷泉模型是典型的面向对象的软件过程模型。 (1)OOA 由于面向对象的技术还比较新,目前存在许多种面向对象的分析和设计方法。 面向对象的分析(OOA)建立于以前的信息建模技术的基础之上,可以定义为是一种以从问题域词汇中发现的类和对象的概念来考察需求的分析方法。 OOA的结果是一系列从问题域导出的“黑箱”对象。 OOA通常使用“剧情(scenarios)”来帮助确定基本的对象行为。一个剧情是发生在问题域的一个连续的活动序列。 在对一个给定的问题域进行 OOA时,“框架”(Frameworks)的概念非常有用。框架是应用或应用子系统的骨架,包含一些具体或者抽象的类。或者说,框架是一个特定的层次结构,包含描述某一问题域的抽象父类。 当下流行的所有的OOA方法的一个缺点就是他们都缺乏一种固定的模式(formality)。 (2)OOD 在面向对象的设

文档评论(0)

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

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

1亿VIP精品文档

相关文档