几种典型面向对象方法简介共16页
- 格式:ppt
- 大小:1.93 MB
- 文档页数:16
第8章面向对象方法学导论哈尔滨理工大学荣成学院李胜利•结构化软件开发曾经给软件产业带来了巨大进步,部分地缓解了软件危机。
使用这种方法开发的许多中、小型软件项目大都获得了成功。
但是,把它应用于大型软件产品的开发时,却很少取得成功。
•在20世纪60年代后期出现了类和对象的概念;80年代中期起,逐步形成了面向对象方法学。
90年代,面向对象成为人们开发软件的首选方法。
总体上说,面向对象技术是当前最好的软件开发技术•面向对象方法学概述•面向对象方法学的主要优点•面向对象的概念•面向对象建模1. 面向对象方法学概述•面向对象方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是使描述问题的问题空间(问题域)与实现解法的解空间(求解域)在结构上尽可能一致。
•面向对象方法的要点:(1)客观世界是由各种对象组成的,任何事物都是对象,复杂的对象可以由比较简单的对象以某种方式组合而成。
面向对象方法使用对象分解取代了传统方法的功能分解。
(2)把所有对象都划分成各种对象类,每个对象类都定义了一组数据和一组方法。
数据表示对象的静态属性,是对象的状态信息。
类中定义的方法,是允许施加于该类对象上的操作,是该类所有对象共享的,并不需要为每个对象都复制操作的代码。
(3)按照子类(派生类)与父类(基类)的关系,把若干个对象类组成一个层次结构的系统(类等级)。
在这种层次结构中,通常下层的派生类继承上层基类的特性(数据和方法),但如果在派生类中对某些特性做了重新描述,则以新描述为准。
即低层的特性将屏蔽高层的同名特性。
(4)对象彼此之间仅能通过传递消息互相通信。
对象与传统的数据有本质的区别,它不是被动地等待外界对它施加操作,相反,它是进行处理的主体,必须发送消息请求它执行它的某个操作,处理它的私有数据,而不能从外界直接对它的私有数据进行操作。
也就是说,一切局部于该对象的私有信息,都被封装在对象的定义内,外界看不见,也不能直接操作。
第7章面向对象分析•7.1.1 面向对象分析过程面向对象的分析主要以用例模型为基础。
开发人员在收集到的原始需求的基础上,通过构建用例模型从而得到系统的需求。
进而再通过对用例模型的完善,使得需求得到改善。
所谓用例是指系统中的一个功能单元,可以描述为参与者与系统之间的一次交互。
用例常被用来收集用户的需求。
①首先要找到系统的操作者,即用例的参与者。
参与者是在系统之外,透过系统边界与系统进行有意义交互的任何事物。
②可以把参与者执行的每一个系统功能都看作一个用例。
可以说,用例描述了系统的功能,涉及系统为了实现一个功能目标而关联的参与者、对象和行为。
③确定了系统的所有用例之后,就可以开始识别目标系统中的对象和类了。
把具有相似属性和操作的对象定义为一个类。
边界类示意图控制类示意图目标系统的类可以划分为边界类、控制类和实体类。
Ø边界类代表了系统及其操参与者的边界,描述参与者与系统之间的交互。
它更加关注系统的职责,而不是实现职责的具体细节。
通常,界面控制类、系统和设备接口类都属于边界类。
Ø控制类代表了系统的逻辑控制,描述一个用例所具有的事件流的控制行为,实现对用例行为的封装。
通常,可以为每个用例定义一个控制类。
Ø实体类描述了系统中必须存储的信息及相关的行为,通常对应于现实世界中的事物。
确定了系统的类和对象之后,就可以分析类之间的关系了。
对象或类之间的关系有依赖、关联、聚合、组合、泛化和实现。
①依赖关系是“非结构化”的和短暂的关系,表明某个对象会影响另外一个对象的行为或服务。
②关联关系是“结构化”的关系,描述对象之间的连接。
③聚合关系和组合关系是特殊的关联关系,它们强调整体和部分之间的从属性,组合是聚合的一种形式,组合关系对应的整体和部分具有很强的归属关系和一致的生命期。
比如,计算机和显示器就属于聚合关系。
④泛化关系与类间的继承类似。
⑤实现关系是针对类与接口的关系。
明确了对象、类和类之间的层次关系之后,需要进一步识别出对象之间的动态交互行为,即系统响应外部事件或操作的工作过程。
专题七:软件工程专题1、软件工程知识1.1概述软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件问题的工程。
其目的是提高软件生产率、提高软件质量、减低软件成本。
软件工程是1968年在德国的NATO会议上提出的,希望用工程化的原则和方法来克服软件危机;而软件危机就是软件开发和维护过程中的各种问题,由于软件开发阶段缺乏好的方法的指导和好的工具的辅助,而且缺少有关的文档,使得大量的软件难以维护。
软件生命周期是指由软件定义、软件开发和软件维护等阶段组成的全过程,反映软件生存期内各种工作得组织以及各个阶段如何衔接。
下表归纳了软件生存周期各个阶段的任务、参与人员和产生文档。
化、实现功能的扩充和质告量的改善而修改软件软件由计算机程序、数据及文档组成,同时与硬件、数据库人、过程等共同构成计算机系统。
软件工程包括三个要素:方法、工具和过程。
主要的软件开发方法有以下几种方法:生命周期法:命周期法认为:每一个软件系统都有一定的生命周期。
软件的生命周期是指一个软件系统从其提出、调查到分析、设计和有效使用,直至被淘汰或取代的整个期间。
软件生命周期法就是按软件生命周期的各个阶段划分任务,按一定的规则和步骤,有效地进行软件开发的方法。
通常一个软件系统的生命周期可分为五个阶段:准备阶段、分析阶段、设计阶段、实施阶段、运行与维护阶段原型法:原型法是先根据用户的最主要要求,开发出能实现系统最基本功能的一个原型,再根据用户对原型使用与评价的意见,反复修改完善原型,直到等到用户满意的最终系统为止。
原型法分4个阶段:确定用户需求;设计原型;使用、评价原型;修改、完善原型。
1.2软件分析软件开发模型:瀑布模型;演化模型(原型法);螺旋模型;喷泉模型(迭代和无间隙);软件成本模型;可行性分析的任务是从技术上、经济上、使用上、法律上分析需解决的问题是否存在可行的解。
需求分析是软件生存周期中相当重要的一个阶段。
需求分析主要是确定待开发软件的功能、性能、数据、界面等要求。
面向对象的典型方法
1. 封装啊,这就好比你有个百宝箱,把你的宝贝都好好地装起来,藏住细节,只露出该露的接口。
就像一个手机,你只需要知道怎么操作那些按钮,而不用管它里面的复杂电路是怎么运作的嘛!
2. 继承可太重要啦!就好像家族传承一样,长辈把好的东西传给晚辈,晚辈就能在此基础上继续发展。
比如说动物界,小狮子继承了狮子家族的强大基因,然后慢慢成长变得更强呀!
3. 多态可神奇咯!它就像一个超级变变变的魔法,同一个东西在不同情况下可以有不同的表现呢。
就像有个演员,在不同的戏里能扮演各种不同的角色,展现出多样的魅力!
4. 抽象呢,就如同在云雾中寻找轮廓,把复杂的现实简化成关键的概念。
比如画画,先勾勒出大致的形状,抓住事物最本质的特征,你说是不是很牛!
5. 对象间的消息传递,哇哦,这就好像人们之间的交流沟通呀!你喊我一声,我回应你一下。
在程序里,对象之间通过传递消息来协同工作,就像我们平时互相说话办事一样有趣诶!
6. 关联也不容忽视呀!这就好像人和人之间的各种关系,朋友啦、家人啦。
比如说一个班级里的同学,他们相互关联,一起学习成长,多有意思呀!
我的观点结论就是:面向对象的这些典型方法真的是太神奇、太重要啦!它们让编程变得更简单、更有趣、也更强大了呢!。