




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章面向对象方法学引论
尽管传统的软件工程方法给部分地缓解了软件危机,给软件产业带来了巨大进步,开发中、小规模的软件获得了成功。但是传统的软件工程方法并不适用于所有类型的软件开发。20世纪80年代中期起,开始注重面向对象技术的研究,到了20世纪90年代,面向对象方法成为人们在开发软件时的重要方法之一。
本章学习要点:了解面向对象方法学基本知识了解面向对象基本概念了解面向对象模型建立掌握建立系统对象模型掌握建立系统功能模型掌握建立系统动态模型
一、面向对象方法学概述1.传统方法的缺点结构化分析方法:面向功能 软件结构严重依赖于功能,而功能是软件开发中最不稳定的因素。数据和操作相分离
①
软件重用性差重用性指同一事物不经修改或稍加修改就可多次重复使用的性质。结构化分析、设计和结构化程序开发,虽然一定程序上提高了开发效率,但却没能很好地解决软件重用问题。同类型项目,如果需求发生一些变化,都要从头开始,原有的系统很难重用。
②软件可维护性差软件工程强调软件可维护性,强调文档资料的重要性,规定最终的软件产品应该由完整、一致的文档成分组成。开发过程中,始终强调软件的可读性、可修改性和可测试性是软件的重要质量指标。但实践表明,即使是用生命周期方法学开发出的软件,维护起来仍然相当困难,软件维护成本仍然很高。③软件生产率提高的幅度远不能满足需要传统软件工程方法提高许多软件的开发效率,但提高的幅度仍然很有限,远远赶不上市场对软件产品的需要。
④开发出的软件不能满足用户需要用传统软件工程方法在开发需求模糊或需求动态变化的系统时,开发出的软件系统往往不能真正完全满足用户的需要。主要有以下两种表现:一种是开发人员不能完全获得或不能彻底理解用户的需求,以致开发出的软件系统与用户预期的系统不一致,不能满足用户的需要;另一种表现是,所开发出的系统不能适应用户需求的经常变化,系统的稳定性和可扩充性不能适应变化。
2.面向对象开发方法OOSD
(Object-OrientedSoftwareDevelopment)是一种把面向对象的思想应用于软件开发过程,指导开发活动的系统方法。面向对象=对象(objects)+类(classes)+继承(inheritance)+通信
(communicationwithmessages)
3.面向对象方法的要点认为客观世界是由各种对象组成的,任何事物都是对象。
把所有对象都划分成各种对象类(简称为类,class),每个对象类都定义了一组数据和一组方法。
按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个对象类组成一个层次结构的系统(也称为类等级)。
对象彼此之间仅能通过传递消息互相联系。
4.面向对象方法组成
OOSD由三部分组成:
OOA(Object-OrientedAnalysis)面向对象的分析
OOD(Object-OrientedDesign)面向对象的设计
OOP(Object-OrientedProgram)面向对象的程序设计OOA强调的是对一个系统中的对象特征和行为的定义。建立系统的三类模型。OOD与OOA密切配合,实现对现实世界的进一步建模。OOP是面向对象的技术中发展最快的,使用面向对象的程序设计语言,进行编码。
5.面向对象开发过程需求分析设计实现测试OO方法的步骤
需求分析设计实现测试
获取需求,建立需求模型。分析的典型活动:
1、获取领域知识;2、定义系统功能(用例图);
3、确定合适的类;
4、建立类的静态模型(类图);
5、描述对象的动态行为(状态图、协作图、时序图、活动图);
6、验证(专家对模型作静态验证);
7、给出基本的用户界面原型(整体结构的原型:主窗口的内容、窗口之间的导航等)。
需求分析设计实现测试
设计是分析结果在技术上的扩充和修改,重点是如何实现该系统。设计中的典型活动:1、将分析所得的类划分为功能包,并从技术层面(用户界面、数据库处理、通信等)增加新包,建立包之间的通信联系。2、标识并发需求并建模。3、指出系统输出的详细格式:如用户界面,报告,向其它系统发送的事务等。4、数据管理(建立类与表单的对应关系,对数据库的访问机制)。5、异常处理6、分配类和构件(构件图、配置图)。
需求分析设计实现测试
实现活动实际上就是编写程序代码,包括反复的编译、连结、排错等。
6.面向对象方法的优点与人类习惯的思维方式一致稳定性好可重用性好可维护性好
二、面向对象的概念对象类实例消息方法属性封装继承多态性
1.对象是客观事物或概念的抽象表述,即对客观存在的事物的描述统称为对象对象可以是事、物、或抽象概念,是将一组数据和使用该数据的一组基本操作或过程封装在一起的实体。
2.类类又称对象类(ObjectClass),是一组具有相同属性和相同操作的对象的集合。在一个类中,每个对象都是类的实例(instance),它们都可以使用类中提供的函数。Circle类
3.实例实例就是由某个特定的类所描述的一个具体的对象。类是对具有相同属性和行为的一组相似的对象的抽象,类在现实世界中并不能真正存在。
4.消息消息就是向对象发出的服务请求(互相联系、协同工作等)。一个消息包含3个部分:接收消息的对象,消息名,消息变元。例如:MyCircle是Circle类的一个实例,发送消息如下:
MyCircle.show(GREEN);
5.方法方法就是对象所能执行的操作,也就是类中所定义的服务。方法描述了对象执行操作的算法,响应消息的方法。在C++语言中把方法称为成员函数。6.属性属性就是类中所定义的数据,它是对客观世界实体所具有的性质的抽象。
7.封装对象封装了对象的数据以及对这些数据的操作。课程(设计)课程名课程号创建日期上课学期学分添加课程()删除课程()修改课程信息()教师(设计)职称教工号姓名性别授课信息:对象集合入校()离校()接受课程()解除课程()增加()删除()修改信息()
8.继承继承是指能够直接获得已有的性质和特征,而不必重复定义它们。在面向对象的软件技术中,继承是子类自动地共享基类中定义的数据和方法的机制。单重继承:子类仅从一个父类继承属性和方法多重继承:子类可从多个父类继承属性和方法
9.多态性在类等级的不同层次中可以共享(公用)一个行为(方法)的名字,然而不同层次中的每个类却各自按自己的需要来实现这个行为。当对象接收到发送给它的消息时,根据该对象所属于的类动态选用在该类中定义的实现算法
三、面向对象建模面向对象方法最基本的原则,是按照人们习惯的思维方式,用面向对象观点建立问题域的模型,开发出尽可能自然地表现求解方法的软件。
面向对象开发软件,需要建立3种形式的模型。对象模型。描述系统数据结构—数据结构。动态模型。描述系统控制结构—执行操作。功能模型。描述系统功能—数值变化。这三种模型从不同侧面描述了对系统的需求。在面向对象的分析(OOA)阶段,这三种模型是必不可少的。
四、对象模型对象模型描述了系统的静态结构。OO方法强调围绕对象而不是功能来构造系统。使用统一建模语言UML(UnifiedModelingLanguage)提供的类图来建立对象模型。
1.类图的基本符号
2.表示关系的符号类与类之间关系有:关联聚集泛化(继承)依赖细化
(1)关联
关联表示两个类的对象之间存在某种语义上的联系。①普通关联
在表示关联的直线两端可以写上重数(multiplicity),它表示该类有多少个对象与对方的一个对象连接。重数的表示方法通常有:0…1 表示0到1个对象0…*或* 表示0到多个对象1+或1…* 表示1到多个对象1…15 表示1到15个对象3 表示3个对象如果图中未明确标出关联的重数,则默认重数是1。
②关联的角色在任何关联中都会涉及到参与此关联的对象所扮演的角色(即起的作用),在某些情况下显式标明角色名有助于别人理解类图。如果没有显式标出角色名,则意味着用类名作为角色名。递归关联(Recursiveassociation)一个类与本身有关联关系
③限定关联限定关联通常用在一对多或多对多的关联关系中,可以把模型中的重数从一对多变成一对一,或从多对多简化成多对一。在类图中把限定词放在关联关系末端的一个小方框内。
④关联类为了说明关联的性质可能需要一些附加信息。可以引入一个关联类来记录这些信息。关联中的每个连接与关联类的一个对象相联系。关联类通过一条虚线与关联连接。
2.聚集
聚集是一种特殊的关联,它指出类间的“整体-部分”关系。(1)共享聚集如果在聚集关系中处于部分方的对象可同时参与多个处于整体方对象的构成,则该聚集称为共享聚集。
(2)组合聚集如果部分类完全隶属于整体类,部分与整体共存,整体不存在了部分也会随之消失,则该聚集称为组合聚集。
3.泛化
UML中的泛化关系就是通常所说的继承关系。(1)普通泛化附加标记注释普通泛化
(2)受限泛化可以给泛化关系附加约束条件,以进一步说明该泛化关系的使用方法或扩充方法,这样的泛化关系称为受限泛化。预定义的约束有4种:多重、不相交、完全和不完全。下图:多重继承
完全继承指的是父类的所有子类都已在类图中穷举出来了,图示符号是指定{完全}约束。不完全继承与完全继承恰好相反,父类的子类并没有都穷举出来,不完全继承是一般情况下默认的继承关系。{complete}人女人男人性别
图9.13复杂类图示例组合聚集组合聚集抽象类组合聚集抽象操作泛化具体实现
4.依赖
依赖关系表示:其中一个模型元素是独立的,另一个模型元素不是独立的,它依赖于独立的模型元素,如果独立的模型元素改变了,将影响依赖于它的模型元素。
5.细化
当对同一个事物在不同抽象层次上描述时,这些描述之间具有细化关系。假设两个模型元素A和B描述同一个事物,它们的区别是抽象层次不同,如果B是在A的基础上的更详细的描述,则称B细化了A,或称A细化成了B。注意是虚线,实线就成了泛化
实例分析现有一医院病房监护系统,病症监视器安置在每个病房,将病人的病症信号实时传送到中央监视系统进行分析处理。在中心值班室里,值班护士使用中央监视系统对病员的情况进行监控,根据医生的要求随时打印病人的病情报告,定期更新病历,当病症出现异常时,系统会立即自动报警,并实时打印病人的病情报告,立及更新病历。建立相应的对象模型,用类图表示。
医生
用户名密码查看病情报告()要求打印病情报告()查看病历()要求打印病历()病人
姓名性别年龄病症提供病症信号()用户名密码查看病情报告()打印病情报告()值班护士
病症监视采集频率病症信号格式化信号数据()采集信号()信号组合()首先给出类的名称及相应的属性和方法
报警信号
声音灯光文字报警()数模转化()病历库类型大小容量生成病历()更新病历()查看病历()打印病历()类型大小容量提供标准信号()标准病症信号库
输入输出分解信号()比较信号()报警()数据格式化()中央监护系统
病人病症信号
脉搏血压体温生成病症信号()病历格式病人基本情况打印时间生成病历()查看病历()打印病历()
标准病症信号脉搏血压体温生成标准信号()标题格式生成病情报告()查看病情报告()打印病情报告()病情报告
*******1111111111111111
值班护士
医生
病人
病症监视病人病症信号
病历病历库病情报告报警信号
中央监护系统
标准病症信号标准病症信号库
111报警监视
动态模型描述系统控制结构。通常用状态图表示。五、动态模型下降状态在第一层上升状态向第一层下降空闲状态上升到达到达上升超时下降到达第一层
功能模型表示变化的系统的“功能”性质,它指明了系统应该“做什么”,通常,功能模型由一组数据流图组成。UML提供的用例图也是进行需求分析和建立功能模型的强有力工具。六、功能模型
用例图包含的模型元素有系统、行为者、用例及用例之间的关系。1.用例图系统被看作是一个提供用例的黑盒子,内部如何工作、用例如何实现,这些对于建立用例模型来说都是不重要的。一个用例是可以被行为者感受到的、系统的一个完整的功能。在UML中把用例定义成系统完成的一系列动作,动作的结果能被特定的行为者察觉到行为者是指与系统交互的人或其他系统,它代表外部实体。使用用例并且与系统交互的任何人或物都是行为者。行为者代表一种角色,而不是某个具体的人或物。
用例之间的关系(1)扩展关系向一个用例中添加一些动作后构成了另一个用例,这两个用例之间的关系就是扩展关系,后者继承前者的一些行为,通常把后者称为扩展用例。
图9.17含扩展和使用关系的用例图
(2)使用关系当一个用例使用另一个用例时,这两个用例之间就构成了使用关系。一般说来,如果在若干个用例中有某些相同的动作,则可以把这些相同的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年秘书证重要信息试题及答案
- 2024年税务师应试准备试题及答案
- 2024年档案管理员考试知识梳理试题及答案
- 强化应试能力的途径:记者证考试试题及答案
- 如何游刃有余地备战 收纳师考试试题及答案
- 2024年复习中应注意的细节试题及答案
- 提高食品安全意识的试题及答案
- 2024年食品安全员考试前沿问题试题与答案
- 复变函数复习考卷及其答案 好
- 2024年统计师考试攻略与技巧试题及答案
- 掌握重点中职电子商务教师资格证试题与答案
- 5.3基本经济制度 课件 2024-2025学年统编版道德与法治八年级下册
- 河南省郑州市管城区2024-2025学年级九年级下学期第一次模拟数学试题(原卷版+解析版)
- 隔音涂料施工方案
- 甘肃卷2024年高考真题化学试题(含答案)
- T-CCTAS 61-2023 桥梁承重缆索抗火密封综合防护技术规程
- 消防员职业技能鉴定中级技能题库大全
- 铁路行车组织 课件 项目4 调车工作
- 2024年浙江邮电职业技术学院高职单招职业技能测验历年参考题库(频考版)含答案解析
- (一模)2024-2025学年佛山市普通高中教学质量检测(一)数学试卷(含答案)
- 招标代理机构选取突发情况应急处理预案
评论
0/150
提交评论