软件开发的一般过程通常情况下由需求调研分析、框架设计、编码设计、测试、软件文档交付、后续系统支持六大部分组成。其中,需求调研分析是整个软件开发过程中的第一步,也是最为关键的一步,需求调研设计在整个软件开发过程中确定了系统的开发目标与开发方向,并为软件开发后续的五大步骤奠定了切实可行的基础。
1 软件需求调研的一般操作过程
软件开发过程中的需求调研分析的一般操作过程通常是在双方确定合同关系之后,由目标客户的具体负责人员和软件开发公司的系统分析员双方之间通过沟通并最终形成需求调研报告来完成的。
1.1 由专业的系统分析员与目标用户进行初步沟通,大致了解目标客户的系统需求,系统分析员通过文本或者数据格式列出目标客户需要要开发的系统的几个大的主功能模块,通过与目标客户的进一步沟通,继续确定每个大功能模块有哪些小功能模块。以小功能模块为基础,对少量客户需求比较明确的模块的界面进行定义,并与客户进行沟通,确认并签字。
1.2 通过与目标客户的进一步沟通,经由系统分析员对客户的需求进行更深入的了解并对客户的目标需求进行常态化分析。系统分析员根据自己的经验和需求用相关的文本文档工具再做出一份文档系统的功能需求文档。此次确认的系统需求文档会充分考虑到目标客户的概念需求以及具体功能需求,同时与开发的总体框架设计人员以及开发过程中的项目经理沟通,比较清楚的展示系统中存在的大致的大功能模块,以及已知的大功能模块中较为具体的小功能模块,并尽可能的列出与小功能模块相关的界面和界面功能以供目标客户进行选择。
1.3 由于软件开发本身具有相当程度的不确定性,由此导致的软件开发过程中有极大可能会出现开发方偏离目标客户的需求方向、开发方与目标客户沟通过程中出现噪音等情况以及目标客户临时产生的新的需求思路和需求想法,这就导致了软件开发过程中可能出现对最初生效的软件需求进行修改的情况,尤其在客户进行定制开发过程中经常出现,这就要求软件开发过程中的系统分析员、软件开发人员以及目标客户进行进一步沟通,完善并修改需求调研报告,并在每次修改后,经由双方协商签字确认。实际上,由于各种原因的存在,需求调研报告的修改是伴随着整个软件开发过程的一个长期的过程。
2 软件需求调研人员的选择
对于系统分析员而言在具有相当程度的技术优势的同时,还要具有良好的为人处事的素质,能够做好与客户之间的关系,并且具有相当程度的情商与对目标客户所属行业的了解程度,从而使得系统分析员能够对客户的需求有相对正确的理解,并且能够根据自身技术特点进而延伸到为目标客户选择合适的开发技术,要有相当程度的语言天赋,能够说服目标客户的同时,也要能够说服自身所属软件开发产业内部的领导以及具体开发然元。
通过在实践工作中的分析,我认为,一个良好的系统分析人员应该初步具备以下特点。
从技术层面上讲,合适的软件研发人员最好由框架开发人员担任,通常情况下,框架开发人员针对编码人员而言,对软件开发本身的全局观念更加强,在技术上也相对全面,在沟通过程中,就能完成好与目标客户之间和自身开发团队之间的承上启下关系。
从年龄和外貌方面讲,尽量选择年龄较大,看上去比较沉稳的人员来担任系统分析员与目标客户进行沟通,年龄较大的系统分析员可以增强其对目标客户的说服力,通过目标客户的代表进而影响目标客户的决策。从外貌上而言,不宜选择美女或者帅哥等,以避免在沟通过程中产生不必要的“噪音“影响软件开发的正常进行。无论是系统开发员也好,目标客户的代表也好都是作为自身组织的代理进行沟通的,因而避免一些不适当的噪音是十分必要的。
沟通的技巧方面,系统分析人员在于目标客户进行沟通的过程中,要做到与目标客户的最终理念相一致,即与目标客户的最终目标概念相同,其预期都是为软件的最终良好的使用而努力,对于系统分析人员而言,需要考虑的并不应该是把目标客户作为对手而是作为合作伙伴。这里需要特别指出的是,软件公司必须要把财政与研发相分开,具体的财务问题与合同由软件开发公司的专门领导负责,系统分析人员则只需要对系统的需求建设负责。系统分析人员要从自身角度以及目标客户角度出发,本着目标客户的最终概念出发,进行沟通,通过或委婉或直接的办法对目标客户的需求提出建议,在初始的沟通过程中。建议的范围最好局限于通过提出各种实现的方式,由目标客户来选择所需要的实现方式,这样即满足了目标客户的需求,同时也使得目标客户感受到软件开发方的准备充分。对于软件开发方而言,采用这种可选方案的方式可以在沟通的最初就限制了目标客户的一些不切实际、浪费成本的想法。做到了扬长避短,节约软件研发时间、人力、物力成本等。在初次沟通当中,最为忌讳的就是与目标客户进行所谓的“斗智斗勇”,因为无论系统分析人员对目标客户的行业有多么熟悉,也无法解决或者遇到目标客户的一些特定问题。如果目标客户采用以偏概全、以点带面的方式与系统分析人员进行讨价还价,最终受到影响的必定是软件开发方无疑。系统分析人员在起初的沟通过程中所要做到的就是与目标客户人员建立信任与合作机制,同时初步了解目标客户的需求概念,并在之后的沟通过程中,在良好关系的基础上,本着目标客户的最终需求概念,对具体的操作方式与小模块设计等进行沟通。
3 软件需求调研在后续研发过程中出现的问题
对于软件研发人员而言,往往更加重视前期的需求调研而忽视后期研发过程中对软件研发进度与效果的调整。从合同角度而言,软件的需求调研过程从软件开发方与目标客户正式签字之后就生效了,很多软件开发方往往以此为基础,而有意或无意的忽略了目标客户的需求变更,以及后续的需求调整。从而造成了在软件完工之后,不满足目标客户的实际需要,造成了不必要的麻烦,甚至有返工的危险。其原因在于无论目标客户还是软件的系统开发人员都无法真正的准确预测软件的最终开发过程,软件开发者又往往由于这样或那样的原因对原有的设计进行推翻或者修改,目标客户又由于自身或外部的原因进行修改,导致了问题的出现,这就要求软件开发方要在整个研发过程中保持与目标客户的持续沟通,并通过系统分析人员对系统需求进行商讨与修改,商讨与修改的幅度势必会导致软件开发方的成本增加,这就需要系统分析人员通过其自身的魅力与专业素质尽量减少这方面的损失。但是无论如何,为了避免研发完成后问题的出现,适当的在研发过程中增加一些成本还是可以承受的。
以上,是我多年从事系统分析员的一点心得,希望得到指证。
第四章软件项目管理系统的设计4.1软件项目管理系统的总体设计。4.1.1系统总体结构设计。4.1.2系统软件配置方案。本系统的运行环境需求如下:操作系统:WindowxpWeb服务器:Tomcat6.0数据库:SQLServer2003本系统的开发环境如下:操作系统:Win...
当前,在软件开发过程中已经开始运用了软件配置管理法,此种方法可以将软件配置状态充分反映出来,还能够对软件配置的完整性进行有效检验。同时也可以为软件开发人员提供相关数据。而软件开发人员通过分析这些数据,能够及时发现其中存在的问题,并且采取措...
第五章结合理论研究对软件项目管理系统的思考(1)认识项目管理。国外学者研究软件项目的时间比我国长,因此具有丰富的研发经验,美国的一位软件项目管理研发的人员说道,当今社会的一切事物都可以成为研发的项目,而项目就是指我们在一定时间内为达到某...
第二章软件项目管理系统的理论基础2.1软件项目管理系统的理论基...
随着信息技术的飞速发展,软件产品的规模也越来越庞大,各软件企业都在积极将软件项目管理引入开发活动中,对开发实行有效的管理。但国内软件企业对于软件项目的认知,在一定程度上盲目多于理性、理论多于实践。鉴于上述问题,本文分析了基于项目管理的软件开...
1引言近些年以来,伴随着科学技术的快速发展,企业软件项目管理逐渐体现出重要性,然而我国各个行业领域的企业发展比较滞后,尤其是在软件项目管理这方面显得更加落后,主要的原因是科学技术发展缓慢,同时缺乏科学合理的管理机制。如何使用计算...
引言高校课堂教育与实践教育的关系一直是教学改革的主题,尤其作为以培养软件工程师为主的软件学院,这个问题显得尤为重要,很多高校不同程度的存在重理论、轻实践,重知识传授、轻能力培养,重课内、轻课外的现象。有专家认为应该以课堂为主,有...
伴随社会的进步我国电脑软件工程管理也获得了一定的进步,可是当前电脑软件工程管理工作还是有许多问题需处理,产生这些问题的主要原因就是在于人们扔持有传统想法,电脑软件工程是新兴起的一个项目,因此对这方面的钻研主要还是探索时段,人们还不习惯这类...
摘要目前在大型软件企业中,通常会有几个大的软件项目在同时进行。如何建立一个高效的软件项目管理系统来对软件生成过程和软件质量进行管理和控制已经成为一个日益重要的任务[1].随着经济的飞速发展,我国的科技水平得到了很大提高,这对软件项目管理系统...
第一章绪论1.1选题背景。从20世纪中期到现在,软件产业快速发展。软件产业对人类社会发展起到了促进作用,但软件危机也随之而来。落后的软件开发方式,和计算机软件需求增长的速度不相适应,最终产生了软件危机。出现上述危机的同时,人们也开始考虑,...