1、需求分析前的准备
在软件开发过程中,需求分析可以说是核心任务之一,就像一支将要远航的船队,要在指定时间内到达目录地,他们需要一条正确的航线,才能到达目的地,如果航线有误,他们将会误时到达,或是不回到原位将永远到达不了,这么重要的东西,但在国内很多团队中缺少,虽然我也做了一些,但在项目完成的时候,回头看看,其实我们做了很多不必要的事,浪费了很多时间、人力和物力,为保证在今后的开发中减少这些错误的发生,现将一些问题记录下来。
为了了解系统需求,先可以从概要式的需求着手,再细化需求,需求分析必须拟定文档,在写文档之前我们必须做好寻求分析的范围,总结为以下几点:
1.1要做一个什么样的系统
这个不说,我想做软件开发的人都知道,拟定这个后,一切才可以扩展开,比如我们要做一个B2C的商城,要卖母婴用品,知道了这些,我们就可以找现在网站有的B2C网站做参考,分析系统构架,系统功能等。
1.2系统将要在什么样的环境下进行
我上次经历的一个系统,就是要用asp.net重新发一个B2C商城,但有一些前提条件,以前公司有网站,是用java+MYSQL开发的,但我们开发的新系统必须兼容以前的数据,如客户信息,商品信息,还有一些资源信息,并且还要兼容Google,baidu收录的地址路径,还有与原ERP的通讯等条件,这样让我们的开发很受限制,这些需求就是这样,你无法改变,所以在设计新系统的同时你必须考虑,要花时间去了解以前系统的功能,接口等,如果不了解,等你把新系统开发完了才发现系统脱离了公司原有的业务流程,让公司无法运作,那就代表你开发的系统根本没有价值,我想这不是我们想要的结果。
1.3要解决哪些问题
开发出来软件系统就是为了解决客户需求的,一个B2C网站就是卖商品,主要由客户、商品、购物车、定单组成,将这些核心的功能定义好,我想其它的意外都不会太影响到整个系统的进程。
1.4将来可能会有哪些变化
面对将来的发展,我们也许不能完全考虑到,但与公司的战略发展,可以提前考虑些,能想到多少就想多少,多多益善,我们开发一个系统不是只满足当前的需求,如果眼光只放在眼前,那么你这个系统很快就会被淘汰,功能也许不需要现在实现,但接口总得留下吧,不然想改进都是很困难的事,如果一个稍微的小需求都要动系统构架,我想这个系统会越来越不稳定,作为系统分析师,这块也是至关重要的。
1.5系统可以维持任务的周期是多少
系统周期与公司战略发展是紧扣的,一个系统的功能不可能随着社会的变化,能一直满足市场需要的,在设计系统的时候,可以了解一下公司的战略发展,比如公司三年之内要做成什么样,客户多少,网站浏量,可以做下评估,这样就考虑系统构架的问题,你开始就准备构架一个大胖子,但现在需求简单,在实际的运行中,速度缓慢,其实你构架越复杂,系统运行就越缓慢,虽说现在很多大系统运行的都很好,但要想想,人家服务器,网络构架是什么样的,你不可能让你的系统一线就有这么好的环境,就算有,那成本也太大了,一般的公司也吃不消。
1.6系统分几个阶段实施
在开发初期,我们不可能将系统所有的功能都能完成的很好,为了加快开进度,为了系统能尽早上线,我们得像建楼一样,分阶段进行,分段实施,如果我们现在只是要在网上卖商品,那我们就得把客户管理、商品管理、购物车、定单管理这几大块实现,把一个系统根基打好,谁都想让自己的系统变成最强大的系统,但这个想法几乎是不可能完成的,如果我们把根基打好了,再在上面加以改进,添砖添瓦,根据客户或市场的需要来完善,我想这个系统就会慢慢变成