软件工程导论-第一章 概论

重点:五八章

1.2软件工程

主要表现

(1)软件开发生产率提高的速度远远不能满足用户需要。
(2)软件功能与实际需求不符。
(3)软件产品质量差。软件开发团队缺少完善的软件质量评审体系及科学的软件测试规程,导致最终的软件产品存在很多缺陷。
(4)对软件开发成本和进度的估计常常不准确。
(5)软件文档既不完整也不合格。
(6)软件的可维护性差,维护费用高。很多程序缺乏相应的文档资料,程序中的错误难以改正,有时改正了已有的错误又引入新的错误。随着软件的社会拥有量越来越大,维护占用了大量人力、物力和财力。

1.3 软件工程的基本概念

  • 软件工程是用科学知识和技术原理来定义、开发、维护软件的一门学科。它应用工程的概念、原理、技术和方法,应用科学的开发技术和管理方法来开发软件。

1.4 软件生命周期

基本概念:孕育、诞生、成长、成熟、衰亡
软件生命周期大体可以分为如下几个活动:计算机系统工程、需求分析、设计、编码、测试、运行和维护。

1.5 软件过程模型:

  • 瀑布模型
    生存周期:计划→需求分析→设计→编码→测试→运行/维护
    在这里插入图片描述
    优缺点:
    适用于需求明确时,
    缺乏灵活性,无法解决软件需求不明确或不准确的问题,
    维护代价大

• 演化模型(增量、原型、螺旋)

  1. 快速原型模型:快速开发一个可以运行的程序,它能完成的功能往往是最终的软件产品所能完成的功能的一个子集。原型的主要用途是获取用户的真实需求,一旦需求确定下来了,原型将被抛弃。 在这里插入图片描述
  2. 增量模型(Incremental Model)、渐增模型:在增量模型中,把软件产品作为一系列的增量构件来设计、实现、集成和测试。每个构件是由能够完成特定功能的、相互作用的模块构成的。使用增量模多个型开发软件时,第一个增量往往是实现基本需求的核心产品。核心产品交付用户使用后,经过评价形成下一个增量的开发计划,它包括对核心产品的修改和一些新功能的发布。
  3. 螺旋模型:螺旋模型强调约束条件和可选方案,注重软件质量和软件重用;维护与开发过程完全一致,每次维护可以看作螺旋模型的又一个周期。
    第一个螺旋周期,确定目标、选择对象、分析约束,通过风险分析制定消除风险的方法,初步开发原型1,制定系统开发计划。

在这里插入图片描述

在这里插入图片描述

• 喷泉模型:一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。喷泉模型认为软件开发过程自下而上周期的各阶段是相互迭代和多次反复的,就像水喷上去又可以落下来,类似一个喷泉。各个开发阶段没有特定的次序要求,并且可以交互进行,可以在某个开发阶段中随时补充其它任何开发阶段的遗漏。
在这里插入图片描述

小结

 瀑布模型的优点:有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率。
 瀑布模型的缺点:(1)开发过程一般不能逆转,否则代价太大;(2)实际的项目开发很难严格按该模型进行;(3)客户往往很难清楚地给出所有的需求,而该模型却要求如此。(4)软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心。
 瀑布模型的使用范围:(1)用户的需求非常清楚全面,且在开发过程中没有或很少变化;(2)开发人员对软件的应用领域很熟悉;(3)用户的使用环境非常稳定;(4)开发工作对用户参与的要求很低。


 快速原型模型的优点:(1)可以得到比较良好的需求定义,容易适应需求的变化;(2)有利于开发与培训的同步;(3)开发费用低、开发周期短且对用户更友好。
 快速原型模型的缺点:(1)客户与开发者对原型理解不同;(2) 准确的原型设计比较困难;(3) 不利于开发人员的创新。
 快速原型模型的使用范围:(1)对所开发的领域比较熟悉而且有快速的原型开发工具;(2)项目招投标时,可以以原型模型作为软件的开发模型;(3)进行产品移植或升级时,或对已有产品原型进行客户化工作时,原型模型是非常适合的。


 增量模型的优点:(1)采用增量模型的优点是人员分配灵活,刚开始不用投入大量人力资源;(2)如果核心产品很受欢迎,则可增加人力实现下一个增量;(3)可先发布部分功能给客户,对客户起到镇静剂的作用。
 增量模型的缺点:(1)并行开发构件有可能遇到不能集成的风险,软件必须具备开放式的体系结构;(2)增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。
 增量模型的使用范围:(1)进行已有产品升级或新版本开发,增量模型是非常适合的;(2)对完成期限严格要求的产品,可以使用增量模型;(3)对所开发的领域比较熟悉而且已有原型系统,增量模型也是非常适合的。


 螺旋模型的优点:(1)设计上的灵活性,可以在项目的各个阶段进行变更;(2)以小的分段来构建大型系统,使成本计算变得简单容易;(3)客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性;(4) 随着项目推进,客户始终掌握项目的最新信息 , 从而他或她能够和管理层有效地交互。
 螺旋模型的缺点:(1)采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失;(2)过多的迭代次数会增加开发成本,延迟提交时间。
螺旋模型的使用范围:螺旋模型适合于大规模的软件项目。


CASE工具与环境

计算机辅助软件工程(Computer Aided Software Engineering,CASE),是计算机技术在软件开发活动,技术和方法中的应用,是软件工具与开发方法的结合体。CASE的一个基本思想就是通过一系列集成化的软件工具、技术和方法,实现分析、设计与程序开发、维护的自动化,提高软件开发的效率和软件的质量,最终实现软件系统开发的全面自动化。
1.分析建模工具
(1)Visio (2)SmartDraw
(3)Rational Rose
2.编码工具
(1)Source Insigt (2)Source Navigator
3.配置管理工具
(1)Virsual SourceSafe (2)PVCS
(3)ClearCase
4.数据库建模工具
(1)ERWin (2)PowerDesigner
5.测试工具

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值