软件工程概念课件.ppt
《软件工程概念课件.ppt》由会员分享,可在线阅读,更多相关《软件工程概念课件.ppt(65页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1第1页,此课件共65页哦第一章第一章 软件工程概念软件工程概念1.1 软件的定义与分类软件的定义与分类1.2 软件的发展软件的发展1.3 软件工程定义软件工程定义1.4 软件工程过程与软件生存周期模型软件工程过程与软件生存周期模型1.5 软件开发范型软件开发范型1.6 软件工程原理和原则软件工程原理和原则第3页,此课件共65页哦1.1 软件的定义与分类软件的定义与分类n软件的定义:软件由计算机程序、数据及文档组成。软件的定义:软件由计算机程序、数据及文档组成。程序程序是按事先设计的功能和性能要求执行是按事先设计的功能和性能要求执行的指令序列的指令序列数据数据是使程序能正常操纵信息的数据结构是
2、使程序能正常操纵信息的数据结构文档文档是与程序开发,维护和使用有关的图是与程序开发,维护和使用有关的图文材料文材料n软件与硬件、数据库、人、过程等共同构成计算软件与硬件、数据库、人、过程等共同构成计算机系统。机系统。第4页,此课件共65页哦软件的特点软件的特点n软件是一种逻辑实体,而不是具体的物理实体。因而软件是一种逻辑实体,而不是具体的物理实体。因而它具有抽象性它具有抽象性n软件的生产与硬件不同,在它的开发过程中没有软件的生产与硬件不同,在它的开发过程中没有明显的制造过程明显的制造过程n在软件的运行和使用期间,没有硬件那样的机械磨损,在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题老
3、化问题n软件的开发和运行常受到计算机系统的限制,对软件的开发和运行常受到计算机系统的限制,对计算机系统有着不同程度的依赖性计算机系统有着不同程度的依赖性第5页,此课件共65页哦n软件的开发至今尚未完全摆脱手工艺的开发方式软件的开发至今尚未完全摆脱手工艺的开发方式n软件本身是复杂的软件本身是复杂的实际问题的复杂性实际问题的复杂性程序逻辑结构的复杂性程序逻辑结构的复杂性 n软件成本相当昂贵软件成本相当昂贵n相当多的软件工作涉及到社会因素相当多的软件工作涉及到社会因素第6页,此课件共65页哦软件的分类软件的分类n按软件的功能进行划分:按软件的功能进行划分:u 系统软件系统软件p 操作系统操作系统p
4、数据库管理系统数据库管理系统p 设备驱动程序设备驱动程序p 通信处理程序等通信处理程序等u支撑软件支撑软件p文本编辑程序文本编辑程序p文件格式化程序文件格式化程序第7页,此课件共65页哦p程序库系统程序库系统p支持需求分析、设计、实现、测试和支持支持需求分析、设计、实现、测试和支持管理的软件管理的软件u 应用软件应用软件p 商业数据处理软件商业数据处理软件p 工程与科学计算软件工程与科学计算软件p 计算机辅助设计制造软件计算机辅助设计制造软件p 智能产品嵌入软件智能产品嵌入软件p 事务管理、办公自动化软件事务管理、办公自动化软件p 计算机辅助教学软件计算机辅助教学软件第8页,此课件共65页哦n
5、按软件规模进行划分:按软件规模进行划分:类别类别 参加人员数参加人员数 研制期限研制期限 源程序行数源程序行数 微型微型 1 14周周 0.5k 小型小型 1 16月月 1k2k 中型中型 25 12年年 5k50k 大型大型 520 23年年 50k100k 甚大型甚大型 1001000 45年年 1M(=1000k)极大型极大型 20005000 510年年 1M10M第9页,此课件共65页哦n按软件工作方式划分:按软件工作方式划分:实时处理软件实时处理软件 分时软件分时软件 交互式软件交互式软件 批处理软件批处理软件n按软件服务对象的范围划分:按软件服务对象的范围划分:u 项目软件项目软
6、件u 产品软件产品软件第10页,此课件共65页哦n按使用的频度进行划分:按使用的频度进行划分:一次使用一次使用 频繁使用频繁使用n按软件失效的影响进行划分:按软件失效的影响进行划分:u 高可靠性软件高可靠性软件u 一般可靠性软件一般可靠性软件第11页,此课件共65页哦1.2 软件发展阶段软件发展阶段n程序设计阶段程序设计阶段 1950 至至 60 年代年代计算机软件发展的初期,其主要特征是程序生产方计算机软件发展的初期,其主要特征是程序生产方式为个体手工方式。式为个体手工方式。主要采用批处理技术,没有任何其它形式的文档资料主要采用批处理技术,没有任何其它形式的文档资料保留下来,开发出的程序根本
7、无法维护。保留下来,开发出的程序根本无法维护。n程序系统阶段程序系统阶段 60至至70年代年代程序的规模已经很大,需要多人分工协作,软件的程序的规模已经很大,需要多人分工协作,软件的开发方式由开发方式由“个体生产个体生产”发展到了发展到了“软件作坊软件作坊”。第12页,此课件共65页哦“软件作坊软件作坊”基本上沿用了软件发展早期所形成的基本上沿用了软件发展早期所形成的个体化的开发方式,软件的开发与维护费用以惊人个体化的开发方式,软件的开发与维护费用以惊人的速度增加。许多软件产品根本不能维护,最终导的速度增加。许多软件产品根本不能维护,最终导致出现了严重的致出现了严重的“软件危机软件危机”。n软
8、件工程阶段软件工程阶段 70年代以后年代以后软件的开发以工程化的思想为指导,用工程化的原软件的开发以工程化的思想为指导,用工程化的原则、方法和标准来开发和维护软件。则、方法和标准来开发和维护软件。软件工程概念的出现源自软件危机。软件工程概念的出现源自软件危机。软件危机的主要特征软件危机的主要特征v 软件价格在整个项目投入中的比例不断升高软件价格在整个项目投入中的比例不断升高;第13页,此课件共65页哦v 软件开发成本严重超标软件开发成本严重超标;v 软件开发周期大大超过规定日期软件开发周期大大超过规定日期;v 软件质量难于保证;软件质量难于保证;v 软件修改、维护困难软件修改、维护困难;v 失
9、败的根本原因在于:开发人员写出的东西失败的根本原因在于:开发人员写出的东西达不到用户要求达不到用户要求(人的问题、技术问题人的问题、技术问题)n为了解决软件危机,人们借鉴其他领域的经验和知识,为了解决软件危机,人们借鉴其他领域的经验和知识,从而认识到从而认识到“摆脱软件危机的出路在于软件开发的标摆脱软件危机的出路在于软件开发的标准化和工程化准化和工程化”,出现了,出现了“软件工程软件工程”的概念。的概念。第14页,此课件共65页哦1968 年德国人年德国人 Bauer 在北大西洋公约组织会议上在北大西洋公约组织会议上的定义:的定义:建立并使用完善的工程化原则建立并使用完善的工程化原则,以较经以
10、较经济的手段获得能在实际机器上有效运行的可靠软件济的手段获得能在实际机器上有效运行的可靠软件的一系列方法的一系列方法。1983 年年 IEEE 的软件工程定义:的软件工程定义:软件工程是开发,软件工程是开发,运行运行,维护和修复软件的系统方法维护和修复软件的系统方法。1993 年年 IEEE 的一个更加综合的定义:的一个更加综合的定义:将系统化将系统化的,规范的,可度量的方法应用于软件的开发的,规范的,可度量的方法应用于软件的开发,运行运行和维护的过程,即将工程化应用于软件中和维护的过程,即将工程化应用于软件中。1.3 软件工程定义软件工程定义第15页,此课件共65页哦软件工程框架软件工程框架
11、可可用用性性性性性性确确正正合合算算选取适宜的开发模型选取适宜的开发模型采用合适的设计方法采用合适的设计方法提供高质量的工程支持提供高质量的工程支持重视软件工程的管理重视软件工程的管理基基本本过过程程支支持持过过程程组组织织过过程程目标目标过程过程原原则则第16页,此课件共65页哦n软件工程框架给出了软件工程三个主要方面。软件工程框架给出了软件工程三个主要方面。n软件工程目标软件工程目标包括可用性、正确性和合算性,规定包括可用性、正确性和合算性,规定了软件工程实践的结果(即软件)应具有的基本性质;了软件工程实践的结果(即软件)应具有的基本性质;n软件工程过程软件工程过程包含的基本活动有需求、分
12、析与设计、包含的基本活动有需求、分析与设计、实现、确认与测试、维护与支持;实现、确认与测试、维护与支持;n软件工程的四条原则软件工程的四条原则-采用适宜的开发模型,使用采用适宜的开发模型,使用恰当的开发方法,提供高质量的工程支持,实施恰当的开发方法,提供高质量的工程支持,实施有效的工程管理,从四个方面指导每一项工程的有效的工程管理,从四个方面指导每一项工程的活动,以实现软件工程目标。活动,以实现软件工程目标。第17页,此课件共65页哦软件工程的知识结构软件工程的知识结构2001年年5月月ISO/IEC JTC 1发布了发布了 SWEBOK指南指南V0.95(试用版)(试用版),即,即 Guid
13、e to the Software Engineering Body of Knowledge。SWEBOK把软件工程学科的主体知识分为把软件工程学科的主体知识分为10个知识领个知识领域。这域。这10个领域包括:个领域包括:软件需求软件需求 软件设计软件设计 软件构造软件构造 软件测试软件测试 软件维护软件维护 软件配置管理软件配置管理 软件工程管理软件工程管理 软件工程过程软件工程过程 软件工程工具和方法软件工程工具和方法 软件质量软件质量第18页,此课件共65页哦nISO 9000定义:定义:软件工程过程是把输入转化为输出的软件工程过程是把输入转化为输出的一组彼此相关的资源和活动一组彼此相
14、关的资源和活动。n从软件开发的观点看,它就是使用适当的资源(包从软件开发的观点看,它就是使用适当的资源(包括人员、硬软件工具、时间等),为开发软件进行括人员、硬软件工具、时间等),为开发软件进行的一组开发活动,在过程结束时将输入(用户要求)的一组开发活动,在过程结束时将输入(用户要求)转化为输出(软件产品)。转化为输出(软件产品)。1.4 软件工程过程与软件生存周期软件工程过程与软件生存周期第19页,此课件共65页哦n软件工程过程定义了软件工程过程定义了:方法使用的顺序、要求交付的方法使用的顺序、要求交付的文档资料、为保证质量和适应变化所需要的管理、文档资料、为保证质量和适应变化所需要的管理、
15、软件开发各个阶段完成的里程碑。软件开发各个阶段完成的里程碑。n软件工程过程包含四种基本的过程活动:软件工程过程包含四种基本的过程活动:v plan:软件规格说明软件规格说明v do:软件开发软件开发v check:软件确认软件确认v action:软件演进软件演进第20页,此课件共65页哦n软件生存周期包含三个阶段:软件定义、软件开发软件生存周期包含三个阶段:软件定义、软件开发及软件运行维护。及软件运行维护。n软件生存周期模型是软件工程思想的具体化,是跨越软软件生存周期模型是软件工程思想的具体化,是跨越软件生存周期的系统开发、运行、维护所实施的全部活动件生存周期的系统开发、运行、维护所实施的全
16、部活动和任务的过程框架。和任务的过程框架。n常用的软件生存周期模型有瀑布模型,演化模型,螺常用的软件生存周期模型有瀑布模型,演化模型,螺旋模型,增量模型,喷泉模型,快速应用开发(旋模型,增量模型,喷泉模型,快速应用开发(RAD)模型。)模型。第21页,此课件共65页哦瀑布模型瀑布模型n各项活动按自上而下,相互衔接的固定次序,如同各项活动按自上而下,相互衔接的固定次序,如同瀑布逐级下落,每项活动均处于一个质量环(输入瀑布逐级下落,每项活动均处于一个质量环(输入-处理处理-输出输出-评审)中。评审)中。n阶段间具有阶段间具有顺序性顺序性和和依赖性依赖性。n推迟实现的观点。推迟实现的观点。n每个阶段
17、必须完成规定的文档;每个阶段结束前完每个阶段必须完成规定的文档;每个阶段结束前完成文档审查。成文档审查。第22页,此课件共65页哦需求定义需求定义系统与软件设计系统与软件设计集成与系统测试集成与系统测试实现与单元测试实现与单元测试运行与维护运行与维护第23页,此课件共65页哦演化模型演化模型n演化模型是演化模型是迭代迭代的,软件必须经过不断的,软件必须经过不断演化演化才能才能完善。完善。n演化模型先开发一个演化模型先开发一个“原型原型”软件,完成部分主要功软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获能,展示给用户并征求意见,然后逐步完善,最终获得满意的软件产品。得满意的软
18、件产品。n业务和产品需求在变化中,采用线性开发方式是不实业务和产品需求在变化中,采用线性开发方式是不实际的。际的。n快速实现和提交一个有限的版本,可以应付市场竞争快速实现和提交一个有限的版本,可以应付市场竞争的压力。的压力。第24页,此课件共65页哦需求的采集需求的采集与细化与细化客户评价原型客户评价原型快速设计快速设计建造原型建造原型建造原型建造原型加工原型加工原型产生样品产生样品停止停止开始开始第25页,此课件共65页哦螺旋模型螺旋模型n螺旋模型将瀑布模型与演化模型结合起来,并且加入螺旋模型将瀑布模型与演化模型结合起来,并且加入两种模型均忽略了的两种模型均忽略了的风险分析风险分析。n螺旋模
19、型沿着螺线旋转,自内向外每旋转一圈便螺旋模型沿着螺线旋转,自内向外每旋转一圈便开发出更完善的一个新版本。开发出更完善的一个新版本。制定计划制定计划 风险分析风险分析 实施工程实施工程 客户评估客户评估第26页,此课件共65页哦决定目标、决定目标、方案和限制方案和限制评价方案评价方案识别风险识别风险弱化风险弱化风险开发、验证、开发、验证、下一级产品下一级产品计划下一阶段计划下一阶段集成测试第27页,此课件共65页哦增量模型增量模型n增量模型是增量模型是迭代迭代和和演进演进的过程。的过程。n增量模型把软件产品分解成一系列的增量构件,增量模型把软件产品分解成一系列的增量构件,在增量开发迭代中逐步加入
20、。在增量开发迭代中逐步加入。n每个构件由多个相互作用的模块构成,并且能够完每个构件由多个相互作用的模块构成,并且能够完成特定的功能。成特定的功能。n早先完成的增量可以为后期的增量提供服务。早先完成的增量可以为后期的增量提供服务。n增量开发方法的新演进版本叫做增量开发方法的新演进版本叫做 极限程序设计极限程序设计(eXtreme Programming)。第28页,此课件共65页哦定义基定义基本需求本需求将需求将需求对应到对应到各增量各增量设计系设计系统架构统架构开发其开发其中一个中一个增量增量检验和检验和确认该确认该增量增量将增量将增量集成到集成到系统中系统中确认集确认集成后的成后的系统系统第
21、29页,此课件共65页哦日历时间日历时间分析分析 增量增量1 增量增量1交付交付设计设计 编码编码 测试测试 分析分析 增量增量2 增量增量2交付交付设计设计 编码编码 测试测试 分析分析 增量增量3 增量增量3交付交付设计设计 编码编码 测试测试 分析分析 增量增量4 增量增量4交付交付设计设计 编码编码 测试测试 系统和信息工程系统和信息工程第30页,此课件共65页哦喷泉模型喷泉模型n体现了体现了迭代迭代和和无间隙无间隙的特性。的特性。n系统某个部分常常重复工作多次,相关对象在每系统某个部分常常重复工作多次,相关对象在每次迭代中随之加入演进的软件成分。次迭代中随之加入演进的软件成分。n无间
22、隙是指在各项开发活动,即分析、设计和编码无间隙是指在各项开发活动,即分析、设计和编码之间不存在明显的边界。之间不存在明显的边界。n喷泉模型是对象驱动的过程。喷泉模型是对象驱动的过程。第31页,此课件共65页哦需求阶段需求阶段分析阶段分析阶段设计阶段设计阶段编程阶段编程阶段集成与测试阶段集成与测试阶段维护与演进阶段维护与演进阶段第32页,此课件共65页哦变换模型变换模型n变换模型是一种基于形式化规格说明语言及程序变变换模型是一种基于形式化规格说明语言及程序变换的软件开发模型。换的软件开发模型。n它采用形式化的软件开发方法,对形式化的软件规格它采用形式化的软件开发方法,对形式化的软件规格说明进行一
23、系列自动的或半自动的程序变换,最终映说明进行一系列自动的或半自动的程序变换,最终映射成为计算机系统能够接受的程序系统。射成为计算机系统能够接受的程序系统。n多步程序变换过程的重要性质是:每一步程序变多步程序变换过程的重要性质是:每一步程序变换的正确性仅与该步变换所依据的规范换的正确性仅与该步变换所依据的规范 Mi 以及以及对变换后的假设对变换后的假设 Mi+1 有关。有关。第33页,此课件共65页哦软件需求软件需求形式化说形式化说明明(M0)软件设计软件设计形式化说形式化说明明(M1)(M2)(Mn)模型检查模型检查程序变换程序变换程序变换程序变换程序变换程序变换n在此意义上,变换步骤独立于其
24、他变换步骤。这称为在此意义上,变换步骤独立于其他变换步骤。这称为变换的独立性。变换的独立性。n该模型只适合于软件的形式化开发方法;需要严该模型只适合于软件的形式化开发方法;需要严格的数学理论和形式化技术支持;需要一整套开格的数学理论和形式化技术支持;需要一整套开发环境(如程序变换工具、定理证明工具等)的发环境(如程序变换工具、定理证明工具等)的支持。支持。第34页,此课件共65页哦基于第四代技术的模型基于第四代技术的模型n第四代语言第四代语言(4GL)是在大型数据库管理系统的基是在大型数据库管理系统的基础上发展起来的,是一种面向结果的非过程性语础上发展起来的,是一种面向结果的非过程性语言。它独
25、立于具体的处理机,有丰富的软件工具言。它独立于具体的处理机,有丰富的软件工具支持,能统一利用和管理各种数据资源并能适应支持,能统一利用和管理各种数据资源并能适应不同水平用户的需要。不同水平用户的需要。n以以4GL为核心的软件开发技术成为第四代技术为核心的软件开发技术成为第四代技术(4GT),采用,采用4GT的软件开发模型如图。的软件开发模型如图。n软件开发人员在定义软件需求,给出需求规格说软件开发人员在定义软件需求,给出需求规格说明之后,明之后,4GT工具可将该需求规格说明自动工具可将该需求规格说明自动第35页,此课件共65页哦转换为程序代码。这大大减少了分析、设计、编码转换为程序代码。这大大
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 概念 课件
限制150内