面向对象分析优秀PPT.ppt
《面向对象分析优秀PPT.ppt》由会员分享,可在线阅读,更多相关《面向对象分析优秀PPT.ppt(96页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、面向对象分析第一页,本课件共有96页面向对象分析(OOA)的关键是识别出问题域内的类与对象,并分析它们相互间的关系,最终建立起问题域的简洁、精确、可理解的正确模型。在用面向对象观点建立起的3种模型中,对对象象模型模型是最基本、最重要、最核心的。第二页,本课件共有96页10.1 面向对象分析的基本过程 10.1.1 概述面向对象分析:抽取和整理用户需求并建立问题域精确模型的过程。面向对象分析过程从分析陈述用户需求的文件开始。可能由用户单方面写出需求陈述,也可能由系统分析员配合用户,共同写出需求陈述。需求陈述通常是不完整、不准确的,而且往往是非正式的。很难准确很难准确描述描述第三页,本课件共有96
2、页10.1.1 概述通过分析,可以发现和改正原始陈述中的二义性和不一致性,补充遗漏的内容,从而使需求陈述更更完整、更准确完整、更准确。因此,需求陈述不是一成不变的,它是细化和完善实际需求的基础。快速建立的原型系统,有助于分析员和用户之间的交流和理解,从而能更正确地提炼出用户的需求。接着,系统分析员深入理解用户需求,抽象出目标系统的本质属性,并用模型模型准确地表示出来。迭代迭代分析模型分析模型第四页,本课件共有96页10.1.1 概述建模过程中分类分类工作往往有很大难度。它必须反映出一定深度的领领域域知知识识,必须有领域专家的密切配合才能完成。重用技术重用技术是经常使用的。面向对象建模得到的模型
3、即静静态态结结构构(对象模型)、交交互互次次序序(动态模型)和数数据据变变换换(功能模型)。第五页,本课件共有96页10.1.2 3个子模型与5个层次不同问题中这3个子模型的重要程度也不同。解决任何一个问题,都需要从客观世界实体及实体间相互关系抽象出极有价值的对象模型;当问题涉及交互作用和时序时,动态模型是重要的;解决运算量很大的问题,则涉及重要的功能模型。动态模型和功能模型中都包含了对象模型中的操作(即服务或方法)。第六页,本课件共有96页10.1.2 3个子模型与5个层次复杂问题的对象模型通常由5个层次组成:主主题层、类与对象层、结构层、属性层和服务层。题层、类与对象层、结构层、属性层和服
4、务层。第七页,本课件共有96页10.1.2 3个子模型与5个层次主题是指导读者(包括系统分析员、软件设计人员、领域专家、管理人员、用户等,泛指所有需要读懂系统模型的人)理解大型、复杂模型的一种机制。通过划分主题把一个大型、复杂的对象模型分解成几个不同的概念范畴。第八页,本课件共有96页10.1.2 3个子模型与5个层次5个层次对应着在面向对象分析过程中建立对象模型的5项主要活动:找出类与对象;识别结构;识别主题;定义属性;定义服务。在进行面向对象分析时并不需要严格遵守自顶向下的原则。第九页,本课件共有96页10.1.2 3个子模型与5个层次在完整地定定义义每每个个类类中中的的服服务务之之前前,
5、需要先先建建立立起起动动态态模模型型和和功功能能模模型型,通过对这两种模型的研究,能够更正确更合理地确定每个类应该提供哪些服务。第十页,本课件共有96页10.1.2 3个子模型与5个层次在概念上可以认为,面向对象分析大体上按照下列顺序进行:Step1:Step1:寻找类与对象寻找类与对象Step2:Step2:识别结构识别结构Step3:Step3:识别主题识别主题Step4:Step4:定义属性定义属性Step5:Step5:建立动态模型建立动态模型Step6:Step6:建立功能模型建立功能模型Step7:Step7:定义服务。定义服务。当然,上述过程要当然,上述过程要多次迭代多次迭代得以
6、实现。得以实现。第十一页,本课件共有96页10.2 需求陈述 10.2.1 书写要点需求陈述的内容包括:问题范围,功能需求,性能需求,应用环境及假设条件等。它描述用户的需求而不是提出解决问题的方法。应该指出哪些是系统必要的必要的,哪些是任选的任选的。应该避免对设计策略施加约束,也不要描述系统的内部结构。对系统性能及系统与外界环境交互协议的描述,是合适的需求。从实际出发,迭代完成。第十二页,本课件共有96页10.2.2 例子某银行拟开发一个自动取款机系统,它是一个由自动取款机、中央计算机、分行计算机及柜员终端组成的网络系统。ATM和中央计算机由总行投资购买。总行拥有多台ATM,分别设在全市各主要
7、街道上。分行负责提供分行计算机和柜员终端。柜员终端设在分行营业厅及分行下属的各个储蓄所内。该系统的软件开发成本由各个分行分摊。第十三页,本课件共有96页10.2.2 例子第十四页,本课件共有96页10.2.2 例子银行柜员使用柜员终端处理储户提交的储蓄事务。储户可以用现金或支票向自己拥有的某个账户内存款或开新账户。储户也可以从自己的账户中取款。通常,一个储户可能拥有多个账户。柜员负责把储户提交的存款或取款事务输进柜员终端,接收储户交来的现金或支票,或付给储户现金。柜员终端与相应的分行计算机通信,分行计算机具体处理针对某个账户的事务并且维护账户。第十五页,本课件共有96页10.2.2 例子拥有银
8、行账户的储户有权申请领取现金兑换卡。使用现金兑换卡可以通过ATM访问自己的账户。目前仅限于用现金兑换卡在ATM上提取现金(即取款),或查询有关自己账户的信息(例如,某个指定账户上的余额)。将来可能还要求使用ATM办理转账、存款等事务。第十六页,本课件共有96页10.2.2 例子所谓现金兑换卡就是一张特制的磁卡,上面有分行代码和卡号。分行代码惟一标识总行下属的一个分行,卡号确定了这张卡可以访问哪些账户。通常,一张卡可以访问储户的若干个账户,但是不一定能访问这个储户的全部账户。每张现金兑换卡仅属于一个储户所有,但是,同一张卡可能有多个副本,因此,必须考虑同时在若干台ATM上使用同样的现金兑换卡的可
9、能性。也就是说,系统应该能够处理并发的访问。第十七页,本课件共有96页10.2.2 例子当用户把现金兑换卡插入ATM之后,ATM就与用户交互,以获取有关这次事务的信息,并与中央计算机交换关于事务的信息。首先,ATM要求用户输入密码,接下来ATM把从这张卡上读到的信息以及用户输入的密码传给中央计算机,请求中央计算机核对这些信息并处理这次事务。中央计算机根据卡上的分行代码确定这次事务与分行的对应关系,并且委托相应的分行计算机验证用户密码。如果用户输入的密码是正确的,ATM就要求用户选择事务类型(取款、查询等)。当用户选择取款时,ATM请求用户输入取款额。最后,ATM从现金出口吐出现金,并且打印出账
10、单交给用户。第十八页,本课件共有96页10.3 建立对象模型面向对象分析首首先先建立问题域的对对象象模模型型。它表示了目标系统的静态数据结构。需求陈述、应用领域的专业知识以及关于客观世界的常识,是建立对象模型时的主要信息来源。第十九页,本课件共有96页10.3 建立对象模型对象模型通常有5个层次。典型的工作步骤是:Step1:确定对象类和关联。对于大型复杂问题还要进一步划分出若干个主题;Step2:给类和关联增添属性。以进一步描述它们;Step3:设计继承关系。利用适当的继承关系进一步合并和组织类。Step4:设计类中的操作。对类中操作的最后确定。第二十页,本课件共有96页10.3.1 确定类
11、与对象类与对象是客观存在的。系统分析员的首要任务就是所有候候选选的的类类与与对对象象,然后从中筛选掉不正确的或不必要的。1.1.找出候选的类与对象找出候选的类与对象对象是问题域中有意义的事物的抽象,它们既可能是物理实体,也可能是抽象概念。具体地说,大多数客观事物可分为下述5类:第二十一页,本课件共有96页10.3.1 确定类与对象(1)可感知的物理实体,例如,飞机、汽车、书、房屋等。(2)人或组织的角色,例如,医生、教师、雇主、雇员、计算机系、财务处等。(3)应该记忆的事件,例如,飞行、演出、访问、交通事故等。(4)两个或多个对象的相互作用,通常具有交易或接触的性质,例如,购买、纳税、结婚等。
12、(5)需要说明的概念,例如,政策、保险政策、版权法等。第二十二页,本课件共有96页10.3.1 确定类与对象另一种非正式分析方法以用自然语言书写的需求陈述为依据。把陈述中的名词名词作为类与对象的候选者候选者 把形容词形容词作为确定属性属性的线索 把动词动词作为服务服务的候选者。第二十三页,本课件共有96页10.3.1 确定类与对象银行,自动取款机(ATM),系统,中央计算机,分行计算机,柜员终端,网络,总行,分行,软件,成本,市,街道,营业厅,储蓄所,柜员,储户,现金,支票,账户,事务,现金兑换卡,余额,磁卡,分行代码,卡号,用户,副本,信息,密码,类型,取款额,账单,访问。分析员还应该根据领
13、域知识或常识进一步把隐含的类与对象提取出来。例如,在ATM系统的需求陈述中提取“通信链路”和“事务日志”。第二十四页,本课件共有96页10.3.1 确定类与对象2.2.筛选出正确的类与对象筛选出正确的类与对象非正式分析仅仅找到一些候选的类与对象,下面应该严格考察每个候选对象,从中去掉不正确的或不必要的,仅保留确实应该记录其信息或需要其提供服务的那些对象。筛选时主要依据下列标准,删除不正确或不必要的类与对象:第二十五页,本课件共有96页10.3.1 确定类与对象(1)(1)冗余冗余如果两个类表达了同样的信息,则应该保保留留在在此此问问题题域中最富于描述力的名称域中最富于描述力的名称。以ATM系统
14、为例,上面用非正式分析法得出了34个候选的类,其中储户与用户,现金兑换卡与磁卡及副本分别描述了相同的两类信息,因此,应该去掉“用户”、“磁卡”、“副本”等冗余的类,仅保留“储户”和“现金兑换卡”这两个类。第二十六页,本课件共有96页10.3.1 确定类与对象(2)(2)无关无关现实世界中存在许多对象,不能把它们都纳入到系统中去,仅需要把与本本问问题题密密切切相相关关的类与对象放进目标系统中。以ATM系统为例,这个系统并不处理分摊软件开发成本的问题,而且ATM和柜员终端放置的地点与本软件的关系也不大。因此,应该去掉候选类“成本”、“市”、“街道”、“营业厅”和“储蓄所”。第二十七页,本课件共有9
15、6页10.3.1 确定类与对象(3)(3)笼统笼统在需求陈述中常常使用一些笼笼统统的的、泛泛指指的的名名词词,要么系统无须记忆有关它们的信息,要么在需求陈述中有更明确更具体的名词对应它们所暗示的事务。以ATM系统为例,“银行”实际指总行或分行,“访问”在这里实际指事务,“信息”的具体内容在需求陈述中随后就指明了。此外还有一些笼统含糊的名词。总之,在本例中应该去掉“银行”、“网络”、“系统”、“软件”、“信息”、“访问”等候选类。第二十八页,本课件共有96页10.3.1 确定类与对象(4)(4)属性属性在需求陈述中有有些些名名词词实实际际上上描描述述的的是是其其他他对对象的属性象的属性。在ATM
16、系统的例子中,“现金”、“支票”、“取款额”、“账单”、“余额”、“分行代码”、“卡号”、“密码”、“类型”等,实际上都应该作为属性对待。第二十九页,本课件共有96页10.3.1 确定类与对象(5)(5)操作操作在需求陈述中有时可能使用一些既既可可作作为为名名词词,又又可作为动词的词可作为动词的词。例如,谈到电话时通常把“拨号”当作动词,当构造电话模型时确实应该把它作为一个操作,而不是一个类。但是,在开发电话的自动记账系统时,“拨号”需要有自己的属性(例如日期、时间、受话地点等),因此应该把它作为一个类。第三十页,本课件共有96页10.3.1 确定类与对象(6)(6)实现实现在分析阶段不应该过
17、早地考虑怎样实现目标系统。因此,应该去掉和实现有关的候选的类与对象。去掉和实现有关的候选的类与对象。在ATM系统的例子中,“事务日志”无非是对一系列事务的记录,它的确切表示方式是面向对象设计的议题;“通信链路”在逻辑上是一种联系,在系统实现时它是关联类的物理实现。总之,应该暂时去掉“事务日志”和“通信链路”这两个类,在设计或实现时再考虑它们。第三十一页,本课件共有96页10.3.1 确定类与对象综上所述,在ATM系统的例子中,经过初步筛选,剩下下列类与对象:ATM、中央计算机、分行计算机、柜员终端、总行、分行、柜员、储户、账户、事务、现金兑换卡。第三十二页,本课件共有96页10.3.1 确定类
18、与对象两个或多个对象之间的相相互互依依赖赖、相相互互作作用用的的关关系系就是关联。分析确定关联,能促使分析员考虑问题域的边缘情况,有助于发现那些尚未被发现的类与对象。在分析确定关联的过程中,不必花过多的精力去区分关联和聚集。第三十三页,本课件共有96页10.3.1 确定类与对象1.1.初步确定关联初步确定关联需求陈述中的描述性动词或动词词组,通常表示关联。以ATM系统为例,经过分析初步确定出下列关联:第三十四页,本课件共有96页10.3.1 确定类与对象(1)直接提取动词短语动词短语得出的关联ATM、中央计算机、分行计算机及柜员终端组成网络。总行拥有多台ATM。ATM设在主要街道上。分行提供分
19、行计算机和柜员终端。柜员终端设在分行营业厅及储蓄所内。分行分摊软件开发成本。储户拥有账户。分行计算机处理针对账户的事务。分行计算机维护账户。第三十五页,本课件共有96页10.3.1 确定类与对象柜员终端与分行计算机通信。柜员输入针对账户的事务。ATM与中央计算机交换关于事务的信息。中央计算机确定事务与分行的对应关系。ATM读现金兑换卡。ATM与用户交互。ATM吐出现金。ATM打印账单。系统处理并发的访问。第三十六页,本课件共有96页10.3.1 确定类与对象(2)需求陈述中隐含的关联隐含的关联总行由各个分行组成。分行保管账户。总行拥有中央计算机。系统维护事务日志。系统提供必要的安全性。储户拥有
20、现金兑换卡。(3)根据问题域知识问题域知识得出的关联现金兑换卡访问账户。分行雇用柜员。第三十七页,本课件共有96页10.3.1 确定类与对象2.2.筛选筛选经初步分析得出的关联只能作为候选的关联,还需经过进一步筛选,主要依据如下:(1)(1)已删去的类之间的关联已删去的类之间的关联如果已经删掉的候选类,则与这个类有关的关联也应该删去,或用其他类重新表达这个关联。由于已经删去了“系统”、“网络”、“市”、“街道”、“成本”、“软件”、“事务日志”、“现金”、“营业厅”、“储蓄所”、“账单”等候选类,因此,与这些类有关的下列8个关联也应该删去:第三十八页,本课件共有96页10.3.1 确定类与对象
21、 ATM、中央计算机、分行计算机及柜员终端组成网络。ATM设在主要街道上。分行分摊软件开发成本。系统提供必要的安全性。系统维护事务日志。ATM吐出现金。ATM打印账单。柜员终端设在分行营业厅及储蓄所内。第三十九页,本课件共有96页10.3.1 确定类与对象(2)(2)与问题无关的或应在实现阶段考虑的关联与问题无关的或应在实现阶段考虑的关联应该把处在本问题域之外的关联或与实现密切相关的关联删去。例如,在ATM系统的例子中,“系统处理并发的访问”并没有标明对象之间的新关联,它只不过提醒我们在实现阶段需要使用实现并发访问的算法,以处理并发事务。第四十页,本课件共有96页10.3.1 确定类与对象(3
22、)(3)瞬时事件瞬时事件关联应该描述问题域的静态结构,而不应该是一个瞬时事件。以ATM系统为例,“ATM读现金兑换卡”描述了ATM与用户交互周期中的一个动作,它并不是ATM与现金兑换卡之间的固有关系,因此应该删去。类似地,还应该删去“ATM与用户交互”。第四十一页,本课件共有96页10.3.1 确定类与对象如果用动作表述的需求隐含了问题域的某种基本结构,则应该用适当的动词词组重新表示这个关联。例如,在ATM系统的需求陈述中,“中央计算机确定事务与分行的对应关系”隐含了结构上“中央计算机与分行通信”的关系。第四十二页,本课件共有96页10.3.1 确定类与对象(4)(4)三元关联三元关联三个或三
23、个以上对象之间的关联,大多可以分解为二二元关联或用词组描述成限定的关联元关联或用词组描述成限定的关联。“柜员输入针对账户的事务”可以分解成“柜员输入事务”和“事务修改账户”这样两个二元关联。而“分行计算机处理针对账户的事务”也可以做类似的分解。“ATM与中央计算机交换关于事务的信息”这个候选的关联,实际上隐含了“ATM与中央计算机通信”和“在ATM上输入事务”这两个二元关联。第四十三页,本课件共有96页10.3.1 确定类与对象(5)(5)派生关联派生关联应该去掉那些可以用其他关联定义的冗余关联。例如,在ATM系统的例子中,“总行拥有多台ATM”实质上是“总行拥有中央计算机”和“ATM与中央计
24、算机通信”这两个关联组合的结果。而“分行计算机维护账户”的实际含义是“分行保管账户”和“事务修改账户”。3.3.进一步完善进一步完善应该进一步完善经筛选后余下的关联,通常从下述几个方面进行改进:第四十四页,本课件共有96页10.3.1 确定类与对象(1)(1)正名正名好的名字是帮助读者理解的关键因素之一。因此,应该选择含义更明确的名字作为关联名。“分行提供分行计算机和柜员终端”不如改为“分行拥有分行计算机”和“分行拥有柜员终端”。(2)(2)分解分解为了能够适用于不同的关联,必要时应该分解以前确定的类与对象。例如,在ATM系统中,应该把“事务”分解成“远程事务”和“柜员事务”。第四十五页,本课
25、件共有96页10.3.1 确定类与对象(3)(3)补充补充遗漏的关联就应该及时补上。例如,在ATM系统中把“事务”分解成上述两类之后,需要补充“柜员输入柜员事务”、“柜员事务输进柜员终端”、“在ATM上输入远程事务”和“远程事务由现金兑换卡授权”等关联。(4)(4)标明重数标明重数初步判定各个关联的类型,并粗略确定关联的重数。下图是经上述分析过程之后得出的ATM系统原始的类图。第四十六页,本课件共有96页10.3.1 确定类与对象图10.3 ATM系统原始的类图第四十七页,本课件共有96页10.3.3 划分主题应该按照使不同主题内的对象相互间依赖和交互最少的原则来确定主题。以ATM系统为例,可
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 分析 优秀 PPT
限制150内