1.3.5 精通一种开发模型
要成为一个合格的需求分析师,至少要精通一种开发模型,注意,这里说的是“至少”,精通多种开发模型只有好处没有坏处。
所谓软件开发模型,就是用什么方式把软件开发出来,是设计完成再开发,还是一边设计一边开发;是明确区分每个开发步骤,还是模糊每个步骤的边界,采用螺旋迭代的方式开发;等等。
常见的开发模型包括瀑布模型、螺旋模型、迭代模型、快速原型开发模型等,本书介绍“快速原型”开发模型,笔者认为,这是开发中小型管理软件的最佳模型。使用这种方式开发,首先要设计原型,也就是根据客户的要求先设计出可以进行简单操作的界面。为什么叫“快速原型”?因为一般的原型使用原型设计工具是可以非常“快速”地设计出来的。有了原型之后,给客户演示、确认,由于这是个可以看到的实实在在的东西,用户甚至还可以进行一些简单的操作,因此,用户就可以有非常直观的感受,让用户提前了解软件开发完成后是个什么样子,这样用户就可以提前提出自己的意见,厘清被误解的需求,发现被丢失的需求,指出设计不足的地方,提出改善建议。有时候,用户看到这个原型说的几句话,可以让整个设计思路发生摧枯拉朽式的变化,这要是在软件开发完成了发生,那简直要崩溃了。使用“快速原型”的方式开发,最大的好处就是方便与客户沟通,可以尽早沟通,深度沟通,确保开发出来的软件是用户需要的。
设计原型的方式也有多种:有的团队使用开发工具直接设计,客户确认原型后继续开发,优势是原型不需要丢弃,可以继续利用,劣势是速度较慢;有的使用专业的原型设计工具来设计,可以大大提高效率,优势是速度快,劣势是一旦客户确认后,还得用开发工具重新制作一遍;有的使用某种长于界面设计的开发工具设计(如Delphi、VB等这种以设计界面见长的开发工具),客户确认后,再用别的工具开发,这个原型也就被丢弃掉,虽然设计速度可能比不上设计工具,但可以用代码实现一些交互过程,让客户更易于理解。
本书介绍的“快速原型”开发模型大概步骤如下。
(1)通过各种方式理解客户业务,获得客户需求。
(2)根据客户的业务流程、管理方式,以及客户对信息化的需求进行系统规划。
(3)根据规划结果设计数据库。
(4)根据规划结果设计软件功能。
(5)根据规划结果设计原型界面。
(6)撰写原型说明书。
(7)需求评审。需求评审分为两种:一种是有用户参与的需求评审,重点在把握需求;另一种是开发团队的评审,重点在理解需求,讨论技术实现方式。
(8)根据评审结果修改设计。
(9)开发、测试。这个不在本书的讨论范围。
(10)内部试用软件,发现问题,改善软件。
(11)用户试用软件,发现问题,改善软件。
(12)软件上线,进入维护期,应对需求追加与变更,促使软件不断成长。