
计算机软件技术基础_软件工程.ppt
120页计算机基础教研室计算机基础教研室 Tel:7522474Tel:7522474North China Electric Power UniversityNorth China Electric Power University第三篇第三篇 面向过程的软件工程面向过程的软件工程 3.3.软件需求分析软件需求分析1. 1.软件危机、软件工程软件危机、软件工程 2.2.可行性研究可行性研究 4. 4.软件总体设计软件总体设计 5. 5.软件详细设计软件详细设计 6. 6.软件编码软件编码 7.7.软件测试软件测试 8.8.软件维护软件维护计算机基础教研室计算机基础教研室 Tel:7522474Tel:7522474North China Electric Power UniversityNorth China Electric Power University2 21. 1.软件危机软件危机、软件工程、软件工程1.11.1软件工程的发展史软件工程的发展史“软件工程”由北大西洋公约组织(North Atlantic Treaty Organization, NATO)的计算机科学 家1968年在联邦德国召开的国际会议上首次提出来的 。
软件工程学科产生的时代背景是“软件危机” 软件工程的发展和应用缓和软件危机,同时促使一门 新兴的工程学科诞生程序设计时代:1946年~1956年,硬件价格昂贵 、运行速度低、内存容量小,程序员强调“程序设计 技巧”,设计的程序难读、难懂、难修改 计算机基础教研室计算机基础教研室 Tel:7522474Tel:7522474North China Electric Power UniversityNorth China Electric Power University3 31. 1.软件危机软件危机、软件工程、软件工程 1.11.1软件工程的发展史软件工程的发展史程序系统时代:1956年~1968年,“程序+说明” 时代;CPU速度、内存容量有很提高;计算机应用普及 ,软件需求量急增;“软件作坊”产生,软件质量得 不到保证,产生 “软件危机”软件工程时代:1968年至今,“程序+文档”时 代;超大规模集成电路提高了硬件性能;如果没有驾 驭和开发大型软件的能力,就不能有效地使用计算机 ;软件价格、维护费用不断上升 这个时代,依然没有完全摆脱软件危机计算机基础教研室计算机基础教研室 Tel:7522474Tel:7522474North China Electric Power UniversityNorth China Electric Power University4 41. 1.软件危机软件危机、软件工程、软件工程 1.21.2软件危机及其表现形式软件危机及其表现形式1 1、不能准确估计软件开发的成本与进度。
不能准确估计软件开发的成本与进度2 2、用户对、用户对“ “已完成的已完成的” ”软件系统经常不满意软件系统经常不满意3 3、软件产品质量往往靠不住软件产品质量往往靠不住5 5、软件成本在计算机系统总成本中所占的比例逐年上升、软件成本在计算机系统总成本中所占的比例逐年上升 6 6、软件生产效率低,供不应求软件生产效率低,供不应求 除此之外,与软件开发和维护有关的问题还有很多 4 4、软件难以维护软件难以维护软件危机:在计算机软件的开发和维护过程中所 遇到的一系列严重问题包括:如何开发软件以满足 对软件日益增长的需求;如何维护数量不断增长的软 件使用使用 时暴时暴 露很露很 多问多问 题题计算机基础教研室计算机基础教研室 Tel:7522474Tel:7522474North China Electric Power UniversityNorth China Electric Power University5 51. 1.软件危机软件危机、软件工程、软件工程 1.31.3软件危机的原因软件危机的原因1 1、软件产品规模庞大,结构复杂,给开发和维护带来客、软件产品规模庞大,结构复杂,给开发和维护带来客 观困难。
观困难2 2、软件开发的管理困难包括:进度控制困难、质量控、软件开发的管理困难包括:进度控制困难、质量控 制困难、可靠性无法保证制困难、可靠性无法保证3 3、软件开发维护费用急剧上升,威胁计算机应用的扩大软件开发维护费用急剧上升,威胁计算机应用的扩大5 5、生产方式落后生产方式落后6 6、开发工具原始落后,生产效率提高缓慢开发工具原始落后,生产效率提高缓慢4 4、软件开发技术落后、软件开发技术落后 只注重编译原理、操作系统原理、数据库 原理的研究,不注重开发技术的研究软件规模与复杂性增长了几个数量级,但 生产方式仍然采用个体手工开发7 7、开发人员忽视需求分析的重要性,轻视软件维护开发人员忽视需求分析的重要性,轻视软件维护计算机基础教研室计算机基础教研室 Tel:7522474Tel:7522474North China Electric Power UniversityNorth China Electric Power University6 61. 1.软件危机软件危机、软件工程、软件工程 1.41.4软件危机的解决途径软件危机的解决途径 在目前的计算机硬件条件下,须解决以下问题:1 1、应该对计算机软件有一个正确的认识,彻底清除、应该对计算机软件有一个正确的认识,彻底清除“ “软件就软件就 是程序是程序” ”的错误观念。
的错误观念2 2、使用好的开发技术和方法,并且不断研究探索更好、更、使用好的开发技术和方法,并且不断研究探索更好、更 有效的技术和方法消除在计算机系统早期发展阶段形成有效的技术和方法消除在计算机系统早期发展阶段形成 的一些错误观念和做法的一些错误观念和做法4 4、应该开发和使用好的软件工具,正如机械工具可以、应该开发和使用好的软件工具,正如机械工具可以“ “放大放大 ” ”人类的体力一样,软件工具也可以人类的体力一样,软件工具也可以“ “放大放大” ”人类的智力,从人类的智力,从 而有效提高软件生产率而有效提高软件生产率3 3、要有良好的组织、严密的管理,各类人员要相互配合,、要有良好的组织、严密的管理,各类人员要相互配合, 共同完成任务共同完成任务计算机基础教研室计算机基础教研室 Tel:7522474Tel:7522474North China Electric Power UniversityNorth China Electric Power University7 71. 1.软件危机、软件危机、软件工程软件工程1.5 1.5 基本概念:软件、软件工程及软件质量基本概念:软件、软件工程及软件质量软件:计算机程序、方法、规则、相关的文档资料以及在 计算机上运行程序时所必需的数据。
软件工程是指导计算机软件开发和维护的一门工程学科 采用工程的概念、原理、技术和方法来开发和维护软件1968年,第一届NATO会议提出,软件工程是为了经济 地获得可靠的且能在实际机器上有效运行的软件,而建立 和使用的完善的工程原理1993年,IEEE进一步给出软件工程是:①把系统的、规 范的、可度量的途径应用于软件开发、运行和维护过程,也 就是把工程应用于软件;②研究①中提到的途径 定义有多种,但中心思想是把软件当作一种工业产 品,要求“采用工程化的原理和方法对软件进行计划、开发 和维护计算机基础教研室计算机基础教研室 Tel:7522474Tel:7522474North China Electric Power UniversityNorth China Electric Power University8 8软件工程是一门交叉学科,涉及到计算机科学、管软件工程是一门交叉学科,涉及到计算机科学、管 理科学、工程学和数学,着重于具体软件系统的研制和建理科学、工程学和数学,着重于具体软件系统的研制和建 立特点:特点:1 1、用、用管理学管理学的原理、方法来进行软件生产管理的原理、方法来进行软件生产管理。
2 2、用、用工程学工程学的观点来进行费用估算,制定进度和方案的观点来进行费用估算,制定进度和方案 3 3、用、用数学数学的方法来建立软件可靠性模型以及分析各种的方法来建立软件可靠性模型以及分析各种 算法和性质算法和性质1. 1.软件危机、软件危机、软件工程软件工程1.5 1.5 基本概念:软件、软件工程及软件质量基本概念:软件、软件工程及软件质量计算机基础教研室计算机基础教研室 Tel:7522474Tel:7522474North China Electric Power UniversityNorth China Electric Power University9 9软件工程包括三个要素:软件工程包括三个要素:方法:方法:即完成软件工程项目的技术手段即完成软件工程项目的技术手段工具:工具:支持软件的开发、管理、文档的生成支持软件的开发、管理、文档的生成 过程:过程:支持软件开发的各个环节的控制、管理支持软件开发的各个环节的控制、管理1. 1.软件危机、软件危机、软件工程软件工程什么是软件工程过程?什么是软件工程过程? 1.5 1.5 基本概念:软件、软件工程及软件质量基本概念:软件、软件工程及软件质量计算机基础教研室计算机基础教研室 Tel:7522474Tel:7522474North China Electric Power UniversityNorth China Electric Power University1010ISO 9000ISO 9000定义:定义:软件工程过程软件工程过程(Software Engineering (Software Engineering Process)Process)是将输入转化为输出的一组彼此相关的资源和活动是将输入转化为输出的一组彼此相关的资源和活动 。
四种基本活动:四种基本活动:①①P (Plan)——P (Plan)——软件规格说明规定软件功能及运行限制软件规格说明规定软件功能及运行限制②②D (Do) ——D (Do) ——软件开发产生满足规格说明的软件软件开发产生满足规格说明的软件③③C (Check)——C (Check)——软件确认确认软件满足客户要求软件确认确认软件满足客户要求④④A (Action)——A (Action)——软件演进满足客户的变更要求软件演进满足客户的变更要求1. 1.软件危机、软件危机、软件工程软件工程 1.5 1.5 基本概念:软件、软件工程及软件质量基本概念:软件、软件工程及软件质量计算机基础教研室计算机基础教研室 Tel:7522474Tel:7522474North China Electric Power UniversityNorth China Electric Power University11111. 1.软件危机、软件危机、软件工程软件工程软件质量:是软件产品满足规定的和隐含的有关特征和特征 的全体,或者说所有描述计算机软件优秀程度的特性的组合 如何保证开发软件的质量,即软件质量保证(Software Quality Assurance,SQA)是软件工程学的一项重要内容。
软件质量可由以下6个特性来度量:功能性,可靠性,易用性 ,效率,可维护性,可移植性SQA要求:1)采用技术手段保证软件质量2)组织技术评审3)加强软件测试4)推行软件工程标准5)对软件质量进行度量1.5 1.5 基本概念:软件、软件工程及软件质量基本概念:软件、软件工程及软件质量计算机基础教研室计算机基础教研室 Tel:7522474Tel:7522474North China Electric Powe。
