Section1UML面向对象技术概述.ppt_第1页
Section1UML面向对象技术概述.ppt_第2页
Section1UML面向对象技术概述.ppt_第3页
Section1UML面向对象技术概述.ppt_第4页
Section1UML面向对象技术概述.ppt_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,面向对象技术概述,2,软件危机,于20世纪60年代爆发 产生:大型软件的开发过程中出现了复杂程度高、研制周期长、正确性难以保证的三大难题。 表现形式:用户需求不明确、变更过多;软件成本日益增长;开发进度难以控制;软件质量差;软件维护困难。 产生的原因:软件开发无计划性;软件需求不充分;软件开发过程无规范;软件产品无评测手段。 解决途径:应该加强软件开发过程的管理;推广使用开发软件的成功技术与方法;开发和使用好的软件工具。,软件危机与软件工程,3,软件工程,由NATO于1968年提出 发展:软件的需求是软件发展的动力;软件工作的范围从只考虑程序的编写扩展到涉及整个软件生存周期。 软件生存周期一般可划分为计划、开发、运行与维护三个时期,而每个时期又划分为若干个阶段。 软件开发的现状 软件工程学科不断发展 软件危机仍然存在 中小型软件开发较为成熟,大型软件存在问题,软件危机与软件工程,4,常见软件开发方法 瀑布模型 快速原型 螺旋模型 ,软件危机与软件工程,先做试验开发“原型” ,其目标只是在于探索可行性,弄清软件需求;然后在此基础上获得较为满意的软件产品。,5,软件开发的基本认识,大型软件系统的特点 开发代价高、时间长,参与人员多,软件生命周期长。 软件系统开发的两个方面 软件开发过程 软件开发中资源的协调和管理 软件工程的目的 在规定的时间、规定的费用内开发出满足用户需求的高质量的软件系统。 低错误率、好用、易用、可维护、可重用、可移植等,6,软件开发的基本认识,软件产品与硬件产品的区别 表现形式不同 生产方式不同 产品需求不同 维护方式不同,7,软件固有的复杂性,软件开发的复杂性与困难性是由于软件的特点造成的,软件的复杂性是固有的。 软件复杂性的原因 现有硬件系统的体系结构造成的 软件开发是智力活动,很难描述软件的本质规律或特征 软件系统中各元素之间的相互作用关系具有不确定性 软件系统需求的变化性 软件生命周期中需要适应不同的硬件环境,8,控制软件复杂性的基本方法,分解,即“分而治之”或“各个击破” 抽象,抽取系统本质特征,忽略非基本特征 过程抽象 数据抽象 模块化,基本要求是高内聚、低耦合 信息隐蔽,也称封装,9,结构化的基本思想 以过程抽象对待系统的需求,其主要思想是对问题进行功能分解,直到最后分解得到的功能比较方便地处理和理解为止。 Object-Oriented的基本思想 对问题域进行自然分割,以更接近人类思维的方式建立问题域模型,从而使设计出的软件尽可能直接地描述现实世界,具有更好的可维护性,能适应用户需求的变化。,面向对象技术,10,结构化方法,面向对象的方法,问题域,问题域,结构化分析,分析与设计的鸿沟,结构化设计,结构化编程,如C语言,需求工程,OOA&D,OOP,如Java语言,测 试,计算机系统,测 试,计算机系统,自然语言,编程语言,自然语言,OO编程语言,数据流图 数据字典,模块和过程,需求模型,对象模型,OO方法,OO建模语言,面向对象 VS 结构化,11,面向对象 VS 结构化,12,面向对象技术的优点,易于理解 顺应人类思维习惯,让软件开发人员直接模拟问题空间中的对象及其行为,AHare.Run; ALion.Catch(AHare); ALion.Kill(AHare); AHare.Dead; ALion.Eat; ALion.Happy;,在计算机中模拟现实世界的事和物,13,面向对象技术的优点,稳定性较高、适应性好 较小的需求变化不会导致系统结构大的改变 当需求变化时,功能:最易变 数据:较易变 对象:较稳定,稳定性增加,用较稳定把不稳定的包起来,14,面向对象技术的优点,可靠性较高 灵活性好 可复用 ,15,面向对象领域的基本概念,OO技术领域存在一些基本术语和概念,需要掌握和理解。 面向对象技术的基本观点: 客观世界由对象组成,任何客观实体都是对象,复杂对象可以由简单对象组成。 具有相同数据和操作的对象可归纳成类,对象是类的一个实例。 类可以派生出子类,子类除了继承父类的全部特性外还可以有自己的特性。 对象之间的联系通过消息传递来维系。,16,对象和实例,对象(Object) 它是系统用来描述客观事物的一个实体,是构成系统的一个基本单位。 对象包括:属性和方法 对象之间通过消息进行通信。 实例(Instance) 它与对象的概念很类型,但其含义更广泛一些。,17,类,类(Class) 它是具有相同属性和方法的一组对象的集合 为某类对象提供统一的描述 类是静态概念,18,封装,封装(Encapsulation) 就是把对象的属性和方法结合成一个独立的系统单位,并尽可能隐蔽对象的内部细节。 封装(类定义)使对象形成两个部分:接口部分和实现部分。 封装提供2种保护 保护对象,防止直接访问对象内部细节。 保护客户,防止对象实现部分的变化影响客户对象。,19,继承,继承(Inheritance) 它使子类可以继承父类的属性和方法 继承增加了软件重用的机会 继承中的覆盖 覆盖(Override)与重载(Overload)的区别 单继承与多继承,20,public class A String name; public String getValues() return “Value is:” +name; public class B extends A String address; public String getValues() return “Value is:”+address; ,public class A int age; String name; public void setValue (int i) age = i; public void setValue (String s) name = s; ,Override与Overload,21,继承,继承(Inheritance) 它使子类可以继承父类的属性和方法 继承增加了软件重用的机会 继承中的覆盖 覆盖(Override)与重载(Overload)的区别 单继承与多继承,22,单继承,多继承,23,多态,多态(polymorphism) 在OO技术中,多态指使一个实体在不同上下文条件下具有不同意义或用法的能力 类型 编译时的多态性(overload) 运行时的多态性 实现方式 继承 接口 ,24,消息,消息(Message) 是指向对象发出的服务请求 包括:提供服务的对象的标识、服务标识、输入信息和回答信息等 对象间的消息传递是OO方法的基本原则 消息包括 同步消息,请求者需要等待响应者返回 异步消息,请求者不需要等待响应者返回,发出消息

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论