《软件需求工程(第2版)》一3.3 确定调查对象

简介: 本节书摘来自华章出版社《软件需求工程(第2版)》一书中的第3章,第3.3节,作者 毋国庆 梁正平 袁梦霆 李勇华,更多章节内容可以访问云栖社区“华章计算机”公众号查看

3.3 确定调查对象

本阶段的基本任务是明确地确定来自不同层次的需求来源和用户,并将其分类。
谁是产品的用户这是必须搞清楚的问题。直接从软件系统的实际用户收集需求是非常重要的,因为导致开发项目成败的主要原因是缺乏用户参与以及最终形成的用户需求不完整。
在需求获取中容易产生的问题是对不同层次的需求信息易于产生混淆。例如,能提供目标需求的人不能提供具体的功能需求,因为他们不是实际的使用者。而有些用户能描述软件系统应完成的任务和业务流程,但他们有时不能提供完成这些任务的所有功能需求。因此,确定不同层次的需求来源和用户成为本阶段的基本任务。
由于软件的需求分为三个层次,即目标需求、业务需求和功能及非功能需求等,故应根据需求的层次来区分不同的用户。
1)提出目标需求的用户。能支付或采购软件系统费用的用户,即客户,如工厂或公司领导人和高层管理人员。他们的任务就是要阐明软件系统的高层次概念,如开发项目的目的和目标、总体规划,以及主要的业务内容,但他们提供不了所有具体的细节。
2)提出业务需求和功能需求的用户。这些用户是直接或间接使用系统的用户。他们相当清楚要使用该系统完成什么任务,以及系统应具备的重要功能和特性等。虽然他们能描述其业务流程和具体业务,但不一定能提供计算机系统,特别是软件系统应实现的所有具体功能和非功能需求。
3)软件开发人员,主要是指系统分析员。系统分析员虽然不是用户,但他们必须从用户的角度,根据用户提供的需求信息和业务流程理解和分析出软件系统应实现的具体功能和非功能需求,从而使软件系统能按照用户要求完成任务。软件开发人员也将根据这些需求设计和实现软件系统必须具有的功能和特性。
软件系统面临的用户是很多的,这些用户由于所在的部门、职责和掌握的知识不同而存在差异,如直接使用和非直接使用软件系统的用户、不同的专业知识和计算机系统知识、不同的部门和业务过程等。这些用户都将有自己的一系列功能和非功能需求,如没有经验且偶尔使用计算机的用户希望系统操作简单和易使用等,而利用系统完成计算工作的用户则希望系统能计算正确且速度较快等。为了避免忽视和遗漏某些用户的情况,可以根据用户的某些方面将用户分类,例如:
根据用户所在的部门和职责,如计划部门、销售部门、财务部门等;
根据用户使用系统的频繁度和优先级等;
根据用户掌握的计算机知识和使用计算机的熟练程度;
根据直接使用和非直接使用软件系统的情况,所谓非直接使用软件系统是指这些用户是通过报表或其他应用程序访问系统的数据和系统提供的服务。
在将用户分类后,进一步寻找每类用户的代表或联络人。这些人代表特定的用户类,并可充当该用户类与开发人员之间的“窗口”。当然,这些人也必须是真正的用户,而不是单纯的代理人。开发人员通过与他们的直接交流和协商,可获得大量的和不同用户的需求信息。每个用户代表从他所代表的用户类中收集需求信息,协调他所代表的用户在需求表达上的不一致和矛盾,为用户类整理成统一的需求信息。此外,用户代表应具有如表31所示的义务[14]。
image

软件需求可来自各个方面,而且用户类也不一定都是指人。有时也可以把其他应用系统或计算机硬件设备和接口等视为附加的用户类成员,这样就可确定软件系统与外部应用系统或计算机硬件相关的需求。这就是说需求信息除了来自用户类外,还可来自于其他方面。因此,为了不遗漏必要的需求信息,还需考虑从哪些地方能收集到需求信息。下面是几个典型的软件需求来源:
1)直接和间接使用软件系统的用户。这是用户需求的主要来源。可采用直接交流的方式获得他们的需求信息。
2)系统需求规格说明。其包括对软件和硬件的需求规格说明。当其中部分需求与软件系统相关时,从中可获得对软件系统的一些功能或非功能要求。
3)市场调查和用户问卷调查。此调查有助于从众多用户那里获得大量的需求信息,然后经过分析从中获得一些有用的用户需求。
4)已开发出的和待开发的同类软件系统的描述和文档。从同类软件系统的描述和文档中获得类似的用户需求。不过由于系统间存在着差别,不能生搬硬套同类系统的用户需求。
5)对人工系统中存在的问题的报告和增强要求。人工系统是指现实中已存在的手工操作的系统。通过收集用户在人工系统中遇到的问题,将有助于导出对软件系统的一些用户需求。
6)观察正在工作的用户。开发人员可观察用户在人工系统中的工作流程,并记下在使用当前系统时所遇到的问题和处理事务时的步骤。直接观察用户的工作流程有助于对他们的活动有正确的理解,然后通过总结和分析使所获得的需求信息具有普遍性和代表性,而不仅是单个用户的。当然开发人员还可为改进用户的事务处理过程提出一些合理性建议和见解。
7)用户工作内容的分析。通过开发具体的场景和活动顺序可以确定用户在人工系统需要进行的工作,由此可获得用户处理事务中必要的功能需求。这可使用场景描述方法来完成。
当确定了用户类及明确了用户需求的主要来源后,就可从不同的渠道和不同的人那里收集到大量的需求信息。但这些需求信息既包含了明确的用户需求,也包含了一些不一致和含糊的需求,这就需要寻找需求的决策者。这些决策者能根据具体情况,对存在问题的需求信息做出决定。因此,在正式实施收集需求信息之前,还需要确定和弄清楚谁是需求的决策者。如果不清楚谁有责任做出决策,由软件开发人员来决定的话,将是十分糟糕的事情,因为软件开发人员不能决定用户的业务。当然,在处理有问题的需求信息时,决策者并不是固定不变的,而是根据实际中可能发生的具体问题来确定。
如果个别用户就某些需求与其他大多数同类用户不能达成一致意见,决策者应为用户代表。
如果用户类之间存在不一致的需求,决策者为领导层和高管人员。他们可以根据哪一类用户的需求更为重要而做出决策。
不同类型的用户(部门不同),可能要求产品按照各自的爱好来设计和实现,这时决策者可由开发人员来担任,由他们根据目标需求,决定哪些是重要的和最关心的客户,从而做出决策。
用户部门经理所提出的需求与其所在部门的真正用户提出的需求不一致时,首先在明确用户需求必须满足目标需求这一前提下,决策者为该部门的用户代表,而不亲自使用软件系统的经理必须服从代表用户类的用户代表。
当开发人员想象中的系统与用户需求不一致时,决策者为用户。
如果市场部门提出的需求与开发部门的开发人员所想要开发的系统发生冲突,决策者应以市场部门为主。但有时可能由于市场部门一味迁就用户,导致用户需求有些不合理以及可能增加开发成本,这时需根据具体实际情况来确定市场部门和开发人员之间谁是决策者。

相关文章
|
1月前
|
监控 搜索推荐 数据安全/隐私保护
竞争对手背后的人力资源管理软件真相大公开!
一款合适的人力资源管理软件能够帮助企业提升效率,增强团队凝聚力,提升企业竞争力。本期为您盘点的不能错过的人力资源管理软件有:Zoho People人力资源管理系统,Cornerstone OnDemand,Kronos Workforce Ready,Cezanne HR。
316 0
|
9月前
软件工程——软件计划(生存周期),可行性研究报告
生存周期其中之一,目的是确定系统总的目标和总的要求,以及投资效益分析和进度。其实就是,我想要做一盘红烧肉,我需要列一个清单:红烧肉需要哪些材料,需要多长时间,怎样更快又好吃。
sbs
|
SQL Oracle 关系型数据库
软件需求工程
前言之前看过一些系统分析相关,偏信管、软工专业的书:《系统分析与设计方法》,《软件需求》。 需求工程 部分对实际开发工作有不少帮助。相信很多开发也不太了解信管或者软工,更多关注于具体领域的前沿技术,所以这些概念应该能用到。文中部分是引用书中原文,部分是个人观点。文中产品,软件,系统是类似的含义。2020.7.10 —— by zz。需求需求一词的字典义是“被命令或强制性的东西;需要或者必要”,和软
sbs
563 1
软件需求工程
|
SQL 资源调度 Oracle
什么是软件实施?软件实施前景几何?软件实施的面试题有那些?
事情是这样的,由于自己目前还没有对象,就想着在兰州找一份还不错的工作,于是投了一家在我的家乡还算不错的公司,对方却说有可能是软件实施岗位,于是趁机了解了一下, 什么是软件实施? 软件实施掌握的基础知识有哪些? 软件实施前景几何?
823 0
|
BI 项目管理
艾伟也谈项目管理,五大绝招 消除项目小组与用户的矛盾
  BI项目实施过程中,会导致用户现有工作量的增加,会对用户现有工作进行重新分配,总之会影响用户的即得利益。在这种情况下,项目小组与用户之间矛盾的增加。虽然说BI系统主要是企业管理者在使用但是这个系统的基石基础数据,则是一线用户所提供的。
925 0
如何在应用内设计一份调查?
本文讲的是如何在应用内设计一份调查?,上周,一个我最喜欢的应用发调查邮件给我。何乐而不为呢?但是我几乎无法完成调查,因为它太麻烦了。在一个主题下面同一页他们提问了 2 到 3 个问题,这导致我要上下左右移动我的屏幕才能看见完整问题。
1251 0
使用强大的调查技巧了解用户的动机
本文讲的是使用强大的调查技巧了解用户的动机,我们需要用户的意见才能创造人们喜闻乐见的产品——那些他们乐意使用和消费的产品。你可以利用问卷调查的形式来禅师理解用户的动机,但问题是调查问卷不够灵活并且也不能获取用户的核心情绪。
1227 0
《软件需求工程(第2版)》一3.4 实地收集需求信息
本节书摘来自华章出版社《软件需求工程(第2版)》一书中的第3章,第3.4节,作者 毋国庆 梁正平 袁梦霆 李勇华,更多章节内容可以访问云栖社区“华章计算机”公众号查看
1401 0
《软件需求工程(第2版)》一1.5 需求工程定义
本节书摘来自华章出版社《软件需求工程(第2版)》一书中的第1章,第1.5节,作者 毋国庆 梁正平 袁梦霆 李勇华,更多章节内容可以访问云栖社区“华章计算机”公众号查看
1252 0
|
程序员
《程序员度量:改善软件团队的分析学》一软件团队是成功还是失败
本节书摘来华章计算机《程序员度量:改善软件团队的分析学》一书中的第3章 ,Jonathan Alexander 著 张燎原 周峰 张刚 宋励奋 译更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1060 0