建筑往往是根据设计图来完成的,软件也不例外,一个项目的质量和设计规划图有着密不可分的关系。这之间的联系,简单来说,便是用户和工程师的沟通,用户说出自己的需求来让工程师去实现。而需求包括三个不同的层次——业务需求、用户需求和功能需求,需求使问题变得明确,它是一一指明实现说明的规格说明,描述了系统的行为、特性或属性,是在开发过程中的约束。
需求的质量高低对于程序员来说很重要,实行有效的需求工程管理的组织能火得多方面的好处,其中最大的好处是在开发后期和整个维护阶段的重做的工作大大减少了。正确的需求过程强调产品开发中的通力合作,包括在整个项目过程中多方面风险承担者的积极努力。
实施需求工程需要一定的方法,绝大多数的软件开发人员都需要去进行需求分析,包括提炼、分析和审查以收集到的需求,以确保所有的风险承担者都明白其含义并找出其中的错误、遗落和不足之处。然后将其编写入软件需求文档,并以正确的格式进行存储。
个人感受:拿到一个项目,直接去做是不会有好结果的(例如重写),要好好分析软件需求,过去的我只是追求功能的完善而忽视了需求的重要性,但我意识到软件需求同样重要。