软件工程概念.ppt

上传人:石*** 文档编号:87200821 上传时间:2023-04-16 格式:PPT 页数:65 大小:3.33MB
返回 下载 相关 举报
软件工程概念.ppt_第1页
第1页 / 共65页
软件工程概念.ppt_第2页
第2页 / 共65页
点击查看更多>>
资源描述

《软件工程概念.ppt》由会员分享,可在线阅读,更多相关《软件工程概念.ppt(65页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

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 操

4、作系统操作系统p 数据库管理系统数据库管理系统p 设备驱动程序设备驱动程序p 通信处理程序等通信处理程序等u支撑软件支撑软件p文本编辑程序文本编辑程序p文件格式化程序文件格式化程序现在学习的是第7页,共65页p程序库系统程序库系统p支持需求分析、设计、实现、测试和支持管支持需求分析、设计、实现、测试和支持管理的软件理的软件u 应用软件应用软件p 商业数据处理软件商业数据处理软件p 工程与科学计算软件工程与科学计算软件p 计算机辅助设计制造软件计算机辅助设计制造软件p 智能产品嵌入软件智能产品嵌入软件p 事务管理、办公自动化软件事务管理、办公自动化软件p 计算机辅助教学软件计算机辅助教学软件现在

5、学习的是第8页,共65页n按软件规模进行划分:按软件规模进行划分:类别类别 参加人员数参加人员数 研制期限研制期限 源程序行数源程序行数 微型微型 1 14周周 0.5k 小型小型 1 16月月 1k2k 中型中型 25 12年年 5k50k 大型大型 520 23年年 50k100k 甚大型甚大型 1001000 45年年 1M(=1000k)极大型极大型 20005000 510年年 1M10M现在学习的是第9页,共65页n按软件工作方式划分:按软件工作方式划分:实时处理软件实时处理软件 分时软件分时软件 交互式软件交互式软件 批处理软件批处理软件n按软件服务对象的范围划分:按软件服务对象

6、的范围划分:u 项目软件项目软件u 产品软件产品软件现在学习的是第10页,共65页n按使用的频度进行划分:按使用的频度进行划分:一次使用一次使用 频繁使用频繁使用n按软件失效的影响进行划分:按软件失效的影响进行划分:u 高可靠性软件高可靠性软件u 一般可靠性软件一般可靠性软件现在学习的是第11页,共65页1.2 软件发展阶段软件发展阶段n程序设计阶段程序设计阶段 1950 至至 60 年代年代计算机软件发展的初期,其主要特征是程序生产方式计算机软件发展的初期,其主要特征是程序生产方式为个体手工方式。为个体手工方式。主要采用批处理技术,没有任何其它形式的文档主要采用批处理技术,没有任何其它形式的

7、文档资料保留下来,开发出的程序根本无法维护。资料保留下来,开发出的程序根本无法维护。n程序系统阶段程序系统阶段 60至至70年代年代程序的规模已经很大,需要多人分工协作,软件的开发程序的规模已经很大,需要多人分工协作,软件的开发方式由方式由“个体生产个体生产”发展到了发展到了“软件作坊软件作坊”。现在学习的是第12页,共65页“软件作坊软件作坊”基本上沿用了软件发展早期所形成的个体基本上沿用了软件发展早期所形成的个体化的开发方式,软件的开发与维护费用以惊人的速度增化的开发方式,软件的开发与维护费用以惊人的速度增加。许多软件产品根本不能维护,最终导致出现了严重加。许多软件产品根本不能维护,最终导

8、致出现了严重的的“软件危机软件危机”。n软件工程阶段软件工程阶段 70年代以后年代以后软件的开发以工程化的思想为指导,用工程化的原软件的开发以工程化的思想为指导,用工程化的原则、方法和标准来开发和维护软件。则、方法和标准来开发和维护软件。软件工程概念的出现源自软件危机。软件工程概念的出现源自软件危机。软件危机的主要特征软件危机的主要特征v 软件价格在整个项目投入中的比例不断升高软件价格在整个项目投入中的比例不断升高;现在学习的是第13页,共65页v 软件开发成本严重超标软件开发成本严重超标;v 软件开发周期大大超过规定日期软件开发周期大大超过规定日期;v 软件质量难于保证;软件质量难于保证;v

9、 软件修改、维护困难软件修改、维护困难;v 失败的根本原因在于:开发人员写出的东西失败的根本原因在于:开发人员写出的东西达不到用户要求达不到用户要求(人的问题、技术问题人的问题、技术问题)n为了解决软件危机,人们借鉴其他领域的经验和知识,为了解决软件危机,人们借鉴其他领域的经验和知识,从而认识到从而认识到“摆脱软件危机的出路在于软件开发的标摆脱软件危机的出路在于软件开发的标准化和工程化准化和工程化”,出现了,出现了“软件工程软件工程”的概念。的概念。现在学习的是第14页,共65页1968 年德国人年德国人 Bauer 在北大西洋公约组织会议上的定在北大西洋公约组织会议上的定义:义:建立并使用完

10、善的工程化原则建立并使用完善的工程化原则,以较经济的以较经济的手段获得能在实际机器上有效运行的可靠软件的手段获得能在实际机器上有效运行的可靠软件的一系列方法一系列方法。1983 年年 IEEE 的软件工程定义:的软件工程定义:软件工程是开发,软件工程是开发,运行运行,维护和修复软件的系统方法维护和修复软件的系统方法。1993 年年 IEEE 的一个更加综合的定义:的一个更加综合的定义:将系统化将系统化的,规范的,可度量的方法应用于软件的开发的,规范的,可度量的方法应用于软件的开发,运运行和维护的过程,即将工程化应用于软件中行和维护的过程,即将工程化应用于软件中。1.3 软件工程定义软件工程定义

11、现在学习的是第15页,共65页软件工程框架软件工程框架可可用用性性性性性性确确正正合合算算选取适宜的开发模型选取适宜的开发模型采用合适的设计方法采用合适的设计方法提供高质量的工程支持提供高质量的工程支持重视软件工程的管理重视软件工程的管理基基本本过过程程支支持持过过程程组组织织过过程程目标目标过程过程原原则则现在学习的是第16页,共65页n软件工程框架给出了软件工程三个主要方面。软件工程框架给出了软件工程三个主要方面。n软件工程目标软件工程目标包括可用性、正确性和合算性,规定包括可用性、正确性和合算性,规定了软件工程实践的结果(即软件)应具有的基本性了软件工程实践的结果(即软件)应具有的基本性

12、质;质;n软件工程过程软件工程过程包含的基本活动有需求、分析与设计、包含的基本活动有需求、分析与设计、实现、确认与测试、维护与支持;实现、确认与测试、维护与支持;n软件工程的四条原则软件工程的四条原则-采用适宜的开发模型,使用恰采用适宜的开发模型,使用恰当的开发方法,提供高质量的工程支持,实施有效当的开发方法,提供高质量的工程支持,实施有效的工程管理,从四个方面指导每一项工程的活动,的工程管理,从四个方面指导每一项工程的活动,以实现软件工程目标。以实现软件工程目标。现在学习的是第17页,共65页软件工程的知识结构软件工程的知识结构2001年年5月月ISO/IEC JTC 1发布了发布了 SWE

13、BOK指南指南V0.95(试用版)(试用版),即,即 Guide 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阶段间具有阶段间

17、具有顺序性顺序性和和依赖性依赖性。n推迟实现的观点。推迟实现的观点。n每个阶段必须完成规定的文档;每个阶段结束前每个阶段必须完成规定的文档;每个阶段结束前完成文档审查。完成文档审查。现在学习的是第22页,共65页需求定义需求定义系统与软件设计系统与软件设计集成与系统测试集成与系统测试实现与单元测试实现与单元测试运行与维护运行与维护现在学习的是第23页,共65页演化模型演化模型n演化模型是演化模型是迭代迭代的,软件必须经过不断的,软件必须经过不断演化演化才能完才能完善。善。n演化模型先开发一个演化模型先开发一个“原型原型”软件,完成部分主要软件,完成部分主要功能,展示给用户并征求意见,然后逐步完

18、善,最功能,展示给用户并征求意见,然后逐步完善,最终获得满意的软件产品。终获得满意的软件产品。n业务和产品需求在变化中,采用线性开发方式是业务和产品需求在变化中,采用线性开发方式是不实际的。不实际的。n快速实现和提交一个有限的版本,可以应付市场竞快速实现和提交一个有限的版本,可以应付市场竞争的压力。争的压力。现在学习的是第24页,共65页需求的采集需求的采集与细化与细化客户评价原型客户评价原型快速设计快速设计建造原型建造原型建造原型建造原型加工原型加工原型产生样品产生样品停止停止开始开始现在学习的是第25页,共65页螺旋模型螺旋模型n螺旋模型将瀑布模型与演化模型结合起来,并螺旋模型将瀑布模型与

19、演化模型结合起来,并且加入两种模型均忽略了的且加入两种模型均忽略了的风险分析风险分析。n螺旋模型沿着螺线旋转,自内向外每旋转一圈便螺旋模型沿着螺线旋转,自内向外每旋转一圈便开发出更完善的一个新版本。开发出更完善的一个新版本。制定计划制定计划 风险分析风险分析 实施工程实施工程 客户评估客户评估现在学习的是第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系统某个部分常常重复工作多次,相关对象在

22、每次系统某个部分常常重复工作多次,相关对象在每次迭代中随之加入演进的软件成分。迭代中随之加入演进的软件成分。n无间隙是指在各项开发活动,即分析、设计和编码无间隙是指在各项开发活动,即分析、设计和编码之间不存在明显的边界。之间不存在明显的边界。n喷泉模型是对象驱动的过程。喷泉模型是对象驱动的过程。现在学习的是第31页,共65页需求阶段需求阶段分析阶段分析阶段设计阶段设计阶段编程阶段编程阶段集成与测试阶段集成与测试阶段维护与演进阶段维护与演进阶段现在学习的是第32页,共65页变换模型变换模型n变换模型是一种基于形式化规格说明语言及程序变换模型是一种基于形式化规格说明语言及程序变换的软件开发模型。变

23、换的软件开发模型。n它采用形式化的软件开发方法,对形式化的软件规它采用形式化的软件开发方法,对形式化的软件规格说明进行一系列自动的或半自动的程序变换,最格说明进行一系列自动的或半自动的程序变换,最终映射成为计算机系统能够接受的程序系统。终映射成为计算机系统能够接受的程序系统。n多步程序变换过程的重要性质是:每一步程序变多步程序变换过程的重要性质是:每一步程序变换的正确性仅与该步变换所依据的规范换的正确性仅与该步变换所依据的规范 Mi 以及以及对变换后的假设对变换后的假设 Mi+1 有关。有关。现在学习的是第33页,共65页软件需求软件需求形式化说形式化说明明(M0)软件设计软件设计形式化说形式

24、化说明明(M1)(M2)(Mn)模型检查模型检查程序变换程序变换程序变换程序变换程序变换程序变换n在此意义上,变换步骤独立于其他变换步骤。这称为在此意义上,变换步骤独立于其他变换步骤。这称为变换的独立性。变换的独立性。n该模型只适合于软件的形式化开发方法;需要严该模型只适合于软件的形式化开发方法;需要严格的数学理论和形式化技术支持;需要一整套开格的数学理论和形式化技术支持;需要一整套开发环境(如程序变换工具、定理证明工具等)的发环境(如程序变换工具、定理证明工具等)的支持。支持。现在学习的是第34页,共65页基于第四代技术的模型基于第四代技术的模型n第四代语言第四代语言(4GL)是在大型数据库

25、管理系统的基础是在大型数据库管理系统的基础上发展起来的,是一种面向结果的非过程性语言。上发展起来的,是一种面向结果的非过程性语言。它独立于具体的处理机,有丰富的软件工具支持,它独立于具体的处理机,有丰富的软件工具支持,能统一利用和管理各种数据资源并能适应不同水能统一利用和管理各种数据资源并能适应不同水平用户的需要。平用户的需要。n以以4GL为核心的软件开发技术成为第四代技术为核心的软件开发技术成为第四代技术(4GT),采用,采用4GT的软件开发模型如图。的软件开发模型如图。n软件开发人员在定义软件需求,给出需求规格说软件开发人员在定义软件需求,给出需求规格说明之后,明之后,4GT工具可将该需求

26、规格说明自动工具可将该需求规格说明自动现在学习的是第35页,共65页转换为程序代码。这大大减少了分析、设计、编转换为程序代码。这大大减少了分析、设计、编码和测试的时间。码和测试的时间。n以以4GL为核心的软件开发技术成为第四代技术为核心的软件开发技术成为第四代技术(4GT),采用,采用4GT的软件开发模型如图。的软件开发模型如图。收集需求收集需求“设计设计”策略策略用用“4GL”实现实现测试测试现在学习的是第36页,共65页快速应用开发(快速应用开发(RAD)模型)模型n快速应用开发模型是一种增量开发模型,该模型开快速应用开发模型是一种增量开发模型,该模型开发软件大量使用了可复用的构件。发软件

27、大量使用了可复用的构件。n每一个增量的开发经历五个阶段:每一个增量的开发经历五个阶段:业务建模业务建模 对业务功能的信息流建模。对业务功能的信息流建模。数据建模数据建模 对业务的数据对象和关系建模。对业务的数据对象和关系建模。过程建模过程建模 描述完成业务功能的数据变换。描述完成业务功能的数据变换。应用生成应用生成 应用构件和自动化工具建造。应用构件和自动化工具建造。测试与反复测试与反复 对新构件和接口进行测试。对新构件和接口进行测试。现在学习的是第37页,共65页业务建模业务建模数据建模数据建模过程建模过程建模应用生成应用生成测试及反复测试及反复小组小组1#业务建模业务建模数据建模数据建模过

28、程建模过程建模应用生成应用生成测试及反复测试及反复小组小组2#2#业务建模业务建模数据建模数据建模过程建模过程建模应用生成应用生成测试及反复测试及反复小组小组3#3#6090天天现在学习的是第38页,共65页Rational统一开发过程统一开发过程1.最佳软件开发实践最佳软件开发实践 为了以一种更好的、迭代的、可预测的方式开发软件为了以一种更好的、迭代的、可预测的方式开发软件产品,总结了软件开发的最佳实践:产品,总结了软件开发的最佳实践:1)迭代式软件开发;迭代式软件开发;2)需求管理;需求管理;3)基于构件的软件体系结构;基于构件的软件体系结构;4)建立软件可视化模型;建立软件可视化模型;5

29、)不断验证软件质量;不断验证软件质量;6)控制变更。控制变更。现在学习的是第39页,共65页2.Rational统一开发过程统一开发过程 软件开发过程的作用是:软件开发过程的作用是:1)成为开发组活动顺序的向导。成为开发组活动顺序的向导。2)详细说明需要开发哪些制品,何时开发。详细说明需要开发哪些制品,何时开发。3)指导每一个成员及整个开发组的工作。指导每一个成员及整个开发组的工作。4)提供监控和度量项目产品和活动所依据的准则。提供监控和度量项目产品和活动所依据的准则。如果没有一个良好定义的过程,开发组将各行其是,如果没有一个良好定义的过程,开发组将各行其是,开发成功与否完全依赖个别优秀的人才

30、,这不是能开发成功与否完全依赖个别优秀的人才,这不是能够长久的。够长久的。现在学习的是第40页,共65页nRational统一开发过程(统一开发过程(RUP,Rational Unify Process)描述了如何在软件开发组织中严格分配任)描述了如何在软件开发组织中严格分配任务和职责的方法。务和职责的方法。nRUP 是一个过程产品,是一个过程产品,软件过程也是软件。软件过程也是软件。nRUP 采用二维的过程结构:采用二维的过程结构:横轴表明过程的生存周期,它反映了过程被横轴表明过程的生存周期,它反映了过程被激活时的动态情况,用周期、阶段、迭代和激活时的动态情况,用周期、阶段、迭代和里程碑表示

31、。里程碑表示。纵轴表明过程的静态状况,通过过程构件、纵轴表明过程的静态状况,通过过程构件、活动、工作流、制品和工作人员描述过程。活动、工作流、制品和工作人员描述过程。现在学习的是第41页,共65页初始初始细化细化构造构造移交移交阶阶 段段初始化初始化细化细化#1细化细化#2构造构造#1构造构造#2构造构造#3移交移交#1移交移交#2迭代迭代 工作流工作流业务建模业务建模需求需求 分析与设计分析与设计实现实现测试测试实施实施配置和变更管理配置和变更管理项目管理项目管理环境环境沿时间轴的组织结构沿时间轴的组织结构沿沿内内容容轴轴的的组组织织现在学习的是第42页,共65页3.过程的静态描述:过程模型

32、过程的静态描述:过程模型 过程模型中的主要模型元素有过程模型中的主要模型元素有 4 种:种:v工作人员:谁做(工作人员:谁做(Who)v活动:怎么做(活动:怎么做(How)v制品:做什么(制品:做什么(what)v工作流:何时做(工作流:何时做(when)1)过程的中心概念是工作人员,工作人员不是过程的中心概念是工作人员,工作人员不是指某一个人,而是指完成工作的角色。工作指某一个人,而是指完成工作的角色。工作人员定义人们应履行的行为和职责。人员定义人们应履行的行为和职责。现在学习的是第43页,共65页2)活动定义了工作人员所执行的工作。有活动定义了工作人员所执行的工作。有 3 类类步骤:步骤:

33、a)思考步骤思考步骤b)执行步骤执行步骤c)评审步骤评审步骤3)制品是过程生产、修改或使用的一些信息。制品是过程生产、修改或使用的一些信息。RUP 的制品分为的制品分为 5 个信息集。个信息集。a)管理集管理集:计划制品、操作制品:计划制品、操作制品b)需求集需求集:构想文档、项目相关人员需求、用:构想文档、项目相关人员需求、用例模型和业务模型例模型和业务模型现在学习的是第44页,共65页c)设计集设计集:设计模型、软件体系结构描述、:设计模型、软件体系结构描述、测试模型测试模型d)实现集实现集:源代码和可执行程序、相关数据结:源代码和可执行程序、相关数据结构和数据文档构和数据文档e)实施集实

34、施集:安装资料、用户文档、培训材料:安装资料、用户文档、培训材料4)工作流用来描述生成结果的活动序列,用工作流用来描述生成结果的活动序列,用以描述工作人员之间的交互。在以描述工作人员之间的交互。在 RUP 中共中共有有 9 个核心过程工作流,包括个核心过程工作流,包括 6 个核心工个核心工程工作流和程工作流和 3 个核心支持工作流。个核心支持工作流。现在学习的是第45页,共65页a)业务建模工作流业务建模工作流:描述业务过程的本质和执行:描述业务过程的本质和执行情形。情形。b)需求工作流需求工作流:定义系统构想,使用用例模型和:定义系统构想,使用用例模型和补充规格说明定义系统软件需求,管理系统

35、范补充规格说明定义系统软件需求,管理系统范围和需求变更。围和需求变更。c)分析和设计工作流分析和设计工作流:研究实现环境和系统构:研究实现环境和系统构件的效用,定义软件的组织结构,把需求获件的效用,定义软件的组织结构,把需求获取结果转化为实现规格。取结果转化为实现规格。d)实现工作流实现工作流:建立代码的分层结构,实现类和建立代码的分层结构,实现类和对象,进行单元测试和系统集成。对象,进行单元测试和系统集成。现在学习的是第46页,共65页e)测试工作流测试工作流:根据事先定义的度量和准则检查根据事先定义的度量和准则检查产品,确认产品是否满足或者超出事先定义产品,确认产品是否满足或者超出事先定义

36、并被一致接受的需求。并被一致接受的需求。f)实施工作流实施工作流:在实际使用环境中测试软件、在实际使用环境中测试软件、包装要交付的软件、发布软件产品、培训包装要交付的软件、发布软件产品、培训最终用户及销售人员。最终用户及销售人员。n核心支持工作流有核心支持工作流有a)项目管理工作流项目管理工作流b)配置和变更管理工作流配置和变更管理工作流c)环境环境工作流工作流现在学习的是第47页,共65页4.过程的动态描述:迭代开发过程的动态描述:迭代开发将一个大项目分解为可连续应用瀑布模型将一个大项目分解为可连续应用瀑布模型的几个小部分。在对一部分进行分析、设的几个小部分。在对一部分进行分析、设计、实现并

37、确认后,再对下一部分进行分计、实现并确认后,再对下一部分进行分析、设计、实现和确认。以此进行下去,析、设计、实现和确认。以此进行下去,直到整个项目完成。在直到整个项目完成。在 RUP 中,迭代过程中,迭代过程分为几个阶段。分为几个阶段。初始初始细化细化构造构造移交移交生存周期生存周期构架里程碑构架里程碑生存周期生存周期目标里程碑目标里程碑最初运行最初运行能力里程碑能力里程碑产品发布产品发布里程碑里程碑时间时间现在学习的是第48页,共65页1)初始阶段初始阶段:确定最终产品的构想及其用例,定义项:确定最终产品的构想及其用例,定义项目范围。目范围。2)细化阶段细化阶段:计划需完成活动和资源,详细说

38、明产:计划需完成活动和资源,详细说明产品特性并设计软件体系结构。品特性并设计软件体系结构。3)构造阶段构造阶段:构造整个产品,逐步完善软件体系:构造整个产品,逐步完善软件体系结构和计划,直到产品(完整的构想)已完全结构和计划,直到产品(完整的构想)已完全准备好交付给用户。准备好交付给用户。4)移交阶段移交阶段:移交产品给用户,包括制造,交付,:移交产品给用户,包括制造,交付,培训,支持及维护产品。培训,支持及维护产品。现在学习的是第49页,共65页n这这 4 个阶段构成开发周期,周期结束时产生一代个阶段构成开发周期,周期结束时产生一代新的软件产品。新的软件产品。n软件产品产生于初始开发周期,随

39、着重复执行同软件产品产生于初始开发周期,随着重复执行同样的过程,软件发展到下一代产品,这一时期即样的过程,软件发展到下一代产品,这一时期即为软件的进化周期。为软件的进化周期。I E C TI E C TI E C TV1V2V3初始开发周期初始开发周期进化周期进化周期现在学习的是第50页,共65页5.Rational统一过程的特点:统一过程的特点:v用例驱动的、以体系结构(架构)为中心的、用例驱动的、以体系结构(架构)为中心的、迭代和增量的过程。迭代和增量的过程。v用例建模技术可以用为大多数项目相关人员用例建模技术可以用为大多数项目相关人员理解的形式来表述问题。理解的形式来表述问题。参与者(参

40、与者(Actor)用例(用例(Use Case)场景场景(scenario)事件流(事件流(event flow)Actoruse case现在学习的是第51页,共65页n用例和参与者的事例用例和参与者的事例 银行储户通过自动取款机(自动柜员机)提款,转银行储户通过自动取款机(自动柜员机)提款,转账或检查账户余额。用一组用例表达如下:账或检查账户余额。用一组用例表达如下:转账转账提款提款检察账户余额检察账户余额储户储户现在学习的是第52页,共65页n用例模型用例模型将整个系统或子系统的所有用例,以及与将整个系统或子系统的所有用例,以及与之交互的参与者集合起来构成系统的用例之交互的参与者集合起来

41、构成系统的用例模型。模型。用例模型给出系统预期功能模型和系统上用例模型给出系统预期功能模型和系统上下文环境模型,它成为开发人员和用户之下文环境模型,它成为开发人员和用户之间的契约。间的契约。用例模型的目的是确保系统能处理所有的用例模型的目的是确保系统能处理所有的功能性需求。功能性需求。现在学习的是第53页,共65页n用例驱动的过程用例驱动的过程“用例驱动用例驱动”指开发过程是基于用例,从指开发过程是基于用例,从一个工作流向下一个工作流,逐步前进的。一个工作流向下一个工作流,逐步前进的。开发初期,人们使用用例获取用户需求,建开发初期,人们使用用例获取用户需求,建立用例模型,描述系统的全部功能。立

42、用例模型,描述系统的全部功能。基于用例模型,人们创建一系列实现这些用基于用例模型,人们创建一系列实现这些用例的分析模型、设计模型和实现模型。例的分析模型、设计模型和实现模型。测试人员测试实现确保系统正确实现了用例。测试人员测试实现确保系统正确实现了用例。现在学习的是第54页,共65页n以体系结构为中心的过程以体系结构为中心的过程用例的选择不是孤立的,它与软件的体系结构用例的选择不是孤立的,它与软件的体系结构是密切相关的。是密切相关的。软件体系结构的作用与一个建筑的体系结构类似。软件体系结构的作用与一个建筑的体系结构类似。对于一个建筑,可以从框架结构、供热、上下水、对于一个建筑,可以从框架结构、

43、供热、上下水、供电、天然气、其他服务管线等不同角度来考察供电、天然气、其他服务管线等不同角度来考察它。使得施工人员在施工前就能全面了解这个建它。使得施工人员在施工前就能全面了解这个建筑。筑。软件的体系结构也从不同角度描述了即将构造软件的体系结构也从不同角度描述了即将构造的系统,包括系统的的系统,包括系统的静态特征静态特征和和动态特征动态特征。现在学习的是第55页,共65页每一种产品都有功能和表现形式两个方面。每一种产品都有功能和表现形式两个方面。用例就是功能用例就是功能,体系结构就是表现形式体系结构就是表现形式。在开发过程中,必须兼顾功能和表现形式,在开发过程中,必须兼顾功能和表现形式,做出适

44、当权衡,才能得到好的产品。因此,做出适当权衡,才能得到好的产品。因此,用例和体系结构必须在迭代中并行演进用例和体系结构必须在迭代中并行演进。为了找到可以演进的体系结构,设计师必须为了找到可以演进的体系结构,设计师必须从全面了解系统的主要功能(即主要用例)从全面了解系统的主要功能(即主要用例)入手。入手。现在学习的是第56页,共65页1.5 软件开发范型软件开发范型(Paradigm)n范范型型又又称称为为风风范范。通通常常认认为为范范型型就就是是开开发发模模型型(Model)或或 开开 发发 模模 式式(Pattern),实实 际际 上上 它它 与与 方方 法法(Methodology)一一样

45、样,都都被被视视为为一一种种开开发发技技术术。范范型型支配了设计方法、编码语言、测试和检验技术的选择。支配了设计方法、编码语言、测试和检验技术的选择。n过过程程性性范范型型把把软软件件视视为为处处理理流流,定定义义成成由由一一系系列列步步骤骤构构成成的的算算法法。每每一一步步骤骤都都是是带带有有输输入入和和输输出出的的一一个个过过程程,把把这这些些步步骤骤串串联联在在一一起起可可产产生生贯贯通通于整个程序的控制流。于整个程序的控制流。现在学习的是第57页,共65页n面面向向对对象象范范型型把把标标识识和和模模型型化化问问题题领领域域中中的的实实体体做做为为系系统统开开发发的的起起点点,面面向向

46、对对象象系系统统中中的的对对象象是是数数据据抽抽象象与过程抽象的综合。与过程抽象的综合。n逻逻辑辑性性范范型型是是基基于于规规则则的的,它它把把有有关关问问题题的的知知识识分解成一组具体规则分解成一组具体规则(如如prolog语言语言)。n面面向向进进程程范范型型把把一一个个问问题题分分解解成成独独立立执执行行的的模模块块。让让不不只只一一个个程程序序同同时时运运行行。这这些些进进程程互互相相配配合合,解决问题。解决问题。n面面向向存存取取范范型型是是一一种种在在构构造造用用户户界界面面方方面面很很有有用用的技术。的技术。现在学习的是第58页,共65页n函函数数型型范范型型是是基基于于规规则则

47、的的,它它把把有有关关问问题题的的知知识识分分解解成成一一组组具具体体规规则则,用用语语言言的的“if_then”等等结结构构来来表示这些规则。表示这些规则。n说明性范型说明性范型。n每种开发范型都有它的支持者和用户:每种开发范型都有它的支持者和用户:每种开发范型都特别适合于某种类型的问每种开发范型都特别适合于某种类型的问题或子问题;题或子问题;每种开发范型都用不同的方式考虑问题;每种开发范型都用不同的方式考虑问题;每种开发范型都使用不同的方法来分解问每种开发范型都使用不同的方法来分解问题题现在学习的是第59页,共65页每种开发范型都导致不同种类的块、过程、每种开发范型都导致不同种类的块、过程

48、、产生规则。产生规则。n系统开发时通常把大型问题分解成一组子问题。对于系统开发时通常把大型问题分解成一组子问题。对于每个子问题采用适当的软件开发范型。每个子问题采用适当的软件开发范型。现在学习的是第60页,共65页n软件工程原则有:软件工程原则有:1)抽象与自顶向下、逐层细化抽象与自顶向下、逐层细化 采用分层抽象采用分层抽象的方法,有效控制软件开发的复杂性。的方法,有效控制软件开发的复杂性。2)模块化模块化 把问题分解为若干较小的较易解决把问题分解为若干较小的较易解决的模块,有助于信息隐蔽和抽象。的模块,有助于信息隐蔽和抽象。3)信息隐蔽和数据封装信息隐蔽和数据封装 将模块中的软件设计将模块中

49、的软件设计决策封装在模块内部,使得模块实现与使用决策封装在模块内部,使得模块实现与使用分离,有助于控制修改局部化。抽象与自顶分离,有助于控制修改局部化。抽象与自顶向下、逐层细化向下、逐层细化1.6 软件工程原则软件工程原则现在学习的是第61页,共65页4)局部化局部化 在一个物理模块内集中逻辑上相互关在一个物理模块内集中逻辑上相互关联的计算机资源,促使聚合具有特定目的的联的计算机资源,促使聚合具有特定目的的事物。事物。5)一致性一致性 整个软件系统的模块使用一致的设计整个软件系统的模块使用一致的设计策略、编程风格,保持程序内部接口的一致策略、编程风格,保持程序内部接口的一致性、软件与硬件接口的

50、一致性、系统规格说性、软件与硬件接口的一致性、系统规格说明与系统行为的一致性。明与系统行为的一致性。6)完备性完备性 软件系统中不丢失任何成分。软件系统中不丢失任何成分。7)可验证性可验证性 系统分解应当遵循易检查、易测试系统分解应当遵循易检查、易测试和易评审的原则,以保证系统的正确性。和易评审的原则,以保证系统的正确性。现在学习的是第62页,共65页n软件工程的基本原理有:软件工程的基本原理有:1)按软件生存期分阶段制定计划并认真实施按软件生存期分阶段制定计划并认真实施 把整个软件开发过程视为一项工程,把工程把整个软件开发过程视为一项工程,把工程划分为若干阶段,分别制定每个阶段的计划,划分为

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁