需求分析之Wiki定义

在软件工程中,需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围和定义时所要做的所有的工作。需求分析是软件工程中的一个关键过程。

在这个过程中,系统分析员和软件工程师确定顾客的需要。只有在确定了这些需要后他们才能够分析和寻求新系统的解决方法。在软件工程的历史中,很长时间里人们一直认为需求分析是整个软件工程中最简单的一个步骤,但在过去十年中越来越多的人认识到它是整个过程中最关键的一个过程。假如在需求分析时分析者们未能正确地认识到顾客的需要的话,那么最后的软件实际上不可能达到顾客的需要,或者软件无法在规定的时间里完工。

目录

1 挑战

1.1 主要困难

1.2 持有关键信息的人

1.3 软件开发者

1.4 解决方法

2 主要技术

2.1 采访持重要信息的人

2.2 需求工作会

2.3 将需求列成合同式的文件

2.4 原型(Prototype)

2.5 用例(Use Case)

2.6 确认持关键信息者

挑战

顺利地完成需求分析是一个艰巨的挑战。首先要确认所有持有关键信息的人本身就不容易,然后还要从这些人获得可用的信息,把这些信息转化为清晰的和完整的形式。同时分析者还要考虑到可能的限制。

除此之外他们还要考虑一个项目的

·是否可行

·是否在规定的时间里可以完成

·价格上是否负担得起

·是否合法

·是否符合道德

一个新项目开始的时候人们往往还非常兴奋,往往试图轻视需求分析的必要性。但对过去项目的分析证明一个彻底的和无情的需求分析可以降低一个项目的耗费和降低其技术风险。

主要困难

随着工程师越来越对需求分析的重视今天我们对需求分析的主要困难也理解得比较清楚: 需求分析需要由有充分的经验、技术知识和语言技巧的专家来完成;顾客一开始所提出的需要往往不完全、太乐观以及过分受老的系统或过程的影响;使用复杂的工具和不同的技术来进行需求分析往往会打消获得一个完整的和细致的结果的希望。

持有关键信息的人

顾客有可能防止需求分析顺利进行有以下几种可能性:

·顾客不明白他自己需要什么

·顾客不愿将他们的需要固定在一系列写在纸上的条例中

·在价格和时间确定后顾客坚持要求新的需要

·分析者与顾客的通讯太缓慢

·顾客不参加回顾或无法参加回顾

·顾客缺乏技术上的知识

·顾客缺乏对软件开发的知识

软件开发者

但是软件开发者也有他们的责任。由于软件开发者收钱来开发他们的软件,他们的责任就更加不可推脱了。由软件开发者导致的困难有:

·软件工程师与他们的顾客往往使用不同的词汇。有时他们以为互相之间完全达成协议,但是在展示最终结果时却发现并非如此。开发者有义务克服这个困难,他们拿了顾客的钱,因此有这个义务。

·软件开发者往往喜欢将顾客的需要改变得能使它们符合一个已存在的系统或模式,而不愿按照顾客的需要来发展一个新的系统。

·需求分析往往是由程序员完成的,而不是由作业分析员完成的。程序员往往缺乏理解实际事物的运行过程和商业过程的技巧。

解决方法

解决这些困难的一个方法是使用专业的作业或系统分析员,这些专业人员通过专门训练来填补商业和电脑世界之间的鸿沟的。这个方法可以达到一定的效果,但从顾客方面来说要找到相应的有类似技巧的人就相当困难了。此外今天为需求分析所使用的方法依然还有很大的缺陷,它们还不够有效。

1990年代以来新的技术有制作原型、统一建模语言、用例和敏捷软件开发等方法。

时间: 2024-09-30 02:45:32

需求分析之Wiki定义的相关文章

我的第一个java-web项目之路:(一)需求分析.

需求分析 =引用的定义:= ·所谓"需求分析",是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么. · 在后生的世界观里,需求分析就是弄明白你的项目(软件)要从什么点出发达到什么目的,与客户交流讨论需求,是开始一个项目的第一步. · 关于方法论,后生不敢妄自高谈阔论.只好贴上来之知乎大牛们的观点:如何做需求分析? · 我的这个项目的需求分析,主要是跟学生.老师以及教务管理员 之间的沟通. · 贴上我的心路历程{ // // //

游戏大厅从基础开始(5)--绕回来细说聊天室(上)

Wiki定义的聊天室 网络聊天室通常直称聊天室,是一种人们可以在线交谈的的网络论坛,在 同一聊天室的人们通过广播消息进行实时交谈. 聊天室可以建立在即时通讯软件(如MSN Messenger.QQ).P2P软件.万维网(如 Halapo, Meebo ) 等基础上,万维网方式更为普通和种类繁多 ,交谈的手段不局限于文本,更包括语音.视频.通常聊天室是按照房间或频道为单位的,在同一房间 或频道的网人可以实时地广播和阅读公开消息.一般情况下,与其它网络论坛.即时通讯不同的是,聊 天室不保存聊天记录.

跟着实例学习ZooKeeper的用法: 分布式锁

锁 分布式的锁全局同步, 这意味着任何一个时间点不会有两个客户端都拥有相同的锁. 可重入锁Shared Reentrant Lock 首先我们先看一个全局可重入的锁. Shared意味着锁是全局可见的, 客户端都可以请求锁. Reentrant和JDK的ReentrantLock类似, 意味着同一个客户端在拥有锁的同时,可以多次获取,不会被阻塞. 它是由类InterProcessMutex来实现. 它的构造函数为: public InterProcessMutex(CuratorFramewor

《YES!产品经理》告诉你产品管理和项目管理的区别和联系

国庆的8天时间很快就过去了,其实无非也就是三分之一的时间用来睡觉,三分之一的时间用来看碟,而剩下三分之一的时间用来瞎逛. 期间我和他们都有通过一次电话,刘宇说他每天就是健身房和家里两头跑,说是准备抓紧时间把欠下的身体账去补回来,而小娟则是兴奋地告诉我,她那时候正在坝上骑马呢,并且还感慨在那里已经都要穿上羽绒服了,我就奇怪了,她这是受什么罪呢?而周扬倒是安安静静地待在家里,说他需要争分夺秒地去看书. 好吧,该出游的在出游,该学习的在学习,该健身的在健身,似乎看来就我一个人是无所事事. 当我10月9

《代码大全》学习笔记(3):软件创建的先决条件

3.1 先决条件重要性        优秀程序员的一个突出特点是他们采用高质量的过程来创建软件.这种过程在计划的开始.中间和末尾都强调高质量.         如果你只在一个计划即将结束时强调质量,那你注重的只是测试.         如果在一个计划的开始强调质量,这意味着你计划并要求设计一种高质量的产品.3.1.l 造成准备不足的原因        一些程序员并不做准备工作,有两条忠告:第一,阅读一下下一部分工作的内容提示,或许你会从中发现一些你没想到的问题:第二,要注意自己的问题.3.1.2

一句话讲清云计算

一句话讲清云计算,你会怎么说? 欢迎发表自己的看法:http://weibo.com/1750765385/zfaEjgomu?type=repost #云计算#是通过网络连接大量廉价计算节点,用分布式软件使之虚拟成有机整体,提供可动态伸缩的高性能可靠计算服务   --专注云计算 #云计算#Wiki定义蓝鲸认为:Cloud computing is a style of computing in which dynamically scalable and often virtualized r

敏捷创业:怎样发现用户的“要求”?

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 前几天在<最好的产品满足的不是需求,而是"要求">中,我们提到"想尽办法地满足用户的要求,让他们无可救药地爱上你的产品."文章中对用户的"要求"与"需求"做了区分,很多朋友回复消息说蛮有启发,但我也注意到一些创业者仍有疑问:既然我要想尽办法地满足用户的

性能测试知多少---性能需求分析

需求分析是个繁杂过程,它并非我们想象的那么简单,而性能测试需求除了要对系统的业务非常了解,还需要有深厚性能测试知识.才能够挖掘分析出真正的性能需求.   如何获得有效的需求   1.客户方提出 客户方能提出明确的性能需求,说明对方很重视性能测试,这样的企业一般是金融.电信.银行.医疗器械等:他们一般对系统的性能要求非常高,对性能也非常了解.提出需求也比较明确. 曾经有一个银行项目,已经到最后的性能测试极端,因为数据库设计不合理,导致性能出现很大的问题,最终不得不把整合项目 作废,对于这样的项目,

Struts应用系统案例设计之需求分析

设计 某公司是一家处于快速发展中的中小型销售公司,他们打算架构一个网站.计划分两步走:首先做一个宣传型的网站,然后在公司规模达到一定程度时扩展为网上商店. 在第一步计划中,某公司的主要想法是通过网站能及时介绍公司的产品.服务以及其他公司相关情况:由于不断有新品上架,他们希望能通过公司市场销售人员直接来修改页面,将新的信息直接发布在网站上:同时他们也希望页面美工风格能定期地改进和更换. 某公司这样的需求其实代表了大多数公司进军电子商务的意图,因此这个案例有一定的普遍性. 分析这样的需求,他们需要的