软件工程-8UML概述课件.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
主要内容 面向对象技术概述 UML概述 相关知识 软件工程的目的就是在规定的时间、规定的开发费用内开发出满足用户需求的高质量的软件系统。 (高质量不只是指错误率低,还包括好用、易用、可移植、易维护等。) 软件的固有复杂性: 著名的计算机专家、被称之为IBM 360系列计算机之父的F. Brooks认为软件的复杂性是固有的,软件可能是人类所能制造出来的最复杂的实体。 (F. Brooks, No Silver Bullet: Essence and Accidents of Software Engineering, Computer, April 1987, pp.10-19 ) 软件固有复杂性的影响 软件固有复杂性使得开发成员之间的通讯变得困难,开发费用超支、开发时间延期等;也导致产品有缺陷、不易理解、不可靠、难以使用、功能难以扩充等。 软件的复杂性是固有的,即不能采用某种方法彻底消除软件的复杂性,因此软件危机只能是通过控制复杂性的方法解决。 控制软件复杂性的基本方法 分解 对复杂系统采用“各个击破”的策略 抽象 抽取系统中的基本特性而忽略非基本的部分 模块化 高内聚(cohesion),低耦合(coupling) 高内聚指的是在一个模块中应尽量多地汇集逻辑上相关的计算资源;低耦合指的是模块之间的相互作用应尽量少。 信息隐蔽 也称封装。 模块内部的实现细节与外界隔离。 面向对象(Object-oriented)技术 面向对象技术充分体现了分解,抽象,模块化,信息隐蔽等思想,可以有效地 提高软件生产率 缩短软件开发时间 提高质量 A Brief History of OO Technology 1967: Simula programming language 1970’s: Smalltalk programming language 1980’s: Theoretical foundations, C++, Objective-C, etc. 1990’s: Object-oriented analysis and design methodologies (Booch, OMT, OOSE, etc.), Java 1997: The Unified Modeling Language (UML) standardized by the Object Management Group (OMG) 面向对象技术的优势 稳定: 较小的需求变化不会导致系统结构大的改变。 易于理解:面向对象的模型更加贴切地反映了现实世界,尤其对于使用者。 面向对象的方法有助于开发大型软件系统。 具有更高的可靠性和灵活性。 …… 问题:和传统方法相比,OO方法为什么会具有这些优势? 面向对象领域中的一些常用术语 Object 对象 ( Instance 实例) Class 类 Attribute 属性 Operation 操作 (Method 方法) 对象(Object) 对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组方法组成。 说明: 对象只描述客观事物本质的、与系统目标有关的特征,而不考虑那些非本质的、与系统目标无关的特征。 在软件生命周期的不同阶段,对象可以有不同的表现形式。 如在OOA/OOD阶段对象是用某种表示法给出的比较粗略的定义,而在OOP阶段对象是比较详细的源程序代码。 对象之间通过消息通信。 一个对象通过向另一个对象发送消息激活某一个功能。 在不是纯面向对象语言中允许有不属于任何对象的成分存在,例如C++程序中的main函数。 “实例”(instance)和“对象”的关系 类(Class) 类是具有相同属性和方法的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和方法两个主要部分。 说明 同类对象具有相同的属性和方法,是指它们的定义形式相同,而不是说每个对象的属性值都相同。 类是静态的;类的存在、语义和关系在程序执行前就已经定义好了。 对象是动态的; 对象在程序执行时可以被创建和删除。 类的示例 封装(Encapsulation) 封装就是把对象的属性和方法结合成一个独立的系统单位,并尽可能隐蔽对象的内部细节。 说明: 封装就是使一个对象形成两个部分: 接口和实现,对于用户来说,接口是可见的,实现是不可见的。 封装提供两种保护 1. 保护对象:防止被用户误用。 2. 保护客户端:封装能减小实现过程改变的副作用,即实现过程的的改变不会影响到相应客户端的改变。 继承(Inheritance) 特殊类的对象拥有其一般类的全部属性与方法,称作特殊类对一般类的继承。 (

文档评论(0)

phljianjian + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档