《《软件工程导论》PPT课件-第11章-面向对象的分析.ppt》由会员分享,可在线阅读,更多相关《《软件工程导论》PPT课件-第11章-面向对象的分析.ppt(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件工程导论 第11章 面向对象的分析 11.1 面向对象分析的任务 11.2 静态结构建模 11.3 动态结构建模第11章 面向对象的分析分析的过程都是提取系统需求、开发分析模型提取系统需求、开发分析模型的过程。这个阶段的工作既需要开发技术人员的参与,又需要客户、未来软件的用户代表以及相关领域专家的参与。分析工作主要包括3项内容,这就是理解、表达和验证理解、表达和验证。分析过程得出的最重要的文档资料是软件需求规格说明(在面向对象分析中,主要由对象模型、动态模型由对象模型、动态模型和功能模型组成和功能模型组成)。11.1 面向对象分析的任务面向对象的分析是软件开发的初始阶段,这个阶段的中心任务
2、就是从需求模型中导出分析模型从需求模型中导出分析模型,该模型应该是正确的、完整的、一致的和可行的。在面向对象的分析中,分析模型由3个独立模型构成:通过用例和场景表示系统功能的用例模型用例模型;通过类和对象图表示系统组成的对象模型对象模型;通过协作图和顺序图表示用例实现的动态模型动态模型。在UML中,功能模型使用用例图表示;对象模型使用类对象模型使用类图或对象图表示图或对象图表示;动态模型使用状态图和顺序图表示动态模型使用状态图和顺序图表示。11.1 面向对象分析的任务用例模型用例模型把系统看成一个黑盒子,它用来表示系统能用来表示系统能提供的功能提供的功能。我们通过用例图和场景表示用例模型。用例
3、模型在需求阶段已经产生,在分析阶段进行修改。对象模型是用来描述业务实体组成及其关系的,我们通过类图和对象图表示对象模型通过类图和对象图表示对象模型。对象模型在需求阶段已经产生,在分析阶段进行修改、细化。动态模型就是指能实现某个用例功能的顺序图动态模型就是指能实现某个用例功能的顺序图(或者协作图,或者状态图),建立动态模型的过程就是在对象模型中寻找一些实体对象,在用户界面原型中寻找一些边界对象,通过演示顺序图来寻找控制对象,然后由这些对象相互协作来完成用例的功能。11.1 面向对象分析的任务面向对象分析过程 11.2 静态结构建模面向对象的分析分为静态分析静态分析和动态分析动态分析两种,静态分析
4、是分析静态模型(类图或对象图);动态分析是分析动态模型(顺序图或协作图)静态结构建模静态结构建模确定系统的逻辑或物理部分,以及如何把它们连接在一起,它描述了如何构建和初始化系统。过程:过程:通过分析用例模型和问题域,将要开发的现实世界中的系统通过静态结构模型来表达。静态结构建模的关键关键是识别问题域中的对象类,确定类的属性和操作,并分析确定类相互之间的关系,最终建立问题域的简洁、精确、可理解的静态结构模型。静态结构模型是面向对象系统分析的最基本、最核心、最最基本、最核心、最重要重要的模型。11.2 静态结构建模静态结构建模过程:静态结构建模过程:-提取系统中的类(在用例中寻找类);-添加关系;
5、-确定类的属性;-确定类的操作;-完善初始的静态结构模型。11.2 静态结构建模(1)提取系统中的类(在用例中寻找类)对象模型中的类和对象是从业务陈述中找到的,对象可以是物理实体,也可能是抽象概念。在这里,我们从用从用例规格描述中获取更好的候选类例规格描述中获取更好的候选类,把这里的候选类与对象模型中的类做比较、分析,找出更合适的候选类。-客观事物的分类:-可感知的物理实体 -人或组织的角色 -应该记忆的事件 -两个或多个对象的相互作用 -需要说明的。-在提取对象类时,有一些非正式的参考经验,可以在问题描述和用例模型中通过提取名词来确定系统中的类,然后进一步地排除虚假的类,最后确定系统中应该包
6、含的对象类。筛选时主要依据下列标准,删除不正确或不必要的类与对象。冗余 无关 笼统 属性 操作 实现11.2 静态结构建模11.2 静态结构建模(2)添加关系 -类之间的关系通常有3种:表示类之间的一般和特殊关系的泛化关系;表示类之间的整体和部分关系的聚集关系;表示类之间相互关联使用关系的关联关系。-类之间的关联具有多重性,即一个类的实例对象可以和另一个类的多个实例之间相互联系。关联的多重性主要有3种:一对一的关联 一对多关联 多对多关联11.2 静态结构建模 一对一的关联。一个类的实例对象只能和另一个类的惟一对象发生联系。一对多关联。一对多关联是指有关联关系的两个类之间,从一个方向上看是一对
7、多关联,从另一个方向上看则是一对一关联。11.2 静态结构建模 多对多关联。多对多关联是指有关联关系的两个类之间,从两个方向上都是一对多的关联。关联类。在表示类之间的关联关系时,某些情况下关联包含了更多有价值的信息,通过关联属性无法表达清楚,这时需要引入其他类。关联类用主类(存在关联关系的类)和关联类之间用一条相交的点线连接。11.2 静态结构建模(3)确定类的属性 -属性是对象的性质,通过分析系统中类对象属性可以使人们对类对象和结构有更深入、更具体的认识。-确定类对象属性的过程可以分为分析和选择两个步骤进行:分析。考虑与具体应用直接相关的属性,随着对系统认识的深入,可以再增加类的属性,不会影
8、响到系统的静态结构模型。选择。对初步分析确定下来的那些属性进行认真考察,从中删除不正确的或不必要的属性。11.2 静态结构建模(4)确定类的操作 -类对象的行为大致分为以下3种类型。对象自身的行为:对象自身的行为:简单的属性存取服务:在确定类对象时,需要给类的每个属性添加存取访问操作,以保证面向对象的封装性和信息隐藏原则。对象自身的行为:对象自身的行为:为了完成对外提供的服务而需要添加的操作,反映对象实体固有行为的操作。系统职责行为:系统职责行为:每个类对象根据其在系统中承担的职责需要增加相应的操作。-确定类对象操作的过程可以分为分析分析和筛选筛选两个步骤进行。11.2 静态结构建模(4)确定
9、类的操作 分析。分析。认真分析问题域和系统应该提供的功能,明确各个类对象在系统中应该承担的职责。在分析的过程中,需考虑下面几个问题:考虑系统功能;考虑对象在具体的问题域中应该具有哪些行为;根据对象的状态转换图,分析用来改变对象状态的操作;根据事件序列图,分析对象之间的交换过程以发现遗漏的操作。筛选。筛选。对初步分析确定下来的那些操作进行认真考察,从中删除不正确的或不必要的操作。可根据下面几种常见情况来筛选操作。检查每个操作是否真正是系统需要的。检查操作的内聚性。如果一个操作涉及多个不相关的功能,则该操作就是低内聚的,应该将其分解,形成多个新的操作。11.2 静态结构建模(5)完善初始的静态结构
10、模型 -识别继承关系识别继承关系 检查已经提交的类对象之间是否存在继承关系,如果存在继承,则利用类之间的继承特征来改进类模型,从而提高类模型的可复用性。可以从类的属性与操作及问题域中的可复用性两个角度来确定可能存在的继承关系。-分解、合并系统中的类对象分解、合并系统中的类对象 对于系统中已有的类对象认真分析,检查是否有些类可以进一步地分解为不同的类或者可以将一些类对象进行合并。建立动态模型就是为了对系统进行动态分析,动态行为建模用来描述系统的行为和动作,刻画类对象之间的交互行为,以及在完成系统功能的过程中类对象之间的交互序列。所谓动态行为建模,就是建立复杂类的对象状态转换图模型,建立表示对象之
11、间的交互行为的事件序列图模型,建立协作图和活动图模型来描述系统行为。下面将详细介绍动态行为建模的过程。11.3 动态结构建模动态行为建模的过程:动态行为建模的过程:(1)消息。对象之间的交互也是通过发送和接收消息来完成的。11.3 动态结构建模对象间的消息传递-对象之间传递的消息大致分为简单消息、同步消息和异步消息几种类型。简单消息:简单消息只用来表示将系统的控制权从一个对象传递给另外一个对象,并不包含控制的细节信息。同步消息:同步消息是指消息的执行要有一定的先后顺序。如果对象A发送消息给对象B,则对象A应该等待对象B执行完消息返回之后才能继续进行后续的工作。异步消息:异步消息是指消息的执行没
12、有先后顺序。如果对象A发送消息给对象B,则对象A不需要等待对象B执行完消息,就可以立即返回继续进行后续的工作。11.3 动态结构建模动态行为建模的过程:动态行为建模的过程:(2)事件序列图。对象之间的交互也是通过发送和接收消息来完成的。-事件序列图也称顺序图,用于描述执行系统功能的各个不同对象角色之间相互协作的顺序关系、相互传递的消息,显示跨越多个对象的系统控制流程。-事件序列图强调的是事件发生的时间以及消息传递的先后次序。事件序列图由触发功能执行的参与者、协作完成系统功能的对象、对象之间传递的消息和对象的生命线组成。-通过序列图可以了解每个对象对所收到的各种可能消息的反映以及复杂对象或系统提
13、供一项服务过程中内部消息的传递过程。11.3 动态结构建模动态行为建模的过程:动态行为建模的过程:(2)事件序列图 -事件序列图也称顺序图,用于描述执行系统功能的各个不同对象角色之间相互协作的顺序关系、相互传递的消息,显示跨越多个对象的系统控制流程。-事件序列图强调的是事件发生的时间以及消息传递的先后次序。-通过序列图可以了解每个对象对所收到的各种可能消息的反映以及复杂对象或系统提供一项服务过程中内部消息的传递过程。-用例模型中的用例描述文档对建立事件序列图有重要的参考作用,可以从用例描述中来提取功能,确定触发每个功能执行的对象以及参与功能执行的所有其他对象,然后将用例描述中的交互序列通过序列
14、图表示出来。11.3 动态结构建模动态行为建模的过程:动态行为建模的过程:(3)状态转换图 -状态转换图也可以称为状态图,用于描述对象的状态以及引起状态转换的事件和执行的操作,它表示了对象的整个生命周期,是针对类对象的一种建模工具针对类对象的一种建模工具。-要建立状态图建立状态图,根据问题描述和用例描述以及系统相关的领域知识,先确定对象都有哪些不同的状态,再确定触发对象转换的条件以及对象要执行的操作。从而可以给出具有复杂行为的对象状态转换图。11.3 动态结构建模动态行为建模的过程:动态行为建模的过程:(4)活动图 -活动图可用于描述系统、用例、程序模块中逻辑流程的先后执行次序和并行活动,是对人类组织的现实世界中工作流程的建模,可以帮助分析人员理解系统高层活动的执行行为。-将低层次的程序模块通过活动图来描述时,其作用类似于流程图,但活动图还可以描述并行操作,流程图则只能描述串行操作。11.3 动态结构建模动态行为建模的过程:动态行为建模的过程:(5)协作图 -协作图是一种描述对象间交互行为的模型图,用于描述对象之间的协作关系,其模型元素与序列图的基本相同,但协作图则侧重于描述对象之间是如何相互连接的,强调的是发送和接收消息的对象之间的组织结构。-协作图中的参与对象和事件序列图中的对象是一一对应的,而且协作图中各对象上的协作关系和序列图上的消息传递也是对应的。11.3 动态结构建模