软件工程01-软件工程概述

软件工程学概述

软件的概念

软件的概念

软件是计算机系统中与硬件相互依存的另一部分,包括程序、数据以及其相关文档的集合。(软件=程序+数据+文档)

软件危机

在计算机软件开发和维护过程中所遇到的一系列严重问题

软件危机包含两方面的问题

  1. 如何开发软件,以满足对软件日益增长的需求
  2. 如何维护数量不断膨胀的已有软件

软件危机的原因

  1. 主观原因
    • 忽视需求分析
    • 轻视软件维护
    • 没有认识到越到软件工程后期,引入变动付出的代价越高昂
  2. 客观原因
    • 软件是逻辑实体,缺乏可见性,管理和控制困难
    • 软件维护意味着修改设计,维护难度大
    • 软件规模庞大,程序负责性随着规模的增加指数上升

软件危机带来的启示

解决软件危机要从技术管理方面入手,即,既要有技术措施(方法和工具),也要有必要的组织管理措施。

  1. 消除软件就是程序的错误的概念
  2. 必须认识到软件的开发不是一个人的事,而是各类人员相互配合,相互协作配合之下共同完成的工程项目
  3. 推广使用更好的开发技术和方法,并研究探索更好更有效的技术和方法。
  4. 开发和使用更好的软件工具

软件工程

软件工程方法学:把软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为泛型。

软件工程方法学包括三个要素:方法、工具、过程

软件工程的基本原理

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

软件工程方法学分类

  • 传统方法学(生命周期方法学)
  • 面向对象方法学

软件生命周期

软件生命周期由软件定义、软件开发、运行维护,三个时期组成

  • 软件定义
    • 问题定义
    • 可行性研究
    • 需求分析
  • 软件开发
    • 总体设计
    • 详细设计
    • 编码和单元测试
    • 综合测试
  • 软件维护
    • 运行维护

软件过程

软件过程:是为了获得高质量软件所需要完成的一系列任务框架。通常用软件生命周期模型描述软件过程,主要包括:

  • 瀑布模型
  • 快速原型模型
  • 增量模型
  • 螺旋模型
  • 喷泉模型
  • 其他模型

瀑布模型(文档驱动模型)

特点:
  1. 阶段间具有顺序性和依赖性
  2. 推迟实现的观点
  3. 质量保证的观点

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

优点
  • 强迫开发人员采用规范的方法
  • 严格的规定了每个阶段必须提交的文档
  • 要求每个阶段交出的所有产品都必须经过质量保证小组的审查
缺点
  • 可运行软件产品较复客户之前,用户只能通过文档来了解软件产品是什么样子
  • 缺乏灵活性,开发过程中很难发现错误,从而使软件产品难以维护

快速原型模型

快速建立可运行的程序

优点
  • 软件产品开发基本是线性过程
  • 开发的产品通常满足用户需求
缺点
  • 准确原型设计困难
  • 所选用的开发技术和工具不一定符合主流发展
  • 快速建立起来的系统结构加上连续的修改可能会导致产品质量低下

增量模型(渐增模型)

先完成一个系统子集的开发,再按同样的开发步骤增加功能,直至满足全部系统的需求

优点
  • 短时间内向用户提交完成的产品的部分功能
  • 逐渐增加产品功能,用户适应产品快
  • 有利于系统维护
缺点
  • 增加构件困难
  • 容易退化为边做边改模型,从而使软件过程的控制失去整体性。

螺旋模型(风险驱动的模型)

在每个阶段之前都增加了风险分析过程的快速原型模型

可看作增加了风险分析的快速原型模型

适用范围:内部开发的大型软件项目

优点:
  • 利于把软件质量作为软件开发目标
  • 减少测试
  • 维护和开发不分开
缺点
  • 风险估计困难,要求开发人员具有丰富的风险评估经验和专业知识

喷泉模型(典型的面向对象的软件模型之一)

体现迭代和无缝的特性

优点:
  • 提高软件的开发效率,节省开发时间
缺点:
  • 开发中需要大量的开发人员,不利于项目的管理
  • 要求严格的管理文档,审核难度大

其他模型

  • Rational 统一过程
  • 敏捷过程(例如:极限编程)
  • 微软过程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值