软件工程-第10章第2节_第1页
软件工程-第10章第2节_第2页
软件工程-第10章第2节_第3页
软件工程-第10章第2节_第4页
软件工程-第10章第2节_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

10.2面向对象的分析

系统分析员面临的最大问题就是对应用领域要有比较深刻的认识,并能够抓住其中的实质问题,这就是“问题空间”的理解问题,而系统的设计和实现则属于“解空间”的问题。10.2.1面向对象分析概述1.分析策略

面向对象分析方法的策略基础是分析系统需求时遇到的变动因素和稳定因素,把这两种因素区分后,比较容易对变动所产生的影响进行鉴别、定界、追踪和估价。10.2.1面向对象分析概述2.思维组织模式系统分析本质上是一种思维过程,就是考虑问题的次序、条理、层次等方面的模式,在传统的分析模式中从问题空间到分析结果的映射是间接的,因为由分析方法所决定的思维模式与人们所采用的思维模式有一定的距离。为了减少这些距离,只好进行转换,以利于分析结果的传递。10.2.1面向对象分析概述

从根本上统一思维模式的办法是在系统开发各个环节中,统一采用人类原有的思维组织模式。人类典型的思维过程是由三部分来进行组织的,即从现实世界中区分出特定的客体及其属性;对客体的整体和组成部分加以区分;对不同种类的客体给出表示,在此基础上加以区分。面向对象的分析方法就建立在这dg个来自人类自己思维组织模式之上,依照客观世界本来的规律来开发应用系统。10.2.1面向对象分析概述

3.分析方法的表示

面向对象的分析由对象、分类、继承性及基于消息的通信构成。其中对象是一组属性和专有服务的封装,它是问题空间中某种事物的一个抽象,同时也带有问题空间中这种事物的若干实例。这些是从信息建模方法中演变而来的,再加上面向对象的封装性、继承性和层次结构,所以面向对象的分析比信息建模方法更完整地实现了从问题空间到系统模型的直接映射。10.2.2对象的认定1.简单的认定方法

该方法由Booch于1983年提出,它是基于词法分析的方法。从目标系统的描述开始,找出其中的名词作为候选的对象。另一方面,找出其中的动词作为候选的方法(即服务),然后产生一个由对象(名词)和方法(动词)构成的表,作为分析的结果。

现以开发字处理系统为例,说明基于词法分析的方法。10.2.2对象的认定问题陈述:字处理系统允许用户产生文档,产生的文档存储在用户目录中,用户可打印和显示文档,修改文档,还可从用户目录中删除文档。找出该问题的名词和动词确认的对象和方法构成的表如下:10.2.2对象的认定2.复杂系统对象的认定在一个复杂系统中,对象的认定面临五个需要回答的问题。1)到什么地方去找候选对象寻找对象的范围如下:(1)问题空间:从用户那里得到某种形式表达的系统需求,了解问题领域的知识背景,向用户索取与系统主题有关的、简要的归纳性材料,与有关人员座谈、听取意见和建议。10.2.2对象的认定4.组织方法在理解客观世界组织与表示需求时,常采用以下三种方法:(1)识别具体对象及其属性。(2)识别整体对象及部分对象。(3)识别不同的对象类。10.2.2对象的认定(2)文本:收集一切能得到的文字材料,重点留意那些专门示例系统主题和值得仔细学习与考虑的部分,并注意出现的名词。(3)图:能收集到的一切图。如块结构图、接口图、系统构件图、高层次的数据流图和控制流图等。根据这些再用图标和连线画出内容丰富的图来,形成问题空间的初始骨架。10.2.2对象的认定2)找什么范围确定之后,可能成为对象的是:(1)结构:这是最有可能被认定为对象的实体,其中分类结构和组装结构又是结构中可能性最大的。(2)其他系统:指要进行交互的外部系统和外界的“终结点”。(3)设备:需要进行交互的设备。(4)事件:由系统及时观察和记录的事件及历史事件。(5)扮演的角色:各种人员在系统中扮演的角色。(6)位置:系统安装和运行的物理位置。(7)组织和单位。系统涉及的人员所属的单位。10.2.2对象的认定3)对候选对象考察什么对于一个候选对象,能否认定它是一个对象,要考察的内容如下:(1)需要记忆,即系统是否有必要记忆对象的某些或全部成分。(2)需要服务,即系统是否有必要对该对象的行为提供服务。(3)多于一个属性。只有一个属性的对象通常应看成其他对象的属性。(4)共有属性即对于一种对象所有实例,能否认定一组为这些实例所共有的属性。(5)共有服务即对于一种对象的所有实例,能否认定一组这些实例都要进行的加工。10.2.2对象的认定4)提出什么质疑对于已初步认定的对象,应从下列几方面提出质疑:(1)记忆和服务的必要性:若系统没有必要始终持有现实世界中某种事物的信息或者提供关于它的服务,那么这种事物就不要认定为对象。(2)单个实例:若某种有属性的对象只有一个实例,要看它是否确实反映了问题空间情况,若已经初步认定的两种或多种对象有相同的属性和服务,而且至少其中的一种只有一个实例,这时应当考虑将它们合并。(3)派生结果:注意那些可以通过计算机得出值的属性。10.2.2对象的认定5)怎样为认定的对象命名认定的对象需要命名,这时应当:(1)用单数名词或形容词加名词来命名对象的名字。(2)命名所使用的词汇应当来自符合系统主题、标准的词汇集。(3)使用可读的名字,要基于内容,基于内在本质,具有确切意义。10.2.3结构的认定

结构指的是多种对象的组织方式,用来反映问题空间中的复杂事物和复杂关系。结构有分类结构和组装结构两种。分类结构针对的是事物的类别之间的组织关系;组装结构对应于事物的整体与部件之间的关系。10.2.3结构的认定1.认定分类结构使用分类结构,可以按照事物的类别对问题空间进行层次结构划分,体现现实世界中事物的一般性与特殊性。认定分类结构的原则是先从一般向特殊考虑,再从特殊向一般考虑。1)从一般到特殊对于一种对象,首先认为它具有最一般的含义。这时看它在问题空间中具有不同特殊性的可能,对该对象每种可能的特殊性考虑以下因素:10.2.3结构的认定(1)是否可用不同的属性和服务来描述?(2)是否反映了现实世界中有意义的特殊性?(3)是否在问题空间之内?按上述原则确认了对象应具有的特殊性后,就可令共有的属性和服务从属于一般含义的对象,而令扩充的特殊属性和服务分属于特殊含义的对象。10.2.3结构的认定2)从特殊到一般对于一种对象,在认定它具有某种特殊含义之后,再从特殊向一般考虑,这时要考察:(1)问题空间中是否有其他与这种对象有一些属性或服务是共有的?(2)若引入某种更一般的对象,是否反映了现实世界中有意义的一般性?(3)若引入某种更一般的对象,那么这种对象是否存在于问题空间之中?10.2.3结构的认定2.认定组装结构认定组装结构的原则是先从整体向部件考虑,再从部件向整体考虑。1)从整体到部件对于一种对象,首先认为它是一个整体。这时看它在问题空间中含有部件的可能性,即要考察:(1)它的组成部分是什么?(2)对于它的一个部件,系统是否有必要记录每个实例或值?(3)对于它的一个部件,每个实例是否都有属性来描述?(4)它的部件是否反映现实世界中存在的部件?(5)它的部件是否限定在目标系统之内?10.2.3结构的认定2)从部件到整体对于一种对象,假定它可能是另一种对象的一个部件,这时应考察:(1)这种对象适合什么样的组装关系?(2)还需要哪些对象与这种对象一起构成另一种对象?(3)对于这样组装而成的对象,系统是否有必要记录它的每一个实例?(4)这样组装而成的对象在现实世界是否有意义?(5)这样组装而成的对象是否限定在目标系统之内?10.2.3结构的认定

采用从部件到整体的方式考虑组装结构,这是把问题空间中出现的某些事物合理地纳入某种含义更广、可作为整体看待的事物之中,以便从聚集的角度来表示客观事物。先整体向部件分析,再由部件向整体综合,这也遵循人类的思维组织模式。10.2.4认定主题

主题是一种关于模型的抽象机制,它是面向对象分析模型的概貌,也是关于某个模型要同时考虑和理解的内容,主题起一种控制作用。

从实际开发经验来看,一个实际的目标系统通过对象和结构的认定,对问题空间中的事物已进行了抽象和概括,所认定的对象和结构的数目有几十到几百种,但人们能同时考虑和理解的问题数目受到其记忆能力和处理能力的制约,为7个左右,因此不经过进一步抽象,会造成对分析结果理解的困难和混乱。10.2.4认定主题直观地来看,主题就是一个名词或名词短语,与对象名类似,但抽象程度不同。认定主题的方法是:(1)为每一个结构追加一个主题。(2)为每一种对象追加一个主题。(3)若当前主题的数目超过7个,就对已有主题进行归并。归并的原则是当两个主题对应的属性和服务有着较密切的联系时,就将它们归并为一个主题。主题是一个单独的层次,在这个层次中,每个主题有一个序号,主题之间的联系是消息关联。10.2.5定义属性1.认定属性认定一个属性有如下三个基本原则:(1)对相应对象或分类结构的每一个实例是否均适用?(2)在现实世界中它与这种事物的关系是否最密切?(3)认定的属性应当是一种相对的原子概念,不依赖于并列的其他属性就可以理解。10.2.5定义属性2.确定属性的位置确定属性与特定对象之间的从属关系主要是针对分类结构中的对象而言的,采用的是继承观点。低层对象的共有属性应在上层对象中定义,而低层对象只定义自己特有的属性。10.2.5定义属性3.认定和定义实例关联实例关联是一个实例集合到另一个实例集合的映射,既可以是两种对象的实例集合,也可以是同一种对象的实例集合的两个子集。实例关联分为1∶1、1∶m、0∶1、0∶m这4种。与ER图中的联系相比有自己的特点。实例关联是可选的。认定和定义实例关联的具体过程类似于ER图中建立的实体联系。10.2.5定义属性4.重新修改认定的对象经过上述的过程,对原来的认定可能会发生一些改变,需修改原来的认定。5.对属性和实例关联进行说明对属性的名字、描述、约束和范畴进行说明,一个属性依其特征有如下情况:(1)描述型:指属性的值由对象实例添加、变动、删除及选择等操作来建立和保持。(2)定义型:用于标识和命名各个实例。(3)派生型:由其他数据计算得到的。(4)参考型:与另一个实例联系的事实。10.2.6定义服务1.认定基础服务基础服务有以下三类:(1)存在服务:指最一般的服务,即创建、变动、删除及选择。(2)计算服务:一个实例需要另一个实例加工的结果时所需的服务。(3)监控服务:模型中某些部件需要快速实时处理时所需的服务。10.2.5定义属性2.认定辅助服务在面向对象分析模型中,对每种对象及分类结构要考虑对象生存史和状态—事件—响应两种辅助服务。1)对象生存史对象生存史定义基础服务的顺序,检查其中每步需要的服务的变种,增加相应的服务变种,以及增加其他的服务。一种对象的基础服务顺序就是它的“存在”服务之间的次序关系,一般都有如图10.12所示的形式。10.2.5定义属性图10.12对象生存史10.2.5定义属性2)状态—事件—响应状态—事件—响应要定义主要的系统状态,列出外部事件及其需要的响应,以及扩充服务和消息关联。3.认定消息关联消息关联是事件-响应和数据流的一种结合,即每条消息关联都表示着一种要发出的消息和收到这条消息后要作出的一个响应。消息关联也是实例关联之间的一种映射关系。10.2.5定义属性

认定消息关联时,首先在已经用实例关联起来的那些实例之间考虑有无消息关联,然后检查那些需要其他实例进行的加工,考虑增加其他必要的消息关联。4.对服务进行说明

对服务进行说明时,主要应对外部可观察到的行为进行说明,目的是强调可测试的部分,作为对系统需求进行验证、对系统实现进行验收的测试的基准。10.2.7对象的规格说明specification 〈对象名〉

描述性属性

〈……〉

定义性属性

〈……〉

派生性属性

〈……〉

外部系统输入

〈……〉

外部系统输出

温馨提示

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

评论

0/150

提交评论