1软件工程概述

来源:互联网 发布:chromebook ubuntu 编辑:程序博客网 时间:2024/05/22 13:48

1软件

1.1什么是软件

软件:程序+文档+数据

1.2软件的分类

clip_image002

clip_image004

2.软件生命周期

clip_image006

clip_image008

3软件开发模型

clip_image010

clip_image012

瀑布模型特点:

1.阶段具有顺序性和依赖性

前一阶段结束后一阶段开始,前一个阶段输出文档,后一个阶段输入文档。

2.推迟实现观点

瀑布模型在编码前设置系统分析、系统设计,推迟程序物理实现,保证前期工作扎实。

3. 质量保证观点

瀑布模型每阶段坚持两个重要做法:

一是每阶段都必须完成完整、准确的文档。软件开发时人员间通信、运行时期维护的重要依据。

二是每阶段结束前对文档评审。

存在的问题

传统瀑布模型过于理想化,但人在工作过程中

不可能不犯错误,所以实际瀑布模型带反馈环。

clip_image014

优点:

提高软件质量,降低维护成本,缓解软件危机。

缺点:

模型缺乏灵活性,无法解决需求不明确问题。用户不经过实践提出完整准确需求不切实际。(每一个阶段都要求正确,并不现实)

clip_image016

clip_image018

先给用户开发一个软件,那么用户找错就容易多了,很容易获得需求(和瀑布模型的区别就在需求的获取的阶段,在需求不明确的情况下,快速开发模型更加的适用)

优点:

确定需求上优于瀑布模型(通过原型与用户交互);

提供学习手段,通过开发原型和演示原型对开发者和使用者了解系统都有积极作用;

有的软件原型可以成为最终产品的一部分。

缺点:

快速建立的系统结构加连续修改可能导致产品质量低下原型系统的内部结构可能不好。

clip_image020

clip_image022

做完一个构件就给用户用,增量的开发

优点:

较短时间向用户提交可完成有用工作产品;

用户有充裕时间学习适应产品;

软件结构必须开放,方便向现有产品加入新构件。

缺点:

做到第三个优点比较困难。

clip_image024

有可能合不到一块

clip_image026

clip_image028

clip_image030

里面没有风险的话,不断的向外扩

优点:

大型软件开发项目有较好的风险控制;

缺点:

需要风险评估的经验;

契约开发通常需要事先指定过程模型和发布产品,

普及不如前述模型

clip_image032

clip_image034

优点:

无缝,可同步开发,提高开发效率,节省开发时间, 适应面向对象软件

缺点:

可能随时加各种信息、需求与资料,需严格管理文档,审核的难度加大。

clip_image036

clip_image038

RUP有9个核心工作流,包括6个核心过程工作流和3个核心支持工作流。

RUP有4个连续阶段,每个阶段有明确目标,通过一次或多次迭代完成

clip_image040

clip_image042

先做一个初级的版本,以后不断的推出新的版本

原创粉丝点击