本文档的编写旨在探寻规范的软件开发流程、加快软件开发速度、提升软件开发质量、下降项目综合成本。html
IT界有一句格言:"You can do it right; you can do it fast; you can do it cheap. Pick two." 而咱们要作的就是:提供优质服务、项目周期短、成本低廉数据库
项目从用户需求说明书的提出,到系统的第一个完整版本的交付使用经历了若干或复杂或简单的过程,但无论项目大小如何通常须要经历如下几个步骤:编程
1. 需求分析。框架
2. 撰写需求规格说明书数据库设计
3. 整体设计工具
4. 详细设计单元测试
5. 编码实现测试
6. 测试、(UAT : User Acess Test)试运行、上线编码
7. 验收设计
8. 平常维护
9. (下一个版本的循环开发)
在以上各步骤中尤为重要的是系统分析和撰写需求规格说明书。当定义好《需求规格说明书》后须要用户签字确认,以此做为项目验收的依据,在中大型项目中尤为重要。
失败的项目缘由不少但如下几点比较广泛:
(1)商务运做中为了拉住“单子”对客户的众多纷繁复杂的要求一味的妥协让步满口答应。项目开发计划、时间表等彻底依照客户意见,不以具体项目的客观事实为依据,不作认真细致严格的项目复杂度、项目工做量的评估。
(2) 不作细致的用户需求分析致使项目后期的需求变动较大不能定期完成项目。
在项目开发的各阶段时间比例方面,中小项目通常控制在
1: 40% 设计
2: 40% 编码
3: 20% 整体设计/试运行
研究客户需求,从中找出需求中模糊不清的地方,反复讨论确认。在不断的确认中,包括需求的整体认知、需求边界定义、目前技术条件下的可实现需求、用户界面等。经过项目组内讨论、与客户(直接客户、间接客户)讨论等方式不断清晰客户真正的需求,从而撰写〈〈需求规格说明书〉〉,在取的客户承认后签字,以此作为项目开发的第一个里程碑。在项目验收时以此做为验收的主要依据
在系统分析阶段与客户的沟通方式能够经过(1)项目静态图、项目静态界面DEMO(2) 系统用例图(例如:rose软件的用例图) 等方式与客户沟通。
本阶段要完成的工做有:
1. 撰写项目需求分析报告
本报告主要目的是项目分析人员提出需求的疑难不清问题,为与客户有效、准确沟通准备必要的材料。
2. 画用例图
描述系统各个不一样用户类型与本系统及其余系统等的交互过程。
3. 创建项目静态界面DEMO
使得用户在项目初期就能够看到项目上线实施后的使用界面和使用方法等
4. 作必要的技术预研等。
需求规格说明书的撰写主要目的是把客户天马行空、纷繁复杂、凭想象等的理想需求中变成在必定时间段、必定技术条件下可实现的需求。否则项目会很难知足客户的理想需求,永远被客户的理想需求所限制,陷入一种很是被动的状态。
在完成项目需求规格说明书后,就进入项目整体设计的阶段。
在整体设计阶段须要完成的文档有:
1. 《项目整体设计---概要设计说明书》、
2. 《数据库设计报告》
3. 《项目整体开发时间表》
在此阶段应该创建项目的正式开发环境、项目测试环境、创建项目基本开发框架且导入项目管理配置工具中(例如:CVS、VSS等)等
在项目的以上阶段完成后,建议进行项目整体设计和整体开发准备状况的评审工做。在公司、集团专家组评审经过后本阶段结束,这算作项目的第二个里程碑。
在进行下一阶段前,目前项目组能够对SCCB(软件变动控制委员会)提交的资料有:
1:《需求规格说明书》
2:《项目整体设计概要说明书》
3:《项目界面设计说明书》(及界面DEMO)
4:《项目数据库设计说明书》等
5:《项目整体开发时间表》
在项目完成整体设计和搭建完毕开发环境后,就能够进行项目的详细设计。
在项目中建议详细设计由项目编写“后台”程序的资深人员编写。主要完成每一个负责的业务模块从界面到业务实现到数据库链接操做的主要步骤和数据库的实现SQL。最好在条件容许的状况下编写模块单元测试程序,在整个模块编码阶段完成后进行程序单元测试工做。(“测试驱动”的开发理念)
详细设计目的是在不编写代码和少许代码的状况下,完成项目模块的模拟编程实现。
在详细设计阶段能够对项目某模块作准确的工做量统计,依此为依据整个项目比较准确的工做量就能够被统计出来。
(略)
(略)
转载:http://www.cnblogs.com/wohexiaocai/p/3815707.html