分享
分销 收藏 举报 申诉 / 101
播放页_导航下方通栏广告

类型第9章 面向对象分析.pdf

  • 上传人:曲****
  • 文档编号:4901429
  • 上传时间:2024-10-18
  • 格式:PDF
  • 页数:101
  • 大小:6.73MB
  • 下载积分:15 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    第9章 面向对象分析 面向 对象 分析
    资源描述:
    第1章 面向对象台折密第夕章面向对象今折9.1 面向对象分析过程9.2 建立对象模型9.3 建立动态模型9.4 建立功能模型9.5 定义服务4感第夕章面向对象今折9.1面向对象分析过程1.分析过程概述分析过程就是提取系统的需求的过程,是指为了满足用户 的需求,系统必须“做什么”,而不是“怎么做”(系统如何实 现)。系统分析通常是从一个需求文档(陈述)和用户一系列的讨 论开始的。一般来说,由用户、领域专家、系统的开发者以及 其他有关人员参加制定需求文档。需求文档应给出一个完整的、一致的和灵活的描述,表明系统需求的一切,而且应是可管理 的;需求文档应包括功能操作和操作特征,如使用的容易性、可靠性、可维护性等性能,还应包括软件必须处理的接口、适 应环境以及其他设计上的约束。第1章 面向对象台折汨首先,系统分析员要对需求文档进行分析。需求文档通常 是不完整、不准确的,也可能还是非正式的。通过分析可以发 现和改正需求文档中的歧义性、不一致性,剔除冗余的内容,挖掘潜在的内容,弥补不足,从而使需求文档更完整、更准确。在分析需求的过程中,系统分析员不仅应该反复、多次地与用 户讨论、交流信息,还应该调研、观察、了解现有的类似系统。快速地建立一个原型系统,通过在计算机上运行原型系统,使 得分析员和用户尽快交流和相互理解,从而能更正确地、更完 整地提取和确定用户的需求。第1章面向对象台祈然后,是需求建模。系统分析员根据提取的用户需求,深入理解用户需求,识别出问题域内的对象,并分析它们相互之 间的关系,抽象出目标系统应该完成的需求任务,并用00A模型 准确地表示出来,即用面向对象观点建立对象模型、动态模型 和功能模型。00A模型是面向对象设计(00D)的基础,它应该准 确地、简洁地表示问题。通过建立模型,可避免理解上的片面 性,提高目标系统的正确性、可靠性。在此基础上,编写出面 向对象的需求规格说明。第1章 面向对象台折密最后,是需求评审。通过用户、领域专家、系统分析员和 系统设计人员的评审,并进行反复修改后,确定需求规格说明。需求分析是复杂而又艰辛的过程。系统分析人员应该多和 用户交流,认真和领域专家探讨。必须在领域专家的指导和密 切配合下进行,才能有效地完成任务。第1章面向对象台折2.实例需求文档需求文档也叫需求陈述或问题陈述。陈述需求是开发任何 一个系统的首要任务。主要陈述用户的需求,即该系统应该“做什么”,而不是“怎么做”(系统如何实现)。应该陈述系 统任务是什么,而不是解决问题的方法。需求陈述必须要将解决问题的目标清楚地表达出来,如果 目标模糊,将会影响系统分析、设计和实现等后续开发阶段的 工作。分析人员和用户一起研究和讨论才能准确表达用户的要 求,并找出遗漏的信息。第1章 面向对象台折储户ATM系统图9.1第1章面向对象今折4ATM系统的需求陈述:1)问题综述某银行拟开发一个自动取款机系统,它是一个由自动取款 机、中央计算机、分行计算机及营业终端组成的网络系统。ATM 和中央计算机由总行投资购买。总行拥有多台ATM,分别设在全 市各主要街道上。分行负责提供分行计算机和营业终端。营业 终端设在分行下属的各个储蓄所内。该系统的软件开发成本由 各个分行共同承担。第1章面向对象台祈密2)实施陈述银行营业员使用营业终端处理储户提交的储蓄事务。储户 可以用现金或支票向自己拥有的某个账户内存款或开新账户,储户也可以从自己的账户中取款。通常,一个储户可能拥有多 个账户。营业员负责把储户提交的存款或取款事务输进营业终 端,接收储户交来的现金或支票,或者付给储户现金。营业终 端与相应的分行计算机通信,分行计算机具体处理针对某个账 户的事务并且维护账户。第1章面向对象台折一-一丽若扇片底,曲苗FS瓦而请领取现金兑换卡。使用兑黄 卡可以通过ATM访问自己的账户。目前,仅限于用现金兑换卡在 ATM上提取现金(即取款),或查询有关自己账户的信息(例如,某个指定账户上的余额)。将来可能还要求使用ATM办理转账、存款等事务。所谓现金兑换卡,就是一张特制的磁卡,上面有分行代码 和卡号。分行代码惟一标识总行下属的一个分行,卡号确定了 这张卡可以访问哪些账户。通常,一张卡可以访问储户的若干 个账户,但是不一定能访问这个储户的全部账户。每张现金兑 换卡仅属于一个储户所有,但是,同一张卡可能有多个副本,因此,必须考虑同时在若干台ATM上使用同样的现金兑换卡的可 也就是说,系统应该能够处理并发的访问。第1章面向对象台祈当用户把现金兑换卡插入ATM之后,ATM就与用户交互,以 获取有关这次事务的信息,并与中央计算机交换关于事务的信 息。首先,ATM要求用户输入密码,接下来,ATM把从这张卡上 读到的信息以及用户输入的密码传给中央计算机,请求中央计 算机核对这些信息并处理这次事务。中央计算机根据卡上的分 行代码确定这次事务与分行的对应关系,并且委托相应的分行 计算机验证用户密码。如果用户输入的密码是正确的,ATM就要 求用户选择事务类型(取款、查询等)。当用户选择取款时,ATM 请求用户输入取款额。最后,ATM从现金出口输出现金,并且打 印出账单交给用户。第夕章面向对象台折3.面向对象分析的三个模型与五个层次 1)面向对象分析的三个模型面向对象建模是面向对象分析的关键。面向对象的模型包 括:对象模型、动态模型和功能模型。对象模型描述了系统的 静态结构;动态模型描述了系统的互交次序;功能模型描述了 系统的数据变换。不同的问题,三个子模型的侧重程度不同,但是,对象模型是最基础的、最核心的、最重要的。无论解决 什么问题,首先要在问题域中提取和定义出对象模型。当问题 涉及用户界与过程控制时,动态模型是重点。如果问题涉及大 量数据变换,则功能模型非常重要。对象模型中的操作(服务)可以出现在动态模型和功能模型内。第1章 面向对象台折密2)面向对象分析的五个层次面向对象分析由五个主要活动组成,即确定类-对象、识别结构、识别主题、定义属性和定义服务(方法)。对于一个 复杂问题的面向对象的模型可用五个层次表示:类-对象层、结构层,主题层、属性层和服务层,见图9.2。主题(Subject)层:主题给出分析模型的总体概貌,是控制 读者在同一时间所能考虑的模型规模的机制。类-&-对象(Class&Object)层:对象是数据及其处理的抽 象。它反映了保存有关信息和与现实世界交互的能力。第1章面向对象台祈密主题层 subj ect leve 类-&-对象层obj ect结 构 层 structure属性层attribute月艮务层 serves图9.2对象模型的五个层次1 第1章面向对象台祈7甬如总73瓦一行庙表示问题域的复杂性。类-屈 员结构反映了一般-特殊关系,整体-部分结构反映了整体-部分的关系。属性(Attribute)层:属性是数据元素,用来描述对象或分 类结构的实例,可在图中给出并在对象的储存中指定,即给出 对象定义的同时,指定属性。服务(Serves)层:服务是接收到消息后必须执行的一些处 理,可在图上标明它并在对象的储存中指定,即给出对象定义 的同时,定义服务。五个层次就像合并在一起的五个透明的图层一样,每一层 从不同角度将对象模型更细化、更具体化。第1章 面向对象台折密3)五个层次对应的五个活动面向对象的模型的五个层次对应着分析建模的五个主要活 动。这五个活动的工作可以不按顺序进行,也没必要完成一项 活动后才开始另一项活动工作。也就是说,五个主要活动可以 同时(并行)处理;可以从较高抽象层转移到较低的具体层,然 后再返回到较高抽象层继续处理;当系统分析员在确定类-&-对象的同时,想到该类的服务,则可以先确定服务后,再返回 去继续寻找类-&-对象;没有必要遵循自顶向下,逐步求精的 原则。第1率面向对象今折4)面向对象分析流程一般情况下,面向对象分析过程可按照下列流程进行:确 定类-对象、识别结构、识别主题、定义属性、建立动态模 型、建立功能模型、定义服务(方法)。但是,对于大型的、复 杂的问题,不可能严格按照上面流程进行,需要反复多次进行 寻找、确定、识别、建立和定义来构造模型,即先构造出模型 的雏形或部分,再逐步扩充、修改、求精直至满意为止,最后,构造出符合问题域需求的正确的、准确的、完整的目标系统的 模型,并编写出需求规格说明。下面我们介绍三个模型的建立 和五个层次的定义。第1章面向对象台折9.2建立对象模型对象模型描述了系统的数据结构,它是三个模型的最关键 的一个模型。它的作用是描述系统的静态结构,包括构成系统 的类和对象,它们的属性和操作,以及它们之间的联系。面向 对象方法是以对象为基础来构造系统,而不是以功能为基础来 构造系统。对象模型为建立动态模型和功能模型提供了实质性 的框架。对象模型是基础,动态模型和功能模型在此基础上创 建。也就是说,一个系统首先创建对象模型,然后再创建动态 模型和功能模型。455第1章面向对象台祈在建立对象模型时,我们的目标是从问题域中提炼出对目 标系统有价值的概念。对象模型描述了问题域中的类-&-对象 以及它们之间的关系,表示了目标系统的静态数据结构。一般 来说,当用户的需求变化时,静态数据结构相对来说比较稳定。静态数据结构较少地依赖应用细节,因此,比较容易确定。第1章面向对象台祈对象模型通常有五个层次。建立对象时,首先确定类-对象和关联,对于大型复杂问题,还要进一步划分出若干个主 题;然后给类和关联增补进一步描述的属性;接着利用继承关 系适当的合并和组织类。因为动态模型和功能模型更准确地描 述了类中所提供的服务的需求,所以,类中操作(服务)需等到 建立了这两个模型之后再确定。面向对象分析是复杂而又艰辛的过程,是系统分析员经反 复迭代逐步深化的认知过程来创建模型,将初始的分析模型变 为最终的分析模型。也可以研究、借鉴以前对相同的或类似的 问题域进行面向对象分析后所得到的结果,这样既可以实现重 用,又可以提高系统分析效率。第1章面向对象台祈9.2.1确定类-&-对象系统分析员的主要任务是在问题域中,通过分析找出客观 存在的类-&-对象。首先,识别所有潜在的(候选的)类-&-对 象;然后,从潜在的类-&-对象中筛选掉不正确的或不合适的,通过筛选,剔除冗余的类-&-对象之后,精选出可作为目标系 统的正式类-&-对象。第1章 面向对象台折 匚一倔旖茬的荚二五二对豪1)对象类型对象是人们要研究的任何事物及对问题域中有意义的事物 的抽象,它们既可能是物理实体,也可能是抽象概念(规则、计 划和事件)。具体地说,对象可分为如下几种类型:(1)物理实体:指有形的实物,例如,飞机、汽车、计算 机、书或机房等。(2)人或组织的角色:例如,医生、教师、学生、工人、部门或公司等。(3)事件:指在特定时间所发生的事,例如,飞行、演出、开会、访问或事故等。(4)性能说明:指厂商对产品性能的说明,如产品名字、规格和各种性能指标等。第1章面向对象台折2)初步分析对象具有很强的表达能力和描述功能。在面向对象分析时,可以参照上述几类常见事物,找出在当前问题域中潜在的类-&-对象。另外,还可以以自然语言书写的需求文档(陈述)为依据,这 种分析方法比较简单,是一种非正式分析。文档中的名词可作为 潜在(候选)的类-&-对象,形容词可作为线索来确定属性,动词 可作为潜在的服务(操作)。找出候选者之后,还必须经过严格地 筛选,清除掉那些不正确的或不必要的事物,保留正确的或必要 的事物。这个结果可作为更详细、更精确的正式的面向对象分析 的雏形,当然,也是正式的面向对象分析的一个良好的开端。第夕章面向对象台祈3)实例分析下面以ATM系统为例,说明非正式分析过程。仔细阅读9.1 节给出的需求陈述,从陈述中找出下列名词作为类-&-对象的 初步的候选者。银行、自动取款机(ATM)、系统、中央计算机、分行计算机、营业终端、网络、总行、分行、软件、成本、市、街道、营业 厅、储蓄所。营业员、储户、现金、支票、账户、事务、现金 兑换卡、余额、磁卡、分行代码、卡号、用户、副本、信息、密码、类型、取款额、账单以及访问等。4第1章面向对象台折通常,在需求陈述中不会一个不漏地写出问题域中所有有 关的类-&-对象,因此,分析员应该根据领域知识或常识进一 步把隐含的类-&-对象提取出来。例如,在ATM系统的需求陈述 中虽然没写“通信链路”和“事务日志”,但是,根据领域知 识和常识可以知道,在ATM系统中应该包含这两个实体。第1章面向对象台祈2.筛选出正确的类-&-对象在现实世界中,存在着许多对象,但仅可讨论而已,不能 全部纳入系统中去。通过非正式分析找出的候选对象,仅仅是 提供给分析员的初步的候选者,接下来,还应该对每个候选对 象进行严格考察、筛选,从中去掉不正确的或不必要的,仅保 留正确的或必要的对象。这些对象才确实是应该记录其信息或 需要其提供服务的对象。假定已经找到了一个候选对象,这时又发现了另一个可能 成为对象的实体,那么,是否应该将它作为对象放到模型中去 呢?这时应该根据下列准则筛选对象,剔除不正确或不必要的 类-对象。_*-.一-一 一 -一-7-.*,_彳 第1章面向对象台折1)剔除冗余准则若两个类表达了同样的信息,则应该保留在此问题域中最 富于描述力的那个名称,去掉冗余的类。上面初步分析得出了ATM系统的34个候选的类,其中,储户 与用户,现金兑换卡与磁卡及副本分别描述了相同的信息,因 此,应该将“用户”、“磁卡”、“副本”等冗余的类去掉,仅保留“储户”和“现金兑换卡”这两个类。第1章面向对象台祈2)无关准则删除那些与问题没有多少关系或根本无关的类,仅把与问 题密切相关的类-&-对象放进目标系统中。有些类在其他问题 中可能很重要,但与当前要解决的问题无关,同样也应该把它 们删掉。如,在ATM系统中,应该去掉“成本”、“市”、“街道”、“营业厅”和“储蓄所”等候选类。因为,该系统 并不处理软件开发成本的问题,而且ATM和营业员终端放置的 地点与本软件的关系也不大。第1章面向对象今折3)模糊准则在初步分析时,列出来的作为候选的类-&-对象中,可能 有一些模糊的、泛指的名词,其中,有的是系统无须记忆的信 息;有的是在需求陈述中,它们所暗示的事务,有更明确更具 体的名词来表示。因此,通常应去掉这些笼统的或模糊的类。在ATM系统中,“银行”实际指总行或分行,“访问”在这里实 际指事务,“信息”的具体内容在需求陈述中随后就指明了。此外,还有一些笼统含糊的名词。因此,在本例中,应该去掉“银行”、“网络”、“系统”、“软件”、“信息”和“访 问”等候选类。第1章 面向对象台折密4)属性准则对象是用属性来描述的,若有些名词只是其他对象的属性 的描述,则应该把这些名词从候选类-&-对象中去掉。当然,如果某个性质具有很强的独立性,则应把它作为类而不是作为 属性。在ATM系统中,“现金”、“支票”、“取款额”、“账单”、“余额”、“分行代码”、“卡号”、“密码”和“类型”等,实际上都应该作为属性而不是作为类。在分析人 员考虑不周的地方,该准则能帮助他筛选潜在的对象。第1章 面向对象台折5)操作准则在需求陈述中,有时可能使用一些既可作为名词又可作为 动词的词,此时,应根据它们在本问题中的含义来决定它们是 作为类还是作为类中定义的操作。例如,通常把电话“拨号”当作动词,当构造电话模型时,确实应该把它作为一个操作,而不是一个类。但是,在开发电 话的自动记账系统时,把“拨号”作为重要的一个类,因为,它有自己的日期、时间、受话地点等属性。总之,当一个操作 具有属性需独立存在时,应该作为类-&-对象而不是作为类的 操作。第1章 面向对彖合折3获湎j在分析阶段,应该去掉仅和实现有关的候选的类-&-对象。这是因为,在设计和实现阶段,这些类-&-对象可能是重要的,但是,目标系统实现不应该在分析阶段考虑,不然会分散我们 的注意力。例如,在ATM系统中,“事务日志”无非是对一系列事务的 记录,它的确切表示方式是面向对象设计的议题;“通信链路”在逻辑上是一种联系,在系统实现时它是关联链的物理实现。因此,应该暂时去掉“事务日志”和“通信链路”这两个类,在设计或实现时再考虑它们。综上所述,在ATM系统的例子中,经过初步筛选,剩下了下 列类-对象:ATM、中央计算机、分行计算机、营业终端、总 0、分行、营业员、储户、账户、事务和现金兑换卡等。,第1章面向对象台祈9.2.2确定关联两个或多个对象之间的相互依赖、相互作用的关系就是关 联。一般情况下,在初步分析问题域中的类-&-对象确定之后,接着就可以分析、确定类-&-对象之间存在的关联关系。由于 在整个开发过程中,从OOA-OOD,面向对象概念和表示符号都 是一致的,因此,分析员可以不按照这样的工作顺序,灵活地 选取自己习惯的工作方式。分析、确定关联,能促使分析员考虑问题域的边缘情况,有助于发现那些潜在的类-&-对象。聚集关系(整体-部分关系)是关联的一个特例,在分析、确定关联的过程中,不必明确地去区分关联和聚集。第1章 面向对象台折1.初步确定关联通常,关联关系在需求陈述中,使用描述性动词或动词词组 来表示。因此,通过分析需求陈述,首先,直接提取需求陈述中 的动词词组来初步确定多数的关联,然后,还能挖掘一些在陈述 中隐含的关联。最后,根据问题域实体间的相互依赖、相互作用 关系,分析员还应该与用户及领域专家讨论,作再进一步的补充。以ATM系统为例,用直接提取动词短语得出关联、需求陈述 中隐含关联和根据问题域知识得出关联等方法,经过分析,初步 确定出如表9.1所示的关联。在表9.1中,标“X”符号的关联表 示是删掉的关联,标“”符号的关联表示是分解后又删掉的第1章面向对象台折表9.1确定ATM系统的关联确定方法关 联直接提取动词短语 得出关联(1)ATM、中央计算机、分行计算机及营业员终端组成网络(X)(2)总行拥有多台ATM(A X)(3)ATM设在主要街道上(X)(4)分行提供分行计算机和营业终端(A X)(5)营业终端设在分行营业厅及储蓄所内(义)分行分摊软件开发成本(义)(7)储户拥有账户(8)分行计算机处理针对账户的事务(A X)(9)分行计算机维护账户(A X)(10)营业终端与分行计算机通信(11)营业员输入针对账户的事务(A X)(12)ATM与中央计算机交换关于事务的信息(A X)(13)中央计算机确定事务与分行的对应关系(AX)(14)ATM读现金兑换卡(X)(15)ATM与用户交互(义)(16)ATM输出现金(X)(17)ATM打印账单(义)(18)系统处理并发的访问(X)第1章 面向对象台折续表密确定方法关 联需求陈述中隐 含关联(19)总行由各个分行组成(20)分行保管账户(21)总行拥有中央计算机(22)系统维护事务日志(义)(23)系统提供必要的安全性(X)(24)储户拥有现金兑换卡根据问题域知 识得出关联(25)现金兑换卡访问账户(26)分行聘用营业员第1章 面向对象台折续表4进一步完善关联(27)中央计算机与分行通信(中央计算机确定事务与分行的对应关系 改名)(28)营业员输入事务(营业员输入针对账户的事务的分解)(29)事务修改账户(同上)(30)分行计算机处理事务(分行计算机处理针对账户的事务的分解)(31)事务处理账户(同上)(32)ATM与中央计算机通信(ATM与中央计算机交换关于事务的信 息)(33)在ATM上输入事务(同上)(34)总行拥有中央计算机(总行拥有多台ATM的分解)(35)分行保管账户(分行计算机维护账户)(36)事务修改账户(同上)(37)分行拥有分行计算机(分行提供分行计算机和营业终端的分解)(38)分行拥启营业终端(同上)(39)营业员输入营业事务(增补)(40)营业事务输进营业终端(增补)(41)在ATM上输入远程事务(增补)(42)远程事务由现金兑换卡授权(增补)第1章 面向对象台折2.筛选1)删除已去掉的类之间的关联在分析、确定类-&-对象的过程中,如果已经删掉了某个候 选类,则与这个类有关的关联也应该删掉,或用其他类重新表达 这个关联。例如,在ATM系统中,由于已经删掉了“系统”、“网络”、“市”、“街道”、“成本”、“软件”、“事务日志”、“现 金”、“营业厅”、“储蓄所”和“账单”等候选类,因此,与 这些类有关的八个(表9.1中的(1),(3),(5),(6),(16),(17),(22),(23)关联也应该删掉。第1章面向对象台折密2)删除与问题无关的关联或实现阶段的关联在侯选类中,应该把与本问题域无关的关联或与实现密 切相关的关联删去。例如,在ATM系统中,”系统处理并发的访问”只提醒我 们在实现阶段需要使用实现并发访问的算法,以处理并发事 务,并没有标明对象之间的新关联(表9.1中序号为(18)的关 联),因此,应删去它。第1章面向对象台折3)删除瞬时动作关联应该描述问题域的静态结构,而不应该是一个瞬时事 件,因此应删除瞬时事件的关联。例如,在ATM系统中,“ATM读现金兑换卡”描述了ATM与用 户交互周期中的一个动作,它并不是ATM与现金兑换卡之间的固 有关系,因此应该删去。类似地,还应该删去“ATM与用户交互”这个候选的关联。(表9.1中序号为(14)和(15)的关联)第1章面向对象台祈如果用动作表述的需求隐含了问题域的某种基本结构,则 应该用适当的动词词组重新表示这个关联。例如,在ATM系统的需求陈述中,“中央计算机确定事务与 分行的对应关系”隐含了结构上“中央计算机与分行通信”的 关系(表9.1中序号为(13)的关联),因此,应该删去。第1章面向对象台祈4)多元关联分解密多元关联是三个或三个以上对象之间的关联,多数可以分 解为二元关联或用词组描述成限定的关联。例如,在ATM系统中,“营业员输入针对账户的事务”可以 分解成“营业员输入事务”和“事务修改账户”两个二元关联,而“分行计算机处理针对账户的事务”也可以做类似的分解(表 9.1中序号为(H)和(8)的关联)。“ATM与中央计算机交换关于 事务的信息”这个候选的关联,实际上隐含了“ATM与中央计算 机通信”和“在ATM上输入事务”这两个二元关联(表9.1中序号 为.Q1 2)的 关联)o _ q*.y-一第1章面向对象今折.城r 9 15)派生关联有的关联可以用已有的、必要的关联来定义时,应该去掉 这些冗余的关联。例如,在ATM系统中,“总行拥有多台ATM”派生了“总行 拥有中央计算机”和ATM与中央计算机通信”这两个关联,而“分行计算机维护账户”的实际含义是,“分行保管账户”和“事务修改账户”(表9.1中序号为(2)和(9)的关联)。4第1章 面向对象台折3.完善关联经过筛选后余下的关联不够精确、完善时,应该进一步分 解和增补,以调整关联。改进方法如下:1)重命名关联的命名相当重要,准确的名字有利于读者理解。因此,如有不合适的、含义不清的名字,应该重新选择含义更明确的 名字来作为关联名。例如,将“分行提供分行计算机和营业员终端”改为“分 行拥有分行计算机”和“分行拥有营业员终端”就更明确些(在 表9.1中序号为(4)的关联)。第1章面向对象台折2)分解为了能够适用于不同的关联,必要时应该分解以前确定的类-&-对象。例如,在ATM系统中,应该把“事务”分解成“远程事务”和“营业事务”。第1章面向对象台祈密3)增补发现了遗漏的关联或分解类-&-对象之后需要新关联时,应该及时增补。例如,在ATM系统中,把“事务”分解成上述两类之后,需要补充“营业员输入营业事务”、“营业员事务输进营业终 端”、“在ATM上输入远程事务”和“远程事务由现金兑换卡 授权”等关联(表9.1序号为(39)、(40)、(41)和(42)的关联)。第1章面向对象今折44)标明阶数当确定各个关联的类型之后,可以初步地确定关联的阶数。随着系统分析反复改进,阶数也会经常改动。图9.3是经上述分析过程之后得出的ATM系统的原始对象图。第1章 面向对象台折总行;分行:代码组成分行拥有 1+|账户I拥有拥有拥有1+聘用修改1+中央计算机IL1_ _ 11;I分行计算M营业员通信通信1+拥有1+输入1+1+1+ATM:输入访问营业终端I营业事务Ii+11+修改1+远程事务|-T+授权图9.3 ATM系统初始对象模型图1储户拥有1+H-1 1现金兑换卡IL1_1 1第1章 面向对象台折9.2.3确定属性1.为何确定属性属性是用来描述类-&-对象的特性的。一个属性是一个数据 项(状态信息),类中对象都有相应的值(状态)。目前,面向对象 分析模型越来越专门化,而且更加详细,每个类-对象都由属 性描述,而属性则按照类-&-对象的规范来描述。属性放在类-&-对象表示符号的中间部位。在面向对象分析中,“属性”用来反映问题域和系统的任务。属性能帮助我们更深入、更具体的认识类-&-对象和结构,换句 话说,属性能为“类-对象”以及“结构”提供更多的细节,因此,在一个系统中,确定属性是非常重要的。_ -.一 _nJ-r 一-一-7-_*第夕章面向对象台祈2.如何确定属性选择属性的过程包括分析和选择两步。一般来说,分析强调 对象的外观或功能,选择则强调目标系统的需求。属性是对象的性质,通常用名词词组和形容词来表示。首先,在需求陈述中找出属性或通过分析找出属性。这些属性必须是问 题域中对象的基本性质,而且在目标系统中是必要的。也就是说,只考虑与目标系统相关的属性,不考虑超出目标系统范围的属性。然后,删除不正确的和不必要的属性,选择正确的和必要的属性。最后,恰当的给属性命名。第1章 面向对象台折删除属性的标准如下:1)区别对象和属性对象是在应用领域内具有自身性质的实体。若某个实体的 独立存在相当重要,而相比之下它的值不那么重要,则应把它 作为一个对象而不是对象的属性。同一个实体在不同的应用领 域中是作对象还是作属性,需要根据应用需求具体分析而定。例如,在邮政目录中,“城市”是一个属性,而在人口普查中,“城市”却看作为对象。第夕章 面向对象今折密2)区别链属性和属性在分析过程中,不应该把链属性作为对象的属性。若某个 性质依赖于某个关联链的存在,则该性质是链属性而不是属性。链属性在多对多关联中很明显,在整个开发过程中,不要把它 作为两个关联对象中任意一个的属性。第夕章 面向对象今折密3)区别限定词和属性当属性固定下来后,能减少关联的阶数时,则可将该属性 重新定义成为一个限定词。如ATM系统中,分行代码、聘员号、账号和站号等都是限定词,而不要把它误认为属性。再如,在 图9.3中,“分行代码”不但可作为关联“分行组成总行”上的 限定词,也可作为关联“中央计算机”与“分行计算机”的限 定词,这样,就将该关联的一对多的通信关系减少为一对一的 通信关系。第夕章面向对象台祈4)区别内部值和属性若某个性质是对象的非公开的内部状态时,则应该将这个 属性从对象模型中删掉。5)避免细化一个对象的属性不能过于细化,在分析过程中,应去掉那 些对大多数操作没有影响的属性。经过以上精选后,确定的ATM系统中的各个类的属性可参见 图9.4所示。在9.4图中,又增补了一些限定词。第1章 面向对象台折发放总行组成总行名聘员号一一拥有分11 行一 代 码户额额型 账余限类1拥有储户姓名 地址I拥11有聘用修 改修 改i+访 问中央计算机名称站号通 信ATM现有金额 付出金额拥有图 9 4分行代码通信,I分行计算机型号通信营业终端输入远程事务输入i+型期额 类日金拥 有营业员姓名输入i+i+营业事务i+型期额 类日金1+i+授权现金兑换卡密码1+i+带有属性与主题的ATM对象模型第1章面向对象台折(1)“卡号”:前面的分析过程中,遗漏了“分行发放现金兑换卡”这一关联,现在发现了,因而就把“卡号”这个限定 词补上。账号”是关联“分行保管账号”上的限定词。“聘员号”是关联“分行聘用营业员”上的限定词。“站号”是关联“分行拥有营业终端”、“营业终端与分行计算机通信”和“中央计算机与ATM通信”等上的限定词。第1章面向对象台折密9.2.4确定主题1.为何确定主题主题是一种指导开发者或用户研究大型复杂模型的机制。主题是一种手段,有助于分解大型项目以便分组承担任务。此 外,主题还可以给出面向对象分析和设计的模型总体概貌。主题所依据的原理是整体-部分关系的扩充。一个系统模 型可以包含多个主题,也就是说,主题是整个问题域和系统任 务的一部分,是用来与整个问题域和系统任务(总体)进行通信 的部分。1 第夕章面向对象台折 d,2.如何确定主题是否划分主题要看目标系统的大小,若开发很小的系统,则没必要划分主题;若开发大型、复杂的系统,则为了降低复 杂程度,应将系统再进一步划分成几个不同的主题,使得开发 者便于分组承担任务,小组成员能集中精力考虑承担范畴内的 内容。对于含有较多对象的系统,应采用选择、精炼和构造的方 法来确定主题。首先,由高级分析员粗略地识别对象和关联,然后初步选择主题。经进一步分析,在更深入了解系统结构的 基础上,修改和精炼主题。最后,按问题领域构造出一个主题(主题编号和主题名)。第夕章面向对象台折按问题领域确定主题,应该将相互间依赖和交互较多的对 象确定为同一个主题。我们确定“总行”、“分行”和“ATM”等为ATM系统中的三个主题,用、和分别表示这三个主题 的编号,如图9.4所示。该例不是很复杂,可以不引入主题层,在这里主要是为了 说明如何确定主题。为了使图简单、清晰,在下面的章节中讨 论这个例子时将忽略主题层。第1章面向对象台折9.2.5识别结构1.为何识别结构确定了类的属性后,就可以利用继承来共享公共的性质,以结构的形式重新组织类。结构是问题域复杂关系的表示,它 与系统的任务直接相关。一般-特殊结构具有继承性,一般类 和对象的属性和方法一旦被识别,即可在特殊类和对象中使用。第1章面向对象台折2.如何识别结构通常,可用以下两种方法来建立继承(分类)关系。1)自底向上识别自底向上识别是抽象出现有类的共同性质来一般化成父类,找出具有相似的属性、操作和关联的类来发现继承。例如,在 ATM系统中,“远程事务”和“营业事务”可以一般化为“事 务”(父类)。也可以将“ATM”和“营业终端”一般化为“输入 站”(父类)。在识别中,应尽可能应用现实世界中的常用分类 结构,如不能直接使用现有的类,可以将属性或类稍加细化再 表示出来。第1章 面向对彖合折2)自顶向下识别密自顶向下识别是把现有的类细化为更具体的子类,通常,具体化的子类可以在应用领域中直接找出来。如具体化类与现 有实际情况矛盾时,说明该类定义不当,需要重新考虑。例如,在ATM系统中,“远程事务”和“营业事务”是“事务”(父类)的具体化类(子类)。同样,“AT贮和“营业终端”是“输入 站”(父类)的具体化类(子类)。在类层次结构中,特殊类共有 的属性应放在父类中。特殊类中应定义自己独有的属性,当然 它可以继承父类的属性。加入继承的ATM对象模型如图9.5所示。第1章面向;ATM现有金额 付出金额信 通以布依世输入站营业终端分行计算利通信I保管一1+事务型期额 类日金通信 拥有1+J图95带有属性和继承的ATM对象模型第1章 面向对象台折9.2.6优化对象模型通过以上各步,对象模型就建立起来了,但这样不能确保 模型是完全正确的,还应反复修改,不断完善与优化。在建模 的各个阶段,一旦发现了缺陷,就必须返回到前面阶段进行修 改。有些细化工作(如定义服务)要等到动态模型和功能模型建 完以后力能进行。在建模的过程中,不一定按前述的工作顺序进行,分析员 完全可以以自己的独特方法进行,既可以将几个阶段并行处理,又可以随意组织前述工作顺序。如果是初次使用面向对象方法,建议还是按照前述顺序进行比较好。第1章面向对彖合折感1.删除冗余的类如果某类中缺少属性、操作和关联,则可删除该类。2.分解类“现金兑换卡”可分为“卡权限”和“现金兑换卡”两个功 能,前者表示储户访问账户的权限,后者则表示含有分行代码和 卡号的数据载体。第1章面向对象台折密3.补充关联一个“事务”由若干个“更新”组成,它们构成整体-部 分关系。一个“更新”是一个动作,即对账户所做的一次处理,如存款、取款、查询等。“更新”有类型、金额等属性,所以,可补充定义成为一个单独类,“事务”与它构成整体-部分关系。第1率面向对象台祈4.合并类如在一个应用系统中,两个类虽然名字不同,但是它们所 完成的任务以及与其他类的关系也相同,这时可将这两个类合 并成为一个类。例如,“分行”与“分行计算机”合并为“分 行”。同样,可将“总行”与“中央计算机”合并成为“总 行”。通过进一步的优化,得出如图9.6所示的ATM对象模型。第1章面向对象盘折营业事务I1+启动1+1+输入营业员姓名储户姓名 地址拥有1+账户1发放卡权限修改保管i!拥有 i+标识1+现金兑换分行代码 卡号|1 一 I 1+1密码 限额访 问4d 图9 6 优化后的ATM对象模型额额型 余限类第1章 面向对象台折密9.3建立动态模型当对象模型建立起来后,接着可以建立动态模型。动态模 型的概念和表示方法前一章已经介绍了,本节以ATM系统为例,对动态模型的建立方法给予叙述。建立动态模型对于每个系统并不是都重要,这要看开发系 统的类型而定。对于数据库系统来说,动态模型并不重要,如 果是交互式系统,建立动态模型却是非常重要的。对于一个系统来说,功能模型指明了系统应该“做什么”,而动态模型则明确规定了“什么时候做”。即在何种状态下、接受了什么事件的触发,来确定对象的可能事件的顺序。第1章面向对象台折建立动态模型的步骤:(1)编写典型的对话脚本;(2)从脚本中提取出事件,联系该事件与其目标对象;(3)组织事件的顺序和状态(采用状态图描绘);(4)比较各个不同对象的状态图,检查对象之间的一致性,确保事件之间的匹配。第夕章面向对象台折9.3.1编写脚本1.脚本的概念当系统与用户交互时,为了对目标系统的行为有更具体的 认识,用脚本表示系统的行为。脚本描述用户(或其他外部设备)与目标系统之间的一个或多个典型的交互过程,利用脚本来建 立动态模型。在建立动态模型的过程时,为了确保整个交互过 程的正确性和清晰性,不遗漏重要的交互步骤,首先要编写脚 本,为建立动态模型奠定基础。第1章面向对象台祈脚本是事件序列,当系统中的对象与外部用户发生互换信 息时,就产生一个事件,所呼唤的信息值就是该事件的参数。对于事件来说,确定触发事件的动作对象和该事件的参数是非 常重要的。屏幕布局和输出格式是外观的界面,一般是不会影 响交互行为的逻辑和所交换的信息的。第夕章面向对象今折2.准备脚本有时,在需求陈述中已经描写了完整的交互过程,但还需要 花很大精力构思交互的形式。ATM系统的需求陈述虽然表明了应 从储户那里获得有关事务的信息,但并没有准确说明获得信息的 具体过程和需要什么参数,动作顺序如何等还是模糊的。因此,编写脚本的过程,是分析用户对系统交互行为的需求的过程,需 要用户参与,提出意见,并审查和更改。首先,编写正常情况的脚本。然后,考虑特殊情况脚本,例 如输入或输出的数据的值域。最后,考虑用户出错情况脚本,例 如,非法输入值或响应失败等。此外,还应该考虑在基本交互行 为之上的“通用”交互行为,如帮助要求和状态查询等。第1章 面向对象台折表9.2 ATM系统的正常情况下的脚本序号脚 本1ATM请储户插卡;储户插入一张现金兑换卡2ATM接受该卡并读它上面的分行代码和卡号3ATM要求储户输入密码;储户输入自己的密码,如“5461”等数字4ATM请求总行验证卡号和密码;总行要求“9”号分行核对储户密码,然后通知ATM说这张卡有效5ATM要求储户选择事务类型(取款、转账、查询等);储户选择“取款”6ATM要求储户输入取款额;储户输入如“505”等数字7ATM确认取款额在预先规定的限额内,然后要求总行处理这个事务;总行把请求 转给分行,该分行成功地处理完这项事务并返回该账户的新余额8ATM输出现金并请储户拿走这些现金;储户拿走现金9AIM问储户是否继续这项事务;储户回答“不”10ATM打印账单,退出现金兑掾卡,请储户拿走它们;储户取走账单和卡第1章 面向对象台折序号表9.3 ATM系统的异常情况下的脚本脚 本1ATM
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:第9章 面向对象分析.pdf
    链接地址:https://www.zixin.com.cn/doc/4901429.html
    页脚通栏广告

    Copyright ©2010-2026   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork