《软件需求工程(第2版)》一3.7 使用场景技术的需求获取

3.7 使用场景技术的需求获取

在开发人员与用户的交流中,场景作为工具可发挥较大作用。开发人员在与用户进行有关软件需求的谈话和交流中,谈论具体事例的情况较多,用户也经常结合专业知识讲述他们的具体工作和工作流程。因此,场景很自然地作为交流的工具使用,每个场景可以对应系统的一个潜在的需求。

3.7.1 场景的定义及构成

所谓场景是指用户与软件系统为实现某个目标而进行交互活动过程的描述。
场景可视为是对使用系统经历的解释。软件开发人员可利用场景来模拟用户与软件系统为完成某个功能而进行的交互活动过程,通过分析来获取其中有用的需求信息。对于较为复杂的软件系统,通常需要许多场景。
场景的构成可以有不同的形式,应由如下几个方面的内容构成:
 执行者(用户)
进入场景前系统状态的描述
执行者的目的
动作和事件系列(包括正常或非正常事件流)
上述4个方面的内容既可以以简洁的方式填写也可部分省略不写。
通常,场景应具有下述特征:
场景代表某些用户可见的功能,可用于描述一个具体的系统功能;
场景总是被参与者启动,并向参与者提供可识别的信息;
场景必须是完整的。
图3-2表示了一个用自然语言描述的某人切断PC电源的场景。在这个场景中,用户顺序地描述了如何退出Windows 98,并切断PC电源的一系列交互活动。
王某是使用装有Windows 98系统的PC用户,已有一年的经验。他几乎每天使用PC向朋友发电子邮件,今天在发送了4封电子邮件后想切断PC电源。
王某首先按下屏幕中的“开始”按钮,在显示出来的菜单中选择“关闭计算机”选项。在屏幕中央出现了与关闭计算机相关的对话框,询问用户是否真正关闭计算机。王某确认并按下了“关闭计算机”的按钮。计算机在使屏幕变黑后,自动切断PC电源。

图3-2表示的场景可使用前述的描述形式具体表示如下:
 执行者(用户):王某
 进入场景前系统状态的描述:使用PC的经验是1年,几乎每天使用。另外,今日发送电子邮件的工作已结束。
 执行者的目的:退出Windows 98,并切断PC电源。
 动作和事件系列:图32中的第2段文字,从按下“开始”按钮到切断PC电源的事件完成为止。

3.7.2 场景的表示

除了可用自然语言表示场景外,也可使用图形、动漫画等其他表示形式。场景也可与快速原型方法结合使用。此外,也可利用一些已有的半形式化的图形表示方法和技术(如流程图、状态图、时序图)以及形式化的方法和技术(如CCS、CSP、Z语言等)来表示场景。场景的一些典型表示形式如表32所示。

场景的使用者可以根据具体情况有选择地使用上述表示形式,也可组合使用几种表示形式。对于某些水平较高的专业技术人员,可以使用更加适合的特殊人工语言来描述场景。但是,在需求信息的获取中,由于用户的参与相当重要,使用非形式化的表示形式是合适的,形式化的表示形式对于用户来说难以理解。

3.7.3 场景的种类

场景描述了执行者的目标,但该目标能否实现决定了场景可大致分为正常场景和失败场景两类。场景的分类将有助于对场景的分析。对于正常的场景,主要注重于目标的实现过程以及效率如何。对于失败的场景,注重于分析失败的理由。如果找到了执行者不能达到目标的理由,将成为改进软件系统的参考因素。
更进一步,根据场景描述的内容可分为正向场景和逆向场景(AntiScenario)。前者描述所希望实现的目标、与目标相关的执行者和事件等,后者描述用户所不希望的需求,描述的功能将不能写入需求规格说明中。逆向场景作为描述的工具对于收集需求信息的初期是有效的,经过事先的分析将有利于防止混入一些无用的需求信息。
场景之间亦可以建立关系以及精化处理。例如,当向一个场景中添加一些动作构成了另一个场景时,这两个场景之间的关系就是扩展关系,后者继承前者的一些行为。当一个场景使用另一个场景时,这两个场景之间就构成了使用关系。一般说来,如果在若干个场景中有相同的动作,则可以把这些相同的动作提取出来单独构成一个场景。大部分场景将在项目的需求获取阶段产生,并且随着需求分析工作的深入还会发现更多的场景。这些新发现的场景都应及时补充进已有的场景集合中。

3.7.4 使用用例的需求获取

实际上,关于场景的定义有许多,例如,Bermer和Johnson定义的场景[15],以及Kotonya和Sommerville[16]定义的场景。本节将主要介绍由Jacobson[17]定义的与场景相关的用例(usercase)这一需求获取技术。用例与前述的场景并不是同一概念。用例通常用于描述可发生的所有事件序列,而场景则是描述其中的一部分。因此,用例也可以说是场景的集合,一个场景是用例的实例。
Jacobson提出的用例用于描述软件系统与一个外部“执行者(actor)”的交互顺序,它体现了执行者完成一项任务的过程。执行者可为一个人或一个应用软件系统,也可以是硬件或是某些与软件系统交互以实现某些目标的外部实体。在利用用例建立系统模型时,软件系统被视为一个黑盒子,并可使用自然语言顺序地描述软件系统与外部执行者的相互作用。下面,我们以自动取款机(ATM)为例来说明。
例ATM的用例模型和取现金的用例如图33和图34所示[18]。图33表示与ATM相关的用例模型。图34用结构化自然语言的形式描述ATM正常工作的用例。

实际上,用例的定义也有不同的表示形式[19,20]。例如,为便于描述和提高重用性,可利用如下所示的结构化形式:

执行者:用例的主导者。
目的:用例的目的。
前提条件:启动用例的条件。
结束条件:用例结束时应满足的条件。
基本序列:描述在满足前提条件下启动用例后,按时间顺序正常发生的执行者与软件系统的相互作用。
异常序列:按时间顺序描述在正常序列的相互作用中发生异常情况时,软件系统与执行者的相互作用。
备注:应向设计者转达除功能需求以外的非功能需求、设计约束条件和限制,以及有待解决的事项等。

3.7.5 场景技术的特点

场景技术不仅把软件系统的需求信息文本化,而且有助于在实现软件系统前明确用户与软件系统的相互作用。此外,场景技术还具有如下特点:
可以把当前系统存在的问题作为实例记录下来。
可以成为项目相关人员间的共同语言。
由于场景描述了软件系统的操作,比较具体,易理解性较好。
通过场景使得提出和获得需求的双方之间能建立起相应的理解。
另一方面,在使用场景技术时,也要注意如下问题:
场景的数量,即一个软件项目应该写多少个场景没有限制标准,主要视项目的规模和复杂性而定。但如果场景数量过大,易加大分析和理解的难度。
场景的冗余问题。应尽量避免场景描述的内容发生重叠,可根据实际情况合并和去掉一些内容重叠的场景。
应防止场景描述内容的冗长。

时间: 2024-07-30 16:51:25

《软件需求工程(第2版)》一3.7 使用场景技术的需求获取的相关文章

《软件需求工程(第2版)》一导读

前 言 随着计算机应用的不断发展和深入,人们需要收集和处理的信息规模急剧增大,其中计算机软件在信息收集和处理中起着至关重要的作用.由于软件已成为信息基础设施并具备密集型特点,使得软件一方面日益成为人们生活中的一部分,如电子政府.电子商务和手机等,人们也日益依赖软件.另一方面,一些高尖端的技术领域,如航空航天.国防军事等领域,对软件的质量提出了很高的要求.然而,软件开发的开发状况和质量远未达到人们的期望和要求,例如,大部分软件产品不能在预期计划和预算经费内完成,软件的质量低下等.软件质量所导致的软

《软件需求工程(第2版)》一2.4 软件需求的开发和管理过程

2.4 软件需求的开发和管理过程 针对需求工程应解决的问题和面临的困难,需求工程采用工程化的方法来进行与软件需求相关的活动.需求工程的目标就是给出待开发或待完善的软件系统的一个清晰的.完整的.无二义性的和精确的描述,并最终产生高质量的软件需求规格说明.需求工程怎样达到其目标?这是通过需求工程中一系列的活动完成的.本节将概要地说明需求工程的过程及相关活动,有关这些活动的具体内容.实施方法和相关技术将在本书的后面几章分别给予说明. 软件需求的开发和管理过程是由导出.确认和维护软件系统需求规格说明的一

《软件需求工程(第2版)》一2.3 需求工程在软件开发中的地位

2.3 需求工程在软件开发中的地位 2.3.1 需求工程对软件开发的影响 从软件工程提出的各种开发模型中可看出,需求工程是软件开发过程中的一个阶段.有些改进的开发模型,如快速原型模型也是因用户需求问题而提出的.需求工程处于软件开发的开始阶段,提供了软件项目其余部分得以实施的根基.显然,如果在开发的后期出现错误,受到影响的只是与后期阶段相关的工作,修正错误通常也是相对容易的事情.然而,如果错误出现在开始的阶段,而且没有立即发现和纠正,那么所有后续阶段的工作都是在错误的基础上进行的,修正错误的成本将

《软件需求工程(第2版)》一第3章 需 求 获 取3.1确定需求开发计划

第3章 需 求 获 取 在软件计划完成之后,进入需求分析与定义阶段,亦即需求工程的活动开始.软件需求获取(简称需求获取)阶段的任务简单地说就是获取用户的需求信息.需求获取是需求工程的早期活动,也是十分重要的一步.由于需求获取可能是软件开发中最困难.最关键.最易出错和最需要交流的活动,故其只能通过用户与开发人员之间进行高度的合作和交流才能成功.开发人员并不是简单地照抄用户所说的话,需要从用户所提供的大量信息中分析和理解用户真正的需求.需求获取阶段的活动可大致划分为如图31所示的一系列工作.有关这

《软件需求工程(第2版)》一1.4 需求规格说明

1.4 需求规格说明 软件需求规格说明亦称软件需求规约或功能规格说明,可以说是需求工程最终产生的结果.所谓需求规格说明是软件所应满足的全部需求,并可用文档的方式完整和精确地陈述这些需求.需求规格说明是项目相关人员对将要开发的软件系统所达成的共识,是进行系统设计.实现.测试和验收的基本依据,也是整个软件开发过程中最重要的文档[11].需求规格说明同时代表了权限的移交点:客户对需求规格说明的说明内容拥有最终发言权,而开发人员则需根据软件需求规格说明实施软件系统的开发.因此,最终开发出的软件系统是否能

android-Android程序切到桌面软件崩溃,麻烦版主大神帮忙看下是什么原因

问题描述 Android程序切到桌面软件崩溃,麻烦版主大神帮忙看下是什么原因 这是日志 解决方案 /** 捕捉按下返回键操作 */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO 按两次返回键退出应用程序 if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { // 判断间隔时间 大于2秒就退出应用 if

计算机教材-求计算机组成与设计硬件/软件接口第5版课后习题答案,请发到348853203@qq.com

问题描述 求计算机组成与设计硬件/软件接口第5版课后习题答案,请发到348853203@qq.com 求计算机组成与设计硬件/软件接口第5版课后习题答案,请发到348853203@qq.com 谢谢 解决方案 你还不如直接找你们学长要,多思考,别总是看答案!

中国联通IM软件“沃友”iPhone版上线

沃友iPhone版已经在App Store上线 新浪科技讯 8月18日上午消息,中国联通宽带在线总经理左风今日在微博上暗示, 中国联通IM软件"沃友"iPhone版已通过审核,并上线. "清晨起来,推开窗户,风和日丽,气爽心怡.八月十八,零八零零,如此吉利,定有吉事.团队艰辛,拼搏数月,苍天有眼,修得正果.虽有缺口,仍是苹果,众拾柴,燎原星火!必须的!"左风今日在微博上说. 左风的此条微博暗示"沃友"软件已经通过苹果公司审核,并上线.在苹果App

金山办公软件发布最新安卓版WPS

摘要: 查看最新行情 金山办公软件发布最新安卓版WPS 3月26日早间消息,金山办公软件今天在中国正式发布了WPS Office 6.0 for Android(以下简称WPS 6.0),并承诺全球用户可永久免费使用. 和之前的   查看最新行情 金山办公软件发布最新安卓版WPS 3月26日早间消息,金山办公软件今天在中国正式发布了WPS Office 6.0 for Android(以下简称"WPS 6.0"),并承诺全球用户可永久免费使用. 和之前的版本相比,WPS 6.0加入了&