软件工程-面向对象分析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
OOA是分析用户需求,而建立问题域需求模型的过程:
1)OOA从分析用户需求陈述的文件开始:用户(代表)单方面写出需 求陈述;系统分析员配合用户共同写出需求陈述;招标方式的“标 书”作为初步的需求陈述。
2)建立和确认分析模型:系统分析员在搞清系统需求的基础上,应建 立系统的对象模型、动态模型和功能模型,从不同侧面完整、准确 地描述目标系统。
程本身是一个逐步深化、反复迭代的过程。
单10.3.击1 确此定类与处对象编辑母版标题样 式基本思想是:首先找出与问题空间相关的所有候选类与对象,然后从
候选类与对象中筛选掉不正确的或不必要的。 1、找出候选的类与对象 寻找类与对象的一般方法:对象是对问题空间相关实体或事物的抽象,
既可以是客观实体,也可以是抽象概念。一般划分5类: 1) 可感知的物理实体:如飞机、汽车、书、房屋等等。 2) 人或组织的角色:例医生、教师、雇主、计算机系、财务处等。 3) 应该记忆的事件:如飞行、演出、访问、交通事故等。 4) 两个或多个对象的相互作用:如购买、纳税、结婚等。 5) 需要说明的概念:如政策、保险政策、版权法等。 按照上述5类抽取和寻找系统的全部必要类和对象。
全理解用户需求及与问题域相关的背景知识; 2)表达需求:用某wk.baidu.com无二义性的方式把这种理解表达成软件需求规格
说明(对象模型、动态模型和功能模型); 3)验证需求:OO分析过程是一个由浅入深、由表及里的理解和表达过
程,对需求的正确性、完整性和有效性必须进行验证、复审和修正
单10.1击面此向对处象分编析的基辑本过母程 版标题样 式10.1.1 概述
单击此处编辑母版标题样 式 一种寻找对象类的非正式分析方法:这种分析方法以需求陈述为依据,
把陈述中的名词作为类与对象的候选者;用形容词或名词作为确定属 性的候选者;把动词作为服务(操作)的候选者。
由于需求陈述用自然语言描述的随意性、隐含性和重复性,这种简单 方法确定的候选者是非常不准确的,其中往往包含大量不正确的或不 必要的事物,还必须经过更进一步的严格筛选。
单击此处编辑母版标题样 式
经过初步筛选,ATM系统保留的类与对象为:
ATM、中央计算机、分行计算机、柜员终端、总行、分行、 柜员、储户、账户、事务、现金兑换卡。
单击此处编辑母版标题样 式10.3.2 确定关联
两个或多个对象之间的相互依赖、相互作用的关系就是关联。实际上, 关联、聚集、依赖等都可视为关联关系。 1. 初步确定关联(候选关联) 基本方法:以需求陈述中描述性动词或动词词组为纽带,确定类与对 象之间的关联关系。(语法:主语+谓语+宾语) 寻找范围:直接提取需求陈述中的动词词组;分析发现陈述中隐含的 关联;与用户及领域专家讨论获取关联。 以ATM系统为例,经过分析初步确定出下列关联:
单击此处编辑母版标题样 式柜员终端与分行计算机通信。
柜员输入针对账户的事务。 ATM与中央计算机交换关于事务的信息。 中央计算机确定事务与分行的对应关系。 ATM读现金兑换卡。 ATM与用户交互。 ATM吐出现金。 ATM打印账单。 系统处理并发的访问。
单击此处编辑母版标题样 式银行柜员使用柜员终端处理储户提交的储蓄事务。储户可以用现金或支
票向自己拥有的某个账户内存款或开新账户。储户也可以从自己的账户 中取款。通常,一个储户可能拥有多个账户。柜员负责把储户提交的存 款或取款事务输进柜员终端,接收储户交来的现金或支票,或付给储户 现金。柜员终端与相应的分行计算机通信,分行计算机具体处理针对某 个账户的事务并且维护账户。
图10.2 ATM系统
单击此处编辑母版标题样 式自动取款机(ATM)系统需求陈述:
某银行拟开发一个自动取款机系统,它是一个由自动取款机、中央计 算机、分行计算机及柜员终端组成的网络系统。ATM和中央计算机由总 行投资购买。总行拥有多台ATM,分别设在全市各主要街道上。分行负 责提供分行计算机和柜员终端。柜员终端设在分行营业厅及分行下属 的各个储蓄所内。该系统的软件开发成本由各个分行分摊。
单击此处编辑母版标题样 式 第10章 面向对象分析(OOA)
10.1 面向对象分析的基本过程 10.2 需求陈述 10.3 建立对象模型 10.4 建立动态模型 10.5 建立功能模型 10.6 定义服务
单击此处编辑母版标题样 式分析综述:OO分析的过程就是按照OO分析方法提取系统需求的过程。
OOA对应的分析过程包括: 1)理解需求:系统分析员通过与用户及领域专家的充分交流,力求完
单击此处编辑母版标题样 式5)操作:在需求陈述中既可作为名词,又可作为动词的词,应该慎重
考虑它们在本问题中的含义,以便正确决定他们作为类还是操作。
6)实现:在分析阶段不应该过早地考虑怎样实现目标系统。因此,应 该去掉仅和实现有关的候选的类与对象。
在ATM系统中,“事务日志”是对一系列事务的记录,它的确切表示方 式是面向对象设计的议题;“通信链路”在逻辑上是一种联系,在 系统实现时它是关联类的物理实现。应该暂时去掉 “事务日志”和 “通信链路”这两个类,在设计或实现时再考虑它们。
以ATM系统为例:银行实际指总行或分行,访问在这里实际指事务,此 外还有一些笼统含糊的名词。在本例中应该去掉“银行”、“网 络”、“系统”、“软件”、“信息”、“访问”等候选类。
4)属性:把描述属性的名词应从候选类与对象中去掉。
在ATM系统的例子中,“现金”、“支票”、“取款额”、“账单”、 “余额”、“分行代码”、“卡号”、“密码”、“类型”等,实 际上都应该作为属性对待。
图10.1 复杂问题的对象模型的5个层次
单击此处编辑母版标题样 式 对象模型5个层次的含义:类与对象、结构(类或对象之间的关系)、
属性和服务的概念,已经在第9章介绍过。现在介绍主题的概念。
主题含义:主题是指导开发人员和用户理解大型、复杂模型的一种机 制。实际上,主题就是对对象模型所涉及的诸多类和对象按照问题空 间的组成范围(方面)进行划分和归类。
关系不大的类与对象。
ATM系统为例:系统不处理分摊软件开发成本的问题,而且ATM和柜 员终端放置的地点与本软件的关系也不大。因此,应该去掉候选 类“成本”、“市”、“街道”、“营业厅”和“储蓄所”。
单击此处编辑母版标题样 3)笼统:删除笼统的、泛指的、模糊的名词对应的候选类与对象,保 式留有更明确、更具体的名词对应的类与对象。
动态模型和功能模型中都包含了对象模型中的操作(即服务或方法)。
单击此处编辑母版标题样 2)对象模型的5个层次:主题层、类与对象层、结构层、属性层和服务 式层,如下图所示。这5个层次按照从上到下或从抽象到具体的层面一
层比一层更细地给出了对象模型的更多细节。在概念上,这5个层次 是整个模型的5张水平切片。
单击此处编辑母版标题样 1)直接提取动词短语得出的关联 式ATM、中央计算机、分行计算机及柜员终端组成网络。
总行拥有多台ATM。 ATM设在主要街道上。 分行提供分行计算机和柜员终端。 柜员终端设在分行营业厅及储蓄所内。 分行分摊软件开发成本。 储户拥有账户。 分行计算机处理针对账户的事务。 分行计算机维护账户。
5个层次对应着建立对象模型的5项主要活动:找出类与对象,识别结 构,识别主题,定义属性,定义服务。
面向对象分析的一般步骤:寻找类与对象,识别结构,识别主题,定 义属性,建立动态模型,建立功能模型,定义服务。
单10.2击需此求陈处述 编辑母版标题样 式10.2.1 书写要点
1)写什么:需求陈述的内容包括:问题范围,功能需求,性能需求, 应用环境及约束条件等。简单地讲,需求陈述应该阐明系统“做什 么”、“做得怎么样”、“受何约束”,而不管“怎样做”。
分析抽取和确定问题域中的对象类; 确定对象类之间的关系(关联或结构); 对于大型复杂问题还要进一步划分出若干个主题; 确定对象类和关联类中的属性; 利用适当的继承关系进一步合并和组织类; 对类中操作需等到建立了动态模型和功能模型之后再确定。 注意:上述建立对象模型的步骤顺序是不严格限定的,因为分析建模过
单击此处编辑母版标题样
10.3 建立对象模型
式对象模型的作用:对象模型描述问题域中的“类与对象”以及它
们之间的相互关系,表示了目标系统的静态数据结构。
建立对象模型的信息来源:需求陈述、应用领域的专业知识以及 关于客观世界的常识,是建立对象模型时的主要信息来源。
单击此处编辑母版标题样 式建立对象模型的步骤:由于对象模型有5个层次。典型的工作步骤是:
删除不正确或不必要的类与对象的筛选准则:
1)冗余:如果两个类表达了同样的信息,则应该保留行业规范名称。
ATM例中:储户与用户,现金兑换卡与磁卡及副本分别描述了相同的两 类信息,因此,仅保留“储户”和“现金兑换卡”这两个类,应该 去掉“用户”、“磁卡”、“副本”等冗余的类。
单击此处编辑母版标题样 式2)无关:保留与本问题密切相关的类与对象,删除与本问题无关或
2)怎么写:文字描述要做到语法正确,内容完整,条理清晰。准确使 用名词、动词、形容词和同义词。
3)需求陈述作用:需求陈述仅仅是理解用户需求的出发点,千万不可 将此陈述当成完整、准确、有效和一成不变的文档。
单击此处编辑母版标题样 10.2.2 需求陈述书写举例 式 下图所示为自动取款机(ATM)系统(作为OO分析和OO设计实例)
下面以ATM系统为例,说明非正式分析过程。认真阅读ATM需求陈述, 从中找出相关名词,可以把它们作为类与对象的初步的候选者:
单击此处编辑母版标题样 式银行,自动取款机(ATM),系统,中央计算机,分行计算机,柜员终端,
网络,总行,分行,软件,成本,市,街道,营业厅,储蓄所,柜员, 储户,现金,支票,账户,事务,现金兑换卡,余额,磁卡,分行代码, 卡号,用户,副本,信息,密码,类型,取款额,账单,访问。
单10.1击.2 此3个子处模型编与5个辑层次母版标题样 式1)三个模型:对象模型,描述系统的静态数据结构; 动态模型,描
述系统的交互次序和行为过程;功能模型,描述数据变换结果。
三个模型的侧重点:对象模型对于任何系统都是最基础、最重要和最 核心的,是必需的;动态模型对于涉及交互行为和时序过程(如用户界 面及过程控制)的系统是重要的;功能模型对于解决运算量很大的问题 (如科学与工程计算等)是重要的。
单击此处编辑母版标题样 式拥有银行账户的储户有权申请领取现金兑换卡。使用现金兑换卡可以通
过ATM访问自己的账户。目前仅限于用现金兑换卡在ATM上提取现金(即 取款),或查询有关自己账户的信息(例如,某个指定账户上的余额)。 将来可能还要求使用ATM办理转账、存款等事务。
所谓现金兑换卡就是一张特制的磁卡,上面有分行代码和卡号。分行代 码惟一标识总行下属的一个分行,卡号确定了这张卡可以访问哪些账户。 通常,一张卡可以访问储户的若干个账户,但是不一定能访问这个储户 的全部账户。每张现金兑换卡仅属于一个储户所有,但是,同一张卡可 能有多个副本,因此,必须考虑同时在若干台ATM上使用同样的现金兑 换卡的可能性。也就是说,系统应该能够处理并发的访问。
单击此处编辑母版标题样 式当用户把现金兑换卡插入ATM之后,ATM就与用户交互,以获取有关这次
事务的信息,并与中央计算机交换关于事务的信息。首先,ATM要求用 户输入密码,接下来ATM把从这张卡上读到的信息以及用户输入的密码 传给中央计算机,请求中央计算机核对这些信息并处理这次事务。中央 计算机根据卡上的分行代码确定这次事务与分行的对应关系,并且委托 相应的分行计算机验证用户密码。如果用户输入的密码是正确的,ATM 就要求用户选择事务类型(取款、查询等)。当用户选择取款时,ATM请 求用户输入取款额。最后,ATM从现金出口吐出现金,并且打印出账单 交给用户。
注意:分析员应该根据领域知识或常识进一步把隐含的类与对象提取出 来。例如,ATM系统必须包含“通信链路”和“事务日志”实体,应该 补充进来。
单击此处编辑母版标题样 式2. 筛选出正确的类与对象
候选类与对象可能包括一些不正确的或不必要的类与对象,应该筛选掉, 仅保留确那些确实需要记录信息或提供服务的对象。
1)OOA从分析用户需求陈述的文件开始:用户(代表)单方面写出需 求陈述;系统分析员配合用户共同写出需求陈述;招标方式的“标 书”作为初步的需求陈述。
2)建立和确认分析模型:系统分析员在搞清系统需求的基础上,应建 立系统的对象模型、动态模型和功能模型,从不同侧面完整、准确 地描述目标系统。
程本身是一个逐步深化、反复迭代的过程。
单10.3.击1 确此定类与处对象编辑母版标题样 式基本思想是:首先找出与问题空间相关的所有候选类与对象,然后从
候选类与对象中筛选掉不正确的或不必要的。 1、找出候选的类与对象 寻找类与对象的一般方法:对象是对问题空间相关实体或事物的抽象,
既可以是客观实体,也可以是抽象概念。一般划分5类: 1) 可感知的物理实体:如飞机、汽车、书、房屋等等。 2) 人或组织的角色:例医生、教师、雇主、计算机系、财务处等。 3) 应该记忆的事件:如飞行、演出、访问、交通事故等。 4) 两个或多个对象的相互作用:如购买、纳税、结婚等。 5) 需要说明的概念:如政策、保险政策、版权法等。 按照上述5类抽取和寻找系统的全部必要类和对象。
全理解用户需求及与问题域相关的背景知识; 2)表达需求:用某wk.baidu.com无二义性的方式把这种理解表达成软件需求规格
说明(对象模型、动态模型和功能模型); 3)验证需求:OO分析过程是一个由浅入深、由表及里的理解和表达过
程,对需求的正确性、完整性和有效性必须进行验证、复审和修正
单10.1击面此向对处象分编析的基辑本过母程 版标题样 式10.1.1 概述
单击此处编辑母版标题样 式 一种寻找对象类的非正式分析方法:这种分析方法以需求陈述为依据,
把陈述中的名词作为类与对象的候选者;用形容词或名词作为确定属 性的候选者;把动词作为服务(操作)的候选者。
由于需求陈述用自然语言描述的随意性、隐含性和重复性,这种简单 方法确定的候选者是非常不准确的,其中往往包含大量不正确的或不 必要的事物,还必须经过更进一步的严格筛选。
单击此处编辑母版标题样 式
经过初步筛选,ATM系统保留的类与对象为:
ATM、中央计算机、分行计算机、柜员终端、总行、分行、 柜员、储户、账户、事务、现金兑换卡。
单击此处编辑母版标题样 式10.3.2 确定关联
两个或多个对象之间的相互依赖、相互作用的关系就是关联。实际上, 关联、聚集、依赖等都可视为关联关系。 1. 初步确定关联(候选关联) 基本方法:以需求陈述中描述性动词或动词词组为纽带,确定类与对 象之间的关联关系。(语法:主语+谓语+宾语) 寻找范围:直接提取需求陈述中的动词词组;分析发现陈述中隐含的 关联;与用户及领域专家讨论获取关联。 以ATM系统为例,经过分析初步确定出下列关联:
单击此处编辑母版标题样 式柜员终端与分行计算机通信。
柜员输入针对账户的事务。 ATM与中央计算机交换关于事务的信息。 中央计算机确定事务与分行的对应关系。 ATM读现金兑换卡。 ATM与用户交互。 ATM吐出现金。 ATM打印账单。 系统处理并发的访问。
单击此处编辑母版标题样 式银行柜员使用柜员终端处理储户提交的储蓄事务。储户可以用现金或支
票向自己拥有的某个账户内存款或开新账户。储户也可以从自己的账户 中取款。通常,一个储户可能拥有多个账户。柜员负责把储户提交的存 款或取款事务输进柜员终端,接收储户交来的现金或支票,或付给储户 现金。柜员终端与相应的分行计算机通信,分行计算机具体处理针对某 个账户的事务并且维护账户。
图10.2 ATM系统
单击此处编辑母版标题样 式自动取款机(ATM)系统需求陈述:
某银行拟开发一个自动取款机系统,它是一个由自动取款机、中央计 算机、分行计算机及柜员终端组成的网络系统。ATM和中央计算机由总 行投资购买。总行拥有多台ATM,分别设在全市各主要街道上。分行负 责提供分行计算机和柜员终端。柜员终端设在分行营业厅及分行下属 的各个储蓄所内。该系统的软件开发成本由各个分行分摊。
单击此处编辑母版标题样 式 第10章 面向对象分析(OOA)
10.1 面向对象分析的基本过程 10.2 需求陈述 10.3 建立对象模型 10.4 建立动态模型 10.5 建立功能模型 10.6 定义服务
单击此处编辑母版标题样 式分析综述:OO分析的过程就是按照OO分析方法提取系统需求的过程。
OOA对应的分析过程包括: 1)理解需求:系统分析员通过与用户及领域专家的充分交流,力求完
单击此处编辑母版标题样 式5)操作:在需求陈述中既可作为名词,又可作为动词的词,应该慎重
考虑它们在本问题中的含义,以便正确决定他们作为类还是操作。
6)实现:在分析阶段不应该过早地考虑怎样实现目标系统。因此,应 该去掉仅和实现有关的候选的类与对象。
在ATM系统中,“事务日志”是对一系列事务的记录,它的确切表示方 式是面向对象设计的议题;“通信链路”在逻辑上是一种联系,在 系统实现时它是关联类的物理实现。应该暂时去掉 “事务日志”和 “通信链路”这两个类,在设计或实现时再考虑它们。
以ATM系统为例:银行实际指总行或分行,访问在这里实际指事务,此 外还有一些笼统含糊的名词。在本例中应该去掉“银行”、“网 络”、“系统”、“软件”、“信息”、“访问”等候选类。
4)属性:把描述属性的名词应从候选类与对象中去掉。
在ATM系统的例子中,“现金”、“支票”、“取款额”、“账单”、 “余额”、“分行代码”、“卡号”、“密码”、“类型”等,实 际上都应该作为属性对待。
图10.1 复杂问题的对象模型的5个层次
单击此处编辑母版标题样 式 对象模型5个层次的含义:类与对象、结构(类或对象之间的关系)、
属性和服务的概念,已经在第9章介绍过。现在介绍主题的概念。
主题含义:主题是指导开发人员和用户理解大型、复杂模型的一种机 制。实际上,主题就是对对象模型所涉及的诸多类和对象按照问题空 间的组成范围(方面)进行划分和归类。
关系不大的类与对象。
ATM系统为例:系统不处理分摊软件开发成本的问题,而且ATM和柜 员终端放置的地点与本软件的关系也不大。因此,应该去掉候选 类“成本”、“市”、“街道”、“营业厅”和“储蓄所”。
单击此处编辑母版标题样 3)笼统:删除笼统的、泛指的、模糊的名词对应的候选类与对象,保 式留有更明确、更具体的名词对应的类与对象。
动态模型和功能模型中都包含了对象模型中的操作(即服务或方法)。
单击此处编辑母版标题样 2)对象模型的5个层次:主题层、类与对象层、结构层、属性层和服务 式层,如下图所示。这5个层次按照从上到下或从抽象到具体的层面一
层比一层更细地给出了对象模型的更多细节。在概念上,这5个层次 是整个模型的5张水平切片。
单击此处编辑母版标题样 1)直接提取动词短语得出的关联 式ATM、中央计算机、分行计算机及柜员终端组成网络。
总行拥有多台ATM。 ATM设在主要街道上。 分行提供分行计算机和柜员终端。 柜员终端设在分行营业厅及储蓄所内。 分行分摊软件开发成本。 储户拥有账户。 分行计算机处理针对账户的事务。 分行计算机维护账户。
5个层次对应着建立对象模型的5项主要活动:找出类与对象,识别结 构,识别主题,定义属性,定义服务。
面向对象分析的一般步骤:寻找类与对象,识别结构,识别主题,定 义属性,建立动态模型,建立功能模型,定义服务。
单10.2击需此求陈处述 编辑母版标题样 式10.2.1 书写要点
1)写什么:需求陈述的内容包括:问题范围,功能需求,性能需求, 应用环境及约束条件等。简单地讲,需求陈述应该阐明系统“做什 么”、“做得怎么样”、“受何约束”,而不管“怎样做”。
分析抽取和确定问题域中的对象类; 确定对象类之间的关系(关联或结构); 对于大型复杂问题还要进一步划分出若干个主题; 确定对象类和关联类中的属性; 利用适当的继承关系进一步合并和组织类; 对类中操作需等到建立了动态模型和功能模型之后再确定。 注意:上述建立对象模型的步骤顺序是不严格限定的,因为分析建模过
单击此处编辑母版标题样
10.3 建立对象模型
式对象模型的作用:对象模型描述问题域中的“类与对象”以及它
们之间的相互关系,表示了目标系统的静态数据结构。
建立对象模型的信息来源:需求陈述、应用领域的专业知识以及 关于客观世界的常识,是建立对象模型时的主要信息来源。
单击此处编辑母版标题样 式建立对象模型的步骤:由于对象模型有5个层次。典型的工作步骤是:
删除不正确或不必要的类与对象的筛选准则:
1)冗余:如果两个类表达了同样的信息,则应该保留行业规范名称。
ATM例中:储户与用户,现金兑换卡与磁卡及副本分别描述了相同的两 类信息,因此,仅保留“储户”和“现金兑换卡”这两个类,应该 去掉“用户”、“磁卡”、“副本”等冗余的类。
单击此处编辑母版标题样 式2)无关:保留与本问题密切相关的类与对象,删除与本问题无关或
2)怎么写:文字描述要做到语法正确,内容完整,条理清晰。准确使 用名词、动词、形容词和同义词。
3)需求陈述作用:需求陈述仅仅是理解用户需求的出发点,千万不可 将此陈述当成完整、准确、有效和一成不变的文档。
单击此处编辑母版标题样 10.2.2 需求陈述书写举例 式 下图所示为自动取款机(ATM)系统(作为OO分析和OO设计实例)
下面以ATM系统为例,说明非正式分析过程。认真阅读ATM需求陈述, 从中找出相关名词,可以把它们作为类与对象的初步的候选者:
单击此处编辑母版标题样 式银行,自动取款机(ATM),系统,中央计算机,分行计算机,柜员终端,
网络,总行,分行,软件,成本,市,街道,营业厅,储蓄所,柜员, 储户,现金,支票,账户,事务,现金兑换卡,余额,磁卡,分行代码, 卡号,用户,副本,信息,密码,类型,取款额,账单,访问。
单10.1击.2 此3个子处模型编与5个辑层次母版标题样 式1)三个模型:对象模型,描述系统的静态数据结构; 动态模型,描
述系统的交互次序和行为过程;功能模型,描述数据变换结果。
三个模型的侧重点:对象模型对于任何系统都是最基础、最重要和最 核心的,是必需的;动态模型对于涉及交互行为和时序过程(如用户界 面及过程控制)的系统是重要的;功能模型对于解决运算量很大的问题 (如科学与工程计算等)是重要的。
单击此处编辑母版标题样 式拥有银行账户的储户有权申请领取现金兑换卡。使用现金兑换卡可以通
过ATM访问自己的账户。目前仅限于用现金兑换卡在ATM上提取现金(即 取款),或查询有关自己账户的信息(例如,某个指定账户上的余额)。 将来可能还要求使用ATM办理转账、存款等事务。
所谓现金兑换卡就是一张特制的磁卡,上面有分行代码和卡号。分行代 码惟一标识总行下属的一个分行,卡号确定了这张卡可以访问哪些账户。 通常,一张卡可以访问储户的若干个账户,但是不一定能访问这个储户 的全部账户。每张现金兑换卡仅属于一个储户所有,但是,同一张卡可 能有多个副本,因此,必须考虑同时在若干台ATM上使用同样的现金兑 换卡的可能性。也就是说,系统应该能够处理并发的访问。
单击此处编辑母版标题样 式当用户把现金兑换卡插入ATM之后,ATM就与用户交互,以获取有关这次
事务的信息,并与中央计算机交换关于事务的信息。首先,ATM要求用 户输入密码,接下来ATM把从这张卡上读到的信息以及用户输入的密码 传给中央计算机,请求中央计算机核对这些信息并处理这次事务。中央 计算机根据卡上的分行代码确定这次事务与分行的对应关系,并且委托 相应的分行计算机验证用户密码。如果用户输入的密码是正确的,ATM 就要求用户选择事务类型(取款、查询等)。当用户选择取款时,ATM请 求用户输入取款额。最后,ATM从现金出口吐出现金,并且打印出账单 交给用户。
注意:分析员应该根据领域知识或常识进一步把隐含的类与对象提取出 来。例如,ATM系统必须包含“通信链路”和“事务日志”实体,应该 补充进来。
单击此处编辑母版标题样 式2. 筛选出正确的类与对象
候选类与对象可能包括一些不正确的或不必要的类与对象,应该筛选掉, 仅保留确那些确实需要记录信息或提供服务的对象。