![面向对象软件开发_第1页](http://file4.renrendoc.com/view/59c553290839c593cee6094ffdb32a03/59c553290839c593cee6094ffdb32a031.gif)
![面向对象软件开发_第2页](http://file4.renrendoc.com/view/59c553290839c593cee6094ffdb32a03/59c553290839c593cee6094ffdb32a032.gif)
![面向对象软件开发_第3页](http://file4.renrendoc.com/view/59c553290839c593cee6094ffdb32a03/59c553290839c593cee6094ffdb32a033.gif)
![面向对象软件开发_第4页](http://file4.renrendoc.com/view/59c553290839c593cee6094ffdb32a03/59c553290839c593cee6094ffdb32a034.gif)
![面向对象软件开发_第5页](http://file4.renrendoc.com/view/59c553290839c593cee6094ffdb32a03/59c553290839c593cee6094ffdb32a035.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、面向对象软件开发面向对象技术是一个有全新概念的开发模式,其特点是: 方法是对软件开发过程所有阶段进行综合考虑而得到的;从生存期的一个阶段到下一个阶段所使用的方法与技术具有高度的连续性;将OOA、OOD、OOP集成到生存期的相应阶段。1面向对象软件开发 面向对象的分析:建立应用领域的面向对象模型,识别出的对象反映了与待解决问题相关的一些实体及操作。面向对象的设计:建立软件系统的面向对象模型,这个软件系统能实现识别出的需求。在面向对象设计的对象与要解决问题的答案是关联的。虽然两者存在密切的关系,但设计者有时不得不通过增加新的对象和转换问题对象的方法来实现答案。面向对象的程序设计:使用面向对象的成语
2、设计语言来实现软件设计。面向对象的程序语言支持对象的直接实现和提供设施来定义对象。2面向对象分析 OOA面向对象分析方法确实不同于结构化分析方法吗?Fichman and Kemerer 在“Object-oriented Conventional Analysis and Design Methodologies” 中阐述:我们的结论是面向对象分析方法表现了相对面向过程的方法学(如结构化分析)的根本性变化,而且相对面向数据的方法学仅仅是增量性的变化。面向过程的方法学在建模过程中的关注点不是对象的内在性质,从而导致了和面向对象的三个基本原理相正交的问题域模型。3OOAOOA方法使得软件工程师能
3、够定义待解决问题的类和对象,类之间的相互关联的方式,对象的内部结构(属性和操作),以及允许对象在一起工作的通信机制(消息)来对问题域进行建模。OOA的目标是开发一些列的模型,这些模型描述软件系统,以满足用户需求。与结构化分析方法的目标是一致的。4OOA建立分析模型5个基本原则:(1)建模信息域;(2)描述模块功能;(3)表示模型行为;(4)分解数据、功能和行为模型 以表示更多细节;(5)早期模型表示问题的本质, 而后期模型提供 实现细节。5OOAOOA的意图是提供系统的精确、简明、易理解的面向对象模型,也就是“蓝图”自动化。为了达到这个目标,必须完成以下任务: 1. 必须在客户和软件工程师之间
4、沟通, 了解基本的用户需求; 2. 必须标识类(定义属性和方法); 3. 必须刻划类的层次结构; 4. 表示对象与对象关系(关联); 5. 必须建模对象行为; 6. 任务1到5迭代反复使用,直至完成建模。6OOA建模方法建模方法过程标记工具 过程:说明如何收集需求并确定要建模的提炼。 标记:用于交流模型的一种图形“语言”。 工具:使标记工作自动化, 一般使用“Drag and Draw”方式。 过程是最重要的,然后是标记,工具是三者中重要性最低的。7流行的几种建模方法Booch方法Coad-Yourdon方法James Rumbaugh方法 (Object Modeling Technolog
5、y, OMT) Jacobson方法(简称OOSE)ESA的HOOD方法Wirfs-Brook的RDD方法由Rumbaugh, Booch, Jacobson 提出的统一建模语言(Unify Modeling Language, UML)8Booch方法Booch方法包含微开发过程和宏开发过程。微级别定义一组分析任务在宏过程中的每个步骤中被反复应用。其宏过程包括:标识类和对象标识类和对象的语义标识类和对象间的关系进行精化9Jacobson方法Jacobson方法提出面向对象的软件工程OOSE,强调use case,描述用户和产品或系统之间如何交互的场景scenario.10Coad/Yourd
6、on方法Coad/Yourdon的OOA过程概述:使用“寻找什么”标准来标识对象定义一般/特殊结构定义整体/部分结构标识主题(子系统构件的表示)定义属性定义服务 11Rumbaugh方法 (OMT)Rumbaugh的OOA过程概述:开发对问题的范围陈述建造对象模型开发动态模型构造系统的功能模型12统一的OOA方法Rumbaugh, Booch, Jacobson提出的统一建模语言(Unify Modeling Language, UML)。UML是一种定义良好,易于表达,功能强大且普遍实用的建模语言。 13OOA建模不同面向对象分析方法的相似步骤:(1)获取系统的用户需求;(2)标识场景sce
7、nario或用例usecase;(3)使用基本需求作为指南,选择类和对象;(4)为对象定义属性和操作;(5)定义类的结构和层次;(6)建造对象-关系模型;(7)建造对象-行为模型;(8)根据usecase来评审OOA模型。14构造OOA概念模型的层次构造和评审OOA概念模型的顺序和由五个层次组成。这五个层次是分析过程中的层次。每个层次的工作都为系统的规格说明增加了一个组成部分。这五个层次是:类与对象、属性、服务、结构和主题。1516识别类和对象面向对象分析的第一个层次主要是识别类和对象。类和对象是对与应用有关的概念的抽象。不仅是说明应用问题的重要手段,同时也是构成软件系统的基本元素。这一层工作
8、是整个分析模型的基础。识别开始于搜索选定的问题陈述,标识可以表示问题论域概念的术语。对它们进行评估。17选择类和对象的原则:对象类应当提供某些服务或处理多属性所有属性对于类中所有实例都应有意义对象类应表示问题论域的需求 排除不必要的类和不正确的类: 冗余类 模糊类 不相干的类18标识结构面向对象分析的下一步工作是标识结构。典型的结构有两种: 一般化-特殊化结构(Gen-Spec结构) 整体-部分结构(Whole-Part结构)19一般化-特殊化结构20整体-部分结构21以特殊化的视点来看,一个 Gen-Spec 结构可以看作是 “is a” 或 “is a kind of” 结构。例如, a
9、Truck Vehicle is a Vehicle a Truck Vehicle is a kind of Vehicle在 Gen-Spec 结构中,使用继承将较一般化的属性和服务放在一般化的类和对象中。22从整体的视点来看,一个 Whole-Part 结构可看作一个 “has a” 或 “is a part of” 结构。例如, Vehicle has a Engine Engine is a part of Vehicle其中,Vehicle是整体对象,Engine是局部对象。23标识Gen-Spec结构的方法和策略对于每一个类和对象,将它看作是一个 一般化的类,对它的所有特殊情况,
10、考虑以下问题: 它是否在问题论域中? 它是否在系统的职责内? 继承性是否存在? 它是否能够符合选择类和对象的标准?24同样地,把每一个类和对象置于特殊化对象的地位,对于它所有的一般化情形,考虑上述4个问题。检查以前在相同或类似问题论域中面向对象分析的结果,看是否有可直接复用的Gen-Spec 结构。如果一个一般化对象可能有多个特殊化对象,应当先考虑最简单的特殊化对象和最复杂的特殊化对象,然后再考虑中间其他的特殊化对象。25标识Whole-Part结构的方法和策略应当寻找什么 总体-部分(Assembly-Parts)关联,如飞机-发动机之间的关系。 包容-内含(Container-Conten
11、t)关联,如飞机-飞行员之间的关系。 收集-成员(Collection-Members)关联,如机构-职员之间的关系。26将每一个类看作是一个Whole类,对它的所有可能Parts情况,考虑以下问题: 它是否在问题论域中? 它是否在系统的职责内? 它是否代表一个以上的状态值? 若不是,是否将它变为Whole中的一个属性? 它是否提供问题论域中有用的抽象?27同样地,把每一个类置于Part 的地位,对于它所有的Whole情形,考虑上述5个问题。检查以前在相同或类似问题论域中面向对象分析的结果,看是否有可直接复用的Whole-Parts结构。28标识属性下一个层次称为属性层,对前面已识别的类和对象
12、做进一步的说明。在这里,对象所保存的信息称为它的属性。类的属性所描述的是状态信息,每个实例的属性值表达了该实例的状态值。29属性层30标识属性的方法和策略每个对象至少需包含一个属性属性取值必需适合对象类的所有实例出现在Gen-Spec关系中的对象所继承的属性必须与Gen-Spec关系一致。子对象不能继承那些不是为该子对象定义的属性。所继承的属性必须在应用论域中有意义。所有系统的存储数据需求必须定义为属性31标识属性的方法和策略每个对象至少需包含一个属性属性取值必需适合对象类的所有实例出现在Gen-Spec关系中的对象所继承的属性必须与Gen-Spec关系一致。子对象不能继承那些不是为该子对象定
13、义的属性。所继承的属性必须在应用论域中有意义。所有系统的存储数据需求必须定义为属性32标识实例连接关系33标识完实例连接后调整对象如果有多对多的实例连接,则可能需要增加一个新的“交互”对象。对于同一个类各个实例之间的实例连接,若有属性描述它,则应建立新的类或对象。如“婚姻”是人与人间的关系,除了对象“人”外,还需建立“婚姻”事件对象。如果两个类之间有两个或两个以上的实例连接时,可能需要加入一个类或对象来区分这些实例连接的含义。34定义服务对象收到消息后所能执行的操作称为它可提供的服务。对每个对象和结构的增加、修改、删除、选择等服务有时是隐含的,在图中不标出,但在存储类和对象有关信息的对象库中有
14、定义。其它服务则必须显式地在图中画出。35服务层36定义服务的方法和策略找出每一个对象的所有状态,在各种状态需要做的工作。利用状态迁移图,找出必要的操作。建立消息连接。描述服务:利用状态转换图、脚本和事件追踪图,描述服务的功能。37消息连接的标识两个对象之间可能存在着由于通信需要而形成的关系,这称为消息连接。消息连接表示从一个对象发送消息到另一个对象,由那个对象完成某些处理。它们在图中用箭头表示,方向从发消息的对象指向收消息的对象。38找出消息连接的方法及策略对于每一个对象,执行: 查询该对象需要哪些对象的服务,从该对象画一箭头到哪个对象; 查询哪个对象需要该对象的服务,从那个对象画一箭头到该
15、对象; 循消息连接找到下一个对象,重复以上步骤。39识别主题主题可以看成是高层的模块或子系统。对于面向对象分析模型,主题表示此模型的整体框架。可以是一 个层次结构。通过对主题的识别,可以让人们能够比较清晰地了解大而复杂的模型。40编辑管理的主题41识别主题将每一种结构(包括整体-部分结构、和一般化-特殊化结构)中最上层的类提升成为主题;将各不属于任何结构的类提升主题;检查在相同或类似的问题论域中以前做面向对象分析的结果,看是否有可直接复用的主题。42 7.4 建立动态模型建立动态模型的步骤: 1)编写典型交互行为的脚本; 2)从脚本中提取事件,确定触发每个事件的动作对象以及接受事件的目标对象;
16、 3)排列事件发生的次序,确定每个对象可能有的状态及状态间的转换关系,并用。437.4.1 编写脚本 所谓“脚本”,原意是指表演戏曲,话剧,拍摄电影和电视剧等所依据的本子,里面记载了台词和故事情节等。 在建立动态模型的过程中,脚本是指系统在某一执行时间内出现的一系列事件。 编写脚本的过程实际上是分析用户对系统行为的要求的过程。44ATM系统的正常脚本ATM请用户插入银行卡ATM接受该卡并读取它上面分行代码和卡号ATM请求用户输入密码ATM请求总行验证卡号和密码;然后通知ATM该卡有效ATM要求用户选择事务类型(取款,查询等);用户选择“取款”ATM要求用户输入取款额ATM确认取款额在规定的限额
17、内,然后要求总行处理这个事务;总行把请求转给分行,该分行成功处理完这项事务并返回该帐户的新余额ATM吐出现金并请用户拿走现金;用户拿走现金ATM问用户是否继续;用户回答“不”ATM打印帐单,推出银行卡;用户拿走银行卡和帐单ATM请用户插入银行卡457.4.2 设想用户界面大多数交互式行为都可以分为应用逻辑和用户界面。应用逻辑是内在的,本质的内容,用户界面是外在的表现形式。采用不同的用户界面可以实现同样的程序逻辑。动态模型着重表示应用系统的控制逻辑。467.4.3画事件跟踪图1 确定事件2 画出事件跟踪图 书上图7.9是ATM系统正常情况下的事件跟踪图477.4.4画状态图状态描绘事件与对象状态的关系。通常用一张状态图描绘一类对象的行为,它确定了由事件序列引出的状态序列。从一张事件跟踪图出发画状态图时,应该集中精力仅考虑影响一类对象的事件。487.4.5审查动态模型各个类的状态图通过共享事件合并起来,构成了系统的动态模型。应该审查每个事件,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 按揭手房买卖协议书
- 灰土挤密桩施工承包合同
- 2025年南宁货运从业资格试题答案大全
- 2025年青海货运从业资格试题题库
- 2025年鹤岗b2货运资格证模拟考试
- 电工承包简单合同(2篇)
- 2024-2025学年四年级语文上册第二单元6天安门广场教案1苏教版
- 浙教版数学七年级上册《2.1 有理数的加法》听评课记录
- 七年级英语上册 Module 8 Choosing presents Unit 3 Language in use说课稿 (新版)外研版
- 2024-2025学年高中物理课时分层作业2库仑定律含解析教科版选修3-1
- 项目负责人考试题库含答案
- 设备安全操作培训
- 光伏发电项目屋面作业安全检查表
- GB/T 7251.5-2017低压成套开关设备和控制设备第5部分:公用电网电力配电成套设备
- 2023年湖南高速铁路职业技术学院高职单招(数学)试题库含答案解析
- 中考语文非连续性文本阅读10篇专项练习及答案
- GB/T 13088-2006饲料中铬的测定
- 经颅磁刺激的基础知识及临床应用参考教学课件
- 小学语文人教四年级上册第四单元群文阅读“神话故事之人物形象”PPT
- 乡村振兴汇报课件
- 红色记忆模板课件
评论
0/150
提交评论