《软件工程-第10章第3节.pptx

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

10.3面向对象的设计面向对象的设计是面向对象方法在软件设计阶段应用与扩展的结果。面向对象的系统中,模块、数据结构及接口等都集中地体现在类和类层次结构中。系统开发的全过程都与类层次结构直接相关,是面向对象系统的基础和核心。在面向对象系统中,虽然可用类层次结构来统一作为各个开发阶段的工作对象,但仍然有必要在抽象程度和层次上加以明确的区分,以提高系统开发的效率。从这个意义上说,围绕着类和类层次结构,面向对象的开发各阶段承担不同层次的任务。面向对象的分析通过对象的认定,确定问题空间中应当存在的类和类层次结构;面向对象的设计通过类的认定和类层次结构的组织,确定解空间中应存在的类和类层次结构,并确定外部接口和主要的数据结构。

10.3.1面向对象设计的目标1.提高生产率面向对象的设计是一种系统设计活动,它能减少测试时间,但在系统开发过程中,使用面向对象设计最多可使整个生产率提高20%左右。另一种看法是,使用面向对象设计能提高整个生命周期的效率,大多数项目表明系统的开销有70%、80%使用在维护阶段。因此,强调维护将大大提高整个生产率。面向对象设计使用了重用类机制来改进效率,重用类是用包含类及子类层次的类库实现的,类库是这种结构的主要组成部分。

10.3.1面向对象设计的目标2.提高质量强调生产率的同时,不能忽视软件质量。改进质量的工具、技术及方法有许多,它们大多与开发过程末期的标准或过细的产品测试有关,而不强调过程本身。产生高质量产品的开发过程,特别是分析过程和设计过程,能够大大减少开发后期发现的错误,并大大提高系统的质量。

10.3.1面向对象设计的目标2.数据存储条目数据存储条目是对数据存储的定义,主要内容及举例如下:数据存储名称:库存记录别名:无简述:存放库存所有可供货物的信息组成:货物名称?+?编号?+?生产厂家?+?单价?+?库存量组织方式:索引文件,以货物编号为关键字查询要求:要求能立即查询

10.3.1面向对象设计的目标3.提高可维护性系统的需求总是在变化中,有许多影响需求的因素,如用户、环境、政策及技术等。设计者尽可能构造这样一种有利于将来修改的设计,方法是将系统中稳定部分与易变部分分离开来。系统中最稳定的是类,它严格描述了问题域及系统在该域中的任务。系统中可变的是服务,服务的复杂程度也是变化的,外部接口也是最可能变化的部分。

10.3.2设计问题域组元1.原因面向对象方法中的一个主要目标就是保持问题域组织框架的完整性,使用这种方法可以直接追踪分析、设计直至程序设计的内容,因为这三个阶段都是根据问题域本身来实现的。设计问题域组元的理由就是为了寻求稳定性,无论何种修改,例如增加具体类、增加属性或服务等,都是建立在问题域基础上的。稳定性是实现可重用的分析、设计及程序设计的关键因素,为了更好地支持系统的扩充性也需要稳定性。

10.3.2设计问题域组元2.内容在面向对象的开发方法中,分析和设计不能截然分开,面向对象的分析结果就是面向对象设计多元组模型的一个完整的部分,但面向对象的设计可以修改或增加一些内容。对于设计问题组元来说,要在分析模型的基础上增加一些实际的修改,这些修改是针对具体的设计考虑的,修改包含合并或分解类对象、结构、属性、服务等。这些修改应建立在具体的客观标准上。

10.3.2设计问题域组元3.策略在设计问题域组元时,可采用下列策略:(1)应用面向对象的分析,使用相同的符号表示,围绕四种组元组织。(2)改进面向对象的分析结果,可直接应用分析的结果。(3)完善面向对象的分析结果,必须加入一些常规类以完善分析的内容。

10.3.2设计问题域组元4.方法1)利用重用设计加入现有类现有类是指面向对象程序设计语言提供的类库中的类,将所需的类加入到问题域组元中,同时指出现有类不用的属性和服务,使无用的属性和服务减少到最低程度。还要指出问题域中不再需要的部分,以及从现有类中继承而来的属性和服务。紧接着修改问题域的结构和关联,必要时将它们加入到现有类中。

10.3.2设计问题域组元2)将专门的问题域类组合在一起需要引入一个类将专门的问题域类组合在一起,引入的类即为“根”类,组合在一起的问题域类作为从属的类。引入“根”类主要是为了将专门的问题域类组合在一个类库中,这只是当不能使用更复杂的组合机制时才采用的一种组合方法。另外,还可建立协议来完成这种组合。

10.3.2设计问题域组元3)加入一般化类(抽象类)以建立协议在许多情况下,大量的具体类需要相似的一个协议,即需要定义一个相似的服务集合,这时可引入一个附加的抽象类,目的是建立一个协议。这些服务在具体类中详细定义。4)调整继承

文档评论(0)

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

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

1亿VIP精品文档

相关文档