软件工程导论学习知识点

第一章 绪论

软件=程序+文档+数据

软件危机的主要原因:1、忽视软件需求分析的重要性
2、任务软件开发就是写程序
3、轻松软件的可维护性

软件工程的基本原理:1、用分阶段的生命周期计划严格管理
2、坚持进行阶段评审
3、实行严格的产品控制
4、采用现代程序技术
5、结果应能清楚地审查
6、开发小组成员应该少而精
7、承认有必要不断改进软件工程

软件工程的三要素:工具,过程、方法

软件生命周期:软件定义+软件开发+软件维护

软件开发策略:
1、软件复用(重复使用组件)
2、分而治之(大化小)
3、折中-优化(就是优化)

软件模型:(也就是开发时候的开发顺序)
1、瀑布模型:在这里插入图片描述
说白了,瀑布模型就是先确定需求,然后一直做完在给用户使用,一旦要更改需求就会非常棘手,所以只适合需求非常确定或者比较成熟的项目使用。

瀑布模型的优点:
1.开发的各个阶段比较清晰。
2.强调早期计划及需求调查。
3.适合需求稳定的产品开发。

瀑布模型的缺点:
1.依赖于早期的需求调查,不适应需求的变化。
2.单一流程不可逆。
3.风险往往延至后期才显露,失去及早纠正的机会。
4.问题在项目后期才开始暴露。
5.前面未发现的错误会传递并扩散到后面的阶段,可能导致项目失败。

瀑布模型适用场所:
适合于结构化方法,也就是面向过程的软件开发方法。 软件项目或产品选择瀑布模型必须满足下列条件:
 1)在开发时间内需求没有或很少变化;
 2)分析设计人员应对应用领域很熟悉;
 3)低风险项目(对目标、环境很熟悉);
 4)用户使用环境很稳定; 
 5)用户除提出需求以外,很少参与开发工作。

改良:
沿用瀑布模型的线性思想,细化了各个阶段,在某些重要关注的阶段之间掺入迭代的思想。

2、快速原型模型
在开发真实系统之前,构造一个原型,在该原型的基础上,逐渐完成整个系统的开发工作。
第一步是建造一企快速原型,实现用户与系统的交互,用户对原型进行评价,进一步细化徒开发软件的需求。通过逐步调整原型使其满足用户的要求,开发人员可以确定用户的真正需求是什么。

第二步是在第一步的基础上开发出用户满意的软件产品。

快速原型模型优点:
1.克服瀑布模型的缺点,更好地满足用户的需求并减少由于软件需求不明确带来的项目开发风险。
2.适合预先不能确切定义需求的软件系统的开发。

快速原型模型缺点:
不适合大型系统的开发(适合开发小型的、灵活性高的系统)。
前提要有一个展示性的产品原型,因此在一定程度上可能会限制开发人员的创新。

原型模型的适用场所:
原型模型适用于那些不能预先确切定义需求的软件系统的开发,更适用于那些项目组成员(包括分析员、设计员、程序员和用户)不能很好的交流或者通信的情况下。

说白了,快速原型模型就是先快速做个原型给用户看,用户再提出改进的方案,然后开发人员再做软件。

3、螺旋模型

螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期大致和瀑布模型相符合,螺旋模型沿着螺旋线旋转,即在坐标的4个象限上分别表示了4个方面的活动,如图所示:

制定计划
风险分析
实施开发
客户评估

螺旋模型优点:
螺旋模型很大程度上是一种风险驱动的方法体系,因为在每个阶段之前及经常发生的循环之前,都必须首先进行风险评估。

螺旋模型缺点:
采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失。过多的迭代次数会增加开发成本,延迟提交时间

说白了,螺旋模型就是不断的周期性地进行瀑布模型。

4、增量和迭代模型

增量迭代是RUP统一过程常采用的软件开发生命周期模型.增量和迭代有区别但两者又经常一起使用.所以这里要先解释下增量和迭代的概念.假设现在要开发 A,B,C,D四个大的业务功能,每个功能都需要开发两周的时间.则对于**增量方法而言可以将四个功能分为两次增量来完成,第一个增量完成A,B功能,第二 次增量完成C,D功能;而对于迭代开发来将则是分两次迭代来开发,第一次迭代完成A,B,C,D四个基本业务功能但不含复杂的业务逻辑,而第二个功能再逐 渐细化补充完整相关的业务逻辑.**在第一个月过去后采用增量开始时候A,B全部开发完成而C,D还一点都没有动;而采用迭代开发的时候A,B,C,D四个的 基础功能都已经完成.

5、喷泉模型
喷泉模型是典型的面向对象的软件过程模型,“喷泉”代指面向对象开发过程迭代和无缝的特性。该模型认为软件开发过程自下而上周期的各阶段是相互重叠和多次反复的,就像水喷上去又可以落下来,类似一个喷泉。
在这里插入图片描述

喷泉模型的优点:
喷泉模型不像瀑布模型那样,需要分析活动结束后才开始设计活动,设计活动结束后才开始编码活动。该模型的各个阶段没有明显的界限,开发人员可以同步进行开发。
其优点是可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程。

喷泉模型的缺点:
由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。
此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。

喷泉模型适用场所: 适应于面向对象的软件开发过程。

6、RUP
统一建模语言,采用用例驱动和架构有限的策略,使用迭代增量建造方法。
也是和螺旋模型相类似,多周期的执行小瀑布模型,但不同阶段的工作重心不同前两阶段大部分工作集中在需求、分析和架构设计上;在构造阶段,重点转移到详细设计、实现和测试上。

7、敏捷开发与极限编程
一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。并且强调开发者与用户的协作关系,适应客户需求的不断变化,设计也要不断跟进,而不是闭门造车。

极限编程(XP)是敏捷开发中最著名的一个,适用与小型项目

关于选择生命周期模型的最后的总结:
  1.在前期需求明确的情况下尽量采用瀑布模型或改进型的瀑布模型.
  2.在用户无信息系统使用经验,需求分析人员技能不足情况下一定要借助原型.
  3.在不确定性因素很多,很多东西前面无法计划情况下尽量采用增量迭代和螺旋模型
  4.在需求不稳定情况下尽量采用增量迭代模型
  5.在资金和成本无法一次到位情况下可以采用增量模型,软件产品分多个版本进行发布
  6.对于完全多个独立功能开发可以在需求阶段就分功能并行,但每个功能内都应该遵循瀑布模型
  7.对于全新系统的开发必须在总体设计完成后再开始增量或并行.
  8.对于编码人员经验较少情况下建议不要采用敏捷或迭代等生命周期模型.
  9.增量,迭代和原型可以综合使用,但每一次增量或迭代都必须有明确的交付和出口准则。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值