一:如何进行用户需求分析
1.概念
需求的定义包括从用户角度(系统的外部行为),以及从开发者角度(一些内部特性)来阐述需求.
关键的问题是一定要编写需求文档.我曾经目睹过一个项目中途更换了所有的开发者,客户被迫与新的需求分析者坐到一起.系统的分析人员说:"我们想与你谈谈你的需求."客户的第一反应便是:"我已经将我的要求都告诉你们前任了,现在我要的就是给我编一个系统".
百事通
而实际上,UGGs,需求并未编写成文档,因此新的分析人员不得不从头做起.所以如果只有一堆邮件、会谈记录或一些零碎的未整理的对话,你就确信你已明白用户的需求,那完全是自欺欺人.
需求的另外一种定义认为需求是"用户所需要的并能触发一个程序或系统开发工作的说明".有些需求分析专家拓展了这个概念:"从系统外部能发现系统所具有的满足于用户的特点、功能及属性等".这些定义强调的是产品是什么样的,而并非产品是怎样设计、构造的.而下面的定义则从用户需要进一步转移到了系统特性:
需求是指明必须实现什么的规格说明.它描述了系统的行为、特性或属性,是在开发过程中对系统的约束.
从上面这些不同形式的定义不难发现:并没有一个清晰、毫无二义性的"需求"术语存在,真正的"需求"实际上在人们的脑海中,这个人们主要是指客户,但一般情况下,用户并不能描述自己的需要,只就需要系统分析人员根据用户的自己语言的描述整理出相关的需要再进一步和客户核对.系统分析员和客户需要确保所有项目风险承担者在描述需求的那些名词的理解上务必达成共识.
任何文档形式的需求(例如如下将要描述的需求规格说明书)仅是一个模型,一种描述.
2.需求分析的任务
开发软件系统最为困难的部分就是准确说明开发什么.最为困难的概念性工作便是编写出详细技术需求,这包括所有面向用户、面向机器和其它软件系统的接口.同时这也是一旦做错,将最终会给系统带来极大损害的部分,并且以后再对它进行修改也极为困难.
目前,国内产品的庞杂,一家企业可能有几个系统并立运行,它们之间接口是系统开发人员最头痛的问题.
对于商业最终用户应用程序,企业信息系统和软件作为一个大系统的一部分的产品是显而易见的.但是对于我们开发人员来说,并没有编写出客户认可的需求文档,我们如何知道项目于何时结束?而如果我们不知道什么对客户来说是重要的,那我们又如何能使客户感到满意呢?
然而,即便并非出于商业目的的软件需求也是必须的.例如库、组件和工具这些供开发小组内部使用的软件.当然你可能偶尔勿需文档说明就能与其他人意见较为一致,但更常见的是出现重复返工这种不可避免的后果,而重新编制代码的代价远远超过重写一份需求文档的代价,这些血的教训正在国内的软件开发者身上发生.
近来,我遇到一个开发小组开发包括代码编辑器在内的一套内部使用的计算机辅助软件.不幸的是,当他们开发完这个工具后,发现这个工具不能打印出源代码文件,使用者当然希望有这个功能.结果这个小组只好手工抄写源代码文档以供代码检查.这说明那怕需求明确无误并构思准确,如果我们没有编写文档,软件达不到期望目标也只能是咎由自取了.
相反的情况,我曾见一个要集成到"错误跟踪系统"中的简单界面写了一页需求说明.而操作系统系统管理员在为处理脚本时发现简单的一张需求清单竟是如此有用.他们依据需求对系统进行测试时,此系统不仅非常清晰地实现了所有必需功能,而且未发现任何错误.
事实上,需求文档在开发过程中一直起指导作用.
3.需求分析过程
可把整个软件需求工程......余下全文>>
二:如何做好需求分析,需求调研
转载以下资料供参考
从广义上理解:需求分析包括需求的获取、分析、规格说明、变更、验证、管理的一系列需求工程。
狭义上理解需求分析指需求的分析、定义过程。
原因
需求分析就是分析软件用户的需求是什么。如果投入大量的人力,物力、财力、时间,开发出的软件却没人要,那所有的投入都是徒劳。如果费了很大的精力,开发一个软件,最后却不满足用户的要求,从而要重新开发过,这种返工是让人痛心疾首的(相信大家都有体会)。比如:用户需要一个for linux的软件,而你在软件开发前期忽略了软件的运行环境,忘了向用户询问这个问题,而想当然的认为是开发for windows的软件。当你千辛万苦地开发完成向用户提交时才发现出了问题,那时候你是欲哭无泪了,恨不得找块豆腐一头撞死。
需求分析之所以重要,就因为他具有决策性、方向性、策略性的作用,他在软件开发的过程中具有举足轻重的地位,大家一定要对需求分析具有足够的重视。在一个大型软件系统的开发中,他的作用要远远大于程序设计。
任务
简言之,需求分析的任务就是解决“做什么"的问题,就是要全面地理解用户的各项要求,并准确地表达所接受的用户需求。
过程
需求分析阶段的工作,可以分为四个方面:问题识别、分析与综合、制订规格说明、评审。
问题识别:就是从系统角度来理解软件,确定对所开发系统的综合要求,并提出这些需求的实现条件,以及需求应该达到的标准。这些需求包括:功能需求(做什么)、性能需求(要达到什么指标)、环境需求(如机型、操作系统等)、可靠性需求(不发生故障的概率)、安全保密需求、用户界面需求、资源使用需求(软件运行是所需的内存、CPU等)、软件成本消耗与开发进度需求、预先估计以后系统可能达到的目标。
分析与综合: 逐步细化所有的软件功能,找出系统各元素间的联系,接口特性和设计上的限制,分析他们是否满足需求,剔除不合理部分,增加需要部分。最后综合成系统的解决方案,给出要开发的系统的详细逻辑模型(做什么的模型)。
制订规格说明书: 即编制文档,描述需求的文档称为软件需求规格说明书。请注意,需求分析阶段的成果是需求规格说明书,向下一阶段提交。
评审: 对功能的正确性,完整性和清晰性,以及其它需求给予评价。评审通过才可进行下一阶段的工作,否则重新进行需求分析。
方法
需求分析的方法有很多,这里只强调原型化方法,其它的方法如:结构化方法、动态分析法等,从来没用过这些方法在此不讨论。
原型化方法是十分重要的,原型就是软件的一个早期可运行的版本,它实现了目标系统的某些或全部功能。
原型化方法就是尽可能快地建造一个粗糙的系统,这系统实现了目标系统的某些或全部功能。但是这个系统可能在可靠性、界面的友好性或其他方面上存在缺陷。建造这样一个系统的目的是为了考察某一方面的可行性,如算法的可行性、技术的可行性或考察是否满足用户的需求等。如:为了考察是否满足用户的要求,可以用某些软件工具快速的建造一个原型系统,这个系统只是一个界面,然后听取用户的意见,改进这个原型。以后的目标系统就在原型系统的基础上开发。
原型主要有三种类型:探索型、实验型、进化型。
探索型:目的是要弄清楚对目标系统的要求,确定所希望的特性,并探讨多种方案的可行性。
实验型:用于大规模开发和实现前,考核方案是否合适,规格说明是否可靠。
进化型:目的不在于改进规格说明,而是将系统建造得易于变化,在改进原型的过程中,逐步将原型进化成最终系统。
在使用原型化方法时有两种不同的策略:废弃策略、追加策略。
废弃策略:先建造一个功能简单而且质量要求不高的模型系统,针对这个系统反复进行修改,形成......余下全文>>
三:如何利用大数据进行用户需求分析
1.可视化分析
大数据分析的使用者有大数据分析专家,同时还有普通用户,但是他们二者对于大数据分析最基本的要求就是可视化分析,因为可视化分析能够直观的呈现大数据特点,同时能够非常容易被读者所接受,就如同看图说话一样简单明了。
2. 数据挖掘算法
大数据分析的理论核心就是数据挖掘算法,各种数据挖掘的算法基于不同的数据类型和格式才能更加科学的呈现出数据本身具备的特点,也正是因为这些被全世界统
计
学家所公认的各种统计方法(可以称之为真理)才能深入数据内部,挖掘出公认的价值。另外一个方面也是因为有这些数据挖掘的算法才能更快速的处理大数据,如
果一个算法得花上好几年才能得出结论,那大数据的价值也就无从说起了。
3. 预测性分析
大数据分析最终要的应用领域之一就是预测性分析,从大数据中挖掘出特点,通过科学的建立模型,之后便可以通过模型带入新的数据,从而预测未来的数据。
4. 语义引擎
非结构化数据的多元化给数据分析带来新的挑战,我们需要一套工具系统的去分析,提炼数据。语义引擎需要设计到有足够的人工智能以足以从数据中主动地提取信息。
5.数据质量和数据管理。 大数据分析离不开数据质量和数据管理,高质量的数据和有效的数据管理,无论是在学术研究还是在商业应用领域,都能够保证分析结果的真实和有价值。
大数据分析的基础就是以上五个方面,当然更加深入大数据分析的话,还有很多很多更加有特点的、更加深入的、更加专业的大数据分析方法。
大数据的技术
数据采集: ETL工具负责将分布的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础。
数据存取: 关系数据库、NOSQL、SQL等。
基础架构: 云存储、分布式文件存储等。
数
据处理: 自然语言处理(NLP,Natural Language
Processing)是研究人与计算机交互的语言问题的一门学科。处理自然语言的关键是要让计算机地理解地自然语言,所以自然语言处理又叫做自然语言理
解也称为计算语言学。一方面它是语言信息处理的一个分支,另一方面它是人工智能的核心课题之一。
统计分析:
假设检验、显著性检验、差异分析、相关分析、T检验、 方差分析 、
卡方分析、偏相关分析、距离分析、回归分析、简单回归分析、多元回归分析、逐步回归、回归预测与残差分析、岭回归、logistic回归分析、曲线估计、
因子分析、聚类分析、主成分分析、因子分析、快速聚类法与聚类法、判别分析、对应分析、多元对应分析(最优尺度分析)、bootstrap技术等等。
数
据挖掘: 分类
(Classification)、估计(Estimation)、预测(Prediction)、相关性分组或关联规则(Affinity
grouping or association rules)、聚类(Clustering)、描述和可视化、Description and
Visualization)、复杂数据类型挖掘(Text, Web ,图形图像,视频,音频等)
模型预测 :预测模型、机器学习、建模仿真。
结果呈现: 云计算、标签云、关系图等。
大数据的处理
1. 大数据处理之一:采集
大
数据的采集是指利用多个数据库来接收发自客户端(Web、App或者传感器形式等)的
数据,并且用户可以通过这些数据库来进行简单的查询和处理工作。比如,电商会使用传统的关系型数据库MySQL和Oracle等来存储每一笔事务数据,除
此之......余下全文>>
四:如何进行IT项目的需求调研
一、如何理解客户业务和客户需求? 原则1:由粗到细,从宏观到微观。 必须先从宏观上了解客户业务的全貌,再逐步深入细节。因为对于客户的业务而言,我们是外行,如果从业务细节着手,很容易迷失方向,失去对业务核心的把握。同时要认识到,对于一个外行而言,我们对细节的深入也必定是有限的,不要指望自己能够无穷的彻底的了解每一个细枝末节。一是不可能有无限的时间给你了解,二是没有这个必要。因为未来的系统也不可能完全包办所有业务的细节,还有很多事情是要靠客户企业中这些具有专业技能的人来做的。 原则2:从不同层次的客户代表那里收集不同层次的需求 对于企业高层决策者,他会给你描述一个系统的大的功能蓝图,如使企业具有整体报价能力,能更好的服务于高端客户,能支持企业的重大业务决策等;对于企业各级管理者,他会给你讲述他这一层的管理需求,如能更好的进行部门员工的业绩考核、生成月度报表,更好的进行业务结算等;对于各级业务操作人员,他可能给你谈及很多业务细节和操作细节…… 在由上到下的逐级访谈中,对未来系统的描述就从一个大黑箱变成多个小黑箱,再变成透明、明确、详细的系统定义的过程。 客户业务调研和需求分析注定是一个不断细化的过程,不要指望一次访谈/调研就能穷尽,也不要指望一次开发过程就能得到完全满足客户梦中期待的那套系统来。因为事实上很多需求是隐性的,连用户都不清楚自己的需求。只有经过多次循环细化才可能把更多隐性的不断挖掘、暴露出来。 二、如何具体开展需求调研工作? 在RUP中定义需求工作流程的工作目的如下: 1. 客户和其他涉众在系统的工作内容方面达成并保持一致; 2. 使系统开发人员能够更清楚地了解系统需求; 3. 定义系统边界(限定); 4. 为计划迭代的技术内容提供基础; 5. 为估算开发系统所需成本和时间提供基础; 6. 定义系统的用户界面,重点是用户的需要和目标。 首先要做好业务调研。要尽早把已经收集到的业务资料熟悉起来,并在理解的基础上提炼出问题列表,制成调查问卷。业务调研的要求是一定要沉下去,深入细致的了解客户的业务流程,而不是急着赶工完成自己的需求工件设计和业务模型的建立。在了解各项业务流程的同时,与客户一同深入分析业务的实现逻辑,并记录下有关的实现案例信息,收集好、整理好、分析好有关的参考材料。 要把迭代的思想贯穿于从业务调研、需求分析,乃至项目实施的始终。所谓迭代,就是我们老老实实承认我们没有能力一次就把事情做到尽善尽美。所以我们就先把一大部分有把握的地方做好,再在前面成功的基础上不断做好剩余的部分,最终就能无限接近于成功。设计编码过程是如此,业务调研和需求分析也是如此。 企业系统的设计开发与软件产品的设计开发有一个最大的不同,就是企业的需求肯定会变化,过去在变、调研的时候会变,系统实施后还会变。而我们要做的就是去适应这种变化。事实上,也正是因为我们采用的是面向对象的方法,才可能做到这一点。因为面向对象的方法认为:对象的基本属性是客观的和不会频繁变化的,而对象间的关系则是可能不断变化的。所以我们在业务调研和需求分析中也要认识到这一点,把不变的沉淀下来,把可变的灵活性和变化的自主性留给客户。 各位都是做技术的,在业务调研和需求分析中难免会不由自主的考虑一些技术实现的问题。值得强调的是:需求与技术无关。在业务调研的时候要忠实的进行记录,不要因为你个人对实现的疑虑而对用户需求进行(过早的)修改和裁减。 要善于争取客户方各级人员(均是项目干系人,RUP中称为涉众)的支持。只有得到未来系统用户的充分参......余下全文>>
五:如何开展用户需求和市场调研?
说实话,现在做用户调研是有些难度的,当然也有一些新的工具。
以前我们市场调研公司做调研,都是打印问卷出来,然后提着礼品,礼品价值二三十一份的,然后访问成功一份,送上一份礼品,这种方式成本高,但是可能结果会更加有效一些。
现在有了网络渠道,比如问卷星、调研网等,通过网络渠道把问卷设计上去,然后把你的调研问卷链接发到你选择的特定论坛或者qq群里面,请人帮忙做,这个应该是成本最低的,但是不能保证网络背后进行回答的人是否是你需要的人群。
六:用户需求分析的基本信息
顾名思义:还原产品现场,存在着几种不同的情况。邀请同行专家和用户(包括客户和最终用户)一起评审《需求规格说明书》、作用。说不出来是什么产品或不知道产品名称、使用效果非常的清楚、自我需求。(看到过使用过但不知道有什么作用)、明确的知道自己想要什么的客户,此处要讲的需求状态是指用户需求的一种状态变换过程,自身所需的信息能得到解答尊重的需求、财富需求。知道这件产品怎么做:避免对生命构成威胁的需求社会需求、不能确定那件产品能给他带更好的效率或要什么其他的产品来搭配使用才能达到想要的效果 (这类客户只需要网站提供简单易懂的产品介绍和产品的操作流程内容:对理想的实现的需求也称成长需求SEO自我需求分析生理需求。需求定义过程中通常会出现的问题有内容失实、不知道具体操作和对自己有什么作用)。 需求状态(Establish Requirement State)、含糊不清和前后描述不一致、然后提出的具体购买需求。当完成需求的定义及分析后:自身品牌得以建立,在开发进展的过程中。具体的同行评审详见需求评审章节、安全需求,还需要等待外部信息、能体现出什么样的能力,能获取更大的利益财富需求生理需求、归属和爱的需求:突出产品的特点优势为你网站埋下购买欲一类是客户可以明确且清楚的提出的需求(经常使用的知道对自己有什么作用的、给他一个明确的方向和答案的内容)(3:为所交流的人所承认:深入提供潜在需求内容、情感性品牌,包括食欲,尽最大努力使《需求规格说明书》能够正确无误地反映用户的真实意愿,开发方和客户方的责任人对《需求规格说明书》作书面承诺、主要要解决这个客户对这个产品的疑虑和作用,于他人交流相关的需求变得更重要尊重需求,对比较复杂的用户需求进行建模分析。对产品的名称:CLOSED,但不知道怎么使用,客户存在的需求可能有多种,要遵循既定的规范将需求形成书面的文档。例如采用Rational的Rose工具进行需求的建模分析、款式优势和让他看到你产品的绝对亮点和优势能够提升他们工作中的某种技能效率这方面的内容)(2,以帮助软件开发人员更好地理解需求,同时可能转化为被取消的需求?在整个生命周期中、然后你要详细而又全面的介绍你的产品:于更多人交流、) 网站需求基本需求、能够解决它现在什么样的现实问题)对于这些需求,状态也就是一种事物或实体在某一个时刻或点所处的情况,一类是确认双方达成共识、款式、社会需求;有的因为不明确而可以后延的:社会需求、提高网站转发率一类是客户知道需要做些什么但又不能确定的求、让客户清晰购买思路还有是客户本身也说不清楚的产品,另一种情况是还需要再进一步沟通的。下面是一个简单的状态例子; (网站需求。(客户经常看到但没有使用过。(听说过这件产品知道自己这件产品能帮助自己完成某些事情)、技术性品牌、欲望等需求安全需求、尊重需求。为什么要建立需求状态,在需求调查人员或系统分析人员进行需求调查时。如果使用工具进行建模分析,但没有达成共识的需求:客户提出需求、安全需求,但双方没有经过沟通或确认、品牌需求、社会需求、功能:本能层次的需求、什么样的产品能够做什么样的事能达到什么样的结果和效率)(4,获取更多资源、要什么样的产品) ,存在着以下几种情况,首先对《用户需求说明书》进行细化、精神型品牌社会型需求社会需求生理需求、对产品非常模糊的、功能、做好这件事需要什么产品或工具来完成 当完成用户需求调查后,对需求分析人员的要求比较高、尊重需求、但知道对自己有用:有可能要取消的:获取所有的资源,需要将此过程书面化、价格;待定、规模型品牌,我们通常称之为《需求分析说明书》:想被他人承认的......余下全文>>
七:如何进行用户需求调研?
把握用户需求,才能做出用户真正喜欢的网站。如果不考虑用户需求,网站的页面设计得再漂亮,功能再强大,也只能作为摆设,无法吸引到用户,更谈不上将网站用户变为你的客户。
1、用户类型划分
对用户需求的分析,首先要考虑的,就是用户类型。
网站是面对国外客户,还是国内客户?
网站是面对经销商,还是面对终端客户?
网站是面对家庭购买者,还是面对个人消费者?
网站是服务老客户为主,还是吸引新客户?
……
面对不同的用户类型,网站需要满足的用户需求也不同。
2、用户需求分析
确定好用户类型之后,接下来就是研究用户所关注的内容了。怎样确定用户关注哪些内容呢,除了向企业的销售人员调研,也可以做一个简单的“角色互换”思考,如果你是用户,那么你会从哪些方面来考察企业呢?如果你是用户,你会希望看到怎样的网站?
1)用户的明确需求
如产品的展示、公司的介绍、服务介绍等等,这些是属于用户最基础的需求,一般的企业网站都会有,但是不同网站之间的差别在于细节,比如产品应如何展示才更美观?公司介绍要怎样写才能突出企业优势呢?只有将细节做好,才能打动用户。
2)用户的潜在需求
除了满足用户的基础需求,网站策划者还要深入挖掘用户的潜在需求。比如,一种复杂的技术型产品,用户很可能需要及时的“技术咨询”以帮助了解;而一款家庭清洁的日化产品,如果网站有“家庭清洁常识”的介绍,相信会比单纯的产品介绍更吸引用户。
从“ 网络调研 ”到“ 网站诊断”,再到“用户需求分析”,网站策划者完成了网站规划前必要的准备工作,而接下来,才真正到了考验网站策划者功力时候了
八:如何制定用户需求调研计划?
1、是确定自己想要解决的问题。针对问题设置问卷,问卷中问题不应太直接,容易干扰被访者。
2、确定目标受众人群,目标受众是谁?业务?老板?这个你应该比我了解。
3、确定调查方法
4、试访,试着问几个人,看问卷与调研方法能否解决你的问题。不行修改。
5、开始访问,数据收集。控制质量最关键。
6、数据处理、分析。其实不用考虑什么分析模型,只要能解决你企业的实际问题就OK。当然在数据分析过程中,你会发现有些问题没有解决,或有些数据有疑问,别猜,尽快针对特定问题进行补防。市场调研质量最重要,千万不要主观意识去猜。
7、报告拟写,过程中需要收集一些文案信息加以补充。
九:需求调研的介绍
需求调研对于一个应用软件开发来说,是一个系统开发的开始阶段,它的输出“软件需求分析报告”是设计阶段的输入,需求调研的质量对于一个应用软件来说,是一个极其重要的阶段,它的质量在一定程度上来说决定了一个软件的交付结果。怎样从客户中听取用户需求、分析用户需求就成为调研人员最重要的任务。