软件开发模型

来源:互联网 发布:2012无法启用网络发现 编辑:程序博客网 时间:2024/04/27 19:45

瀑布模型.

瀑布模型步骤图

 步骤

制定计划.

n  确定要开发软件系统的总目标;

n  给出功能、性能、可靠性以及接口等方面的要求;

n  完成该软件任务的可行性研究;

n  估计可利用的资源 (硬件,软件,人力等)、成本、效益、开发进度;

n  制定出完成开发任务的实施计划,连同可行性研究报告,提交管理部门审查。

需求分析和定义

n  对用户提出的要求进行分析并给出详细的定义;

n  编写软件需求说明书或系统功能说明书及初步的系统用户手册;

n  提交管理机构评审。

软件设计

n  概要设计 把各项需求转换成软件的体系结构。结构中每一组成部分都是意义明确的模块,每个模块都和某些需求相对应;

n  详细设计 对每个模块要完成的工作进行具体的描述,为源程序编写打下基础;

n  编写设计说明书,提交评审。

程序编写

n  把软件设计转换成计算机可以接受的程序代码,即写成以某一种特定程序设计语言表示的“源程序清单”;

n  写出的程序应当是结构良好、清晰易读的,且与设计相一致的。

软件测试

n  单元测试,查找各模块在功能和结构上存在的问题并加以纠正;

n  组装测试,将已测试过的模块按一定顺序组装起来;按规定的各项需求,逐项进行有效性测试,决定已开发的软件是否合格,能否交付用户使用。

运行/维护

n  纠正性维护  运行中发现了软件中的错误需要修正;

n  适应性维护  为了适应变化了的软件工作环境,需做适当变更;

n  完善性维护  为了增强软件的功能需做变更。

特点

n  阶段间具有顺序性和依赖性

n  推迟实现的观点

n  每个阶段必须完成规定的文档;每个文档结束前完成文档审查,及早改正错误

缺点

n  过程基本不可迭代

n  需求在开始的不确定性

n  错误到最后才能发现

n  开发进程呈现塞阻状态

增量演化模型.

 

 

 

 

有关Scrum的几个名词
backlog: 可以预知的所有任务,包括功能性的和非功能性的所有任务。
sprint:一次跌代开发的时间周期,一般最多以30天为一个周期.在这段时间内,开发团队需要完成一个制定的backlog,并且最终成果是一个增量的,可以交付的产品。
sprint backlog:一个sprint周期内所需要完成的任务。
scrumMaster: 负责监督整个Scrum进程,修订计划的一个团队成员。
time-box: 一个用于开会时间段。比如每个daily scrum meeting的time-box为15分钟。
sprint planning meeting: 在启动每个sprint前召开。一般为一天时间(8小时)。该会议需要制定的任务是:产品Owner和团队成员将backlog分解成小的功能模块,  决定在即将进行的sprint里需要完成多少小功能模块,确定好这个Product Backlog的任务优先级。另外,该会议还需详细地讨论如何能够按照需求完成这些小功能模块。制定的这些模块的工作量以小时计算。
Daily Scrum meeting:开发团队成员召开,一般为15分钟。每个开发成员需要向ScrumMaster汇报三个项目:今天完成了什么? 是否遇到了障碍? 即将要做什么?通过该会议,团队成员可以相互了解项目进度。
Sprint review meeting:在每个Sprint结束后,这个Team将这个Sprint的工作成果演示给Product Owner和其他相关的人员。一般该会议为4小时。
Sprint retrospective meeting:对刚结束的Sprint进行总结。会议的参与人员为团队开发的内部人员。一般该会议为3小时。
 
实施Scrum的过程简单介绍
 
1) 将整个产品的backlog分解成Sprint Backlog,这个Sprint Backlog是按照目前的人力物力条件可以完成的。
2) 召开sprint planning meeting,划分,确定这个Sprint内需要完成的任务,标注任务的优先级并分配给每个成员。注意这里的任务是以小时计算的,并不是按人天计算。
3) 进入sprint开发周期,在这个周期内,每天需要召开Daily Scrum meeting。
4) 整个sprint周期结束,召开Sprint review meeting,将成果演示给Product Owner.
5) 团队成员最后召开Sprint retrospective meeting,总结问题和经验。
6) 这样周而复始,按照同样的步骤进行下一次Sprint.
 
整个过程如下图所示:
 
web项目的划分.
1:DataBase项目
2:DataFactory
项目
3:Bussiness
项目
4:BussinessEntry
项目
5:WebApp
项目
项目流程是
1:搜集项目需求整理成条目并用Execl给予储存(项目负责人)
2:整理项目需求概况得到数据字典(数据库管理员)
3:由项目需求得到前台页面框架(美工负责)
5:写系统框架,包括
         A:数据提供,可以直接拿来用.主要是初始化数据库连接.数据访问对象的接口(函数)
         B:数据访问,写数据访问对象.利用反射机制获得多数据库支持
6:写系统代码,
          方案
              方案1:建立一个从usercontrol继承的控件类在load事件到来时初始化数据库连接并建立数据访问对象.并把该对象缓存以被该页相关的其他功能使用.其他所用页面控件继承与该控件类.
              方案2:建立web组件层实现页面逻辑与页面表现分离.组件层实现共同方法loadcontrol与页面UI层交互,并与Bussiness项目交互储存数据再者与数据访问层交互把操作反映到数据库中
           评价:
            方案1:很直观也很简单,使用于小型项目,如果项目划分的很详细并且项目中各个成员对项目都有清晰的认识,这种方案也可以实现大型项目.
            方案2:实现了页面表现与页面逻辑分开,可以用于大型项目.大家按照功能划分.各尽所能.(一种是建立个类在构造函数中实现数据库初始化在析够函数中实现垃圾回收另一种是利用orm还有一种就是自己写业务实体和业务逻辑在这里调用)
7:系统测试.针对需求提供极限情况对业务进行测试.利用nunit对代码进行测试.
8:项目完成
总结
经过网上调研,大部分同事采用的仍然是最原始的 瀑布模型,其公司主要集中在 外包公司,500人以上的国内企业,以及部分50-100人的中小型企业。
还有部分同事采用的是 增量模型,或退化成 边做边改模型,主要集中在50-100人的中小企业,并从事B/S结构的软件开发,部分100人以上的公司采用 里程碑模型
原创粉丝点击