软件需求管理则是指一个为系统的需求进行启发、组织、建档的系统方法,一个建立和维护客户和项目团队之间关于变更系统需求所达成的一致性的过程。软件需求分析就是把软件计划期间建立的软件可行性分析求精和细化,分析各种可能的解法,并且分配给各个软件元素。需求分析是确定系统必须完成哪些工作,它是软件定义阶段中的最后一步,也就是对目标系统提出完整、准确、清晰、具体的要求。那么,在实际管理工作中,会有哪些疑问呢?
1.需求工作涉及到哪些内容?
首先需求包括了产品需求,用户需求,软件需求。产品需求关注的是产品的标准化和通用化,会对收集到的用户需求进行分类和优化,结合业界标准系统模型进行抽象并通用化。用户需求反映的是用户面临的问题域,根据问题域用户期望的能够达到的解决效果;而对于软件需求则是用软件工程的语言结构化和文档化的对用户需求和产品需求的描述。
需求工作涉及到需求开发和需求管理。需求开发涉及到需求调研,需求收集,需求分析,需求开发等工作,其中的重点有业务流程,数据字典,业务规则,界面原型。对于基于面向对象的开发方法则涉及到业务用例,系统用例(涉众,基本流,扩展流,业务规则,界面,操作)等诸多内容。需求管理工作涉及到需求的状态管理,变更管理,需求的跟踪,需求的验证和确认等重要内容。
在我们需求分析和开发中,最容易忽视的主要有两点,一个就是缺乏需求分析和开发的过程,把用户需求直接作为了软件需求,没有需求建模和抽象的过程。另外一点就是对于性能,安全,易用性,可维护性和扩展性等非功能性需求没有考虑,导致开发出来的系统是一个不好用的半成品。CMMI把需求管理放到2级,需求开发放到3级,实际上真正的提高需求人员的需求分析和开发能力才是解决需求问题之道。需求分析开发做不好,需求变更或追踪管的再好也没有用处,在这点上一定不能本末倒置。
2.为什么要做需求管理,需求管理包括哪些工作?
需求管理就是IT项目中的范围管理,需求管理是整个IT项目的源头,IT项目的估算,计划,后续的跟踪控制,验证和确认等各项工作都是跟需求密切相关的。因此为了保证项目的进度,质量和成本的目标的顺利实现,保证项目计划的严肃性和可执行性;为了保证软件系统最终开发的产品正是客户期望的产品,必须要做好需求管理工作。
需求管理工作应该是需求全生命周期的管理,从用户原始需求的提出,到最终形成软件产品后用户对需求实现情况的验证以形成闭环流程。因此我们需要跟踪和了解到需求状态的演变过程。大型的项目软件生命周期模型较为复杂,一个需求的实现会经过用户需求,软件需求,总体设计,详细设计,开发和单元测试,集成测试,系统测试和验收测试多个环节,在这个过程中需要建立需求追踪以确认需求和中间阶段产生的工作产品的一致性。另外变更管理是需求管理的另外一个重点,需求在经过评审确认后需要基线并受到控制,当出现需求变更的时候必须进行相应的需求影响分析以确认对需求变更的处理方式,当变更工作量影响较大的时候还需要调整并重新基线项目计划。
对于整个需求调研,分析和需求开发,评审确认的过程也需要进行管理。在这个过程中的一个重点就是对需求输出的文档需要得到用户,项目组设计开发人员的共同确认和承诺。
3.做好需求分析需要具备哪些知识?
需求分析岗位主要承担的是系统分析员的工作,做需求分析的人员要有软件工程基础知识的积累,而且最好有一定的软件开发经验积累。自己做过设计开发工作的