软件开发流程是软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法,软件的总体结构设计,数据库设计和模块设计,编程和调试,程序联调和测试及编写,提交程序。提高软件开发能力没有捷径,唯有“规范化”之路。制定适合与本企业的软件过程规划,并按照此规范执行。本规定对软件开发各个过程中的目的,要求,人员和职责,工作内容及输入/输出,评审进行规范。本规定主要的约束对象是B/S结果的软件开发。
软件过程开发划分
本规定对一个完整的开发过程按“软件过程改进方法和规范”把产品生命周期分为6个阶段:
PH0产品概念阶段;
PH1产品定义阶段;
PH2产品开发阶段;
PH3产品测试阶段;
PH4用户验收阶段;
PH5产品维护阶段;
软件项目的过程有三大类:
项目管理过程;
项目研发过程;
机构支持过程;
而这三类过程可以细分19个主要过程域,分布在PH0到PH5的各个阶段。
项目管理的6个过程域:
立项管理;
结项管理;
项目规划;
项目监控;
风险管理;
需求管理;
项目研发过程包含6个过程域:
需求开发;
技术预研;
系统设计;
实现与测试;
系统测试;
Bete测试;
客户验收;
技术评审;
机构支撑过程包含5个过程域:
配置管理;
质量保证;
培训管理;
外包与采购管理;
服务与维护;
按照软件开发的流程规范,在项目经理领导的团队开发小组,在各个过程开发基础上,接受迭代开发和敏捷软件开发的思想。要不拘泥传统的开发过程。
需求开发
需求分析说明书的形成需要市场调研,技术和市场要结合才能体现最大的价值。这个阶段需要出三种东西,用户视图,数据字典,用户操作手册。获取需求的主要收集方式有:
与用户交谈,向用户提问题;
参观用户的工作流程,观察用户的操作;
向用户群发调查问卷;
与同行,专家交谈,听取他们的意见;
分析已经存在的同类产品;
从行业标准规则中提取需求;
从Internet中搜集相关资料;
输出:
新产品概念书;
调研报告;
《需求说明书》;
《项目计划书》;
计划书和计划表;
系统设计
系统设计主要分类数据库设计,程序的概要设计及详细设计。概要设计是将系统功能的模块进行初步划分,并给出合理的研发流程和自愿要求。作为快速原型设计方法,完成概要设计就可以进行编码阶段。一份好的详细说明书,可以使编码的复杂度降到最低,实际上,严格讲,详细设计说明书应该把每个参数的定义都精细的列出来,从需求分析到概要设计要完成详细的设计说明书,一个软件项目就应该说完成了一半。换言之,一个大型软件在完成一半的时候,其实还没有开始编码工作。程序员不值是写代码。
系统设计根据《项目建议书》,《需求说明书》的内容来设计系统结构,用户界面,数据库,功能模块,并编写《系统设计初稿》,从而在需求与代码之间的简历桥梁,指导开发人员的工作,开发出能满足用户需求的产品。
系统设计的好坏可以从“可用性,易用性,可维护性,结构稳定性,可扩展性,可复用性,软件执行效率”等因素来评估。
原则上讲软件系统设计,数据库设计应考虑全局,需要同步编写文档,轻易不要简化。
界面的设计只要大多数用户,开发人员能够理解即可,细节可在编程时实现。
功能模块的主要确定每个模块的主要接口,数据结构算法,能够清楚的指导模块编程即可,不要花太多时间设计模块细节。
输出:
《项目建议书》;
《需求说明书》;
软件设计过程中的标准和规范;
软,硬件开发环境;
编码测试
在规范化的研发过程中,编码工作只占项目工作的最多1/2,通常在1/3左右的时间。所谓磨刀不误砍柴工,设计过程完成的好,编码效率会大大的提高,编码时不同模块之间的进度协调和协作是最需要小新的,也许一个小模块的问题就可能影响整体的进度。编码时相互沟通和应急的解决手段都是非常重要的。只要不是一锤子买卖,就要不停的跟踪软件的运营情况和持续修升级。直到这个软件彻底淘汰的时候。