信息系统设计与实践-面向对象的系统分析课件

PPT
  • 阅读 34 次
  • 下载 0 次
  • 页数 121 页
  • 大小 1.666 MB
  • 2022-11-24 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档40.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
信息系统设计与实践-面向对象的系统分析课件
可在后台配置第一页与第二页中间广告代码
信息系统设计与实践-面向对象的系统分析课件
可在后台配置第二页与第三页中间广告代码
信息系统设计与实践-面向对象的系统分析课件
可在后台配置第三页与第四页中间广告代码
信息系统设计与实践-面向对象的系统分析课件
信息系统设计与实践-面向对象的系统分析课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 121
  • 收藏
  • 违规举报
  • © 版权认领
下载文档40.00 元 加入VIP免费下载
文本内容

【文档说明】信息系统设计与实践-面向对象的系统分析课件.ppt,共(121)页,1.666 MB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-44903.html

以下为本文档部分文字说明:

信息系统分析、设计与开发方法面向对象的系统分析4.1面向对象的基本过程4.2面向对象分析的特点4.3需求分析陈述4.4面向对象的系统分析活动4.5建立对象模型4.6建立动态模型4.7建立功能模型4.8

案例目录4.1.1概述面向对象分析(Object-OrientedAnalysis,简称OOA),就是运用面向对象的方法进行系统分析,强调运用面向对象方法,对问题域和系统职责进行分析和理解,找出描述问题域及系统职责所需的对象,定义对象的属性、服务以及它们之间的关系,

目标是建立一个符合问题域、符合用户需求的OOA模型。4.1面向对象分析的基本过程问题域系统责任期刊管理发行商管理人事管理……数据备份数据安全可扩充性……图书借阅管理书库管理读者管理……4.1面向对象分析的基本过程问题域(problemdomain)就是被开发系统的应用领域,即软件系统所能处

理的现实世界中的业务范围。系统责任(systemresponsibilities)即所开发的软件系统应该具备的职能.4.1.1概述4.1面向对象分析的基本过程OOA的主要任务就是对问题域和系统责任进行分析和理解;找出跟问题

域与系统责任有关的类及对象;定义这些对象的属性和操作,以及它们之间所形成的结构,静态联系和动态联系。简言之,确定系统分析中的对象,描述对象的静态特征和动态特征,找出对象间的各种关系以及对象的行为约束,是OOA

的主要任务。4.1.1概述4.1面向对象分析的基本过程OOA和OOD的职责划分OOA针对现实世界中的问题域和系统职责,用面向对象的方法建立起OOA模型,作为分析的结果。OOA模型不考虑与系统具体实现相关的因素,从而使OOA模

型独立于具体的实现环境。OOD则是针对系统的具体实现,运用OO方法进行系统设计。其中包括两方面的工作:1.根据实现条件对OOA模型做某些必要的调整和修改,使其成为OOD模型的一部分;2.针对具体实现条件,建立人机界面、数据存

储和控制驱动等模型。这些部分与OOA采用相同的概念与表示法。4.1.1概述4.1面向对象分析的基本过程用OO方法开发软件,通常建立3种模型:对象模型(基本):描述系统静态数据结构。动态模型(辅助):描述系统的交互次序和行为过程。功能模型(辅助):描述数据变换结果。三个模型的侧

重点对象模型对于任何系统都是最基础、最重要和最核心的,是必需的。动态模型对于设计交互行为和时序过程(如用户界面及过程控制)的系统是重要的。功能模型对于解决运算量很大的问题(如科学和工程计算)是重要的。4.1.1概述关系层特征层

对象层基本模型(类图)模型组织包图辅助模型交互图活动图状态图数据流图……给出所有与问题域和系统责任有关的对象,用对象类表示定义每个对象类的属性与服务通过已定义的关系描述对象类之间的关系详细说明对模型中的所有元素进行详

细说明。描述数据变换结果一幅交互图表现完成某一项特定功能的一组对象之间的详细交互;一辐状态图描述了一个对象的状态变迁。活动图描述了一个服务的流程或业务流程。OOA模型对关系密切的元素打包,帮助理解系统模型。v

OOA过程v建立基本模型™描述系统的基本特征,类图v建立动态模型(可选)™描述系统的动态行为特征,交互图,活动图和状态图v建立功能模型(可选)™描述数据变换结果,数据流图v建立模型组织™包图,系统,子系统v写详细说

明v注意:模型的建立不需要按顺序,不分先后。4.1.2面向对象的基本过程4.1面向对象分析的基本过程•OOA具体过程4.1.2面向对象的基本过程4.1面向对象分析的基本过程在需求分析基础上确定系统的构成发现对象定义属性与服务建立结构与连接划分主题建立交互图原型开发详细说明O

OA过程模型建立类图(对象模型)*发现对象,定义对象类*识别对象的内部特征*识别对象的外部关系原型开发*结合其它活动反复进行划分主题,建立包图(辅助模型,可选)建立交互图、状态图、活动图(动态模型,可选)对模型中的成分进行规范的定义和文字说明,可集中进行,也可分散在各个活

动中实施OOA过程的几点建议:1.把对系统需求的捕获和描述放在分析工作的开始。2.建立基本模型的三个活动,可根据需要随时从一个活动切换到另一个;3.建立动态模型可以安排到建立对象模型之后,也可以同时进行;4.建立详细说明的活动应结合在其它活动中

分散进行,最后做一次集中的审查和补充;5.原型开发可反复进行,开发早期原型主要用于证实用户需求;6.分析较小的系统时,可以省略分包的活动,在分析大中型系统时,也可按需求先分包,再根据包分工。4.1.2面向对象的基本过

程4.1面向对象分析的基本过程OOA过程由5项主要活动组成:(1)识别类和对象(2)确定结构(3)确定主题(4)定义属性(5)定义服务根据这些主要活动,OOA模型也由5个层次组成。4.1.2面向对象的基本过程4.1面向对象分

析的基本过程4.1.2面向对象的基本过程4.1面向对象分析的基本过程本节要掌握的内容:OOA模型的三个子模型和五个层次OOA的主要原则(1)抽象原则(2)分类原则(3)聚合原则(4)关联原则(5)消息通信原则(6)粒度控制原则4.2面向对象分析的特点OOA的

主要优点(1)(1)OOA是在人类思维组织的基本方法框架下定义并表达需求,直观性好。(2)便于分析人员集中精力于问题空间的理解和分析,有利于超越系统的复杂性困难。(3)把属性和有关服务方法作为对象整体来看

待,比较自然。(4)使用对象间的最小相关性来分析和说明。这有利于实行封装性原则,并使OOA适应开发需求的变化,也有利于制作和提取可复用的部件。4.2面向对象分析的特点OOA的主要优点(2)(5)通过对共性的显式表示而提高表达能力。抽象层次与后续OOP结合,编程思路清晰

,特别是有利于提高程序效率。(6)分析法与设计法的一致性,密切配合建造一个问题域模型。(7)对系统族的适用性和可扩展性强4.2面向对象分析的特点1)写什么:需求陈述的内容包括:问题范围,功能需求,性能需求,应用环境及约束条件等。简单地讲,需求陈述应该阐明系统“做

什么”,而不管“怎样做”。2)怎么写:文字描述要做到语法正确,内容完整,条理清晰。准确使用名词、动词、形容词和同义词。3)需求陈述作用:需求陈述仅仅是理解用户需求的出发点,千万不可将此陈述当成完整、准确、有效和一成不变的文档。4.3需求分

析陈述书写要点需求陈述举例:下图所示为自动取款机(ATM)系统ATM系统自动取款机(ATM)系统需求陈述:某银行拟开发一个自动取款机系统,它是一个由自动取款机、中央计算机、分行计算机及柜员终端组成的网络系统。ATM和中央计算机由总行投资

购买。总行拥有多台ATM,分别设在全市各主要街道上。分行负责提供分行计算机和柜员终端。柜员终端设在分行营业厅及分行下属的各个储蓄所内。该系统的软件开发成本由各个分行分摊。银行柜员使用柜员终端处理储户提交的储蓄事务。储户可以用现金或支票向自己拥有的某个账户内存款或开新账户。储户也可

以从自己的账户中取款。通常,一个储户可能拥有多个账户。柜员负责把储户提交的存款或取款事务输进柜员终端,接收储户交来的现金或支票,或付给储户现金。柜员终端与相应的分行计算机通信,分行计算机具体处理针对某个账户的事务并且维护账户。拥有银行账户的储户有权申请领取现金兑换卡。使用现金兑换卡可以通过

ATM访问自己的账户。目前仅限于用现金兑换卡在ATM上提取现金(即取款),或查询有关自己账户的信息(例如,某个指定账户上的余额)。将来可能还要求使用ATM办理转账、存款等事务。所谓现金兑换卡就是一张特制的磁卡,上面有分行代码和卡号。分行代码惟一标识总行下属的一个分行,卡号确定了这张卡可以访问

哪些账户。通常,一张卡可以访问储户的若干个账户,但是不一定能访问这个储户的全部账户。每张现金兑换卡仅属于一个储户所有,但是,同一张卡可能有多个副本,因此,必须考虑同时在若干台ATM上使用同样的现金兑换卡的可能性。也就是说,系统应该能够处理并发的访问

。当用户把现金兑换卡插入ATM之后,ATM就与用户交互,以获取有关这次事务的信息,并与中央计算机交换关于事务的信息。首先,ATM要求用户输入密码,接下来ATM把从这张卡上读到的信息以及用户输入的密码传给中央计算机,请求中央计算机核对这些信息并处理

这次事务。中央计算机根据卡上的分行代码确定这次事务与分行的对应关系,并且委托相应的分行计算机验证用户密码。如果用户输入的密码是正确的,ATM就要求用户选择事务类型(取款、查询等)。当用户选择取款时,ATM请求用户输入取款额。最后,ATM从现金出口吐出现金,并且打印出账单交给用户。

基本思想:首先找出与问题域相关的所有候选类与对象,然后从候选类与对象中筛选掉不正确的或不必要的。4.4.1获取对象和类4.4面向对象的系统分析活动1、先找出候选的类与对象寻找类与对象的一般方法:对象是对问题域中相关实体或事物的抽象,既可以是客观实体,也可以是

抽象概念。一般划分5类:1)可感知的物理实体:如飞机、汽车、书、房屋等等。2)人或组织:例医生、教师、雇主、计算机系、财务处等。3)应该记忆的事件:如飞行、演出、访问、交通事故等。4)两个或多个对象的相互作用:如购买、纳税、结婚等。5)需要说明的概

念:如政策、保险政策、版权法等。按照上述5类抽取和寻找系统的全部必要类和对象。4.4.1获取对象和类4.4面向对象的系统分析活动一种寻找对象类的非正式分析方法名词识别法这种分析方法以需求陈述为依据,把陈述中的名词作为类与对象的候选者;用形容词

或名词作为确定属性的候选者;把动词作为服务(操作)的候选者。下面以ATM系统为例,说明非正式分析过程。认真阅读ATM需求陈述,从中找出相关名词,可以把它们作为类与对象的初步的候选者:银行,自动取款机(ATM),系统,中央计算机,分行计算机,柜员终端,网络,总行,分

行,软件,成本,市,街道,营业厅,储蓄所,柜员,储户,现金,支票,账户,事务,现金兑换卡,余额,磁卡,分行代码,卡号,用户,副本,信息,密码,类型,取款额,账单,访问。注意:分析员应该根据领域知识或常识进一步把隐含的类与对象提取出来。例如,ATM

系统必须包含“通信链路”和“事务日志”实体,应该补充进来。2.筛选出正确的类与对象候选类与对象可能包括一些不正确的或不必要的类与对象,应该筛选掉,仅保留确那些确实需要记录信息或提供服务的对象。删除不正确或不必要的类与对象的筛选准则:1)冗余:如果两个类表达了同样的信息,则应该

保留行业规范名称。ATM例中:储户与用户,现金兑换卡与磁卡及副本分别描述了相同的两类信息,因此,仅保留“储户”和“现金兑换卡”这两个类,应该去掉“用户”、“磁卡”、“副本”等冗余的类。银行,自动取款机(ATM),系统,中央计算机,分

行计算机,柜员终端,网络,总行,分行,软件,成本,市,街道,营业厅,储蓄所,柜员,储户,现金,支票,账户,事务,现金兑换卡,余额,磁卡,分行代码,卡号,用户,副本,信息,密码,类型,取款额,账单,访问,通信链路,事务日志2)无关:保

留与本问题密切相关的类与对象,删除与本问题无关或关系不大的类与对象。ATM系统为例:系统不处理分摊软件开发成本的问题,另外ATM和柜员终端放置的地点与本软件的关系也不大。因此,应该去掉候选类“成本”、“市”、“街道”、“营业厅”和“储蓄所”。

银行,自动取款机(ATM),系统,中央计算机,分行计算机,柜员终端,网络,总行,分行,软件,成本,市,街道,营业厅,储蓄所,柜员,储户,现金,支票,账户,事务,现金兑换卡,余额,磁卡,分行代码,卡号,用户,副本,信息,密码,类型,取款额,账单,访问,

通信链路,事务日志3)笼统:删除笼统的、泛指的、模糊的名词对应的候选类与对象,保留有更明确、更具体的名词对应的类与对象。以ATM系统为例:银行实际指总行或分行,访问在这里实际指事务,此外还有一些笼统含糊的名词。在本例中应该去

掉“银行”、“网络”、“系统”、“软件”、“信息”、“访问”等候选类。银行,自动取款机(ATM),系统,中央计算机,分行计算机,柜员终端,网络,总行,分行,软件,成本,市,街道,营业厅,储蓄所,柜员,储户,现金,支票,账户,事务,现金兑换卡,余额,磁卡,分行代码,卡号,用户,

副本,信息,密码,类型,取款额,账单,访问,通信链路,事务日志4)属性:把描述属性的名词应从候选类与对象中去掉。在ATM系统的例子中,“现金”、“支票”、“取款额”、“账单”、“余额”、“分行代码”、“卡号”、“密码”、“类型”等,实际上都应该作为属性对待。银行,自动取款机(ATM),系统,中央计

算机,分行计算机,柜员终端,网络,总行,分行,软件,成本,市,街道,营业厅,储蓄所,柜员,储户,现金,支票,账户,事务,现金兑换卡,余额,磁卡,分行代码,卡号,用户,副本,信息,密码,类型,取款额,账单,访问,通信链路

,事务日志5)操作:在需求陈述中既可作为名词,又可作为动词的词,应该慎重考虑它们在本问题中的含义,以便正确决定他们作为类还是操作。6)实现:在分析阶段不应该过早地考虑怎样实现目标系统。因此,应该去掉只和实现有关的候选的类与对象。在ATM系统中,“事务日志”是对一系列事务的记录,它的

确切表示方式是面向对象设计的议题;“通信链路”在逻辑上是一种联系,在系统实现时它是关联类的物理实现。应该暂时去掉“事务日志”和“通信链路”这两个类,在设计或实现时再考虑它们。银行,自动取款机(ATM),系统,中央计算机,分行计算机,柜员终端,网络,总行,分行,软件,成本,市,街道,营

业厅,储蓄所,柜员,储户,现金,支票,账户,事务,现金兑换卡,余额,磁卡,分行代码,卡号,用户,副本,信息,密码,类型,取款额,账单,访问,通信链路,事务日志经过初步筛选,ATM系统保留的类与对象为:ATM

、中央计算机、分行计算机、柜员终端、总行、分行、柜员、储户、账户、事务、现金兑换卡。关联是指两个或多个对象之间的相互依赖、相互作用的关系。分析确定关联,有助于发现尚未被发现的类和对象。一般——特殊结构一

般——特殊关系又称类属关系,是现实世界中一般对象和特殊对象之间的关系,反映了现实世界中事物之间的分类关系。前者称为父类,后者称为子类,子类继承父类的特性(属性、操作、关联等),同时又拥有自己的特性。4.4.2确定关联4.4面向对象的系统分析活动例如图书借阅管理系统中,对象类“人员”

是类“管理员”和“借阅者”类的父类,而子类“管理员”又是类“系统维护人员”和类“一般操作人员”的父类。人员管理员借阅者一般操作人员系统维护人员一般——特殊关系4.4.2确定关联4.4面向对象的系统分析活动整体——部分对

象实例之间的整体——部分关系,反映了现实世界中的事物之间的构成关系。整体——部分关联又可以从两个方面来反映:聚合关系:表示对象实例之间的整体与部分的关系,作为整体的对象拥有作为部分的对象。在聚合关系中,部分的生命

周期独立于整体的生命周期。组合关系:是聚合关系的一种特殊形式。在组合关系中,整体和部分之间有着一致的生命周期。4.4.2确定关联4.4面向对象的系统分析活动聚合组合4.4面向对象的系统分析活动发动机车身

汽车轮胎聚合关系A公司财务部人力资源部信息资源部1112组合关系4.4.2确定关联关联表示对象实例之间的静态联系,这两个对象实例之间存在某种语义上联系。例如,员工为公司工作,一个公司有许多部门,因此,可以认为员工和公司、公司和部门之间存在某种语义上的联系

,如下图所示。员工公司部门****4.4.2确定关联4.4面向对象的系统分析活动依赖关系一个模型元素的变化影响另一个模型元素,则两个元素之间存在依赖关系。以X和Y两个元素为例,当修改X的定义时,引起Y的定义的修改,则称Y依赖于X。+compareYW(inobjY:Y,inobjW:W):b

ool-obj1:Y-obj2:W-nCnt:intX-count:float-nCnt:int-sName:stringY-date:string-sName:stringW4.4.2确定关联4.4面向对象的系统分析活动确定关联的步骤:1.初步确定关联(候选关联)基本方法

:以需求陈述中描述性动词或动词词组为纽带,确定类与对象之间的关联关系。(语法:主语+谓语+宾语)寻找范围:直接提取需求陈述中的动词词组;分析发现陈述中隐含的关联;与用户及领域专家讨论获取关联。4.4面向

对象的系统分析活动4.4.2确定关联以ATM系统为例,经过分析初步确定出下列关联:1)直接提取动词短语得出的关联ATM、中央计算机、分行计算机及柜员终端组成网络。总行拥有多台ATM。ATM设在主要街道上。分行提供分行计算机和柜员终端。柜员终端设在分

行营业厅及储蓄所内。分行分摊软件开发成本。储户拥有账户。分行计算机处理针对账户的事务。分行计算机维护账户。柜员终端与分行计算机通信。柜员输入针对账户的事务。ATM与中央计算机交换关于事务的信息。中央计算机确定事务与分行的对应关系。ATM

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

兑换卡访问账户。分行雇用柜员。vATM、中央计算机、分行计算机及柜员终端组成网络。v总行拥有多台ATM。vATM设在主要街道上。v分行提供分行计算机和柜员终端。v柜员终端设在分行营业厅及储蓄所内。v分行分摊

软件开发成本。v储户拥有账户。v分行计算机处理针对账户的事务。v分行计算机维护账户。v柜员终端与分行计算机通信。v柜员输入针对账户的事务。vATM与中央计算机交换关于事务的信息。v中央计算机确定事务与分行的对应关系。vAT

M读现金兑换卡。vATM与用户交互。vATM吐出现金。vATM打印账单。v系统处理并发的访问。v总行由各个分行组成。v分行保管账户。v总行拥有中央计算机。v系统维护事务日志。v系统提供必要的安全性。v储户拥有现金兑换卡。v现金兑换卡访问账户。v分行雇用柜员。候选关联2.筛选候选

关联中包含了一些不正确或不必要的关联,应该删除掉。筛选时主要根据下述标准删除候选的关联:1)已删去的类之间的关联与某个已删候选类相关的关联,也应该删去。以ATM系统为例,由于已经删去了“系统”、“网络”、“市”、“街道”、“成本”、“软件”、“事务日志”、“现金”、“营业厅”、“储蓄所”、“账单”

等候选类,因此,与这些类有关的关联也应该删去:①ATM、中央计算机、分行计算机及柜员终端组成网络。②ATM设在主要街道上。③分行分摊软件开发成本。④系统提供必要的安全性。⑤系统维护事务日志。⑥系统处理并发的访问⑦ATM吐出现金。⑧A

TM打印账单。⑨柜员终端设在分行营业厅及储蓄所内。vATM、中央计算机、分行计算机及柜员终端组成网络。v总行拥有多台ATM。vATM设在主要街道上。v分行提供分行计算机和柜员终端。v柜员终端设在分行营业厅及储蓄所内。v分行分摊软件开

发成本。v储户拥有账户。v分行计算机处理针对账户的事务。v分行计算机维护账户。v柜员终端与分行计算机通信。v柜员输入针对账户的事务。vATM与中央计算机交换关于事务的信息。v中央计算机确定事务与分行的对应关系。vATM读现金兑换卡。vAT

M与用户交互。vATM吐出现金。vATM打印账单。v系统处理并发的访问。v总行由各个分行组成。v分行保管账户。v总行拥有中央计算机。v系统维护事务日志。v系统提供必要的安全性。v储户拥有现金兑换卡。v现金兑换卡访问账户。v分行雇用柜员。候

选关联2)与问题无关的或应在实现阶段考虑的关联应该把处在本问题域之外的关联或与实现密切相关的关联删去。3)瞬时事件:关联应该描述问题域的静态结构,而不应该是一个瞬时事件。例如,“ATM读现金兑换卡”描述了AT

M与用户交互周期中的一个动作,它并不是ATM与现金兑换卡之间的固有关系,因此应该删去。类似地,还应该删去“ATM与用户交互”这个候选的关联。vATM、中央计算机、分行计算机及柜员终端组成网络。v总行拥有

多台ATM。vATM设在主要街道上。v分行提供分行计算机和柜员终端。v柜员终端设在分行营业厅及储蓄所内。v分行分摊软件开发成本。v储户拥有账户。v分行计算机处理针对账户的事务。v分行计算机维护账户。v柜员终端与分行计

算机通信。v柜员输入针对账户的事务。vATM与中央计算机交换关于事务的信息。v中央计算机确定事务与分行的对应关系。vATM读现金兑换卡。vATM与用户交互。vATM吐出现金。vATM打印账单。v系统处理并发的访问。v总行由各个分

行组成。v分行保管账户。v总行拥有中央计算机。v系统维护事务日志。v系统提供必要的安全性。v储户拥有现金兑换卡。v现金兑换卡访问账户。v分行雇用柜员。候选关联4)三元关联:三个或三个以上对象之间的关联,大多可以分解为二元关联或用词组描述成限定的关联。在ATM系统的例子中,“柜员输入针

对账户的事务”可以分解成“柜员输入事务”和“事务修改账户”这样两个二元关联。而“分行计算机处理针对账户的事务”也可以做类似的分解。“ATM与中央计算机交换关于事务的信息”这个关联隐含了“ATM与中央计算机通信”和“在ATM上输入事务”这

两个二元关联。v总行拥有多台ATM。v分行提供分行计算机和柜员终端。v储户拥有账户。v分行计算机处理针对账户的事务。v分行计算机维护账户。v柜员终端与分行计算机通信。v柜员输入针对账户的事务。vATM与中央计算机交换关于事务的信息。v中央计算机确定事务与分行的对应关系。v总

行由各个分行组成。v分行保管账户。v总行拥有中央计算机。v储户拥有现金兑换卡。v现金兑换卡访问账户。v分行雇用柜员。候选关联柜员输入事务事务修改账户分行计算机处理事务ATM与中央计算机通信在ATM上输入事务5)派生关联:应该去掉那些可以用其他关联定义或派生的冗

余关联。在ATM系统的例子中,“总行拥有多台ATM”实质上是“总行拥有中央计算机”和“ATM与中央计算机通信”这两个关联组合的结果。而“分行计算机维护账户”的实际含义是“分行保管账户”和“事务修改账户”。v总

行拥有多台ATM。v分行提供分行计算机和柜员终端。v储户拥有账户。v分行计算机维护账户。v柜员终端与分行计算机通信。v中央计算机确定事务与分行的对应关系。v总行由各个分行组成。v分行保管账户。v总行拥有中央计算机。v储户拥有现金

兑换卡。v现金兑换卡访问账户。v分行雇用柜员。v柜员输入事务v事务修改账户v分行计算机处理事务vATM与中央计算机通信v在ATM上输入事务去掉派生的关联3.进一步完善进一步完善经筛选后余下的关联,通常从下述几个方面进行改进:1)正名:应该仔细选择含义更明确的名字作为关

联名。例如,“分行提供分行计算机和柜员终端”不如改为“分行拥有分行计算机”和“分行拥有柜员终端”。2)分解:必要时分解以前确定的类与对象,以适用于不同的关联。在ATM系统中,应该把“事务”分解成“远程事务”和“柜员事务”。3)补充:发现了

遗漏的关联就应该及时补上。在ATM系统中,把“事务”分解成上述两类之后,需要补充“柜员输入柜员事务”、“柜员事务输进柜员终端”、“在ATM上输入远程事务”和“远程事务由现金兑换卡授权”等关联。4)标明重数:根据关联类型,初步确定关联重数。重数是指类产生的对象之间

的数量关系,例如,v分行提供分行计算机和柜员终端。v储户拥有账户。v柜员终端与分行计算机通信。v中央计算机确定事务与分行的对应关系。v总行由各个分行组成。v分行保管账户。v总行拥有中央计算机。v储户拥有现金兑换卡。v现金兑换卡访问账户。v分行雇用柜员。v柜员

输入事务v事务修改账户v分行计算机处理事务vATM与中央计算机通信v在ATM上输入事务进一步完善分行拥有分行计算机分行拥有柜员终端柜员输入柜员事务柜员事务输进柜员终端在ATM上输入远程事务远程事务由现金兑换卡授权柜员事务修改账户中央计算机与分行计算

机通信图10.3ATM系统原始的类图经上述分析过程之后得出的ATM系统原始的类图主题是帮助或指导理解整个模型的一种机制。在开发大型复杂系统的过程中,为了降低复杂程度,人们习惯于把系统包含的内容再进一步划分成几个不同的组成范围或范畴,即主题。以

ATM系统为例,可以把它划分成总行(包含总行和中央计算机这两个类)、分行(包含分行、分行计算机、柜员终端、柜员事务、柜员和账户等类)和ATM(包含ATM、远程事务、现金兑换卡和储户等类)等3个主题。4.4面向对象的系统分析活动4.4.3确定主题图10.3ATM系统原始的类图经上述分析

过程之后得出的ATM系统原始的类图总行分行ATM对象的属性是描述对象静态特征的,确定对象属性时要从问题域和目标系统两方面进行。一般说来,确定属性的过程包括分析和选择两个步骤。1.分析在需求陈述分析中,常用名词词组或形容词限定的名词表

示属性,例如,汽车的颜色,光标的位置,…,体重,身高,存款余额,等等。除需求陈述外,还须借助领域知识和常识获得属性。4.4面向对象的系统分析活动4.4.4确定属性2.选择通常筛选下几种属性:1)误把对象当作属性:拥有属性的实体应作为一个

对象而不是属性。2)误把关联类的属性当作一般对象的属性:属性随着关联存在并描述关联。3)把限定误当成属性:如,“分行代码”、“账号”、“雇员号”、“站号”等都是限定词。4)误把内部状态当成了属性:如ATM就绪、故障等。5)过于细化:忽略那

些对大多数操作都没有影响的属性。6)存在不一致的属性:类中含有一些看起来与其他属性毫不相关的属性,则应该考虑把该类分解成两个不同的类。ATM系统对象模型中的属性经过筛选之后,得到ATM系统中各个类的属性•方法,也称服务、

操作或行为等,用来描述对象的动态特征。有的面向对象的程序设计语言中,又将方法称之为类的成员函数或简称函数。•一般从以下三个方面发现和定义对象方法:系统责任问题域对象状态•在确定类中应有的服务时,既要考虑该类实体的常规行为,又要考虑在系统中特殊需要的服务。4.4面向对象的

系统分析活动4.4.5确定方法1.常规行为在分析阶段可以认为,类中定义的每个属性都是可以访问的,即假设在每个类中都定义了读、写该类每个属性的操作。但是,通常无需在类图中显式表示这些常规操作。2.从事件导出的操作状

态图中对象接收的事件,也就是该对象接收到的消息,该对象必须有由消息选择符指定的操作,这个操作修改对象状态(即属性值)并启动相应的服务。“分行”类的状态图例如:在ATM系统中,分行接收的事件“请分行验卡”启动该对象的服务“验证卡号”;“

处理分行事务”事件启动分行服务“更新账户”等3.与数据流图中处理框对应的操作数据流图中的每个处理框都与一个对象或多个对象上的操作相对应。应对照状态图和数据流图,以便更正确地确定对象应该提供的服务。例如,在ATM系统中,从状态图上看出分行对象应该提供“验证卡号”

服务,而在数据流图上与之对应的处理框是“验卡”,根据实际应该完成的功能看,该对象提供的这个服务应该是“验卡”。注意:在建立了动态模型和功能模型之后,才能最终确定类中应有的方法。数据流图练习:下面是自动售货机系统的需求陈述,请建立它的对象模型。自动售货机系统是一

种无人售货系统。售货时,顾客把硬币投入机器的投币口中,机器检查硬币的大小、重量、厚度及边缘类型。有效的硬币是一元币、五角币、一角币、五分币、二分币和一分币。其他货币都被认为是假币。机器拒绝接收假币,并将其从退

币孔退出。当机器接收了有效的硬币之后,就把硬币送入硬币储藏器中。顾客支付的货币根据硬币的面值进行累加。自动售货机装有货物分配器。每个货物分配器中包含零个或多个价格相同的货物。顾客通过选择货物分配器来选择货物。如果货物分配器中有货物,而且顾客支付的货

币值不小于该货物的价格,货物将被分配到货物传送孔送给顾客,并将适当的零钱返回到退币孔。如果分配器是空的,则和顾客支付的货币值相等的硬币将被送回到退币孔。如果顾客支付的货币值少于所选择的分配器中货物的价格,机器将

等待顾客投进更多的货币。如果顾客决定不买所选择的货物,他投放进的货币将从退币孔中退出。OOA模型的三个子模型:对象模型动态模型功能模型4.5建立对象模型建立对象模型•面向对象分析首要的工作,是建立问题域的对象模型。这个模型描述了现实世

界中的“类与对象”以及它们之间的关系,表示了目标系统的静态数据结构。•静态数据结构对应用细节依赖较少,比较容易确定。当用户需求变化时,静态数据结构相对来说比较稳定。因此,用面向对象方法开发大多数软件时,都是首先建立对象模型,然后再建立另外两个子模型。•OOA基本模型分为三个层次:

对象层——给出系统中所有反映问题域和系统责任的对象。特征层——给出类(对象)的内部特征,即类的属性和操作。关系层——给出各类(对象)之间的关系,即类之间的四种关系。4.5建立对象模型建立对象模型•对象模型的作用是描述系统的静态结

构,静态模型包括类图、对象图、包图、部署图和组件图。–对象图是类图的实例,跟类图非常相似,可以认为对象图是类图在程序执行过程中某一瞬间的快照;–包图由包和类组成,它表示包和包之间的关系,包图可以用于描述系统的分层结构;

–组件图和部署图设计程序的物理实现。4.5建立对象模型建立对象模型•类图•类图描述系统中类的静态结构,–定义系统中的类–表示类之间的关系(如关联、依赖、聚集等)–表达类的内部结构(即类的属性和操作)。•类图描述的这种静态关系涉及软件系统开发的整个生命周期。它不显示暂时性的信

息。4.5建立对象模型建立对象模型+起草文件()+修改文件()院办/总师办工作人员+拟订文件通知()+指示修改文件()+提交文件()+生成正式文件()院办主任/总师+注册()+修改密码()+登陆()+注销()+发送()+保存()+删除()+阅读()+编辑()-用户身份-密码-姓名-文件夹标识设

计院员工+审批()院长+签收文件()室/所负责人+提交()+回复()+修改()+拟稿()+删除()+纪录文件状态()-文件夹标识-文件标识-文件拟稿标识-文件修改标识-校对文件标识-审批文件标识-文件签收单标识-保密级

别公文文件夹-校对编号-文件编号-校对人-日期-校对状态-校对内容-校对说明校对文件1..*1-部门-签收人-日期文件签收单-文件编号-文件名称-文件内容-日期-校对状态-审批状态-文件状态-拟稿人文件-审批编号-文件编号-审批人-日期-审批状态-审批说明

-保密级别-接受部门审批文件1..*11111..*11..*..*11..*1..*1..*建筑设计院公文审批类图类图作用对系统的静态对象建模。如图书借阅系统的Book类、reader类,学生管理系统的Stude

nt类等。对简单的协作建模。协作是一些共同行为的类、接口和其他元素的群体。协作是指一些类、接口和其他的元素一起工作提供一些合作的行为,这些行为不是简单地将元素加能得到的。对逻辑数据库模式建模。在很多领域中,都需要在关系数

据库或面向对象数据库中存储永久信息,系统分析者可以用类图对这些需要永久化的实体建模。4.5建立对象模型建立对象模型类一般包括三个组成部分:4.5建立对象模型建立对象模型类名属性操作名称表现类的特征,可用于描述类的状态

。“+”表示公有数据类型“-”表示私有数据类型“#”表示受保护类型操纵属性或执行其它动作给类命名时应该遵守以下准则:使用标准术语;使用具有确切含义的名词;必要时使用名词短语;类名、属性、操作也有一定的书写规范,具体如下。类名:正体字代表可被实例化的类,斜体字代表抽象类;

属性:“可见性属性名[:类型][=初始值]”;操作:“可见性方法名称([参数列表])[:返回类型]”;可见性:+表示public,-表示private,#表示protected,省略修饰词具有package级别的可见性。如果属性或方法具有下划线,则说明它是静态的。4.

5建立对象模型建立对象模型类的表示方法有两种:全部显示类的属性和操作;隐藏属性部分或操作部分,或者两者都隐藏;4.5建立对象模型建立对象模型User-username:string-password:string-login():boolUser-

username:string-password:stringUser-login():boolUser隐藏操作隐藏属性只显示类名·对象图对象图表示在某一时刻系统对象的状态、对象之间的联系的状态以及对象行为的静态方面的状态。对象图和类图一样反映系统的静态过程,但它是从实际的或原型化

的情景来表达的。对象图是类图的实例,几乎使用与类图完全相同的标识。它们的不同点在于对象图显示类的多个对象实例,而不是实际的类。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。

4.5建立对象模型建立对象模型对象图的用途:捕获实例和连接在分析和设计阶段创建捕获交互的静态部分举例说明数据/对象结构详细描述瞬态图由分析人员、设计人员和代码实现人员开发4.5建立对象模型建立对象模型类图:有三个分栏(类名,属性,操作);类名分栏中只有类名属性分栏定义所有属

性的特征;操作分栏列出了操作类之间使用关联连接,标上重数4.5建立对象模型对象图:办公室工作人员:办公室主任对象图:只有两个分栏(名称,属性);名称形式为“对象名:类名”;匿名对象的名称形式为“:类名”;只定义属性的当前值;不包含操作;对象之间使用

链连接,没有重数。•包图包(Package)是一种常规用途的组合机制。UML中的一个包直接对应于Java中的一个包。在Java中,一个包可能含有其他包、类或者同时含有这两者。进行建模时,通常使用逻辑性的包,用于对模型进行组织;使用

物理性的包,用于转换成系统中的Java包。每个包的名称对这个包进行了唯一性的标识。4.5建立对象模型建立对象模型AB包图建模:将关系相近的类放到相同的包中。将一个框架的所有类放置在相同的包中;将相同

继承层次的类放在相同的包中;彼此间有聚集或组成关系的类通常放在相同的包中;彼此合作频繁的类、信息能够通过顺序图和合作图反映出来的类,通常放在相同的包中;确定包与包之间的依赖关系或泛化关系。4.5建立对象模型建立对象模型·确定系统的动态模

型动态模型的作用:描述系统中各个对象在外部事件的触发下,按照一定的控制逻辑和运行规则,使其状态发生变化的行为过程。例如:储户与ATM系统的交互的存款或取款过程。•动态模型是与时间和变化有关的系统性质。该模型描述了系统的控制结构,它表示了瞬间的、行为化的系统控制性质,它关

心的是系统的控制,操作的执行顺序,它从对象的事件和状态的角度出发,表现了对象的相互行为。•该模型使用状态图作为描述工具。它涉及到事件、状态、操作等重要概念。4.6建立动态模型•事件事件是指定时刻发生的某件事。引起对象状态发生变化的行为或动作或事情统称为事件。•状

态•状态是对象属性值在对象的运行过程中所呈现的各种变化序列。状态指明了对象对输入事件的响应。•状态图•状态图一个标准的计算机概念,是用有限自动机的图形表示的。•状态图反映了状态与事件的关系。用来描绘对象的状态在外部事件的触发下所发生的变换过程和规律。当接收一事

件时,下一状态就取决于当前状态和所接收的该事件,由该事件引起的状态变化称为转换。4.6建立动态模型•状态图状态图的描绘与结构化方法状态图相同。在状态图中,用结点表示状态,结点用圆圈表示;圆圈内有状态名,用箭头连线表示状态的转换,上面标记事件名,箭头方向表示转换的方向。4.6建立

动态模型状态1Do:活动1状态2……初始事件事件1[条件1]动作1结束事件4.6建立动态模型消息已记录在案提机空闲挂机拨号音正在拨号数字(n)超时超时挂机非法电话号码记录异常连接合法电话号码数字(n)受话话机忙忙音短促忙音线路忙响铃路由连通受话话机回应断开受话话机挂起超时电话系统的状态图动

态模型的构成:把每个类的状态图用共享事件连接起来,则构成系统的动态模型。即动态模型是基于事件共享而互相关联的一组对象状态图的集合。建立动态模型的步骤:1)编写脚本:一个脚本是系统完成某项工作的一次具体交互执行过程

的说明和描述。脚本包括正常交互行为和异常事件引发的交互行为。2)绘制系统事件跟踪图:从脚本中抽取事件,并确定引发每个事件的动作对象和接受该事件的目标对象,然后绘制系统事件跟踪图。3)绘制对象状态图:排列每个对象有关的事件发

生次序,描绘每个对象状态图。4)建立动态模型:借助共享事件把各个对象的状态图集合在一起,构成系统的动态模型。5)审查动态模型:比较各个对象的状态图,检查它们之间的一致性,确保事件之间的匹配。4.6建立动态模

型编写脚本脚本:系统在某一执行期间出现的一系列事件。脚本功能:描述用户与目标系统之间的一个或多个典型的交互行为。编写脚本的目的:保证不遗漏重要的交互步骤,有助于确保整个交互过程的正确性和清晰性。脚本的内容:既可以包括系统中发生的全部事件,也可以只包括由特定

对象触发的事件。对于某个事件,必须指明触发(产生)事件的动作对象(如系统、用户),接受事件的目标对象以及该事件的参数(交互信息)。编写步骤:编写正常情况的脚本。考虑特殊情况,例如输入和输出为最大值。考虑出错情况,例如输入值非法或响应失败。4.6建立动态模型ATM系统正常

取款脚本ATM请求储户插卡;储户插入一张现金兑换卡。ATM接受该卡,并读卡中的分行代码和卡号。ATM要求储户输入密码;储户输入自己的密码“0001”等数字。ATM请求总行验证卡号和密码;总行要求相应分行核对储户密码,然后通知ATM本卡有效。ATM要求储户选择事务类型(存款、取款等

);储户选择“取款”。ATM要求储户输入取款额;储户输入“880”。ATM确认取款额在预先规定的限额内,然后要求总行处理这个事务;总行把请求转给相应分行,该分行成功处理完本项事务并返回帐户新余额。ATM吐出现金并请求储户拿走这些现金;储户拿走现金。A

TM询问储户是否继续这项事务;储户回答“不”。ATM打印帐单,退出现金兑换卡,请储户拿走它们;储户取走帐单和卡。ATM请求储户插卡。ATM系统异常情况脚本画事件跟踪图事件跟踪图是以图形的方式描述事

件及事件与对象的关系,即表达脚本含义的模型。事件跟踪图实质上是扩充的脚本,是简化的UML顺序图。1.确定事件分析每个脚本,从中提取出所有外部事件以及事件的发送和接收对象。除从脚本中要找出正常事件、还要找出异常事件和出错条件。2.画出事件跟踪图事件跟踪图把事件序列以及事件与

对象的关系直观清晰地表示出来。4.6建立动态模型事件跟踪图画法:在事件跟踪图中,一条竖线代表一个对象,每个事件用一条水平的箭头线表示,箭头方向从事件的引发对象指向接受对象。事件发生的前后顺序由水平箭头的上下次序确定,上面先发生,下面后发生。箭头线之

间的间距不代表时间长短,仅代表事件发生的先后。4.6建立动态模型ATM正常事件跟踪图顺序图:按顺序显示对象之间的交互。•一张状态图描述某一类对象的行为,它确定了由时间序列引起的状态序列。•一般步骤:•1)先以某一事件跟

踪图(先正常后异常)为起点画出各个对象状态图。•画法:分别集中考虑某一个对象,从事件跟踪图中获取指向该对象竖线的那些箭头线(接收事件),并把这些事件作为状态图中的状态转换箭头线,其上标以事件名,两个事件之间的间隔就是

一个状态;再从事件跟踪图获取当前考虑的对象竖线射出的箭头线,通常代表该对象达到某个状态时所做的行为。画状态图4.6建立动态模型2)根据一张事件跟踪图画出某个类的状态图之后,再把其他脚本的事件跟踪图中的事件合并到已画出的状态图中。并入方法是:在未

考虑的事件跟踪图中找出相应对象的所有事件,并在对象的现有状态图中找出产生这些事件的状态,然后把其事件序列并入已有的状态图中,作为一条可选的路径画出相关状态。例如:“验证账户”一个状态可以发出“账户有效”、“无效账户”、

“密码错”三个事件。3)考虑完正常事件后,再考虑边界情况和特殊情况。如“用户取消该事务”、“超时”、“停电”,不能省略对用户出错情况的处理。4.6建立动态模型ATM正常事件跟踪图ATM状态图图10.10总行类的状态图总行类的状

态图图10.11分行类的状态图分行类的状态图ATM系统对象状态图:–“ATM”、“柜员终端”、“总行”和“分行”都是主动对象,它们相互发送事件;–“现金兑换卡”、“事务”和“账户”是被动对象,并不发送事件。–“储户”和“柜员”虽然也是动作对象,但

是,它们都是系统外部的因素,无须在系统内实现它们。–因此,只需要考虑“ATM”、“总行”、“柜员终端”和“分行”的状态图。柜员终端与ATM类似,省略。4.6建立动态模型审查动态模型各个类的状态图通过共享事件合并起来,构成了系统的动态模型。审查要点:1)每个事件都应该既有发送对象又有

接受对象;2)对于没有前驱或没有后继的状态应该着重审查,如果这个状态既不是交互序列的起点也不是终点,则发现了一个错误;3)审查每个事件,跟踪它对系统中各个对象所产生的效果,以保证它们与每个脚本都匹配。4.6

建立动态模型ATM系统对象状态图审查:在总行类的状态图中,事件“分行代码错”是由总行发出的,但是在ATM类的状态图中并没有一个状态接受这个事件。因此,在ATM类的状态图中应该再补充一个状态“do/显示分行代码错信息”,它接受由前驱状态“do/验证账户”发出的事件

“分行代码错”,它的后续状态是“退卡”。修改的ATM状态图如下图所示。Do/显示分行代码错信息•功能模型描述了系统内数据的传送和处理,它表明一个计算如何从一个输入值得到输出值。•对象模型定义“对谁做”,动态模型定义“何时做”,功能模型定义“做什么”。•功能模型的内容–确

定输入值和输出值–画出数据流图确定功能之间的依赖关系–描述各功能–确定约束•功能模型由多个数据流图组成。4.7建立功能模型v数据流图用来说明数据流是如何从外部输入、经过操作和内部存储输出到外部的。v外部实体:系统之外的数据源或目的。v处理框:完成输入到输出的转换。v数据流:从一处到另一处的数

据流向。v数据存储对象:用来存储数据的地方。一般是文件、数据库等形式。外部实体数据流数据存储处理4.7建立功能模型数据流图数据流程图中常使用的符号相关人员P3.2.1.1拟稿发文信息表P3.2.1.2校对P3.2.1.3签发校对人签发人P3.2.

1.4分发、登记F3.2.1.2-01发文登记表公文P3.2.1.5签收发文部门F3.2.1.1-01签收人F3.2.1.1-01发文信息表F3.2.1.1-01发文信息表公文发文数据流图4.7建立功能模型顶层数据流程图顶

层数据流程图只有一张,它反映了系统的总的处理功能、输入和输出。顶层数据流图中只有一个处理框,代表了系统加工、变换数据的整体功能。0图书借阅管理系统读者管理人员图书信息查询借阅管理查询、统计分析顶层流程图4.7建立功能模型第二层数据流程图第二层层数据流程图是对顶层数据流程

图的分解图书信息读者2查询统计统计分析1借还处理管理人员借阅信息罚借还书要求查询第二层流程图4.7建立功能模型ATM系统的顶层数据流图:描述处理框功能把数据流图分解细化到一定程度之后,就应该描述图中各个处理框的功能。要着重描述每个处理框的功能,而不是实现功能的具体算法。更

新帐户功能描述更新帐户(帐号,事务类型,金额)→现金额,帐单,信息如果取款额超过帐户当前余额,拒绝该事务且不付出现金。如果取款额不超过帐户当前余额,从余额中减去取款额后作为新余额,付出用户要取的现金。如果事务是存款,

把存款额加到余额中得到新余额,不付出现金。如果事务是查询,不付出现金。在上述任何一种情况下,帐单内容都是:ATM号、日期、时间、帐号、事务类型、金额(如果发生的话)、新余额。三种模型之间的关系:就功能模

型而言对象模型表示了功能模型中的外部实体和数据存储的结构;动态模型则表示了功能模型中处理框的执行次序。就对象模型而言动态模型则表示了每个对象的状态和对象接收事件时所执行的操作;功能模型表示了类上的操作和每个操作的变量。就动态模型而言对象模型表

示了是什么改变了状态、是什么接受了操作;功能模型表示了动态模型中未定义的动作和活动。4.7建立功能模型面向对象分析(OOA)就是提取系统需求并建立精确模型的过程。分析的目标是全面深入地理解问题域,其中不应

该涉及到具体实现。分析的目的是用分析模型取代需求陈述,作为设计的基础。面向对象分析的关键工作,是分析、确定问题域中的对象及对象间的关系,并建立起问题域的对象模型。大型、复杂系统的对象模型通常由5个层次构成:主题层、类

和对象层、结构层、属性层和服务层。它们对应着建立对象模型过程中的五项活动。小结大多数分析模型都不是一次完成的,分析工作不能严格的按照预订顺序进行。分析员必须与用户及领域专家反复交流,及时纠正错误认识并补充缺少的信息。最终的模型必须得

到用户和领域专家的确认。在交流和确认的过程中,原型往往会起到很大的促进作用。在分析和设计之间不存在明确的界限。小结•主要内容:问题域与系统责任,OOA的主要原则,基于用例的需求分析,用例图和用例事件流描述,问题域对象的识别,类层次确定,对象间实例连接和消息连接,静态模式,动态模式。•重点:问

题域,系统责任,OOA过程模型,一般与特殊,整体和部分,静态模型,动态模型。•难点:如何获取问题域对象,类的层次划分,对象关联的确定,定义服务。本章小结

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?