第1章 概述3.ppt
《第1章 概述3.ppt》由会员分享,可在线阅读,更多相关《第1章 概述3.ppt(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 软件工程导论软件工程导论(第(第4 4版)版)普通高校本科计算机专业特色教材精选张海藩 编著第一章 软件工程学概论1.1 1.1 软件危机软件危机 1.1.软件软件Software=Program+Data+DocumentSoftware=Program+Data+Document 软件(software)是计算机系统中与硬件(hardware)相互依存的另一部分,它包括程序(program)、相关数据(data)及其说明文档(document)。软件特征软件特征l软件是一种逻辑实体,而不是具体的物理实体l软件的生产与硬件不同l在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题软件技
2、术的发展落后于需求时间软件复杂性软件需求差距软件技术硬、软件成本比例的变化年份成本%软件软件1950197019851995硬件硬件2 2、软件危机、软件危机软件危机包含两方面问题:软件危机包含两方面问题:-如何开发软件,以满足不断增长,日趋复杂的需求;如何开发软件,以满足不断增长,日趋复杂的需求;-如何维护数量不断膨胀的软件产品。如何维护数量不断膨胀的软件产品。鉴于软件危机的长期性和症状不明显的特点,近年来有人建议将软件危机更名为:Software depression (软件萧条软件萧条)Software affliction (软件困扰软件困扰)“慢性的苦恼慢性的苦恼”软件危机主要有以下
3、表现:软件危机主要有以下表现:对软件开发成本和进度的估计常常不准对软件开发成本和进度的估计常常不准确。开发成本超出预算,实际进度比预确。开发成本超出预算,实际进度比预定计划一再拖延的现象并不罕见。定计划一再拖延的现象并不罕见。用户对用户对“已完成已完成”系统不满意的现象经系统不满意的现象经常发生。常发生。软件产品的质量往往靠不住。软件产品的质量往往靠不住。BugBug一大堆,一大堆,PatchPatch一个接一个。一个接一个。软件的可维护程度非常之低。软件的可维护程度非常之低。软件通常没有适当的文档资料。软件通常没有适当的文档资料。软件的成本不断提高。软件的成本不断提高。软件开发生产率的提高赶
4、不上硬件的发软件开发生产率的提高赶不上硬件的发展和人们需求的增长。展和人们需求的增长。软件开发工作量分配比例软件开发工作量分配比例40%50%10%20%费用分配比例费用分配比例55%70%引入同一变化付出的代价随时间变化的趋势引入同一变化付出的代价随时间变化的趋势3 3、消除软件危机的途径、消除软件危机的途径对计算机软件有一个正确的认识对计算机软件有一个正确的认识(软件软件程序程序)必须充分认识到软件开发不是某必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各是一种组织良好、管理严密、各类人员协同配合、共同完成的工类人员协同配合、
5、共同完成的工程项目。程项目。推广使用在实践中总结出来的开推广使用在实践中总结出来的开发软件的成功技术和方法。发软件的成功技术和方法。开发和使用更好的软件工具。开发和使用更好的软件工具。软件工程软件工程 -Software Engineering于于1968年年 NATO 组织在组织在德国召开的一次会议上提出德国召开的一次会议上提出是把软件当作一种工业产品,要求是把软件当作一种工业产品,要求是把软件当作一种工业产品,要求是把软件当作一种工业产品,要求 “采用工程化的采用工程化的采用工程化的采用工程化的原理与方法对软件进行计划、开发和维护原理与方法对软件进行计划、开发和维护原理与方法对软件进行计划
6、、开发和维护原理与方法对软件进行计划、开发和维护 ”。1.2 软件工程件工程围棋与软件工程的感想围棋 围棋棋谱拿过来的时候,大师问“后面应该走哪里?”十个初级爱好者选择的落点散布在棋盘各处 十个职业棋手说的落子点都差不多,甚至包括后面的几步 这就是高手和低手的差别软件工程 当一个小程序拿过来的时候,项目经理让大家编写 十个中国软件工程师写出来的程序各有“特色”、千差万别,十个印度软件工程师写出来的程序差不多,以至于怀疑是“抄袭”。项目经理也不清楚中国软件业和印度软件业的差距是多少年只是觉得差了好远好远2 2、软件工程定义、软件工程定义Software engineering.(1)The So
7、ftware engineering.(1)The applicationapplication of of a systematic,disciplined,quantifiable a systematic,disciplined,quantifiable approach to the development,operation,and approach to the development,operation,and maintenance of software;that is,the maintenance of software;that is,the application o
8、f engineering to software.(2)application of engineering to software.(2)The The studystudy of approaches as in(1).of approaches as in(1).(IEEE Std(IEEE Std 610-1990.610-1990.)软件工程是软件工程是:(:(1 1)把系统的、规范的、把系统的、规范的、可度量的途径应用于软件开发、运行和可度量的途径应用于软件开发、运行和 维护过程,也就是把工程应用于软件;维护过程,也就是把工程应用于软件;(2 2)研究)研究(1 1)中提到的途径
9、。中提到的途径。软件工程技术的两个明显特点:强调规范化强调规范化 强调文档化强调文档化转变转变对软件对软件开发开发的认识:的认识:上升上升 程序程序 系统系统 转变转变思维定式:思维定式:上升上升 程序员程序员 系统工程师系统工程师 (系统分析员系统分析员)1.3 1.3 软件生命周期软件生命周期 问题定义问题定义 软件定义软件定义 可行性研究可行性研究 需求分析需求分析 总体设计总体设计 详细设计详细设计软件生命周期软件生命周期 软件开发软件开发 编码编码 单元测试单元测试 综合测试综合测试 运行维护运行维护 持续满足用户需求持续满足用户需求软件开发模型软件开发模型 软件软件开发开发模型模型
10、是软件开发全部过程、活是软件开发全部过程、活动和任务的动和任务的结构框架结构框架。它能直观表达软。它能直观表达软件开发全过程,明确规定要完成的主要件开发全过程,明确规定要完成的主要活动、任务和开发策略。活动、任务和开发策略。软件软件开发开发模型也常称为模型也常称为:软件软件过程过程模型模型 软件生存软件生存周周期模型期模型 软件工程范型软件工程范型1.4 软件件过程程1.1.瀑布模型瀑布模型 (Waterfall ModelWaterfall Model)传统的瀑布模型传统的瀑布模型需求分析需求分析验证验证规格说明规格说明验证验证设计设计验证验证编码编码测试测试综合测试综合测试维护维护定义时期
11、定义时期开发时期开发时期维护时期维护时期传统瀑布模型开发软件的特点传统瀑布模型开发软件的特点1.1.阶段间具有顺序性和依赖性。阶段间具有顺序性和依赖性。2.2.每个阶段必须完成规定的文档每个阶段必须完成规定的文档;每个阶段结束前完成文档审查每个阶段结束前完成文档审查,及早改正错误及早改正错误。传统瀑布模型存在什么问题?传统瀑布模型存在什么问题?传统的瀑布模型过于理想化。事实上,传统的瀑布模型过于理想化。事实上,人在工作过程中不可能不犯错误。人在工作过程中不可能不犯错误。在设计阶段可能发生规格说明文档中的在设计阶段可能发生规格说明文档中的错误。错误。而设计上的缺陷或错误可能在实现过程而设计上的缺
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第1章 概述3 概述
限制150内