2022年面向对象的需求分析方法 .docx
精品_精品资料_面对对象的需求分析方法面对对象的需求分析方法的核心是利用面对对象的概念和方法为软件需求建造模型. 它包含面对对象风格的图形语言机制和用于指导需求分析的面对对象方法学.面对对象的思想最初起源于 20 世纪 60 岁月中期的仿真程序设计语言 Simula67 .20 世纪 80 岁月初显现的 Smalltalk 语言及其程序设计环境对面对对象技术的推广应用起到了显著的促进作用.20 世纪 90 岁月中后期产生并快速成熟的 UMLUnified Modeling Language,统一建模语言是面对对象技术进展的一个重要里程碑.UML统一了面对对象建模的基本概念、术语和表示方法, 不仅为面对对象的软件开发过程供应了丰富的表达手段,而且也为软件开发人员供应了相互沟通、共享体会的共用语言.本章第一介绍面对对象的主要概念和思想.在概述了 UML 的全貌之后,以“家庭保安系统”为实例,介绍与需求分析相关的部分 UML 语言机制以及基于 UML 的面对对象的需求分析方法和过程.第一节面对对象的概念与思想一、面对对象的概念关于“面对对象”,有很多不同的看法. Coad 和 Yourdon 给出了一个定义:“面对对象 = 对象 + 类 + 继承 + 消息通信” .假如一个软件系统是使用这样 4 个概念设计和实现的,就认为这个软件系统是面对对象的. 一个面对对象的程序的每一成分应是对象, 运算是通过新的对象的建立和对象之间的消息通信来执行的.可编辑资料 - - - 欢迎下载精品_精品资料_1. 对象 object 一般意义来讲, 对象是现实世界中存在的一个事物. 可以是物理的, 如一个家具或桌子 , 如图 5-1-1 所示,可以是概念上的 ,如一个开发项目.对象是构成现实世界的一个独立的单位,具有自己的静态特点 用数据描述 和动态特点行为或具有的功能 .例如:人的特点: 、性别、年龄等,行为:衣、食、住、行等.图 5-1-1对象的定义1对象、属性、操作、消息定义对象可以定义为系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位, 由一组属性和一组对属性进行操作的服务组成.属性一般只能通过执行对象的操作来转变.可编辑资料 - - - 欢迎下载精品_精品资料_操作又称为方法或服务,在 C + 中称为成员函数,它描述了对象执行的功能,假设通过消息传递,仍可以为其他对象使用.而所谓的消息是一个对象与另一个对象的通信单元,是要求某个对象执行类中定义的某个操作的规格说明.发送给一个对象的消息定义了一个操作名和一个参数表可能是空的,并 指定某一个对象. 由一个对象接收的消息就调用消息中指定的操作,并将传递过来的实际参数与参数表中相应的形式参数结合起来.接收对象对消息的处理可能会转变对象中的状态,即转变接收对象的属性, 并发送一个消息给自己或另一个对象. 可以认为, 这种消息的传递大致等价于过程性范型中的函数调用.2对象的分类·外部实体:与软件系统交换信息的外部设备、相关子系统、操作员或用户等.·信息结构:问题信息域中的概念实体,如信号、报表、显示信息等.·需要记忆的大事:在系统运行过程中可能产生并需要系统记忆的大事,如单击鼠标左键、击打键盘“ .”键等.·角色:与软件系统交互的人员所扮演的角色,如经理、部长、技术支持等.·组织机构:有关机构,如单位、小组等.可编辑资料 - - - 欢迎下载精品_精品资料_·位置:作为系统环境或问题上下文的场所、位置,如客户的址、收件人机构的址等.·操作规程:如操作菜单、某种数据输入过程等.在标识对象时必需留意遵循“信息隐匿”的原就:必需将对象的属性隐匿在对象的内部, 使得从对象的外部看不到对象的信息是如何定义的, 只能通过该对象界面上的操作来使用这些信息.对象的状态通过给对象给予具体的属性值而得到.它只能通过该对象的操作来转变.对象有两个视图,分别表现在分析设计和实现方面.从分析及设计方面来看,对象表示了一种概念 ,它们把有关的现实世界的实体模型化.从实现方面来看,一个对象表示了在应用程序中显现的实体的实际数据结构. 之所以有两个视图, 是为了把说明与实现别离, 对数据结构和相关操作的实现进行封装.2. 类class 和实例 instance 把具有相同特点和行为的对象归在一起就形成了类.类成为某些对象的模板, 抽象的描述了属于该类的全部对象的属性和操作.属于某个类的对象叫做该类的实例. 对象的状态就包含在它的实例变量,即实例的属性中.如图5-1-2 所示.从“李杰”、“王辉”和“杨芳”等对象可得到类“同学”,而这些对象就称为该类的实例.可编辑资料 - - - 欢迎下载精品_精品资料_图 5-1-2对象、类与实例类定义了各个实例所共有的结构, 类的每一个实例都可以使用类中定义的操作. 实例的当前状态是由实例所执行的操作定义的.面对对象程序设计语言, 如 C+ 和 smalltalk都定义了一个 new 操作,可建立一个类的新实例. C+仍引入了构造函数,用它在声明一个对象时建立实例.此外,程序设计语言给 出了不同的方法,来撤消称为析构实例,即当某些对象不再使用时把它们删去,把储备释放以备其他对象使用. C+ 给出了一个操作 delete ,可以释放一个对象所用的空间.C+ 仍答应每个类定义自己的析构方法,在撤消一个对象时调用它.smalltalk没有供应一个机制来撤消对象,但可以进行无用单元收集.类经常可看做是一个抽象数据类型 ADT 的实现 .但更重要的是把类看做是表示某种概念的一个模型.事实上,类是单个的语义单元,它可以很自然的治理系统中的对象,匹配数 据定义与操作.类加进了操作,给通常的记录给予了语义,可供应各种级别的可拜访性.可编辑资料 - - - 欢迎下载精品_精品资料_3. 继承 inheritance假如某几个类之间具有共性的东西信息结构和行为,抽取出来放在一个一般类中,而将各个类的特有的东西放在特殊类中分别描述,就可建立起特殊类对一般类的继承,如图5-1-3所示.各个特殊类可以从一般类中继承共性,这样防止了重复.图 5-1-3特殊类对一般类的继承关系建立继承结构的好处:·易编程、易懂得 代码短, 结构清楚.·易修改:共同部分只要在一处修改即可.·易增加新类:只须描述不同部分.4. 多继承假如一个类需要用到多个既存类的特点, 可以从多个类中继承, 称为多继承. 例如退休老师是继承退休者和老师这两个类的某些特点或行为而得到的一个新类.可编辑资料 - - - 欢迎下载精品_精品资料_图 5-1-4多继承对象相互通信,即一个对象发消息给另一个对象, 执行某些行为或又发消息给另外的对象, 从而执行系统的功能.发送消息的对象可能不知道另一个对象的类型是什么.如在C 程序中使用命令 ClearInt 时要严格区分该命令适合一个整数,仍是一个整数数组.但在C+ 情形, ClearInt对两者都适用,它自己判定对象是哪一个.这就是多态性.它意味着一个操作 在不同类中可以有不同的实现方式.如清零操作ClearInt 针对消息对象是 int array仍是 int ,其实现是不同的.在一个面对对象的多态性语言中,可能代替一个特定类型的类型的集合就是它的子类集合.例如,图 5-1-5给出了 4 个类的继承层次.使用这个继承结构,发送给多边形类的全部消息,它的全部子类都能够响应.又例如,想要在屏幕上画一系列多边形,多态性答应一个表的元素可以属于一组指定的类型而不仅仅是一个类型,可以认为这是一个类族. 通过遍历这个表,发送给各个表元素以 draw 消息,画出全部的多边形.可编辑资料 - - - 欢迎下载精品_精品资料_图 5-1-54 个类的继承层次动态绑定把函数调用与目标代码块的连接推迟到运行时进行.这样,只有发送消息时才与接收消息实例的一个操作绑定. 它与多态性可以使我们建立的系统更敏捷, 易于扩充. 做为动态绑定的例子,考虑在多边形类中的方法contains .aPoint .这个操作可以在类层次的各层重新实现, 以有效利用各个子类的特殊的特点. 例如,假定一个矩形有某些边与屏幕的边平行,这时, 检查一个点是否包含在矩形内, 比检查一个点是否在一个一般的四边形内的效率要高一些.二、面对对象软件开发的分析模型面对对象分析过程分为论域分析和应用分析. 论域分析建立大致的系统实现环境, 应用分析就依据特定应用的需求进行论域分析.1. OOA 分析的基本原就和任务为建立分析模型,要运用如下的5 个基本原就 :建立信息域模型.描述功能.表达行为.划分功能 、数据 、行为模型, 揭示更多的细节. 用早期的模型描述问题的实质, 用后期的模型给出实现的细节.这些原就形成OOA 的基础.可编辑资料 - - - 欢迎下载精品_精品资料_OOA 的目的是定义全部与待解决问题相关的类包括类的操作和属性、类与类之间的关系以及它们表现出的行为.为此, OOA 需完成的任务是:1软件工程师和用户必需充分沟通,以明白基本的用户需求.2必需标识类即定义其属性和操作.3必需定义类的层次.4应当表达对象与对象之间的关系即对象的连接.5必需模型化对象的行为.6反复的做任务,直到模型建成.2. OOA 概述目前已经衍生很多种 OOA 方法.每种方法都有各自的进行产品或系统分析的过程, 有一组可描述过程演进的图形标识, 以及能使得软件工程师以一样的方式建立模型的符号体系. 现在广泛使用的 OOA 方法有以下几种:可编辑资料 - - - 欢迎下载精品_精品资料_1 Booch方法: Booch方法包含“ 微开发过程 ”和“宏开发过程”.微开发过程定义了一组任务,并在宏开发过程的每一步骤中反复使用它们,以保护演进途径.Booch OOA宏开发过程的任务包括标识类和对象、标识类和对象的语义、定义类与对象间的关系, 以及进行一系列求精从而实现分析模型.2 Rumbaugh方法: Rumbaugh和他的同事提出的对象模型化技术 OMT 用于分析、系统设计和对象级设计.分析活动建立三个模型:对象模型描述对象、类、层次和 关系,动态模型描述对象和系统的行为,功能模型类似于高层的DFD ,描述穿越系统的信息流.3 Coad 和 Yourdon方法: Coad 和 Yourdong方法经常被认为是最简洁学习的OOA方法.建模符号相当简洁, 而且开发分析模型的导引直接明白. 其 OOA 过程概述如下:·使用“要找什么”准就标识对象.·定义对象之间的一般化特殊化结构.·定义对象之间的整体部分结构.·标识主题系统构件的表示.·定义属性及对象之间的实例连接.可编辑资料 - - - 欢迎下载精品_精品资料_·定义服务及对象之间的消息连接.4 Jacobson方法:也称为 OOSE面对对象软件工程. Jacobson方法与其他方法的不同之处在于他特殊强调使用实例use case 用以描述用户与系统之间如何交互的场景. Jacobson方法概述如下:·标识系统的用户和它们的整体责任.·通过定义参加者及其职责、使用实例、对象和关系的初步视图,建立需求模型.·通过标识界面对象、建立界面对象的结构视图、表示对象行为、别离出每个对象的子系统和模型,建立分析模型.5 Wirfs Brock方法: Wirfs Brock方法不明确区分分析和设计任务.从评估客户规格说明到设计完成 ,是一个连续的过程 .与 Wirfs Brock 分析有关的任务概述如下:·评估客户规格说明.·使用语法分析从规格说明中提取候选类.·将类分组以表示超类.可编辑资料 - - - 欢迎下载精品_精品资料_·定义每一个类的职责.·将职责给予每个类.·标识类之间的关系.·基于职责定义类之间的协作.·建立类的层次表示.·构造系统的协作图.6 统一的 OOA 方法 UML .统一的建模语言 UML 已经在企业中广泛使用, 它把 Booch 、Rumbaugh和 Jacobson等各自独立的 OOA 和 OOD 方法中最优秀的特色组合成一个统一的方法. UML答应软件工程师使用由一组语法的语义的有用的规章支配的符号 来表示分析模型.在 UML 中用 5 种不同的视图来表示一个系统,这些视图从不同的侧面描述系统.每一个视图由一组图形来定义.这些视图概述如下:·用户模型视图:这个视图从用户 在 UML 中叫做参加者角度来表示系统.它用使用可编辑资料 - - - 欢迎下载精品_精品资料_实例 use case 来建立模型,并用它来描述来自终端用户方面的可用的场景.·结构模型视图:从系统内部来看 数据和功能性 .即对 静态结构类、对象和关系模型化.·行为模型视图:这种视图表示了系统动态和行为.它仍描述了在用户模型视图和结构模型视图中所描述的各种结构元素之间的交互和协作.·实现模型视图:将系统的结构和行为表达成为易于转换为实现的方式.·环境模型视图:表示系统实现环境的结构和行为.通常, UML分析建模的留意力放在系统的用户模型和结构模型视图,而UML 设计建模就定位在行为模型、实现模型和环境模型.其次节UML 概述一、UML 的语言机制在 UML产生之前, 面对对象领域已经涌现出了很多开发方法及相应的表示机制,它们各有千秋 ,却又有很多类似之处,往往让使用者无所适从. UML 在这样的背景下应运而生.它主要以 BOOCH方法、 OMT 方法 71 和 OOSE 方法为基础,同时也吸取了其他面对对象建模方法的优点, 形成一种概念清楚、 表达才能丰富、 适用范畴广泛的面对对象的标准建模语言.可编辑资料 - - - 欢迎下载精品_精品资料_UML通过图形化的表示机制从多个侧面对系统的分析和设计模型进行刻画.它共定义了10 种视图,并将其分为如下 4 类:1用例图 use case diagram .从外部用户的角度描述系统的功能,并指出功能的执行者.2静态图.包括类图 class diagram、对象图 object diagram 和包图 pack diagram .类图描述系统的静态结构,类图的节点表示系统中的类及其属性和操作,类图的边表示类之间的联系,包括继承、关联、依靠、聚合等.对象图是类图一个实例,它描述在某 种状态下或在某一时间段, 系统中活跃的对象及其关系. 在对象图, 一个类可以拥有多个活跃的对象实例.包图描述系统的分解结构,它表示包package 以及包之间的关系.包由子包及类组成.包之间的关系包括继承、构成与依靠关系.3行为图.包括交互图 interactive diagram、状态图 statechar diagram 与活动图 activity diagram,它们从不同的侧面刻画系统的动态行为.交互图描述描述对象 之间的消息传递,它又可分为次序图sequence diagram与 合作图 collaboration diagram 两种形式.次序图强调对象之间消息发送的时间序.合作图更强调对象间的动态协作关系.合作图也可通过消息序号之间消息发送的时间序.只不过这种表示不如次序图那样直观 .状态图描述类的对象的动态行为,它包含对象全部可能的状态、 在每个状态下能够响应的大事以及大事发生时的状态迁移与响应动作. 活动图描述系统为完成某项功能而执行的操作序例,这些操作序列可以并发和同步. 活动图中包含掌握和信息流. 掌握流表示一个操作完成可编辑资料 - - - 欢迎下载精品_精品资料_后对其后操作的触发,信息流就刻画操作之间的信息交换.4 实现图 implementatin diagram.包括构件图 component diagram与 部署图deploymetn diagram,它们描述软件实现系统的组成和分布状况.构件图描述软件 实现系统中各组成部件以及它们之间的信任关系.一个部件可能是一个资源描述文件、 一个二进制文件或一个可执行文件. 构件图主要用于懂得和分析软件各部分之间的相互影响程度.部署图描述作为软件系统运行环境的硬件及网络的物理体系结构,其节点表示实际的电脑和设备,边表示节点之间物理连接关系,也可显示连接的类型及节点之间的依靠性.在节点内部,可以放置可执行部件和对象以显示节点与可执行软件单元之间的对应关系.部署图对于软件安装工程师有着重要的参考价值.例如,图 5-2-1表示某高校的课程注册治理系统包含3 个用例:“课表保护”、“个人课程规划”和“选课同学花名册查询”.教务治理人员使用“课表保护”用例设置或修改课程 属性课程的时间、的点、上课老师等和增删课程.同学使用“个人课程规划”用例选课和修改自己的个人课表, 收费治理系统依据每个同学的选课情形运算其应缴费用.老师使用“选课同学花名册查询”用例猎取选定其所开课程的同学花名册.可编辑资料 - - - 欢迎下载精品_精品资料_图 5-2-1课程注册治理系统的用例图图 5-2-2表示前述的课程注册治理系统包含“教务治理人员”、“同学”、“老师”、“课程”、“课程设置”、“课程注册表”、“课程注册治理器”和“课程治理器”8 个类.前 3 个类为一般化的“用户” 类的子类.一门“课程” 可由一到多个“课程设置”构成,例如, 对于全校性的公共基础课, 由于选修的同学太多, 必需支配不同的老师、 不同的教室和不同的时间段.“同学” 、“老师”与“课程设置”之间,“课程注册表”与“课程注册治理器” 之间以及“课程注册治理器”与“课程”之间存在着关联关系.可编辑资料 - - - 欢迎下载精品_精品资料_图 5-2-2课程注册治理系统的类图图 5-2-3通过 UML 次序图刻画了“个人课程规划”用例中同学选课功能的实现过程.图 5-2-3用 UML 次序图表示“个人课程规划”用例中的同学选课过程图 5-2-4用 UML 协作图刻画同学选课过程,该图与图5-2-3等价.可编辑资料 - - - 欢迎下载精品_精品资料_图 5-2-4用 UML 协作图表示“个人课程规划”用例中的同学选课过程图 5-2-5 “课程设置”对象的状态图.它表示每个“课程设置”最多只能容纳50 个选课同学.图 5-2-5UML 状态图例如本章的后继章节结合需求分析过程更具体的介绍UML 的用例图、包图、类图和活动图, 第八章将结合软件设计过程具体介绍次序图、协作图、状态图和活动图. 对其他 UML图形机制感爱好的读者,以及期望进一步深化明白UML及其软件开发方法的读者.可编辑资料 - - - 欢迎下载精品_精品资料_二、基于 UML 的软件开发过程虽然 UML 是独立于软件开发过程的, 即 UML 能够在几乎任何一种软件开发过程中使用, 但是熟识一种有代表性的面对对象的软件开发过程, 并知悉 UML 各语言要素在过程中不同阶段的应用,对于懂得 UML 将大有裨益.图 5-2-6 表示一种迭代的渐进式软件开发过程,它包含 4 个阶段:初启、细化、构造和移交.图 5-2-6面对对象的迭代、渐进式软件开发过程在初启阶段, 软件项目的发起人确定项目的主要目标和范畴, 并进行初步的可行性分析和经济效益分析.2. 细化细化阶段的开头标志着项目的正式确立.软件项目组在此阶段需要完成以下工作:1初步的需求分析.采纳 UML 的用例描述目标软件系统全部比较重要、比较有风险的用例,利用用例图表示参加者与用例以及用例与用例之间的关系. 采纳 UML 的类图表示目可编辑资料 - - - 欢迎下载精品_精品资料_标软件系统所基于的应用领域中的概念之间的关系.这些相互关联的概念构成领域模型. 领域模型一方面可以帮忙软件项目组懂得业务背景,与业务专家进行有效沟通. 另一方面, 随着软件开发阶段的不断推动, 领域模型将成为软件结构的主要基础.假如领域中含有明显的流程处理成分, 可以考虑利用UML 的活动图来刻画领域中的工作流,并标识业务流程中的并发、 同步等特点.2 初步的高层设计.假如目标软件系统的规模比较巨大,那么经初步需求分析获得的 用例和类将会特别多.此时,可以考虑依据用例、类在业务领域中的关系,或者依据业务领域 中某种有意义的分类方法将整个软件系统划分为假设干包,利用 UML 的包图刻画这些包及其间的关系.这样,用例、用例图、类、类图将依据包的划分方法分属于不同的包,从而得到整 个目标软件系统的高层结构.3 部分的具体设计.对于系统中某些重要的或者比较高的用例,可以采纳交互图进一步探讨其内部实现过程.同样 ,对于系统中的关键类,也可以具体讨论其属性和操作,并在UML类图中加以表现. 因此,这里提倡的软件开发过程并不在时间轴上严格划分分析与设计、总体设计与具体设计,而是依据软件元素用例、类等的重要性和风险程度确立优先细化原 就,建议软件项目组优先考虑重要的、 比较有风险的用例和类, 不能将风险的识别和解决推迟到细化阶段之后.4 部分的原型构造. 在很多情形下,针对某些复杂的用例构造可实际运行的耐用消费 品型是降低技术风险、 让用户帮忙软件项目组确认用户需求的最有效的方法.为了构造原型, 需要针对用例生成详尽的交互图,对全部相关类给出明确的属性和操作定义.可编辑资料 - - - 欢迎下载精品_精品资料_综上所述, 在细化阶段可能需要使用的 UML 语言机制包括: 描述用户需求的用例用用例图、表示领域概念模型的类图、 表示业务流程处理的活动图、 表示系统高层结构的包图和表示用例内部实现过程的交互图等.细化阶段的终止条件是, 全部主要的用户需求已通过用例和用例图得以描述. 全部重要的风险已被标识,并对风险应对措施了如指掌.能够比较精确的估算实现每一用例的时间.3. 构造在构造阶段, 开发人员通过一系列的迭代完成对全部用例的软件实现工作,在每次迭代中实现一部分用例. 以迭代方式实现全部用例的好处在于,用户可以及早参加对已实现用例的实际评判,并提出改良看法.这样可有效降低大型软件系统的开发风险.在实际开头构造软件系统之前, 有必要预先制定迭代方案. 方案的制定需遵循如下两项原就:1用户变为业务价值较大的用例应优先支配.2开发人员评估后认为开发风险较高的用例应优先支配.在迭代方案中, 要确定迭代次数、 每次迭代所需时间以及每次迭代中应完成 或部分完成可编辑资料 - - - 欢迎下载精品_精品资料_的用例.每次迭代过程由针对用例的分析、设计、编码、测试和集成 5 个子阶段构成.在集成之后,用户可以对用例的实现成效进行评判, 并提出修改看法. 这些修改看法可以在本次迭代过程中立刻实现,也可以在下次迭代中再予以考虑.构造过程中, 需要使用 UML 的交互图来设计用例的实现方法. 为了与设计得出的交互图和谐一样, 需要修改或精化在细化阶段绘制的作为领域模型的类图, 增加一些为软件实现所必需的类、类的属性或方法.假如一个类有复杂的生命周期行为, 或者类的对象在生命周期内需要对各种外部大事的刺激作出反应,应考虑用UNL 状态图来表述类的对象的行为.UML 的活动图可以在构造阶段用来表示复杂的算法过程和有多个对象参加的业务处理过程.活动图特殊适用于表示过程中的并发和同步.在构造阶段的每次迭代过程中, 可以对细化阶段绘出的懈图进行修改或精化, 以便包图切实反映目标软件系统最顶层的结构划分状况.综上所核对,在构造阶段可能需要使用的UML 语言机制包括:用例及用例图.它们是开发人员在构造阶段进行分析和设计的基础.可编辑资料 - - - 欢迎下载精品_精品资料_类图.在领域概念模型的基础上引进为软件实现所必需的类、属性和方法.交互图.表示针对用例设计的软件实现方法.状态图.表示类的对象的状态大事响应行为.活动图.表示复杂的算法过程,特殊是过程中的并发和同步.包图.表示目标软件系统的顶层结构.构件图.部署图.4. 移交在移交阶段, 开发人员将构造阶段获得的软件系统在用户实际工作环境或接近实际的模拟环境中试运行,依据用户的修改看法进行少量调整.第三节基于 UML的需求分析可编辑资料 - - - 欢迎下载精品_精品资料_在初步的业务需求描述已经形成的前提下,基于 UML 的需求分析大致可分为以下步骤:1 利用用例及用例图表示需求.从业务需求描述动身猎取执行者和场景.对场景进行汇总、分类、抽象.形成用例.确定执行者与用例、用例与用例图之间的关系,生成用例图.2 利用包图及类图表示目标软件系统的总体框架结构 .依据领域学问、业务需求描述和既往体会设计目标软件系统的顶层架构.从业务需求描述中提取“关键概念” ,形成领域概念模型 .从概念模型和用例动身,讨论系统中主要的类之间的关系,生成类图.上述两个步骤并没有时序关系,它们可以并行绽开,如图5-3-1所示.图 5-3-1需求分析过程本节将依次介绍上述步骤中涉及的UML 语言机制,并结合“家庭保安系统”实例说明每步骤中基于 UML 的需求分析方法.一、开发场景可编辑资料 - - - 欢迎下载精品_精品资料_场景是指从单个执行者的角度观看目标软件系统的功能和外部行为.这种功能通过系统与用户之间的交互来表征.因此也可以说,场景是用户与系统之间进行交互的一组具体的动作. 相对于用例见第五章其次节而言,场景是用例的实例,而用例是某类场景的共同抽象.对场景的完整描述应包含场景名称、执行者实例,前置条件、大事流和后置条件.例如,“家庭保安系统”的初步需求描述: “家庭保安系统”的软件答应用户在安装时进行系统配置,实施对传感器的监控并通过掌握面板与用户进行信息交互.配置操作包括:1指定每一传感器的种类和编号.2设置开、关秘密码.3指定报警电码.4指定报警推迟和重拨推迟时间以秒为单位.当软件系统收到传感器发出的数据后, 判别是否显现反常大事. 假如是, 就在指定的推迟时间内拨报警 号码,拨号操作将依据重拨推迟反复进行, 直至 接通.然后软件系统负责报告时间、的点和反常大事的性质.可编辑资料 - - - 欢迎下载精品_精品资料_开机后,软件系统负责显示当前工作状态,接收并处理用户指令.依据以上描述,该系统具有“系统配置”、“开机” 、“关机”、“门窗监测”、“烟雾监测”和“复位”等场景.其中,门窗监测场景的具体描述如下:场景名称:门窗监测.参加执行者实例:警报器、报警、显示器和门窗监视器.前置条件:系统已开机.大事流:1 门窗监视器发觉门或窗户发生异动,向软件系统报告反常大事.2 软件系统启动警报器并拨报警号码.3 报警接通后,软件系统播出语音,报告反常大事发生的时间、的点和大事的性质门窗异动.4 系统在掌握面板的显示器上显示报警时间及当前状态报警:门窗异动.可编辑资料 - - - 欢迎下载精品_精品资料_后置条件:系统处于“报警”状态.依据场景作用的不同,可以将其划分为以下类型:1 实际场景. 对实际的业务处理流程或其优化流程的描述.实际场景是用户需求的重要组成部分.2设想场景.分析人员对目标软件系统投入应用后经改良或优化的业务流程的描述.这种场景可视为一种纸面原型,主要用于帮忙分析人员挖掘潜在的用户需求.3 评判场景. 以确认需求或提出改良建议为主要目的的业务流程描述.评判场景可以在用例生成后用例进行实例化而形成,以便用户对用例进行评判或改良.4培训场景.面对开发人员及用户说明系统的功能和外部行为的业务流程描述.对以下问题的答复有助于分析人员猎取场景:1 目标软件系统有哪些执行者?2 执行者期望系统执行哪些任务?3 执行者期望获得哪些信息?这些信息由谁生成?由谁修改?可编辑资料 - - - 欢迎下载精品_精品资料_4 执行者需要通知系统哪些大事?系统响应这些大事时会表现出哪些外部行为?5 系统将通告执行者哪些大事?总之,确定执行者和场景的关键在于懂得业务领域和初步需求描述文档.场景将促成开发人员和用户对业务处理流程和目标软件系统的功能范畴的共同懂得.在场景确定之后, 通过对场景的汇总、分类归并和抽象即可形成用例.二、生成用例从外部用户的视角看 ,一个用例是执行者 actor 与目标软件系统之间的一次典型的交互作用.从软件系统内部的视角动身, 一个用例代表系统执行的一系列动作, 动作执行的结果能够被外部的执行者所发觉. 执行者是指外部用户或外部实体在系统中扮演的角色.假如多个用户在使用目标软件系统时扮演同一角色, 这些用户将由单一执行者表示. 反之, 假如一个用户扮演多种角色,就需要用多个执行者来表示同一用户.对用例的完整描述包括用例名称、参加执行者、前置条件、一个主大事流、零到多个辅事件流和后置条件. 主大事流表示正常情形下执行者与系统之间的信息交互及动作序列,辅大事流就表示特殊情形或反常情形下的信息交互及动作序列.显式的分隔主、 辅大事流是为了使分析人员第一集合于正常的业务处理流程,同时也便于用例的读者懂得业务需求.用例主要来源于分析人员对场景的分类和抽象,即将相像的场景进行归并,使一个用例可编辑资料 - - - 欢迎下载精品_精品资料_可以通过实例化和参数调剂而涵盖多个场景.例如,“家庭保安系统“中的“开机”、“关机”、“复位” 3 个场景可以归并为“命令处理”, 3 个场景之间的差异通过用户命令种类的不同而表达.类似的,“门窗监测”、“烟雾监测”两个场景也可归并为统一的“传感器监 测”用例 .其实 ,对于熟识业务领域的分析师而言,也可以略过场景,直接从业务需求描述中猎取用例.在“家庭保安系统”中,执行者有“用户”、“传感器”、“报警”和“显示器” , 用例有“系统配置” 、“命令响应”和“传感器监测”.下面以“传感器监测”为例说明用例的一般描述格式:用例名称:传感器监测.参加执行者:各类传感器、警报器、报警和显示器.前置条件:系统已开机.主大事流:1传感器向目标软件系统上报其监测数据,系统判别监测数据是否正常.2假如不正常,系统启动警报器,拨报警号码.可编辑资料 - - - 欢迎下载精品_精品资料_3报警接通后 ,软件系统播出语音,报告反常大事发生的时间、的点和大事的性质.4系统在掌握面板的显示器上显示报警时间及当前状态报警.辅大事流:1假如报警无人接听 ,就依据重拨推迟反复拨号,直至接通,再转入主大事流的步骤 3.2假如重拨次数到达系统预设的最大次数,仍无人接听,就跳过主大事流的步骤3,转入步骤 4.后置条件 :假如已发觉反常监测数据,系统处于“报警“状态.否就,系统处于正常的监测状态.三、用活动图表示用例