901软件工程课件第10章面向对象分析_第1页
901软件工程课件第10章面向对象分析_第2页
901软件工程课件第10章面向对象分析_第3页
901软件工程课件第10章面向对象分析_第4页
901软件工程课件第10章面向对象分析_第5页
已阅读5页,还剩149页未读 继续免费阅读

下载本文档

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

文档简介

上海大学计算机学院12023/12/10本章目标?掌握面向对象分析的过程

?掌握对象建模、动态建模、功能建模方法?了解服务定义方法?能够根据需求陈述建立分析模型上海大学计算机学院22023/12/10主要内容面向对象分析的基本过程需求陈述建立对象模型建立动态模型建立功能模型定义服务上海大学计算机学院32023/12/10内容线索面向对象分析的基本过程需求陈述建立对象模型建立动态模型建立功能模型定义服务上海大学计算机学院42023/12/10面向对象分析概述…面向对象分析,就是抽取和整理用户需求并建立问题域精确模型的过程三个子模型静态结构(对象模型)交互次序(动态模型)数据变换(功能模型)上海大学计算机学院52023/12/10…面向对象分析概述主题(SubjectLayer)类-对象(Class与ObjectLayer)结构(StructureLayer)属性(AttributeLayer)方法(ServiceLayer)对象模型的五个层次上海大学计算机学院62023/12/10面向对象分析的基本过程…识别结构识别结构定义属性识别主题识别类与对象对象+关联

需求陈述建立动态模型、功能模型、行为上海大学计算机学院72023/12/10…面向对象分析的基本过程识别类与对象(找出问题中的实体)识别结构(类或对象之间的关系)识别主题(指导读者理解大型、复杂模型的一种机制)定义属性(对象的属性)建立动态模型建立功能模型定义服务(类所能提供的服务,即行为)上海大学计算机学院82023/12/10内容线索面向对象分析的基本过程需求陈述建立对象模型建立动态模型建立功能模型定义服务上海大学计算机学院92023/12/10需求陈述需求陈述的内容问题范围,功能需求,性能需求,应用环境及假设条件等“做什么”而不是“怎样做”书写需求陈述时,需要注意:(1)尽量做到语法正确,而且应该慎重选用名词、动词、形容词和同义词(2)尽量把需求与实现策略区分开需求陈述仅仅是一个理解用户需求的出发点,而不是一成不变的文档上海大学计算机学院102023/12/10储户ATM系统网络拓扑图ATM帐户柜员终端储户柜员ATMATM中央计算机分行计算机分行计算机帐户帐户帐户上海大学计算机学院112023/12/10ATM系统的需求陈述…

某银行拟开发一个自动取款机(ATM)系统,它是由一个自动取款机、中央计算机、分行计算机及柜员终端组成的网络系统。ATM和中央计算机由总行投资购买。总行拥有多台ATM,分别设在全市各主要街道上。分行负责提供分行计算机和柜员终端。柜员终端设在分行营业厅及下属的各储蓄所内。该系统的软件开发成本由各分行分摊。

银行柜员使用柜员终端处理储户提交的储蓄事务。储户可以用现金或支票向自己的某个帐户内存款或开新帐户。储户也可以从自己的帐户取款。

上海大学计算机学院122023/12/10…ATM系统的需求陈述…

通常,一个储户可能拥有多个账户。柜员负责把储户提交的存款或取款事务输进柜员终端,接收储户交来的现金或支票,或付给储户现金。柜员终端与相应的分行计算机通信,分行计算机具体处理针对某个账户的事务并且维护账户。 拥有银行账户的储户有权申请领取现金兑换卡。使用现金兑换卡可以通过ATM访问自己的账户。目前仅限于用现金兑换卡在ATM上提取现金(即取款),或查询有关自己账户的信息(例如,某个指定账户上的余额)。将来可能还要求使用ATM办理转账、存款等事务。

上海大学计算机学院132023/12/10…ATM系统的需求陈述…

所谓现金兑换卡就是一张特制的磁卡,上面有分行代码和卡号。分行代码唯一标识总行下属的一个分行,卡号确定了这张卡可以访问哪些账户。通常,一张卡可以访问储户的若干个账户,但是不一定能访问这个储户的全部账户。每张现金兑换卡仅属于一个储户所有,但是,同一张卡可能有多个副本,因此,必须考虑同时在若干台ATM上使用同样的现金兑换卡的可能性。也就是说,系统应该能够处理并发的访问。

上海大学计算机学院142023/12/10…ATM系统的需求陈述

当用户把现金兑换卡插入ATM之后,ATM就与用户交互,以获取有关这次事务的信息,并与中央计算机交换关于事务的信息。首先,ATM要求用户输入密码,接下来ATM把从这张卡上读到的信息以及用户输入的密码传给中央计算机,请求中央计算机核对这些信息并处理这次事务。中央计算机根据卡上的分行代码确定这次事务与分行的对应关系,并且委托相应的分行计算机验证用户密码。如果用户输入的密码是正确的,ATM就要求用户选择事务类型(取款、查询等)。当用户选择取款时,ATM请求用户输入取款额。最后,ATM从现金出口吐出现金,并且打印出账单交给用户。

上海大学计算机学院152023/12/10内容线索面向对象分析的基本过程需求陈述建立对象模型建立动态模型建立功能模型定义服务上海大学计算机学院162023/12/10对象模型面向对象分析首要的工作,是建立问题域的对象模型对象模型描述了现实世界中的“类与对象”以及它们之间的关系,表示了目标系统的静态数据结构通常使用类图表示对象模型类图描述类及类与类之间的静态关系上海大学计算机学院172023/12/10类图的基本符号类名类名属性属性行为/服务行为/服务上海大学计算机学院182023/12/10类间关系1.关联(Association)2.聚集(Aggregation)3.泛化(Generalization)4.依赖和细化(DependencyandRealization)上海大学计算机学院192023/12/101、关联…两个类的对象之间的某种语义上的联系。关联名:WorkFor关联方向:►角色:employee,employer重数: 1..*,*重数(multiplicity)0..1表示0到1个对象0..*或*表示0到多个对象1+或1..*表示1到多个对象1..15表示1到15个对象3 表示3个对象PersonCompanyWorkFor►*1..*employeeemployer上海大学计算机学院202023/12/10…关联WorkForSalaryJobTitleStartDate限定关联关联类:当关联本身具有属性时PersonCompanyWorkFor►*1..*employeeemployer上海大学计算机学院212023/12/102、聚集类与类之间的整体与部分的关系(Partof)(1)共享聚集项目组组员1..**(2)组合聚集上海大学计算机学院222023/12/103、泛化类与类之间的“一般-特殊”关系(Isa)ShapeLineColorLineTypeDrawComputerAreaRectangleLeftBottomRightTopDrawComputerAreaCircleRadiusDrawComputerAreaTrianglePoint1Point2Point3DrawComputerArea上海大学计算机学院232023/12/10不同理解照相手机普通手机照相机照相手机(1)普通手机照相机照相手机(2)普通手机照相手机照相机照相机照相手机普通手机(3)上海大学计算机学院242023/12/104、依赖A依赖B:A使用B,或B的变化会影响到A上海大学计算机学院252023/12/104、细化细化关系(实现关系)B细化了A:B是在A的基础上的更详细的描述上海大学计算机学院262023/12/10类图示例

一幅工程蓝图包括许多图形,图形可以是直线、圆、多边形或组合图,多边形由直线组成,而组合图由各种图形混合而成蓝图图形组合图多边形直线圆由..组成▼*▲由..组成*由..组成►*上海大学计算机学院272023/12/10同步练习请说出下面的各种类关联,并在RationalRose中画出这些类图上海大学计算机学院282023/12/10关联ManagesJobbossworkeremployeeemployer1..***0..1CompanyPersonJobSalary角色名重数关联名称关联类二元关联自关联上海大学计算机学院292023/12/10具有重数的三元关联上海大学计算机学院302023/12/10受限关联上海大学计算机学院312023/12/10关联类上海大学计算机学院322023/12/10聚集PolygonPoint13..*pointsContainsPolygon聚集WindowSlider12ScrollbarHeader1Title11Panel1Body组合上海大学计算机学院332023/12/10泛化上海大学计算机学院342023/12/10课外阅读:Rose的使用[1]ROSE是美国Rational公司的面向对象建模工具,利用这个工具,我们可以建立用UML描述的软件系统的模型,而且可以自动生成和维护C++、Java、VB、Oracle等语言和系统的代码ROSE的界面分为三个部分——Browser窗口、Diagram窗口和Document窗口Browser窗口用来浏览、创建、删除和修改模型中的模型元素;Diagram窗口用来显示和创作模型的各种图;而Document窗口则是用来显示和书写各个模型元素的文档注释上海大学计算机学院352023/12/10Browser窗口Diagram窗口Document窗口Specification对话框工具栏工具箱Rose的使用[2]上海大学计算机学院362023/12/10Browser窗口有四个视图:UseCaseLogicalComponentDeploymentRose的使用[3]上海大学计算机学院372023/12/10在UseCase视图的图的类型有:用例图、顺序图、协作图和活动图。Rose的使用[4]上海大学计算机学院382023/12/10在Logical视图中的类型有:类图和状态图。Rose的使用[5]上海大学计算机学院392023/12/10Rose的使用[6]在Component视图的图的类型有:构件图。上海大学计算机学院402023/12/10Rose的使用[7]在Deployment视图的图的类型有:部署图。上海大学计算机学院412023/12/10Rose的使用[8]-用例视图用例图顺序图协作图活动图上海大学计算机学院422023/12/10Rose的使用[9]-逻辑视图类图状态图上海大学计算机学院432023/12/10Component视图和Deployment视图构件图部署图上海大学计算机学院442023/12/10各种图之间的关系静态视图(类图,对象图),物理视图(实现视图,部署视图)是描述系统的静态结构用例图是描述系统的外部视图活动图描述系统的外部/内部视图交互视图(顺序图,协作图)描述系统的内部视图状态图描述单个类的动态行为UML的基本概念总结上海大学计算机学院452023/12/10上机实验4时间:第七-八周,4月24日,4月30日(星期一),8:00-10:30地点:602,612内容:对象建模,画出系统的类图步骤:1、教师演示例子2、附录三,三、对象建模要求:1、建模工具:RationalRose2、团队操练形式,分工协作完成3、第七周上交用例图,第九周上交类图等上海大学计算机学院462023/12/10回顾面向对象分析任务:做什么基本过程:3个子模型和5个层次需求陈述对象建模:类图

同类相从,同声相应,固天之理也。

——《庄子·渔父》上海大学计算机学院472023/12/10类图上海大学计算机学院482023/12/10上海大学计算机学院492023/12/10建立对象模型的方法非正式分析方法以需求陈述为依据,把陈述中的名词作为类与对象的候选者形容词作为确定属性的线索动词作为服务(操作)的候选者上海大学计算机学院502023/12/10建立对象模型的工作步骤第一步:确定类与对象第二步:确定关联第三步:划分主题第四步:确定属性第五步:识别继承关系第六步:确定类中的服务反复修改上海大学计算机学院512023/12/10第一步:确定类与对象自动取款机、中央计算机、分行计算机、柜员终端、总行、分行、柜员、储户、事务、帐户、现金兑换卡1.2筛选(去除冗余、无关、笼统、属性、操作等)银行、自动取款机、系统、中央计算机、分行计算机、柜员终端、网络、总行、市、街道、分行、营业厅、储蓄所、软件、成本、柜员、储户、事务、现金、支票、帐户、现金兑换卡、余额、磁卡、分行代码、卡号、副本、访问、用户、信息、密码、关系、类型、取款额、帐单隐含的对象:通信链路和事务日志1.1找出候选的类-对象上海大学计算机学院522023/12/101.1找出候选的类与对象

34:银行,自动取款机(ATM),系统,中央计算机,分行计算机,柜员终端,网络,总行,市,街道,分行,营业厅,储蓄所,软件,成本,柜员,储户,事务,现金,支票,账户,现金兑换卡,余额,磁卡,分行代码,卡号,副本,访问,用户,信息,密码,类型,取款额,账单分析员还应该提取领域知识或常识隐含的类与对象出来。如:ATM系统中的没写的“通信链路”和“事务日志”上海大学计算机学院532023/12/101.2筛选类与对象…删除不正确或不必要的类与对象冗余两个候选类表达了同样的信息,保留最富于描述力的名称无关目标系统仅关心与本问题密切相关的类与对象笼统把笼统的或模糊的候选类去掉属性操作实现上海大学计算机学院542023/12/10…1.2筛选类与对象…34:银行、自动取款机、系统、中央计算机、分行计算机、柜员终端、网络、总行、市、街道、分行、营业厅、储蓄所、软件、成本、柜员、储户、事务、现金、支票、帐户、现金兑换卡、余额、磁卡、分行代码、卡号、副本、访问、用户、信息、密码、类型、取款额、帐单31:银行、自动取款机、系统、中央计算机、分行计算机、柜员终端、网络、总行、市、街道、分行、营业厅、储蓄所、软件、成本、柜员、储户、事务、现金、支票、帐户、现金兑换卡、余额、分行代码、卡号、访问、信息、密码、类型、取款额、帐单去除冗余两个类表达了同样的信息,应该保留最富于描述力的名称1上海大学计算机学院552023/12/10…1.2筛选类与对象…31:银行、自动取款机、系统、中央计算机、分行计算机、柜员终端、网络、总行、市、街道、分行、营业厅、储蓄所、软件、成本、柜员、储户、事务、现金、支票、帐户、现金兑换卡、余额、分行代码、卡号、访问、信息、密码、类型、取款额、帐单26:银行、自动取款机、系统、中央计算机、分行计算机、柜员终端、网络、总行、分行、软件、柜员、储户、事务、现金、支票、帐户、现金兑换卡、余额、分行代码、卡号、访问、信息、密码、类型、取款额、帐单去除无关与当前要解决的问题无关,同样也应该把它们删除2上海大学计算机学院562023/12/10…1.2筛选类与对象…26:银行、自动取款机、系统、中央计算机、分行计算机、柜员终端、网络、总行、分行、软件、柜员、储户、事务、现金、支票、帐户、现金兑换卡、余额、分行代码、卡号、访问、信息、密码、类型、取款额、帐单20:自动取款机、中央计算机、分行计算机、柜员终端、总行、分行、柜员、储户、事务、现金、支票、帐户、现金兑换卡、余额、分行代码、卡号、密码、类型、取款额、帐单去除笼统笼统的、泛指的名词3上海大学计算机学院572023/12/10…1.2筛选类与对象…20:自动取款机、中央计算机、分行计算机、柜员终端、总行、分行、柜员、储户、事务、现金、支票、帐户、现金兑换卡、余额、分行代码、卡号、密码、类型、取款额、帐单11:自动取款机、中央计算机、分行计算机、柜员终端、总行、分行、柜员、储户、事务、帐户、现金兑换卡去除属性陈述中有些名词用来描述其他对象的属性4上海大学计算机学院582023/12/10…1.2筛选类与对象11:自动取款机、中央计算机、分行计算机、柜员终端、总行、分行、柜员、储户、事务、帐户、现金兑换卡自动取款机、中央计算机、分行计算机、柜员终端、总行、分行、柜员、储户、事务、帐户、现金兑换卡去除操作既可作为名词又可作为动词的词语,到底是类还是操作?5去除实现分析阶段不需要考虑具体实现6通信链路和事务日志11上海大学计算机学院592023/12/10课外阅读:识别类的方法名词识别法系统实体识别法从用例中识别类利用分解与抽象技术上海大学计算机学院602023/12/10系统实体识别法上海大学计算机学院612023/12/10从用例中识别类上海大学计算机学院622023/12/10利用分解与抽象技术上海大学计算机学院632023/12/10大多数关联可以通过直接提取需求陈述中的动词词组而得出分析需求陈述,能发现一些在陈述中隐含的关联分析员应该与用户及领域专家讨论问题域实体间的相互依赖、相互作用关系,根据领域知识再进一步补充一些关联第二步:确定关联上海大学计算机学院642023/12/102.1初步确定关联…ATM,中央计算机,分行计算机及柜员终端组成网络。总行拥有多台ATM。ATM设在主要街道上。分行提供分行计算机和柜员终端。柜员终端设在分行营业厅及储蓄所内。分行分摊软件开发成本。储户拥有账户。柜员输入针对账户的事务。柜员终端与分行计算机通信。分行计算机处理针对账户的事务。分行计算机维护账户。上海大学计算机学院652023/12/102.1…初步确定关联…系统处理并发的访问。ATM与用户交互。ATM与中央计算机交换关于事务的信息。ATM读现金兑换卡。中央计算机确定事务与分行的对应关系。ATM吐出现金。ATM打印账单。上海大学计算机学院662023/12/10…2.1初步确定关联需求陈述中隐含的关联19.总行由各个分行组成。20.分行保管账户。21.总行拥有中央计算机。22.系统维护事务日志。23.系统提供必要的安全性。24.储户拥有现金兑换卡。根据问题域知识得出的关联25.

现金兑换卡访问账户。26.分行雇用柜员。上海大学计算机学院672023/12/102.2筛选关联2.2.1删除与已删去的类之间的关联2.2.2删除与问题无关或应在实现阶段考虑的关联2.2.3删除瞬时事件2.2.4分解三元关联2.2.5删除派生关联上海大学计算机学院682023/12/102.2.1删除已删去的类之间的关联…ATM,中央计算机,分行计算机及柜员终端组成网络。总行拥有多台ATM。ATM设在主要街道上。分行提供分行计算机和柜员终端。柜员终端设在分行营业厅及储蓄所内。分行分摊软件开发成本。储户拥有账户。柜员输入针对账户的事务。柜员终端与分行计算机通信。分行计算机处理针对账户的事务。分行计算机维护账户。系统处理并发的访问。ATM与用户交互。ATM与中央计算机交换关于事务的信息。ATM读现金兑换卡。中央计算机确定事务与分行的对应关系。ATM吐出现金。ATM打印账单。系统网络市街道成本软件事务日志现金营业厅储蓄所帐单访问等上海大学计算机学院692023/12/10…2.2.1删除已删去的类之间的关联19.总行由各个分行组成。20.分行保管账户。21.总行拥有中央计算机。22.

系统维护事务日志。23.

系统提供必要的安全性。24.储户拥有现金兑换卡。25.现金兑换卡访问账户。26.分行雇用柜员。系统网络市街道成本软件事务日志现金营业厅储蓄所帐单访问等上海大学计算机学院702023/12/10筛选结果1总行拥有多台ATM。分行提供分行计算机和柜员终端。储户拥有账户。柜员输入针对账户的事务。柜员终端与分行计算机通信。分行计算机处理针对账户的事务。分行计算机维护账户。ATM与用户交互。ATM与中央计算机交换关于事务的信息。ATM读现金兑换卡。中央计算机确定事务与分行的对应关系。总行由各个分行组成。分行保管账户。总行拥有中央计算机。储户拥有现金兑换卡。现金兑换卡访问账户。分行雇用柜员。上海大学计算机学院712023/12/102.2.2删除瞬时事件关联描述问题域的静态结构,不应是瞬时事件总行拥有多台ATM。分行提供分行计算机和柜员终端。储户拥有账户。柜员输入针对账户的事务。柜员终端与分行计算机通信。分行计算机处理针对账户的事务。分行计算机维护账户。ATM与用户交互。ATM与中央计算机交换关于事务的信息。ATM读现金兑换卡。中央计算机确定事务与分行的对应关系。总行由各个分行组成。分行保管账户。总行拥有中央计算机。储户拥有现金兑换卡。现金兑换卡访问账户。分行雇用柜员。上海大学计算机学院722023/12/10筛选结果2总行拥有多台ATM。分行提供分行计算机和柜员终端。储户拥有账户。柜员输入针对账户的事务。柜员终端与分行计算机通信。分行计算机处理针对账户的事务。分行计算机维护账户。ATM与中央计算机交换关于事务的信息。中央计算机确定事务与分行的对应关系。总行由各个分行组成。分行保管账户。总行拥有中央计算机。储户拥有现金兑换卡。现金兑换卡访问账户。分行雇用柜员。上海大学计算机学院732023/12/102.2.3分解三元关联总行拥有多台ATM。分行提供分行计算机和柜员终端。储户拥有账户。柜员输入针对账户的事务。柜员终端与分行计算机通信。分行计算机处理针对账户的事务。分行计算机维护账户。ATM与中央计算机交换关于事务的信息。中央计算机确定事务与分行的对应关系。总行由各个分行组成。分行保管账户。总行拥有中央计算机。储户拥有现金兑换卡。现金兑换卡访问账户。分行雇用柜员。“柜员输入事务”“事务修改账户”“ATM与中央计算机通信”“ATM输入事务”“分行保管账户”

“事务修改账户”“中央计算机与分行通信”上海大学计算机学院742023/12/10筛选结果3总行拥有多台ATM。分行提供分行计算机和柜员终端。储户拥有账户。柜员输入事务。事务修改账户。柜员终端与分行计算机通信。分行保管账户。分行计算机维护账户。ATM与中央计算机通信。ATM输入事务。中央计算机与分行通信。总行由各个分行组成。总行拥有中央计算机。储户拥有现金兑换卡。现金兑换卡访问账户。分行雇用柜员。上海大学计算机学院752023/12/102.2.4删除派生关联总行拥有多台ATM。分行提供分行计算机和柜员终端。储户拥有账户。柜员输入事务事务修改账户柜员终端与分行计算机通信。分行保管账户分行计算机维护账户。ATM与中央计算机通信ATM输入事务中央计算机与分行通信总行由各个分行组成。总行拥有中央计算机。储户拥有现金兑换卡。现金兑换卡访问账户。分行雇用柜员。上海大学计算机学院762023/12/10筛选结果4分行提供分行计算机和柜员终端。储户拥有账户。柜员输入事务事务修改账户柜员终端与分行计算机通信。分行保管账户ATM与中央计算机通信ATM输入事务中央计算机与分行通信总行由各个分行组成。总行拥有中央计算机。储户拥有现金兑换卡。现金兑换卡访问账户。分行雇用柜员。上海大学计算机学院772023/12/102.3进一步完善筛选后的关联…正名应该仔细选择含义更明确的名字作为关联名分解为了能够适用于不同的关联,必要时应该分解以前确定的类与对象补充发现了遗漏的关联就应该及时补上标明重数应该初步判定各个关联的类型,并粗略地确定关联的重数上海大学计算机学院782023/12/10…2.3进一步完善筛选后的关联分行提供分行计算机和柜员终端。储户拥有账户。柜员输入事务事务修改账户柜员终端与分行计算机通信。分行保管账户ATM与中央计算机通信ATM输入事务中央计算机与分行通信总行由各个分行组成。总行拥有中央计算机。储户拥有现金兑换卡。现金兑换卡访问账户。分行雇用柜员。柜员事务远程事务柜员输入柜员事务柜员事务输进柜员终端ATM输入远程事务现金兑换卡授权远程事务柜员事务修改账户远程事务修改账户上海大学计算机学院792023/12/10筛选关联:筛选结果分行提供分行计算机分行拥有柜员终端。储户拥有账户。柜员输入柜员事务柜员事务输进柜员终端柜员事务修改账户远程事务修改账户柜员终端与分行计算机通信。分行保管账户ATM与中央计算机通信ATM输入远程事务现金兑换卡授权远程事务中央计算机与分行通信总行由各个分行组成。总行拥有中央计算机。储户拥有现金兑换卡。现金兑换卡访问账户。分行雇用柜员。上海大学计算机学院802023/12/10ATM系统初始对象模型上海大学计算机学院812023/12/10第三步:划分主题按问题域而不是用功能分解方法来确定主题按照使不同主题内的对象相互间依赖和交互最少的原则来确定主题上海大学计算机学院822023/12/10上海大学计算机学院832023/12/10第四步:确定属性在分析阶段不要用属性来表示对象间的关系分析选择上海大学计算机学院842023/12/10属性分析需求陈述中的名词词组表示属性,形容词表示可枚举的具体属性“汽车的颜色”或“光标的位置”“红色的”、“打开的”领域知识和常识上海大学计算机学院852023/12/10属性选择常见错误属性误把对象当作属性在邮政目录中,“城市”是一个属性,而在人口普查中却应该把“城市”当作对象把链属性误作为属性把限定误当成属性误把内部状态当成了属性过于细化不一致的属性分行计算机1+1..*1..*1..*1..*1..*拥有通信雇佣保管拥有组成通信通信拥有输入修改1..*1..*1..*现金兑换卡1..*输入授权访问1..*1..*1..*修改拥有拥有分行代码总行总行名分行分行名卡号账户余额限额类型储户姓名地址分行代码中央计算机ATM现有金额付出金额远程事务类型日期金额远程事务类型日期金额1..*密码柜员姓名站号站号发放柜员终端1..*账号雇员号站号上海大学计算机学院872023/12/10第五步识别继承关系两种方式归纳抽象出现有类的共同性质泛化出父类“远程事务”和“柜员事务”

“事务”“ATM”和“柜员终端”

“输入站”演绎带有形容词修饰的名词词组往往暗示了一些具体类在分析阶段应该避免过度细化现金兑换卡1..*1..*密码输入站ATM现有金额付出金额柜员终端分行代码站号分行代码总行总行名分行分行名雇员号卡号站号分行计算机柜员事务远程事务柜员姓名站号账号账户余额限额类型储户姓名地址通信通信通信拥有拥有组成拥有雇佣保管拥有1..*拥有发放输入1..*输入1..*1..*授权1..*访问修改1..*事务类型日期金额上海大学计算机学院892023/12/10反复修改1233现金兑换卡1..*1..*密码输入站ATM现有金额付出金额柜员终端分行代码中央计算机站号分行代码总行总行名分行分行名雇员号卡号站号分行计算机柜员事务远程事务柜员姓名站号账号账户余额限额类型储户姓名地址通信通信通信拥有拥有组成拥有雇佣保管拥有1..*拥有发放输入1..*输入1..*1..*授权1..*访问修改1..*更新更新卡权限密码限额事务类型日期金额ATM现有金额付出金额分行代码总行总行名1..*现金兑换卡密码输入站柜员终端分行分行名雇员号卡号柜员事务远程事务柜员姓名站号账号账户余额限额类型储户姓名地址组成拥有雇佣保管拥有1..*拥有发放输入1..*输入1..*启动1..*修改1..*卡权限密码限额事务日期更新金额类型组成1..*拥有1..*1..*1..*访问标识1..*1..*1..*上海大学计算机学院912023/12/10上机实验4时间:第八周,4月30日(星期一),8:00-10:30地点:602,612内容:对象建模,画出系统的类图步骤:1、教师演示例子2、实验指导中的榜样3、自己选定项目的类图要求:1、建模工具:RationalRose2、团队操练形式,分工协作完成,五一后(5月8日)上交实验阶段性成果——类图上海大学计算机学院922023/12/10内容小结学习了对象建模1、确定类与对象2、确定关联3、划分主题4、确定属性5、识别继承关系反复修改应该掌握为给定需求进行对象建模,得到类图的方法与技术上海大学计算机学院932023/12/10回顾对象建模第一步:确定类与对象第二步:确定关联第三步:划分主题第四步:确定属性第五步:识别继承关系反复修改ATM现有金额付出金额分行代码总行总行名1..*现金兑换卡密码输入站柜员终端分行分行名雇员号卡号柜员事务远程事务柜员姓名站号账号账户余额限额类型储户姓名地址组成拥有雇佣保管拥有1..*拥有发放输入1..*输入1..*启动1..*修改1..*卡权限密码限额事务日期更新金额类型组成1..*拥有1..*1..*1..*访问标识1..*1..*1..*上海大学计算机学院952023/12/10内容线索面向对象分析的基本过程需求陈述建立对象模型----静态结构----对谁做建立动态模型----交互次序----什么时候做建立功能模型----数据变换----做什么定义服务上海大学计算机学院962023/12/10动态模型动态模型:基于事件共享而相互关联的一组状态图的集合事件跟踪图和状态图系统的动态行为:对象通过通信相互协作的方式以及系统中的对象在系统生命期中改变状态的方式。上海大学计算机学院972023/12/10建立动态模型的步骤1、编写脚本:编写典型交互行为的脚本2、画事件跟踪图:从脚本中提取出事件,确定触发每个事件的动作对象以及接受事件的目标对象3、画状态图:排列事件发生的次序,确定每个对象可能有的状态及状态间的转换关系,并用状态图描绘它们4、审查动态模型:比较各个对象的状态图,检查它们之间的一致性,确保事件之间的匹配上海大学计算机学院982023/12/10第1步:编写脚本脚本描述用户(或其他外部设备)与目标系统之间的一个或多个典型的交互过程,以便对目标系统的行为有更具体的认识目的:保证不遗漏重要的交互步骤,有助于确保整个系统交互过程的正确性和清晰性编写脚本步骤编写正常情况的脚本考虑特殊情况考虑出错情况上海大学计算机学院992023/12/10ATM系统的正常情况脚本ATM请储户插卡;储户插入现金兑换卡。ATM读卡上的分行代码和卡号。ATM要求储户输入密码;储户输入密码“1234”

。ATM请求总行验证卡号和密码;总行要求“39”号分行核对储户密码,然后通知ATM说这张卡有效。ATM要求储户选择事务类型(取款、查询等);储户选择“取款”。ATM要求储户输入取款额;储户输入“3000”。ATM确认取款额在规定的限额内,然后要求总行处理这个事务;总行把请求转给分行,分行成功地处理完这项事务并返回该账户的新余额。ATM吐出现金;储户拿走现金。ATM问储户是否继续这项事务;储户选择“不”。ATM打印账单,退出现金兑换卡;储户取走账单和卡。ATM请储户插卡。上海大学计算机学院1002023/12/10ATM系统的异常情况脚本ATM请储户插卡;储户插入现金兑换卡。ATM读卡上的分行代码和卡号。ATM要求密码;储户输入“8888”。ATM请求总行验证输入的数字和密码;总行在向有关分行咨询之后拒绝这张卡。ATM显示“密码错”,并请储户重新输入密码;储户输入“1234”;ATM请总行验证后知道这次输入的密码正确。ATM请储户选择事务类型;储户选择“取款”。ATM询问取款额;储户改变主意,他敲“取消”键。ATM退出现金兑换卡;储户拿走他的卡。ATM请储户插卡。上海大学计算机学院1012023/12/10设想用户界面向储户显示的信息0123456789ENTERCLEARCANCEL帐单出口现金出口上海大学计算机学院1022023/12/10第2步:画事件跟踪图用事件跟踪图把事件序列以及事件与对象的关系表示出来事件跟踪图实质上是扩充的脚本,可以认为事件跟踪图是简化的UML顺序图方法从脚本中提取出事件,确定触发每个事件的动作对象以及接受事件的目标对象画出事件跟踪图上海大学计算机学院1032023/12/10确定事件…事件包括系统与用户(或外部设备)交互的所有信号、输入、输出、中断、动作等传递信息的对象的动作应该把对控制流产生相同效果的那些事件组合在一起作为一类事件,并给它们取唯一的名字储户插入现金兑换卡、储户输入密码、ATM吐出现金等吐出现金:现金金额不同上海大学计算机学院1042023/12/10…确定事件对控制流有不同影响的那些事件区分开来,不要组合在一起确定每类事件的发送对象和接受对象账户有效、账户无效、密码错ATM请储户插卡;储户插入现金兑换卡发送对象接受对象上海大学计算机学院1052023/12/10ATM系统正常情况脚本的事件跟踪图:储户:ATM:总行:分行插卡要求密码输入密码验证用户帐户有效验证用户帐户有效要求事务类型输入类型要求输入取款额输入取款额请求处理事务请求处理分行事务分行事务成功事务成功吐出现金请求拿走现金拿走现金请求继续此事务结束印账单退卡请求拿走卡拿走卡显示主屏幕对象事件事件的发送对象时间向下递增用户类名事件的接受对象上海大学计算机学院1062023/12/10同步练习请画出ATM系统异常情况脚本的事件跟踪图ATM请储户插卡;储户插入现金兑换卡。ATM读卡上的分行代码和卡号。ATM要求密码;储户输入“8888”。ATM请求总行验证输入的数字和密码;总行在向有关分行咨询之后拒绝这张卡。ATM显示“密码错”,并请储户重新输入密码;储户输入“1234”;ATM请总行验证后知道这次输入的密码正确。ATM请储户选择事务类型;储户选择“取款”。ATM询问取款额;储户改变主意,他敲“取消”键。ATM退出现金兑换卡;储户拿走他的卡。ATM请储户插卡。上海大学计算机学院1072023/12/10ATM系统异常情况脚本的事件跟踪图:储户:ATM:总行:分行帐户无效插卡要求密码输入密码验证用户验证用户帐户无效取消请求拿走卡拿走卡显示主屏幕要求重新输入密码显示密码错要求事务类型输入类型要求输入取款额输入密码验证用户验证用户帐户有效帐户有效上海大学计算机学院1082023/12/10回忆:状态图的基本符号活动表事件名(参数表)/动作表达式事件:entry,exit和do事件表达式事件说明[守卫条件]/动作表达式事件说明:事件名(参数表)???初态终态中间状态上海大学计算机学院1092023/12/10举例上海大学计算机学院1102023/12/10第3步:画状态图…状态图:描绘对象的状态、触发状态转换的事件以及对象的行为每个类的动态行为用一张状态图来描绘针对事件跟踪图的类射入线状态图中的事件射出线状态图中的状态的行为两个事件之间的间隔就是一个状态上海大学计算机学院1112023/12/10…画状态图…do:要求密码do:验证帐户输入密码插卡主屏do:显示主屏储户ATM总行插卡要求密码请求验证帐户输入密码射入线状态图中的事件射出线状态图中的状态的行为上海大学计算机学院1122023/12/10…画状态图…do:验证帐户do:要求类型do:要求金额do:处理事务:ATM:总行插卡要求密码输入密码验证用户帐户有效要求事务类型输入类型要求输入取款额输入取款额请求处理事务事务成功吐出现金请求拿走现金拿走现金请求继续此事务结束印账单退卡请求拿走卡拿走卡显示主屏幕do:要求密码输入密码插卡主屏do:显示主屏do:吐出现金do:请求继续结束do:打印帐单退卡do:退卡帐户有效输入类型输入金额事务成功拿走现金结束拿走卡上海大学计算机学院1132023/12/10…画状态图脚本的分支点帐户有效输入类型输入金额输入密码do:要求密码do:验证帐户插卡主屏do:显示主屏do:要求类型do:要求金额do:处理事务do:吐出现金do:请求继续结束do:打印帐单退卡do:退卡事务成功拿走现金结束拿走卡密码错取消do:显示取消信息取消上海大学计算机学院1142023/12/10从事件跟踪图出发画状态图…考虑完正常事件之后再考虑边界情况和特殊情况“超时”事件出错处理上海大学计算机学院1152023/12/10…从事件跟踪图出发画状态图当状态图覆盖了所有脚本,包含了影响某类对象状态的全部事件时,该类的状态图就构造出来了利用这张状态图可能会发现一些遗漏的情况上海大学计算机学院1162023/12/10ATM类的状态图ATM类的状态图do/显示分行代码错分行代码错上海大学计算机学院1172023/12/10总行类状态图:ATM:总行:分行验证用户验证用户帐户有效帐户有效请求处理事务请求处理分行事务分行事务成功事务成功:ATM:总行:分行帐户无效验证用户验证用户帐户无效验证用户验证用户帐户有效帐户有效do/请求处理分行事务分行事务失败分行事务成功do/验证分行代码验证账户[代码无效]do/请求分行验卡[有效代码]无效账户密码错账户有效上海大学计算机学院1182023/12/10分行类状态图:ATM:总行:分行验证用户验证用户帐户有效帐户有效请求处理事务请求处理分行事务分行事务成功事务成功do/更新账户请求处理分行事务[失败][成功]do/验证卡号请求分行验卡[无效]do/验证密码[有效][错][正确]上海大学计算机学院1192023/12/10第4步:审查动态模型各个类的状态图通过共享事件合并起来,构成了系统的动态模型在完成了每个具有重要交互行为的类的状态图之后,应该检查系统级的完整性和一致性一般说来,每个事件都应该既有发送对象又有接受对象对于没有前驱或没有后继的状态应该着重审查,如果这个状态既不是交互序列的起点也不是终点,则发现了一个错误上海大学计算机学院1202023/12/10示例总行中的“分行代码错”在ATM类的状态图中并没有一个状态接受这个事件在ATM类的状态图中补充一个状态“do/显示分行代码错信息”,后继状态为“退卡”上海大学计算机学院1212023/12/10思考题面向对象分析中的状态图和传统方法需求分析阶段的状态转换图有什么不同?

电话系统的状态图上海大学计算机学院1222023/12/10同步练习一个文件对象File,其状态为Opened(打开)和Closed(关闭)两种状态。事件create(创建文件)、open(打开文本)、close(关闭文件)、read(读文件)、write(写文件)和destroy(释放对象)导致了File对象状态的转移。请用状态图将File对象的生命周期表示出来。

上海大学计算机学院1232023/12/10答案上海大学计算机学院1242023/12/10同步练习一个简单的编辑器可被视为有限的状态机,其状态为

Empty(空)、Waitingforacommand(等待命令)和

Waitingfortext(等待文本)。事件

Loadfile(装载文件)、Inserttext(插入文本)、Insertcharacter(插入字符)和

Saveandquit(保存并退出)导致了状态机中的转移。

上海大学计算机学院1252023/12/10答案EmptyWaitforacommandWaitfortextLoadfileInserttextInsertacharaterSaveandquit上海大学计算机学院1262023/12/10课外练习…牙科诊所管理系统的需求陈述王大夫在小镇上开了一家牙科诊所。他有一个牙科助手、一个牙科保健员和一个接待员。王大夫需要一个软件系统来管理预约。当病人打电话预约时,接待员将查阅预约登记表,如果病人申请的就诊时间与已定下的预约时间冲突,则接待员建议一个就诊时间以安排病人尽早得到诊治。如果病人同意建议的就诊时间,接待员将输入约定时间和病人的名字。系统将核实病人的名字并提供记录的病人数据,数据包括病人的病历号等。在每次治疗或清洗后,助手和保健员将标记相应的预约诊治已经完成,如果必要的话会安排病人的下一个再来。上海大学计算机学院1272023/12/10…课外练习牙科诊所管理系统的需求陈述请写出牙科诊所管理系统的脚本,并画出其状态图系统能够按病人姓名和按日期进行查询,能够显示记录的病人数据和预约信息。接待员可以取消预约,可以打印出前两天预约尚未接诊的病人清单。系统可以从病人记录中获知病人的电话号码,接待员还可以打印出关于所有病人的每天和每周的工作安排。上海大学计算机学院1282023/12/10上机实验5时间:第九周,5月8日(星期二),8:00-10:30地点:602,612内容:动态建模,画状态图、序列图步骤:1、教师演示例子2、附录三,四、动态建模3、自己选定项目的状态图、序列图要求:1、建模工具:RationalRose2、团队操练形式,分工协作完成,第十周(5月15日)之前上交实验阶段性成果——状态图、序列图上海大学计算机学院1292023/12/10课外阅读:合作图合作图用于描述相互合作的对象间的交互关系和连接关系。用带有消息串的消息来描述对象间的交互表示对象之间的关系组成、聚集、限定以及导航关系消息号发送的消息上海大学计算机学院1302023/12/10合作图概述上海大学计算机学院1312023/12/10合作图中的模型元素——对象上海大学计算机学院1322023/12/10合作图中的模型元素——链接上海大学计算机学院1332023/12/10合作图中的模型元素——消息上海大学计算机学院1342023/12/10应用:电路设计上海大学计算机学院1352023/12/10应用:统计销售结果上海大学计算机学院1362023/12/10内容线索面向对象分析的基本过程需求陈述建立对象模型建立动态模型建立功能模型定义服务上海大学计算机学院13720

温馨提示

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

评论

0/150

提交评论