软件工程.ppt

上传人:李司机 文档编号:4096074 上传时间:2023-04-04 格式:PPT 页数:61 大小:2.39MB
返回 下载 相关 举报
软件工程.ppt_第1页
第1页 / 共61页
软件工程.ppt_第2页
第2页 / 共61页
软件工程.ppt_第3页
第3页 / 共61页
软件工程.ppt_第4页
第4页 / 共61页
软件工程.ppt_第5页
第5页 / 共61页
点击查看更多>>
资源描述

《软件工程.ppt》由会员分享,可在线阅读,更多相关《软件工程.ppt(61页珍藏版)》请在三一办公上搜索。

1、2023/4/4,1,软件工程 Software Engineering,2023/4/4,2,软件是信息化社会和知识经济的基础,它渗透到人们生活、工作的所有领域,并迅速的改变着人们的生活和工作方式,改变着社会的产业结构和面貌。人们对软件的依靠越来越密切,社会需要大量的丰富多彩的软件,并随着社会的发展不断更新、充实和提高。,2023/4/4,3,教材,软件工程(第二版)齐治昌 谭庆平 宁洪 高等教育出版社,2023/4/4,4,教材和参考书,1、软件工程导论(第四版)张海藩 编著 清华大学出版社2、实用软件工程(第二版)郑人杰 殷人昆 陶永雷 清华大学出版社3、软件工程 实践者的研究方法 Ro

2、ger S.Pressman 机械工业出版社,2023/4/4,5,第一章 软件与软件工程,软件与软件工程的概念 软件生存周期 软件开发模型 软件工程工具及环境,2023/4/4,6,1.1 软件,软件的概念;软件的特点;软件的分类;软件的发展;软件危机。,第一章 软件与软件工程,2023/4/4,7,1.1.1 软件的概念,软件是什么?,1.1软件,2023/4/4,8,软件的概念,计算机世界的软件 软件是能够完成预定功能和性能,并对相应数据进行加工的程序和描述程序及其操作的文档。软件=程序+数据+文档 程序=算法+数据结构,1.1软件,2023/4/4,9,1.1.2 软件的特点,软件开发

3、与传统的产品生产存在本质差别;软件是逻辑产品,而不是物理产品;软件不会磨损;,1.1软件,2023/4/4,10,软件的描述(13),软件由程序、数据、文档组成。,1.1软件,2023/4/4,11,软件的描述(23),程序设计语言面向机器 汇编语言、机器语言等面向过程 Fortran,Pascal,C等面向对象 C+,Java等面向问题 结构化查询语言SQL等,1.1软件,2023/4/4,12,软件的描述(33),数据 用程序设计语言要求的数据结构表示文档 规范 准确 清晰 简洁 无歧义 自然语言 结构化英语 图表,1.1软件,2023/4/4,13,1.1.3 软件分类,系统软件 实时软

4、件 商务软件 工程和科学计算软件 嵌入式软件 人工智能软件 个人计算机软件,1.1软件,2023/4/4,14,1.1.4 软件的发展,软件发展的四个阶段软件发展存在的问题,1.1软件,2023/4/4,15,2)软件发展存在的问题(1/2),软件开发能力不能满足人们的需要。社会对软件的依赖程度加大,人们普遍关注软件的安全和可靠性。建造高可靠性、高质量软件的任务任重路远。,1.1软件,2023/4/4,16,软件发展存在的问题(2/2),若干年前开发的应用软件经过几十次修改已无人认识它的内部结构,己经不可维护。由于经济原因,嵌入式系统存在许多怪现象,企业不愿意投入资源再生产,而采取打补丁+时髦

5、界面的方法。,1.1软件,2023/4/4,17,1.1.5 软件危机,1.软件危机的表现硬件发展超过软件,硬件潜能没有充分发挥。软件产业的发展长期滞后,与硬件发展不协调。,1.1软件,2023/4/4,18,软件危机,软件开发成本过高软件质量得不到保证软件开发效率低难以控制开发进度,工作量估计困难 软件不能满足社会发展的需求,成为社会、经济发展的制约因素,1.1软件,2023/4/4,19,程序规模、工作量与成本的关系,1.1软件,2023/4/4,20,2.软件危机原因,软件的规模加大、复杂性提高、性能增强软件是逻辑产品,尚未完全认识其本质和特点缺乏有效的、系统的开发、维护大型软件项目的技

6、术手段和管理方法,1.1软件,2023/4/4,21,软件危机原因,用户对软件需求的描述和软件开发人员对需求的理解往往存在差异,用户经常要求修改需求,开发人员很难适应软件开发的技术人员和管理人员缺乏软件工程化的素质和要求,对工程化的开销认识不足,1.1软件,2023/4/4,22,3.软件危机仍在继续-影响软件质量的糊涂认识(1/3),在项目的初始阶段对系统若明若暗就开始写程序认为软件是灵活的容易修改,对软件需求的改变不以为然程序调试成功标志着工作的结束,1.1软件,2023/4/4,23,软件危机仍在继续-影响软件质量的糊涂认识(2/3),程序运行前无法评价程序的质量一个软件项目给客户提交的

7、主要是程序,而软件文档则认为可有可无、可多可少等等。虽然发布了软件标准和规范,但在实践中执行需要额外的开销,划不来,1.1软件,2023/4/4,24,软件危机仍在继续-影响软件质量的糊涂认识(3/3),虽然开发了许多软件工具,但很多开发者对使用这些工具兴趣不大为了开发软件人们不惜用重金购买最新型号的主机和工作站而不愿意购买软件工具在软件开发过程中,进度迟后就增派更多的程序员突击,赶进度,1.1软件,2023/4/4,25,1.2 软件工程的概念,1968年 NATO 计算机科学会议 软件危机-根源-解决途径 软件工程,第一章 软件与软件工程,2023/4/4,26,软件工程的定义(3/3),

8、软件工程IEE93(1)将系统的、规范的、可度量的方法应用于软件的开发、运行和维护的过程;(2)上述方法的研究。,1.2软件工程的概念,2023/4/4,27,软件工程三要素 过程、方法和工具(1/5),质量是软件工程的生命线,软件工程以质量保证为基础。质量管理促进了过程的改进,创造了许多行之有效的软件开发方法和工具。,1.2软件工程的概念,2023/4/4,28,软件工程三要素 过程、方法和工具(2/5),软件工程釆用层次化的方法,每个层次都包括过程、方法、工具三要素。方法支撑过程和工具、过程和工具促进方法学的研究。,1.2软件工程的概念,2023/4/4,29,软件工程三要素 过程、方法和

9、工具,将系统的、规范的、可量化的方法运用到软件工程的始终,渗透到软件工程的过程、方法和工具中。,1.2软件工程的概念,软件工程,过程,方法,工具,2023/4/4,30,软件工程三要素 过程、方法和工具(3/5),软件工程的过程 过程贯穿软件开发的各个环节,各环节之间建立里程碑;管理者在软件工程过程中对软件开发的质量、进度、成本进行评估、管理和控制;技术人员采用相应的方法和工具生成软件工程产品(模型、文档、数据、报告、表格等)。,1.2软件工程的概念,2023/4/4,31,软件工程三要素 过程、方法和工具(4/5),软件工程的方法软件工程方法是完成软件工程项目的技术手段。它支持项目计划和估算

10、、系统和软件需求分析、设计、编程、测试和维护。软件工程方法依赖一组原则,它贯穿软件工程的各个环节。软件工程方法分两类:传统方法和面向对象方法,1.2软件工程的概念,2023/4/4,32,软件工程三要素 过程、方法和工具(5/5),软件工程工具它为软件工程的过程和方法提供自动化或半自动化的工具支持。将若干工具集成起来,与软件工程数据库和计算机系统构成一个支持软件开发的系统称“计算机辅助软件工程(CASE)”,系统中某一工具的信息加工结果可以作为另一工具的输入。集成的软件工程工具再加上人的因素构成了软件工程环境。,1.2软件工程的概念,2023/4/4,33,软件开发方法和软件工具,结构化分析方

11、法结构化程序设计语言面向对象分折方法面向对象程序设计语言,1.2软件工程的概念,2023/4/4,34,3.软件和软件开发过程,软件过程和软件产品密切相关。大型软件项目没有良好的软件开发过程,不可能建造出用户满意的优质产品;反之,一个好的软件产品隐含着良好的软件开发过程。计算机软件领域产品和过程不断交替创新,促进软件工程的进步和发展。,1.2软件工程的概念,2023/4/4,35,1.2.2 软件工程目标(1/6),在给定成本、进度的前提下,开发出具有 可修改性、有效性、可靠性、可适应性、可追踪性、可移植性、可互操作性 并满足用户需求的软件产品。,1.2软件工程的概念,2023/4/4,36,

12、1.3 软件生存周期,软件产品从形成概念开始,经过开发、运行(使用)和维护直到退役的全过程称为软件生存周期,包括软件定义、开发、使用和维护三部分。软件工程的目标和原则贯穿整个软件生存周期。,第一章 软件与软件工程,2023/4/4,37,软件的定义和开发过程,问题定义 可行性研究 需求分析软件开发 概要设计 详细设计 实现 组装测试 确认测试,可行性研究,需求分析,概要设计,详细设计,实现,组装测试,确认测试,1.3软件生存周期,2023/4/4,38,1.3.1 问题定义,1.可行性研究任务 了解用户要求和现实环境 从技术、经济、市场等方面研究并论证开发该软件系统的可行性,1.3软件生存周期

13、,2023/4/4,39,可行性研究(2/3),技术可行性 当前的软件开发方法和工具能否支持需求的实现;操作可行性 用户能否在特定的环境下使用这个软件;经济可行性 开发和使用、维护这个软件的成本能否被用户所接受。,1.3软件生存周期,2023/4/4,40,可行性研究(3/3),阶段性产品可行性论证报告制定初步项目开发计划(人员,进度),1.3软件生存周期,2023/4/4,41,软件定义开发与测试的关系,1.3软件生存周期,2023/4/4,42,1.4 软件开发模型,软件开发模型是软件开发全过程、软件开发活动以及它们之间关系的的结构框架软件项目的管理提供里程碑和进度表为软件开发提供原则和方

14、法,第一章 软件与软件工程,2023/4/4,43,软件开发模型,三类软件开发模型1.以软件需求完全确定为前提的瀑布模型2.在软件开发初期只能提供基本需求所采用的渐进式开发模型如原型模型、螺旋模型3.以形式化开发方法为基础的变换模型,1.4软件开发模型,2023/4/4,44,1.4.1 瀑布模型(1/4),主要思想软件开发过程与软件生命周期是一致的相邻二阶段之间存在因果关系需对阶段性产品进行评审,1.4软件开发模型,2023/4/4,45,瀑布模型(2/4),1.4软件开发模型,2023/4/4,46,瀑布模型的优点(34),软件生命周期模型,使软件开发过程可以在分析、设计、编码、测试和维护

15、的框架下进行;软件开发过程具有系统性、可控性,克服了软件开发的随意性。,1.4软件开发模型,2023/4/4,47,瀑布模型的缺点(44),项目开始阶段用户很难精确的提出产品需求,由于技术进步,用户对系统深入的理解,修改需求十分普遍。项目开发晚期才能得到程序的运行版本,这时修改软件需求和开发中的错误代价很大。采用线性模型组织项目开发经常发生开发小组人员“堵塞状态”,特别是项目的开始和结束。,1.4软件开发模型,2023/4/4,48,1.4.2 快速原型模型,用户/客户给出软件产品的一般需求开发小组和用户共同定义软件总体目标,标识已知需求对界面、功能、人机交互方式等,进行设计并建造原型,1.4

16、软件开发模型,2023/4/4,49,快速原型模型,强调“快速”,釆用基于构件的软件开发方法,尽量缩短软件开发周期,不宜釆用过多的新技术用户/客户对原型进行评估修改需求、更新设计、完善原型直至确定需求。,1.4软件开发模型,2023/4/4,50,原型模型示意图,1.4软件开发模型,2023/4/4,51,原型模型的优点,原型模型支持软件需求开发,帮助用户和开发人员理解需求,是软件需求工程的关键。它产生的正式需求文挡,是软件开发的基础。如果开发的原型是可运行的,它的若干高质量的程序片段和开发工具可用于工作程序的开发。原型的开发和评审是系统分析员和用户/客户共同参予的迭代过程,每个迭代循环都是线

17、性过程。,1.4软件开发模型,2023/4/4,52,原型模型的缺点,对于大型软件项目,原型模型需要足够的人力资源以建立足够的原型组。原型模型要求开发者和客户在一段时间内共同完成原型系统的开发,如果任何一方没有实现承诺,会导致原型开发的失败。如果系统难以模块化,建造原型所需构件就有问题;如果高性能是一个指标,原型模型也可能不奏效。原型模型不适合采用很多新技术的项目,1.4软件开发模型,2023/4/4,53,原型模型的应用,建造原型定义系统需求 一旦原型通过评审,达到预期目的后,应以确定的软件需求为目标进行软件开发,以便保证软件质量和可维护性;建造原型为客户提供初始的版本,1.4软件开发模型,

18、2023/4/4,54,1.4.3 螺旋模型,Boehm在1988年提出 螺旋模型=线性模型十迭代.原型十系统化 螺旋模型适用于计算机软件整个生命周期,1.4软件开发模型,2023/4/4,55,螺旋模型的结构软件过程的Boehm螺旋模型(1998 IEEE),1.4软件开发模型,2023/4/4,56,螺旋模型的使用,软件工程项目从螺旋中心开始启动,沿顺时针方向前进。第一圈 产生产品规格说明;第二圈 产生一个用于开发的原型;第三圈 产生软件产品的初始版本;第四圈 产生软件产品比较完善的新版本。,1.4软件开发模型,2023/4/4,57,螺旋模型的优点,符合人们认识现实世界和软件开发的客覌规

19、律;支持软件整个生命周期;保持瀑布模型的系统性、阶段性;利用原型评估降低开发风险;开发者和用户共同参予软件开发,尽早发现软件中的错误;不断推出和完善软件版本,有助于需求变化,获取用户需求,加强对需求的理解。,1.4软件开发模型,2023/4/4,58,1.4.4 基于四代技术的模型,四代语言 R.Ross 1981年提出基于大型数据库管理系统开发的程序设计语言,称为四代语言4GL以四代语言4GL为核心的软件开发技术称为四代技术4GT4GT工具能将软件规格说明自动转换成程序代码。,1.4软件开发模型,2023/4/4,59,小结,软件工程是,采用系统的、規范的和可度量的方法支持软件开发、运行和维

20、护的过程;软件工程的目标是,在给定成本、进度的前提下开发出高质量的、满足用户需求的软件产品。过程、方法、工具的研究和应用是软件工程学科的核心;,第一章 软件与软件工程,2023/4/4,60,小结,软件工程是一门工程学科,涉及软件生产的各个方面;过程、方法和工具构成了软件工程的全部内容;软件产品由开发的程序及相关文档构成;软件产品的基本属性是可维护性、可依赖性、有效性、可用性;软件过程由开发软件产品的一系列活动组成。基本的活动有:软件描述、开发、有效性验证和进化;,第一章 软件与软件工程,2023/4/4,61,小结,软件工程方法是软件生产的组织方式,包括对软件过程的建议、使用的标记法、进行系统描述的规律和设计指南;CASE工具是一些软件系统,支持软件过程的常规活动,如编辑设计图表、检查图表的连贯性、跟踪已经运行的程序测试等;软件工程人员对软件工程这一职业和社会负有责任,不应该只关心技术问题;职业协会颁布的行为准则规定了协会成员应该遵守的一系列行为标准。,第一章 软件与软件工程,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号