阅读笔记,软件需求分析

  从头读下来,第一眼看到,成功的软件都是一样的,失败的软件却各有各的失败处,我们编写程序的最终目的是什么,不是让别人知道自己编程能力有多厉害,只要能卖钱就好了,就算你使用的语言已经跟不上版本了,但是最终结果实现了就行,而我们失败的软件问题是什么没有人在乎,只有自己,我们的软件出了什么问题,它们有的是需求的问题,有的是客户关系的问题,还有设计的问题、技术的问题、时间管理的问题、人员培养的问题••••••但归根到底更多的还是需求的问题。需求分析既是一份体力活儿,更是一份技术活儿,它既是人际交往的艺术,又是逻辑分析与严密思考的产物。正是我们在需求分析过程存在的巨大隐患,最终导致了那么多项目的失败,所以,软件需求的分析十分的重要。

作者的亲身实例告诉我们,需求是多么的重要,改了百十行代码,东家不满意,又得改来改去,结果小组的人最终只得罢工,这似乎是软件工程程序员的通病,所以很多人不乐意进行代码的设计,但是,,“客户对需求改来改去的真正原因是什么呢?当我们对客户的需求没有真正理解清楚时,我们做出来的东西客户必然不满意。客户只知道他不满意,但怎样才能使他满意呢?他不知道,于是就在一点儿一点儿试,于是这种反复变更就这样发生了。如果我们明白了这一点,深入地去理解客户的业务,进而想到客户的心坎儿上去,最后做出来的东西必然是客户满意的。记住,当客户提出业务变更的时候,我们一定不能被客户牵着走,客户说啥就是啥。我们要从业务角度深入的去分析,他为什么提出变更,提得合不合理,我有没有更合理的方案满足这个需求。当我们提出更加合理的方案时,客户是乐于接受的,变更也变得可控了”。原文作者自己是如此总结的,所以说,软件需求分析对于一个程序员来说是多么的重要,只有真正明白了别人心中想要的程序,才能做出来最完美的程序。

    但是,又不能被客户的需求牵着鼻子走,毕竟我们是专业人士,对自己的本职工作还是比别人了解的,我们知道如何才能真正实现一个软件,如果一味地听从东家的,不一定会成功,软件需求分析是我们做的,我们作为技术人员,需求分析必须实事求是的、基于技术可以实现的角度去考虑。那种“有条件要上,没有条件创造条件也要上”的鲁莽行事,结果必然是悲惨的。所以我们必须要基于技术实现去引导客户的需求。

    再说,一个软件项目的需求调研首先必须要进行角色分析,然后对不同的角色分别进行调研。需求调研的初期需要召开项目动员大会,这是十分必要的,做程序分析是事无巨细的,一旦程序完成,在更改角色就比登天还难,所以在任何情况下,都要做好完美的调查,但真正要完成需求分析,应该是一个一个的小会,1~3个业务专家,只讨论某个领域的业务需求,并且很多问题都不是能一蹴而就完成的,我们必须与专家建立联系,反复沟通后完成。需求分析必须遵从的是一定的科学方法,而不是盲目的大上快上。

我们应当怎样做需求调研:初识

我们对客户提出的需求进行深入理解以后,运用我们专业知识,提出比客户的原始需求更加合理、可操作的解决方案,让客户感觉你说的正是他们想要的。如果能够这样,客户不仅能够欣然接收你提出的方案,而且会感觉你非常专业,你在客户心目中的形象也会无形中提高,使你有更多的机会提出有利于开发的可行方案,降低开发的风险

我们应当怎样做需求调研:拜访

需求调研不是一蹴而就的事情,是一件持续数月甚至数年的工作(假如项目还有后期维护)。在这漫长的时间里,我们需要依靠客户这个群体的帮助,一步一步掌握真实可靠的业务需求

我们应当怎样做需求调研:研讨会

业务研讨会比较灵活,应该合理组织,一定要注意两点:有效抑制个性化差异、分模块组织专项研讨会

我们应当怎样做需求调研:需求研讨

与客户探讨业务需求,对一些技术难以实现的需求,我们应当提出合理的解决方案

 

转载于:https://www.cnblogs.com/anjiu/p/7612228.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/268330.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入研究Servlet线程安全性问题

Servlet/JSP技术和ASP、PHP等相比,由于其多线程运行而具有很高的执行效率。由于Servlet/JSP默认是以多线程模式执行的,所以,在编写代码时需要非常细致地考虑多线程的安全性问题。然而,很多人编写Servlet/JSP程序时并没有注意到多线…

查看当前数据库存储引擎

一:查看当前数据库支持的存储引擎 show ENGINES; 二:查看指定数据库所有表使用的存储引擎 使用 show table status from dbname;命令,可以查看指定数据库所有表使用的存储引擎,其中“dbname”为数据库名。 show table status from 库名; 三…

HDU 4857 拓扑排序 优先队列

n个数,已经有大小关系,现给m个约束,规定a在b之前,剩下的数要尽可能往前移。输出序列 大小关系显然使用拓扑结构,关键在于n个数本身就有大小关系,那么考虑反向建图,优先选择值最大的入度为零的点…

很难找齐的常识

【三教】儒教、道教、佛教 【九流】儒家、道家、阴阳家、法家、名家、墨家、纵横家、杂家、农家 【三皇】伏羲、女娲、神农 【五帝】太皞、炎帝、黄帝、少皞、颛顼 【三山】安徽黄山、江西庐山、浙江雁荡山 【五岳】〖中岳〗河南嵩山、〖东岳〗山东泰山、〖西岳〗陕西华山、〖…

元素上下左右居中的几种方法

定位居中1 让外层div相对定位(得设置宽高),内层div绝对定位,top、left分别设为50%,然后通过设置margin-top、margin-left值为宽度的负数并且是内层div的一半,就可以成功实现垂直水平居中了。如下&#xff1…

System.gc() 和 Runtime.gc() 会做什么事情?

System.gc()和runtime.gc()用于提示jvm进行垃圾回收。立即开始回收还是延迟回收回收取决于jvm 会触发full gc 调用 System.gc() 实际上等效于调用: Runtime.getRuntime().gc()

西门子博途编程 - 另类状态机

这次我们用博途来写上次的控制任务,发现还是有些不一样。 和AB比,还是有点复杂啊。转载于:https://www.cnblogs.com/TomDing/p/7617427.html

提升面对电脑的工作效率

用ubuntu已经有一段时间了。现在还不得不在WIN上用的东西就是OUTLOOK和MS OFFICE了。OPENOFFICE还需要很长的路要走呀。不过有一个比较深的感受,就是我会越来越多的使用快捷键来完成原来需要鼠标点好几次的动作。不知道是不是因为我的工作原因,需要长时间…

面试题finalize() 方法什么时候被调用?析构函数 (finalization) 的 目的是什么?

finalize是Object类的一个方法,该方法在Object类中的声明 在垃圾回收器执行时会调用被回收对象的finalize()方法,可以覆盖此方法来实现对其资源的回收。注意:一旦垃圾回收器准备释放对象占用的内存,将首先调用该对象的finalize()方…

MFC下CSocket编程详解

MFC下CSocket编程详解: 1. 常用的函数和注意事项(详细的函数接口说明请查看MSDN): CSocket::Create 初始化(一般写服务器程序都不要用为好,用下面的 CSocket::Socket 初始化) CSocket::Socket初始化 CSocket::SetSockOpt 设置socket选项 CSocket::Bind 绑定地址端口 CSocket::…

Android style 继承

style作用在单个视图或控件上&#xff0c;抽取共有的属性&#xff0c;实现复用。 style的继承有两种方式&#xff1a; 通过parent标识父style 1 <style name"GreenText" parent"android:style/TextAppearance"> 2 <item name"android:te…

maven setting.xml 配置

<localRepository>/Users/wangzeyu/.m2/repository1</localRepository> 修改为自己本地仓库的路径&#xff0c;没有新建一个 <?xml version"1.0" encoding"UTF-8"?> <settings xmlns"http://maven.apache.org/SETTINGS/1.0.…

Web服务器故障的奇怪原因

伴随着对信息化要求的不断提升&#xff0c;相信多数单位都会架设自己的Web服务器&#xff0c;来在Internet网络中发布信息、宣传自我。为了保证任何一位上网用户都能顺畅地访问到Web服务器中的内容&#xff0c;网络管理员在正式发布Web信息之前往往需要设置一下IIS服务器&#…

Python 函数(二)

参数 以下是调用函数时可使用的正式参数类型&#xff1a; 必备参数关键字参数默认参数不定长参数必备参数 必备参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。 调用printme()函数&#xff0c;你必须传入一个参数&#xff0c;不然会出现语法错误&#xff1a; #!…

C:\WINDOWS\Installer文件夹的安全清理

这几天微软发布了不少补丁&#xff0c;系统盘&#xff08;C:\&#xff09;又开始空间告警。没办法又要研究一下哪些空间是可以释放的&#xff0c;我的C:\分配了10G的空间&#xff0c;一度又一度的空间紧张&#xff0c;大家的系统盘是多大呢&#xff1f;这一次我准备向 C:\WINDO…

[译]如何在visual studio中调试Javascript

本文翻译youtube上的up主kudvenkat的javascript tutorial播放单 源地址在此: https://www.youtube.com/watch?vPMsVM7rjupU&listPL6n9fhu94yhUA99nOsJkKXBqokT3MBK0b 本次的视频我们讨论如何在Visual Studio中调试Javascript 步骤如下: 1.在Visual Studio中,右键点击一个网…

springboot出现org.springframework.beans.factory.NoSuchBeanDefinitionException问题

报错 with path [] threw exception [Request processing failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type org.springframework.transaction.TransactionManager available] with root causeorg.…

web.py端口被占用的错误

运行文件Python code.py 文件里用到import web出现 Traceback (most recent call last): File "code.py", line 14, in <module> app.run() File "/usr/local/lib/python2.7/dist-packages/web/application.py", line 313, in run return wsgi.runws…

对VS2008生成智能win32程序简单理解

程序中创建了主窗口&#xff0c;所以它必须为主窗口注册一个窗口类&#xff0c;创建窗口并且提供一个消息循环来为窗口处理消息。 注册窗口类 ATOM MyRegisterClass(HINSTANCE hInstance, LPTSTR szWindowClass) { WNDCLASS wc; wc.style CS_HREDRAW | CS_VREDRAW; wc.lpfnWnd…

java在读取excel时出现Unable to recognize OLE stream错误解决方法

报错截图如下 这个问题是因为你的excel版本不对&#xff0c;要把.xlsx后缀另存为.xls后缀 {"type": "error","message": "数据导入出错&#xff01;Unable to recognize OLE stream出错行&#xff1a;1,异常流水号:1724238","co…