在一个软件项目所经历的各阶段中(如:⑴需求分析、⑵原型开发、⑶实现、⑷测试、⑸完成、⑹需求变更、⑺后期维护),不同阶段选用适当的工具能非常直接的相应参与人员的工作效率、沟通效率,缩短单个步骤所需要的时间,从而在整体上缩短软件项目的开发周期。值得注意的一点是,工具并不仅限于软件形态的快速开发工具。
⑴需求分析:是软件项目开发第一个也是很重要的一个阶段, 需求分析的基本任务是要准确地定义新系统的目标,为了满足用户需要,回答系统必须“做什么”的问题。 在这个阶段中包含需要获取需求、分析需求、编写规格说明和需求验证。从获取需求到需求验证的这个过程需要编写文档、绘制图形、创建需求模型等,像文档之类的工具可以使用word、绘制图形可以使用visio、建模可以使用rational rose等工具软件,有了这些工具的辅助,可提高编写文档的速度,缩短分析阶段的周期。除了以上这些软件形态的工具外还可为更快的项目参与人员之间的想法沟通,借助一些实体类工具,如纸制卡片,黑板或一些已经成型的系统。
⑵原型开发:在软件需求分析阶段,需要搞清楚的是软件要“做什么”的问题,并把这些需求通过文档的形式描述出来,这也是目标系统的逻辑模型。进入设计阶段,则要把软件“做什么”的逻辑模型变换为“怎么做”的物理模型,即着手实现软件的需求,并将设计的结果反映在“设计规格说明”文档中,接下来开始设计。设计的基本任务包括:软件结构、数据结构及数据库设计、概要设计文档。开发一个大而复杂的软件系统,我们可以将它进行适当的分解来降低其复杂性,还可减少开发工作量,你也可以使用一些能够提高设计速的软件来帮助你进行设计,从而提高软件生产率,降低开发成本。所用的工具比如使用UML绘制类图的工具。
⑶实现:设计完成之后进入编码实现阶段,为了提高整个项目的开发速度,编写代码我们可以借助一些有力的开发工具来加快速度,例如,如果是用JAVA语言开做开发的话,可以使用eclipse、JCreater,如果是用C#、VB你可以用Visual Studio.net;如果是开发网站之类的可以用Dreamweaver。美工可以使用photoshop或是FireWork之类的工具。节省项目的开发时间。另外一方面由于软件技术的快速发展带来了各种平台和引擎,选用适当的平台技术与引擎能更大程度的缩短周期。
⑷测试:软件的测试也是一个非常重要的阶段,大量的测试,甚至重复的测试引出了一个新的问题:全凭手工进行测试会浪费大量的时间。因此,易变的需求对测试提出了一个新的要求:自动化测试。此类型的工具例如Xunit系列。只有自动化的进行测试,才可以完成大量的测试工作,节省时间和人力方面的投入,加快项目的整体开发速度。关于自动化测试这方面的问题,大家可以参考相关的资料,这里我们不作深入的讨论。
工匠用钉枪、成型砖块、涂料喷雾器来建造一个小屋的话要比他单纯用一把榔头、沙砖、涂料刷来得快。拥有快速交通工具的人可以比拥有普通交通工具的人提前到达目的地。但不论什么情况下,如果质量是非常重要的话,那么即使是强有力的工具也将会被手工工具所替代或辅助。软件开发中使用工具的情况与上述情况也是非常相近的。