软件工程电子课件第1章-概论.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《软件工程电子课件第1章-概论.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 电子 课件 概论
- 资源描述:
-
1、第第1 1章章 概概 论论 软件、软件工程的概念以及开发的主要原则软件、软件工程的概念以及开发的主要原则 软件开发过程的模型以及开发方法软件开发过程的模型以及开发方法 软件工程的生存周期软件工程的生存周期 软件工程发展的最新动向软件工程发展的最新动向2023-1-2411.1.1 1.1.1 软件的定义及特点软件的定义及特点n 定义定义 软件软件(Software)(Software)在计算机系统中与硬件在计算机系统中与硬件(Hardware)(Hardware)相互相互依存,包括依存,包括程序程序(Program)(Program)、相关数据相关数据(Data)(Data)及其及其说明说明文
2、档文档(Document)(Document)。其中。其中程序程序是按照事先设计的功能和是按照事先设计的功能和性能要求执行的指令序列;性能要求执行的指令序列;数据数据是程序能正常操纵信息是程序能正常操纵信息的数据结构;的数据结构;说明文档说明文档包含与程序开发、维护和使用过包含与程序开发、维护和使用过程中有关的各种图文数据。程中有关的各种图文数据。1.1 1.1 软件软件2023-1-242n 软件的特点软件的特点 1.1.软件是一种逻辑实体,而不是具体的物理实体。软件是一种逻辑实体,而不是具体的物理实体。2.2.软件的生产于硬件不同。软件的生产于硬件不同。3.3.在软件的运行和使用期间,没有
3、硬件那样的机械磨损,在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题。老化问题。失效率时间磨合 调整 磨损用坏硬件失效曲线失效率时间软件失效曲线理想曲线实际曲线1.1.1 1.1.1 软件的定义及特点软件的定义及特点2023-1-243 另外,软件还具有受计算机硬件系统限制、至今尚未另外,软件还具有受计算机硬件系统限制、至今尚未摆脱人工开发方式、开发过程复杂、成本相当昂贵,摆脱人工开发方式、开发过程复杂、成本相当昂贵,涉及诸多社会因素等特点。涉及诸多社会因素等特点。1.1.1 1.1.1 软件的定义及特点软件的定义及特点n 软件的特点软件的特点2023-1-244 1 1程序设计阶段程
4、序设计阶段 2020世纪世纪5050年代初期至年代初期至2020世纪世纪6060年代中期年代中期 2 2程序系统阶段程序系统阶段 2020世纪世纪6060年代中期至年代中期至7070年代末年代末 期期 3 3软件工程阶段软件工程阶段 从从2020世纪世纪7070年代中期开始,计年代中期开始,计 算机发展到第个三算机发展到第个三阶段阶段 4 4第四阶段第四阶段从从2020世纪世纪8080年代中期开始年代中期开始,计算机发展到第个四计算机发展到第个四阶段阶段 1.1.2 1.1.2 软件的发展历程软件的发展历程2023-1-245 四个阶段典型技术比较四个阶段典型技术比较阶段阶段 第一阶段第一阶段
5、 第二阶段第二阶段 第三阶段第三阶段 第四阶段第四阶段 典典 型型 技技 术术 面向批处理面向批处理有限的分布有限的分布自定义软件自定义软件 多用户多用户实时实时数据库数据库软件产品软件产品 分布式系统分布式系统嵌入嵌入“智能智能”低成本硬件低成本硬件消费者的影响消费者的影响 强大的桌面系统强大的桌面系统面向对象技术面向对象技术专家系统、人工专家系统、人工神经网络、并行神经网络、并行计算、网格计算计算、网格计算 1.1.2 1.1.2 软件的发展历程软件的发展历程2023-1-24n 1.1.基于软件的功能划分基于软件的功能划分 系统软件系统软件 支撑软件支撑软件 应用软件应用软件n 2.2.
6、基于软件规模划分基于软件规模划分 微型软件微型软件 小型软件小型软件 中型软件中型软件 大型软件大型软件 甚大型软件甚大型软件 极大型软件极大型软件1.1.3 1.1.3 软件的分类软件的分类2023-1-247n 3.3.基于软件工作方式划分基于软件工作方式划分 实时处理软件实时处理软件 交互式软件交互式软件 分时软件分时软件 批处理软件批处理软件1.1.3 1.1.3 软件的分类软件的分类2023-1-248n NetscapeNetscape创始人、硅谷著名投资人创始人、硅谷著名投资人马克马克安德森安德森(Marc Andreessen(Marc Andreessen,19711971)
7、在在20112011年年8 8月月2121日华日华尔街日报上发表的尔街日报上发表的软件正在吞噬整个世界软件正在吞噬整个世界文章中文章中称,当今的软件应用无所不在,并且正在吞噬整个世称,当今的软件应用无所不在,并且正在吞噬整个世界。界。1.1.4 1.1.4 软件的应用领域软件的应用领域2023-1-2491.2 1.2 软件危机软件危机n 定义:软件危机是计算机软件在它的开发和维护定义:软件危机是计算机软件在它的开发和维护过程中所遇到的一系列严重问题。过程中所遇到的一系列严重问题。主要包含两方面的问题:主要包含两方面的问题:如何开发软件,怎样满足对软件日益增长的需求;如何开发软件,怎样满足对软
8、件日益增长的需求;如何维护数量不断膨胀的已有软件。如何维护数量不断膨胀的已有软件。1.2.1 1.2.1 软件危机的定义软件危机的定义2023-1-2410n 软件危机的现象软件危机的现象 对软件开发成本和进度的估计常常很不准确。对软件开发成本和进度的估计常常很不准确。用户对用户对“已完成的已完成的”软件系统不满意的现象经常发生。软件系统不满意的现象经常发生。软件产品的质量往往靠不住。软件产品的质量往往靠不住。软件常常是不可维护的。软件常常是不可维护的。1.2.1 1.2.1 软件危机的定义软件危机的定义2023-1-2411 软件通常没有适当的文档资料。计算机软件不仅仅是软件通常没有适当的文
9、档资料。计算机软件不仅仅是程序,还应该有一整套文档资料。程序,还应该有一整套文档资料。软件成本在计算机系统总成本中所占的比例逐年上升。软件成本在计算机系统总成本中所占的比例逐年上升。软件开发生产率提高的速度,远远跟不上计算机应用软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。迅速普及深入的趋势。n 软件危机的现象软件危机的现象1.2.1 1.2.1 软件危机的定义软件危机的定义2023-1-2412n(1)(1)忽视软件开发前期的需求分析。忽视软件开发前期的需求分析。n(2)(2)开发过程没有统一的、规范的方法论的指导,文开发过程没有统一的、规范的方法论的指导,文件资料不齐全
10、,忽视人与人的交流。件资料不齐全,忽视人与人的交流。n(3)(3)忽视测试阶段的工作,提交用户的软件质量差。忽视测试阶段的工作,提交用户的软件质量差。n(4)(4)忽视软件的维护。忽视软件的维护。n(5)(5)缺少规范而盲目编写程序。缺少规范而盲目编写程序。1.2.2 1.2.2 软件危机产生的原因软件危机产生的原因2023-1-2413n 组织管理组织管理 工程项目管理方法工程项目管理方法n 技术措施技术措施 软件开发技术与方法软件开发技术与方法 软件工具软件工具1.2.3 1.2.3 解决软件危机的途径解决软件危机的途径2023-1-24141.3 1.3 软件工程软件工程1.3.1 1.
11、3.1 软件工程的定义和研究软件工程的定义和研究对象对象n 著名的软件工程专家巴利著名的软件工程专家巴利玻姆玻姆(Barry W.Boehm(Barry W.Boehm,19351935)把把软件工程软件工程定义为定义为“运用现代科学技术知识来运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件数据所必需的相关文件数据。”2023-1-2415n 软件工程定义软件工程定义19931993年年IEEEIEEE进一步给出了更全面的定义,即软件进一步给出了更全面的定义,即软件工程把系统化的、规范化的、可度量的途径应用于
12、工程把系统化的、规范化的、可度量的途径应用于软件开发、运行和维护的过程中,也就是把工程化软件开发、运行和维护的过程中,也就是把工程化应用于软件中。应用于软件中。实际上软件工程的具体研究对象就是软件系统。它实际上软件工程的具体研究对象就是软件系统。它包括了方法、工具和过程包括了方法、工具和过程3 3个要素。个要素。1.3.1 1.3.1 软件工程的定义和研究对象软件工程的定义和研究对象2023-1-2416n 著名的软件工程专家著名的软件工程专家B.W.BoehmB.W.Boehm提出了软件提出了软件工程的七条基本原理。工程的七条基本原理。(1)(1)这七条原理是确保软件产品质量和开发效率的这七
13、条原理是确保软件产品质量和开发效率的原理的最小集合。原理的最小集合。(2)(2)这七条原理是互相独立的,缺一不可又是相当这七条原理是互相独立的,缺一不可又是相当完备的。完备的。1.3.2 1.3.2 软件工程的基本原理软件工程的基本原理2023-1-2417n 用分阶段的生命周期计划严格管理用分阶段的生命周期计划严格管理 不成功的软件项目中有一半左右是由于计划不周造成的。不成功的软件项目中有一半左右是由于计划不周造成的。n 坚持进行阶段评审坚持进行阶段评审 软件的质量保证工作不能等到编码阶段结束之后再进行。软件的质量保证工作不能等到编码阶段结束之后再进行。n 实行严格的产品控制实行严格的产品控
14、制 在软件开发过程中不应随意改变需求,因为改变一项需在软件开发过程中不应随意改变需求,因为改变一项需求往往需要付出较高的代价。求往往需要付出较高的代价。n 采用现代程序设计技术采用现代程序设计技术 采用先进的技术既可提高软件开发的效率,又可提高软采用先进的技术既可提高软件开发的效率,又可提高软件维护的效率。件维护的效率。1.3.2 1.3.2 软件工程的基本原理软件工程的基本原理2023-1-2418n 结果应能清楚地审查结果应能清楚地审查 根据软件开发项目的总目标及完成期限,规定开发根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准,从而使得所得到的结果能够组织的责任和产品标准
15、,从而使得所得到的结果能够清楚地审查。清楚地审查。n 开发小组的人员应该少而精开发小组的人员应该少而精n 承认不断改进软件工程实践的必要性承认不断改进软件工程实践的必要性 不仅要积极主动地采纳新的软件技术,而且要注不仅要积极主动地采纳新的软件技术,而且要注意不断总结经验。意不断总结经验。1.3.2 1.3.2 软件工程的基本原理软件工程的基本原理2023-1-2419n 组织实施软件工程项目,最终目标是降低软件的开组织实施软件工程项目,最终目标是降低软件的开发成本,提高软件的质量、软件的可维护性和软件发成本,提高软件的质量、软件的可维护性和软件开发的效率。软件工程的主要目标是生产具有正确开发的
16、效率。软件工程的主要目标是生产具有正确性、可用性以及开销合适的产品。性、可用性以及开销合适的产品。1.3.3 1.3.3 软件工程软件工程项目的基本目标项目的基本目标2023-1-2420n(1)(1)抽象抽象(abstraction)(abstraction)n(2)(2)信息隐藏信息隐藏(information hiding)(information hiding)n(3)(3)模块化模块化(modularity)(modularity)n(4)(4)局部化局部化(localization)(localization)n(5)(5)一致性一致性(consistency)(consisten
17、cy)n(6)(6)完整性完整性(completeness)(completeness)n(7)(7)可预测性可预测性(verifiability)(verifiability)1.3.4 1.3.4 软件工程的基本原则软件工程的基本原则2023-1-2421n 定义:定义:一个软件从开始计划起,到废弃不用止,一个软件从开始计划起,到废弃不用止,称为软件生存周期称为软件生存周期(life cycle)(life cycle)。n 软件生存周期包括软件生存周期包括计划、开发、运行计划、开发、运行三个时期,三个时期,每一时期又可分为若干更小的阶段。每一时期又可分为若干更小的阶段。1.4 1.4 软
18、件生存周期软件生存周期2023-1-2422n对以上步骤作一个概括的描述对以上步骤作一个概括的描述(1)(1)制定计划制定计划(planning)(planning)(2)(2)需求分析和定义需求分析和定义(requirement analysis and definition)(requirement analysis and definition)(3)(3)软件设计软件设计(software design)(software design)(4)(4)程序编写程序编写(coding(coding、programming)programming)(5)(5)软件测试软件测试(testing
19、)(testing)(6)(6)运行与维护运行与维护(running maintenance)(running maintenance)1.4 1.4 软件生存周期软件生存周期2023-1-2423n 瀑布模型瀑布模型将软件生命周期划分为制定计划、需求将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。相互衔接的固定次序,如同瀑布流水,逐级下落。1.5 1.5 软件开发过程模型软件开发过程模型1.5.1
展开阅读全文