




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第7 7章章 需求的需求的OO描述方法描述方法 2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 2本章内容本章内容先导案例先导案例概述概述7.1 统一建模语言和对象管理组织统一建模语言和对象管理组织 7.2 OO的需求的需求 7.3 系统活动:系统活动:OO的的用例用例/ /场景视图场景视图 7.4 确定输入和输出确定输入和输出系统顺序图系统顺序图 7.5 问题域建模问题域建模域模型类图域模型类图 7.6 OO模型的集成模型的集成 要点回顾要点回顾阅读章节要求阅读章节要求2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法
2、描述方法 3先导案例先导案例无限电子公司:供应链一体化无限电子公司:供应链一体化2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 4概述概述在在OOA中需要使用中需要使用事实发现技术事实发现技术。事实发现行为称做发现活动,发现必须先事实发现行为称做发现活动,发现必须先于理解。于理解。本章学习发现的下一个阶段:本章学习发现的下一个阶段:建立理解建立理解。事件发生在系统必须响应的商业环境中。事件发生在系统必须响应的商业环境中。事件被定义和记录在事件表中。新系统必事件被定义和记录在事件表中。新系统必须能够通过运行系统活动须能够通过运行系统活动(用例用例)来响应
3、商来响应商业事件。业事件。 2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 5系统的信息系统的信息(包含在商业过程中的事物信包含在商业过程中的事物信息息 )存储需求或使用传统方法中的存储需求或使用传统方法中的ERD进进行记录,或用行记录,或用OO方法中的方法中的类图类图进行记录。进行记录。学习学习:使用:使用OO的分析模型和技术来的分析模型和技术来理解理解和和定义定义新系统的需求。新系统的需求。 OO的分析和的分析和OO设计之间的界限并不明显,设计之间的界限并不明显,因为系统的设计就是对分析阶段中用于定因为系统的设计就是对分析阶段中用于定义需求的模型进
4、行改进和扩展得到的。义需求的模型进行改进和扩展得到的。2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 6面向对象分析面向对象分析(OOA) 系统分析过程中使用对象建模的方法系统分析过程中使用对象建模的方法被称为面向对象分析被称为面向对象分析(OOA)。 2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 7OOA技术用于技术用于研究现有对象,看它们是否能够被复研究现有对象,看它们是否能够被复用或者被调整用于新的用途;用或者被调整用于新的用途;定义各种新对象和修改后的对象,它定义各种新对象和修改后的对象,它们将与现有
5、对象一起组合成一个有用的们将与现有对象一起组合成一个有用的企业计算应用系统。企业计算应用系统。2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 8对象建模对象建模(Object Modeling)是一种用于辨识系统环境中的是一种用于辨识系统环境中的对象对象和和这些这些对象之间关系对象之间关系的技术。的技术。对象建模方法要求使用完全不同于对象建模方法要求使用完全不同于数数据建模据建模和和过程建模过程建模的的方法方法和和图形图形记号。记号。 2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 9术语术语对象对象: :某种
6、存在的,或者能被看到、触摸或以其他方式某种存在的,或者能被看到、触摸或以其他方式感觉到的事物,用户就该事物存储感觉到的事物,用户就该事物存储数据数据和相关和相关行为行为。 属性属性: :表示关于一个对象相关特征的数据。表示关于一个对象相关特征的数据。 对象实例对象实例: :由描述由描述特定的特定的人、地点、事物或者事件的属人、地点、事物或者事件的属性值构成。性值构成。行为行为: :指的是对象可以做的事情,以及在对象数据指的是对象可以做的事情,以及在对象数据( (或属或属性性) )上执行的功能。在上执行的功能。在OO环境中,对象的行为通常被称环境中,对象的行为通常被称为为方法方法、操作操作或者或
7、者服务服务。封装封装:几项内容一起打包成一个:几项内容一起打包成一个单元单元( (信息隐藏信息隐藏) )。2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 10考虑我们所处的环境考虑我们所处的环境教室中的所有人,我们中的每一个都教室中的所有人,我们中的每一个都代表代表人人对象对象的一个的一个实例实例;我们中的每一个都可以按照一些公共我们中的每一个都可以按照一些公共属性描述,例如:姓名、社会保险号、属性描述,例如:姓名、社会保险号、电话号码、地址等。电话号码、地址等。2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法
8、11对象的行为对象的行为当看到周围环境中的当看到周围环境中的门门对象时,可能仅仅看到对象时,可能仅仅看到一个不能思考的静止对象一个不能思考的静止对象几乎很少执行什几乎很少执行什么动作。么动作。在用于系统开发的在用于系统开发的OO方法方法中,中,门门对象可以同假对象可以同假定能够在其上的行为相关联。定能够在其上的行为相关联。例如例如,门可以打开,可以关闭,可以锁上,或,门可以打开,可以关闭,可以锁上,或者可以开锁。者可以开锁。所有这些行为都与门对象相关,并且由所有这些行为都与门对象相关,并且由门门对象对象实现,而不是由其他对象实现。实现,而不是由其他对象实现。2021-12-172021-12-
9、177 7章章 需求的需求的OOOO描述方法描述方法 12以电话对象为例以电话对象为例什么行为同一个电话相关联?什么行为同一个电话相关联?随着技术的进步,我们实际上有了语音随着技术的进步,我们实际上有了语音激活的电话,我们可以应答、拨号、挂激活的电话,我们可以应答、拨号、挂断,还可以执行其他与电话相关的行为。断,还可以执行其他与电话相关的行为。因此,用于系统开发的因此,用于系统开发的OO方法要求我方法要求我们们调整通常看待对象的方式调整通常看待对象的方式。2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 13重要的重要的OO原理原理对象单独地负责执行任何
10、在其数据对象单独地负责执行任何在其数据(或属性或属性)上操上操作的功能或者行为。作的功能或者行为。例如例如:只有你:只有你(一个对象一个对象)可以修改可以修改(行为行为)你的名你的名字和家庭住址字和家庭住址(你的属性你的属性)。引出对象的一个重要概念,即引出对象的一个重要概念,即封装封装。对象的对象的属性属性和和行为行为都被封装到一起作为那个对象都被封装到一起作为那个对象的一部分。的一部分。访问或修改访问或修改对象属性对象属性只能通过那个对象的只能通过那个对象的行为行为来来实现。实现。2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 147.1 统一建模
11、语言和对象管理组织统一建模语言和对象管理组织OMG是一个由是一个由800多个软件销售商、开发多个软件销售商、开发商和组织组成的商和组织组成的共同体共同体,他们致力于发展,他们致力于发展和传播和传播OO系统。系统。成立于成立于1989年。年。使命使命:在分布式计算系统的开发中提高应:在分布式计算系统的开发中提高应用对象技术的理论和实践水平。用对象技术的理论和实践水平。目标目标:为基于广泛接口规格的:为基于广泛接口规格的OO的应用程的应用程序提供一个通用的体系框架。序提供一个通用的体系框架。 2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 157.2 OO
12、的需求的需求系统开发过程开始于确定系统开发过程开始于确定事件事件和和事物事物。 事件事件:新系统所必须考虑的:新系统所必须考虑的商业过程商业过程;事物事物:包含在商业过程中的:包含在商业过程中的问题域对象问题域对象。过程和对象通常一起定义过程和对象通常一起定义( (不断切换不断切换) )。必须学会将所有不同的模型和它们组合在一起必须学会将所有不同的模型和它们组合在一起生成完整的生成完整的系统功能需求图系统功能需求图。本章主要讨论一个关于模型的集合,它根据本章主要讨论一个关于模型的集合,它根据OO方法中的方法中的用例用例来捕获系统需求四种模型来捕获系统需求四种模型用例图用例图、用例描述用例描述、
13、活动图活动图和和系统顺序图系统顺序图,用,用来从不同的观点描述来从不同的观点描述系统用例系统用例。 2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 16使用模型来记录需求最大的好处使用模型来记录需求最大的好处在于它能帮助系统开发员仔细和清在于它能帮助系统开发员仔细和清楚地考虑处理的细节,以及系统相楚地考虑处理的细节,以及系统相关人员的信息需求。关人员的信息需求。 2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 17四种模型四种模型 1. 用例图用例图 2. 系统顺序图系统顺序图 3. 消息消息 4. 状态图状态
14、图2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 181. 用例图用例图一种用以显示不同的用户角色和这些用一种用以显示不同的用户角色和这些用户角色如何使用系统的图。户角色如何使用系统的图。以图形化的方式描述系统与外部系统和以图形化的方式描述系统与外部系统和用户的交互。用户的交互。换言之,它们以图形化的方式描述谁将换言之,它们以图形化的方式描述谁将使用系统,以及用户期望以什么方式与使用系统,以及用户期望以什么方式与系统交互。系统交互。2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 19目的目的:识别新系统的:识别
15、新系统的“用法用法”或用例,或用例,即识别如何使用系统。即识别如何使用系统。用例图用例图本质上是本质上是事件表事件表的延伸。的延伸。用例图是用于记录系统必须支持的所有用例图是用于记录系统必须支持的所有功能的一种简便方法。可以用一个综合功能的一种简便方法。可以用一个综合的用例图来描述整个系统。的用例图来描述整个系统。活动图可以用来定义用例。活动图可以用来定义用例。 2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 202. 系统顺序图系统顺序图( (SSD) )在用例或场景中,用于显示外部参与者和系统在用例或场景中,用于显示外部参与者和系统之间的消息顺序的
16、图。之间的消息顺序的图。以图形化的方式描述在一个用例或操作的执行过程中以图形化的方式描述在一个用例或操作的执行过程中对象如何通过消息互相交互,说明了消息如何在对象对象如何通过消息互相交互,说明了消息如何在对象之间被发送和接收以及发送的顺序。之间被发送和接收以及发送的顺序。用来定义一个用例的输入和输出,以及在用户用来定义一个用例的输入和输出,以及在用户和系统之间交互的顺序。和系统之间交互的顺序。用于联系用于联系用例用例详细描述详细描述或或活动图活动图。顺序图中,出入系统的信息流被称为顺序图中,出入系统的信息流被称为消息消息。2021-12-172021-12-177 7章章 需求的需求的OOOO
17、描述方法描述方法 213. 消息消息用例内部对象之间的通信。用例内部对象之间的通信。当一个对象调用另一个对象的方法当一个对象调用另一个对象的方法( (行为行为) )以请求信息或者某些动作时以请求信息或者某些动作时发生的通信。发生的通信。2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 224. 状态图状态图 一种用以显示对象在各阶段中的生命和转换的情一种用以显示对象在各阶段中的生命和转换的情况的图。况的图。用于建模一个特定对象的动态行为,说明一个对用于建模一个特定对象的动态行为,说明一个对象的生命周期象的生命周期对象可以经历各种状态,以及对象可以经历各种
18、状态,以及引起对象从一个状态向另一个状态转换的事件。引起对象从一个状态向另一个状态转换的事件。 状态图表状态图表( (状态图状态图) )描述了每个对象状态的集合。描述了每个对象状态的集合。类图中所标识的一些对象有些状态情形需要跟踪,类图中所标识的一些对象有些状态情形需要跟踪,这些状态直接决定了对象的处理过程。这些状态直接决定了对象的处理过程。2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 23 客户订单有几个比较重要的状态条件,它客户订单有几个比较重要的状态条件,它们控制订单的处理过程,例如,订单只有们控制订单的处理过程,例如,订单只有在完成后才会发货
19、。在完成后才会发货。状态图标识这些状态条件并且标明允许的状态图标识这些状态条件并且标明允许的处理过程。处理过程。同时,状态图也可用于同时,状态图也可用于设计过程设计过程,以确定,以确定系统本身的各种状态,以及能够处理的可系统本身的各种状态,以及能够处理的可允许的事件上。允许的事件上。状态图既可以看做是分析工具,也可以看状态图既可以看做是分析工具,也可以看做是设计工具。做是设计工具。 2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 247.3 系统活动:系统活动:OO的用例的用例/ /场景视图场景视图7.3.1 用例和参与者用例和参与者7.3.2 用例图
20、用例图7.3.3 开发用例图开发用例图7.3.4 用例详细描述用例详细描述2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 25用例分析的目标用来用例分析的目标用来标识标识和和定义定义系统必须系统必须支持的所有支持的所有商业过程商业过程。分析员在分析员在综合等级综合等级和和详细等级详细等级两个层次上两个层次上定义用例。定义用例。 事件表事件表和和用例图用例图为一个系统提供了所有用为一个系统提供了所有用例的综合。例的综合。关于每个用例的详细信息使用关于每个用例的详细信息使用用例描述用例描述、活动图活动图和和系统顺序图系统顺序图,或者这些模型的组,或者这些模
21、型的组合进行说明。合进行说明。 2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 267.3.1 用例和参与者用例和参与者用例:用例:系统运行的活动,通常由系统用系统运行的活动,通常由系统用户来响应需求。户来响应需求。用例中蕴涵使用系统的人:用例中蕴涵使用系统的人:参与者参与者。 参与者参与者通常处于自动化系统边界之外,通常处于自动化系统边界之外,但是它也有可能是系统手动部分的成员。但是它也有可能是系统手动部分的成员。2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 27参与者与事件的源的区别参与者与事件的源的区别
22、参与者的概念与在事件表中所定义的事参与者的概念与在事件表中所定义的事件的件的“源源”在内涵上略有不同。在内涵上略有不同。事件的源事件的源:指事件的发起者,例如一个:指事件的发起者,例如一个用户,并且它通常在系统用户,并且它通常在系统( (包括手动系统包括手动系统) )的外部。的外部。参与者参与者实际上是实际上是亲自亲自和计算机系统进行和计算机系统进行交互交互的人。的人。2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 28定义参与者定义参与者和系统进行交互的人定义为参与者。和系统进行交互的人定义为参与者。 ( (自动化系统所必须响应的交互自动化系统所必须
23、响应的交互) )将能够接触自动系统的人定义为参与者。将能够接触自动系统的人定义为参与者。有些参与者可能是其他的系统或者从系有些参与者可能是其他的系统或者从系统接受服务的设备。统接受服务的设备。把参与者看成一个角色。把参与者看成一个角色。 考虑参与者和用例,认为用例是参与者考虑参与者和用例,认为用例是参与者想要完成的目标。想要完成的目标。 例:例:RMO中用例中用例“产生产生新订单新订单”的情况可能会涉的情况可能会涉及一个销售代表在电话里及一个销售代表在电话里与一名客户进行交谈。与一名客户进行交谈。如果这位客户直接在如果这位客户直接在Internet上订货,那他也上订货,那他也是个参与者。是个参
24、与者。 标志目标的方法:标志目标的方法:订单职员订单职员使用系统来使用系统来生成新订单生成新订单。 2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 297.3.2 用例图用例图用例图用例图:概括有关参与者和用例信息的一个图:概括有关参与者和用例信息的一个图形化的模型。形化的模型。 1. 自动化边界和组织自动化边界和组织 2. 组织用例图的方法组织用例图的方法 3. 用例之间的关系用例之间的关系 4. 用例图与事件表的比较用例图与事件表的比较例:有一个例:有一个参与者的简参与者的简单用例。单用例。*2021-12-172021-12-177 7章章 需求
25、的需求的OOOO描述方法描述方法 301. 自动化边界和组织自动化边界和组织在全套的用例上画一条边界线。该边界是在全套的用例上画一条边界线。该边界是自自动化边界动化边界。它表示环境。它表示环境( (参与者的居住地参与者的居住地) )和和自动系统的内部功能之间的边界。自动系统的内部功能之间的边界。员对前面的图进行对前面的图进行了扩展,增加了了扩展,增加了参与者参与者和和用例用例。在该实例中,在该实例中,订单员订单员和和用户用户都可直接访问系统。都可直接访问系统。正像有关系线连接表示正像有关系线连接表示的那样,每个参与者可的那样,每个参与者可以操作所有的用例以操作所有的用例 。2021-12-17
26、2021-12-177 7章章 需求的需求的OOOO描述方法描述方法 312. 组织用例图的方法组织用例图的方法使用子系统使用子系统 包含涉及一个特定参与者的所有用例包含涉及一个特定参与者的所有用例2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 32使用子系统使用子系统订单输入子系统用例图,显示系统边界订单输入子系统用例图,显示系统边界 员2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 33RMORMO客客户户支支持持系系统统用用例例图图( (子子系系统统) ) *2021-12-172021-12-177 7
27、章章 需求的需求的OOOO描述方法描述方法 34包含涉及一个特定参与者的所有用例包含涉及一个特定参与者的所有用例图表示了与一个图表示了与一个客户参与者相关的客户参与者相关的所有用例。所有用例。该图在表明所有通过该图在表明所有通过Internet访问的活动时访问的活动时非常有用。非常有用。分析员可以选择绘制分析员可以选择绘制基于项目团队需要的基于项目团队需要的用例图。用例图。如果计划与市场部如果计划与市场部门经理会面讨论所有门经理会面讨论所有涉及直接客户交互的涉及直接客户交互的用例,则图中的用例用例,则图中的用例图会很有用。图会很有用。2021-12-172021-12-177 7章章 需求的需
28、求的OOOO描述方法描述方法 353. 用例之间的关系用例之间的关系 扩展扩展 包含包含泛化泛化2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 36关系关系通常在用例图的开发过程中,一个用例需通常在用例图的开发过程中,一个用例需要用到通用子程序所提供的服务。要用到通用子程序所提供的服务。例如例如,“订单输入子系统订单输入子系统”的两个用例是的两个用例是“产生新订单产生新订单”、“更新订单更新订单”,这两个,这两个用例均须检查客户的账号是否正确。用例均须检查客户的账号是否正确。因此,可以定义一个通用的子程序来完成因此,可以定义一个通用的子程序来完成这个功
29、能,并且它变成了一个这个功能,并且它变成了一个附加用例附加用例。 2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 37有有关系用例的订单输入子系统关系用例的订单输入子系统 关系可读做关系可读做“产生新订产生新订单单验证用户账验证用户账号号”。关关系也称系也称关系或关系或者者关系。关系。名为名为“验证用户账号验证用户账号”的的用例,它被用例,它被 “ “产生新订产生新订单单”、“更新订单更新订单”两个用两个用例调用。例调用。用例之间的关系由带箭头用例之间的关系由带箭头的连接线表示。的连接线表示。 “检查条目可用性检查条目可用性”可能可能是是关系的一部分。
30、关系的一部分。分析员可定义两种类型的分析员可定义两种类型的关系:一种是通用内部关系:一种是通用内部子程序,如子程序,如“验证用户账号验证用户账号”,它不被外部参与者直接引用;它不被外部参与者直接引用;另一种是能被外部参与者直另一种是能被外部参与者直接引用,如接引用,如“检查条目可用检查条目可用性性”。2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 38扩展扩展当某个当某个基本用例基本用例由于需要附加一个用例来由于需要附加一个用例来扩展扩展或或延伸延伸其原有功能时,附加的其原有功能时,附加的扩展用例扩展用例与原有与原有的的基本用例基本用例之间的关系就体现
31、为扩展关系。之间的关系就体现为扩展关系。在在UML中可使用带有中可使用带有说明的依赖说明的依赖关系表示关系表示“扩展关系扩展关系”。例例:网上购物系统中有:网上购物系统中有“支付支付”用例,而用例,而“网网上支付上支付”用例是用例是“支付支付”用例的扩展用例。用例的扩展用例。 支付支付网上支付网上支付基本基本用例用例扩展扩展用例用例*2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 39从基本用例从基本用例A到扩展用例到扩展用例B的扩展关系表明:按的扩展关系表明:按基本用例基本用例A中指定的条件,把扩展用例中指定的条件,把扩展用例B的行为的行为插入到由插
32、入到由A中的扩展点定义的位置。中的扩展点定义的位置。也就是说基本用例也就是说基本用例A可以可以单独存在单独存在,但在一定的,但在一定的条件下,它的行为可被另一个用例条件下,它的行为可被另一个用例B的行为扩展。的行为扩展。一个用例可以扩展多个用例,一个用例也可以被一个用例可以扩展多个用例,一个用例也可以被多个用例扩展。多个用例扩展。扩展用例扩展用例不能作为动作序列单独出现,但基本用不能作为动作序列单独出现,但基本用例在缺少任何扩展用例的情况下也必须是独立的例在缺少任何扩展用例的情况下也必须是独立的用例。用例。2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法
33、 40包含包含 如果在若干个用例中有某些如果在若干个用例中有某些相同的动作相同的动作,则可把这些,则可把这些相同的动作提取出来单独构成一个用例相同的动作提取出来单独构成一个用例(称抽象用例称抽象用例)。(将多个用例中的将多个用例中的公共部分公共部分抽取出来作一个单独用例抽取出来作一个单独用例)。当某个用例使用该抽象用例时,就好像这个用例包含当某个用例使用该抽象用例时,就好像这个用例包含了抽象用例中的所有动作。了抽象用例中的所有动作。UML中使用带有中使用带有说明的说明的依赖关系依赖关系表示表示“包含关系包含关系”。例例:网上购物系统中有一个:网上购物系统中有一个“订购订购”用例,而用例,而“查
34、询查询”用例是用例是“订购订购”用例的包含用例。用例的包含用例。*订购订购查询查询包含包含用例用例 2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 41 如果从用例如果从用例A到用例到用例B存在包含关系,则用例存在包含关系,则用例A在它内部说明的在它内部说明的某一位置上显式地使用某一位置上显式地使用用例用例B的的行为的结果行为的结果。被包含的用例被包含的用例B作为包含它的用例作为包含它的用例A的功能的的功能的一部分出现。一部分出现。可以把包含关系想像为可以把包含关系想像为基本用例基本用例调用调用供应者用供应者用例例,基本用例仅仅依赖供应者用例,基本用例
35、仅仅依赖供应者用例执行的结果执行的结果,而不依赖供应者用例的内部结构。而不依赖供应者用例的内部结构。一个用例可以包含多个用例,一个用例也可以一个用例可以包含多个用例,一个用例也可以被多个用例包含。被多个用例包含。2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 42例:网上订购商品例:网上订购商品软件系统需要对顾客的信用进行检查,检查输入的信用软件系统需要对顾客的信用进行检查,检查输入的信用卡号是否有效,信用卡是否有足够的资金支持本次订购。卡号是否有效,信用卡是否有足够的资金支持本次订购。由于该功能在由于该功能在“订购订购”过程中使用,因此是包含关系。过
36、程中使用,因此是包含关系。在执行在执行“改变订购量改变订购量”用例时,只有预定量改变时才执用例时,只有预定量改变时才执行行“检查信用检查信用”用例,如果预订量不改变,则不执行用例,如果预订量不改变,则不执行“检查信用检查信用”用例。用例。由于由于“检查信用检查信用”用例是用例是可选执行可选执行的,因此,用例之间的,因此,用例之间存在扩展关系。箭头从可选运行的用例存在扩展关系。箭头从可选运行的用例“检查信用检查信用”指指向被扩展的用例。向被扩展的用例。顾客顾客订购订购检查信用检查信用改变预订量改变预订量2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 43
37、扩展和包含之间的异同扩展和包含之间的异同两种关系意味着从几个用例中抽取那些公共的两种关系意味着从几个用例中抽取那些公共的行为并放入一个单独的用例中,而这个用例被行为并放入一个单独的用例中,而这个用例被其他用例扩展或包含。其他用例扩展或包含。包含和扩展的包含和扩展的目的目的是不同的。是不同的。通常在描述一般行为的变化时采用扩展关系;通常在描述一般行为的变化时采用扩展关系;在两个或多个用例中出现重复描述又想避免这在两个或多个用例中出现重复描述又想避免这种重复时,可以采用包含关系。种重复时,可以采用包含关系。2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 4
38、4泛化泛化 从用例从用例A到用例到用例B之间的泛化关系表明:之间的泛化关系表明:父用例父用例表示通表示通用的用的行为行为序列。通过插入额外的步骤或定义步骤,序列。通过插入额外的步骤或定义步骤,子子用例用例特化父用例。特化父用例。UML表示用例泛化的方法与类相同。表示用例泛化的方法与类相同。例例:在线股票经纪人系统在线股票经纪人系统把通用用例把通用用例“做交易做交易”特化特化为子用例为子用例“交易债券交易债券”、“交易股票交易股票”和和“交易期交易期权权”。父用例包含所有交易类型都会执行的步骤,如。父用例包含所有交易类型都会执行的步骤,如输入交易密码。每个子用例都包含了针对某种交易类输入交易密码
39、。每个子用例都包含了针对某种交易类型特别安排的额外步骤,如输入期权的行权日期。型特别安排的额外步骤,如输入期权的行权日期。 做交易做交易交易债券交易债券交易股票交易股票交易期权交易期权2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 454. 用例图与事件表的比较用例图与事件表的比较模型的观点有细微的不同模型的观点有细微的不同标识临时事件和状态事件时有差别标识临时事件和状态事件时有差别定义一个用例支持多个商业事件定义一个用例支持多个商业事件2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 46模型的观点有细微的不同
40、模型的观点有细微的不同事件表事件表通常注意通常注意商业过程商业过程。它通过标识它通过标识商业事件商业事件,以及这些事件的,以及这些事件的外部、外部、初始化源初始化源的信息来关注商业过程。的信息来关注商业过程。外部的源是引起商业事件初始化的原因,并且外部的源是引起商业事件初始化的原因,并且它们能从自动系统中轻松的移除。它们能从自动系统中轻松的移除。用例图用例图强调了自动系统。因为它只与自动系统强调了自动系统。因为它只与自动系统相连,所以参与者与自动系统有联系并且不一相连,所以参与者与自动系统有联系并且不一定是商业事件的发起者。定是商业事件的发起者。2021-12-172021-12-177 7章
41、章 需求的需求的OOOO描述方法描述方法 47标识临时事件和状态事件时有差别标识临时事件和状态事件时有差别由于用例通常被外部参与者初始化,所以如果分由于用例通常被外部参与者初始化,所以如果分析员不仔细标识每一个事件,那么临时事件和状析员不仔细标识每一个事件,那么临时事件和状态事件经常被忽略。态事件经常被忽略。用例定义太窄将成为用例建模的一个缺陷。用例定义太窄将成为用例建模的一个缺陷。如如:在线系统菜单常包括用于表示事件表中临时:在线系统菜单常包括用于表示事件表中临时事件的菜单选项,以便这样的事件能够被用户触事件的菜单选项,以便这样的事件能够被用户触发并且作为纯粹的临时事件。发并且作为纯粹的临时
42、事件。建议建议:为每个:为每个临时事件临时事件和和状态事件状态事件创建用例以确创建用例以确保这些需求不被忽略。保这些需求不被忽略。2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 48定义一个用例支持多个商业事件定义一个用例支持多个商业事件满足满足3个标准,则定义一个用例:个标准,则定义一个用例:本质上相同的处理发生在自动系统内部;本质上相同的处理发生在自动系统内部;本质上相同的信息被更新;本质上相同的信息被更新;本质上相同的信息从事件中输入和输出。本质上相同的信息从事件中输入和输出。例例:开发事件表过程中,:开发事件表过程中,添加新用户添加新用户和和更
43、新用户更新用户两个事件已被标识出来。从系统观点出发,两个两个事件已被标识出来。从系统观点出发,两个商业事件的用例几乎一样,因为它们都包含更新商业事件的用例几乎一样,因为它们都包含更新用户文件。可定义一个单独的用例来支持这两个用户文件。可定义一个单独的用例来支持这两个商业事件,该用例可命名为商业事件,该用例可命名为“维护客户账户信维护客户账户信息息”。分析员会同时完成分析员会同时完成事件表事件表和和用例图用例图,并不断更新。并不断更新。在商业事件对单一、简在商业事件对单一、简单的数据文件或表进行单的数据文件或表进行基本的文件维护时,这基本的文件维护时,这些条件常常能够满足。些条件常常能够满足。有
44、时单一事件可触发非常有时单一事件可触发非常复杂的处理需求,这将使复杂的处理需求,这将使系统活动分解为两个用例系统活动分解为两个用例以更好地管理系统复杂性,以更好地管理系统复杂性,使其变得更加有意义。使其变得更加有意义。 2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 497.3.3 开发用例图开发用例图1. 两个切入点两个切入点 2. 两步迭代两步迭代3. CRUD分析分析2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 501. 两个切入点两个切入点 若创建了事件表,则用事件表标识用例若创建了事件表,则用事件表
45、标识用例 标识使用系统的参与者和它们执行的功能标识使用系统的参与者和它们执行的功能2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 51若创建了事件表,则用事件表标识用例若创建了事件表,则用事件表标识用例仔细分析事件表中的每个事件以确定系统为支持这些事仔细分析事件表中的每个事件以确定系统为支持这些事件、发起这个事件的件、发起这个事件的参与者参与者,以及由于该事件而触发的,以及由于该事件而触发的其他用例所其他用例所执行的处理执行的处理。当一个模型转向另一个更详细的模型时需要不断精炼,当一个模型转向另一个更详细的模型时需要不断精炼,仔细分析仔细分析事件事件和
46、和事件表事件表非常重要。非常重要。开发人员可将开发人员可将一个单一的事件标识为用例一个单一的事件标识为用例,如所需的处,如所需的处理很相似,可把理很相似,可把几个事件组合成一个单独的用例几个事件组合成一个单独的用例;或如;或如果处理很复杂,也可果处理很复杂,也可标识多个用例标识多个用例。多个用例的标识通常发生在它们有多个用例的标识通常发生在它们有关系关系和两和两个用例个用例从一个大用例分解从一个大用例分解得到时,或发生在一个得到时,或发生在一个附加用附加用例例按照通用子程序的方式被定义时。按照通用子程序的方式被定义时。 该图显示的客户支持子系统是该图显示的客户支持子系统是使用该方法开发。图中定
47、义的使用该方法开发。图中定义的绝大多数绝大多数用例直接来自事件表用例直接来自事件表。用例名称来自事件表的活动用例名称来自事件表的活动/用例栏中的描述。用例栏中的描述。例外例外: :由于临时事件通常可由于临时事件通常可手动发起手动发起, ,所以所以要为每个要为每个临时临时用例用例使用标识使用标识外部参与者外部参与者选项。选项。 “客户修改账户信息客户修改账户信息”事件。事件。在该实例中,用例定义扩展到在该实例中,用例定义扩展到和所有维护客户信息相关的场和所有维护客户信息相关的场景中。同样,该用例被命名为景中。同样,该用例被命名为维护客户账户信息维护客户账户信息,指的是添,指的是添加、更新和删除。
48、加、更新和删除。这些都是用例对事件表进行提这些都是用例对事件表进行提炼更新的例子。炼更新的例子。 2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 53RMORMO客客户户支支持持系系统统的的完完整整事事件件表表2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 54标识使用系统的参与者和它们执行的功能标识使用系统的参与者和它们执行的功能若没创建事件表,则开发用例图的另一个切入若没创建事件表,则开发用例图的另一个切入点是标识使用系统的点是标识使用系统的参与者参与者和它们和它们执行的功能执行的功能。记住记住两个前提条件
49、两个前提条件:为一个自动系统创建自动化边界为一个自动系统创建自动化边界,这样标识的,这样标识的参与者就能和这个系统进行联系;参与者就能和这个系统进行联系;必须假定拥有完美的技术必须假定拥有完美的技术,确定用例是基于商,确定用例是基于商业事件而不是像登录系统一样的技术活动。业事件而不是像登录系统一样的技术活动。只有给出上述前提,才可通过只有给出上述前提,才可通过两步迭代两步迭代来开发来开发用例图。用例图。 2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 552. 两步迭代两步迭代标识系统的参与者标识系统的参与者 开发这些角色的目标表开发这些角色的目标表2
50、021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 56标识系统的参与者标识系统的参与者参与者通常由用户扮演。不能把参与者参与者通常由用户扮演。不能把参与者列成如列成如Bob先生这样的形式,而应该标先生这样的形式,而应该标识出这些人所处的识出这些人所处的特定的角色特定的角色。记住,在一个系统中同一个人可以有多记住,在一个系统中同一个人可以有多个特定的角色。个特定的角色。理解和辨识系统所有可能使用的角色是理解和辨识系统所有可能使用的角色是重要的。其他的系统也可以成为系统的重要的。其他的系统也可以成为系统的参与者。参与者。2021-12-172021-12-17
51、7 7章章 需求的需求的OOOO描述方法描述方法 57开发这些角色的目标表开发这些角色的目标表 目标目标指参与者执行完成一些商业功能的任务。指参与者执行完成一些商业功能的任务。目标通常是类似营销、接受用户反馈或者订单目标通常是类似营销、接受用户反馈或者订单发货这样的任务。发货这样的任务。目标是能够被标识和描述的工作单元。目标是能够被标识和描述的工作单元。在目标完成时,系统数据在一段时间内是不会在目标完成时,系统数据在一段时间内是不会改变的。改变的。两个步骤常应用于项目组成员和用户的两个步骤常应用于项目组成员和用户的集体讨集体讨论论中,并没什么捷径可以用来发现或标识用例。中,并没什么捷径可以用来
52、发现或标识用例。 2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 583. CRUD分析分析将标识后的将标识后的用例用例与与域模型类图域模型类图进行比较进行比较( (复查复查) )。 需要需要类图类图中每个类都有足够的中每个类都有足够的用例用例来支持来支持创建新对象实例、读取或者报告这些对象、创建新对象实例、读取或者报告这些对象、更新这些对象并且在许多例子中删除对象更新这些对象并且在许多例子中删除对象实例。实例。检查在检查在域模型类图域模型类图中的每个类并确定在用中的每个类并确定在用例图中有用例来支持所有适合该应用的例图中有用例来支持所有适合该应用的C
53、RUD功能。功能。2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 59RMO的一个活动数据矩阵的一个活动数据矩阵 CRUD分析需要分析需要类图类图中每中每个个类类都有足够的都有足够的用例用例来支来支持持创建创建新新对象实例对象实例、读取读取或者报告这些对象、或者报告这些对象、更新更新这些对象产且在许多例子这些对象产且在许多例子中中删除删除对象实例。对象实例。 2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 60用例不应该命名为用例不应该命名为创建创建或者或者更新更新,但是潜,但是潜在的处理可以添加新的实例或者更
54、新已存在的处理可以添加新的实例或者更新已存在的实例。在的实例。例如例如,一个名为,一个名为“记录支付情况记录支付情况”的用例的用例并没有清楚地指出一个新的支付对象被创并没有清楚地指出一个新的支付对象被创建,但是用例的详细描述却指出这个对象建,但是用例的详细描述却指出这个对象被创建了。用例被创建了。用例“产生新订单产生新订单”可以创建可以创建订单条目对象和更新库存条目对象。订单条目对象和更新库存条目对象。在其他例子中,许多用例以维护两字开头在其他例子中,许多用例以维护两字开头命名,以覆盖常规的添加、更新、读取和命名,以覆盖常规的添加、更新、读取和删除操作。删除操作。2021-12-172021-
55、12-177 7章章 需求的需求的OOOO描述方法描述方法 61为了做为了做CRUD分析,只须看一下在分析,只须看一下在域模型域模型类图类图中的每个中的每个类类并确定在并确定在用例图用例图中有中有用例用例来支持所有适合该应用的来支持所有适合该应用的CRUD功能。功能。切记切记:在集成系统中,一个系统可能负:在集成系统中,一个系统可能负责创建对象,而另外的系统可以只更新它责创建对象,而另外的系统可以只更新它们。们。CRUD分析方法提供了一种分析方法提供了一种交叉检验方法交叉检验方法(不是最终的解决方案不是最终的解决方案),并且提供了确认,并且提供了确认重要的重要的系统集成需求系统集成需求的机会,
56、这些需求如的机会,这些需求如果不用该方法逆行分析可能就不明显了。果不用该方法逆行分析可能就不明显了。2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 627.3.4 用例详细描述用例详细描述0. 场景或者用例实例场景或者用例实例 1. 简单描述简单描述2. 中间描述中间描述3. 完全展开描述完全展开描述4. 活动图描述活动图描述2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 630. 场景或者用例实例场景或者用例实例用例中步骤的一个特定顺序。一个用例可以有用例中步骤的一个特定顺序。一个用例可以有几个不同的场景。几
57、个不同的场景。商业步骤的变化存在于单一用例中。不同的参商业步骤的变化存在于单一用例中。不同的参与者调用用例,有不同的活动流。与者调用用例,有不同的活动流。 为了完成商业过程,用例要包括完整的步骤顺为了完成商业过程,用例要包括完整的步骤顺序。每个活动流都是一个有效的顺序。序。每个活动流都是一个有效的顺序。 不同的活动流称为场景不同的活动流称为场景( (也称用例实例也称用例实例) )。场景是对一个用例中的一套内部活动的识别和场景是对一个用例中的一套内部活动的识别和描述。它代表通过用例的惟一路径。描述。它代表通过用例的惟一路径。 2021-12-172021-12-177 7章章 需求的需求的OOO
58、O描述方法描述方法 64通常商业步骤的变化存在于单一用例中。通常商业步骤的变化存在于单一用例中。“产生新订单产生新订单”用例,根据哪些参与者用例,根据哪些参与者调用用例,将有不同的活动流。调用用例,将有不同的活动流。订单职员通过电话来建立新订单的过程订单职员通过电话来建立新订单的过程与用户通过与用户通过Internet建立订单的过程是非建立订单的过程是非常不同的。常不同的。可以按三个独立的详细描述等级进行用可以按三个独立的详细描述等级进行用例描述。例描述。2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 651. 简单描述简单描述用于非常简单的用例,特别
59、是当要开发的用于非常简单的用例,特别是当要开发的系统是一个很小并且易于理解的应用时。系统是一个很小并且易于理解的应用时。一个简单的用例通常有一个简单的用例通常有单一的场景单一的场景和即使和即使有也有也很少的异常条件很少的异常条件。用于和用于和活动图活动图进行连接的进行连接的简单描述简单描述为简单为简单用例提供了可靠的描述。用例提供了可靠的描述。 2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 66“产生新订单产生新订单”用例的简单描述用例的简单描述 当用户电话订购时,订单支援和系统会当用户电话订购时,订单支援和系统会检验用户信息,创建一个新订单,将各检
60、验用户信息,创建一个新订单,将各条目加入订单中,检验支付款项,创建条目加入订单中,检验支付款项,创建这个订单交易,最后完成订单。这个订单交易,最后完成订单。通常,像通常,像“产生新订单产生新订单”这样的用例是这样的用例是很复杂的,它们可以用很复杂的,它们可以用中间中间或者或者完全展完全展开开描述进行描述。描述进行描述。 2021-12-172021-12-177 7章章 需求的需求的OOOO描述方法描述方法 672. 中间描述中间描述中间等级的用例描述扩展了简单描述,中间等级的用例描述扩展了简单描述,它包括了用例的它包括了用例的内部活动流内部活动流。 如果有多个场景,其中每个活动流都被如果有多
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 文化用品行业市场趋势预测考核试卷
- 疫情防控与社区治理考核试卷
- 期货市场套保实务考核试卷
- 航空公司航班运行中的机组人员协作考核试卷
- 粮食储备的社区参与考核试卷
- 箱包制作技能培训与认证考核试卷
- 影视作品音乐版权翻唱授权与分成比例调整补充合同
- 智能社区物业公司绿化员派遣与智能绿化服务协议
- 高端医院神经外科科室委托运营管理服务协议
- 金融科技优先股股东权益合作协议
- 当代中国外交(外交学院)知到智慧树章节测试课后答案2024年秋外交学院
- 小学科学湘科版六年级下册全册同步练习含答案
- 分包合法合规宣贯(2017年6月)
- GB 18613-2020电动机能效限定值及能效等级
- 《行政组织学结课论文综述3000字》
- 小学劳动 包饺子课件
- 核电工程质量保证知识培训教材课件
- 区级综合医院关于落实区领导干部医疗保健工作实施方案
- 颜色标准LAB值对照表
- 后厨主管月度绩效考核表(KPI)
- 功能饮料项目投资计划书(模板范文)
评论
0/150
提交评论