软件工程 - 3、项目开发

来源:互联网 发布:cms文章管理系统 编辑:程序博客网 时间:2024/06/02 17:14

项目开发阶段,几乎项目组所有成员都开始参与进来。而项目立项、维护这两个生命周期不属于项目开发的范畴,这里跳过它们。下面的描述不针对某种软件开发方法,只是从流程、和输入输出的工作产品入手讲述。

一、需求开发与管理

需求开发主要包括以下步骤:

1、需求获取

事实上,很多用户无法提供完整准确的需求,所以需求分析师需要通过各种方法或途径去了解用户的需求,比如:访谈、调查、观察、界面原型、参考文档、参考行业标准等,并最终形成《产品解决方案》。事实上,对于小型项目,可直接采用原型来获取需求,不需要形成《产品解决方案》。

 

2、需求分析

需求分析的目的是明确需求中各个元素之间的关系,以便于进行下一步的软件系统设计。根据我们前面提到过的软件开发方法,需求分析常用的方法如下:

(1)结构化分析方法:通过数据流图来描述软件的功能以进行分析;

(2)信息建模方法:使用ER图来表达实体间的关系,不过这种方法只是从数据的角度来建立对现实世界的模型。它是面向对象分析方法的原型,而面向对象在它的基础之上,结合了封装、类结构、继承等面向对象的概念;

(3)面向对象分析方法:通过用例图来表述实体在系统中的真实场景以进行分析;

 

3、需求定义

为了便于后续需求的管理,这里按粒度、级别对需求进行唯一标识以定义,最终形成《软件需求规格说明书》

 

需求管理主要包括以下步骤:

1、需求确认

这时的《软件需求规格说明书》并没有得到用户的确认,只是初稿,所以这时需要组织用户参加评审以确认需求,最终一定要用户签字/盖章,或发确认函,以免出尔反尔。

 

2、需求变更

随着用户对软件的使用、软件应用的外部环境的变化、或者是需求分析师的分析错误或不彻底,都可能带来用户需求的变更。

如果用户提出需求变更的话,这时需要提交《需要变更申请单》,项目组接到这样的申请时不要盲目响应,而是应该先进行评估。

如果工作量太大的话,需要重新走立项申请的流程;

如果工作量可接受,则接着走相应的变更管理流程,需求的变更进而会带动系统设计、编码、测试等的变更,这时一定要做好配置管理,控制版本和基线。

 

3、需求跟踪

在需求确认阶段中,《软件需求规格说明书》评审通过时,项目经理就应该建立《需求跟踪矩阵》来管理需求。

有了《需求跟踪矩阵》,从正向可以跟踪需求变更对下游产品的影响;从反向可以根据软件产品回溯分析需求是否得到满足。

 

二、系统设计

1、概要设计

概要设计就是建立软件的体系结构,根据《软件需求规格说明书》,从子系统到模块到功能点,逐层定义。

在概要设计中我们主要设计如下内容:

(1)总体架构设计,包括:实现方式、网络拓朴、总体流程、系统堆栈结构等;

(2)接口设计,包括:系统内与系统外、系统内部等;

(3)界面总体设计,包括:整体界面原型、风格、样式等;

(4)数据结构设计,这时只是数据库的逻辑结构设计,关于数据库这块的详细流程,见《软件工程 – 5、数据库设计与开发》;

(5)系统的错误处理、安全、部署等;

生成《概要设计说明书》、《数据库设计说明书》初稿,继而进行概要设计技术评审。评审通过,则可进入详细设计阶段。

同时,编码的进行还需要参考公司的编码规范进行,如果之前没有编码规范,可在此阶段,一并制定,如:《数据字典规范》、《XX编码规范》等。

 

2、详细设计

概要设计关注体系结构,详细设计则是从每一个功能、接口、界面、流程入手,深浅不一,可详细到伪代码级,也可粗到接口的定义层,粗细层度由功能模块在系统中所占的权重、难易等因素决定。

每个功能点的设计应该包括如下内容:

(1)功能描述;

(2)功能界面;

(3)功能中涉及到的接口,及输入输出参数说明;

(4)处理流程;

(5)算法、性能等;

生成《详细设计说明书》,细化的《数据库设计说明书》,此时已包括数据库的物理结构设计,继而进行详细设计技术评审。评审通过,则进入编码阶段。

 

三、编码

1、编码

很多人的理解就是,本生命周期中,只要对照设计文档,并将其翻译成相应的程序代码即可,事实上这只是其中的一个环节。如果采用面向对象编程,此阶段可以考虑以往代码的复用;

 

2、单元测试

完成编码后,同时要完成每个功能模块代码的单元测试,并生成《单元测试报告》,单元测试应该包括如下内容:

(1)源代码编译通过;

(2)各种脚本运行正常,包括:JS、VBS、SQL等;

(3)功能模块中接口的参数输入、输出正确;

(4)数据库中处理和产生的数据正确;

(5)边界值及异常处理是否得当;

(6)检查代码实现有没有满足设计文档中的要求;

如果有条件的话,此过程可使用相关测试工具、或者开发人员交叉测试。

 

3、代码走查

代码走查的目的主要在于:

(1)检查代码的规范性;

(2)核心业务代码的准确性及严谨性;

(3)新增业务、让步发行、或问题较多的功能点代码进行校验;

最好是由开发人员交叉走查,一来便于发现BUG,二来便于分享相互的技术,取长补短,三来加深对业务逻辑的理解,现在风行的极限编程大概也是从这里获得的灵感。

 

4、制作用户文档

最后制作一下《用户安装手册》、《用户操作手册》,说明软件的安装配置及如何使用。

 

四、测试

事实上,测试的工作并不是从这里才开始,而是在项目策划阶段,就已经开始了,关于测试的详细流程见《软件工程 – 4、测试》。

 

五、产品发布与实施

产品发布的主要工作在配置管理,就是从配置库中给软件产品打上版本号,这样就有了我们常说的RELEASE版。

 

产品实施,事实上也是项目,只不过是实施类项目,它的主要流程如下:

(1)立项;

(2)计划,主要工作就是制定《项目实施计划》;

(3)实施,主要包括:准备、安装调试、客户培训、产品上线、验收等;

(4)结项。

当然,根据软件产品的规模、性质不同,有时并不需要走项目实施流程。


转载 :http://blog.csdn.net/seusoftware/article/details/4745467

0 0
原创粉丝点击