首页计算机计算机软件软件工程 01 第一章 软件工程学概述.pptx

01 第一章 软件工程学概述.pptx

页数:34页文件大小:204.9 KB来源: 软件工程ppt课件

本课件从六十年代软件危机的典型表现与成因讲起,依次展开软件工程的定义与本质特性、七条基本原理与方法学三要素,并梳理软件生命周期各阶段与瀑布、原型、增量、螺旋等典型过程模型。

软件工程课程封面页,标示课程中英文名称 Software Engineering 与整套课件的篇章起始
第1章软件工程学概述章节页,回顾60年代通用硬件普及与软件作坊时期的软件开发背景
软件危机概念说明页,定义为计算机软件在开发与维护过程中遇到的一系列严重问题
查看本课件的文字版(共 34 页,供检索与复制)

第1页:软件工程课程封面

软件工程课程封面:软件工程(SoftwareEngineering)

第2页:第1章 软件工程学概述

第1章 软件工程学概述:第1章:软件工程学概述1.1软件危机60年代中期以前:通用硬件相当普遍,软件却是为某个具体的应用而编写的。60年代中到70年代中:软件作坊

第3页:软件危机的定义

软件危机的定义:软件危机:计算机软件的开发和维护过程中所遇到的一系列严重问题。(正常、不正常运行软件都具有这种问题)

第4页:软件危机的典型表现

软件危机的典型表现

  • 对软件开发成本和进度的估计常常很不准确
  • 用户对完成的软件系统不满意的现象经常发生
  • 软件产品的质量往往靠不住

第5页:软件危机的典型表现(续)

软件危机的典型表现(续)

  • 软件常常是不可维护的
  • 软件通常没有适当的文档资料
  • 软件成本在计算机系统总成本中所占的比例逐年上升
  • 软件开发生产率提高的速度跟不上计算机应用的发展趋势

第6页:软件危机产生的原因

软件危机产生的原因

  • 软件本身特点造成
  • 软件开发与维护的方法不正确。主要表现:(a)忽视软件需求分析;(b)认为软件开发就是写程序并使之运行;(c)轻视软件维护

第7页:修改代价随阶段变化趋势图

修改代价随阶段变化趋势图:在软件开发的不同阶段进行修改需要付出的代价很不相同:高中低早期中期后期软件开发时期代价引

第8页:解决软件危机的途径

解决软件危机的途径

  • 推广使用在实践中总结出来的开发软件的成功技术和方法,并研究探索更有效的技术和方法
  • 开发和使用更好的软件工具
  • 良好的组织管理措施

第9页:软件工程学与程序设计方法学

软件工程学与程序设计方法学:为了解决软件危机产生的问题,软件工程与方法学逐渐形成,然后出现了两个相互相承又各有侧重的学科

  • 软件工程学:主要应用工程的方法和技术研究软件开发与维护的方法、工具和管理的一门交叉学科
  • 程序设计方法学:主要应用数学的方法研究程序的性质以及程序设计的理论和方法的学科

第10页:软件工程的定义

软件工程的定义:软件工程1.2.1软件工程的介绍1968年NATO会议:软件工程就是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。1993年IEEE:

  • 把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程
  • 研究(1)中提到的途径

第11页:软件工程的本质特性

软件工程的本质特性

  • 1.软件工程关注于大型程序的构造
  • 2.软件工程的中心课题是控制复杂性
  • 3.软件经常变化
  • 4.开发软件的效率非常重要
  • 5.和谐地合作是软件开发的关键
  • 6.软件必须有效地支持它的用户
  • 7.在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品

第12页:软件工程的基本原理

软件工程的基本原理

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

第13页:软件工程方法学三要素

软件工程方法学三要素:软件工程方法学通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学(Methodology),也称为范型(Paradigm)。软件工程方法学的3要素:方法、工具和过程

第14页:传统方法学与结构化方法

传统方法学与结构化方法

  • 1.传统方法学也称为生命周期方法学或结构化范型。结构化方法(Structure Method)有
  • 结构化设计方法(SD)
  • 结构化分析方法(SA)
  • 结构化分析与设计技术(SADT)
  • JACKSON方法
  • WARNIER方法

第15页:面向对象方法学

面向对象方法学:把数据和对数据的操作紧密结合起来的方法,模拟人类认识世界解决问题的方法和过程。面向对象的方法=对象(属性与服务的封装)+分类+继承+通过消息的通讯

第16页:其他开发方法

其他开发方法

  • 适用于实时事物处理系统的有限状态机方法(FSM)
  • 适用于并发软件系统的PETRI网方法
  • 以数学概念和理论为基础的形式化方法,如SDC公司的形式化开发方法FDM:(Formal Development Methodology)IBM公司的维也纳开发方法VDM:(Vienna Development Method)

第17页:软件生命周期的定义

软件生命周期
指软件从提出到最终被淘汰的这个存在期

第18页:软件生命周期的组成

软件生命周期的组成

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

第19页:软件生命周期八个阶段

软件生命周期八个阶段

  • 1.问题定义
  • 2.可行性研究
  • 3.需求分析
  • 4.总体设计(概要设计)
  • 5.详细设计
  • 6.编码与单元测试
  • 7.综合测试
  • 8.维护

第20页:软件过程的定义

软件过程的定义:软件过程软件过程:为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。软件过程(ISO9000):使用资源将输入转化为输出的活动所构成的系统。输入:如软件需求输出:如软件产品

第21页:瀑布模型的特点

瀑布模型的特点

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

第22页:瀑布模型的优点

瀑布模型的优点的优点是:采用规范的方法;严格规定每个阶段提交的文档;要求每个阶段交出的产品必须经过验证

第23页:快速原型模型

快速原型模型的优点是:不带反馈环,基本上是线性顺序进行

第24页:增量模型

增量模型的优点是:能较短时间内提交可完成部分工作的产品;可以使用户有充裕的时间学习和适应新产品

第25页:风险更大的增量模型

风险更大的增量模型

第26页:螺旋模型

螺旋模型:可把它看作在每个阶段之前都增加风险分析的快速原型模型

第27页:

第28页:喷泉模型

喷泉模型:典型的面向对象软件开发过程模型之一

第29页:Rational统一过程

Rational统一过程

  • 1. RUP软件开发经验
  • 迭代式开发
  • 管理需求
  • 使用基于构件的体系结构
  • 可视化建模
  • 贯穿于开发过程的软件质量验证
  • 控制软件变更

第30页:敏捷过程与极限编程

敏捷过程与极限编程

  • 1.敏捷过程具有高效、快速响应变化的开发过程
  • 个体和交互胜过过程和工具
  • 可以工作的软件胜过面面俱到的文档
  • 客户合作胜过合同谈判
  • 响应变化胜过遵循计划
  • 2.极限编程敏捷过程中最著名的一种,指把好的开发实践运用到极致,多应用于软件需求模糊的场合

第31页:微软过程

微软过程

  • 1.微软过程准则
  • 2.微软软件生命周期
  • 规划阶段
  • 设计阶段
  • 开发阶段
  • 稳定阶段
  • 发布阶段
  • 3.微软过程模型

第32页:问题定义阶段

问题定义阶段:问题定义就是要确定为用户建立什么样的软件系统,软件叫什么样的名称等等。“问题”是指软件最基本的问题,如:软件的总体目标什么?有什么用途?为那些用户设计?

第33页:问题定义报告的内容

问题定义报告的内容:包括

  • 软件项目标题
  • 软件目标
  • 软件用户对象
  • 软件规模

第34页:问题定义阶段的特点

问题定义阶段的特点:问题定义是软件生命周期中时间最短的阶段,一般都比较简单,因此在实际开发中它是最容易被忽视的一个阶段。这一阶段工作主要由系统分析员来完成,系统分析员要尽可能从较高的角度概括软件所要做的工作,而不用写明问题的实现细节

顶部目录