资源预览内容
第1页 / 共232页
第2页 / 共232页
第3页 / 共232页
第4页 / 共232页
第5页 / 共232页
第6页 / 共232页
第7页 / 共232页
第8页 / 共232页
第9页 / 共232页
第10页 / 共232页
亲,该文档总共232页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
中程在线信息产业培训网中程在线信息产业培训网需求分析师培训需求分析师培训Day02Agendal需求分析最佳实践需求分析最佳实践l需求建模最佳实践需求建模最佳实践l用例驱动的需求过程实践用例驱动的需求过程实践中程在线信息产业培训网中程在线信息产业培训网Agendal需求分析最佳实践需求分析最佳实践l需求建模最佳实践需求建模最佳实践l用例驱动的需求过程实践用例驱动的需求过程实践需求分析是需求工程中的核心中程在线信息产业培训网中程在线信息产业培训网需求分析回顾需求分析回顾l所谓分析是指通过对问题域的研究,获得对该领域特性及存在于其中(需要解决)的问题特性的透彻理解并用文档说明l分析方法:结构化分析法、面向对象分析法、面向问题域分析法l需求分析与需求捕获是交替进行的l需求分析的结果将通过建模、规格说明书编写的方式文档化中程在线信息产业培训网中程在线信息产业培训网需求分析最佳实践需求分析最佳实践 1l定义系统边界:评估原始需求,定义将要开发的系统的边界;确定哪些是系统需求,哪些是和系统相关的操作过程的需求,哪些是在系统范围之外的需求 主要效益:消除不必要的需求 引入成本:低 应用成本:低 实施指南:询问某项需求是否是基于不完整的或者不可靠的信息做出的?某项需求的实现是否需要在系统已定义的数据库之外的信息?某项需求是否和系统的核心功能相关?某项需求是否牵涉到系统之外的功能或者设备的性能?中程在线信息产业培训网中程在线信息产业培训网需求分析最佳实践需求分析最佳实践 2l使用校验表进行需求分析:根据经验开发需求问题校验表,并将其用于需求的系统化分析,每一项需求都应按照校验表进行分析。 主要效益:更快、更完整地进行需求分析 引入成本:低-中 应用成本:低 实施指南:校验表不超过10项草率设计:该需求包括不成熟设计或实现信息吗?组合需求:该需求是单独的需求还是可以细分为多个需求?多余需求:该需求只是系统的修饰,还是真正必需?使用非标准硬件:必须使用非标准的硬件还是软件?符合业务目标:符合在需求文档开始处定义的业务目标?需求多义性:不同人是否可以从不同方式来理解?需求可实现性:基于当前技术,该需求可实现吗?需求可测试性:是否能够判断系统是否符合需求中程在线信息产业培训网中程在线信息产业培训网需求分析最佳实践需求分析最佳实践 3l使用软件支持协商:鼓励使用电子邮件来交换需求信息并且进行需求协商;也可以使用BBS、即时通信、群件系统来进行沟通与协商。 主要效益:需求问题的更快解决 引入成本:低-中 应用成本:低-中 实施指南:电子邮件需指派一个问题管理人员,负责跟踪问题的提出、传递、回应和达成解决方案;BBS方案需要限制讨论的长度;群件方案需要事行定义好需求管理项的结构中程在线信息产业培训网中程在线信息产业培训网需求分析最佳实践需求分析最佳实践 4l对冲突和冲突解决方案做好计划:任何需求集中都会有冲突、重叠和遗漏问题,应该安排会议讨论这些需求并解决分析过程中发现的问题。 主要效益:需求问题的更快解决 引入成本:低 应用成本:低 实施指南:会议是解决需求冲突最快的方式,应聚焦于解决突出的需求问题;电子信息交换也是可取的方式之一;会议通常包括叙述阶段、讨论阶段和决策阶段;分析的结果要发给所有与会者中程在线信息产业培训网中程在线信息产业培训网需求分析最佳实践需求分析最佳实践 5l需求分级:每一项需求都应该标上优先级,以反映它们对项目相关人员的重要性和对整个系统成功与否的重要性。 主要效益:关注最重要的需求 引入成本:低 应用成本:低 实施指南:在需求捕获阶段就标明优先级是最理想的;通常需要进行了初始的分析工作才可能分配优先级;优先级的分配要由需求分析人员和项目相关人员共同完成;优先级不应太多,如必须的、有用的、希望的中程在线信息产业培训网中程在线信息产业培训网需求分析最佳实践需求分析最佳实践 6l使用多维方法进行需求分类:应对需求进行分类以便标记相关的需求,不必将单个需求只归到一个类,可以派生出多种分类方法。 主要效益:有助于发现需求重叠和冲突 引入成本:低-中 应用成本:中 实施指南:可用系统、用户界面、数据库、通信、安全来进行分类;建议最多有56个分类;决定分类后,应把每个需求都和一到多个关键词关联起来;分类完成后,可以抽取很多组具有相同分类的需求进行比较和分析中程在线信息产业培训网中程在线信息产业培训网需求分析最佳实践需求分析最佳实践 7l使用交互矩阵发现冲突与重叠:交互矩阵的每一行和每一列都代表一项需求,每一个元素都用来表示对应的需求是否冲突、重叠或者独立 主要效益:揭示需求重叠和冲突 引入成本:低 应用成本:中-高 实施指南:创建交互矩阵最简单的方法是使用电子表格程序,在首行、首列均标上需求标识符;然后如果需求冲突填入1、重叠填入1000,独立则填0;这样只需要用求和的方式来统计出各种数目;通常需求不应超过200条中程在线信息产业培训网中程在线信息产业培训网需求分析最佳实践需求分析最佳实践 8l评估需求风险:对每一项需求或者一系列相关的需求进行风险分析,指出在实现需求过程中可能会发生的问题、这些问题发生的机率及其影响。 主要效益:标识有问题的需求 引入成本:中 应用成本:中 实施指南:应考虑的风险主要有性能风险、安全风险、过程风险、实现技术风险、数据库风险、日程风险、外部风险、稳定风险中程在线信息产业培训网中程在线信息产业培训网Agendal需求分析最佳实践需求分析最佳实践l需求建模最佳实践需求建模最佳实践l用例驱动的需求过程实践用例驱动的需求过程实践需求建模是表述需求的关键手段中程在线信息产业培训网中程在线信息产业培训网讨论讨论l在你的实践中是否建模?l如果有建模,那么主要建哪些模型?有什么体会?l如果没有建模,主要的原因是什么? 中程在线信息产业培训网中程在线信息产业培训网模型是对现实的简化模型是对现实的简化中程在线信息产业培训网中程在线信息产业培训网建模的目的与原则建模的目的与原则l帮助我们按照实际情况或按我们需要的样式对系统进行可视化;提供一种详细说明系统的结构或行为的方法;给出一个指导系统构造的模板;对我们所做出的决策进行文档化 l仅当需要模型时,才构建它 l选择要创建什么模型对如何动手解决问题和如何形成解决方案有着意义深远的影响;每一种模型可以在不同的精度级别上表示;最好的模型是与现实相联系的;单个模型是不充分的。对每个重要的系统最好用一组几乎独立的模型去处理。 中程在线信息产业培训网中程在线信息产业培训网系统建模最佳实践系统建模最佳实践 1l开发互补的模型:在单个模型中包含所有的系统规格说明信息是难以实现的,因为这样的系统将会特别复杂,不可能读懂,因此应该创建多个系统模型。 主要效益:揭示规格说明中的错误和不一致 引入成本:低-中 应用成本:中 实施指南:通常会开发数据处理模型(DFD)、组合模型(E-R)、分类模型(类图)、刺激-响应模型(状态图、活动图)、过程模型等;选择什么模型取决于要说明的信息类型、模型的读者、模型开发者的技能、CASE工具中程在线信息产业培训网中程在线信息产业培训网系统建模最佳实践系统建模最佳实践 2l系统环境建模:为了理解需求,应该就系统环境开发一个或多个模型,应该说明和本系统的接口和其他系统,以使用可能会使用本系统的业务过程。 主要效益:记录必须说明接口的外部系统 引入成本:低 应用成本:低 实施指南:环境模型就是系统的使用语境模型,应包括和本系统直接交互的其他系统、可能和本系统共存并发生交互的系统、系统所在的业务过程。中程在线信息产业培训网中程在线信息产业培训网系统建模最佳实践系统建模最佳实践 3l系统体系结构建模:每次都应该开发系统的体系结构模型,用来说明系统是如何分解成子系统,还应解释子系统之间的通信。 主要效益:有助于划分系统需求 引入成本:低-中 应用成本:低 实施指南:常用的体系结构模型包括客户机-服务器系统、分层系统、基于共享库通信的系统、管道系统中程在线信息产业培训网中程在线信息产业培训网系统建模最佳实践系统建模最佳实践 4l用标准化方法进行系统建模:标准化方法是一种系统分析和设计方法,包括定义、开发和确认系统模型过程中用到的表示法、指南和规则。 主要效益:使用标准的方式书写系统模型 引入成本:中-高 应用成本:中 实施指南:包括过程化(结构化)方法、面向对象方法,其主要包括一组推荐的系统模型和相应的开发该模型的表示法、一组建模规则、一组关于创建高质量系统模型的指南、一份描述、一些报告。中程在线信息产业培训网中程在线信息产业培训网系统建模最佳实践系统建模最佳实践 5l使用数据字典:系统建模中使用的名字都应当记录在数据字典中,它是一份由计算机维护的名字列表以及相关的信息。 主要效益:避免名字重复使用和误解 引入成本:中 应用成本:低 实施指南:进行数据字典的至少应包括模型中实体的名字、名字的别名及变化、实体类型、为何引入模型、针对实体的约束、指向相关实体的链接;数据字典必须由一台服务器维护,开发人员本机要与服务器经常实现同步中程在线信息产业培训网中程在线信息产业培训网系统建模最佳实践系统建模最佳实践 6l记录项目相关人员需求和系统模型之间联系:记录项目相关人员用自然语言描述的需求和说明这个系统的具体模型之间的关系。 主要效益:便列发现受变更影响的需求和模型 引入成本:低 应用成本:中中程在线信息产业培训网中程在线信息产业培训网UML基础基础中程在线信息产业培训网中程在线信息产业培训网UML发展历程发展历程中程在线信息产业培训网中程在线信息产业培训网UML特性与发展现状特性与发展现状lUML是一种Language(语言)lUML是一种Modeling(建模)LanguagelUML是Unified(统一)Modeling Languagel已进入全面应用阶段的事实标准l应用领域正在逐渐扩展,包括嵌入式系统建模、业务建模、流程建模等多个领域l成为“产生式编程”的重要支持技术:MDA、可执行UML等中程在线信息产业培训网中程在线信息产业培训网为什么使用为什么使用UML建模建模lUML是一种统一的、标准化的建模语言 lUML是一种应用面很广泛的建模语言模型的种类模型的用途业务模型对业务过程、工作流、组织的建模需求模型对捕获的需求进行整理和分析的工具,辅助开发人员与用户进行沟通设计模型包含高层设计(架构模型)和详细设计模型,用于统一开发人员、沟通设计信息数据库模型设计数据库的结构、表结构以及与应用系统的交互实现模型用来理清软件的组成、部署方案,为安装与维护人员的工作提供指导中程在线信息产业培训网中程在线信息产业培训网草图和蓝图草图和蓝图l蓝图一般是指采用CASE工具绘制的、正式的、规范的UML模型 l草图则通常是指手工绘制的、规范度较低的在纸张的UML模型 l大胆地绘制草图,尽可能基于草图进行讨论。对于局部的、重要性不高的、共享范围较小的UML模型,直接将草图扫描到电脑存档即可;对于全局的、重要性高的、高度共享的,在草图的基础上用CASE工具绘制成为正式的蓝图,并将其纳入统一的模型管理中 中程在线信息产业培训网中程在线信息产业培训网谁应该建模谁应该建模l业务建模:以领域专家为主,需求分析人员是主力,系统分析员、架构师可参与l需求模型:以需求分析人员为主,系统分析员是主力,领域专家提供指导,架构师和资深开发人员参与l设计模型:高层设计模型以架构师为主,系统分析员从需求方面提供支持,资深开发人员从技术实现方面提供支持。详细设计模型则以资深开发人员为主,架构师提供指导。l实现模型:以资深开发人员(设计人员)为主,架构师提供总体指导。l数据库模型:以数据库开发人员为主,架构师提供指导,资深开发人员(设计人员)予以配合。中程在线信息产业培训网中程在线信息产业培训网常见认识误区常见认识误区lUML是一种方法论lUML就是一堆图形lUML只能够应用于面向对象开发中lUML就是Rose里的符号lUML的学习周期很长、很复杂中程在线信息产业培训网中程在线信息产业培训网UML的组成的组成l基本构造块:也就是建模元素,是模型的主体lUML规则:也就是支配基本构造块如何放在一起的规则l公共机制:运用于整个UML模型中的公共机制、扩展机制中程在线信息产业培训网中程在线信息产业培训网事物构造块事物构造块l事物构造块是对模型中最具有代表性的成分的抽象 l结构事物:UML中的名词,它是模型的静态部分,描述概念或物理元素。l行为事物:UML中的动词,它是模型中的动态部分,是一种跨越时间、空间的行为。l分组事物:UML中的容器,用来组织模型,使模型更加的结构化。l注释事务:UML中的解释部分,和代码中的注释语句一样,是用来描述模型的。中程在线信息产业培训网中程在线信息产业培训网面向对象视角下的世界面向对象视角下的世界l首先建立反应现实世界中不同事物的“构造块”,然后确定“构造块”之间的“关系”,再确定各个构造块的属性和“行为”。这样,在软件系统中就可以模拟现实世界的“构造块”之间的交互与协作 l面向对象软件开发的核心思想就是高内聚(封装)、低耦合(消息驱动),使用简洁的接口拼合简单的部件中程在线信息产业培训网中程在线信息产业培训网结构事物结构事物l类(class)和对象(object)l接口(interface)l主动类(active class)l用例(use case)l协作(collaboration)l构件(component)l节点(node)中程在线信息产业培训网中程在线信息产业培训网类和对象类和对象l类是对一组具有相同属性、相同操作、相同关系和相同语义的对象的抽象 lUML中类是用一个矩形表示的,它包含三个区域,最上面是类名、中间是类的属性、最下面是类的方法 l对象则是类的一个实例 中程在线信息产业培训网中程在线信息产业培训网接口接口l接口是描述某个类或构件的一个服务操作集中程在线信息产业培训网中程在线信息产业培训网主动类主动类l主动类实际上是一种特殊的类。引用它的原因,实际上是在开发中需要有一些类能够起到启动控制活动的作用 l主动类是指其对象至少拥有一个进程或线程,能够启动控制活动的类 中程在线信息产业培训网中程在线信息产业培训网用例与协作用例与协作l用例是著名的大师Ivar Jacobson首先提出的,现已经成为了面向对象软件开发中一个需求分析的最常用工具 l用例实例是在系统中执行的一系列动作,这些动作将生成特定执行者可见的价值结果。一个用例定义一组用例实例。 l协作定义了一个交互,它是由一组共同工作以提供某协作行为的角色和其他元素构成的一个群体。 l对于某个用例的实现就可以表示为一个协作中程在线信息产业培训网中程在线信息产业培训网构件构件l在实际的软件系统中,有许多要比“类”更大的实体,例如一个COM组件、一个DLL文件、一个JavaBeans、一个执行文件等等。为了更好地对在UML模型中对它们进行表示,就引入了构件(也译为组件) l构件是系统设计的一个模块化部分,它隐藏了内部的实现,对外提供了一组外部接口。在系统中满足相同接口的组件可以自由地替换 中程在线信息产业培训网中程在线信息产业培训网节点节点l为了能够有效地对部署的结构进行建模,UML引入了节点这一概念,它可以用来描述实际的PC机、打印机、服务器等软件运行的基础硬件 l节点是运行时存在的物理元素,它表示了一种可计算的资源,通常至少有存储空间和处理能力 中程在线信息产业培训网中程在线信息产业培训网行为事物行为事物l交互(interaction):是在特定语境中,共同完成某个任务的一组对象之间交换的信息集合 l交互的表示法很简单,就是一条有向直线,并在上面标有操作名 l状态机(state machine):是一个对象或交互在生命周期内响应事件所经历的状态序列 l在UML模型中将状态画为一个圆角矩形,并在矩形内写出状态名称及其子状态中程在线信息产业培训网中程在线信息产业培训网分组事物分组事物l对于一个中大型的软件系统而言,通常会包含大量的类,因此也就会存在大量的结构事物、行为事物,为了能够更加有效地对其进行整合,生成或简或繁、或宏观或微观的模型,就需要对其进行分组。在UML中,提供了“包(Package)”来完成这一目标中程在线信息产业培训网中程在线信息产业培训网注释事物注释事物l结构事物是模型的主要构造块,行为事物则是补充了模型中的动态部分,分组事物而是用来更好地组织模型,似乎已经很完整了。而注释事物则是用来锦上添花的,它是用来在UML模型上添加适当的解释部分中程在线信息产业培训网中程在线信息产业培训网关系构造块关系构造块关联关系关联关系l关联(Association)表示两个类之间存在某种语义上的联系。关联关系提供了通信的路径,它是所有关系中最通用、语义最弱的。l在UML中,使用一条实线来表示关联关系 l在关联关系中有两种比较特殊的关系:聚合和组合 l聚合关系:聚合(Aggregation)是一种特殊形式的关联。聚合表示类间的关系是整体与部分的关系 l如果发现“部分”类的存在,是完全依赖于“整体”类的,那么就应该使用“组合”关系来描述中程在线信息产业培训网中程在线信息产业培训网关系构造块关系构造块其他关系其他关系l泛化关系描述了一般事物与该事物中的特殊种类之间的关系,也就是父类与子类之间的关系。l实现关系是用来规定接口和实现接口的类或组件之间的关系。接口是操作的集合,这些操作用于规定类或组件的服务。 l扩展表示将一个构造型附加到一个元类上,使得元类的定义中包括这个构造型。 l有两个元素X、Y,如果修改元素X的定义可能会引起对另一个元素Y的定义的修改,则称元素Y依赖于元素X。 中程在线信息产业培训网中程在线信息产业培训网UML规则规则l命名:也就是为事物、关系和图起名字。和任何语言一样,名字都是一个标识符 l范围:与类的作用域相似,包括所有者作用域和目标作用域两类 l可见性:可见性规则标准表示法Rose属性Rose方法public任一元素,若能访问包容器,就可以访问它+ + protected只有包容器中的元素或包容器的后代才能够看到它# private只有包容器中的元素才能够看得到它- package只有声明在同一个包中的元素才能够看到该元素中程在线信息产业培训网中程在线信息产业培训网公共机制公共机制规格描述规格描述l在图形表示法的每个部分后面都有一个规格描述(也称为详述),它用来对构造块的语法和语义进行文字叙述。这种构思,也就使可视化视图和文字视图的分离 :中程在线信息产业培训网中程在线信息产业培训网公共机制公共机制UML修饰与通用划分修饰与通用划分l在为了更好的表示这些细节,UML中还提供了一些修饰符号,例如不同可视性的符号、用斜体字表示抽象类 lUML通用划分:1)类与对象的划分:类是一种抽象,对象是一个具体的实例 2)接口与实现的分离:接口是一种声明、是一个契约,也是服务的入口;实现则是负责实施接口提供的契约 中程在线信息产业培训网中程在线信息产业培训网UML扩展机制扩展机制l构造型:在实际的建模过程中,可能会需要定义一些特定于某个领域或某个系统的构造块 中程在线信息产业培训网中程在线信息产业培训网UML扩展机制扩展机制l标记值:则是用来为事物添加新特性的。标记值的表示方法是用形如“标记信息”的字符串 l约束:是用来增加新的语义或改变已存在规则的一种机制(自由文本和OCL两种表示法)。约束的表示法和标记值法类似,都是使用花括号括起来的串来表示,不过它是不能够放在元素中的,而是放在相关的元素附近中程在线信息产业培训网中程在线信息产业培训网图名功能备注类图描述类、类的特性以及类之间的关系UML 1原有对象图描述一个时间点上系统中各个对象的一个快照UML 1非正式图复合结构图描述类的运行时刻的分解UML 2.0新增构件图描述构件的结构与连接UML 1原有部署图描述在各个节点上的部署UML 1原有包图描述编译时的层次结构UML中非正式图用例图描述用户与系统如何交互UML 1原有活动图描述过程行为与并行行为UML 1原有状态机图描述事件如何改变对象生命周期UML 1原有顺序图描述对象之间的交互,重点在强调顺序UML 1原有通信图描述对象之间的交互,重点在于连接UML 1中的协作图定时图描述对象之间的交互,重点在于定时UML 2.0 新增交互概观图是一种顺序图与活动图的混合UML 2.0新增UML定义的图定义的图中程在线信息产业培训网中程在线信息产业培训网主要领域视图图结构静态视图类图设计视图复合结构图、协作图、构件图用例视图用例图动态状态视图状态机图活动视图活动图交互视图顺序图、通信图物理部署视图部署图模型管理模型管理视图包图特性描述包图UML视图和图视图和图中程在线信息产业培训网中程在线信息产业培训网UML图形分类图形分类中程在线信息产业培训网中程在线信息产业培训网4+1视图视图中程在线信息产业培训网中程在线信息产业培训网4+1视图视图l用例视图:它是最基本的需求分析模型,是可被最终用户看到的系统行为的用例组成。常用的模型包括用例图、交互图、状态图、活动图等。 l设计视图:又称为逻辑视图,以问题域的语汇组成的类和对象集合,用来描述类、接口、协作。常用的模型包括类图、交互图、状态图、活动图等。l进程视图:形成系统并发与同步机制的线程和进程,也就是将可执行线程和进程作为活动类的建模,可理解为设计视图的一次执行实例。它使用的模型与设计视图类似,区别在于更侧重于主动类。中程在线信息产业培训网中程在线信息产业培训网4+1视图视图l实现视图:对组成基于系统的物理代码的文件和组件进行建模,即装配与发布物理系统的构件和文件。常用的模型包括构件图、交互图、状态图、活动图。l部署视图:包含了形成系统硬件拓扑结构的节点,也就是描述组件是如何物理地部署到一组物理的、可计算节点上的。常用的模型包括部署图、交互图、状态图、活动图。中程在线信息产业培训网中程在线信息产业培训网开发过程开发过程中程在线信息产业培训网中程在线信息产业培训网练习题练习题l 如果你想对一个类的用途进行简要描述,那么应该采用 ?请简要说明原因。A. 标记值 B. 规格描述 C. 注释 D.构造型 l请列举出三个以上UML中的事物构造块。说说适合用来表示“系统向用户提供的功能”的构造块是什么l适用于模型管理的是哪张图?l下图所示的符号表示的是什么?它是关系构造块还是事物构造块? 中程在线信息产业培训网中程在线信息产业培训网类图基础类图基础中程在线信息产业培训网中程在线信息产业培训网理解面向对象思想理解面向对象思想中程在线信息产业培训网中程在线信息产业培训网理解面向对象思想理解面向对象思想l每个对象都扮演了一个角色,并为其它成员提供特定的服务或执行特定的行为。 l在面向对象世界中,行为的启动是通过将“消息”传递给对此行为负责的对象来完成的;同时还将伴随着执行要求附上相关的信息(参数);而收到该消息的对象则会执行相应的“方法”来实现需求 l用类和对象表示现实世界,用消息和方法来模拟现实世界的核心思想中程在线信息产业培训网中程在线信息产业培训网如何用如何用UML表示一个类表示一个类l名称:每个类都有一个惟一的名称,通常采用CamelCase格式表示l属性:是已被命名的类的特性,它描述该类实例中包含的信息 l操作:是类所提供的服务,它可以由类的任何对象请求以影响其行为l属性名和操作名也通常采用CamelCase格式表示,只不过首字母通常为小写。 中程在线信息产业培训网中程在线信息产业培训网如何阅读类图如何阅读类图l先看清有哪些类,然后看看类之间存在的关系,并结合多重性来理解类图的结构特点以及各个属性和方法的含义中程在线信息产业培训网中程在线信息产业培训网读图过程读图过程l读出类:图中共有7个类,Order、OrderItem、Customer、Consignee、DeliverOrder、Peddlery、Prodcutl读出关系:从图中关系最复杂(也就是线最密集)的类开始阅读,本图中最复杂的就是Order类。1)OrderItem和Order之间是组合关系,根据箭头的方向可知Order包含了OrderItem。2)Order类和Customer、Consignee、DeliverOrder是关联关系。也就是说,一个订单和客户、收货人、送货单是相关的。中程在线信息产业培训网中程在线信息产业培训网读图过程读图过程l多重性:用来说明关联的两个类之间的数量关系源类及多重性目标类及多重性分析Customer(1)Order(0n)订单是属于某个客户的,网站的客户可以有0个或多个订单Order(1)Consignee(1)每个订单只能够有一个收货人Order(1)OrderItem(1n)订单是由订单项组成的,至少要有一个订单项,最多可有n个Order(1)DeliverOrder(1n)一个订单有一个或多个送货单说明:系统根据订单项的产品所属的商户,将其分发给商户,拆成了多个送货单!DeliverOrder(1)OrderItem(1n)一张送货单对应订单中的一到多个订单项DeliverOrder(1)Consignee(1)每张送货单都对应着一个收货人Peddlery(1)DeliverOrder(0n)每个商户可以有相关的0个或多个送货单OrderItem(1)Product(1)每个订单项中都包含着唯一的一个产品Peddlery(1)Prodcut(0n)产品是属于某个商户的,可注册0到多个产品中程在线信息产业培训网中程在线信息产业培训网读图过程读图过程理解方法和图理解方法和图lOrder类,有两个方法:dispatch()和close(),从名字中可以猜出它们分别实现“分拆订单生成送货单”和“完成订单”。而在DeliveOrder()类中则有一个Close()方法,同理它应该表示“完成送货”。而在OrderItem中有一个stateChange()方法和deliverState,不难猜出它就是用来改变其“是否交给收货人”标志位的中程在线信息产业培训网中程在线信息产业培训网读图过程读图过程理解方法和图理解方法和图l先调用Order的dispatch()方法,它将根据其包含的OrderItem中产品信息,来按供应商户分拆成若干个DeliverOrder。商户登录系统后就可以获取其DeliverOrder,并在执行完后调用close()方法。这时,就将调用OrderItem的stateChange()方法来改为其状态。同时再调用Order的close()方法,判断该Order的所有的OrderItem是否都已经送到了,如果是就将其真正close()掉 中程在线信息产业培训网中程在线信息产业培训网使用了更多建模元素的类图使用了更多建模元素的类图中程在线信息产业培训网中程在线信息产业培训网辅助建模符号辅助建模符号l导航箭号:类的实例之间只能沿着导航箭头的方向传递 ,在Order中可以获取其相应的Consignee,而从Consignee中是无法了解与其相关的Order的 l角色名称:Customer端有一个“+Owner”字符串 ,这表示Customer扮演的角色是Owner,也能对关联进行命名中程在线信息产业培训网中程在线信息产业培训网辅助建模符号辅助建模符号l导出属性:是指可以根据其他值计算出来的特性,这种属性应在其名称前加上一个“/”符号。l限定符:在Order和OrderItem之间的组合关系中,OrderItem这端多了个方框,写着“ProductId”。在UML中称为限定符,存在限定符的关联称为受限关联。它用来表示某种限定关系。在本例中说明:对于一张订单,每一种产品只能用一个订单项 l约束:用来说明规则,xorl职责:在类的属性栏中添加注释行表示,或增加了一个新的分栏中程在线信息产业培训网中程在线信息产业培训网对象约束语言对象约束语言环境与约束:每个OCL表达式都必须是针对某个元素的,因此在OCL表达式前必须说明它针对元素(这就称为环境) 1)“context Object inv:”,其中Object是OCL表达式针对的建模元素名称;2)“ Object ”,其中Object是OCL表达式针对的建模元素名称。当声明了环境之后,就可以用self来引用它的变量 中程在线信息产业培训网中程在线信息产业培训网对象约束语言对象约束语言l子集约束:l一致性:一个客户拥有零个或多个合同,发票是基于某个合同的,而一个客户将收到零张或多张发票 Invoice:self.contract.customer=self.customer中程在线信息产业培训网中程在线信息产业培训网对象约束语言对象约束语言l异或关系:l规定的取值范围: Rectangle:length0 and width0 中程在线信息产业培训网中程在线信息产业培训网用类图表示软件系统模型用类图表示软件系统模型l领域模型是从面向对象视角看待现实世界的结果,也就是通过类图描述现实世界中各种事物的关系。l分析模型和领域模型很相近,分析模型主要是针对软件系统,领域模型则更多偏重对业务领域的分析 l设计模型则是在分析模型的基础上添加设计元素的结果。设计模型中的类的属性集更趋完善。中程在线信息产业培训网中程在线信息产业培训网用类图表示数据库逻辑模型用类图表示数据库逻辑模型l从某种意义上说UML中的类图是E-R图的超集,E-R图只针对存储的数据,而类图则在些基础上,增加了行为建模的能力。在使用类图来表示E-R模型时,要注意遵循以下策略 l将表示E-R模型的类,用UML的标准构造型“persistent”来表示; l展开类的结构性细节,并加强关联和多重性分析; l尽量消除循环关联、n-元关联 中程在线信息产业培训网中程在线信息产业培训网最常见的域建模错误最常见的域建模错误l10.立即给关联指定多重度(multiplicity),确保每个关联都有明确的多重度。l9.对名词和动词做过度的分析,而背离初衷。l8.不对用例和时序图进行研究,就将操作分配给类。l7.对象和类的通用程度越高,在其他项目中重用它们的可能性就越大。l6.对于每个“一部分(part-of)”关联,就使用聚集还是组合(composition)而争论不休。中程在线信息产业培训网中程在线信息产业培训网最常见的域建模错误最常见的域建模错误l5.未对问题空间进行建模之前,就假定一种具体的实现策略。l4.将类命名为难以理解的名称cPortMgrIntf),而不是直观的名称(如PortfolioManager)。l3. 直接进入到实现结构,如友元关系和参数化类。l2. 在域类和关系型数据库表之间建立一对一的映射。l1.过早地执行“模式化”,这将导致根据同用户问题毫无关系的模式创建解决方案。中程在线信息产业培训网中程在线信息产业培训网练习一练习一l下图是一个仓库管理系统的类模型局部,其中IncomeOrder是指入库单,OrderItem是指入库中的每一项,Product则是产品信息。请指出模型中的错误,说明原因并改正错误 中程在线信息产业培训网中程在线信息产业培训网练习二练习二l在描述“税务审批服务申请”时,它主要包含哪几个方面的内容?它有几种不同的类别?l对于每一条流转记录,可能与几个“税务审批服务申请”相关?与几个处理人相关?中程在线信息产业培训网中程在线信息产业培训网练习三练习三3过早考虑实现阶段的内容中程在线信息产业培训网中程在线信息产业培训网练习四练习四48LoginManager4.名字不直观8.太早定义类 的操作中程在线信息产业培训网中程在线信息产业培训网练习五练习五4564.名字不直观5.指定实现方 式EJB6.过早考虑聚 合或组合Shopping Cart中程在线信息产业培训网中程在线信息产业培训网练习六练习六28102.与数据库表 一一对应8.过早分配类 的操作10关联多重性Order中程在线信息产业培训网中程在线信息产业培训网练习七练习七1251.使用了设计模 式:Proxy;2.price、quan publisher可能 成为关联类;5.用了Java中 的Vector中程在线信息产业培训网中程在线信息产业培训网练习七练习七中程在线信息产业培训网中程在线信息产业培训网练习八练习八585.使用了构造 型8.过早分配类 的操作Candldate OrderCustomer Review中程在线信息产业培训网中程在线信息产业培训网练习九:根据下面描述绘制类图练习九:根据下面描述绘制类图 这是一个“碟片出租店”使用的系统,它将用于计算每一位顾客的消费金额并打印报表。操作者告诉程序:顾客租了哪些影片、租期多长,程序便根据租凭时间和影片类型算出费用。 影片分三类:普通片、儿童片和新片。除了计算费用,还要为常客计算机点数;点数会随着“租片种类是否为新片”而有所不同。中程在线信息产业培训网中程在线信息产业培训网练习九解答练习九解答 1 这是一个“碟片出租店”使用的程序,它将用于计算每一位顾客的消费金额并打印报表。操作者告诉程序:顾客租了哪些影片、租期多长,程序便根据租期和影片类型算出其消费金额。 影片分三类:普通片、儿童片和新片。除了计算消费金额,还要为常客计算累积点数;累积点数会随着“租片种类是否为新片”而有所不同。中程在线信息产业培训网中程在线信息产业培训网练习九解答练习九解答 2 这是一个“碟片出租店”使用的程序,它将用于计算每一位顾客的消费金额并打印报表。操作者告诉程序:顾客租了哪些影片、租期多长,程序便根据租期和影片类型算出其消费金额。 影片分三类:普通片、儿童片和新片。除了计算消费金额,还要为常客计算累积点数;累积点数会随着“租片种类是否为新片”而有所不同。碟片出租店程序消费金额报表操作者顾客影片租期影片类型普通片儿童片新片累积点数中程在线信息产业培训网中程在线信息产业培训网练习九解答练习九解答 3碟片出租店程序消费金额 报表操作者 顾客影片租期影片类型普通片儿童片新片累积点数在系统外系统本身应该是每次“交易”属性类!在系统外在系统外,但需记录,类!类!属性影片的属性类!类!类!顾客的属性报表顾客影片普通片儿童片交易交易新片中程在线信息产业培训网中程在线信息产业培训网练习九解答练习九解答 4中程在线信息产业培训网中程在线信息产业培训网练习十练习十l下图是小张绘制的一张关于网上商城用户管理的领域类图,但其中存在一些问题,请指出错误并说明理由 中程在线信息产业培训网中程在线信息产业培训网讨论讨论l类图有什么用?l用类图对领域进行建模时,主要的困难在于哪些方面?中程在线信息产业培训网中程在线信息产业培训网交互图基础交互图基础中程在线信息产业培训网中程在线信息产业培训网交互的概念交互的概念l一次交互就是指在特定语境中,为了实现某一个目标,而在一组对象之间进行交换的一组消息所表示的行为 l在大多数的情况下,消息通常是指启动一个操作,或发送一个信号,以及创建或销毁一个对象 l由一条有方向的直线,加上名称、参数(可选)和顺序组成 中程在线信息产业培训网中程在线信息产业培训网四种交互图四种交互图l顺序图:强调消息时间顺序。首先把参与交互的对象放在图的上方,沿X轴方向排列。通常把发起交互的对象放在左边,较下级对象依次放在右边。然后,把这些对象发送和接收的消息沿Y轴方向按时间顺序从上到下放置。读者提供了控制流随着时间推移的清晰的可视化轨迹。l协作图:在UML 2.0中称为通信图,强调的是参加交互的对象的组织。首先将参加交互的对象作为图的顶点,然后用这些对象之间的边线表示为图的边,再使用对象发送和接收的消息来修饰这些边。为读者提供了在协作对象结构组织的语境中观察控制流的一个清晰的可视化轨迹 中程在线信息产业培训网中程在线信息产业培训网四种交互图四种交互图l定时图:采用了一种带数字刻度的时间轴来精确地描述消息的顺序,而不是像顺序图那样只是指定消息的相对顺序。而且它还允许可视化地表示每条生命线的状态变化,当需要对实时事件进行定义时,定时图就可以很好地满足 l交互概述图:是交互图和活动图的混合物。你可以把交互概述图想像为活动图,只不过其中的活动被换成了一些小型顺序图;也可以把其想像为利用标明控制流的活动图分解过的顺序图 中程在线信息产业培训网中程在线信息产业培训网阅读顺序图阅读顺序图中程在线信息产业培训网中程在线信息产业培训网顺序图的主要元素顺序图的主要元素l对象与角色:最顶上一排矩形框。在交互图中,参与交互的对象既可以是具体的事物,又可以是原型化的事物。作为具体的事物,一个对象代表现实世界中的某个东西。例如,aOrder作为类Order的一个实例,可以代表一个特定的订单;而如果作为一个原型化的事件,则aOrder可以代表类Order的任何一个实例。l生命线与控制焦点:每个对象都有自己的生命线,对象生命线是一条垂直的虚线,用来表示一个对象在一段时间内存在。中程在线信息产业培训网中程在线信息产业培训网顺序图的主要元素顺序图的主要元素l消息:用来描述对象之间所进行的通信的,该信息带有对将要发生的活动的期望。当传送一个消息时,它所引起的动用是一个通过对计算过程的抽象而得到的可执行语句。l消息分为五种:调用、返回、发送、创建和销毁l调用:表示调用某个对象一个操作 中程在线信息产业培训网中程在线信息产业培训网顺序图的主要元素顺序图的主要元素l返回:表示被调用的对象,向调用者返回一个值l发送:发送是指向对象发送一个信号,和调用不同,它是一种事件,用来表示个实例间进行通信的异步激发机制 l创建和销毁:就是创建和销毁一个对象。中程在线信息产业培训网中程在线信息产业培训网顺序图的主要元素顺序图的主要元素l顺序编号:整个消息的传递过程就形成了一个完整的序列,因此通过在每个消息的前面加上一个用冒号隔开的顺序号来表示其顺序。除了顺序编号之外,还可以采用嵌套方案:中程在线信息产业培训网中程在线信息产业培训网顺序图的主要元素顺序图的主要元素l循环与分支中程在线信息产业培训网中程在线信息产业培训网读图小结读图小结l在dispatchForm(分发窗体)中,对于某个已支付的Order进行分发时,就会调用该订单(一个Order类的实例对象aOrder)的dispatch()方法。ldispatch()方法将逐个调用该Order对应的所有OrderItem对象的getPeddleryId()方法还获取供应商ID(PeddleryId),而OrderItem对象则是通过其所对应的Product对象来的getPeddleryId()方法来获取供应商ID。中程在线信息产业培训网中程在线信息产业培训网读图小结读图小结l当Order的实例对象aOrder得到返回的PeddleryId后,根据该值判断是否已经有相对应的DeliverOrder对象,如果没有就创建它(调用create(PeddleryId)),然后再将对应的Product添加到这个DeliverOrder对象中。否则就直接添加到相应的DeliverOrder对象中。中程在线信息产业培训网中程在线信息产业培训网阅读协作阅读协作(通信通信)图图中程在线信息产业培训网中程在线信息产业培训网协作图的主要元素协作图的主要元素l链:连接器,是用来表示对象之间的语义连接,一般而言,链是关联的一个实例(包括association、self、global、local等)。不过在UML 2中已经开始弱化它们的使用,因此除非必要,无需过多地考虑它们 l消息编号:消息的编号有两种,一种是无层次编号,它简单直观;另一种是嵌套的编号,它更易于表示消息的包含关系l迭代标记:用*号表示,表示循环,通常还有迭代表达式,用来说明循环规则中程在线信息产业培训网中程在线信息产业培训网协作图的主要元素协作图的主要元素l监护条件:通常是用来表示分支的,也就是表示“如果条件为true,才发送消息” l在通信图中使用监护条件一定要有所限制,通常应只列出主要的监护条件,否则会影响其阅读。如果需要,尽可能还是通过顺序图来表示 中程在线信息产业培训网中程在线信息产业培训网交互建模的准备工作交互建模的准备工作l首先根据自己的喜好和实际的表现需要来选择顺序图或通信图。不过由于它们在语义上是等价的,因此可以绘制出一种,再通过建模工具来自动转换成另一种图 l分析模型中的交互图彻重于分析类的职责分配和交互流程,而设计模型中的交互图则彻重于设计类的引入和实际方法的调用与流程控制 l先确定参与交互的对象、对象之间的关系(通信图),然后确定对象间的消息交互流程(用同步调用、异步消息、返回消息表示),并利用交互片断(顺序图)或迭代标记及监护条件来表示循环和分支结构中程在线信息产业培训网中程在线信息产业培训网交互建模交互建模Robustness分析分析lRobustness分析不是UML模型的一部分,它是一个强大的草图工具,是介于分析和设计之间的一种有效工具l在Robustness分析中,将应用边界类、控制类和实体类l从一个用例中抽取三类对象的方法:中程在线信息产业培训网中程在线信息产业培训网Robustness分析分析从事件流开始从事件流开始中程在线信息产业培训网中程在线信息产业培训网Robustness分析:寻找边界对象分析:寻找边界对象l图书管理员向系统发出“新增书籍信息”请求主窗口、“新增书籍信息”按钮l系统要求图书管理员选择要新增的书籍是计算机类还是非计算机类书籍类别列表框。l图书管理员做出选择后,显示相应界面,让图书管理员输入信息,并自动根据书号规则生成书号“新书信息录入”窗口及辅助的“提交”按钮中程在线信息产业培训网中程在线信息产业培训网寻找控制对象与实体对象寻找控制对象与实体对象l根据事件流中的步骤5,以及扩展路径的描述,就可以在原图上增加相应的控制对象,得到更进一步的Robustness分析图中程在线信息产业培训网中程在线信息产业培训网寻找控制对象与实体对象寻找控制对象与实体对象l新添两个逻辑:一是基本事件流中的步骤2、3要求根据用户选择的类别,自动获得书号;二是当书名重复性检查没有通过(有重名),则应返回要求其重输 中程在线信息产业培训网中程在线信息产业培训网构建交互模型构建交互模型中程在线信息产业培训网中程在线信息产业培训网转成通信图转成通信图中程在线信息产业培训网中程在线信息产业培训网交互模型的应用交互模型的应用l用例建模的目标是从使用者的角度来对系统进行梳理,Robustness分析则是对使用者的使用场景(一个用例的实例)进行的具体的分析,从而理解了系统需要做什么,并找出更多与解决方案相关的设计类。但更重要的是完整地捕获出这些类的行为、责任以及它们之间的交互,而这些正是系统运行的机制。而交互建模,正是要通过寻找对象之间的交互关系,从而进行“行为分配”。 中程在线信息产业培训网中程在线信息产业培训网交互模型的类型与演变交互模型的类型与演变中程在线信息产业培训网中程在线信息产业培训网分析阶段的交互模型分析阶段的交互模型l针对用例图中的每个用例,并结合领域模型中的类,寻找分析类,并通过Robustness分析来理清业务逻辑流程,再用交互模型将其确定下来。同时这个阶段,不断地丰富分析模型,将新找到的类添加到类图中去l在分析阶段我们主要关注于区分出边界对象、实体对象和控制对象,暂时不要考虑其具体的实现类 l对于较复杂的用例而言,我们可以按上述的流程逐渐地进行分析、设计、实施;但对于比较简单的用例而言,也是可以直接从用例描述中导出设计阶段交互模型中程在线信息产业培训网中程在线信息产业培训网分析阶段的交互模型之后分析阶段的交互模型之后l引入基础类:各种库函数、框架l进行质量评审:1)低耦合2)高内聚3)效率4)完整性5)简单性l优化类设计:设计模式与重构中程在线信息产业培训网中程在线信息产业培训网设计阶段的交互模型设计阶段的交互模型l当在分析模型的基础上,通过引入基础类、优化类设计之后,必然会获得新的类模型(设计模型),因此就可能需要基于新引入的“设计类”来更新交互模型,以获得与实际代码相吻合的模型 l是否建立设计阶段的交互模型,也是取决于需要的。通常只有约一半的用例可能需要精化交互模型;如果在一般的MIS应用系统中,这个比例可能会更低 中程在线信息产业培训网中程在线信息产业培训网交互模型的建模要点交互模型的建模要点l创建交互图时,应该遵循以下策略:给出一个能表达其目的的名称;通过修改元素的布局,尽量避免交叉线的存在;可以通过注解和颜色作为可视化提示,以突出图形中的重要特性;尽量少用分支,对于分支很多的场景,可以考虑用活动图来补充 l切记“尽可能保持简单” 中程在线信息产业培训网中程在线信息产业培训网状态图基础状态图基础中程在线信息产业培训网中程在线信息产业培训网状态及状态表示法状态及状态表示法l状态是指在对象生命周期中满足某些条件、执行某些活动或等待某些事件的一个条件和状况 l一个状态通常包括名称、进入/退出活动、内部转换、子状态和延迟事件等五个部分组成 中程在线信息产业培训网中程在线信息产业培训网阅读简单状态图阅读简单状态图l最为核心的元素无外乎是两个:一个是用圆角矩形表示的状态(初态和终态例外);另一个则是在状态之间的、包含一些文字描述的有向箭头线,这些箭头线称为转换 中程在线信息产业培训网中程在线信息产业培训网转换的五要素转换的五要素l源状态:即受转换影响的状态 l目标状态:当转换完成后对象的状态 l触发事件:用来为转换定义一个事件,包括调用、改变、信号、时间四类事件l监护条件:布尔表达式,决定是否激活转换l动作:转换激活时的操作中程在线信息产业培训网中程在线信息产业培训网读图小结读图小结l与状态off相关的转换有两个,其触发事件都是turnOn,只不过其监护条件不同。如果对象收到事件turnOn,那么将判断壶中是否有水;如果没水,则仍然处于off状态;如果有水则转为on状态,并执行“烧水”动作 l而与状态on相关的转换也有两个,如果“水开了”就执行turnOff,关掉开关;如果烧坏了,就进入了终态了 中程在线信息产业培训网中程在线信息产业培训网复杂转换复杂转换转换类型描述语法外部转换对事件做出响应,引起状态变化或自身转换,同时引发一个特定动作,如果离开或进入状态将引发进入转换、离开转换事件(参数)监护条件/动作内部转换对事件做出响应,并执行一个特定的活动,但并不引起状态变化或进入转换、离开转换事件(参数)监护条件/动作进入转换当进入某一状态时,执行相应活动entry/活动退出转换当离开某一状态时,执行相应活动exit/活动中程在线信息产业培训网中程在线信息产业培训网阅读带复杂转换的状态图阅读带复杂转换的状态图中程在线信息产业培训网中程在线信息产业培训网各种转换的区别各种转换的区别l进入和退出转换:当进入一个状态时,执行某个动作;或当退出某个状态时,执行什么动作。这时就可以使用进入和退出转换来表示l内部转换:用来处理一些不离开该状态的事件 中程在线信息产业培训网中程在线信息产业培训网活动与延迟事件活动与延迟事件l活动:当对象处于一个状态时,它一般是空闲的,在等待一个事件的发生。但是某些时间,你可能希望描述个正在进行的活动。在处于一个状态的同时,对象做着某些工作,并一直继续到被某个事件中断。l延迟事件:延迟事件是一种特殊的事件,它是指该事件不会触发状态的转换,当对象处于该状态时事件不会丢失,但会被延迟执行。例如,当E-mail程序中正在发送第一封邮件时,用户下达发送第二封邮件执令就会被延迟,但第一封邮件发送完成后,这封邮件就会被发送。这种事件就属于延迟事件。 中程在线信息产业培训网中程在线信息产业培训网顺序复合状态图顺序复合状态图中程在线信息产业培训网中程在线信息产业培训网并发复合状态图并发复合状态图中程在线信息产业培训网中程在线信息产业培训网历史历史l“一个圆圈中加上字母H”,用来表示历史状态的。它的含义是:当从状态“结账”和“显示购物车”返回子状态“显示索引信息”时,将进入的是离开时的历史状态。也就是说,转到购物车或结账区之后,再回到“浏览目录”的页面时,其中的内容是不变的,仍然保留原来的信息。 中程在线信息产业培训网中程在线信息产业培训网状态图应用说明状态图应用说明l对对象生命周期建模:主要描述对象能够响应的事件、对这些事件的响以及过去对当前行为的影响 l对反应型对象建模:这个对象可能处于的稳定状态、从一个状态到另一个状态之间的转换所需的触发事件,以及每个状态改变时发生的动作 l状态机图既可以用来表示一个业务领域的知识,也可以用来描述设计阶段对象的状态变迁。 中程在线信息产业培训网中程在线信息产业培训网讨论讨论l状态图有什么用?l什么情况下使用状态图?l哪种项目应用状态图的情况会比较多?中程在线信息产业培训网中程在线信息产业培训网活动图基础活动图基础中程在线信息产业培训网中程在线信息产业培训网活动图概述活动图概述l活动图是一种表述过程机理、业务过程以及工作流的技术。它可以用来对业务过程、工作流建模,也可以对用例实现甚至是程序实现来建模。因此,它的作用和传统的“流程图”是有着很深的渊源,也十分的相似。不过它与流程图的最主要区别在于,活动图能够支持并行的行为 l在UML的各个版本中,活动图的改变可谓最大,每次UML标准更新时,都对活动图进行了修订。对于UML 2.0而言,最大的改变莫过于去除了“活动图是状态图的一种特例”这一规定中程在线信息产业培训网中程在线信息产业培训网阅读简单活动图阅读简单活动图中程在线信息产业培训网中程在线信息产业培训网活动图主要元素活动图主要元素l初始节点和活动终点:用一个实心圆表示初始节点,用一个圆圈内加一个实心圆来表示活动终点l活动节点:是活动图中最主要的元素之一,它用来表示一个活动 l转换:当一个活动结束时,控制流就会马上传递给下一个活动节点,在活动图中称之为“转换”,用一条带箭头的直线来表示 中程在线信息产业培训网中程在线信息产业培训网活动图主要元素活动图主要元素l分支与监护条件:分支是用菱形表示的,它有一个进入转换(箭头从外指向分支符号),一个或多个离开转换(箭头从分支符号指向外)。而每个离开转换上都会有一个监护条件,用来表示满足什么条件的时候执行该转换。 l分岔与汇合:中程在线信息产业培训网中程在线信息产业培训网带泳道的活动图带泳道的活动图中程在线信息产业培训网中程在线信息产业培训网带对象流的活动图带对象流的活动图中程在线信息产业培训网中程在线信息产业培训网复杂活动图复杂活动图l辅助活动图l汇合描述:当汇合的所有入流均到点汇合点时,就将执行汇合点指向的活动节点。但是有些时候,你希望对其做一些约束,这时就可以借助汇合描述来完成。汇合描述实际上是一个约束,其格式就是“约束条件”。 中程在线信息产业培训网中程在线信息产业培训网复杂活动图复杂活动图l发送信号与接收信号中程在线信息产业培训网中程在线信息产业培训网复杂活动图复杂活动图l引脚:表示活动节点的相应参数 l扩展区: 中程在线信息产业培训网中程在线信息产业培训网活动图应用说明活动图应用说明l对工作流建模:用于业务建模的时候,每一条泳道表示一个职责单位,该图能够有效地体现出所有职责单位之间的工作职责,业务范围以及之间的交互关系、信息流程 l建模时应遵循以下策略:l为工作流建立一个焦点,除非你所涉及的系统很小,否则不可能在一张图中显示出系统中所有的控制流。l选择对全部工作流中的一部分有高层职责的业务对象,并为每个重要的业务对象创建一条泳道。中程在线信息产业培训网中程在线信息产业培训网活动图应用说明活动图应用说明l识别工作流初始节点的前置条件和活动终点的后置条件,这可有效地实现对工作流的边界进行建模。l从该工作流的初始节点开始,说明随时间发生的动作和活动,并在活动图中把它们表示成活动节点。l将复杂的活动或多次出现的活动集合归到一个活动节点,并通过辅助活动图或子活动图来表示它们。l找出连接这些活动节点的转换,首先从工作流的顺序开始,然后考虑分支,接着再考虑分岔和汇合。l如果工作流中涉及重要的对象,则也可以将它们加入到活动图中。l若工作流中有多次启用的,则可采用展开区表示。中程在线信息产业培训网中程在线信息产业培训网活动图应用说明活动图应用说明l对操作建模:每一个对象占据一个泳道,而活动则是该对象的成员方法 l建模时应遵循以下策略:l收集操作所涉及的抽象概念,包括操作的参数、返回类型、所属类的属性以及某些邻近的类。l识别该操作的初始节点的前置条件和活动终点的后置条件。也要识别在操作执行过程中必须保持的信息。l从该操作的初始节点开始,说明随着时间发生的活动,并在活动图中将它们表示为活动节点。l如果需要,使用分支来说明条件语句及循环语句。l仅当这个操作属于一个主动类时,才在必要时用分岔和汇合来说明并行的控制流程。中程在线信息产业培训网中程在线信息产业培训网练习练习l有一个表示某公司销售过程的一张活动图,请阅读并说明该图所表示的含义l假设订单的接收与关闭是由销售人员负责,开票收款是由财务人员负责,准备货物是由仓管负责。请将其修改成为带泳道的活动图,以体现这种分工 中程在线信息产业培训网中程在线信息产业培训网练习练习中程在线信息产业培训网中程在线信息产业培训网练习练习l假设,我们希望在活动图中体现出:仓管人员是根据“订单”来准备货物的,因此销售人员在收到订单后,必须将订单传给仓管人员。应该采用什么机制?请直接修改活动图。l 在公司运转一段时间后,财务人员对该流程提出了置疑,反应说收款工作经常滞后,客户总是在收到货物后的很长时间才付款。因此必须加以改进。请提出一个合理的修改意见,并用活动图表示出来。 中程在线信息产业培训网中程在线信息产业培训网练习练习中程在线信息产业培训网中程在线信息产业培训网练习练习中程在线信息产业培训网中程在线信息产业培训网讨论讨论l活动图什么时候用?l一张活动图通常的范围是怎么界定的?中程在线信息产业培训网中程在线信息产业培训网构件图基础构件图基础中程在线信息产业培训网中程在线信息产业培训网构件的类型构件的类型l实施构件:这类构件是构成一个可执行系统必要和充分的构件,例如动态链接库、可执行文件,另外还包括如COM+、CORBA及企业级Java Beans、动态Web页面也属于实施构件的一部分。l工作产品构件:这类构件主要是开发过程的产物,包括创建实施构件的源代码文件及数据文件。这些构件并不是直接地参与可执行系统,而且用来产生可执行系统的中间工作产品。l执行构件:作为一个正在执行的系统的结果而被创建的,例如由DLL实例化形成的COM+对象。中程在线信息产业培训网中程在线信息产业培训网构件及构件接口表示法构件及构件接口表示法中程在线信息产业培训网中程在线信息产业培训网阅读基本构件图阅读基本构件图中程在线信息产业培训网中程在线信息产业培训网阅读嵌套构件图阅读嵌套构件图中程在线信息产业培训网中程在线信息产业培训网构件图应用说明构件图应用说明l对可执行程序的结构建模1)首先识别你想建模的构件集合2)考虑集合中各构件的不同类型3)对这个集合中的每个构件,分析它们之的关系中程在线信息产业培训网中程在线信息产业培训网构件图应用说明构件图应用说明l对源代码建模1)识别出感兴趣的相关源代码文件的集合,并把它们建模为构件;2)对于较大的系统,利用包来进行分组;3)通过约束来表示源代码的版本号、作者和最后修改日期等信息;4)用依赖关系来表示这些文件间编译的依赖关系。 中程在线信息产业培训网中程在线信息产业培训网部署图基础部署图基础中程在线信息产业培训网中程在线信息产业培训网阅读基本部署图阅读基本部署图中程在线信息产业培训网中程在线信息产业培训网部署图主要元素部署图主要元素l节点:它代表一个运行时的计算资源,例如一台计算机、一个工作站等其它设备 l节点的概念和构件有许多相同之处,例如二者有多名称,都可以参与依赖、泛化和关联关系,都可以被嵌套,都可以有实例,都可以参与交互。但它们之间也存在明显的区别:构件是参与系统执行的事物,而节点是执行构件的事物;构件表示逻辑元素的物理打包,而节点表示构件的物理部署。l本图中建模了四个节点:B/S客户端、C/S客户端、IIS服务器和数据库服务器 中程在线信息产业培训网中程在线信息产业培训网部署图主要元素部署图主要元素l连接:节点之间最常见的关系就是关联关系(用一根实线表示)。为了更好地表示两个节点之间的关系,我们可以通过“约束”来对连接进行描述。 源节点目标节点约束含义B/S客户端IIS服务器HTTP+Network网络连接,使用HTTP协议C/S客户端IIS服务器HTTP+SOAP+Network网连接,通过Web Service访问服务IIS服务器数据库服务器ADO.NET.NET提供的数据库访问解决方案中程在线信息产业培训网中程在线信息产业培训网部署图补充元素部署图补充元素l处理器(process):具有处理能力的节点,即可以执行构件。l设备(device):没有处理能力的节点,至少是不关心其处理能力的节点。例如打印机、IC卡读写器,如果我们的系统不考虑它们内部的芯片,就可以建模为设备。l节点属性和操作:可以为一个节点提供处理器速度、内存容量、网卡数量等属性,可以为其提供启动、关机等操作 中程在线信息产业培训网中程在线信息产业培训网部署图补充元素部署图补充元素l自定义构造型图标中程在线信息产业培训网中程在线信息产业培训网部署图应用说明部署图应用说明l部署图是一种分两阶段演化的,最初的部署图是在设计时,作为确定最终硬件构架过程的一部分而创建的,然后逐步地对它进行精化,从而得到一个或多个实例形式的部署图。 l设计阶段:焦点聚焦于节点或节点实例,以及它们之间的连接 l实现阶段:焦点聚集于将物理构件分配给节点 中程在线信息产业培训网中程在线信息产业培训网部署图适用领域部署图适用领域l如果你开发的应用系统是一个单机程序,那么部署图并不能够给你带来什么好处 l嵌入式系统建模:对于嵌入式系统,部署图可以使硬件工程师和软件开发者之间实现更好的交流 l客户机/服务器和分布式系统建模中程在线信息产业培训网中程在线信息产业培训网Agendal需求分析最佳实践需求分析最佳实践l需求建模最佳实践需求建模最佳实践l用例驱动的需求过程实践用例驱动的需求过程实践现代需求工程最佳实践中程在线信息产业培训网中程在线信息产业培训网用例驱动的需求实践:概述用例驱动的需求实践:概述需 要特 性软件需求问题域问题域解决方案域解决方案域用例补充规约中程在线信息产业培训网中程在线信息产业培训网关于用例分析技术关于用例分析技术l用例分析的创建源于实践,在Ivar Jacobson在爱立信公司研发AXE(电话交换机)时总结而成的l用例的概念确定于1986年,所以它不应该当作一种新技术(有人认为其是一个正处于临床实验阶段的新药)l许多人是在学习UML时,接触到用例,并且产生了一些误解,误把用例图当作了用例分析的全部内容l用例分析技术已经广泛地应用于许多软件开发组织的实践,收效甚佳,成为了软件需求最佳实践之一中程在线信息产业培训网中程在线信息产业培训网用例模型的运用方法用例模型的运用方法l增量开发的用例模型l模型的无缝转换中程在线信息产业培训网中程在线信息产业培训网用例模型建模要点用例模型建模要点l构建结构良好的用例:1)为系统和部分系统中单个的、可标识和合理的原子行为命名;2)将公共的行为抽取出来,放到一个被包含用例中,再将它include进来; 3)对于变化部分,将其抽取出来,放到一个扩展用例(用extent连接)中;4)清晰地描述事件流,使得读者能够轻而易举地理解 l构建结构良好的用例图:摆放元素时,应该避免交叉线的出现 ;对于语义上接近的行为和角色,最好使它们在物理上也更加接近; l根据系统实际情况控制粒度 中程在线信息产业培训网中程在线信息产业培训网核心元素:参与者核心元素:参与者l定义:在系统之外,透过系统边界与系统进行有意义交互的任何事物边边界界类:顾客中程在线信息产业培训网中程在线信息产业培训网边界是职责边界,而非物理边界边界是职责边界,而非物理边界中程在线信息产业培训网中程在线信息产业培训网谁是机票预订系统的执行者谁是机票预订系统的执行者中程在线信息产业培训网中程在线信息产业培训网它们都可以是执行者它们都可以是执行者用户维护人员时间系统系统其他系统中程在线信息产业培训网中程在线信息产业培训网参与者:总结参与者:总结l参与者是为了完成一个事件而与系统交互的实体l参与者不仅可以由人承担,还可以是其它系统、硬件设备、甚至是时钟 l其它系统:当你的系统需要与其它系统交互时,如在开发ATM柜员机系统时,银行后台系统就是一个参与者 l硬件设备:如果你的系统需要与硬件设备交互时,如在开发IC卡门禁系统时,IC卡读写器就是一个参与者 l时钟:当你的系统需要定时触发时,时钟就是一个参与者,如在开发Foxmail中的“定时自动接收”功能时,就需要引入时钟作为参与者 中程在线信息产业培训网中程在线信息产业培训网核心元素:用例核心元素:用例lIvar Jacobson在RUP中为用例做出了以下定义 用例实例是在系统中执行的一系列动作,这些动作将生成特定执行者可见的价值结果。一个用例定义一组用例实例。步骤目标路径中程在线信息产业培训网中程在线信息产业培训网用例:使用场景的抽象用例:使用场景的抽象l场景1:原有客户育才学校呼入,选择电话号码组“全体家长”和“放假通知”音频文件,设置日期、时间和其它呼叫标准,然后启动一个语音外呼任务。l场景2:原有客户精英软件公司呼入,选择电话号码组“全体客户”和“产品升级通知”音频文件,设置日期、时间和其它呼叫标准,然后启动一个语音外呼任务。l场景3:客户通达核电计划在核电力设施发生紧急情况时,向其经理和支持人员打电话。此时,不仅要能够正确地打到家里,还要正确地判断出谁能够接收到这个消息,谁不能够接收。需求提出后,必须马上执行。l启动外呼任务启动外呼任务中程在线信息产业培训网中程在线信息产业培训网用例用例l定义:用例描述了执行者(参与者)使用系统实现目标的方式,以及系统为其能够实现该目标而提供的帮助。用例描述了系统及其执行者结合起来向至少一个参与者传递有价值的东西的方式中程在线信息产业培训网中程在线信息产业培训网常见错误常见错误l用例太细(用例应包括事件流,事件流中应有步骤)l把步骤当做用例(如登录输入用户名、验证密码)把系统活动当用例!l特例:新增、删除、查询、修改 管理也被戏称为:CRUD(四轮马车)四轮马车)l误认为用例的粒度与系统实现的复杂度相关l其实很简单,一个用例为执行者提供一个价值中程在线信息产业培训网中程在线信息产业培训网用例要突出涉众的利益用例要突出涉众的利益l找出用例相关的涉众;l分析涉众的利益所在;l在用例中充分考虑涉众的利益。中程在线信息产业培训网中程在线信息产业培训网用例分析技术的组成用例分析技术的组成用例图:用例图:用例描述:用例描述:前置条件:前置条件:用户启动该应用系统基本路径:基本路径: 1)系统显示登录界面; 2)用户输入用户名和密码; 3)系统验证信息; 可选路径:可选路径:后置条件:后置条件:执行者,Actor参与者 用例,Use Case参与者:参与者:定义了用户在系统交互过程中所扮演的角色,其可以是一个人,也可以是另一个系统。中程在线信息产业培训网中程在线信息产业培训网用例图实例用例图实例中程在线信息产业培训网中程在线信息产业培训网用例之间的关系:包含关系用例之间的关系:包含关系l包含关系用构造型include表示 l是指基用例(base use case)在它内部说明的某一个位置上显式地合并了另一个用例的行为中程在线信息产业培训网中程在线信息产业培训网用例之间的关系:扩展关系用例之间的关系:扩展关系l包含关系用构造型extend表示 l表示基用例在由扩展用例间接说明的一个位置上,隐式地合并了另一个用例的行为 中程在线信息产业培训网中程在线信息产业培训网用例之间的关系:泛化关系用例之间的关系:泛化关系l用例间的泛化表示子用例继承了父用例的行为和含义l子用例还可以增加或覆盖父用例的行为;子用例可以出现在父用例出现的任何位置 中程在线信息产业培训网中程在线信息产业培训网读图小结读图小结l这张用例图首先定义了三个基用例:预订座位、安排座位和处理结账 l客户通过Internet启动“预订座位”用例,在“预订座位”用例的执行过程中,将“检查座位信息”(被包含用例),如果没有空闲的座位或满意的座位,可以选择进入等候队列,这样就将启动扩展用例“处理等候队列”。l总台服务员在客户到棋牌馆时,启动“安排座位”用例,在执行过程中,将启动被包含用例“检查座位信息”。l当客户要离开棋牌馆时,总台服务员将启动“处理结账”用例,并且定义了两种“收款”用例,一个是“处理现金结账”,另一个是“处理银行卡结账”,而后一个用例将通过与外部系统“银联POS系统”交互来完成。中程在线信息产业培训网中程在线信息产业培训网用例描述:事件流用例描述:事件流l用例描述的是一个系统做什么(what)的信息,并不说明怎么做(how),怎么做是设计模型的事 中程在线信息产业培训网中程在线信息产业培训网用例描述:前置条件用例描述:前置条件l指在用例启动时,参与者与系统应置为何状态;指在用例启动时,参与者与系统应置为何状态;1)系统能检测到;)系统能检测到;2)系统在用例开始前能检测到;)系统在用例开始前能检测到;3)应为)应为“可观测可观测”的的前置条件中程在线信息产业培训网中程在线信息产业培训网用例描述:前置条件用例描述:前置条件客户已发出订单-错误工作人员已登录系统-正确库存大于下单数-错误中程在线信息产业培训网中程在线信息产业培训网用例描述:后置条件用例描述:后置条件l用例结束时,系统的状态用例结束时,系统的状态1)系统能检测到;)系统能检测到;2)应为)应为“可观测可观测”的的:只包含可检测的条件,只包含可检测的条件,合并影响相同的条件合并影响相同的条件后置条件中程在线信息产业培训网中程在线信息产业培训网用例描述:基本事件流用例描述:基本事件流l基本事件流是对用例中基本事件流是对用例中常规、预期路径的描述常规、预期路径的描述(有时被称为(有时被称为Happy day场景),这是大多场景),这是大多数用户在大部分时间中数用户在大部分时间中所采取的路径。所采取的路径。l通常体系了系统的核心通常体系了系统的核心价值。价值。基本事件流中程在线信息产业培训网中程在线信息产业培训网用例描述:扩展事件流用例描述:扩展事件流l系统还需要进行意外处理系统还需要进行意外处理扩展事件流中程在线信息产业培训网中程在线信息产业培训网事件流编写要点事件流编写要点l使用简单的语法:主语明确,语义易于理解l明确写出“谁控制球”:通常就是指出参与者;l从俯视的角度来编写:指出参与者的动作,以及系统的响应,也就是跳开来;l显示过程向前推移:也就是每一步都有前进的感觉(例如:用户按下tab键就不够);l显示执行者的意图而非动作(光有动作,让人不容易直接从事件流中理会用例)。中程在线信息产业培训网中程在线信息产业培训网事件流编写要点事件流编写要点l包括“合理的活动集”(带数据的请求、系统确认、更改内部、返回结果);l“确认”而不是“检查是否”;(如:系统确认用户密码正确,而非系统检查用户密码是否正确)l可选择地提及时间限制;l习惯用语“用户让系统A与系统B交互”;l习惯用语“循环执行步骤x到y,直到条件满足;中程在线信息产业培训网中程在线信息产业培训网用例描述模板用例描述模板用例编号用例编号为用例制定一个唯一的编号,通常格式为UCxx用例名称用例名称应为一个动词短语,让读者一目了然地知道用例的目标用例概述用例概述用例的目标,一个概要性的描述范围用例的设计范围主参与者主参与者该用例的主Actor,在此列出名称,并简要的描述它次要参与者该用例的次要Actor,在此列出名称,并简要的描述它项目相关人利益说明项目相关人利益项目相关人员名称从该用例获取的利益前置条件即启动该用例所应该满足的条件。后置条件即该用例完成之后,将执行什么动作。成功保证描述当前目标完成后,环境变化情况。基本事件流基本事件流步骤活动1在这里写出触发事件到目标完成以及清除的步骤。2(其中可以包含子事件流,以子事件流编号来表示)扩展事件流1a1a表示是对1的扩展,其中应说明条件和活动1b(其中可以包含子事件流,以子事件流编号来表示)子事件流对多次重复的事件流可以定义为子事件流,这也是抽取被包含用例的地方。规则与约束对该用例实现时需要考虑的业务规则、非功能需求、设计约束等中程在线信息产业培训网中程在线信息产业培训网用例模型的建立过程用例模型的建立过程中程在线信息产业培训网中程在线信息产业培训网分析过程分析过程需求需求lFEAT01.新增书籍信息lFEAT02.修改已有的书籍信息lFEAT03.书籍信息按计算机类、非计算机类分别建档lFEAT04.录入新书时能够自动按规则生成书号lFEAT05.计算机类与非计算机类书籍采用不同的书号规则lFEAT06.录入新书时如果重名将自动提示lFEAT07.按书名、作者、类别、出版社等关键字组合查询书籍lFEAT08.列出所有书籍信息lFEAT09.记录外借情况lFEAT10.外借状态能够自动反应在书籍信息中lFEAT11.按人、按书查询外借情况lFEAT12.列出所有的外借情况lFEAT13.按特定时间段统计购买金额、册数lFEAT14.所有查询、列表、统计功能应可以单独对计算机类或非计算机类进行中程在线信息产业培训网中程在线信息产业培训网分析过程分析过程合并特性到用例合并特性到用例lFEAT01.新增书籍信息lFEAT02.修改已有的书籍信息lFEAT03.书籍信息按计算机类、非计算机类分别建档lFEAT04.录入新书时能够自动按规则生成书号lFEAT05.计算机类与非计算机类书籍采用不同的书号规则lFEAT06.录入新书时如果重名将自动提示lFEAT07.按书名、作者、类别、出版社等关键字组合查询书籍lFEAT08.列出所有书籍信息lFEAT09.记录外借情况lFEAT10.外借状态能够自动反应在书籍信息中lFEAT11.按人、按书查询外借情况lFEAT12.列出所有的外借情况lFEAT13.按特定时间段统计购买金额、册数lFEAT14.所有查询、列表、统计功能应可以单独对计算机类或非计算机类进行UC01:新增书籍信息新增书籍信息UC02:修改修改书籍书籍信息信息UC01:新增图书信息新增图书信息UC03:查询书籍信息查询书籍信息UC04:登记外借信息登记外借信息UC05:查询外借信息查询外借信息UC06:统计金额和册数统计金额和册数中程在线信息产业培训网中程在线信息产业培训网绘制用例图绘制用例图中程在线信息产业培训网中程在线信息产业培训网分析过程分析过程编写用例框架性描述编写用例框架性描述1.用例名称: 新增书籍信息(UC01)2.简要说明: 录入新购书籍信息,并自动存储建档。3.事件流:3.1 基本事件流3.2 扩展事件流4.非功能需求5.前置条件 用户进入图书管理系统。6.后置条件 完成新书信息的存储建档。7.扩展点 无8.优先级 最高(满意度 5,不满意度5) 中程在线信息产业培训网中程在线信息产业培训网分析过程分析过程细化用例描述细化用例描述3.事件流:3.1 基本事件流 1)图书管理员向系统发出“新增书籍信息”请求; 2)系统要求图书管理员选择要新增的书籍是计算机类还是非计算机类; 3)图书管理员做出选择后,显示相应界面,让图书管理员输入信息,并自动根据书号规则生成书号; 4)图书管理员输入书籍的相关信息,包括:书名、作者、出版社、ISBN号、开本、页数、定价、是否有CDROM; 5)系统确认输入的信息中书名未有重名; 6)系统将所输入的信息存储建档。3.2 扩展事件流 5a)如果输入的书名有重名现象,则显示出重名的书籍,并要求图书管理员选择修改书名或取消输入; 5a1)图书管理员选择取消输入,则结束用例,不做存储建档工作; 5a2)图书管理员选择修改书名后,转到5)4.非功能需求 无特殊要求 中程在线信息产业培训网中程在线信息产业培训网多少细节才够用多少细节才够用l随着系统的复杂性、风险的不同,更深入的需要和更综合的描述也同样会有所不同l最起码,用例细节应该足以完整地指定系统输入和系统输出l用例必须包含足够的细节,让所有的涉众都感到满足,要让涉众认为系统使用了充分的细节加以定义,相信我们能够构建“正确”的系统中程在线信息产业培训网中程在线信息产业培训网细化事件流时的要点细化事件流时的要点l基本流:用例应该无二义性地描述出所需的行为,而且在表达出行为的同时不能指定或约束设计l注意后台所发生的事件:用例不仅仅是用户界面,还包含系统的内部行为l编写“命名式”子流:对于部分多次执行的子流进行命名l在独立的部分中展现备选流,并对其适当命名中程在线信息产业培训网中程在线信息产业培训网业务事件导出用例业务事件导出用例中程在线信息产业培训网中程在线信息产业培训网系统上下文范围图系统上下文范围图中程在线信息产业培训网中程在线信息产业培训网业务事件列表业务事件列表输入和输出数据流业务事件名称气象站读数(入)1. 气象站传送读数区域气象报告(入)2. 气象局预报天气改变的道路(入)3. 道路工程师通知改变的道路新的气象站(入)4. 道路工程师安装了新的气象站改变的气象站(入)5. 道路工程师改变了气象站失效的气象站告警(出)6. 到了测试气象站的时间卡车改变(入)修订的除冰调度计划(出)7. 卡卡车库改变了卡车状态道路除冰调度计划(出)8. 到了检测结冰道路的时间已处理的道路(入)9. 卡车处理了一条道路卡车故障(入) 修订的除冰调度计划(出)10. 卡车车库报告卡车出问题对没处理的道路进行提醒(出)11. 到了监控道路除冰的时间中程在线信息产业培训网中程在线信息产业培训网业务事件列表业务事件列表 To 用例用例业务事件名称用例名称参与者1. 气象站传送读数记录气象站读数 气象站2. 气象局预报天气更新气象预报高速公路工作人员3. 道路工程师通知改变的道路管理道路信息道路维护人员4. 道路工程师安装了新的气象站5. 道路工程师改变了气象站管理气象站道路维护人员6. 到了测试气象站的时间识别失效的气象站高速公路工作人员7. 卡卡车库改变了卡车状态10. 卡车车库报告卡车出问题管理卡车车库工作人员8. 到了检测结冰道路的时间产生除冰调度计划高速公路工作人员9. 卡车处理了一条道路记录已处理道路车库工作人员11. 到了监控道路除冰的时间监控未处理道路高速公路工作人员中程在线信息产业培训网中程在线信息产业培训网业务场景导出用例业务场景导出用例中程在线信息产业培训网中程在线信息产业培训网业务场景业务场景机场机场Check inl我招呼队列中的下一名顾客。当他走到我的桌子前时,我要求他出示机票。如果乘客使用电子机票,我需要订票记录标识符。大多数乘客不会记住它,所以我会问他们的姓名和航班。大多数人不知道他们的航班号,所以我通常会问他们的目的地。他们肯定知道的。l我确信乘客和航班都是正确的。给错座位或者将乘客送到错误的目的地都会是很尴尬的事情。无论如何,我会设法在计算机中定位乘客的航班记录。如果他没有将护照给我,我会向他要。我会查看护照的照片是否与乘客相似,并检查护照是否仍然有效。l如果记票记录没有显示出常客编号,我会向乘客是否参加了我们的里程计划。要么他给我常客卡,要么我问他是否愿意加入,并给他表格。我可以为航班记录提供临时的常客编号,这样乘客就可以将这次行程计入总里程。中程在线信息产业培训网中程在线信息产业培训网业务场景业务场景机场机场Check inl如果计算机还没有指定座位,我会找一个。这通常意味着我会问顾客靠窗还是靠走道,或者如果座位基本满了,我会告诉他还有哪些座位。当然如果计算机分配了一个座位,我总是会问他是否满意。我们确定了座位后,会在计算机上确认。此时我可以打印登机牌,但是通常我会先处理行李。l我会问乘客要托运多少件行李,同时会确认他没有超出携带行李的限制。难以相信有些人总是希望将什么东西都带进空间有限的机舱中。我会对行李提一些安全性问题,并得到乘客的回答。我会打印出行李标签并将它们安全地贴在行李上,然后我会将行李送到传送带上,完成行李托运工作。l接下来我会打印登机牌。这意味着我完成了所有与计算机相关的事情。但还有一件事要做:我要确保每件事都与乘客的理解一致。我会从登机牌上读出他的目的地、航班的时间、以及何时如何登机,还会说明他托运了多少件行李,并确认行李的目的地与乘客的目的一致,然后将登机牌给乘客,并祝他旅途愉快。中程在线信息产业培训网中程在线信息产业培训网业务用例业务用例机场机场Check in(草)(草)l得到乘客的机票或记录标识符l确定乘客、航班、目的地是否正确l检查护照有效并属于这名乘客l记下常客编号l分配一个座位l询问安全问题l行李托运l打印登机牌和行李标签并递给乘客l祝乘客“旅途愉快”中程在线信息产业培训网中程在线信息产业培训网业务用例业务用例修订修订l得到乘客的机票或记录标识符1.确定乘客的预订信息l确定乘客、航班、目的地是否正确2.确保乘客身份正确,并与正确的预订联系起来l检查护照有效并属于这名乘客3.检查护照有效并属于这名乘客扩照必须是本人的;在旅行结束之前不能过期;对旅行的目的地国必须是有效的;签证必须是有效的;无目的国“拒绝入境”印章l记下常客编号4.记录常客的编号l5.分配一个座位l询问安全问题6.询问安全问题并得到正确回答l7.行李托运l8.打印登机牌和行李标签并递给乘客l9.祝乘客“旅途愉快”中程在线信息产业培训网中程在线信息产业培训网产品用例产品用例l产品用例名称:办理登机牌l相关涉众:Check in人员、市场部门、行李部门、航班预订机构、航班舱单系统、安全部门、目的国移民局l参与者:Check in人员l事件流:1.确定乘客的预订信息 4.记下常客编号 5.分配一个座位 7.办理行李托运 8.打印登机牌和行李标签中程在线信息产业培训网中程在线信息产业培训网用例评审用例评审中程在线信息产业培训网中程在线信息产业培训网用例评审的内容与时间用例评审的内容与时间l评审用例模型,遵循参与者和用例的标识:确保已经确定了用例和参与者,就名称、简要描述和关联的正确性达成了共识l评审概念上相关联用例集的概念:确保已民经有效地划分了相似用例的行为,而且所确定的用例都给参与者及涉众提供了看得见的价值l只要编写完一个用例描述后,马上就开始评审:确保用例描述是精确的中程在线信息产业培训网中程在线信息产业培训网谁应该评审用例谁应该评审用例l受影响的业务领域:学科专家、业务代表、用户代表,确认这些用例描述了所期望的行为、精确地反映了目标域l软件开发:开发者,确保这些用例足够详细,能够据此进行系统的设计和实现l测试:确保客观地判定所完成的系统达到了先前所期望的目标成为可能中程在线信息产业培训网中程在线信息产业培训网评审时应看什么评审时应看什么l评审用例图:确保用例表达出系统预期的行为1)首先是用例的名称,是否表现出用例所提供的价值2)查找那些没有用例的参与者和没有参与者的用例3)移除参与者之间的交流4)确保所有的用例和参与者都有简要描述5)被包含用例应该是两个或更多用例的组成部分6)是否存在滥用扩展的情况7)检查所有的泛化,确保没有隐含的功能分解l评审简要描述:参与者的简要描述应清晰表达出参与者在系统环境中所扮演的角色;用例简要描述应清晰地表达用例提供的价值。中程在线信息产业培训网中程在线信息产业培训网评审时应看什么评审时应看什么l评审用例描述:1)最大的问题是不够充分或描述模糊2)描述不应该只是事件流的摘要,而应该包含细节3)用例描述应该省略用户界面细节4)用例描述不应该约束设计l评审前置条件和后置条件:描述出用例启动之前或用户成功终止之后系统所处的状态l评审术语表和域模型:完备性、冗余性和模糊性中程在线信息产业培训网中程在线信息产业培训网用例建模实例分析用例建模实例分析 1l一个编写不好的用例示例l用户界面细节太多:包括对鼠标点击、列表框和窗口设计的引用l太冗长:较低目标层次上的用例太多,使用用例表示非行为信息(如业务规则)l存在句子片断l修改后的结果中程在线信息产业培训网中程在线信息产业培训网用例建模实例分析用例建模实例分析 2l在药房中,有3个主参与者:接待员、药房技师和药剂师。其中任何一个参与者都可能接待客户,接收处方。药房技师和药剂师都可以按照处方抓药,但只有药剂师有权核处方并在处方在签字,而药房技师是协助药剂师的。中程在线信息产业培训网中程在线信息产业培训网用例建模实例分析用例建模实例分析 3l背景:银行的抵押业务办理系统l原整理用例: 创建客户 更新客户 删除客户l为客户开户为客户开户l获得支持文档获得支持文档 更正客户帐户更正客户帐户l存档客户帐户存档客户帐户为新客户开户时需要做的对客户进行一些简单修改 添加支持客户申请贷款的文档从不真正删除,批准或拒绝时对其存档中程在线信息产业培训网中程在线信息产业培训网用例建模实例分析用例建模实例分析 4l一个编写不好的用例示例l要使每个步骤有实际的前进。l修改后的结果l一个编写不好的用例示例l步骤也不能过大。l修改后的结果中程在线信息产业培训网中程在线信息产业培训网用例建模实例分析用例建模实例分析 5l修改前 修改后的结果 l修改前 修改后的结果中程在线信息产业培训网中程在线信息产业培训网练习一练习一l对于一个电子商务网站而言,以下哪些不是合适的用例,指出并说明理由。输入支付信息 将商品放入购物车 结账预订商品 用户登录 邮寄商品 查看商品详情l输入支付信息:太小l邮件商品:系统功能之外l查看商品详情:太小中程在线信息产业培训网中程在线信息产业培训网练习二练习二l本系统主要将实现客户资料信息管理、客户委托(出租、出售、租赁、购买)信息管理、业务线索生成与管理、房源状态自动更新、权限管理、到期用户管理、房源组合查询等功能。l但该图不符合“用例建模”思想,请指出并修改。1)主要错误:用例的分解太细,并)主要错误:用例的分解太细,并没有遵从每个用例为用户传递一个没有遵从每个用例为用户传递一个有价值的结果的原则。在原设计中有价值的结果的原则。在原设计中“打开房源信息页面打开房源信息页面”、“录入房录入房源信息源信息”、“确认提交信息确认提交信息”都只都只是一个操作步骤,因此不适合作为是一个操作步骤,因此不适合作为用例。用例。2)修改方法:将)修改方法:将“打开房源信息页打开房源信息页面面”、“录入房源信息录入房源信息”、“确认确认提交信息提交信息”合并为合并为“新增房源信息新增房源信息” 中程在线信息产业培训网中程在线信息产业培训网练习三:会议管理系统练习三:会议管理系统l有一个对外界开放的会议中心,它拥有若干间不同规格的会议室。使用者可以去该会议中心预订房间召开一个会议或一系列会议,当然用户必须确定开会的时间、日期以及到会的大概人数以确定一个合适规格的会议室。如用户可以申请在某周五下午1:00到3:00召开一个大约100人参加的主题会议。l另外,如果用户需要定期召开一个会议(如某种论坛会议,每月开一次),那么用户可以方便地向会议中心一次性地申请几次会议的使用。l同时,在任何一个会议开始之前,用户可以修改会议的时间,添加或减少预期到会的人数,直到取消某次会议。l确定了一个会议后,用户负责提供与会者的信息给会议中心,会议中心负责进行会务人员的管理,制作会务代表证明并通知每位参加者有关会议的信息。l当然,如果会议作了变更(包括取消),会议中心也要通知由用户确定的预定会议的每位参与者。会议中心可以采用电子的方式或寄会议通知的方式通知每位与会者,这要视用户提供给会议中心的每位与会者的联络而定。l本系统要求用户首先定义一个会议,然后再根据该会议,要求用户申请相应的时间段内使用的会议室。如果一个会议已经定义(如已经申请过的会议),则用户可以直接根据参加的人员、会议召开的时间来申请一个合适的会议室。l另外,系统可以根据会议室的使用情况来更改用户申请使用的时间限制,如最多只能提前一个月预订。同时,允许用户把某些与会人员定义为一个组,这样用户在以后申请时就可以简化操作了。中程在线信息产业培训网中程在线信息产业培训网练习三参考答案练习三参考答案中程在线信息产业培训网中程在线信息产业培训网讨论讨论l用例模型适用于对以下什么方面进行建模? 需求建模 业务建模 设计建模l你觉得在实际进行用例建模时会遇到什么困难,还有什么疑问?中程在线信息产业培训网中程在线信息产业培训网
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号