《软件工程.ppt》由会员分享,可在线阅读,更多相关《软件工程.ppt(61页珍藏版)》请在第壹文秘上搜索。
1、2023-3-101 软件工程软件工程 Software Engineering2023-3-102 软件是信息化社会和知识经济的基础,它渗透软件是信息化社会和知识经济的基础,它渗透到人们生活、工作的所有领域,并迅速的改变着到人们生活、工作的所有领域,并迅速的改变着人们的生活和工作方式,改变着社会的产业结构人们的生活和工作方式,改变着社会的产业结构和面貌。和面貌。 人们对软件的依靠越来越密切,社会需要大量人们对软件的依靠越来越密切,社会需要大量的丰富多彩的软件,并随着社会的发展不断更新、的丰富多彩的软件,并随着社会的发展不断更新、充实和提高。充实和提高。2023-3-103教材教材2023-3
2、-104教材和参考书教材和参考书2023-3-105第一章第一章 软件与软件工程软件与软件工程o软件与软件工程的概念软件与软件工程的概念 o软件生存周期软件生存周期 o软件开发模型软件开发模型 o软件工程工具及环境软件工程工具及环境2023-3-1061.1 软件软件o软件的概念;软件的概念;o软件的特点;软件的特点;o软件的分类;软件的分类;o软件的发展;软件的发展;o软件危机。软件危机。第一章第一章 软件与软件工程软件与软件工程2023-3-1071.1.1 软件的概念软件的概念 软件是什么软件是什么?1.1软件软件2023-3-108软件软件的概念的概念计算机世界的软件计算机世界的软件
3、软件是能够完成预定功能和性能,并对相应数据进软件是能够完成预定功能和性能,并对相应数据进行加工的程序和描述程序及其操作的文档。行加工的程序和描述程序及其操作的文档。 软件软件 = 程序程序+数据数据+文档文档 程序程序 = 算法算法+数据结构数据结构1.1软件软件2023-3-1091.1.2 软件的特点软件的特点o软件开发与传统的产品生产存在本质差别;软件开发与传统的产品生产存在本质差别;o软件是逻辑产品,而不是物理产品;软件是逻辑产品,而不是物理产品;o软件不会磨损;软件不会磨损;1.1软件软件2023-3-1010 软件的描述软件的描述(13) 软件由程序、数据、文档组成。软件由程序、数
4、据、文档组成。 1.1软件软件2023-3-1011软件的描述软件的描述(23)程序设计语言程序设计语言o面向机器面向机器 汇编语言、机器语言等汇编语言、机器语言等o面向过程面向过程 Fortran, Pascal, C等等o面向对象面向对象 C+, Java等等o面向问题面向问题 结构化查询语言结构化查询语言SQL等等1.1软件软件2023-3-1012软件的描述软件的描述(33)数据数据 用程序设计语言要求的数据结构表示用程序设计语言要求的数据结构表示文档文档 规范规范 准确准确 清晰清晰 简洁简洁 无歧义无歧义 自然语言自然语言 结构化英语结构化英语 图表图表 1.1软件软件2023-3
5、-10131.1.3 软件分类软件分类系统软件系统软件 实时软件实时软件 商务软件商务软件 工程和科学计算软件工程和科学计算软件 嵌入式软件嵌入式软件 人工智能软件人工智能软件 个人计算机软件个人计算机软件1.1软件软件2023-3-10141.1.4 软件的发展软件的发展o软件发展的四个阶段软件发展的四个阶段o软件发展存在的问题软件发展存在的问题1.1软件软件2023-3-10152) 软件发展存在的问题软件发展存在的问题 (1/2)o软件开发能力不能满足人们的需要。软件开发能力不能满足人们的需要。o社会对软件的依赖程度加大,人们普遍关注软件的社会对软件的依赖程度加大,人们普遍关注软件的安全
6、和可靠性。安全和可靠性。o建造高可靠性、高质量软件的任务任重路远。建造高可靠性、高质量软件的任务任重路远。1.1软件软件2023-3-1016软件发展存在的问题软件发展存在的问题 (2/2)o若干年前开发的应用软件经过几十次修改已无人认若干年前开发的应用软件经过几十次修改已无人认识它的内部结构,己经不可维护。识它的内部结构,己经不可维护。o由于经济原因由于经济原因,嵌入式系统存在许多怪现象,企业不嵌入式系统存在许多怪现象,企业不愿意投入资源再生产,而采取打补丁愿意投入资源再生产,而采取打补丁+时髦界面的时髦界面的方法。方法。1.1软件软件2023-3-10171.1.5 软件危机软件危机1.软
7、件危机的表现软件危机的表现o硬件发展超过软硬件发展超过软件,硬件潜能没件,硬件潜能没有充分发挥。有充分发挥。o软件产业的发展软件产业的发展长期滞后,与硬长期滞后,与硬件发展不协调。件发展不协调。1.1软件软件2023-3-1018软件危机软件危机o软件开发成本过高软件开发成本过高o软件质量得不到保证软件质量得不到保证o软件开发效率低软件开发效率低o难以控制开发进度,工作量估计困难难以控制开发进度,工作量估计困难 软件不能满足社会发展的需求,成为社会、经软件不能满足社会发展的需求,成为社会、经济发展的制约因素济发展的制约因素1.1软件软件2023-3-1019程序规模、工作量与成本的关系程序规模
8、、工作量与成本的关系1.1软件软件2023-3-10202. 软件危机原因软件危机原因o软件的规模加大、复杂性提高、性能增强软件的规模加大、复杂性提高、性能增强o软件是逻辑产品软件是逻辑产品, 尚未完全认识其本质和特点尚未完全认识其本质和特点o缺乏有效的、系统的开发、维护大型软件项缺乏有效的、系统的开发、维护大型软件项目的技术手段和管理方法目的技术手段和管理方法1.1软件软件2023-3-1021软件危机原因软件危机原因o用户对软件需求的描述和软件开发人员对需求用户对软件需求的描述和软件开发人员对需求的理解往往存在差异,用户经常要求修改需求,的理解往往存在差异,用户经常要求修改需求,开发人员很
9、难适应开发人员很难适应o软件开发的技术人员和管理人员缺乏软件工程软件开发的技术人员和管理人员缺乏软件工程化的素质和要求,对工程化的开销认识不足化的素质和要求,对工程化的开销认识不足o1.1软件软件2023-3-10223.软件危机仍在继续软件危机仍在继续 -影响软件质量的糊涂认识影响软件质量的糊涂认识(1/3)o在项目的初始阶段对系统若明若暗就开始写程在项目的初始阶段对系统若明若暗就开始写程序序o认为软件是灵活的容易修改,对软件需求的改认为软件是灵活的容易修改,对软件需求的改变不以为然变不以为然o程序调试成功标志着工作的结束程序调试成功标志着工作的结束1.1软件软件2023-3-1023软件危
10、机仍在继续软件危机仍在继续 -影响软件质量的糊涂认识影响软件质量的糊涂认识 (2/3)o程序运行前无法评价程序的质量程序运行前无法评价程序的质量o一个软件项目给客户提交的主要是程序,而软一个软件项目给客户提交的主要是程序,而软件文档则认为可有可无、可多可少等等。件文档则认为可有可无、可多可少等等。o虽然发布了软件标准和规范,但在实践中执行虽然发布了软件标准和规范,但在实践中执行需要额外的开销,划不来需要额外的开销,划不来1.1软件软件2023-3-1024软件危机仍在继续软件危机仍在继续 -影响软件质量的糊涂认识影响软件质量的糊涂认识(3/3)o虽然开发了许多软件工具,但很多开发者对使虽然开发
11、了许多软件工具,但很多开发者对使用这些工具兴趣不大用这些工具兴趣不大o为了开发软件人们不惜用重金购买最新型号的为了开发软件人们不惜用重金购买最新型号的主机和工作站而不愿意购买软件工具主机和工作站而不愿意购买软件工具o在软件开发过程中,进度迟后就增派更多的程在软件开发过程中,进度迟后就增派更多的程序员突击,赶进度序员突击,赶进度o1.1软件软件2023-3-10251.2 软件工程的概念软件工程的概念 1968年年 NATO 计算机科学会议计算机科学会议 软件危机软件危机-根源根源-解决途径解决途径 软件工程软件工程第一章第一章 软件与软件工程软件与软件工程2023-3-1026软件工程的定义软
12、件工程的定义 (3/3) 软件工程软件工程IEE93(1)将将系统的、规范的、可度量系统的、规范的、可度量的方法应用于软件的的方法应用于软件的开发、运行和维护的过程;开发、运行和维护的过程;(2) 上述方法的研究。上述方法的研究。1.2软件工程的概念软件工程的概念2023-3-1027软件工程三要素软件工程三要素 过程、方法和工具过程、方法和工具(1/5)o质量是软件工程的生命线,软件工程以质量保证为质量是软件工程的生命线,软件工程以质量保证为基础。基础。o质量管理促进了过程的改进质量管理促进了过程的改进,创造了许多行之有效的创造了许多行之有效的软件开发方法和工具。软件开发方法和工具。1.2软
13、件工程的概念软件工程的概念2023-3-1028软件工程三要素软件工程三要素 过程、方法和工具过程、方法和工具(2/5)o软件工程釆用层次化的方法软件工程釆用层次化的方法,每个层次都包括过程、每个层次都包括过程、方法、工具三要素。方法、工具三要素。o方法支撑过程和工具、过程和工具促进方法学的研方法支撑过程和工具、过程和工具促进方法学的研究。究。1.2软件工程的概念软件工程的概念2023-3-1029软件工程三要素软件工程三要素 过程、方法和工具过程、方法和工具o将将系统的、规范的、可量化的系统的、规范的、可量化的方法运用到软件工程方法运用到软件工程的始终,渗透到软件工程的过程、方法和工具中。的
14、始终,渗透到软件工程的过程、方法和工具中。1.2软件工程的概念软件工程的概念软件工程软件工程过程过程方法方法工具工具2023-3-1030软件工程三要素软件工程三要素 过程、方法和工具过程、方法和工具(3/5) 软件工程的过程软件工程的过程 o过程贯穿软件开发的各个环节,各环节之间建立过程贯穿软件开发的各个环节,各环节之间建立里程碑;里程碑;o管理者在软件工程过程中对软件开发的管理者在软件工程过程中对软件开发的质量、进质量、进度、成本度、成本进行评估、管理和控制;进行评估、管理和控制;o技术人员采用相应的方法和工具生成软件工程产技术人员采用相应的方法和工具生成软件工程产品(模型、文档、数据、报
15、告、表格等)。品(模型、文档、数据、报告、表格等)。1.2软件工程的概念软件工程的概念2023-3-1031软件工程三要素软件工程三要素 过程、方法和工具过程、方法和工具(4/5) 软件工程的方法软件工程的方法o软件工程方法是完成软件工程项目的技术手段。它软件工程方法是完成软件工程项目的技术手段。它支持项目计划和估算、系统和软件需求分析、设计、支持项目计划和估算、系统和软件需求分析、设计、编程、测试和维护。编程、测试和维护。o软件工程方法依赖一组原则,它贯穿软件工程的各软件工程方法依赖一组原则,它贯穿软件工程的各个环节。个环节。o软件工程方法分两类:传统方法和面向对象方法软件工程方法分两类:传
16、统方法和面向对象方法1.2软件工程的概念软件工程的概念2023-3-1032软件工程三要素软件工程三要素 过程、方法和工具过程、方法和工具 (5/5) 软件工程工具软件工程工具o它为软件工程的过程和方法提供自动化或半自动它为软件工程的过程和方法提供自动化或半自动化的工具支持。化的工具支持。o将若干工具集成起来,与软件工程数据库和计算将若干工具集成起来,与软件工程数据库和计算机系统构成一个支持软件开发的系统称机系统构成一个支持软件开发的系统称“计算机计算机辅助软件工程辅助软件工程(CASE)”,系统中某一工具的信息,系统中某一工具的信息加工结果可以作为另一工具的输入。加工结果可以作为另一工具的输入。o集成的软件工程工具再加上人的因素构成了软件集成的软件工程工具再加上人的因素构成了软件工程环境。工程环境。1.2软件工程的概念软件工程的概念2023-3-1033软件开发方法和软件工具软件开发方法和软件工具o结构化分析方法结构化分析方法o结构化程序设计语言结构化程序设计语言o面向对象分折方法面向对象分折方法o面向对象程序设计语言面向对象程序设计语言1.2软件工程的概念软件工程的概念2023-3