软件工程-齐志昌-第二版(1)34266.pptx
《软件工程-齐志昌-第二版(1)34266.pptx》由会员分享,可在线阅读,更多相关《软件工程-齐志昌-第二版(1)34266.pptx(104页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、前言前言 软件和软件工程在信息化社会中软件和软件工程在信息化社会中的地位和作用的地位和作用2023/5/131国防科技大学计算机学院八十年代初科学家的预言八十年代初科学家的预言(1/2)oOsborne 1979 将迎来将迎来”新的工业革命新的工业革命”oToffler 1980 微电子的发展是人类历史上的微电子的发展是人类历史上的”第三次浪潮第三次浪潮”o80年代初年代初 美国商业周刊杂志在头版刊登大标题:美国商业周刊杂志在头版刊登大标题:“软件:新的驱动力软件:新的驱动力”当时人们还没有意识到他们的预见是多么的正确。当时人们还没有意识到他们的预见是多么的正确。2023/5/132国防科技大
2、学计算机学院八十年代初科学家的预言八十年代初科学家的预言(2/2)oNaisbitt 1982 人类社会将人类社会将“从工业社会向信息社会转变从工业社会向信息社会转变”oFeigenbaum 1983 计算机控制的信息和知识将成为计算机控制的信息和知识将成为20世纪表现能力的世纪表现能力的焦点焦点oStoll 1989 网络和软件产生的网络和软件产生的“电子社会电子社会”是实现全球知识交是实现全球知识交流的关键。流的关键。2023/5/133国防科技大学计算机学院二十年后的现实二十年后的现实 1.计算机的发展与普及计算机的发展与普及 2.计算机软件的发展与普及计算机软件的发展与普及 3.计算机
3、网络的发展与普及计算机网络的发展与普及2023/5/134国防科技大学计算机学院观察与思考观察与思考 因为普及了计算机、软件和因为普及了计算机、软件和网络网络迎来了信息化社会和知识经济。迎来了信息化社会和知识经济。2023/5/135国防科技大学计算机学院软件在信息化社会中的地位和作用软件在信息化社会中的地位和作用o软件与经济软件与经济o软件与政治软件与政治o软件与军事软件与军事o软件与文化软件与文化o软件与教育软件与教育o软件与法律道德软件与法律道德2023/5/136国防科技大学计算机学院结论结论 软件是信息化社会和知识经济的基础,它渗透软件是信息化社会和知识经济的基础,它渗透到人们生活、
4、工作的所有领域,并迅速的改变着到人们生活、工作的所有领域,并迅速的改变着人们的生活和工作方式,改变着社会的产业结构人们的生活和工作方式,改变着社会的产业结构和面貌。和面貌。人们对软件的依靠越来越密切,社会需要大量人们对软件的依靠越来越密切,社会需要大量的丰富多彩的软件,并随着社会的发展不断更新、的丰富多彩的软件,并随着社会的发展不断更新、充实和提高。充实和提高。2023/5/137国防科技大学计算机学院教材教材2023/5/138国防科技大学计算机学院教材和参考书教材和参考书2023/5/139国防科技大学计算机学院第一章第一章 软件与软件工程软件与软件工程o软件与软件工程的概念软件与软件工程
5、的概念 o软件生存周期软件生存周期 o软件开发模型软件开发模型 o软件工程工具及环境软件工程工具及环境o软件工程组织度量软件工程组织度量2023/5/1310国防科技大学计算机学院1.1 软件软件o软件的概念;软件的概念;o软件的特点;软件的特点;o软件的分类;软件的分类;o软件的发展;软件的发展;o软件危机。软件危机。第一章第一章 软件与软件工程软件与软件工程2023/5/1311国防科技大学计算机学院1.1.1 软件的概念软件的概念 软件是什么软件是什么?1.1软件软件2023/5/1312国防科技大学计算机学院软件的概念软件的概念o软件是计算机系统的重要组成部分;软件是计算机系统的重要组
6、成部分;o软件是逻辑产品,需要计算机硬件和系统软件的软件是逻辑产品,需要计算机硬件和系统软件的支撑;支撑;o软件是计算机控制系统的指挥中枢;软件是计算机控制系统的指挥中枢;o软件是信息转换器,它能对信息进行加工、处理软件是信息转换器,它能对信息进行加工、处理或变换;或变换;o软件是工具,在人们的生活、工作、休闲,在社软件是工具,在人们的生活、工作、休闲,在社会的经济、军事、政治、文化、科学技术、教育会的经济、军事、政治、文化、科学技术、教育中发挥具大作用;中发挥具大作用;1.1软件软件2023/5/1313国防科技大学计算机学院软件软件的概念的概念计算机世界的软件计算机世界的软件 软件是能够完
7、成预定功能和性能,并对相应数据进软件是能够完成预定功能和性能,并对相应数据进行加工的程序和描述程序及其操作的文档。行加工的程序和描述程序及其操作的文档。软件软件=程序程序+数据数据+文档文档 程序程序=算法算法+数据结构数据结构1.1软件软件2023/5/1314国防科技大学计算机学院1.1.2 软件的特点软件的特点o软件开发与传统的产品生产存在本质差别;软件开发与传统的产品生产存在本质差别;o软件是逻辑产品,而不是物理产品;软件是逻辑产品,而不是物理产品;o软件不会磨损;软件不会磨损;1.1软件软件2023/5/1315国防科技大学计算机学院 软件的描述软件的描述(13)软件由程序、数据、文
8、档软件由程序、数据、文档 组成。组成。1.1软件软件2023/5/1316国防科技大学计算机学院软件的描述软件的描述(23)程序设计语言程序设计语言o面向机器面向机器 汇编语言、机器语言等汇编语言、机器语言等o面向过程面向过程 Fortran,Pascal,C等等o面向对象面向对象 C+,Java等等o面向问题面向问题 结构化查询语言结构化查询语言SQL等等1.1软件软件2023/5/1317国防科技大学计算机学院软件的描述软件的描述(33)数据数据 用程序设计语言要求的数据结构表示用程序设计语言要求的数据结构表示文档文档 规范规范 准确准确 清晰清晰 简洁简洁 无歧义无歧义 自然语言自然语言
9、 结构化英语结构化英语 图表图表 1.1软件软件2023/5/1318国防科技大学计算机学院1.1.3 软件分类软件分类系统软件系统软件 实时软件实时软件 商务软件商务软件 工程和科学计算软件工程和科学计算软件 嵌入式软件嵌入式软件 人工智能软件人工智能软件 个人计算机软件个人计算机软件1.1软件软件2023/5/1319国防科技大学计算机学院1.1.4 软件的发展软件的发展o软件发展的四个阶段软件发展的四个阶段o软件发展存在的问题软件发展存在的问题1.1软件软件2023/5/1320国防科技大学计算机学院1)软件发展的四个阶段)软件发展的四个阶段o1950-1965 没有系统的软件开发方法和
10、管理机制、自定义软没有系统的软件开发方法和管理机制、自定义软件、批处理、有限分布。件、批处理、有限分布。o1965-1975 产生人机交互的新概念、新技术软件产品、多用产生人机交互的新概念、新技术软件产品、多用户、实时、数据库。户、实时、数据库。1.1软件软件2023/5/1321国防科技大学计算机学院o1973-1988 微处理器的出现并广泛应用微处理器的出现并广泛应用 分布式系统、嵌入智能、低成本硬件、消费者分布式系统、嵌入智能、低成本硬件、消费者的影响。的影响。o1986-2000 广域和局域网络迅速普及广域和局域网络迅速普及 强大的桌面系统、面向对象技术、专家系统、强大的桌面系统、面向
11、对象技术、专家系统、人工智能、神经网络、并行计算、网络计算机。人工智能、神经网络、并行计算、网络计算机。软件发展的四个阶段软件发展的四个阶段 (2/2)1.1软件软件2023/5/1322国防科技大学计算机学院2)软件发展存在的问题软件发展存在的问题 (1/2)o软件开发能力不能满足人们的需要。软件开发能力不能满足人们的需要。o社会对软件的依赖程度加大,人们普遍关注软件的社会对软件的依赖程度加大,人们普遍关注软件的安全和可靠性。安全和可靠性。o建造高可靠性、高质量软件的任务任重路远。建造高可靠性、高质量软件的任务任重路远。1.1软件软件2023/5/1323国防科技大学计算机学院软件发展存在的
12、问题软件发展存在的问题(2/2)o若干年前开发的应用软件经过几十次修改已无人认若干年前开发的应用软件经过几十次修改已无人认识它的内部结构,己经不可维护。识它的内部结构,己经不可维护。o由于经济原因由于经济原因,嵌入式系统存在许多怪现象,企业不嵌入式系统存在许多怪现象,企业不愿意投入资源再生产,而采取打补丁愿意投入资源再生产,而采取打补丁+时髦界面的时髦界面的方法。方法。1.1软件软件2023/5/1324国防科技大学计算机学院1.1.5 软件危机软件危机1.软件危机的表现软件危机的表现o硬件发展超过软硬件发展超过软件,硬件潜能没件,硬件潜能没有充分发挥。有充分发挥。o软件产业的发展软件产业的发
13、展长期滞后,与硬长期滞后,与硬件发展不协调。件发展不协调。1.1软件软件2023/5/1325国防科技大学计算机学院软件危机软件危机o软件开发成本过高软件开发成本过高o软件质量得不到保证软件质量得不到保证o软件开发效率低软件开发效率低o难以控制开发进度,工作量估计困难难以控制开发进度,工作量估计困难 软件不能满足社会发展的需求,成为社会、经济软件不能满足社会发展的需求,成为社会、经济发展的制约因素发展的制约因素1.1软件软件2023/5/1326国防科技大学计算机学院程序规模、工作量与成本的关系程序规模、工作量与成本的关系1.1软件软件2023/5/1327国防科技大学计算机学院2.软件危机原
14、因软件危机原因o软件的规模加大、复杂性提高、性能增强软件的规模加大、复杂性提高、性能增强o软件是逻辑产品软件是逻辑产品,尚未完全认识其本质和特点尚未完全认识其本质和特点o缺乏有效的、系统的开发、维护大型软件项目缺乏有效的、系统的开发、维护大型软件项目的技术手段和管理方法的技术手段和管理方法1.1软件软件2023/5/1328国防科技大学计算机学院软件危机原因软件危机原因o用户对软件需求的描述和软件开发人员对需求用户对软件需求的描述和软件开发人员对需求的理解往往存在差异,用户经常要求修改需求,的理解往往存在差异,用户经常要求修改需求,开发人员很难适应开发人员很难适应o软件开发的技术人员和管理人员
15、缺乏软件工程软件开发的技术人员和管理人员缺乏软件工程化的素质和要求,对工程化的开销认识不足化的素质和要求,对工程化的开销认识不足o1.1软件软件2023/5/1329国防科技大学计算机学院3.软件危机仍在继续软件危机仍在继续 -影响软件质量的糊涂认识影响软件质量的糊涂认识(1/3)o在项目的初始阶段对系统若明若暗就开始写程在项目的初始阶段对系统若明若暗就开始写程序序o认为软件是灵活的容易修改,对软件需求的改认为软件是灵活的容易修改,对软件需求的改变不以为然变不以为然o程序调试成功标志着工作的结束程序调试成功标志着工作的结束1.1软件软件2023/5/1330国防科技大学计算机学院软件危机仍在继
16、续软件危机仍在继续 -影响软件质量的糊涂认识影响软件质量的糊涂认识(2/3)o程序运行前无法评价程序的质量程序运行前无法评价程序的质量o一个软件项目给客户提交的主要是程序,而软一个软件项目给客户提交的主要是程序,而软件文档则认为可有可无、可多可少等等。件文档则认为可有可无、可多可少等等。o虽然发布了软件标准和规范,但在实践中执行虽然发布了软件标准和规范,但在实践中执行需要额外的开销,划不来需要额外的开销,划不来1.1软件软件2023/5/1331国防科技大学计算机学院软件危机仍在继续软件危机仍在继续 -影响软件质量的糊涂认识影响软件质量的糊涂认识(3/3)o虽然开发了许多软件工具,但很多开发者
17、对使虽然开发了许多软件工具,但很多开发者对使用这些工具兴趣不大用这些工具兴趣不大o为了开发软件人们不惜用重金购买最新型号的为了开发软件人们不惜用重金购买最新型号的主机和工作站而不愿意购买软件工具主机和工作站而不愿意购买软件工具o在软件开发过程中,进度迟后就增派更多的程在软件开发过程中,进度迟后就增派更多的程序员突击,赶进度序员突击,赶进度o1.1软件软件2023/5/1332国防科技大学计算机学院1.2 软件工程的概念软件工程的概念 1968年年 NATO 计算机科学会议计算机科学会议 软件危机软件危机-根源根源-解决途径解决途径 软件工程软件工程第一章第一章 软件与软件工程软件与软件工程20
18、23/5/1333国防科技大学计算机学院 1.2.1.软件工程的定义软件工程的定义 (1/3)软件工程软件工程 Fritz Bauernau69 为了经济的获得为了经济的获得可靠的可靠的,在实际机器上,在实际机器上高效运高效运行的行的软件,而建立和使用的好的软件,而建立和使用的好的工程原则。工程原则。1.2软件工程的概念软件工程的概念2023/5/1334国防科技大学计算机学院软件工程的定义软件工程的定义 (2/3)软件工程软件工程 教材教材o软件工程是运用工程、科学和数学的原则与方法研软件工程是运用工程、科学和数学的原则与方法研制、维护计算机软件的有关技术和管理的方法。制、维护计算机软件的有
19、关技术和管理的方法。1.2软件工程的概念软件工程的概念2023/5/1335国防科技大学计算机学院软件工程的定义软件工程的定义(3/3)软件工程软件工程IEE93(1)将将系统的、规范的、可度量系统的、规范的、可度量的方法应用于软件的开的方法应用于软件的开发、运行和维护的过程;发、运行和维护的过程;(2)上述方法的研究。上述方法的研究。1.2软件工程的概念软件工程的概念2023/5/1336国防科技大学计算机学院软件工程三要素软件工程三要素 过程、方法和工具过程、方法和工具(1/5)o质量是软件工程的生命线,软件工程以质量保证为质量是软件工程的生命线,软件工程以质量保证为基础。基础。o质量管理
20、促进了过程的改进质量管理促进了过程的改进,创造了许多行之有效的创造了许多行之有效的软件开发方法和工具。软件开发方法和工具。1.2软件工程的概念软件工程的概念2023/5/1337国防科技大学计算机学院软件工程三要素软件工程三要素 过程、方法和工具过程、方法和工具(2/5)o软件工程釆用层次化的方法软件工程釆用层次化的方法,每个层次都包括过程、每个层次都包括过程、方法、工具三要素。方法、工具三要素。o方法支撑过程和工具、过程和工具促进方法学的研方法支撑过程和工具、过程和工具促进方法学的研究。究。1.2软件工程的概念软件工程的概念2023/5/1338国防科技大学计算机学院软件工程三要素软件工程三
21、要素 过程、方法和工具过程、方法和工具o将将系统的、规范的、可量化的系统的、规范的、可量化的方法运用到软件工程方法运用到软件工程的始终,渗透到软件工程的过程、方法和工具中。的始终,渗透到软件工程的过程、方法和工具中。1.2软件工程的概念软件工程的概念软件工程软件工程过程过程方法方法工具工具2023/5/1339国防科技大学计算机学院软件工程三要素软件工程三要素 过程、方法和工具过程、方法和工具(3/5)软件工程的过程软件工程的过程 o过程贯穿软件开发的各个环节,各环节之过程贯穿软件开发的各个环节,各环节之 间建立间建立里程碑;里程碑;o管理者在软件工程过程中对软件开发的管理者在软件工程过程中对
22、软件开发的质量、进度、质量、进度、成本成本进行评估、管理和控制;进行评估、管理和控制;o技术人员采用相应的方法和工具生成软件工程产品技术人员采用相应的方法和工具生成软件工程产品(模型、文档、数据、报告、表格等)。(模型、文档、数据、报告、表格等)。1.2软件工程的概念软件工程的概念2023/5/1340国防科技大学计算机学院软件工程三要素软件工程三要素 过程、方法和工具过程、方法和工具(4/5)软件工程的方法软件工程的方法o软件工程方法是完成软件工程项目的技术手段。它软件工程方法是完成软件工程项目的技术手段。它支持项目计划和估算、系统和软件需求分析、设计、支持项目计划和估算、系统和软件需求分析
23、、设计、编程、测试和维护。编程、测试和维护。o软件工程方法依赖一组原则,它贯穿软件工程的各软件工程方法依赖一组原则,它贯穿软件工程的各个环节。个环节。o软件工程方法分两类:传统方法和面向对象方法软件工程方法分两类:传统方法和面向对象方法1.2软件工程的概念软件工程的概念2023/5/1341国防科技大学计算机学院软件工程三要素软件工程三要素 过程、方法和工具过程、方法和工具 (5/5)软件工程工具软件工程工具o它为软件工程的过程和方法提供自动化或半自动它为软件工程的过程和方法提供自动化或半自动化的工具支持。化的工具支持。o将若干工具集成起来,与软件工程数据库和计算将若干工具集成起来,与软件工程
24、数据库和计算机系统构成一个支持软件开发的系统称机系统构成一个支持软件开发的系统称“计算机计算机辅助软件工程辅助软件工程(CASE)”,系统中某一工具的信息,系统中某一工具的信息加工结果可以作为另一工具的输入。加工结果可以作为另一工具的输入。o集成的软件工程工具再加上人的因素构成了软件集成的软件工程工具再加上人的因素构成了软件工程环境。工程环境。1.2软件工程的概念软件工程的概念2023/5/1342国防科技大学计算机学院软件开发方法和软件工具软件开发方法和软件工具o结构化分析方法结构化分析方法o结构化程序设计语言结构化程序设计语言o面向对象分折方法面向对象分折方法o面向对象程序设计语言面向对象
25、程序设计语言1.2软件工程的概念软件工程的概念2023/5/1343国防科技大学计算机学院3.软件和软件开发过程软件和软件开发过程o软件过程和软件产品密切相关。软件过程和软件产品密切相关。o大型软件项目没有良好的软件开发过程,不可能建大型软件项目没有良好的软件开发过程,不可能建造出用户满意的优质产品;反之,一个好的软件产造出用户满意的优质产品;反之,一个好的软件产品隐含着良好的软件开发过程。品隐含着良好的软件开发过程。o计算机软件领域产品和过程不断交替创新,促进软计算机软件领域产品和过程不断交替创新,促进软件工程的进步和发展。件工程的进步和发展。1.2软件工程的概念软件工程的概念2023/5/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 齐志昌 第二 34266
限制150内