
第二阶段 项目的需求分析
需求分析阶段的主要工作是由需求顾问负责走访用户,从用户访谈中归纳、抽取总结出用户的需求,一般要经过定义用户场景,定义用户用例,编写需求说明书三个主要步骤,如项目需求分析阶段图阶段图所示。软件测试工程师在需求分析阶段的工作主要是协助需求顾问或者开发工程师完成需求分析的辅助工作。
项目需求分析阶段工作图
需求分析阶段的工作是项目经理带领下,主要由需求顾问完成的。开发和测试团队中的资
深工程师也会参与一部分需求说明书的编写工作。项目组中不同角色的人员与交付物之间的关系如如项目需求分析阶段各团队与交付物关系图所示。
项目需求分析阶段项目团队与交付物关系图第四章 用户场景
上一章的项目启动会完成了项目的启动和计划阶段,从本章起项目开始实施,进入正式开
发阶段。软件项目的开发首先是需求分析,而需求分析的第一项工作就是定义用户场景。这一章的工作是定义用户场景,由需求顾问负责完成。资深的开发工程师和测试工程师会参与其中一部分分析和设计工作。技术文档工程师在这个阶段的主要工作是协助需求顾问编写场景定义,为后续的需求分析工作打下基础。本章对用户访谈、访谈整理、定义岗位职责、定义系统用户及定义系统用户场景等步骤做了详细讲解,并提供了相应的写作训练。
4.1 概述
定义用户场景的工作过程比较长,中间的交付物比较多,工作量也比较大,技术文档工程师需要协助需求顾问,参与其中的每一个步骤,并且在需求顾问的指导下编写每一步交付物的内容,实施步骤和交付物如图4-1所示。
图4-1 定义用户场景的交付物及实施流程图
1.背景
定义用户场景是确定系统需求的首要的工作。用户场景的主交付物——《用户场景描述》是尝试模拟用户的各种使用系统的情况,这是建立完善的测试用例的依据之一。定义
用户场景需要从用户访谈开始,再经过访谈整理、定义岗位职责、定义系统用户、归类用户需求/导出系统模型等步骤中间工作,最后定义系统用户场景。技术文档工程师通过参与用户场景的编写来了解系统,熟悉系统,为后续其他技术文档的编写打下良好的基础。
以本书使用的《公交运营调度系统》为例,由项目经理组织用户访谈,需求顾问整理访谈内容后定义出岗位职责、系统用户、系统模型和用户场景,最终提交《用户场景描述》。
2.交付物
《用户场景描述》
3.团队分工
技术文档工程师在此阶段主要与需求顾问紧密合作,根据访谈记录整理出《访谈故事卡》;获取系统用户及其岗位职责信息,来完《岗位职责表》和《系统用户表》;并获取用户场景信息,来最后完成《用户场景描述》。并且还需要通过需求顾问的审核后,才能交付于整个开发团队。
表4-1 项目计划团队分工
角色 | 任务 |
用户 访谈 | 访谈 整理 | 定义 岗位职责 | 定义 系统用户 | 定义 系统模型 | 定义 用户场景 |
项 目 组 | 项目经理 | ☆ | | | | ☆ | |
需求顾问 | ☆ | ☆ | ☆ | ☆ | ☆ | ☆ |
技术专家 | | | | | ☆ | |
技术文档工程师 | ☆ | ☆ | ☆ | ☆ | ☆ | ☆ |
开发工程师 | | | | | | |
测试工程师 | | | | | | |
网络工程师 | | | | | | |
客 户 | 项目责任人 | | ☆ | | | | |
项目发起人 | | ☆ | | | | |
机构资助人 | | ☆ | | | | |
客户各级负责人 | | ☆ | | | | |
典型用户 | | ☆ | | | | |
| | | | | | | |
表4-2 项目计划团队任务目标
角色 | 任务目标 |
项目组 | 项目经理 | 组织项目组走访用户,组织需求顾问和技术专家进行定义系统模型 |
需求顾问 | 主持用户访谈并记录谈话内容,按照6W方式整理出访谈记录,从访谈记录中分析岗位职责,从岗位职责中定义系统用户 |
需求顾问 技术专家 | 根据系统用户定义系统用户模型,最终确定用户场景。 |
技术文档工程师 | (1)从需求顾问获取用户访谈信息, (2)利用客户访谈信息编写故事卡, (3)将故事卡提交需求顾问审核 (4)依据需求顾问的意见进行修改 (5)经过需求顾问审核通过后向需求顾问提交故事卡 |
(1)从需求顾问获取用户方的岗位职责信息, (2)制作职责表, (3)将职责表提交需求顾问审核 (4)依据需求顾问的意见进行修改 (5)经过需求顾问审核通过后向需求顾问提交职责表 |
(1)从需求顾问获取系统用户信息, (2)制作系统用户表, (3)将系统用户表提交需求顾问审核 (4)依据需求顾问的意见进行修改 (5)经过需求顾问审核通过后向需求顾问提交系统用户表 |
(1)按照需求顾问要求编写用户场景 (2)将用户场景提交需求顾问审核 (3)依据需求顾问的意见进行修改 (4)经过需求顾问审核通过后向需求顾问提交用户场景 |
开发人员 测试人员 | 协助项目经理、需求顾问、技术专家的工作 |
客户 | 典型用户 | 介绍业务并说明对系统的要求 |
项目责任人 项目发起人 机构资助人 客户各级负责人 典型用户 | 确认访谈记录 |
| | |
4.知识目标
(1)了解需求分析的重要性。
(2)理解需求分析阶段工作流程及主要交付物。
(3)了解用户场景和用例的区别。
(4)了解岗位职责与系统用户的关系。
(5)掌握用户故事卡与系统需求的导出关系。
5.能力目标
(1)能够独立利用调查问卷和访谈调查表进行客户用户访谈,了解用户对系统的要求。
(2)能够独立利用用户故事卡整理访谈记录,熟悉用户业务。
(3)能够独立进行岗位、职责以及系统用户定义。
(4)能够在需求顾问指导下,进行系统需求模型的推导。
(5)能够在需求顾问指导下,定义软件的系统需求,为定义系统测试需求做好准备。
(6)能够独立撰写用户场景,在熟悉用户场景的基础上设计测试用例。
1.2实施步骤
1.步骤说明
定义用户场景主要由需求顾问负责,需要下面几步完成:
第一步 用户访谈
走访用户,调查用户需求,将访谈结果形成《用户访谈原始记录》。
第二步 访谈整理
对《用户访谈原始记录》进行整理,按6W的方式进行组织,整理成“故事卡”形式的文档。
第三步 定义岗位职责
将“故事卡”进行总结、归类,列出用户单位中的每一个岗位,以及这个岗位从事的业务。
第四步 定义系统用户
合并相同的职责,将职责相同的岗位合并为一个,形成系统用户,岗位的职责形成系统用户的业务需求。
第五步 归类用户需求,导出系统模型
根据系统用户的业务需求推导出系统要实现的功能,以及为了实现这些功能系统应该具备的资源,包括网络、数据库和通信设备等。
第六步 定义系统用户场景
根据岗位职责、系统用户的定义,将场景明确、详细地描述下来。
文档交付物:第二步:《访谈故事卡》;第三步:《岗位职责表》第四步:《系统用户表》;第五步:《用户场景描述》
文档质量要求:
∙《访谈故事卡》所有访谈的结果需要按6W的方式进行组织,需要将整理后的结果与访谈对象书面确认。
∙《岗位职责表》中的不能客户方干系人的岗位,也不能有任何遗漏;
∙《系统用户表》定义出的系统用户不能超出客户方干系人的范围,也不能有遗漏。
∙《用户场景描述》要分总场景和分场景来描述,分场景按照系统用户的职能来划分,每个分场景不能有重合的内容。
文档作用/质量要求:
∙《访谈故事卡》是需求分析阶段所有分析的基础,所有的工作和文档都由此而来。
∙《职责表》用于定义系统用户,职责相近或相同的用户被称为系统用户。
∙《系统用户表》的系统用户将代替现实中的用户,作为系统的角色参与所有的需求分析中来,因此定义出的系统用户要全面,不能有遗漏,否则系统的功能将有缺陷。
∙《用户场景描述》是定义用户用例的基础,所有用例都会从场景中抽取出来。为了让抽取工作更加准确,因此需要有清晰、明确的上下文环境,说明场景的发生背景及时间;需要从用户的角度出发,描述用户做什么,与系统的交互行为,同时需要描述用户对出现问题的反应
文档逻辑结构:
∙《访谈故事卡》
o被访人员的信息,包括姓名、职位、部门、谈话时间等。
o用户谈话记录,用户谈话的原始内容
o整理出来的故事:按照事件、缘由、流程、人物、时间、地点来描述
o用户确认意见:用户对谈话整理成故事卡确认
∙《岗位职责表》
o岗位名称:用户岗位的名称
o职责名称:该岗位这项职责的命名
o职责描述:职责内容
∙《系统用户表》
o用户岗位:用户在系统中被定义的岗位
o用户职责:在某一岗位下用户的职责
o用户业务需求:某个用户职责下的业务描述
∙《用户场景描述》
o用户场景汇总:所有用户场景的一个汇总表
o单个用户场景描述:描述单独一个用户场景,主要包括场景名称、场景代码、场景描述三部分。
2. 完成环节
编写《用户访谈故事卡》。
访谈故事卡包含了被访人员的信息、用户访谈记录、整理故事、公用信息、整理人及用户和负责人的确认。
访谈故事卡模板如表4-7所示:
表4-7 用户访谈故事卡表
用户访谈故事卡 |
被访人员信息(从访谈记录中提取访谈对象) 姓名: 职位: 部门: 级别: |
用户访谈记录 | 整理故事 |
(跟该用户有关的所有访谈记录) | what(时间是什么) why(事件发生缘由) how(事件发生流程) |
以上所有公用: Who(用户名) When(用户故事发生时间) Where(用户故事发生地点) |
整理人:(作者名称) 访谈用户确认:(用户确认签名) 负责人确认:(开发经理确认签名) |
| |
编写《岗位职责表》。