读者试用范围:需求调研人员、小组组长、开发人员等。
撰写本文目的:培训项目组成员需求调研过程中的工作技能。
需求调研是为需要说明书撰写做前期工作,需要说明书是从需求调研表中得到或抽取而出;是了解实际工作中真正需要什么样的程序的过程,再把这些需求细节整理由设计部开发,给用户使用。
需求调研在系统开发和部署试用阶段尤为重要,如何把项目组工作成果成功推广使用,得到用户的肯定认可是后期需求调研的重中之重。
开发软件系统最困难的部分就是准确说明开发什么。一旦出错会给系统带来极大伤害,并且以后对它修改也极为困难。
结论:作为项目组设计开发人员来说,做好后期的需求调研工作是项目成败的关键!
选取需求调研过程中的一些辅助工具,选取要求是自己(本组)熟悉的工具, 工具最好也是要求是普通流行的,因为要考虑交流的问题。
如:WORD、EXCEL、PPT、POWERDESIGNER、STARTUML等。
对象:售前人员、商务人员;
内容:招标书、答标书、合同、以及其他与用户交流的口头或书面材料(包括宣传、承诺等)
甲方行业情况的了解、最好看一些行业方面的书籍,学习业务领域知识
一定建立一个专门的设计环境(文档目录)来为本项目服务,进行一定的资源分配,进行必要的文件管理。
用户单位的组织机构是什么,哪些部门和人员岗位参与本系统的使用?上下级关系如何?
为项目组建立起外部联系通讯录。
调研计划制定目的:对调研活动序列进行划分、评估、资源分配。在制定计划时考虑到分析时间。计划在公司内部评审通过后,及时提交给客户,让客户对调研计划有充分的了解。
调研计划包含的内容:
注意事项:
项目任务书下达给后,项目经理及调研人员应该对合同中软件范围认真审阅,虽然只大概写了需求范围,但这些信息及为重要,它是调研计划制定的一个依据。
计划制定后最好召开项目启动会议,相关领导和业务部门参与,确定双方项目组成员,确定客户方的配合人(唯一联系人)、领导(唯一协调人),介绍项目组的人员安排、总计划、需求调研计划将行程和计划通知客户。上会以资重视。
需求分析报告的读者有客户、设计人员、开发人员,在编写时一定要考虑到文档的可读性。需求调研形成的成果具体如下:
1) 收集用户需要产生的单据和报表 ;表单及报表的适用对象
2) 画出业务流程图,并认真检查和核对每条路径中是否完备,异常情况怎样处理(系统的动态特性);
3) 依据流程图收集每个步骤需要的使用和操作的数据,确定数据的类型和范围(系统的静态特性);
4) 画出业务实体及其关系,并估计业务实体的产生频率和数据量;
5) 评估业务流程和实体中需求变化的可能性;
6) 用户权限;
7) 信息系统建设现状;
8) 收集用户对系统界面风格、版式、颜色的偏好和需求;
9) 对系统将来使用的硬件、操作系统、网络情况进行了解;
10) 收集系统初始化数据,或者要求客户进行收集和整理,明确期限时间;
11) 编制简单界面原型(该步骤也可放在需求分析之后完成,再次和用户进行沟通)
《需求规格说明书》
系统原型
如果对客户业务不熟悉,在调研前要先做好充分的准备。
如果做的项目是你所不了解的行业(专业),最好要有专家——最终用户做专家是最好的,调研要了解这个专业,不是要你成为专家,但最少要了解一定的专业知识(最少专来词汇你要知道),否则就不知道去问什么或如何去问他们,甚至于人家在说什么你也不知道。
相应的专业资料是必须的,最少要有专业入门书籍和对应的资料,也需要更深入的一些资料。当然有专家的参与就另当别论。
如果行业的难度不是很大,可以通过分析人员的自我学习在短时间内了解行业,也许可以不用专家,否则专家是必须的。
重视调研资料的准备:调研资料(Rose图、Ppt、原型准备)一般客户图形化界面感兴趣,最好是采用图的方式把东西展示给用户,可以意思转换为用例图、用户界面、流程协作图、状态图等。
需求调研过程有选择的确定调查方式,例如:
12) 与客户交谈,向用户提问题
13) 参观用户工作流程,观察用户操作
14) 向用户发调查问卷
用户通常没有耐心回答论述题,所以应当以选择题和是非题为主。
15) 与同行、专家交谈,听取他们的意见
16) 分析已经存在的软件产品,提取需求
17) 从行业标准、规划中提取需求
18) 上网搜索相关资料
设身处地的成为用户,考虑适用型和用户体验;
用户的语言与用户交流;
总结以往的实施经验,提出建议
总结以往的实施经验,引导需求
*以上各条也是尽量减少需求变更的手段之一;
5W:why、what 、who、when、where
1H:How to accomplish(实现) the system?
WHY定律:WHY就是为什么用户要引入系统,引入新的信息系统对用户有什么帮助,在总体工作效能上如何实现一个最终的结果?WHY定律是要求在需求开始时,项目经理就应该明确的,这个项目是为了改进用户工作效率;提高部门间的协作机制;加快对客户反应的体系服务;提升企业的竞争力等等。有了这么一个WHY引入思想,项目经理就可以理清用户最终要的是可以提供给他们什么样的系统,在系统的定位和建立上,就有一个明确目标。
WHAT定律:有了一个总体的目标性,从各业务流程的要求入手,引入第二个W定律__-WHAT定律,WHAT则是这个系统要做什么?实现什么?提出各业务流程问题、流程局限性问题、系统要解决的问题等,在这个WHAT的基础上,把系统划分成各功能模块,逐步弄清模块流程需求、功能需求、结构需求。引入WHAT定律可以让我们了解到系统的初步需求。
WHO、WHEN、WHERE定律:这个阶段是需求细化阶段,在WHAT定律的基础上,细分系统的用户需求:分析什么人,在什么时间,什么阶段可以或必须操作这个功能,结合前面的WHAT定律,理清系统的流程阶段划分,记录并分析系统功能实现的细节,在这个阶段就可以产生系统需求的用例图(Use Case),作为下阶段设计的依据。
HOW定律:就是怎样实现系统了,在前面的WHY、WHAT、WHO、WHEN、WHERE基础上,已经搭建了一个非常好的系统需求基础框架,如何在这些用户需求的基础上,分析系统的需求,如何进行需求规格的分析与下阶段的设计、实现工作,就是How to accomplish(实现) the system?
引入这5W+1H的定律,在一定程度上保证了系统需求的准确性,使得项目经理或需求分析人员可以有序、有条理地开展需求挖掘和调研活动,这样的安排用户在配合上也非常清晰,知道如何与项目人员配合。
n 做好会谈纪要
一定要有记录的习惯,谈上几个小时,很多细节是记不住的。
n 守时守约
尊重别人才能让别人尊重自己。答应别人的事,尽量做到,做不到的及时交流说明原因。
n 调研前期准备
提前约定调研活动的计划,达到的目标,时间安排,参与的人员,并根据用户安排,适当调整计划。
最忌参加会议时目标不明确、汇报人员不明确。
n 铭记一把手原则
需求调研开始时,客户明确的唯一配合联系人既是我们每个模块的一把手!我们要做的就是“拿着鸡毛当令箭”!找对人才能办好事。
什么是一把手原则?任何信息管理系统的研发不但涉及到技术的复杂性、需用资源的密集性和用户需求的多样性,更涉及到管理思想、管理制度、管理方法、权力结构和人的习惯的改变,充分认识到这一点,要想确保系统研发的成功实施,单靠某一部门的努力无法顺利推行,必须将其列为“一把手”工程来抓,建立以“一把手”为首,相关部门领导参与的系统实施小组,组建由核心职能部门和业务部门负责人参加的实施团队,并把实施任务分解到项目应用的具体部门,使各个使用部门根据自身的要求,组织更多的力量和资源来推行系统的实施,从而可有效确保实施进度和实施效果。
n 客户永远是对的(学会聆听,态度决定一切)
不要一棒子打死异己的观点,尝试站在他人的立场思考问题,这样会更容易找到满意的答案。
n 拒绝不合理的需求
客户需要的不一定的是客户真正所需要想要的。客户永远没有错,错的只有我们没有真正理解客户的需要。
调研时要把握主题的能力,分清有用功能、可选功能用、无用功能及不可实现功能,及时表达我们的观点,让谈话接近主题。
n 功劳是客户的
n 随时强化调研成果
需求调研、相关会议纪要及时转发,及时总结成果,让客户听听你的理解是否他们提的需求一致。
定期汇总的成果:什么情况下?什么人?做了什么决定?产出了什么?
n 警惕不明确因素
实现某一个功能的前提条件是什么?如果没有哪个先决条件,哪些工作是无法开展的?责任划分清楚。
n 成本,成本还是成本
高水平的设计师高就高在设计出“恰好”满足客户需求的软件,并且在开发方和客户方获取最大的利益,而不是不惜代价设计出最先进的软件。
n 避免片面听取了某些用户的需求而忽视其他用户的需求
正确、清楚、无二义性、一致(各个需求之间不产生矛盾)、必要(不画蛇添足增加开发成本)、完备(不遗漏必要的功能如权限配置)、可实现性、可验证性(提供交付依据)、明确优先级(不被细节拖死比如UI)、阐述“做什么”而不是“怎么做”。
对待需求工程的态度可以分为“被动型”、“主动型”和“领先型”三种,只有后两种才有可能开发出成功的产品。
在实际工作中,可以建立合同与需求规格说明书对应章节对应表、合同与软件功能对应表。时刻提醒需要提供实现的业务范围。
适当站在商务的立场上思考,为项目的寻找出路,申请更多的财力物力。
我们编写完的需求分析报告,最终要展示给客户,让他们对我们的分析结果进行认可。其实这个过程非常重要,对于客户和我们同样的重要。将业务需求与用户进行确认(采用会议讲解的方式),用户领导签字。
操作系统上机实习:利用C++实现时间片轮转法概念解析: 在时间片轮转法中,系统将所有就绪进程按到达时间的先后次序排成一个队列,进程调度程序总是选择就绪队列中的第一个进程执行,并规定执行一定时间,即时间片。当该进程用完该时间片但仍未运行完成时,系统将其送至就绪队列末尾;若在时间片内运行完成,则重置时间片,执行就绪队...
Google默认的Camera2或者SnapdragonCamera拍照后方向自动旋转了270°的问题。
MATLAB被誉为工程应用软件的*平台。它利用计算机来解决数学计算、系统建模、理论验证及系统仿真,已经成为国内外学者热衷采用的科研辅助手段。编写《控制系统建模与仿真 基于MATLAB/Simulink的分析与实现》的目的是借助MATLAB软件中的矩阵运算、函数及工具箱来解决控制工程中复杂的理论计算、繁琐的绘图及分析。本书通过将控制理论中难以计算的问题借助MATLAB/Simulink来解决,帮助读...
1.for循环:这里先写一个简单的循环输出结果:这就是一个从0循环到10的for循环 , 先定义一个变量 i ,给它赋值0,然后设定循环结束条件 i <= 10 ; 最后确定步长 这里就是1,每次循环+1。{} 里面的内容就是每次循环所执行的内容,所以这里的输出结果也就是0-10。for 循环也是应用最广泛的循环形式2.for…in 循环:同样先写一个简单的循环看看语法上的区别:...
常用目标检测模型基本都是读取的PASCAL VOC格式的标签,下面代码用于生成VOC格式的代码,根据需要修改即可:def gen_txt(filename, h, w, c): E = objectify.ElementMaker(annotate=False) anno_tree = E.annotation( E.folder('VOC_OPEN_IMA...
1、PE盘安装img到SSD固件地址:https://firmware.koolshare.cn/软路由Openwrt固件:openwrt-koolshare-mod-v2.33-r12074-007caa48d1-x86-64-uefi-gpt-squashfs.img.gz2、配置网桥脚本/usr/share/jerry/config_network#! /bin/shecho "...
Chapter 003 Application SoftwareMultiple Choice Questions1. This type of software works with end users, application software, and computer hardware to handle the majority of technical details.A. Commu...
参加MIREX比赛,提交说明里多次提到二进制文件,当时不明白到底需要提交什么样的文件,最后就把源代码文件提交上去了。今天研究了一下,发现其实很多时候我们并不想让别人看到我们全部的代码细节,所以有其他的方案进行提交,比如将py文件编译成pyc文件。在python中import py_compilepy_compile.compile(path)就可以将需要编译的py文件编译成pyc文件。pyc文件就
I have a Javascript function in my xhtml page that does the following:HTML FILE:function getData(){var data = document.getElementById('data');return data;}Backing Bean Code:public class Bean{public by...
所谓“价格定江山、品牌定天下”,于品牌商而言,品牌的定位将决定自身的格局及未来发展的高度、深度、广度。可以预知,未来的时代中,品牌宣传带来的爆破性力量是很可观的,而这正是品牌商所追求的影响力所在!这是一个充满机遇的时代,但机遇也意味着挑战并行,只有敢于面临挑战,才能走出自己的人生。关于传播客关于传播客,你需要知道的!而传播客正是这样一个致力于帮助提升品牌影响力和价值性的智能型品牌营销平台。经过多年...
今天11,11,是一个一心一意,爱这世界的表达日。这一生啊,择一人,一生一世一辈子,只爱你一人(小主)。同时今天也是一心一意,表达对技术热爱的日子,今天分享几本好书。##1.深度学习模型及应用详解##2.深度学习之TensorFlow工程化项目实战##3.强化学习(第2版)##4.移动深度学习##5.TensorFlow移动端机器学习实战...
let定义语句块变量var a=[];for(let i=0;i<5;i++){ a[i]=function(){ console.log(i); } console.log(a[i]);};console.log(i);注: //块儿级变量 //出了该循环无法访问 循环包括两部分 ()包起来的顶层作用域 {}包起来的子作用域 {}作用域可