![软件工程第一章课件_第1页](http://file3.renrendoc.com/fileroot_temp3/2021-12/16/9eff37b1-9914-461f-a254-3bbe43073a4c/9eff37b1-9914-461f-a254-3bbe43073a4c1.gif)
![软件工程第一章课件_第2页](http://file3.renrendoc.com/fileroot_temp3/2021-12/16/9eff37b1-9914-461f-a254-3bbe43073a4c/9eff37b1-9914-461f-a254-3bbe43073a4c2.gif)
![软件工程第一章课件_第3页](http://file3.renrendoc.com/fileroot_temp3/2021-12/16/9eff37b1-9914-461f-a254-3bbe43073a4c/9eff37b1-9914-461f-a254-3bbe43073a4c3.gif)
![软件工程第一章课件_第4页](http://file3.renrendoc.com/fileroot_temp3/2021-12/16/9eff37b1-9914-461f-a254-3bbe43073a4c/9eff37b1-9914-461f-a254-3bbe43073a4c4.gif)
![软件工程第一章课件_第5页](http://file3.renrendoc.com/fileroot_temp3/2021-12/16/9eff37b1-9914-461f-a254-3bbe43073a4c/9eff37b1-9914-461f-a254-3bbe43073a4c5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1第一章第一章 软件工程概念软件工程概念软件工程课件软件工程课件软件工程软件工程2 2软件工程软件工程授课老师:清华大学计算机系授课老师:清华大学计算机系 殷人昆殷人昆 软件工程软件工程3 3提示:设计与建模要点提示:设计与建模要点1. 结构化分析建模:数据流图、实体关系图、状结构化分析建模:数据流图、实体关系图、状态迁移图、数据字典态迁移图、数据字典2. 结构化设计建模:数据流图转换为系统结构图结构化设计建模:数据流图转换为系统结构图3. 结构化程序设计:程序流程图、结构化程序设计:程序流程图、N-S图、图、PAD4. 程序环路复杂性计算程序环路复杂性计算5. 测试用例设计:逻辑覆盖、循环测
2、试、基本路测试用例设计:逻辑覆盖、循环测试、基本路径覆盖、因果图径覆盖、因果图6. 可靠性分析:估算测试前程序中潜在错误可靠性分析:估算测试前程序中潜在错误7. OMT建模:对象模型、动态模型(状态图、事建模:对象模型、动态模型(状态图、事件追踪图)件追踪图)8. UML建模:用例图、类图、顺序图、活动图建模:用例图、类图、顺序图、活动图软件工程软件工程4 4第一章第一章 软件工程概念软件工程概念1.1 软件的定义与分类软件的定义与分类1.2 软件的发展软件的发展1.3 软件工程定义软件工程定义1.4 软件工程过程与软件生存周期模型软件工程过程与软件生存周期模型1.5 软件开发范型软件开发范型
3、1.6 软件工程原理和原则软件工程原理和原则软件工程软件工程5 51.1 软件的定义与分类软件的定义与分类n软件的定义:软件由计算机程序、数据及文软件的定义:软件由计算机程序、数据及文档组成。档组成。u程序程序是按事先设计的功能和性能要求执行是按事先设计的功能和性能要求执行的指令序列的指令序列u数据数据是使程序能正常操纵信息的数据结构是使程序能正常操纵信息的数据结构u文档文档是与程序开发,维护和使用有关的图是与程序开发,维护和使用有关的图文材料文材料n软件与硬件、数据库、人、过程等共同构成软件与硬件、数据库、人、过程等共同构成计算机系统。计算机系统。软件工程软件工程6 6软件的特点软件的特点n
4、软件是一种逻辑实体,而不是具体的物理实体。软件是一种逻辑实体,而不是具体的物理实体。因而它具有抽象性因而它具有抽象性n软件的生产与硬件不同,在它的开发过程中没软件的生产与硬件不同,在它的开发过程中没有明显的制造过程有明显的制造过程n在软件的运行和使用期间,没有硬件那样的机在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题械磨损,老化问题n软件的开发和运行常受到计算机系统的限制,软件的开发和运行常受到计算机系统的限制,对计算机系统有着不同程度的依赖性对计算机系统有着不同程度的依赖性软件工程软件工程7 7n软件的开发至今尚未完全摆脱手工艺的开发方软件的开发至今尚未完全摆脱手工艺的开发方式式n
5、软件本身是复杂的软件本身是复杂的u实际问题的复杂性实际问题的复杂性u程序逻辑结构的复杂性程序逻辑结构的复杂性 n软件成本相当昂贵软件成本相当昂贵n相当多的软件工作涉及到社会因素相当多的软件工作涉及到社会因素软件工程软件工程8 8软件的分类软件的分类n按软件的功能进行划分:按软件的功能进行划分:u 系统软件系统软件p 操作系统操作系统p 数据库管理系统数据库管理系统p 设备驱动程序设备驱动程序p 通信处理程序等通信处理程序等u支撑软件支撑软件p文本编辑程序文本编辑程序p文件格式化程序文件格式化程序软件工程软件工程9 9p程序库系统程序库系统p支持需求分析、设计、实现、测试和支支持需求分析、设计、
6、实现、测试和支持管理的软件持管理的软件u 应用软件应用软件p 商业数据处理软件商业数据处理软件p 工程与科学计算软件工程与科学计算软件p 计算机辅助设计制造软件计算机辅助设计制造软件p 智能产品嵌入软件智能产品嵌入软件p 事务管理、办公自动化软件事务管理、办公自动化软件p 计算机辅助教学软件计算机辅助教学软件软件工程软件工程1010n按软件规模进行划分:按软件规模进行划分: 类别类别 参加人员数参加人员数 研制期限研制期限 源程序行数源程序行数 微型微型 1 14周周 0.5k 小型小型 1 16月月 1k2k 中型中型 25 12年年 5k50k 大型大型 520 23年年 50k100k
7、甚大型甚大型 1001000 45年年 1M(=1000k) 极大型极大型 20005000 510年年 1M10M软件工程软件工程11 11n按软件工作方式划分:按软件工作方式划分:u 实时处理软件实时处理软件u 分时软件分时软件u 交互式软件交互式软件u 批处理软件批处理软件n按软件服务对象的范围划分:按软件服务对象的范围划分:u 项目软件项目软件u 产品软件产品软件软件工程软件工程1212n按使用的频度进行划分:按使用的频度进行划分:u 一次使用一次使用u 频繁使用频繁使用n按软件失效的影响进行划分:按软件失效的影响进行划分:u 高可靠性软件高可靠性软件u 一般可靠性软件一般可靠性软件软
8、件工程软件工程13131.2 软件发展阶段软件发展阶段n程序设计阶段程序设计阶段 1950 至至 60 年代年代计算机软件发展的初期,其主要特征是程序生计算机软件发展的初期,其主要特征是程序生产方式为个体手工方式。产方式为个体手工方式。 主要采用批处理技术,没有任何其它形式的文主要采用批处理技术,没有任何其它形式的文档资料保留下来,开发出的程序根本无法维护。档资料保留下来,开发出的程序根本无法维护。n程序系统阶段程序系统阶段 60至至70年代年代程序的规模已经很大,需要多人分工协作,软程序的规模已经很大,需要多人分工协作,软件的开发方式由件的开发方式由“个体生产个体生产”发展到了发展到了“软件
9、软件作坊作坊”。软件工程软件工程1414 “软件作坊软件作坊”基本上沿用了软件发展早期所形成基本上沿用了软件发展早期所形成的个体化的开发方式,软件的开发与维护费用以的个体化的开发方式,软件的开发与维护费用以惊人的速度增加。许多软件产品根本不能维护,惊人的速度增加。许多软件产品根本不能维护,最终导致出现了严重的最终导致出现了严重的“软件危机软件危机”。n软件工程阶段软件工程阶段 70年代以后年代以后软件的开发以工程化的思想为指导,用工程化的软件的开发以工程化的思想为指导,用工程化的原则、方法和标准来开发和维护软件。原则、方法和标准来开发和维护软件。软件工程概念的出现源自软件危机。软件工程概念的出
10、现源自软件危机。软件危机的主要特征软件危机的主要特征v 软件价格在整个项目投入中的比例不断升高软件价格在整个项目投入中的比例不断升高; 软件工程软件工程v 软件开发成本严重超标软件开发成本严重超标;v 软件开发周期大大超过规定日期软件开发周期大大超过规定日期;v 软件质量难于保证;软件质量难于保证;v 软件修改、维护困难软件修改、维护困难;v 失败的根本原因在于:开发人员写出的东西失败的根本原因在于:开发人员写出的东西达不到用户要求达不到用户要求 (人的问题、技术问题人的问题、技术问题)n为了解决软件危机,人们借鉴其他领域的经验为了解决软件危机,人们借鉴其他领域的经验和知识,从而认识到和知识,
11、从而认识到“摆脱软件危机的出路在摆脱软件危机的出路在于软件开发的标准化和工程化于软件开发的标准化和工程化”,出现了,出现了“软软件工程件工程”的概念。的概念。软件工程软件工程1616软件工程软件工程1717软件工程软件工程1818软件工程软件工程1919 1968 年德国人年德国人 Bauer 在北大西洋公约组织会在北大西洋公约组织会议上的定义:议上的定义: 建立并使用完善的工程化原则建立并使用完善的工程化原则 , 以较经济的手段获得能在实际机器上有效运行以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法的可靠软件的一系列方法。 1983 年年 IEEE 的软件工程定义:的软件工程
12、定义: 软件工程是软件工程是开发,运行开发,运行 , 维护和修复软件的系统方法维护和修复软件的系统方法。 1993 年年 IEEE 的一个更加综合的定义:的一个更加综合的定义: 将系将系统化的,规范的,可度量的方法应用于软件的统化的,规范的,可度量的方法应用于软件的开发开发 , 运行和维护的过程,即将工程化应用于运行和维护的过程,即将工程化应用于软件中软件中。1.3 软件工程定义软件工程定义软件工程软件工程2020软件工程框架软件工程框架可可用用性性性性性性确确正正合合算算选取适宜的开发模型选取适宜的开发模型采用合适的设计方法采用合适的设计方法提供高质量的工程支持提供高质量的工程支持重视软件工
13、程的管理重视软件工程的管理基基本本过过程程支支持持过过程程组组织织过过程程目标目标过程过程原原则则软件工程软件工程2121n软件工程框架给出了软件工程三个主要方面。软件工程框架给出了软件工程三个主要方面。n软件工程目标软件工程目标包括可用性、正确性和合算性,包括可用性、正确性和合算性,规定了软件工程实践的结果(即软件)应具有的规定了软件工程实践的结果(即软件)应具有的基本性质;基本性质;n软件工程过程软件工程过程包含的基本活动有需求、分析与包含的基本活动有需求、分析与设计、实现、确认与测试、维护与支持;设计、实现、确认与测试、维护与支持;n软件工程的四条原则软件工程的四条原则-采用适宜的开发模
14、型,使采用适宜的开发模型,使用恰当的开发方法,提供高质量的工程支持,实用恰当的开发方法,提供高质量的工程支持,实施有效的工程管理,从四个方面指导每一项工程施有效的工程管理,从四个方面指导每一项工程的活动,以实现软件工程目标。的活动,以实现软件工程目标。软件工程软件工程2222软件工程的知识结构软件工程的知识结构 2001年年5月月ISO/IEC JTC 1发布了发布了 SWEBOK指指南南V0.95(试用版)(试用版),即,即 Guide to the Software Engineering Body of Knowledge。 SWEBOK把软件工程学科的主体知识分为把软件工程学科的主体知
15、识分为10个个知识领域。这知识领域。这10个领域包括:个领域包括: 软件需求软件需求 软件设计软件设计 软件构造软件构造 软件测试软件测试 软件维护软件维护 软件配置管理软件配置管理 软件工程管理软件工程管理 软件工程过程软件工程过程 软件工程工具和方法软件工程工具和方法 软件质量软件质量软件工程软件工程2323软件工程软件工程2424软件工程软件工程2525nISO 9000定义:定义:软件工程过程是把输入转化为软件工程过程是把输入转化为输出的一组彼此相关的资源和活动输出的一组彼此相关的资源和活动。n从软件开发的观点看,它就是使用适当的资源从软件开发的观点看,它就是使用适当的资源(包括人员、
16、硬软件工具、时间等),为开发(包括人员、硬软件工具、时间等),为开发软件进行的一组开发活动,在过程结束时将输软件进行的一组开发活动,在过程结束时将输入(用户要求)转化为输出(软件产品)。入(用户要求)转化为输出(软件产品)。1.4 软件工程过程与软件生存周期软件工程过程与软件生存周期软件工程软件工程2626n软件工程过程定义了软件工程过程定义了: 方法使用的顺序、要求方法使用的顺序、要求交付的文档资料、为保证质量和适应变化所需交付的文档资料、为保证质量和适应变化所需要的管理、软件开发各个阶段完成的里程碑。要的管理、软件开发各个阶段完成的里程碑。n软件工程过程包含四种基本的过程活动:软件工程过程
17、包含四种基本的过程活动:v plan : 软件规格说明软件规格说明v do : 软件开发软件开发v check : 软件确认软件确认v action : 软件演进软件演进软件工程软件工程2727n软件生存周期包含三个阶段:软件定义、软件软件生存周期包含三个阶段:软件定义、软件开发及软件运行维护。开发及软件运行维护。n软件生存周期模型是软件工程思想的具体化,软件生存周期模型是软件工程思想的具体化,是跨越软件生存周期的系统开发、运行、维护是跨越软件生存周期的系统开发、运行、维护所实施的全部活动和任务的过程框架。所实施的全部活动和任务的过程框架。n常用的软件生存周期模型有瀑布模型,演化模常用的软件生
18、存周期模型有瀑布模型,演化模型,螺旋模型,增量模型,喷泉模型,快速应型,螺旋模型,增量模型,喷泉模型,快速应用开发(用开发( RAD )模型。)模型。软件工程软件工程2828瀑布模型瀑布模型n各项活动按自上而下,相互衔接的固定次序,各项活动按自上而下,相互衔接的固定次序,如同瀑布逐级下落,每项活动均处于一个质如同瀑布逐级下落,每项活动均处于一个质量环(输入量环(输入- -处理处理- -输出输出- -评审)中。评审)中。n阶段间具有阶段间具有顺序性顺序性和和依赖性依赖性。n推迟实现的观点。推迟实现的观点。n每个阶段必须完成规定的文档;每个阶段结每个阶段必须完成规定的文档;每个阶段结束前完成文档审
19、查。束前完成文档审查。软件工程软件工程2929需求定义需求定义系统与软件设计系统与软件设计集成与系统测试集成与系统测试实现与单元测试实现与单元测试运行与维护运行与维护软件工程软件工程3030演化模型演化模型n演化模型是演化模型是迭代迭代的,软件必须经过不断的,软件必须经过不断演化演化才才能完善。能完善。n演化模型先开发一个演化模型先开发一个“原型原型”软件,完成部分软件,完成部分主要功能,展示给用户并征求意见,然后逐步主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的软件产品。完善,最终获得满意的软件产品。n业务和产品需求在变化中,采用线性开发方式业务和产品需求在变化中,采用线性开发
20、方式是不实际的。是不实际的。n快速实现和提交一个有限的版本,可以应付市快速实现和提交一个有限的版本,可以应付市场竞争的压力。场竞争的压力。软件工程软件工程3131需求的采集需求的采集与细化与细化客户评价原型客户评价原型快速设计快速设计加工原型加工原型产生样品产生样品停止停止开始开始软件工程软件工程3232螺旋模型螺旋模型n螺旋模型将瀑布模型与演化模型结合起来,螺旋模型将瀑布模型与演化模型结合起来,并且加入两种模型均忽略了的并且加入两种模型均忽略了的风险分析风险分析。n螺旋模型沿着螺线旋转,自内向外每旋转一螺旋模型沿着螺线旋转,自内向外每旋转一圈便开发出更完善的一个新版本。圈便开发出更完善的一个
21、新版本。 制定计划制定计划 风险分析风险分析 实施工程实施工程 客户评估客户评估软件工程软件工程3333决定目标、决定目标、方案和限制方案和限制评价方案评价方案识别风险识别风险弱化风险弱化风险 开发、验证、开发、验证、下一级产品下一级产品 计划下一阶段计划下一阶段集成测试软件工程软件工程3434增量模型增量模型n增量模型是增量模型是迭代迭代和和演进演进的过程。的过程。n增量模型把软件产品分解成一系列的增量构件,增量模型把软件产品分解成一系列的增量构件,在增量开发迭代中逐步加入。在增量开发迭代中逐步加入。n每个构件由多个相互作用的模块构成,并且能每个构件由多个相互作用的模块构成,并且能够完成特定
22、的功能。够完成特定的功能。n早先完成的增量可以为后期的增量提供服务。早先完成的增量可以为后期的增量提供服务。n增量开发方法的新演进版本叫做增量开发方法的新演进版本叫做 极限程序设极限程序设计(计(eXtreme Programming) 。软件工程软件工程3535定义基定义基本需求本需求将需求将需求对应到对应到各增量各增量设计系设计系统架构统架构开发其开发其中一个中一个增量增量检验和检验和确认该确认该增量增量将增量将增量集成到集成到系统中系统中确认集确认集成后的成后的系统系统软件工程软件工程3636日历时间日历时间分析分析 增量增量1 增量增量1交付交付设计设计 编码编码 测试测试 分析分析
23、增量增量2 增量增量2交付交付设计设计 编码编码 测试测试 分析分析 增量增量3 增量增量3交付交付设计设计 编码编码 测试测试 分析分析 增量增量4 增量增量4交付交付设计设计 编码编码 测试测试 系统和信息工程系统和信息工程软件工程软件工程3737喷泉模型喷泉模型n体现了体现了迭代迭代和和无间隙无间隙的特性。的特性。n系统某个部分常常重复工作多次,相关对象在系统某个部分常常重复工作多次,相关对象在每次迭代中随之加入演进的软件成分。每次迭代中随之加入演进的软件成分。n无间隙是指在各项开发活动,即分析、设计和无间隙是指在各项开发活动,即分析、设计和编码之间不存在明显的边界。编码之间不存在明显的
24、边界。n喷泉模型是对象驱动的过程。喷泉模型是对象驱动的过程。软件工程软件工程3838需求阶段需求阶段分析阶段分析阶段设计阶段设计阶段编程阶段编程阶段集成与测试阶段集成与测试阶段维护与演进阶段维护与演进阶段软件工程软件工程3939变换模型变换模型n变换模型是一种基于形式化规格说明语言及程变换模型是一种基于形式化规格说明语言及程序变换的软件开发模型。序变换的软件开发模型。n它采用形式化的软件开发方法,对形式化的软它采用形式化的软件开发方法,对形式化的软件规格说明进行一系列自动的或半自动的程序件规格说明进行一系列自动的或半自动的程序变换,最终映射成为计算机系统能够接受的程变换,最终映射成为计算机系统
25、能够接受的程序系统。序系统。n多步程序变换过程的重要性质是:每一步程序多步程序变换过程的重要性质是:每一步程序变换的正确性仅与该步变换所依据的规范变换的正确性仅与该步变换所依据的规范 Mi 以及对变换后的假设以及对变换后的假设 Mi+1 有关。有关。软件工程软件工程4040软件需求软件需求形式化说形式化说明明 (M0)软件设计软件设计形式化说形式化说明明 (M1)(M2)(Mn)模型检查模型检查程序变换程序变换程序变换程序变换程序变换程序变换n在此意义上,变换步骤独立于其他变换步骤。在此意义上,变换步骤独立于其他变换步骤。这称为变换的独立性。这称为变换的独立性。n该模型只适合于软件的形式化开发
26、方法;需要该模型只适合于软件的形式化开发方法;需要严格的数学理论和形式化技术支持;需要一整严格的数学理论和形式化技术支持;需要一整套开发环境(如程序变换工具、定理证明工具套开发环境(如程序变换工具、定理证明工具等)的支持。等)的支持。 软件工程软件工程4141基于第四代技术的模型基于第四代技术的模型n第四代语言第四代语言 (4GL) 是在大型数据库管理系统的是在大型数据库管理系统的基础上发展起来的,是一种面向结果的非过程基础上发展起来的,是一种面向结果的非过程性语言。它独立于具体的处理机,有丰富的软性语言。它独立于具体的处理机,有丰富的软件工具支持,能统一利用和管理各种数据资源件工具支持,能统
27、一利用和管理各种数据资源并能适应不同水平用户的需要。并能适应不同水平用户的需要。n以以4GL为核心的软件开发技术成为第四代技术为核心的软件开发技术成为第四代技术(4GT),采用,采用4GT的软件开发模型如图。的软件开发模型如图。n软件开发人员在定义软件需求,给出需求规格软件开发人员在定义软件需求,给出需求规格说明之后,说明之后,4GT工具可将该需求规格说明自动工具可将该需求规格说明自动软件工程软件工程4242转换为程序代码。这大大减少了分析、设计、转换为程序代码。这大大减少了分析、设计、编码和测试的时间。编码和测试的时间。n以以4GL为核心的软件开发技术成为第四代技术为核心的软件开发技术成为第
28、四代技术(4GT),采用,采用4GT的软件开发模型如图。的软件开发模型如图。收集需求收集需求“设计设计”策略策略用用“4GL”实现实现测试测试软件工程软件工程4343快速应用开发(快速应用开发( RAD )模型)模型n快速应用开发模型是一种增量开发模型,该快速应用开发模型是一种增量开发模型,该模型开发软件大量使用了可复用的构件。模型开发软件大量使用了可复用的构件。n每一个增量的开发经历五个阶段:每一个增量的开发经历五个阶段: 业务建模业务建模 对业务功能的信息流建模。对业务功能的信息流建模。 数据建模数据建模 对业务的数据对象和关系建模。对业务的数据对象和关系建模。 过程建模过程建模 描述完成
29、业务功能的数据变换。描述完成业务功能的数据变换。 应用生成应用生成 应用构件和自动化工具建造。应用构件和自动化工具建造。 测试与反复测试与反复 对新构件和接口进行测试。对新构件和接口进行测试。软件工程软件工程4444业务建模业务建模数据建模数据建模过程建模过程建模应用生成应用生成测试及反复测试及反复小组小组1#业务建模业务建模数据建模数据建模过程建模过程建模应用生成应用生成测试及反复测试及反复小组小组2#2#业务建模业务建模数据建模数据建模过程建模过程建模应用生成应用生成测试及反复测试及反复小组小组3#3#6090天天软件工程软件工程4545Rational统一开发过程统一开发过程1.最佳软件
30、开发实践最佳软件开发实践 为了以一种更好的、迭代的、可预测的方式开为了以一种更好的、迭代的、可预测的方式开发软件产品,总结了软件开发的最佳实践:发软件产品,总结了软件开发的最佳实践:1) 迭代式软件开发;迭代式软件开发;2) 需求管理;需求管理;3) 基于构件的软件体系结构;基于构件的软件体系结构;4) 建立软件可视化模型;建立软件可视化模型;5) 不断验证软件质量;不断验证软件质量;6) 控制变更。控制变更。软件工程软件工程46462.Rational统一开发过程统一开发过程 软件开发过程的作用是:软件开发过程的作用是:1) 成为开发组活动顺序的向导。成为开发组活动顺序的向导。2) 详细说明
31、需要开发哪些制品,何时开发。详细说明需要开发哪些制品,何时开发。3) 指导每一个成员及整个开发组的工作。指导每一个成员及整个开发组的工作。4) 提供监控和度量项目产品和活动所依据的提供监控和度量项目产品和活动所依据的准则。准则。如果没有一个良好定义的过程,开发组将各行如果没有一个良好定义的过程,开发组将各行其是,开发成功与否完全依赖个别优秀的人才,其是,开发成功与否完全依赖个别优秀的人才,这不是能够长久的。这不是能够长久的。软件工程软件工程4747nRational统一开发过程(统一开发过程(RUP, Rational Unify Process)描述了如何在软件开发组织中严格分)描述了如何在
32、软件开发组织中严格分配任务和职责的方法。配任务和职责的方法。nRUP 是一个过程产品,是一个过程产品,软件过程也是软件。软件过程也是软件。nRUP 采用二维的过程结构:采用二维的过程结构:横轴表明过程的生存周期,它反映了过程被横轴表明过程的生存周期,它反映了过程被激活时的动态情况,用周期、阶段、迭代和激活时的动态情况,用周期、阶段、迭代和里程碑表示。里程碑表示。纵轴表明过程的静态状况,通过过程构件、纵轴表明过程的静态状况,通过过程构件、活动、工作流、制品和工作人员描述过程。活动、工作流、制品和工作人员描述过程。软件工程软件工程4848初始初始细化细化构造构造移交移交阶阶 段段初始化初始化细化细
33、化#1细化细化#2构造构造#1 构造构造#2 构造构造#3 移交移交#1移交移交#2迭代迭代 工作流工作流业务建模业务建模需求需求 分析与设计分析与设计实现实现测试测试实施实施配置和变更管理配置和变更管理项目管理项目管理环境环境沿时间轴的组织结构沿时间轴的组织结构沿内容轴的组织沿内容轴的组织软件工程软件工程49493.过程的静态描述:过程模型过程的静态描述:过程模型 过程模型中的主要模型元素有过程模型中的主要模型元素有 4 种:种:v工作人员:谁做(工作人员:谁做(Who)v活动:怎么做(活动:怎么做(How)v制品:做什么(制品:做什么(what)v工作流:何时做(工作流:何时做(when)
34、1)过程的中心概念是工作人员,工作人员不是过程的中心概念是工作人员,工作人员不是指某一个人,而是指完成工作的角色。工作指某一个人,而是指完成工作的角色。工作人员定义人们应履行的行为和职责。人员定义人们应履行的行为和职责。软件工程软件工程50502)活动定义了工作人员所执行的工作。有活动定义了工作人员所执行的工作。有 3 类类步骤:步骤:a) 思考步骤思考步骤b) 执行步骤执行步骤c) 评审步骤评审步骤3)制品是过程生产、修改或使用的一些信息。制品是过程生产、修改或使用的一些信息。RUP 的制品分为的制品分为 5 个信息集。个信息集。a) 管理集管理集:计划制品、操作制品:计划制品、操作制品b)
35、 需求集需求集:构想文档、项目相关人员需求、:构想文档、项目相关人员需求、用例模型和业务模型用例模型和业务模型软件工程软件工程5151c) 设计集设计集:设计模型、软件体系结构描述、:设计模型、软件体系结构描述、测试模型测试模型d) 实现集实现集:源代码和可执行程序、相关数:源代码和可执行程序、相关数据结构和数据文档据结构和数据文档e) 实施集实施集:安装资料、用户文档、培训材:安装资料、用户文档、培训材料料4)工作流用来描述生成结果的活动序列,用工作流用来描述生成结果的活动序列,用以描述工作人员之间的交互。在以描述工作人员之间的交互。在 RUP 中中共有共有 9 个核心过程工作流,包括个核心
36、过程工作流,包括 6 个核心个核心工程工作流和工程工作流和 3 个核心支持工作流。个核心支持工作流。软件工程软件工程5252a) 业务建模工作流业务建模工作流:描述业务过程的本质和:描述业务过程的本质和执行情形。执行情形。b) 需求工作流需求工作流:定义系统构想,使用用例模:定义系统构想,使用用例模型和补充规格说明定义系统软件需求,管型和补充规格说明定义系统软件需求,管理系统范围和需求变更。理系统范围和需求变更。c) 分析和设计工作流分析和设计工作流:研究实现环境和系统:研究实现环境和系统构件的效用,定义软件的组织结构,把需构件的效用,定义软件的组织结构,把需求获取结果转化为实现规格。求获取结
37、果转化为实现规格。d) 实现工作流实现工作流: 建立代码的分层结构,实现建立代码的分层结构,实现类和对象,进行单元测试和系统集成。类和对象,进行单元测试和系统集成。软件工程软件工程5353e) 测试工作流测试工作流:根据事先定义的度量和准根据事先定义的度量和准则检查产品,确认产品是否满足或者超则检查产品,确认产品是否满足或者超出事先定义并被一致接受的需求。出事先定义并被一致接受的需求。f) 实施工作流实施工作流:在实际使用环境中测试软在实际使用环境中测试软件、包装要交付的软件、发布软件产品、件、包装要交付的软件、发布软件产品、培训最终用户及销售人员。培训最终用户及销售人员。n核心支持工作流有核
38、心支持工作流有a)项目管理工作流项目管理工作流b)配置和变更管理工作流配置和变更管理工作流c)环境环境工作流工作流软件工程软件工程54544.过程的动态描述:迭代开发过程的动态描述:迭代开发将一个大项目分解为可连续应用瀑布模型将一个大项目分解为可连续应用瀑布模型的几个小部分。在对一部分进行分析、设的几个小部分。在对一部分进行分析、设计、实现并确认后,再对下一部分进行分计、实现并确认后,再对下一部分进行分析、设计、实现和确认。以此进行下去,析、设计、实现和确认。以此进行下去,直到整个项目完成。在直到整个项目完成。在 RUP 中,迭代过中,迭代过程分为几个阶段。程分为几个阶段。初始初始细化细化构造
39、构造移交移交生存周期生存周期构架里程碑构架里程碑生存周期生存周期目标里程碑目标里程碑最初运行最初运行能力里程碑能力里程碑产品发布产品发布里程碑里程碑时间时间软件工程软件工程55551)初始阶段初始阶段:确定最终产品的构想及其用例,:确定最终产品的构想及其用例,定义项目范围。定义项目范围。2)细化阶段细化阶段:计划需完成活动和资源,详细说:计划需完成活动和资源,详细说明产品特性并设计软件体系结构。明产品特性并设计软件体系结构。3)构造阶段构造阶段:构造整个产品,逐步完善软件体:构造整个产品,逐步完善软件体系结构和计划,直到产品(完整的构想)已系结构和计划,直到产品(完整的构想)已完全准备好交付给
40、用户。完全准备好交付给用户。4)移交阶段移交阶段:移交产品给用户,包括制造,交:移交产品给用户,包括制造,交付,培训,支持及维护产品。付,培训,支持及维护产品。软件工程软件工程5656n这这 4 个阶段构成开发周期,周期结束时产生个阶段构成开发周期,周期结束时产生一代新的软件产品。一代新的软件产品。n软件产品产生于初始开发周期,随着重复执软件产品产生于初始开发周期,随着重复执行同样的过程,软件发展到下一代产品,这行同样的过程,软件发展到下一代产品,这一时期即为软件的进化周期。一时期即为软件的进化周期。 I E C T I E C T I E C T V1V2V3初始开发周期初始开发周期进化周期
41、进化周期软件工程软件工程57575.Rational统一过程的特点:统一过程的特点:v用例驱动的、以体系结构(架构)为中心用例驱动的、以体系结构(架构)为中心的、迭代和增量的过程。的、迭代和增量的过程。v用例建模技术可以用为大多数项目相关人用例建模技术可以用为大多数项目相关人员理解的形式来表述问题。员理解的形式来表述问题。 参与者(参与者(Actor) 用例(用例(Use Case) 场景场景(scenario) 事件流(事件流(event flow)Actoruse case软件工程软件工程5858n用例和参与者的事例用例和参与者的事例 银行储户通过自动取款机(自动柜员机)提款,银行储户通过
42、自动取款机(自动柜员机)提款,转账或检查账户余额。用一组用例表达如下:转账或检查账户余额。用一组用例表达如下:转账转账提款提款检察账户余额检察账户余额储户储户软件工程软件工程5959n用例模型用例模型将整个系统或子系统的所有用例,以及将整个系统或子系统的所有用例,以及与之交互的参与者集合起来构成系统的与之交互的参与者集合起来构成系统的用例模型。用例模型。用例模型给出系统预期功能模型和系统用例模型给出系统预期功能模型和系统上下文环境模型,它成为开发人员和用上下文环境模型,它成为开发人员和用户之间的契约。户之间的契约。用例模型的目的是确保系统能处理所有用例模型的目的是确保系统能处理所有的功能性需求
43、。的功能性需求。软件工程软件工程6060n用例驱动的过程用例驱动的过程“用例驱动用例驱动” 指开发过程是基于用例,从指开发过程是基于用例,从一个工作流向下一个工作流,逐步前进的。一个工作流向下一个工作流,逐步前进的。开发初期,人们使用用例获取用户需求,开发初期,人们使用用例获取用户需求,建立用例模型,描述系统的全部功能。建立用例模型,描述系统的全部功能。基于用例模型,人们创建一系列实现这些基于用例模型,人们创建一系列实现这些用例的分析模型、设计模型和实现模型。用例的分析模型、设计模型和实现模型。测试人员测试实现确保系统正确实现了用测试人员测试实现确保系统正确实现了用例。例。软件工程软件工程61
44、61n以体系结构为中心的过程以体系结构为中心的过程用例的选择不是孤立的,它与软件的体系结用例的选择不是孤立的,它与软件的体系结构是密切相关的。构是密切相关的。软件体系结构的作用与一个建筑的体系结构软件体系结构的作用与一个建筑的体系结构类似。对于一个建筑,可以从框架结构、供类似。对于一个建筑,可以从框架结构、供热、上下水、供电、天然气、其他服务管线热、上下水、供电、天然气、其他服务管线等不同角度来考察它。使得施工人员在施工等不同角度来考察它。使得施工人员在施工前就能全面了解这个建筑。前就能全面了解这个建筑。软件的体系结构也从不同角度描述了即将构软件的体系结构也从不同角度描述了即将构造的系统,包括
45、系统的造的系统,包括系统的静态特征静态特征和和动态特征动态特征。软件工程软件工程6262每一种产品都有功能和表现形式两个方面。每一种产品都有功能和表现形式两个方面。用例就是功能用例就是功能,体系结构就是表现形式体系结构就是表现形式。在开发过程中,必须兼顾功能和表现形式,在开发过程中,必须兼顾功能和表现形式,做出适当权衡,才能得到好的产品。因此,做出适当权衡,才能得到好的产品。因此,用例和体系结构必须在迭代中并行演进用例和体系结构必须在迭代中并行演进。为了找到可以演进的体系结构,设计师必须为了找到可以演进的体系结构,设计师必须从全面了解系统的主要功能(即主要用例)从全面了解系统的主要功能(即主要
46、用例)入手。入手。软件工程软件工程63631.5 软件开发范型软件开发范型(Paradigm)n范型又称为范型又称为风范风范。通常认为范型就是开发模型。通常认为范型就是开发模型(Model)或开发模式或开发模式(Pattern),实际上它与方,实际上它与方法法(Methodology)一样,都被视为一种开发技一样,都被视为一种开发技术。范型支配了设计方法、编码语言、测试和术。范型支配了设计方法、编码语言、测试和检验技术的选择。检验技术的选择。n过程性范型过程性范型把软件视为处理流,定义成由一系把软件视为处理流,定义成由一系列步骤构成的算法。每一步骤都是带有输入和列步骤构成的算法。每一步骤都是带
47、有输入和输出的一个过程,把这些步骤串联在一起可产输出的一个过程,把这些步骤串联在一起可产生贯通于整个程序的控制流。生贯通于整个程序的控制流。软件工程软件工程6464n面向对象范型面向对象范型把标识和模型化问题领域中的实把标识和模型化问题领域中的实体做为系统开发的起点,面向对象系统中的对体做为系统开发的起点,面向对象系统中的对象是数据抽象与过程抽象的综合。象是数据抽象与过程抽象的综合。n逻辑性范型逻辑性范型是基于规则的,它把有关问题的知是基于规则的,它把有关问题的知识分解成一组具体规则识分解成一组具体规则(如如prolog语言语言)。n面向进程范型面向进程范型把一个问题分解成独立执行的模把一个问
48、题分解成独立执行的模块。让不只一个程序同时运行。这些进程互相块。让不只一个程序同时运行。这些进程互相配合,解决问题。配合,解决问题。n面向存取范型面向存取范型是一种在构造用户界面方面很有是一种在构造用户界面方面很有用的技术。用的技术。软件工程软件工程6565n函数型范型函数型范型是基于规则的,它把有关问题的是基于规则的,它把有关问题的知 识 分 解 成 一 组 具 体 规 则 , 用 语 言 的知 识 分 解 成 一 组 具 体 规 则 , 用 语 言 的“if_then”等结构来表示这些规则。等结构来表示这些规则。 n说明性范型说明性范型。n每种开发范型都有它的支持者和用户:每种开发范型都有它的支持者和用户: 每种开发范型都特别适合于某种类型的问每种开发范型都特别适合于某种类型的问题或子问题;题或子问题; 每种开发范型都用不同的方式考虑问题;每种开发范型都用不同的方式考虑问题; 每种开发范型都使用不同的方法来分解问每种开发范型都使用不同的方法来分解问题题软件工程软件工程6666 每种开发范型都导
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 餐厅前台服务总结
- 酷咖食品科技产业园建设项目可行性研究报告模板-立项拿地
- 10月石家庄房地产市场调研总结报告
- 2025-2030全球环锭细纱机单锭检测系统行业调研及趋势分析报告
- 2025年全球及中国有机天然肥料行业头部企业市场占有率及排名调研报告
- 2025年全球及中国风冷单螺杆式冷水机组行业头部企业市场占有率及排名调研报告
- 2025年全球及中国航空航天设备零部件用超声波清洗机行业头部企业市场占有率及排名调研报告
- 2025年全球及中国网红孵化服务行业头部企业市场占有率及排名调研报告
- 2025-2030全球电池护照(DDP)行业调研及趋势分析报告
- 2025年全球及中国冷加工喷丸机行业头部企业市场占有率及排名调研报告
- 苏教版四年级数学下册第三单元第二课时《常见的数量关系》课件
- 浙江省台州市2021-2022学年高一上学期期末质量评估政治试题 含解析
- 宁夏“8·19”较大爆燃事故调查报告
- 中国高血压防治指南(2024年修订版)解读课件
- 2024年浙江省中考科学试卷
- 初三科目综合模拟卷
- 2024年全国高考新课标卷物理真题(含答案)
- 劳动合同薪酬与绩效约定书
- 足疗店营销策划方案
- 学校安全一岗双责
- 2024年全国版图知识竞赛(小学组)考试题库大全(含答案)
评论
0/150
提交评论