版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、面向对象的分析面向对象的分析马丽马丽1软件工程软件工程27.2.2 7.2.2 面向对象的分析面向对象的分析 面向对象的分析(面向对象的分析(OOAOOA)方法)方法是相当于软件开发过程中的问题定义和需求分析阶段,它是用面向对象的概念和方法为软件需求建造模型,分析的过程是提取和确定系统需求的过程。 面向对象分析的需求规格说明面向对象分析的需求规格说明主要包括三种模型三种模型:对象模对象模型、动态模型和功能模型型、动态模型和功能模型。在面向对象方法中,类、对象和事物等概念之间的关系如图3.3.7所示。31 1面向对象分析过程面向对象分析过程 (1)分析过程概述分析过程就是提取系统的需求的过程,是
2、指为了满足用户的需求,系统必须“做什么”,而不是“怎么做”(系统如何实现)。系统分析通常是从一个需求文档(陈述)和用户一系列的讨论开始的。一般来说,由用户、领域专家、系统的开发者以及其他有关人员参加制定需求文档。 首先,系统分析员要对需求文档进行分析。首先,系统分析员要对需求文档进行分析。需求文档通常是不完整、不准确的,也可能还是非正式的。通过分析可以发现和改正需求文档中的歧义性、不一致性,剔除冗余的内容,挖掘潜在的内容,弥补不足,从而使需求文档更完整、更准确。快速地建立一个原型系统,通过在计算机上运行原型系统,使得分析员和用户尽快交流和相互理解,从而能更正确地、更完整地提取和确定用户的需求。
3、4然后,是需求建模。然后,是需求建模。系统分析员根据提取的用户需求,深入理解用户需求,识别出问题域内的对象,并分析它们相互之间的关系,抽象出目标系统应该完成的需求任务,并用OOA模型准确地表示出来,即用面向对象观点建立对象模型、动态模型和功能模型。最后,是需求评审。最后,是需求评审。通过用户、领域专家、系统分析员和系统设计人员的评审,并进行反复修改后,确定需求规格说明。(2 2)面向对象分析的)面向对象分析的三个模型与五个层次三个模型与五个层次面向对象分析的三个模型:面向对象分析的三个模型:面向对象分析的模型包括:对象模型、动态模型和功能模型。对象模面向对象分析的模型包括:对象模型、动态模型和
4、功能模型。对象模型描述了系统的静态结构;动态模型描述了系统的交互次序;功能模型描述了系统的静态结构;动态模型描述了系统的交互次序;功能模型描述了系统的数据变换。型描述了系统的数据变换。 其中,对象模型是最基础的、最核心的、最重要的。无论解决什么问题,其中,对象模型是最基础的、最核心的、最重要的。无论解决什么问题,首先要在问题域中提取和定义出对象模型首先要在问题域中提取和定义出对象模型。5当问题涉及用户界面与过程控制时,动态模型是重点。如果问题涉及大量数据变换,则功能模型非常重要。对象模型中的操作(即服务)可以出现在动态模型和功能模型内。2) 2) 面向对象分析的五个层次面向对象分析的五个层次面
5、向对象分析由五个主要活动组成,即确定类面向对象分析由五个主要活动组成,即确定类- - -对象、识别对象、识别结构、识别主题、定义属性和定义服务结构、识别主题、定义属性和定义服务( (方法方法) )。对于一个复杂问题的面向对象的模型可用五个层次五个层次表示:类类- - -对象层、结对象层、结构层,主题层、属性层和服务层构层,主题层、属性层和服务层,见图3.3.8。 主题层 subject level类-对象层object结构层 structure属性层 attribute服务层 serves6主题主题(Subject)层层:主题给出分析模型的总体概貌,是控制读者在同一时间所能考虑的模型规模的机制
6、。类类-&-对象对象(Class & Object)层层:对象是数据及其处理的抽象。它反映了保存有关信息和与现实世界交互的能力。结构结构(Structure)层层:结构表示问题域的复杂性。类 - 成员结构反映了一般-特殊关系,整体 - 部分结构反映了整体 - 部分的关系。属性属性(Attribute)层层:属性是数据元素,用来描述对象或分类结构的实例,可在图中给出并在对象的储存中指定,即给出对象定义的同时,指定属性。服务服务(Serves)层层:服务是接收到消息后必须执行的一些处理,可在图上标明它并在对象的储存中指定,即给出对象定义的同时,定义服务。 73) 3) 五个层次对应
7、的五个活动五个层次对应的五个活动 五个主要活动可以同时(并行)处理;可以从较高抽象层转移到较低的具体层,然后再返回到较高抽象层继续处理;当系统分析员在确定类-对象的同时,想到该类的服务,则可以先确定服务后,再返回去继续寻找类-对象;没有必要遵循自顶向下,逐步求精的原则。4) 4) 面向对象分析流程面向对象分析流程 一般情况下,面向对象分析过程可按照下列流程进行:确可按照下列流程进行:确定类定类对象、识别结构、识别主题、定义属性、建立动态对象、识别结构、识别主题、定义属性、建立动态模型、建立功能模型、定义服务模型、建立功能模型、定义服务( (方法方法) )。但是,对于大型的、复杂的问题,不可能严
8、格按照上面流程进行,需要反复多次进行寻找、确定、识别、建立和定义来构造模型。 82 2面向对象建模面向对象建模(1 1)建模与模型)建模与模型 建模建模是将问题域的解空间定义成一种模型,以帮助系统分析人员更好地理解问题。 模型是为了理解问题而对问题所做出的一种抽象模型是为了理解问题而对问题所做出的一种抽象,而且是对问题的一种无歧义的描述。模型由一组图示符号和组织这些模型由一组图示符号和组织这些符号的规则组成。符号的规则组成。利用它们来定义和描述问题域中的术语和概念。 建模的目的建模的目的主要是为了减少复杂性。 (2 2)面向对象模型)面向对象模型 用面向对象方法开发软件,通常需要建立对象模型、
9、动用面向对象方法开发软件,通常需要建立对象模型、动态模型和功能模型三种模型。态模型和功能模型三种模型。对象模型是描述系统数据结构的;动态模型是描述系统控制结构的;功能模型是描述系统功能的。9数据、控制和操作等是这三种模型都涉及到的共同概念,只不过是各自描述的侧重点不同罢了。一个典型的软件系统应包含数据结构(对象模型)、执行操作(动态模型)和完成数据值的变化(功能模型)。3常用的面向对象分析与设计模型常用的面向对象分析与设计模型常用的面向对象分析与设计模型有四类:常用的面向对象分析与设计模型有四类: James Rumbaugh 等人的等人的 OMT 模型;模型; Coad 和和 Yourdon
10、 的模型;的模型; Booch 开发模型;开发模型; UML 统一建模语言(在统一建模语言(在3.4节专门介绍)。节专门介绍)。10n对象模型化技术的三类模型:对象模型、动态模型和功能模型。n这个模型化的过程是一个迭代过程通过不断更新、细化,直到切合系统真正需求为止。Rumbaugh的对象模型化技术的对象模型化技术OMT(object modeling technique)111. 对象模型对象模型n是三个模型中最关键的一个模型,它的作用是描述系统的静态结构,包括构成系统的类和对象,它们的属性和操作,及它们之间的关系。n在OMT中,类与类之间的关系叫做关联。关联代表一组存在于两个或多个对象之间
11、的,具有相同结构和含义的具体连接。关联可以是物理的,也可以是逻辑的。12类类类的实例类的实例类定义示例类定义示例自动售货机自动售货机饮料编号饮料编号价格价格投入货币投入货币送出饮料送出饮料显示金额显示金额按下按钮按下按钮按退币杆按退币杆显示售完显示售完13n聚合,代表整体与部分的关系,这是一种特殊形式的关联。n菱形框 表示整体侧对象n限定,用以对关联的含义做某种约束。n角色,用来说明关联的一端。由于多数关联具有两个端点,因而涉及到两个角色。n附加的:说明对象之间的连接属性。(0个或个或1个)个)(0个或多个)个或多个)1+(1个或多个)个或多个)1 2,4(12个或个或4个)个)14整体整体部
12、分部分段落段落句子句子聚合聚合类类A类类B限定词限定词目录目录文件文件文件名文件名限定限定公司公司名字名字个人个人名字名字工作工作职务职务工资工资雇主雇主雇员雇员类类A角色角色角色角色类类B15泛化关联(继承性)泛化关联(继承性)派生类派生类A派生类派生类A基类基类16金额计算器金额计算器金额金额累加累加找零找零重置重置自动售货机自动售货机饮料编号饮料编号价格价格投入硬币投入硬币送出饮料送出饮料显示金额显示金额按下按钮按下按钮按退币杆按退币杆显示售空显示售空存量计算器存量计算器饮料编号饮料编号存量存量递减递减显示售空显示售空重置重置退币杆退币杆退币杆状态退币杆状态按退币杆按退币杆顾客顾客姓名姓
13、名硬币硬币投入硬币投入硬币取出饮料取出饮料选择按钮选择按钮按钮状态按钮状态按钮灯亮按钮灯亮按钮灯灭按钮灯灭售空灯亮售空灯亮按下按钮按下按钮顾客按顾客按退币杆退币杆购买购买顾客按顾客按下按钮下按钮属于属于属于属于属于属于属于属于17n对系统的词汇建模(即建类图):对系统的词汇建模(即建类图):1、确定类、确定类-即标出来自问题域的相关的对象类,如下图所示即标出来自问题域的相关的对象类,如下图所示:排除假的类排除假的类选取名词选取名词需求说明需求说明类类暂定的类暂定的类从中去掉冗余类、不相干的类、模糊类、属性及操作。2、准备数据字典:准确描述类的含义及范围(成员等)。3、确定关联:常用描述性动词(
14、或词组)表示。4、确定属性:属性是个体对象的性质,常用修饰性的名词词组表示。5、使用继承来细化类:指将现有类细化出父类及具体的子类。6、完善类模型图(或对象模型图)例例:建立对象模型建立对象模型:P14118实例设计支持设计支持银行网络银行网络的的软件软件, ,银行网络包括银行网络包括出纳站出纳站和和分行分行共享的共享的自动出自动出纳机纳机。每个分析通信。每个分析通信, ,出纳站录入出纳站录入用户用户和和事务数据事务数据; ;自动出纳机与自动出纳机与分行分行计算机通信计算机通信, ,分行计算机分行计算机与拨款与拨款分理处分理处结帐结帐, ,自动出纳机与用自动出纳机与用户接口接受户接口接受现金卡
15、现金卡, ,与分行计算机通信完成与分行计算机通信完成事务事务, ,发放发放现金现金, ,打印打印收据收据; ;系统系统需要记录保管和安全措施需要记录保管和安全措施; ;系统必须正确处理同一系统必须正确处理同一账户账户的并发访问的并发访问; ;每个分理处为自已的计算机准备软件每个分理处为自已的计算机准备软件, ,银行网络银行网络费用费用根据根据顾客顾客和现金卡的数目分摊给各和现金卡的数目分摊给各分理处分理处。出纳站出纳站自动出纳机自动出纳机自动出纳机分行计算机分理处计算机分理处计算机账户账户19 对象图注意注意对象之间的关联常用动词(词组)表示出纳员自动出纳机分行分行计算机分理处账户顾客分行计算
16、机现金卡出纳事务出纳站远程事务组成所有有通信通信通信有所有雇用访问涉及涉及认可录入录入所有20图3.3.16 某社区卫生综合管理系统的对象模型(一) 212. 动态模型动态模型n动态模型着重于系统的控制逻辑,它包括两个图,一是状态图,一是事件追踪图。状态状态A活动活动状态状态B活动活动状态状态A / 操作操作事件事件B 条件条件起始状态起始状态终结状态终结状态22取出饮料取出饮料结算找零结算找零扣减存量扣减存量完成交易完成交易显示售显示售货机就货机就绪,所绪,所有灯灭有灯灭显示显示金额金额总数总数饮料饮料售空售空灯亮灯亮显示总显示总额已够额已够饮料选饮料选择灯亮择灯亮投入硬币投入硬币( (有效
17、的有效的) )投入硬币投入硬币规定金额规定金额金额不足金额不足再投币再投币按下按下饮料饮料选择选择按钮按钮回到就绪状态回到就绪状态回到就绪状态回到就绪状态取消取消无效硬币无效硬币取消取消23事件追踪图事件追踪图n事件追踪图侧重于说明发生于系统执行过程中的一个特定“场景”。n场景也叫做脚本,是完成系统某个功能的一个事件序列。n场景通常起始于一个系统外部的输入事件,结束于一个系统外部的输出事件,它可以包括发生在这个期间的系统所有的内部事件。24顾客投入硬币自动售货机计算并显示金额顾客持续投入硬币直到足够的金额自动售货机选择按钮灯亮顾客选择饮料种类并按下选择按钮自动售货机送出相应饮料并结算、找零自动
18、售货机扣除该饮料的存量如自动售货机该饮料有存货,回到初始状态如自动售货机该饮料无存货,显示该饮料“售空”灯亮,不再接受选择,回到初始状态自动售货机售货脚本(事件序列)自动售货机售货脚本(事件序列)25 顾客顾客 售货机售货机 金额计算器金额计算器 选择按钮选择按钮 存量计算器存量计算器 售空灯售空灯 投入硬币投入硬币 累加累加 总额总额 显示总额显示总额 金额足够金额足够 灯亮灯亮 选择按钮选择按钮 按下按钮按下按钮 送出饮料送出饮料 结算结算 余额余额 找零找零 扣减存量扣减存量 存量为零存量为零 灯亮灯亮 263. 功能模型功能模型n功能模型由数据流图组成,指明从外部输入到外部输出,数据在系统中传递和变换的情况。顾客顾客自动自动售售货机货机输入:投币、按选输入:投币、按选择按钮、取消交易择按钮、取消交易输出饮料输出饮料投币金额投币金额显示屏显示屏
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 规划方案车位变更申请书
- 职业病人补助申请书范文
- 购买零配件的申请书
- 2025年员工职业发展规划指南
- 输血护士面试题目及答案
- 小学开餐申请书
- 竞聘六级岗位申请书
- 困难群体生活救助申请书
- 2025年商业物业管理手册
- 摩托车研发申请书
- 空调配件销售合同范本
- 2025年党建知识竞赛题及答案
- 《光伏发电技术》课件(共七章)
- 2025年国家开放大学《电子政务概论》期末考试备考题库及答案解析
- 医疗器械使用与维护常见问题汇编
- 中远海运集团笔试题库2025
- 企业员工培训效果评估报告模板
- 医疗器械胰岛素泵市场可行性分析报告
- 地铁施工现场防台风措施
- 种植业合作社账务处理
- 【丽江玉龙旅游薪酬制度的创新研究6100字】
评论
0/150
提交评论