面向对象分析与设计技术.ppt_第1页
面向对象分析与设计技术.ppt_第2页
面向对象分析与设计技术.ppt_第3页
面向对象分析与设计技术.ppt_第4页
面向对象分析与设计技术.ppt_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

第四讲面向对象分析与设计技术 4 1概念模型4 2用面向对象方法建立概念模型4 3面向对象设计的软件生命周期4 4面向对象设计的方法 4 1概念模型4 2用面向对象方法建立概念模型4 3面向对象设计的软件生命周期4 4面向对象设计的方法 4 1 1建立概念模型的动机 程序设计者必须清楚用户需求 才能设计出易于使用和维护的大型信息系统 程序设计者在设计过程中遇到的困难主要有以下几点 缺乏对信息系统应用领域的了解 不同的专业人员对同一概念的理解不同 需求分析的结果很难被全体用户一致确认 过早地进入信息系统实现阶段 上述困难迫切需要某种工具帮助实现程序设计者和用户之间的充分交流 并达成一致 概念模型就是这样一种工具 4 1概念模型4 2用面向对象方法建立概念模型4 3面向对象设计的软件生命周期4 4面向对象设计的方法 4 1 2概念之间的关系 概念的定义 是对实体属性的抽象和概括 概念的静态联系有三种形式 1 属性关系 即一个实体概念是另一个实体概念的属性 2 层次关系 即一个实体概念是另一个实体概念的上位概念 3 并列关系 有两个实体概念都是同一实体概念的下位概念 但这两个实体概念的外延不相交 概念的动态联系 由行为概念反映出来 这种行为概念是行为的客体概念 主体概念 结果概念的联系纽带 又可以作为客体概念和主体概念的属性 4 1概念模型4 2用面向对象方法建立概念模型4 3面向对象设计的软件生命周期4 4面向对象设计的方法 4 1 3信息系统的概念模型 概念模型的含义 程序设计者和用户对系统所涉及的客观事物及其关系的理解 表现为一组相互关联的概念 它是由一组概念通过各种概念间关系构成的概念体系 抽象地描述了信息系统对象的结构和行为两方面的特征和关系 4 1概念模型4 2用面向对象方法建立概念模型4 3面向对象设计的软件生命周期4 4面向对象设计的方法 构造概念模型的建模方法 实体 联系法 E R图法 三种基本符号 长方形 表示实体集 类 在方框内写上该实体集的名称 类名 学生 课程 椭圆形 表示属性 在椭圆中写上属性的名称 菱形 表示关系 在菱形中写上关系的名称 E R图法的缺陷 只能表示概念之间的静态关系 无法表示概念之间的动态关系 4 1概念模型4 2用面向对象方法建立概念模型4 3面向对象设计的软件生命周期4 4面向对象设计的方法 概念模型的作用 作为公共参考框架 帮助设计者和用户在系统分析阶段进行充分交流 帮助设计者理解信息系统的应用领域以及用户需求 作为数据模型的设计依据 也可用于检验和评价系统设计 作为文档的一部分 在维护阶段有利于系统的修改和扩充 帮助用户从整体上理解和认识信息系统 4 1概念模型4 2用面向对象方法建立概念模型4 3面向对象设计的软件生命周期4 4面向对象设计的方法 面向对象方法是构造概念模型的方法之一 与E R图法相比 面向对象方法不仅能够描述概念之间的静态关系 而且能够描述概念之间的动态关系 4 1概念模型4 2用面向对象方法建立概念模型4 3面向对象设计的软件生命周期4 4面向对象设计的方法 4 2 1识别对象和类 建立信息系统的基本思路 分析信息系统将取代哪些人类活动 这些活动涉及到的具体事物 具体过程和具体规则 识别对象首先要弄清信息系统拟解决问题涉及的具体事物 4 1概念模型4 2用面向对象方法建立概念模型4 3面向对象设计的软件生命周期4 4面向对象设计的方法 按事物的存在 可将事物可以分为五类 有形物 指的是看得见摸得着的东西 当拟解决问题确定后 很容易找出与该问题相关的 有形物 如人 药等 角色 人或组织机构所扮演的角色 角色之间存在着紧密联系 只要找出一个角色对象 就很容易找出一组相关的角色对象 如 医生 病人 事件 事件对象表示发生的事件 如 出诊 吃药 交互 交互对象具有 交易 或者 订合同 的性质 通常能将多个对象联系起来 如 购买 将售货员 顾客和商品联系到一起 规范 规范对象具有 标准 或 定义 的性质 例如产品的技术指标和学校的专业培养目标都是规范 4 1概念模型4 2用面向对象方法建立概念模型4 3面向对象设计的软件生命周期4 4面向对象设计的方法 按照面向对象的观点 可以区分三类对象 客观存在物 这一类对象包括有形物和角色对象 在面向对象系统中它体现问题的结构特性 行为 这一类对象包括事件对象和交互对象 识别行为是识别对象的一部分 行为是信赖于对象的 在面向对象系统中它体现问题的行为特性 概念 观察现实世界与获取应用领域知识是分不开的 在现实世界中 人的活动必然关联了一系列的客观存在物和它们的行为 并且这种关联通常是有规律的 概念就是他们交流各领域知识的工具 是识别对象时的一类认识和分析对象 4 1概念模型4 2用面向对象方法建立概念模型4 3面向对象设计的软件生命周期4 4面向对象设计的方法 4 2 2对象之间的通讯 对象之间的通讯是借助于消息完成的 向一个对象发送消息就是调用该对象的某个成员函数 一条消息就是一次函数调用 消息名称和该成员函数名称相同 并且消息必须提供该成员函数所需的入口参数 调用某个对象的成员函数的唯一途径就是发送消息 消息只表示请求 不保证动作 完全由接收消息的对象决定是否响应该请求以及响应的具体方式 4 1概念模型4 2用面向对象方法建立概念模型4 3面向对象设计的软件生命周期4 4面向对象设计的方法 4 2 3对象关系图示 类图 对象关系图能够确定系统设计中的消息通讯是否完整 对象类之间的静态结构关系相互有消息传递的对象之间的动态关系 使用对象关系图的益处 发现设计中的错误 特别是对象间关系的错误作为实际编码时的依据系统出错时的调试与检错 4 1概念模型4 2用面向对象方法建立概念模型4 3面向对象设计的软件生命周期4 4面向对象设计的方法 类的层次结构 类的层次结构表示信息系统中所有类关系的轮廓 以这种形式可以很容易地跟踪基类和派生类之间的关系 设有3个对象类A B和C 其中B是从A中派生出来的 C又是从B中派生出来的 那么用类的层次结构图表示它们之间的关系如下 1 一个类的所有派生类按字母排序 2 用锯齿形表示基类下的派生类 4 1概念模型4 2用面向对象方法建立概念模型4 3面向对象设计的软件生命周期4 4面向对象设计的方法 例1 在一个学校中有学生 教师 教室 办公室和课程 设计一个类层次 用Object作为所有类的公共基类 它有三个派生类 人员类 person 房间类 room 课程类 subject 人员类有两个派生类 学生类 student 和教师类 teacher 房间有两个派生类 教室类 classroom 和办公室类 office 将这些类之间的关系给层次结构图表示出来 4 1概念模型4 2用面向对象方法建立概念模型4 3面向对象设计的软件生命周期4 4面向对象设计的方法 4 1概念模型4 2用面向对象方法建立概念模型4 3面向对象设计的软件生命周期4 4面向对象设计的方法 对象间的创建关系 对象间的创建关系是委托关系的具体实现 一个对象在其成员函数中创建一个或多个关系对象 然后委托它们进行部分工作 最后完成自身工作 若对象A在实施方法m C 中称为成员函数 中创建了对象B 那么对象A和对象B之间通过方法m构成了 创建关系 正式说法为 对象A是对象B的基于方法m的创建者 4 1概念模型4 2用面向对象方法建立概念模型4 3面向对象设计的软件生命周期4 4面向对象设计的方法 例2 在例1给出的学校系统中有关人员情况的类有3个 person类 student类和teacher类 在person类中有一个成员函数number 计算全校的教师和学生的总人数 这需要student类对和teacher类对象分别计数后 再由person类对象汇总 因此 number 必须首先创建student类对象和teacher类对象 然后再委托它们做计数工作 因此 在person类对象 student类对象和teacher类对象之间存在着 创建关系 4 1概念模型4 2用面向对象方法建立概念模型4 3面向对象设计的软件生命周期4 4面向对象设计的方法 4 1概念模型4 2用面向对象方法建立概念模型4 3面向对象设计的软件生命周期4 4面向对象设计的方法 对象间的聚合关系 对象间的聚合关系是指一个对象是由若干个其它对象组合而成的 这是一种直接的包含关系 对象的创建不需要通过中间方法来实现 当该对象被创建时 组成它的各个对象也将自动被创建 4 1概念模型4 2用面向对象方法建立概念模型4 3面向对象设计的软件生命周期4 4面向对象设计的方法 例3 飞机类由机身类 引擎类 机翼类和尾翼类四个对象类构成 这四个对象类在飞机类中以成员对象的形式存在 它们之间体现的是对象之间的聚合关系 4 1概念模型4 2用面向对象方法建立概念模型4 3面向对象设计的软件生命周期4 4面向对象设计的方法 对象间的消息流图 对象间的消息流图用来描述信息系统中对象之间的消息流 它只描述相关对象之间交换的主要消息 以帮助设计者和用户理解对象是如何通过交互完成具体任务的 消息流图分为两种 内向消息图 描述对象如何从外界对象接收消息 外向消息图 措述对象如何向外界对象发送消息 4 1概念模型4 2用面向对象方法建立概念模型4 3面向对象设计的软件生命周期4 4面向对象设计的方法 例3 对象B和对象C分别向对象A发送了一条消息 对象A的内向消息图 对象A的外向消息图 例4 对象A分别发送了一条消息向对象B和对象C 4 1概念模型4 2用面向对象方法建立概念模型4 3面向对象设计的软件生命周期4 4面向对象设计的方法 4 2 4类描述语言 描述概念模型中类结构的语言被称作类描述语言CDL CDL中的成分可分为五部分 1 class用于定义类 格式为class 类名 类描述子句 2 superclass用于说明类的所有上位类 直接基类 的类描述子句 格式为superclass 上位类表在上位类表中列出此类的所有直接基类的名字 中间用 隔开 4 1概念模型4 2用面向对象方法建立概念模型4 3面向对象设计的软件生命周期4 4面向对象设计的方法 3 attribute用于说明类属性的类描述子句 格式为attribute 属性定义 属性既可以是一般数据 也可以是类 4 method用于描述类的方法 即类的行为特性 格式为method 方法名 消息表 消息表由该类向其它类发送的消息构成 5 request用于表达在一个类的方法中向其它类发送的消息 格式为request请求消息表 请求消息表由一组请求消息构成 每个请求消息的格式为 目标类 方法名 参数表 4 1概念模型4 2用面向对象方法建立概念模型4 3面向对象设计的软件生命周期4 4面向对象设计的方法 例5 学校系统有四个对象类 1 address类 该类包含属性city street和zip 该类具有方法putaddress和getaddress 2 person类 该类包含属性name age sex和ddress 该类具有方法put和get 这两个方法实现时都需要借助address类对象 也就是要通过发送消息 委托address类对象完成部分工作 3 student类 该类为person类的派生类 它自身所特有的属性为major grade和course 所具有的方法为putgrade putgeneral和getgeneral 4 teacher类 该类为person类的派生类 它自身所特有的属性为major subject和salary 所具有的方法是putinfo和getinfo 4 1概念模型4 2用面向对象方法建立概念模型4 3面向对象设计的软件生命周期4 4面向对象设计的方法 class address attribute city attribute street attribute zip method putaddress method getaddress class person attribute name attribute age attribute sex attribute address method put requestaddress putaddress method get requestaddress getaddress 4 1概念模型4 2用面向对象方法建立概念模型4 3面向对象设计的软件生命周期4 4面向对象设计的方法 class student superclass person attribute major attribute grade attribute course method putgrade method putgeneral method getgeneral class teacher superclass person attribute major attribute subject attribute salary method putinfo method getinfo 4 1概念模型4 2用面向对象方法建立概念模型4 3面向对象设计的软件生命周期4 4面向对象设计的方法 4 3 1面向对象软件的开发生命周期 设计 演化 维护 分析 4 1概念模型4 2用面向对象方法建立概念模型4 3面向对象设计的软件生命周期4 4面向对象设计的方法 面向对象设计的开发生命周期中每一阶段都可以相互反馈 整个过程是迭代 渐增的开发过程 1 分析阶段在面向对象设计中 把分析看作是从问题域中选出词汇 建立类和对象的模型世界 2 设计阶段设计是对问题域的行为进行关键抽象再分解的过程 设计的结果反馈到分析上进行修正 当关键抽象简单到不需要再分解的程度时就停止该阶段工作 3 演化阶段演化实际上是编码 测试和集成构成的阶段 4 维护阶段维护是在系统提交运行后的变更活动 4 1概念模型4 2用面向对象方法建立概念模型4 3面向对象设计的软件生命周期4 4面向对象设计的方法 4 3 2需求分析阶段 分析阶段集中于问题域关键抽象 明确问题中有哪些数据实体存在 它们的意义是什么 而暂时不考虑它们是怎样处理的 三个子阶段 1 定义问题边界 在满足系统要求的前提下 定义问题边界的重点是确保系统的应变性和稳定性 制定适当的设计策略 2 问题域的关键抽象 即找出有关系的对象和类 对于任何一个抽象类来说 每一个成员必须是相互独立的 不可再分的 类中全体成员都依赖于其中一个关键成员建立关系 3 类的抽象 将拟解决问题涉及的数据内容进行归纳 从这些数据中抽象出信息系统中的实际类 4 1概念模型4 2用面向对象方法建立概念模型4 3面向对象设计的软件生命周期4 4面向对象设计的方法 4 3 3设计阶段 设计阶段的主要工作是给出类层次结构及对象之间的关系 对各个类给出定义 三个子阶段 1 定义类层次结构 根据分析阶段的结果 对拟解决问题的信息系统画出类的层次结构图 2 定义对象之间的各种关系 即使用对象关系图确定对象之间的创建关系 聚合关系等 3 用CDL描述系统 根据 2 步结果 使用类描述语言CDL对整个信息系统给出定义 4 1概念模型4 2用面向对象方法建立概念模型4 3面向对象设计的软件生命周期4 4面向对象设计的方法 4 3 4演化阶段 演化是在设计基础上的编码 测试 集成的迭代渐近过程 演化阶段开始时间取决于问题域中最基本的设计是否已经完成 这是通过以下三点来把握的 问题域已经明确定义 最基本的问题关键已经把握 最基本的问题关键的解决方法已经找到 系统实现可以预见 4 1概念模型4 2用面向对象方法建立概念模型4 3面向对象设计的软件生命周期4 4面向对象设计的方法 演化阶段的必要准备 1 要具备良好的开发平台 良好的开发平台通常拥有许多成熟的集成工具 可以缩短演化阶段迭代和渐近的过程 2 要搭建测试环境 在开发平台上的测试往往只能做功能性测试 而系统性能测试的最理想方法是搭建真实的用户环境 如果条件不具备 那么就必须准备一个能够模拟真实应用的环境 3 需建立自己的原型库 原型库的建立在于软件工程化管理 它是从开发结果中提取可重用的原型 4 1概念模型4 2用面向对象方法建立概念模型4 3面向对象设计的软件生命周期4 4面向对象设计的方法 两个子阶段 1 模块划分 在面向对象设计中不是以算法的逻辑结构来划分模块 而是以类和对象的逻辑结构来划分模块 2 分模块开发系统 为保证系统整体的一致性 采取的开发策略是先开发系统的公共部分 再展开个别部分的演化 4 1概念模型4 2用面向对象方法建立概念模型4 3面向对象设计的软件生命周期4 4面向对象设计的方法 4 3 5维护阶段 维护是在软件投入运行后的开发活动 它同样需要经过分析 设计和演化 因此 它也是一种系统变更的迭代过程 维

温馨提示

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

评论

0/150

提交评论