第9章面向对象方分析(完整ok)_第1页
第9章面向对象方分析(完整ok)_第2页
第9章面向对象方分析(完整ok)_第3页
第9章面向对象方分析(完整ok)_第4页
第9章面向对象方分析(完整ok)_第5页
已阅读5页,还剩90页未读 继续免费阅读

下载本文档

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

文档简介

1、导入:分析工作三项内容导入:分析工作三项内容导入导入建立简洁、精确、可理解的正确模型建立简洁、精确、可理解的正确模型分析他们相互间的关系分析他们相互间的关系识别出问题域内的类与对象识别出问题域内的类与对象面向对象分面向对象分析的关键析的关键提纲提纲面向对象面向对象分析的基分析的基本过程本过程需求陈述需求陈述建立对象建立对象模型模型建立动态建立动态模型模型建立功能建立功能模型模型定义服务定义服务9.1 面向对象分析的基本过程面向对象分析的基本过程面向对象分析,就是抽取和整理用户需求并建立问面向对象分析,就是抽取和整理用户需求并建立问题域精确模型的过程。题域精确模型的过程。用户用户系统分析员系统分

2、析员配合用户配合用户标书标书改正、补充需求陈述,保证完整性、正确性改正、补充需求陈述,保证完整性、正确性9.1 面向对象分析的基本过程面向对象分析的基本过程面向对象分析,就是抽取和整理用户需求并建立问面向对象分析,就是抽取和整理用户需求并建立问题域精确模型的过程。题域精确模型的过程。纠正问题域纠正问题域的误解的误解设计阶段的设计阶段的基础基础模型精确、模型精确、简洁简洁需要领域专家配合,充分保障结果的稳定性和可重需要领域专家配合,充分保障结果的稳定性和可重用性用性9.1 面向对象分析的基本过程面向对象分析的基本过程3 3个子模型个子模型5 5个层次个层次9.1 面向对象分析的基本过程面向对象分

3、析的基本过程3 3个子模型个子模型几乎解决任何几乎解决任何一个问题,都一个问题,都需要从客观世需要从客观世界实体及实体界实体及实体间相互关系抽间相互关系抽象出极有价值象出极有价值的对象模型的对象模型解决运算量很大解决运算量很大的问题的问题( (例如,例如,高级语言编译、高级语言编译、科学与工程计科学与工程计算等算等) ),则涉及,则涉及重要的功能模型重要的功能模型问题涉及交互作问题涉及交互作用和时序时用和时序时( (例例如,用户界面及如,用户界面及过程控制等过程控制等) ),动态模型是重动态模型是重要的要的9.1 面向对象分析的基本过程面向对象分析的基本过程对象模型的对象模型的5 5个层次个层

4、次主题层主题层类与对象层类与对象层结构层结构层属性层属性层服务层服务层逐层显示进一步逐层显示进一步细节细节5 5个层次个层次9.1 面向对象分析的基本过程面向对象分析的基本过程通过控制可见通过控制可见层次来控制可层次来控制可见性见性 通过主题层来通过主题层来描述总体模型,描述总体模型,指导读者注意指导读者注意力力指导读者理解指导读者理解大型、复杂模大型、复杂模型的一种机制型的一种机制主题主题9.1 面向对象分析的基本过程面向对象分析的基本过程提纲提纲需求陈述需求陈述建立对象建立对象模型模型建立动态建立动态模型模型建立功能建立功能模型模型定义服务定义服务9.2 需求陈述需求陈述做什么做什么提需求

5、提需求系统性质系统性质避免过多约束避免过多约束而不是如而不是如何做何做而不是提而不是提解决方法解决方法说明必选说明必选和可选和可选对设计策对设计策略不过多略不过多约束,不约束,不描述系统描述系统的内部结的内部结果果9.2 需求陈述需求陈述某银行拟开发一个自动取款机系统,它是一个由自某银行拟开发一个自动取款机系统,它是一个由自动取款机、中央计算机、分行计算机及柜员终端组动取款机、中央计算机、分行计算机及柜员终端组成的网络系统。成的网络系统。ATMATM和中央计算机由总行投资购买。总行拥有多台和中央计算机由总行投资购买。总行拥有多台ATMATM,分别设在全市各主要街道上。,分别设在全市各主要街道上

6、。分行负责提供分行计算机和柜员终端。柜员终端设分行负责提供分行计算机和柜员终端。柜员终端设在分行营业厅及分行下属的各个储蓄所内。该系统在分行营业厅及分行下属的各个储蓄所内。该系统的软件开发成本由各个分行分摊。的软件开发成本由各个分行分摊。9.2 需求陈述需求陈述银行柜员使用柜员终端处理储户提交的储蓄事务。银行柜员使用柜员终端处理储户提交的储蓄事务。储户可以用现金或支票向自己拥有的某个账户内存储户可以用现金或支票向自己拥有的某个账户内存款或开新账户。储户也可以从自己的账户中取款。款或开新账户。储户也可以从自己的账户中取款。通常,一个储户可能拥有多个账户。通常,一个储户可能拥有多个账户。柜员负责把

7、储户提交的存款或取款事务输进柜员终柜员负责把储户提交的存款或取款事务输进柜员终端,接收储户交来的现金或支票,或付给储户现金。端,接收储户交来的现金或支票,或付给储户现金。柜员终端与相应的分行计算机通信,分行计算机具柜员终端与相应的分行计算机通信,分行计算机具体处理针对某个账户的事务并且维护账户。体处理针对某个账户的事务并且维护账户。9.2 需求陈述需求陈述拥有银行账户的储户有权申请领取现金兑换卡。拥有银行账户的储户有权申请领取现金兑换卡。使用现金兑换卡可以通过使用现金兑换卡可以通过ATMATM访问自己的账户。访问自己的账户。目前仅限于用现金兑换卡在目前仅限于用现金兑换卡在ATMATM上提取现金

8、上提取现金( (即取即取款款) ),或查询有关自己账户的信息,或查询有关自己账户的信息( (例如,某个指定例如,某个指定账户上的余额账户上的余额) )。将来可能还要求使用将来可能还要求使用ATMATM办理转账、存款等事务。办理转账、存款等事务。9.2 需求陈述需求陈述所谓现金兑换卡就是一张特制的磁卡,上面有分行所谓现金兑换卡就是一张特制的磁卡,上面有分行代码和卡号。分行代码惟一标识总行下属的一个分代码和卡号。分行代码惟一标识总行下属的一个分行,卡号确定了这张卡可以访问哪些账户。行,卡号确定了这张卡可以访问哪些账户。通常,一张卡可以访问储户的若干个账户,但是不通常,一张卡可以访问储户的若干个账户

9、,但是不一定能访问这个储户的全部账户。一定能访问这个储户的全部账户。每张现金兑换卡仅属于一个储户所有,但是,同一每张现金兑换卡仅属于一个储户所有,但是,同一张卡可能有多个副本,因此,必须考虑同时在若干张卡可能有多个副本,因此,必须考虑同时在若干台台ATMATM上使用同样的现金兑换卡的可能性。上使用同样的现金兑换卡的可能性。9.2 需求陈述需求陈述当用户把现金兑换卡插入当用户把现金兑换卡插入ATMATM之后,之后,ATMATM就与用户交互,以就与用户交互,以获取有关这次事务的信息,并与中央计算机交换关于事务的获取有关这次事务的信息,并与中央计算机交换关于事务的信息。信息。首先,首先,ATMATM

10、要求用户输入密码,接下来要求用户输入密码,接下来ATMATM把从这张卡上读把从这张卡上读到的信息以及用户输入的密码传给中央计算机,请求中央计到的信息以及用户输入的密码传给中央计算机,请求中央计算机核对这些信息并处理这次事务。中央计算机根据卡上的算机核对这些信息并处理这次事务。中央计算机根据卡上的分行代码确定这次事务与分行的对应关系,并且委托相应的分行代码确定这次事务与分行的对应关系,并且委托相应的分行计算机验证用户密码。如果用户输入的密码是正确的,分行计算机验证用户密码。如果用户输入的密码是正确的,ATMATM就要求用户选择事务类型就要求用户选择事务类型( (取款、查询等取款、查询等) )。当

11、用户选择。当用户选择取款时,取款时,ATMATM请求用户输入取款额。最后,请求用户输入取款额。最后,ATMATM从现金出口从现金出口吐出现金,并且打印出账单交给用户。吐出现金,并且打印出账单交给用户。9.2 需求陈述需求陈述提纲提纲建立对象建立对象模型模型建立动态建立动态模型模型建立功能建立功能模型模型定义服务定义服务9.3.1 确定类与对象确定类与对象对象是对问题域中有意义的事物的抽象,它们既可对象是对问题域中有意义的事物的抽象,它们既可能是物理实体,也可能是抽象概念。能是物理实体,也可能是抽象概念。找出候选的找出候选的类与对象类与对象筛选出正确筛选出正确的类与对象的类与对象(1) 找出候选

12、的类与对象找出候选的类与对象 飞机、汽车、书、房屋等飞机、汽车、书、房屋等可感知的可感知的物理实体物理实体方法方法1 1:依据常见类别寻找:依据常见类别寻找 医生、教师、雇主、计算机系、财务处等医生、教师、雇主、计算机系、财务处等人或组织人或组织的角色的角色 飞行、演出、访问、交通事故等飞行、演出、访问、交通事故等应该记忆应该记忆的事件的事件 购买、纳税、结婚等购买、纳税、结婚等对象间相对象间相互作用互作用 政策、版权法等政策、版权法等需要说明需要说明的概念的概念(1) 找出候选的类与对象找出候选的类与对象方法方法2 2:非正式分析:非正式分析以用自然语言书写的需求陈述为依据,以用自然语言书写

13、的需求陈述为依据,把陈述中的名词作为类与对象的候选者,把陈述中的名词作为类与对象的候选者,用形容词作为确定属性的线索,用形容词作为确定属性的线索,把动词作为服务把动词作为服务( (操作操作) )的候选者。的候选者。(1) 找出候选的类与对象找出候选的类与对象方法方法2 2:非正式分析:非正式分析银行,自动取款机银行,自动取款机(ATM)(ATM),系统,中央计算机,分,系统,中央计算机,分行计算机,柜员终端,网络,总行,分行,软件,行计算机,柜员终端,网络,总行,分行,软件,成本,市,街道,营业厅,储蓄所,柜员,储户,成本,市,街道,营业厅,储蓄所,柜员,储户,现金,支票,账户,事务,现金兑换

14、卡,余额,磁现金,支票,账户,事务,现金兑换卡,余额,磁卡,分行代码,卡号,用户,副本,信息,密码,卡,分行代码,卡号,用户,副本,信息,密码,类型,取款额,账单,访问。类型,取款额,账单,访问。“通信链路通信链路”和和“事务日志事务日志”(2) 筛选出正确的类与对象筛选出正确的类与对象银行,自动取款机银行,自动取款机(ATM)(ATM),系统,中央计算机,分行系统,中央计算机,分行计算机,柜员终端,网络,计算机,柜员终端,网络,总行,分行,软件,成本,总行,分行,软件,成本,市,街道,营业厅,储蓄市,街道,营业厅,储蓄所,柜员,储户,现金,所,柜员,储户,现金,支票,账户,事务,现金支票,账

15、户,事务,现金兑换卡,余额,磁卡,分兑换卡,余额,磁卡,分行代码,卡号,用户,副行代码,卡号,用户,副本,信息,密码,类型,本,信息,密码,类型,取款额,账单,访问。取款额,账单,访问。“通信链路通信链路”和和“事务日事务日志志”(a) (a) 冗余冗余如果两个类表达了同样的信息,如果两个类表达了同样的信息,则应该保留在此问题域中最富则应该保留在此问题域中最富于描述力的名称。于描述力的名称。储户储户 用户用户现金兑换卡现金兑换卡 磁卡磁卡 副本副本(2) 筛选出正确的类与对象筛选出正确的类与对象银行,自动取款机银行,自动取款机(ATM)(ATM),系统,中央计算机,分行系统,中央计算机,分行计

16、算机,柜员终端,网络,计算机,柜员终端,网络,总行,分行,软件,成本,总行,分行,软件,成本,市,街道,营业厅,储蓄市,街道,营业厅,储蓄所,柜员,储户,现金,所,柜员,储户,现金,支票,账户,事务,现金支票,账户,事务,现金兑换卡,余额,磁卡,分兑换卡,余额,磁卡,分行代码,卡号,用户,副行代码,卡号,用户,副本,信息,密码,类型,本,信息,密码,类型,取款额,账单,访问。取款额,账单,访问。“通信链路通信链路”和和“事务日事务日志志”(b) (b) 无关无关有些类与当前要解决的问题无有些类与当前要解决的问题无关,同样应该把他们删掉。关,同样应该把他们删掉。这个系统并不处理分摊软件开发成本这

17、个系统并不处理分摊软件开发成本的问题,而且的问题,而且ATMATM和柜员终端放置的和柜员终端放置的地点与本软件的关系也不大。地点与本软件的关系也不大。因此,应该去掉候选类因此,应该去掉候选类“成本成本”、“市市”、“街道街道”、“营业厅营业厅”和和“储蓄所储蓄所”。(2) 筛选出正确的类与对象筛选出正确的类与对象银行,自动取款机银行,自动取款机(ATM)(ATM),系统,中央计算机,分行系统,中央计算机,分行计算机,柜员终端,网络,计算机,柜员终端,网络,总行,分行,软件,成本,总行,分行,软件,成本,市,街道,营业厅,储蓄市,街道,营业厅,储蓄所,柜员,储户,现金,所,柜员,储户,现金,支票

18、,账户,事务,现金支票,账户,事务,现金兑换卡,余额,磁卡,分兑换卡,余额,磁卡,分行代码,卡号,用户,副行代码,卡号,用户,副本,信息,密码,类型,本,信息,密码,类型,取款额,账单,访问。取款额,账单,访问。“通信链路通信链路”和和“事务日事务日志志”(c) (c) 笼统笼统笼统、泛指的名词,或者是无笼统、泛指的名词,或者是无须记忆,或者是有更为具体描须记忆,或者是有更为具体描述。述。“银行银行”实际指总行或分行,实际指总行或分行,“访问访问”在这里实际指事务在这里实际指事务去掉去掉“银行银行”、“网络网络”、“系统系统”、“软件软件”、“信息信息”、“访问访问”等候等候选类。选类。(2)

19、 筛选出正确的类与对象筛选出正确的类与对象银行,自动取款机银行,自动取款机(ATM)(ATM),系统,中央计算机,分行系统,中央计算机,分行计算机,柜员终端,网络,计算机,柜员终端,网络,总行,分行,软件,成本,总行,分行,软件,成本,市,街道,营业厅,储蓄市,街道,营业厅,储蓄所,柜员,储户,现金,所,柜员,储户,现金,支票,账户,事务,现金支票,账户,事务,现金兑换卡,余额,磁卡,分兑换卡,余额,磁卡,分行代码,卡号,用户,副行代码,卡号,用户,副本,信息,密码,类型,本,信息,密码,类型,取款额,账单,访问。取款额,账单,访问。“通信链路通信链路”和和“事务日事务日志志”(d) (d)

20、属性属性在需求陈述中有些名词实际上描述的在需求陈述中有些名词实际上描述的是其他对象的属性,应该把这些名词是其他对象的属性,应该把这些名词从候选类与对象中去掉。当然,如果从候选类与对象中去掉。当然,如果某个性质具有很强的独立性,则应把某个性质具有很强的独立性,则应把它作为类而不是作为属性。它作为类而不是作为属性。“现金现金”、“支票支票”、“取款额取款额”、“账单账单”、“余额余额”、“分行代码分行代码”、“卡号卡号”、“密码密码”、“类型类型”等,等,实际上都应该作为属性对待。实际上都应该作为属性对待。(2) 筛选出正确的类与对象筛选出正确的类与对象(e) (e) 操作操作在需求陈述中有时可能

21、使用一些既可作为名词,又在需求陈述中有时可能使用一些既可作为名词,又可作为动词的词,应该慎重考虑它们的含义,以便可作为动词的词,应该慎重考虑它们的含义,以便正确地决定把它们作为类还是作为类中定义的操作。正确地决定把它们作为类还是作为类中定义的操作。例如,谈到电话时通常把例如,谈到电话时通常把“拨号拨号”当作动词,当构造电话模当作动词,当构造电话模型时确实应该把它作为一个操作,而不是一个类。型时确实应该把它作为一个操作,而不是一个类。但是,在开发电话的自动记账系统时,但是,在开发电话的自动记账系统时,“拨号拨号”需要有自己需要有自己的属性的属性( (例如日期、时间、受话地点等例如日期、时间、受话

22、地点等) ),因此应该把它作为,因此应该把它作为一个类。一个类。总之,本身具有属性需独立存在的操作,应该作为类与对象。总之,本身具有属性需独立存在的操作,应该作为类与对象。(2) 筛选出正确的类与对象筛选出正确的类与对象银行,自动取款机银行,自动取款机(ATM)(ATM),系统,中央计算机,分行系统,中央计算机,分行计算机,柜员终端,网络,计算机,柜员终端,网络,总行,分行,软件,成本,总行,分行,软件,成本,市,街道,营业厅,储蓄市,街道,营业厅,储蓄所,柜员,储户,现金,所,柜员,储户,现金,支票,账户,事务,现金支票,账户,事务,现金兑换卡,余额,磁卡,分兑换卡,余额,磁卡,分行代码,卡

23、号,用户,副行代码,卡号,用户,副本,信息,密码,类型,本,信息,密码,类型,取款额,账单,访问。取款额,账单,访问。“通信链路通信链路”和和“事务日事务日志志”(f) (f) 实现实现在分析阶段不应该过早地考虑在分析阶段不应该过早地考虑怎样实现目标系统。因此,应怎样实现目标系统。因此,应该去掉仅和实现有关的候选的该去掉仅和实现有关的候选的类与对象。类与对象。“事务日志事务日志”无非是对一系列事务的无非是对一系列事务的记录,它的确切表示方式是面向对象记录,它的确切表示方式是面向对象设计的议题;设计的议题;“通信链路通信链路”在逻辑上在逻辑上是一种联系,在系统实现时它是关联是一种联系,在系统实现

24、时它是关联类的物理实现。类的物理实现。(2) 筛选出正确的类与对象筛选出正确的类与对象银行,银行,自动取款机自动取款机(ATM)(ATM),系统,系统,中央计算机中央计算机,分行分行计算机计算机,柜员终端柜员终端,网络,网络,总行总行,分行分行,软件,成本,软件,成本,市,街道,营业厅,储蓄市,街道,营业厅,储蓄所,所,柜员柜员,储户储户,现金,现金,支票,支票,账户账户,事务事务,现金现金兑换卡兑换卡,余额,磁卡,分,余额,磁卡,分行代码,卡号,用户,副行代码,卡号,用户,副本,信息,密码,类型,本,信息,密码,类型,取款额,账单,访问。取款额,账单,访问。“通信链路通信链路”和和“事务日事

25、务日志志”9.3.2 确定关联确定关联两个或多个对象之间的相互依赖、相互作用的关系两个或多个对象之间的相互依赖、相互作用的关系就是关联。就是关联。分析确定关联,能促使分析员考虑问题域的边缘情分析确定关联,能促使分析员考虑问题域的边缘情况,有助于发现那些尚未被发现的类与对象。况,有助于发现那些尚未被发现的类与对象。(1)初步确定关联)初步确定关联在需求陈述中使用的描述性动词或动词词组,通常在需求陈述中使用的描述性动词或动词词组,通常表示关联关系。表示关联关系。因此,在初步确定关联时,大多数关联可以通过直因此,在初步确定关联时,大多数关联可以通过直接提取需求陈述中的动词词组而得出。接提取需求陈述中

26、的动词词组而得出。通过分析需求陈述,还能发现一些在陈述中隐含的通过分析需求陈述,还能发现一些在陈述中隐含的关联。关联。最后,分析员还应该与用户及领域专家讨论问题域最后,分析员还应该与用户及领域专家讨论问题域实体间的相互依赖、相互作用关系,根据领域知识实体间的相互依赖、相互作用关系,根据领域知识再进一步补充一些关联。再进一步补充一些关联。(1)初步确定关联)初步确定关联(a)(a)直接提取动词短语得出的关联直接提取动词短语得出的关联ATMATM、中央计算机、分行计算机及柜员终端组成网络。、中央计算机、分行计算机及柜员终端组成网络。总行拥有多台总行拥有多台ATMATM。ATMATM设在主要街道上。

27、设在主要街道上。分行提供分行计算机和柜员终端。分行提供分行计算机和柜员终端。柜员终端设在分行营业厅及储蓄所内。柜员终端设在分行营业厅及储蓄所内。分行分摊软件开发成本。分行分摊软件开发成本。储户拥有账户。储户拥有账户。分行计算机处理针对账户的事务。分行计算机处理针对账户的事务。分行计算机维护账户。分行计算机维护账户。(1)初步确定关联)初步确定关联(a)(a)直接提取动词短语得出的关联直接提取动词短语得出的关联柜员终端与分行计算机通信。柜员终端与分行计算机通信。柜员输入针对账户的事务。柜员输入针对账户的事务。ATMATM与中央计算机交换关于事务的信息。与中央计算机交换关于事务的信息。中央计算机确

28、定事务与分行的对应关系。中央计算机确定事务与分行的对应关系。ATMATM读现金兑换卡。读现金兑换卡。ATMATM与用户交互。与用户交互。ATMATM吐出现金。吐出现金。ATMATM打印账单。打印账单。系统处理并发的访问。系统处理并发的访问。(1)初步确定关联)初步确定关联(b)(b)需求陈述中隐含的关联需求陈述中隐含的关联总行由各个分行组成。总行由各个分行组成。分行保管账户。分行保管账户。总行拥有中央计算机。总行拥有中央计算机。系统维护事务日志。系统维护事务日志。系统提供必要的安全性。系统提供必要的安全性。储户拥有现金兑换卡。储户拥有现金兑换卡。(c) (c) 根据问题域知识得出的关联根据问题

29、域知识得出的关联现金兑换卡访问账户。现金兑换卡访问账户。分行雇用柜员。分行雇用柜员。(2)筛选)筛选ATMATM、中央计算机、分行计算机及柜员终端组成网络。、中央计算机、分行计算机及柜员终端组成网络。总行拥有多台总行拥有多台ATMATM。ATMATM设在主要街道上。设在主要街道上。分行提供分行计算机和柜员终端。分行提供分行计算机和柜员终端。柜员终端设在分行营业厅及储蓄所内。柜员终端设在分行营业厅及储蓄所内。分行分摊软件开发成本。分行分摊软件开发成本。储户拥有账户。储户拥有账户。分行计算机处理针对账户的事务。分行计算机处理针对账户的事务。分行计算机维护账户。分行计算机维护账户。柜员终端与分行计算

30、机通信。柜员终端与分行计算机通信。柜员输入针对账户的事务。柜员输入针对账户的事务。ATMATM与中央计算机交换关于事务的信息。与中央计算机交换关于事务的信息。中央计算机确定事务与分行的对应关系。中央计算机确定事务与分行的对应关系。ATMATM读现金兑换卡。读现金兑换卡。ATMATM与用户交互。与用户交互。ATMATM吐出现金。吐出现金。ATMATM打印账单。打印账单。系统处理并发的访问。系统处理并发的访问。总行由各个分行组成。总行由各个分行组成。分行保管账户。分行保管账户。总行拥有中央计算机。总行拥有中央计算机。系统维护事务日志。系统维护事务日志。系统提供必要的安全性。系统提供必要的安全性。储

31、户拥有现金兑换卡。储户拥有现金兑换卡。现金兑换卡访问账户。现金兑换卡访问账户。分行雇用柜员。分行雇用柜员。已删去类的关联已删去类的关联如果在分析确定类与对象的过如果在分析确定类与对象的过程中已经删掉了某个候选类,程中已经删掉了某个候选类,则与这个类有关的关联也应则与这个类有关的关联也应该删去,或用其他类重新表该删去,或用其他类重新表达这个关联。达这个关联。ATMATM、中央计算机、分行计算机、柜、中央计算机、分行计算机、柜员终端、总行、分行、柜员、储户、员终端、总行、分行、柜员、储户、账户、事务、现金兑换卡。账户、事务、现金兑换卡。(2)筛选)筛选ATMATM、中央计算机、分行计算机及柜员终端

32、组成网络。、中央计算机、分行计算机及柜员终端组成网络。总行拥有多台总行拥有多台ATMATM。ATMATM设在主要街道上。设在主要街道上。分行提供分行计算机和柜员终端。分行提供分行计算机和柜员终端。柜员终端设在分行营业厅及储蓄所内。柜员终端设在分行营业厅及储蓄所内。分行分摊软件开发成本。分行分摊软件开发成本。储户拥有账户。储户拥有账户。分行计算机处理针对账户的事务。分行计算机处理针对账户的事务。分行计算机维护账户。分行计算机维护账户。柜员终端与分行计算机通信。柜员终端与分行计算机通信。柜员输入针对账户的事务。柜员输入针对账户的事务。ATMATM与中央计算机交换关于事务的信息。与中央计算机交换关于

33、事务的信息。中央计算机确定事务与分行的对应关系。中央计算机确定事务与分行的对应关系。ATMATM读现金兑换卡。读现金兑换卡。ATMATM与用户交互。与用户交互。ATMATM吐出现金。吐出现金。ATMATM打印账单。打印账单。系统处理并发的访问。系统处理并发的访问。总行由各个分行组成。总行由各个分行组成。分行保管账户。分行保管账户。总行拥有中央计算机。总行拥有中央计算机。系统维护事务日志。系统维护事务日志。系统提供必要的安全性。系统提供必要的安全性。储户拥有现金兑换卡。储户拥有现金兑换卡。现金兑换卡访问账户。现金兑换卡访问账户。分行雇用柜员。分行雇用柜员。(b)(b)与问题无关或应在实现阶与问题

34、无关或应在实现阶段考虑的关联段考虑的关联系统处理并发的访问。系统处理并发的访问。(2)筛选)筛选ATMATM、中央计算机、分行计算机及柜员终端组成网络。、中央计算机、分行计算机及柜员终端组成网络。总行拥有多台总行拥有多台ATMATM。ATMATM设在主要街道上。设在主要街道上。分行提供分行计算机和柜员终端。分行提供分行计算机和柜员终端。柜员终端设在分行营业厅及储蓄所内。柜员终端设在分行营业厅及储蓄所内。分行分摊软件开发成本。分行分摊软件开发成本。储户拥有账户。储户拥有账户。分行计算机处理针对账户的事务。分行计算机处理针对账户的事务。分行计算机维护账户。分行计算机维护账户。柜员终端与分行计算机通

35、信。柜员终端与分行计算机通信。柜员输入针对账户的事务。柜员输入针对账户的事务。ATMATM与中央计算机交换关于事务的信息。与中央计算机交换关于事务的信息。中央计算机确定事务与分行的对应关系。中央计算机确定事务与分行的对应关系。ATMATM读现金兑换卡。读现金兑换卡。ATMATM与用户交互。与用户交互。ATMATM吐出现金。吐出现金。ATMATM打印账单。打印账单。系统处理并发的访问。系统处理并发的访问。总行由各个分行组成。总行由各个分行组成。分行保管账户。分行保管账户。总行拥有中央计算机。总行拥有中央计算机。系统维护事务日志。系统维护事务日志。系统提供必要的安全性。系统提供必要的安全性。储户拥

36、有现金兑换卡。储户拥有现金兑换卡。现金兑换卡访问账户。现金兑换卡访问账户。分行雇用柜员。分行雇用柜员。(c)(c)瞬时事件瞬时事件关联应该描述问题域的静态结构,关联应该描述问题域的静态结构,而不应该是一个瞬时事件。而不应该是一个瞬时事件。ATMATM读现金兑换卡读现金兑换卡ATMATM与用户交互与用户交互如果用动作表示的需求隐含了问题如果用动作表示的需求隐含了问题域的某种基本结构,则应该用适当域的某种基本结构,则应该用适当的动词词组重新表达这个关联。的动词词组重新表达这个关联。“中央计算机确定事务与分行的对应中央计算机确定事务与分行的对应关系关系”隐含了结构上隐含了结构上“中央计算机与中央计算

37、机与分行通信分行通信”的关系。的关系。中央计算机与分行通信中央计算机与分行通信(2)筛选)筛选ATMATM、中央计算机、分行计算机及柜员终端组成网络。、中央计算机、分行计算机及柜员终端组成网络。总行拥有多台总行拥有多台ATMATM。ATMATM设在主要街道上。设在主要街道上。分行提供分行计算机和柜员终端。分行提供分行计算机和柜员终端。柜员终端设在分行营业厅及储蓄所内。柜员终端设在分行营业厅及储蓄所内。分行分摊软件开发成本。分行分摊软件开发成本。储户拥有账户。储户拥有账户。分行计算机处理针对账户的事务。分行计算机处理针对账户的事务。分行计算机维护账户。分行计算机维护账户。柜员终端与分行计算机通信

38、。柜员终端与分行计算机通信。柜员输入针对账户的事务。柜员输入针对账户的事务。ATMATM与中央计算机交换关于事务的信息。与中央计算机交换关于事务的信息。中央计算机确定事务与分行的对应关系。中央计算机确定事务与分行的对应关系。ATMATM读现金兑换卡。读现金兑换卡。ATMATM与用户交互。与用户交互。ATMATM吐出现金。吐出现金。ATMATM打印账单。打印账单。系统处理并发的访问。系统处理并发的访问。总行由各个分行组成。总行由各个分行组成。分行保管账户。分行保管账户。总行拥有中央计算机。总行拥有中央计算机。系统维护事务日志。系统维护事务日志。系统提供必要的安全性。系统提供必要的安全性。储户拥有

39、现金兑换卡。储户拥有现金兑换卡。现金兑换卡访问账户。现金兑换卡访问账户。分行雇用柜员。分行雇用柜员。(d)(d)三元关联三元关联三个或三个以上对象之间的关联,三个或三个以上对象之间的关联,大多可以分解为二元关联或用词大多可以分解为二元关联或用词组描述成限定的关联。组描述成限定的关联。“柜员输入针对账户的事务柜员输入针对账户的事务”可以分解可以分解成成“柜员输入事务柜员输入事务”和和“事务修改账户事务修改账户”这样两个二元关联。而这样两个二元关联。而“分行计算机处分行计算机处理针对账户的事务理针对账户的事务”也可以做类似的分也可以做类似的分解。解。“ATMATM与中央计算机交换关于事务的与中央计

40、算机交换关于事务的信息信息”这个候选的关联,实际上隐含了这个候选的关联,实际上隐含了“ATMATM与中央计算机通信与中央计算机通信”和和“在在ATMATM上上输入事务输入事务”这两个二元关联。这两个二元关联。中央计算机与分行通信中央计算机与分行通信柜员输入事务柜员输入事务事务修改账户事务修改账户分行计算机处理事务分行计算机处理事务事务修改账户事务修改账户ATMATM与中央计算机通信与中央计算机通信ATMATM上输入事务上输入事务(2)筛选)筛选ATMATM、中央计算机、分行计算机及柜员终端组成网络。、中央计算机、分行计算机及柜员终端组成网络。总行拥有多台总行拥有多台ATMATM。ATMATM设

41、在主要街道上。设在主要街道上。分行提供分行计算机和柜员终端。分行提供分行计算机和柜员终端。柜员终端设在分行营业厅及储蓄所内。柜员终端设在分行营业厅及储蓄所内。分行分摊软件开发成本。分行分摊软件开发成本。储户拥有账户。储户拥有账户。分行计算机处理针对账户的事务。分行计算机处理针对账户的事务。分行计算机维护账户。分行计算机维护账户。柜员终端与分行计算机通信。柜员终端与分行计算机通信。柜员输入针对账户的事务。柜员输入针对账户的事务。ATMATM与中央计算机交换关于事务的信息。与中央计算机交换关于事务的信息。中央计算机确定事务与分行的对应关系。中央计算机确定事务与分行的对应关系。ATMATM读现金兑换

42、卡。读现金兑换卡。ATMATM与用户交互。与用户交互。ATMATM吐出现金。吐出现金。ATMATM打印账单。打印账单。系统处理并发的访问。系统处理并发的访问。总行由各个分行组成。总行由各个分行组成。分行保管账户。分行保管账户。总行拥有中央计算机。总行拥有中央计算机。系统维护事务日志。系统维护事务日志。系统提供必要的安全性。系统提供必要的安全性。储户拥有现金兑换卡。储户拥有现金兑换卡。现金兑换卡访问账户。现金兑换卡访问账户。分行雇用柜员。分行雇用柜员。(e)(e)派生关联派生关联删除可以用其他关联定义的冗余关删除可以用其他关联定义的冗余关联联“总行拥有多台总行拥有多台ATM”ATM”实质上是实质

43、上是“总行拥总行拥有中央计算机有中央计算机”和和“ATMATM与中央计算机通与中央计算机通信信”这两个关联组合的结果。这两个关联组合的结果。而而“分行计算机维护账户分行计算机维护账户”的实际含义的实际含义是是“分行保管账户分行保管账户”和和“事务修改账事务修改账户户”。中央计算机与分行通信中央计算机与分行通信柜员输入事务柜员输入事务事务修改账户事务修改账户分行计算机处理事务分行计算机处理事务事务修改账户事务修改账户ATMATM与中央计算机通信与中央计算机通信ATMATM上输入事务上输入事务(3)进一步完善)进一步完善ATMATM、中央计算机、分行计算机及柜员终端组成网络。、中央计算机、分行计算

44、机及柜员终端组成网络。总行拥有多台总行拥有多台ATMATM。ATMATM设在主要街道上。设在主要街道上。分行提供分行计算机和柜员终端。分行提供分行计算机和柜员终端。柜员终端设在分行营业厅及储蓄所内。柜员终端设在分行营业厅及储蓄所内。分行分摊软件开发成本。分行分摊软件开发成本。储户拥有账户。储户拥有账户。分行计算机处理针对账户的事务。分行计算机处理针对账户的事务。分行计算机维护账户。分行计算机维护账户。柜员终端与分行计算机通信。柜员终端与分行计算机通信。柜员输入针对账户的事务。柜员输入针对账户的事务。ATMATM与中央计算机交换关于事务的信息。与中央计算机交换关于事务的信息。中央计算机确定事务与

45、分行的对应关系。中央计算机确定事务与分行的对应关系。ATMATM读现金兑换卡。读现金兑换卡。ATMATM与用户交互。与用户交互。ATMATM吐出现金。吐出现金。ATMATM打印账单。打印账单。系统处理并发的访问。系统处理并发的访问。总行由各个分行组成。总行由各个分行组成。分行保管账户。分行保管账户。总行拥有中央计算机。总行拥有中央计算机。系统维护事务日志。系统维护事务日志。系统提供必要的安全性。系统提供必要的安全性。储户拥有现金兑换卡。储户拥有现金兑换卡。现金兑换卡访问账户。现金兑换卡访问账户。分行雇用柜员。分行雇用柜员。(a(a)正名)正名好的名字是帮助读者理解的关键因好的名字是帮助读者理解

46、的关键因素之一。因此,应该仔细选择含素之一。因此,应该仔细选择含义更明确的名字作为关联名。义更明确的名字作为关联名。例如,例如,“分行提供分行计算机和柜员终分行提供分行计算机和柜员终端端”不如改为不如改为“分行拥有分行计算机分行拥有分行计算机”和和“分行拥有柜员终端分行拥有柜员终端”。中央计算机与分行通信中央计算机与分行通信柜员输入事务柜员输入事务事务修改账户事务修改账户分行计算机处理事务分行计算机处理事务事务修改账户事务修改账户ATMATM与中央计算机通信与中央计算机通信ATMATM上输入事务上输入事务分行拥有分行计算机分行拥有分行计算机分行拥有柜员终端分行拥有柜员终端(3)进一步完善)进一

47、步完善ATMATM、中央计算机、分行计算机及柜员终端组成网络。、中央计算机、分行计算机及柜员终端组成网络。总行拥有多台总行拥有多台ATMATM。ATMATM设在主要街道上。设在主要街道上。分行提供分行计算机和柜员终端。分行提供分行计算机和柜员终端。柜员终端设在分行营业厅及储蓄所内。柜员终端设在分行营业厅及储蓄所内。分行分摊软件开发成本。分行分摊软件开发成本。储户拥有账户。储户拥有账户。分行计算机处理针对账户的事务。分行计算机处理针对账户的事务。分行计算机维护账户。分行计算机维护账户。柜员终端与分行计算机通信。柜员终端与分行计算机通信。柜员输入针对账户的事务。柜员输入针对账户的事务。ATMATM

48、与中央计算机交换关于事务的信息。与中央计算机交换关于事务的信息。中央计算机确定事务与分行的对应关系。中央计算机确定事务与分行的对应关系。ATMATM读现金兑换卡。读现金兑换卡。ATMATM与用户交互。与用户交互。ATMATM吐出现金。吐出现金。ATMATM打印账单。打印账单。系统处理并发的访问。系统处理并发的访问。总行由各个分行组成。总行由各个分行组成。分行保管账户。分行保管账户。总行拥有中央计算机。总行拥有中央计算机。系统维护事务日志。系统维护事务日志。系统提供必要的安全性。系统提供必要的安全性。储户拥有现金兑换卡。储户拥有现金兑换卡。现金兑换卡访问账户。现金兑换卡访问账户。分行雇用柜员。分

49、行雇用柜员。(b(b)分解)分解为了能够适用于不同的关联,必要为了能够适用于不同的关联,必要时应该分解以前确定的类与对象。时应该分解以前确定的类与对象。例如,应该把例如,应该把“事务事务”分解成分解成“远程事远程事务务”和和“柜员事务柜员事务” ” 。中央计算机与分行通信中央计算机与分行通信柜员输入事务柜员输入事务事务修改账户事务修改账户分行计算机处理事务分行计算机处理事务事务修改账户事务修改账户ATMATM与中央计算机通信与中央计算机通信ATMATM上输入事务上输入事务分行拥有分行计算机分行拥有分行计算机分行拥有柜员终端分行拥有柜员终端(3)进一步完善)进一步完善ATMATM、中央计算机、分

50、行计算机及柜员终端组成网络。、中央计算机、分行计算机及柜员终端组成网络。总行拥有多台总行拥有多台ATMATM。ATMATM设在主要街道上。设在主要街道上。分行提供分行计算机和柜员终端。分行提供分行计算机和柜员终端。柜员终端设在分行营业厅及储蓄所内。柜员终端设在分行营业厅及储蓄所内。分行分摊软件开发成本。分行分摊软件开发成本。储户拥有账户。储户拥有账户。分行计算机处理针对账户的事务。分行计算机处理针对账户的事务。分行计算机维护账户。分行计算机维护账户。柜员终端与分行计算机通信。柜员终端与分行计算机通信。柜员输入针对账户的事务。柜员输入针对账户的事务。ATMATM与中央计算机交换关于事务的信息。与

51、中央计算机交换关于事务的信息。中央计算机确定事务与分行的对应关系。中央计算机确定事务与分行的对应关系。ATMATM读现金兑换卡。读现金兑换卡。ATMATM与用户交互。与用户交互。ATMATM吐出现金。吐出现金。ATMATM打印账单。打印账单。系统处理并发的访问。系统处理并发的访问。总行由各个分行组成。总行由各个分行组成。分行保管账户。分行保管账户。总行拥有中央计算机。总行拥有中央计算机。系统维护事务日志。系统维护事务日志。系统提供必要的安全性。系统提供必要的安全性。储户拥有现金兑换卡。储户拥有现金兑换卡。现金兑换卡访问账户。现金兑换卡访问账户。分行雇用柜员。分行雇用柜员。(c(c)补充)补充发

52、现了遗漏的关联就应该及时补上。发现了遗漏的关联就应该及时补上。在在ATMATM系统中把系统中把“事务事务”分解成上述两类分解成上述两类之后,需要补充之后,需要补充“柜员输入柜员事务柜员输入柜员事务”、“柜员事务输进柜员终端柜员事务输进柜员终端”、“在在ATMATM上上输入远程事务输入远程事务”和和“远程事务由现金兑远程事务由现金兑换卡授权换卡授权”等关联。等关联。中央计算机与分行通信中央计算机与分行通信柜员输入柜员输入事务事务事务修改账户事务修改账户分行计算机处理事务分行计算机处理事务事务修改账户事务修改账户ATMATM与中央计算机通信与中央计算机通信ATMATM上输入上输入事务事务分行拥有分

53、行计算机分行拥有分行计算机分行拥有柜员终端分行拥有柜员终端事务由现金兑换卡授权事务由现金兑换卡授权事务输进柜员终端事务输进柜员终端(3)进一步完善)进一步完善ATMATM、中央计算机、分行计算机及柜员终端组成网络。、中央计算机、分行计算机及柜员终端组成网络。总行拥有多台总行拥有多台ATMATM。ATMATM设在主要街道上。设在主要街道上。分行提供分行计算机和柜员终端。分行提供分行计算机和柜员终端。柜员终端设在分行营业厅及储蓄所内。柜员终端设在分行营业厅及储蓄所内。分行分摊软件开发成本。分行分摊软件开发成本。储户拥有账户。储户拥有账户。分行计算机处理针对账户的事务。分行计算机处理针对账户的事务。

54、分行计算机维护账户。分行计算机维护账户。柜员终端与分行计算机通信。柜员终端与分行计算机通信。柜员输入针对账户的事务。柜员输入针对账户的事务。ATMATM与中央计算机交换关于事务的信息。与中央计算机交换关于事务的信息。中央计算机确定事务与分行的对应关系。中央计算机确定事务与分行的对应关系。ATMATM读现金兑换卡。读现金兑换卡。ATMATM与用户交互。与用户交互。ATMATM吐出现金。吐出现金。ATMATM打印账单。打印账单。系统处理并发的访问。系统处理并发的访问。总行由各个分行组成。总行由各个分行组成。分行保管账户。分行保管账户。总行拥有中央计算机。总行拥有中央计算机。系统维护事务日志。系统维

55、护事务日志。系统提供必要的安全性。系统提供必要的安全性。储户拥有现金兑换卡。储户拥有现金兑换卡。现金兑换卡访问账户。现金兑换卡访问账户。分行雇用柜员。分行雇用柜员。(d(d)标明重数)标明重数初步判定各个关联的类型,并粗略初步判定各个关联的类型,并粗略地确定关联的重数。但是,无须地确定关联的重数。但是,无须为此花费过多精力,因为在分析为此花费过多精力,因为在分析过程中随着认识的逐渐深入,重过程中随着认识的逐渐深入,重数也会经常改动。数也会经常改动。中央计算机与分行通信中央计算机与分行通信柜员输入柜员输入事务事务事务修改账户事务修改账户分行计算机处理事务分行计算机处理事务事务修改账户事务修改账户

56、ATMATM与中央计算机通信与中央计算机通信ATMATM上输入上输入事务事务分行拥有分行计算机分行拥有分行计算机分行拥有柜员终端分行拥有柜员终端事务由现金兑换卡授权事务由现金兑换卡授权事务输进柜员终端事务输进柜员终端(3)进一步完善)进一步完善9.3.3 划分主题划分主题在开发大型、复杂系统的过程中,为了降低复杂程在开发大型、复杂系统的过程中,为了降低复杂程度,人们习惯于把系统再进一步划分成几个不同的度,人们习惯于把系统再进一步划分成几个不同的主题,也就是在概念上把系统包含的内容分解成若主题,也就是在概念上把系统包含的内容分解成若干个范畴。干个范畴。对于规模极大的系统,则首先由高级分析员粗略地

57、对于规模极大的系统,则首先由高级分析员粗略地识别对象和关联,然后初步划分主题,经进一步分识别对象和关联,然后初步划分主题,经进一步分析,对系统结构有更深入的了解之后,再进一步修析,对系统结构有更深入的了解之后,再进一步修改和精炼主题。改和精炼主题。应该按问题领域而不是用功能分解方法来确定主题。应该按问题领域而不是用功能分解方法来确定主题。此外,应该按照使不同主题内的对象相互间依赖和此外,应该按照使不同主题内的对象相互间依赖和交互最少的原则来确定主题。交互最少的原则来确定主题。9.3.3 划分主题划分主题9.3.4 确定属性确定属性属性是对象的性质,借助于属性我们能对类与对象属性是对象的性质,借

58、助于属性我们能对类与对象和结构有更深入更具体的认识和结构有更深入更具体的认识(1)分析)分析通常,在需求陈述中用名词词组表示属性,例如,通常,在需求陈述中用名词词组表示属性,例如,“汽车的颜色汽车的颜色”或或“光标的位置光标的位置”。往往用形容词表示可枚举的具体属性,例如,往往用形容词表示可枚举的具体属性,例如,“红红色的色的”、“打开的打开的”。但是,不可能在需求陈述中找到所有属性,分析员但是,不可能在需求陈述中找到所有属性,分析员还必须借助于领域知识和常识才能分析得出需要的还必须借助于领域知识和常识才能分析得出需要的属性。属性。属性对问题域的基本结构影响很小,仅考虑与解决属性对问题域的基本

59、结构影响很小,仅考虑与解决问题相关的即可,随着时间推移和研究深入,会保问题相关的即可,随着时间推移和研究深入,会保存稳定。存稳定。(2)选择)选择认真考察经初步分析而确定下来的那些属性,从中认真考察经初步分析而确定下来的那些属性,从中删掉不正确的或不必要的属性。通常有以下几种常删掉不正确的或不必要的属性。通常有以下几种常见情况:见情况:误把对象当做属性误把对象当做属性误把关联类的属性当做一般对象的属性误把关联类的属性当做一般对象的属性误把限定当做属性误把限定当做属性误把内部状态当做属性误把内部状态当做属性过于关注对操作没有影响的细化属性过于关注对操作没有影响的细化属性不一致的属性不一致的属性(

60、2)选择)选择总行名总行名分行名分行名账账号号雇员号雇员号卡号卡号余额余额限额限额类型类型姓名姓名住址住址分分行行代代码码站号站号站号站号姓名姓名类型类型日期日期金额金额现有金额现有金额付出金额付出金额类型类型日期日期金额金额密码密码9.3.5 识别继承关系识别继承关系一般说来,可以使用两种方式建立继承一般说来,可以使用两种方式建立继承( (即泛化即泛化) )关关系:系:(1) (1) 自底向上:自底向上: 抽象出现有类的共同性质泛化出抽象出现有类的共同性质泛化出父类,这个过程实质上模拟了人类归纳思维过程。父类,这个过程实质上模拟了人类归纳思维过程。例例如,在如,在ATMATM系统中,系统中,

温馨提示

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

评论

0/150

提交评论