做软件和做其他商品一样。一定要符合规格,也就是需求。
而且如果软件开发周期比较长的话呢,要求项目人员(特别是项目经理和分析师)对规格就一定要把握的很准确。
好处自然不用说了,降低风险,减少成本,最大化收益!
然而,拿过来一个项目或产品,如何才能很准确地把握需求呢?
首先,要明白,把握需求的关键是:问题是什么?别看只有5个字,但很多人却理解不好。有很多人在这个阶段过多地考虑到了设计和实现。结果导致理解的需求不是用户真正的需求,而是从自己设计或实现的角度曲解的东西。结果可想而知,最终产品总有这样或那样的问题。
“问题是什么?”,就像我们考试一样,对于问答题,首先要理解题干,就是问题是什么?明确问题的实质;然后才是如何解决问题,构思答案;然后是回答问题,最后是检查,交卷。所以做个类比,理解题干就相当于我们做需求分析;构思答案就相当于设计;写答案就相当于实现;检查就相当于软件测试;交卷就相当于交付。
当然,回答一个问题周期一般不会很长,然而,针对软件开发,这个周期可能要长的多。所以每一个阶段都要占用很长的时间。虽然这个理论在很多软件工程书上都写了。但真正在实现的时候,却有很多人或团队不按照这样干,还是作坊式的各行其是。
那么既然明白了软件开发首当其冲的任务是搞清需求。理解问题的实质。
那么理解问题实质的最佳途径也是最有效的途径就是最终用户参与和交互。然而在这里有一个问题一定要注意:需求不等同于需求分析。
需求是用户提出的要求。它只能从用户的角度粗粒度的说明待开发的项目或产品业务范围,也就是我们通常所说的商业场景。其最大的特点就是粗粒度的,简单描述的业务场景。然而,这同时也是项目最原始的,最根本的依据。
需求分析一般由系统分析师完成。系统分析师主要的职责就是从用户模糊的需求中分析出项目要包含的功能性的和非功能性的细致的描述。
需求分析一般可以通过两种方式完成:一种是原型法。另一种是用例驱动法。
原型法:顾名思义,为了准确地把握用户需求,先让项目组成员开发出一个项目原型,交由用户使用,用户根据原型进一步确定需求。系统分析师根据用户使用后的反馈,完善需求分析,最后获取用户的全部需求进行分析。由于用于获取需求的原型要事先做出来,所以从成本的角度讲,原型的开发周期不能太长,成本不能太高。
另外一种就是用例驱动,对用户提出的需求进行建模,然后对每一个用例进行描述,交由用户查看反馈,优化模型,最终得到全部的需求。
从这两种的途径看来,需求分析是至关重要的。它能够清晰反映用户的要求,清楚表示每个功能的业务规则和业务数据。为项目经理的项目进度计划安排提供佐证。为后期的设计提供根据。
所以做好第一步,后面的东西就有据可依,就能有效降低风险,保证项目的成功!
分享到:
相关推荐
浅谈软件需求稳定性最终版.pdf
### 浅谈软件需求分析中的参与者 在软件开发过程中,需求分析阶段是非常关键的一个环节,尤其是在面向对象的软件开发中。需求分析的目标是理解和描述用户的实际需求,为后续的设计、编码等工作打下坚实的基础。其中...
浅谈软件需求说明书的编写.doc
### 软件需求建模概述 #### 一、什么是建模? 建模是指通过表格化、图形化、公式化等方式将系统结构及其各组成部分之间的关系以可视化的形式展现出来的一种技术方法。软件建模之所以显得较为抽象,很大程度上是...
在软件项目的开发过程中,需求变更贯穿了软件项目的整个生命周期,从软件的项目立项,研发,维护,用户的经验在增加,对使用软件的感受有变化,以及整个行业的新动态,都为软件带来不断完善功能 ,优化性能,提高...
浅谈软件项目需求管理.pdf
验收测试则由用户执行,确保软件符合用户的实际需求。 综上所述,软件测试是一门涉及多方面知识的复杂工作,包括测试目的、分类、组织、策略、规范和内容。理解并掌握这些知识,有助于提高软件开发的质量和效率,...
浅谈软件设计的需求分析与体系结构.pdf
这两款工具在工程类项目管理中表现出色,但并不适合应对软件项目特有的需求不确定性和迭代性质。 Microsoft Project是一款强大的工程管理工具,擅长任务分配、Petri-NET和甘特图等,适用于任务明确、需求固定的工程...
浅谈软件设计的需求分析与体系结构(20211112174707).pdf
浅谈软件自动化测试技术 软件自动化测试技术是当今软件开发过程中不可或缺的一部分。随着软件应用范围的扩大和软件复杂度的提高,软件测试的重要性日益突出。软件测试是对软件规格说明、软件设计和编码的最后复审,...
浅谈软件需求分析过程.pdf 煤炭企业业务事例型网络架构.pdf 用例建模技术在需求获取中的应用研究.pdf 设计模式——Java手册.pdf 试谈企业入口网站的规划和建构.pdf 软件工程中的需求分析.pdf 面向组件对象的软件需求...
### 浅谈软件项目管理 #### 一、引言 软件项目管理是在软件开发过程中确保项目按照预定的成本、进度和质量顺利完成的关键活动。它涉及人员、产品、过程和项目的管理和控制,特别是在大型软件项目中尤为重要。与...
《浅谈软件开发流程》 软件开发是一项复杂而系统的过程,旨在通过一系列有序的步骤,将用户的需求转化为可用的软件产品。本文将围绕软件开发流程的各个环节进行深入探讨,旨在提供一套适用于中小型软件项目开发的...
在这个标题为“浅谈软件工程思想的问题”中,我们可以从多个方面来理解并探讨这个主题。 首先,软件工程的核心目标是提高软件的质量、可维护性、可靠性以及生产效率。这涉及到从需求分析、设计、编码、测试到维护的...
浅谈软件项目的质量管理 软件项目的质量管理是软件开发的核心环节,旨在开发出符合质量要求的软件产品。软件质量管理贯穿于软件开发生存期过程的质量管理工作,涉及到软件开发的每个环节。软件质量是指软件产品满足...
### 浅谈项目测试需求分析 #### 一、项目测试需求分析的重要性及构成要素 项目测试需求分析是软件开发过程中的关键环节,它涉及到对项目功能、性能、安全性等多方面的深入理解与评估。在这一过程中,我们需明确...