软件项目用户的需求是指导软件项目开发的核心思想,开发人员就应该根据用户的实际需求准确的开发出一套让用户满意的软件,实现双方共赢。这就需要项目需求人员具有一定的调查分析能力,要采取正确的方法来获取项目用户的需要,做好沟通协调工作,使项目顺利开展下去。
1 计算机软件开发中的软件需求
软件需求工程是计算机软件开发工作的一个重要源头,涉及到需求开发和需求管理。需求开发涉及到需求调研,需求收集,需求分析,需求开发等工作,其中的重点有业务流程,数据字典,业务规则,界面原型;需求管理工作涉及到需求的状态管理,变更管理,需求的跟踪,需求的验证和确认等重要内容。
软件需求分析特别重要,在软件开发的过程中具有举足轻重的地位,但是我们常常会忽视两点:一个就是缺乏需求分析和开发的过程,把用户需求直接作为了软件需求,没有需求建模和抽象的过程。
另外一点就是对于性能,安全,易用性,可维护性和扩展性等非功能性需求没有考虑,导致开发出来的系统是一个不好用的半成品。
2 软件需求在软件开发中的重要性
2.1 尽快熟悉项目用户方干系人全貌
项目用户方干系人,即是全部可能将受到软件项目结果重大影响的人,既是软件项目的整个风险的承担者,同时也可能将是软件项目的受益者,还有可能是软件项目的受害者。所以,就应该从启动软件项目开始。
其需求分析员和该项目全体成员就首先要将项目用户方干系人包括的组织和成员分析清楚,对各个成员都通过交流协调的方式来影响他们,加强他们对整个项目发展的支持度,再逐一调查沟通了解他们的意愿和需求,最大可能的消除他们对项目产生的阻力,以保证项目能顺利地进行,最终取得成功。
有一部分软件项目的需求分析员在做实际调查时,因为会受到进度要求等一些因素的制约,需求分析员和建设单位的技术部门之间有比较多的交流,却在调查实际使用者和业务管理部门没有足够地深入,导致软件经过试用期之后就又必须再对需求做出大幅度的调整。
甚至是“从头再来”的可能性非常高,远远超出了进度所规定的时间。因而,了解并掌握项目用户方干系人的全貌是进行需求调查的首要任务,同时还是进行需求调查的根基。
在安排组织软件开发项目的全体项目用户方干系人之中,最值得重视的就是建设单位中的业务关系和人事组织。最好是可以画出有关单位的组织结构图,为了今后能更好更加全面地开展需求调研分析工作,还应该在该组织结构图的基础之上再画出此软件项目中全体用户方干系人的关系结构图;运用责任矩阵来确立各个环节的调研对象;为了确保在调研和分析时能及时地和各成员进行有效沟通,还要建立一个完整的调研对象通讯录。
2.2 采用正确的方法来获取需求
软件开发项目就是为了要获取并满足项目用户方的使用需求,其中项目用户方的需求分为隐含的和明确的,还可以分为不同的层次,如:WISH, WANT,等NEED。假使对项目中全部的用户方干系人缺少足够的交流沟通和积极影响,再让他们均尽可能地参与到项目开发中。
则将会造成客户方的有关责任人很模糊或者对调查范围和项目用户方的需求没有足够强的责任心,提出来的需求十分随意,在项目开发前期不能积极地确认需求。
或者是几个项目用户代表各说其辞、昨是今非,在项目开发的后期也随意变化需求等现象,这就将导致项目范围的不断扩大,进度严重受到阻碍,增加了投入的成本,甚至最终使项目彻底失败。
不同的软件用户对系统的要求也各不相同,比如一个毫无经验的用户只会留意系统在使用时是否容易简单,而对于一些高级用户就需要重视软件产品的高效性和易用性。因此,需求分析员就应该对用户进行科学合理地分类,每一个类别的用户均将有适合自己的非功能和功能要求。在软件开发项目中,应该尽可能早地给产品确立并描述各不相同的用户类别,这样就可以从所有的重要的用户类代表当中获取到各不相同的需求。
软件需求同时具有两重性(开发商与用户)和多重性(项目中的各干系人),所以,软件项目经理和该开发系统的集成人员应该对用户干系人的不同需求有充分了解,用户干系人还应该对技术层面上的需求有充分的了解,两者都不可或缺。要准确地获取需求就应该足够地了解用户的代表性、用户的分类、需求的来源、用户需求由谁决定等诸多因素。
项目经理和开发人员在聆听聆听用户的表述时均须具备足够的耐心,要对每一个细节都了解得十分详细。此外,项目管理人员要擅长将需求分类和归类,擅长把需求文档化,并做好相应标记便于查询。
3 强调实现软件项目需求的层次递进性
要明白此软件开发系统或者此项目用户所能够提供的最少的开发费用。如果预计资金不足时,就应该考虑把项目进行分期实施。在技术上、系统上给用户提出一些引导性的建议。
让用户明白集成商所需要实行的工作,明白集成商的目的就是帮助用户实现自己的需要并最终实现用户的目标,而不应该只是为了赚钱,一旦用户对集成商有了更深入的了解,且更加清楚自己的系统,这就对今后的项目合作、系统维护和工程实施十分有利。
分析用户以前使用过的库模式、数据结构和系统模式,看是否需要进行转换、共用、保持,这就关系到保护用户投资的问题。结合当前的工作业务流的实际情况来选择合理的工作模式,还应该考虑到未来或许会出现的变化、新规定、扩展,以及和国际接轨后或许将造成的一系列变化。
严格监视开发工程的进展环境是否得到有效保证,特别对于网络工程,必须在需求调查过程中就应对用户领域的实施环境有足够的了解,当实施环境不具备时,就需要及时进行环境改造和配套设计。
作者:刘平丽 来源:电子技术与软件工程 2014年2期