第一章软件工程学概述(修改版)课件

上传人:无*** 文档编号:241662430 上传时间:2024-07-14 格式:PPTX 页数:56 大小:594.04KB
返回 下载 相关 举报
第一章软件工程学概述(修改版)课件_第1页
第1页 / 共56页
第一章软件工程学概述(修改版)课件_第2页
第2页 / 共56页
第一章软件工程学概述(修改版)课件_第3页
第3页 / 共56页
点击查看更多>>
资源描述
软件工程导论软件工程导论课课 名:软件工程名:软件工程教材:教材:软件工程导论软件工程导论参考教材:参考教材:n n 1 实用软件工程实用软件工程(第二版第二版)n n 2 软件工程实践者的研究方法软件工程实践者的研究方法教学方式:授课教学方式:授课 课时:课时:54目目 录录第第第第1 1 1 1章章章章 软件工程学概述软件工程学概述软件工程学概述软件工程学概述第第第第2 2 2 2章章章章 可行性研究可行性研究可行性研究可行性研究第第第第3 3 3 3章章章章 需求分析需求分析需求分析需求分析第第第第4 4 4 4章章章章 形式化说明技术形式化说明技术形式化说明技术形式化说明技术第第第第5 5 5 5章章章章 总体设计总体设计总体设计总体设计第第第第6 6 6 6章章章章 详细设计详细设计详细设计详细设计第第第第7 7 7 7章章章章 实现实现实现实现第第第第8 8 8 8章章章章 维护维护维护维护第第第第9 9 9 9章章章章 面向对象方法学引论面向对象方法学引论面向对象方法学引论面向对象方法学引论第第第第10101010章章章章 面向对象分析面向对象分析面向对象分析面向对象分析第第第第11111111章章章章 面向对象设计面向对象设计面向对象设计面向对象设计第第第第12121212章章章章 面向对象实现面向对象实现面向对象实现面向对象实现第第第第13131313章章章章 软件项目管理软件项目管理软件项目管理软件项目管理第第1 1章章 软件工程学概述软件工程学概述1.1 1.1 软件综述软件综述1.2 1.2 软件危机软件危机1.3 1.3 软件工程软件工程1.4 1.4 软件生命周期软件生命周期1.5 1.5 软件过程软件过程1.1.1 1.1.1 软件的发展软件的发展 1.1.1.1.程序设计阶段程序设计阶段程序设计阶段程序设计阶段 (20202020世纪世纪世纪世纪50505050年代初年代初年代初年代初20202020世纪世纪世纪世纪60606060年代中期)年代中期)年代中期)年代中期)2.2.2.2.程序系统阶段程序系统阶段程序系统阶段程序系统阶段 (20202020世纪世纪世纪世纪60606060年代中期年代中期年代中期年代中期20202020世纪世纪世纪世纪70707070年代末)年代末)年代末)年代末)3.3.3.3.软件工程阶段软件工程阶段软件工程阶段软件工程阶段 (20202020世纪世纪世纪世纪70707070年代中期年代中期年代中期年代中期20202020世纪世纪世纪世纪80808080年代中期)年代中期)年代中期)年代中期)4.4.4.4.第四阶段第四阶段第四阶段第四阶段 (20202020世纪世纪世纪世纪80808080年代中期至今)年代中期至今)年代中期至今)年代中期至今)四个阶段典型技术比较四个阶段典型技术比较阶段阶段阶段阶段第一阶段第一阶段第一阶段第一阶段第二阶段第二阶段第二阶段第二阶段第三阶段第三阶段第三阶段第三阶段第四阶段第四阶段第四阶段第四阶段典典典典型型型型 技技技技术术术术面向批面向批面向批面向批处理处理处理处理有限的有限的有限的有限的分布分布分布分布自定义自定义自定义自定义软件软件软件软件多用户多用户多用户多用户实时实时实时实时数据库数据库数据库数据库软件产软件产软件产软件产品品品品分布式系统分布式系统分布式系统分布式系统嵌入嵌入嵌入嵌入“智能智能智能智能”低成本硬件低成本硬件低成本硬件低成本硬件消费者的影消费者的影消费者的影消费者的影响响响响强大桌面强大桌面强大桌面强大桌面系统系统系统系统面向对象技面向对象技面向对象技面向对象技术术术术专家系统专家系统专家系统专家系统人工神经网人工神经网人工神经网人工神经网络络络络并行计算并行计算并行计算并行计算网络计算网络计算网络计算网络计算1.1.2 1.1.2 软件的定义软件的定义软件的定义如下:软件的定义如下:软件的定义如下:软件的定义如下:(1 1 1 1)在运行中能提供所希望的功能和性能的指)在运行中能提供所希望的功能和性能的指)在运行中能提供所希望的功能和性能的指)在运行中能提供所希望的功能和性能的指令集。令集。令集。令集。(2 2 2 2)使程序能够正确运行的数据结构。)使程序能够正确运行的数据结构。)使程序能够正确运行的数据结构。)使程序能够正确运行的数据结构。(3 3 3 3)描述程序研制过程、方法所用的文档。)描述程序研制过程、方法所用的文档。)描述程序研制过程、方法所用的文档。)描述程序研制过程、方法所用的文档。1.1.3 1.1.3 软件的特点软件的特点1.1.1.1.重视软件开发过程。重视软件开发过程。重视软件开发过程。重视软件开发过程。2.2.2.2.软件不会磨损、老化,但维护比较复杂。软件不会磨损、老化,但维护比较复杂。软件不会磨损、老化,但维护比较复杂。软件不会磨损、老化,但维护比较复杂。3.3.3.3.软件的开发和运行经常受到计算机系统的限制,软件的开发和运行经常受到计算机系统的限制,软件的开发和运行经常受到计算机系统的限制,软件的开发和运行经常受到计算机系统的限制,对计算机系统有不同程度的依赖性。对计算机系统有不同程度的依赖性。对计算机系统有不同程度的依赖性。对计算机系统有不同程度的依赖性。4.4.4.4.软件的开发尚未完全摆脱手工的开发方式。软件的开发尚未完全摆脱手工的开发方式。软件的开发尚未完全摆脱手工的开发方式。软件的开发尚未完全摆脱手工的开发方式。5.5.5.5.软件的开发费用越来越高,成本相当昂贵。软件的开发费用越来越高,成本相当昂贵。软件的开发费用越来越高,成本相当昂贵。软件的开发费用越来越高,成本相当昂贵。6.6.6.6.软件的开发过程复杂,需要在开发过程中进行管软件的开发过程复杂,需要在开发过程中进行管软件的开发过程复杂,需要在开发过程中进行管软件的开发过程复杂,需要在开发过程中进行管理。理。理。理。7.7.7.7.软件具有抽象性软件具有抽象性软件具有抽象性软件具有抽象性失效率时间磨合调整磨损用坏硬件失效率曲线失效率时间修改点实际曲线理想曲线软件失效率曲线1.2.1 1.2.1 软件危机简介软件危机简介1.1.软件危机软件危机 软件危机指的是软件开发和维护过程中遇到的软件危机指的是软件开发和维护过程中遇到的软件危机指的是软件开发和维护过程中遇到的软件危机指的是软件开发和维护过程中遇到的一系列严重问题。一系列严重问题。一系列严重问题。一系列严重问题。软件危机包含以下两方面的问题:如何开发软软件危机包含以下两方面的问题:如何开发软软件危机包含以下两方面的问题:如何开发软软件危机包含以下两方面的问题:如何开发软件,怎样满足对软件的日益增长的需求;如何维件,怎样满足对软件的日益增长的需求;如何维件,怎样满足对软件的日益增长的需求;如何维件,怎样满足对软件的日益增长的需求;如何维护数量不断膨胀的已有软件。护数量不断膨胀的已有软件。护数量不断膨胀的已有软件。护数量不断膨胀的已有软件。2.2.软件危机的主要表现软件危机的主要表现(1)(1)对软件开发成本和进度的估计常常很不准确。对软件开发成本和进度的估计常常很不准确。对软件开发成本和进度的估计常常很不准确。对软件开发成本和进度的估计常常很不准确。(2)(2)用户对用户对用户对用户对“已完成的已完成的已完成的已完成的”软件系统不满意的现象经常软件系统不满意的现象经常软件系统不满意的现象经常软件系统不满意的现象经常发生。发生。发生。发生。(3)(3)软件产品的质量往往靠不住。软件产品的质量往往靠不住。软件产品的质量往往靠不住。软件产品的质量往往靠不住。(4)(4)软件常常是不可维护的。软件常常是不可维护的。软件常常是不可维护的。软件常常是不可维护的。(5)(5)软件通常没有适当的文档资料。软件通常没有适当的文档资料。软件通常没有适当的文档资料。软件通常没有适当的文档资料。(6)(6)软件成本在计算机系统总成本中所占的比例逐年软件成本在计算机系统总成本中所占的比例逐年软件成本在计算机系统总成本中所占的比例逐年软件成本在计算机系统总成本中所占的比例逐年上升。上升。上升。上升。(7)(7)软件开发生产率提高的速度,远远跟不上计算机软件开发生产率提高的速度,远远跟不上计算机软件开发生产率提高的速度,远远跟不上计算机软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。应用迅速普及深入的趋势。应用迅速普及深入的趋势。应用迅速普及深入的趋势。1.2.2 1.2.2 产生软件危机的原因产生软件危机的原因1.1.客观原因客观原因 软件是计算机系统中的逻辑部件而不是物理软件是计算机系统中的逻辑部件而不是物理软件是计算机系统中的逻辑部件而不是物理软件是计算机系统中的逻辑部件而不是物理部件部件部件部件,其显著特点是缺乏其显著特点是缺乏其显著特点是缺乏其显著特点是缺乏“可见性可见性可见性可见性”,因此,因此,因此,因此,管理管理管理管理和控制软件开发过程相当困难。此外,软件维护和控制软件开发过程相当困难。此外,软件维护和控制软件开发过程相当困难。此外,软件维护和控制软件开发过程相当困难。此外,软件维护通常意味着改正或修改原有的设计,从而使得软通常意味着改正或修改原有的设计,从而使得软通常意味着改正或修改原有的设计,从而使得软通常意味着改正或修改原有的设计,从而使得软件较难维护。件较难维护。件较难维护。件较难维护。规模庞大,而且程序复杂性将随着程序规模规模庞大,而且程序复杂性将随着程序规模规模庞大,而且程序复杂性将随着程序规模规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上升。软件可能具有的状态数通的增加而呈指数上升。软件可能具有的状态数通的增加而呈指数上升。软件可能具有的状态数通的增加而呈指数上升。软件可能具有的状态数通常都是天文数字,无法完全预见软件可能遇到的常都是天文数字,无法完全预见软件可能遇到的常都是天文数字,无法完全预见软件可能遇到的常都是天文数字,无法完全预见软件可能遇到的每一种情况。每一种情况。每一种情况。每一种情况。2.2.主观原因主观原因 由于早期阶段开发软件的个体化,使得许多由于早期阶段开发软件的个体化,使得许多由于早期阶段开发软件的个体化,使得许多由于早期阶段开发软件的个体化,使得许多软件工程师对软件开发和维护有不少糊涂认识,软件工程师对软件开发和维护有不少糊涂认识,软件工程师对软件开发和维护有不少糊涂认识,软件工程师对软件开发和维护有不少糊涂认识,在实际工作中或多或少地采用了错误的方法。在实际工作中或多或少地采用了错误的方法。在实际工作中或多或少地采用了错误的方法。在实际工作中或多或少地采用了错误的方法。程序只是完整的软件产品的一个组成部分,程序只是完整的软件产品的一个组成部分,程序只是完整的软件产品的一个组成部分,程序只是完整的软件产品的一个组成部分,一个软件产品必须由一个完整的配置组成。软件一个软件产品必须由一个完整的配置组成。软件一个软件产品必须由一个完整的配置组成。软件一个软件产品必须由一个完整的配置组成。软件配置主要包括程序、文档和数据等成分。配置主要包括程序、文档和数据等成分。配置主要包括程序、文档和数据等成分。配置主要包括程序、文档和数据等成分。软件开发的不同阶段进行修改需要付出的软件开发的不同阶段进行修改需要付出的软件开发的不同阶段进行修改需要付出的软件开发的不同阶段进行修改需要付出的代价是不相同的。代价是不相同的。代价是不相同的。代价是不相同的。引入同一变动付出的代价随时间变化的趋势引入同一变动付出的代价随时间变化的趋势 软件工程学的一个重要目标就是提高软件软件工程学的一个重要目标就是提高软件的可维护性,减少软件维护的代价。的可维护性,减少软件维护的代价。1.2.3 1.2.3 消除软件危机的途径消除软件危机的途径 首先应该树立对计算机软件的正确认识。软首先应该树立对计算机软件的正确认识。软首先应该树立对计算机软件的正确认识。软首先应该树立对计算机软件的正确认识。软件是程序、数据及相关文档的完整集合。其中,件是程序、数据及相关文档的完整集合。其中,件是程序、数据及相关文档的完整集合。其中,件是程序、数据及相关文档的完整集合。其中,程序是能够完成预定功能和性能的可执行的指令程序是能够完成预定功能和性能的可执行的指令程序是能够完成预定功能和性能的可执行的指令程序是能够完成预定功能和性能的可执行的指令序列;数据是使程序能够适当地处理信息的数据序列;数据是使程序能够适当地处理信息的数据序列;数据是使程序能够适当地处理信息的数据序列;数据是使程序能够适当地处理信息的数据结构;文档是开发、使用和维护程序所需要的图结构;文档是开发、使用和维护程序所需要的图结构;文档是开发、使用和维护程序所需要的图结构;文档是开发、使用和维护程序所需要的图文资料。文资料。文资料。文资料。软件开发应该是组织良好、管理严密、各类软件开发应该是组织良好、管理严密、各类软件开发应该是组织良好、管理严密、各类软件开发应该是组织良好、管理严密、各类人员团结协作共同完成的工程项目。必须充分吸人员团结协作共同完成的工程项目。必须充分吸人员团结协作共同完成的工程项目。必须充分吸人员团结协作共同完成的工程项目。必须充分吸取和借鉴人类长期以来从事各种工程项目所积累取和借鉴人类长期以来从事各种工程项目所积累取和借鉴人类长期以来从事各种工程项目所积累取和借鉴人类长期以来从事各种工程项目所积累的行之有效的原理、概念、技术和方法,并研究的行之有效的原理、概念、技术和方法,并研究的行之有效的原理、概念、技术和方法,并研究的行之有效的原理、概念、技术和方法,并研究能更有效地开发软件的技术和方法。能更有效地开发软件的技术和方法。能更有效地开发软件的技术和方法。能更有效地开发软件的技术和方法。应该积极开发和使用计算机辅助软件工程应该积极开发和使用计算机辅助软件工程应该积极开发和使用计算机辅助软件工程应该积极开发和使用计算机辅助软件工程(CASECASECASECASE)工具。)工具。)工具。)工具。1.3.1 1.3.1 软件工程简介软件工程简介1.1.软件工程的定义软件工程的定义 软件工程是指导计算机软件开发和维护的一门软件工程是指导计算机软件开发和维护的一门软件工程是指导计算机软件开发和维护的一门软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法工程学科。采用工程的概念、原理、技术和方法工程学科。采用工程的概念、原理、技术和方法工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确来开发与维护软件,把经过时间考验而证明正确来开发与维护软件,把经过时间考验而证明正确来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结的管理技术和当前能够得到的最好的技术方法结的管理技术和当前能够得到的最好的技术方法结的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。合起来,这就是软件工程。合起来,这就是软件工程。合起来,这就是软件工程。1968196819681968年在第一届年在第一届年在第一届年在第一届NATONATONATONATO会议上给出了软件工程会议上给出了软件工程会议上给出了软件工程会议上给出了软件工程的一个早期定义:的一个早期定义:的一个早期定义:的一个早期定义:“软件工程就是为了经济地获得可靠的且能在软件工程就是为了经济地获得可靠的且能在软件工程就是为了经济地获得可靠的且能在软件工程就是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完实际机器上有效地运行的软件,而建立和使用完实际机器上有效地运行的软件,而建立和使用完实际机器上有效地运行的软件,而建立和使用完善的工程原理。善的工程原理。善的工程原理。善的工程原理。”1993 1993 1993 1993年年年年IEEEIEEEIEEEIEEE进一步给出了一个更全面更具体进一步给出了一个更全面更具体进一步给出了一个更全面更具体进一步给出了一个更全面更具体的定义:的定义:的定义:的定义:“软件工程是:软件工程是:软件工程是:软件工程是:把系统的、规范的、可度量把系统的、规范的、可度量把系统的、规范的、可度量把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就的途径应用于软件开发、运行和维护过程,也就的途径应用于软件开发、运行和维护过程,也就的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;是把工程应用于软件;是把工程应用于软件;是把工程应用于软件;研究研究研究研究中提到的途径。中提到的途径。中提到的途径。中提到的途径。”2.2.软件工程的本质特性:软件工程的本质特性:n n软件工程关注于大型程序的构造软件工程关注于大型程序的构造软件工程关注于大型程序的构造软件工程关注于大型程序的构造n n软件工程的中心课题是控制复杂性软件工程的中心课题是控制复杂性软件工程的中心课题是控制复杂性软件工程的中心课题是控制复杂性n n软件经常变化软件经常变化软件经常变化软件经常变化n n开发软件的效率非常重要开发软件的效率非常重要开发软件的效率非常重要开发软件的效率非常重要n n和谐地合作是开发软件的关键和谐地合作是开发软件的关键和谐地合作是开发软件的关键和谐地合作是开发软件的关键n n软件必须有效地支持它的用户软件必须有效地支持它的用户软件必须有效地支持它的用户软件必须有效地支持它的用户n n 在软件工程领域中是由具有一种文化背景的人替在软件工程领域中是由具有一种文化背景的人替在软件工程领域中是由具有一种文化背景的人替在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品具有另一种文化背景的人创造产品具有另一种文化背景的人创造产品具有另一种文化背景的人创造产品1.3.2 1.3.2 软件工程的基本原理软件工程的基本原理用分阶段的生命周期计划严格管理用分阶段的生命周期计划严格管理用分阶段的生命周期计划严格管理用分阶段的生命周期计划严格管理坚持进行阶段评审坚持进行阶段评审坚持进行阶段评审坚持进行阶段评审实行严格的产品控制实行严格的产品控制实行严格的产品控制实行严格的产品控制采用现代程序设计技术采用现代程序设计技术采用现代程序设计技术采用现代程序设计技术结果应能清楚地审查结果应能清楚地审查结果应能清楚地审查结果应能清楚地审查开发小组的人员应该少而精开发小组的人员应该少而精开发小组的人员应该少而精开发小组的人员应该少而精承认不断改进软件工程实践的必要性承认不断改进软件工程实践的必要性承认不断改进软件工程实践的必要性承认不断改进软件工程实践的必要性1.3.3 1.3.3 软件工程方法学软件工程方法学 通常把在软件生命周期全过程中使用的一整通常把在软件生命周期全过程中使用的一整通常把在软件生命周期全过程中使用的一整通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学套技术方法的集合称为方法学套技术方法的集合称为方法学套技术方法的集合称为方法学(methodology)(methodology)(methodology)(methodology),也,也,也,也称为范型称为范型称为范型称为范型(paradigm)(paradigm)(paradigm)(paradigm)。软件工程方法学包含软件工程方法学包含软件工程方法学包含软件工程方法学包含3 3 3 3个要素:方法、工具个要素:方法、工具个要素:方法、工具个要素:方法、工具和过程。和过程。和过程。和过程。其中,方法是完成软件开发的各项任务的技其中,方法是完成软件开发的各项任务的技其中,方法是完成软件开发的各项任务的技其中,方法是完成软件开发的各项任务的技术方法,回答术方法,回答术方法,回答术方法,回答“怎样做怎样做怎样做怎样做”的问题;工具是为运用的问题;工具是为运用的问题;工具是为运用的问题;工具是为运用方法而提供的自动的或半自动的软件工程支撑环方法而提供的自动的或半自动的软件工程支撑环方法而提供的自动的或半自动的软件工程支撑环方法而提供的自动的或半自动的软件工程支撑环境;过程是为了获得高质量的软件所需要完成的境;过程是为了获得高质量的软件所需要完成的境;过程是为了获得高质量的软件所需要完成的境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工一系列任务的框架,它规定了完成各项任务的工一系列任务的框架,它规定了完成各项任务的工一系列任务的框架,它规定了完成各项任务的工作步骤。作步骤。作步骤。作步骤。目前使用得最广泛的软件工程方法学,分别目前使用得最广泛的软件工程方法学,分别目前使用得最广泛的软件工程方法学,分别目前使用得最广泛的软件工程方法学,分别是传统方法学和面向对象方法学。是传统方法学和面向对象方法学。是传统方法学和面向对象方法学。是传统方法学和面向对象方法学。1.1.传统方法学传统方法学 传统方法学也称为生命周期方法学或结构化传统方法学也称为生命周期方法学或结构化传统方法学也称为生命周期方法学或结构化传统方法学也称为生命周期方法学或结构化范型。范型。范型。范型。n n采用结构化技术采用结构化技术采用结构化技术采用结构化技术(结构化分析、结构化设计和结构结构化分析、结构化设计和结构结构化分析、结构化设计和结构结构化分析、结构化设计和结构化实现化实现化实现化实现)来完成软件开发的各项任务。来完成软件开发的各项任务。来完成软件开发的各项任务。来完成软件开发的各项任务。n n把软件生命周期划分成若干个阶段,然后顺序完把软件生命周期划分成若干个阶段,然后顺序完把软件生命周期划分成若干个阶段,然后顺序完把软件生命周期划分成若干个阶段,然后顺序完成各阶段的任务。成各阶段的任务。成各阶段的任务。成各阶段的任务。n n每阶段的开始和结束都有严格标准,对于任何两每阶段的开始和结束都有严格标准,对于任何两每阶段的开始和结束都有严格标准,对于任何两每阶段的开始和结束都有严格标准,对于任何两个相邻的阶段而言,前一阶段的结束标准就是后个相邻的阶段而言,前一阶段的结束标准就是后个相邻的阶段而言,前一阶段的结束标准就是后个相邻的阶段而言,前一阶段的结束标准就是后一阶段的开始标准。一阶段的开始标准。一阶段的开始标准。一阶段的开始标准。n n在每一个阶段结束之前都必须进行严格的技术审在每一个阶段结束之前都必须进行严格的技术审在每一个阶段结束之前都必须进行严格的技术审在每一个阶段结束之前都必须进行严格的技术审查和管理复审。查和管理复审。查和管理复审。查和管理复审。2.2.面向对象方法学面向对象方法学n n把对象把对象把对象把对象(object)(object)(object)(object)作为融合了数据及在数据上的操作为融合了数据及在数据上的操作为融合了数据及在数据上的操作为融合了数据及在数据上的操作的软件构件。也就是说,用对象分解取代了传作的软件构件。也就是说,用对象分解取代了传作的软件构件。也就是说,用对象分解取代了传作的软件构件。也就是说,用对象分解取代了传统方法的功能分解。统方法的功能分解。统方法的功能分解。统方法的功能分解。n n把所有对象都划分成类把所有对象都划分成类把所有对象都划分成类把所有对象都划分成类(class)(class)(class)(class)。n n按照父类按照父类按照父类按照父类(或称为基类或称为基类或称为基类或称为基类)与子类与子类与子类与子类(或称为派生类或称为派生类或称为派生类或称为派生类)的的的的关系,把若干个相关类组成一个层次结构的系统关系,把若干个相关类组成一个层次结构的系统关系,把若干个相关类组成一个层次结构的系统关系,把若干个相关类组成一个层次结构的系统(也称为类等级也称为类等级也称为类等级也称为类等级)。n n对象彼此间仅能通过发送消息互相联系。对象彼此间仅能通过发送消息互相联系。对象彼此间仅能通过发送消息互相联系。对象彼此间仅能通过发送消息互相联系。1.4 1.4 软件生命周期软件生命周期 一个软件从定义到开发、使用和维护,直到一个软件从定义到开发、使用和维护,直到一个软件从定义到开发、使用和维护,直到一个软件从定义到开发、使用和维护,直到最终被废弃,要经历一个漫长的时期,通常把这最终被废弃,要经历一个漫长的时期,通常把这最终被废弃,要经历一个漫长的时期,通常把这最终被废弃,要经历一个漫长的时期,通常把这个时期称为生存周期。个时期称为生存周期。个时期称为生存周期。个时期称为生存周期。软件生命周期由软件生命周期由软件生命周期由软件生命周期由软件定义软件定义软件定义软件定义、软件开发软件开发软件开发软件开发和和和和运行运行运行运行维护维护维护维护(也称为软件维护也称为软件维护也称为软件维护也称为软件维护)3)3)3)3个时期组成,每个时期又个时期组成,每个时期又个时期组成,每个时期又个时期组成,每个时期又进一步划分成若干个阶段。进一步划分成若干个阶段。进一步划分成若干个阶段。进一步划分成若干个阶段。软件生存周期的三大阶段:软件生存周期的三大阶段:1.1.软件定义阶段软件定义阶段软件定义时期的任务是:确定软件开发工程必软件定义时期的任务是:确定软件开发工程必软件定义时期的任务是:确定软件开发工程必软件定义时期的任务是:确定软件开发工程必须完成的总目标;确定工程的可行性;导出实现须完成的总目标;确定工程的可行性;导出实现须完成的总目标;确定工程的可行性;导出实现须完成的总目标;确定工程的可行性;导出实现工程目标应该采用的策略及系统必须完成的功能;工程目标应该采用的策略及系统必须完成的功能;工程目标应该采用的策略及系统必须完成的功能;工程目标应该采用的策略及系统必须完成的功能;估计完成该项工程需要的资源和成本,并且制定估计完成该项工程需要的资源和成本,并且制定估计完成该项工程需要的资源和成本,并且制定估计完成该项工程需要的资源和成本,并且制定工程进度表。这个时期的工作通常又称为系统分工程进度表。这个时期的工作通常又称为系统分工程进度表。这个时期的工作通常又称为系统分工程进度表。这个时期的工作通常又称为系统分析,由系统分析员负责完成。析,由系统分析员负责完成。析,由系统分析员负责完成。析,由系统分析员负责完成。软件定义时期通常进一步划分成软件定义时期通常进一步划分成软件定义时期通常进一步划分成软件定义时期通常进一步划分成3 3 3 3个阶段,即个阶段,即个阶段,即个阶段,即问题定义、可行性研究和需求分析。问题定义、可行性研究和需求分析。问题定义、可行性研究和需求分析。问题定义、可行性研究和需求分析。(1)(1)(1)(1)问题定义:问题定义:问题定义:问题定义:问题定义阶段必须回答的关键问题是:问题定义阶段必须回答的关键问题是:问题定义阶段必须回答的关键问题是:问题定义阶段必须回答的关键问题是:“要要要要解决的问题是什么解决的问题是什么解决的问题是什么解决的问题是什么?”?”?”?”通过对客户的访问调查,系统分析员扼要地通过对客户的访问调查,系统分析员扼要地通过对客户的访问调查,系统分析员扼要地通过对客户的访问调查,系统分析员扼要地写出关于问题性质、工程目标和工程规模的书面写出关于问题性质、工程目标和工程规模的书面写出关于问题性质、工程目标和工程规模的书面写出关于问题性质、工程目标和工程规模的书面报告,经过讨论和必要的修改之后这份报告应该报告,经过讨论和必要的修改之后这份报告应该报告,经过讨论和必要的修改之后这份报告应该报告,经过讨论和必要的修改之后这份报告应该得到客户的确认。得到客户的确认。得到客户的确认。得到客户的确认。(2)(2)(2)(2)可行性研究:可行性研究:可行性研究:可行性研究:这个阶段要回答的关键问题是:这个阶段要回答的关键问题是:这个阶段要回答的关键问题是:这个阶段要回答的关键问题是:“对于上一对于上一对于上一对于上一个阶段所确定的问题有行得通的解决办法吗个阶段所确定的问题有行得通的解决办法吗个阶段所确定的问题有行得通的解决办法吗个阶段所确定的问题有行得通的解决办法吗?”?”?”?”系统分析员需要在较抽象的高层次上进行的分析系统分析员需要在较抽象的高层次上进行的分析系统分析员需要在较抽象的高层次上进行的分析系统分析员需要在较抽象的高层次上进行的分析和设计过程。和设计过程。和设计过程。和设计过程。可行性研究的结果是使用部门负责人作出是可行性研究的结果是使用部门负责人作出是可行性研究的结果是使用部门负责人作出是可行性研究的结果是使用部门负责人作出是否继续进行这项工程的决定的重要依据。否继续进行这项工程的决定的重要依据。否继续进行这项工程的决定的重要依据。否继续进行这项工程的决定的重要依据。(3)(3)(3)(3)需求分析:需求分析:需求分析:需求分析:是准确地确定是准确地确定是准确地确定是准确地确定“为了解决这个问题,目标系为了解决这个问题,目标系为了解决这个问题,目标系为了解决这个问题,目标系统必须做什么统必须做什么统必须做什么统必须做什么”,主要是确定目标系统必须具备,主要是确定目标系统必须具备,主要是确定目标系统必须具备,主要是确定目标系统必须具备哪些功能。哪些功能。哪些功能。哪些功能。系统分析员在需求分析阶段必须和用户密切系统分析员在需求分析阶段必须和用户密切系统分析员在需求分析阶段必须和用户密切系统分析员在需求分析阶段必须和用户密切配合,充分交流信息,以得出经过用户确认的系配合,充分交流信息,以得出经过用户确认的系配合,充分交流信息,以得出经过用户确认的系配合,充分交流信息,以得出经过用户确认的系统逻辑模型。通常用数据流图、数据字典和简要统逻辑模型。通常用数据流图、数据字典和简要统逻辑模型。通常用数据流图、数据字典和简要统逻辑模型。通常用数据流图、数据字典和简要的算法表示系统的逻辑模型。并用正式文档准确的算法表示系统的逻辑模型。并用正式文档准确的算法表示系统的逻辑模型。并用正式文档准确的算法表示系统的逻辑模型。并用正式文档准确地记录对目标系统的需求,这份文档通常称为规地记录对目标系统的需求,这份文档通常称为规地记录对目标系统的需求,这份文档通常称为规地记录对目标系统的需求,这份文档通常称为规格说明书格说明书格说明书格说明书(specification)(specification)(specification)(specification)。2.2.软件开发阶段软件开发阶段开发时期具体设计和实现在前一个时期定义的开发时期具体设计和实现在前一个时期定义的开发时期具体设计和实现在前一个时期定义的开发时期具体设计和实现在前一个时期定义的软件,它通常由下述软件,它通常由下述软件,它通常由下述软件,它通常由下述4 4 4 4个阶段组成:总体设计,详个阶段组成:总体设计,详个阶段组成:总体设计,详个阶段组成:总体设计,详细设计,编码和单元测试,综合测试。其中前两细设计,编码和单元测试,综合测试。其中前两细设计,编码和单元测试,综合测试。其中前两细设计,编码和单元测试,综合测试。其中前两个阶段又称为系统设计,后两个阶段又称为系统个阶段又称为系统设计,后两个阶段又称为系统个阶段又称为系统设计,后两个阶段又称为系统个阶段又称为系统设计,后两个阶段又称为系统实现。实现。实现。实现。(1)(1)(1)(1)总体设计:总体设计:总体设计:总体设计:这个阶段必须回答的关键问题是:这个阶段必须回答的关键问题是:这个阶段必须回答的关键问题是:这个阶段必须回答的关键问题是:“概括地说,概括地说,概括地说,概括地说,应该怎样实现目标系统应该怎样实现目标系统应该怎样实现目标系统应该怎样实现目标系统?”?”?”?”总体设计又称为概要设总体设计又称为概要设总体设计又称为概要设总体设计又称为概要设计。计。计。计。首先,应该设计出实现目标系统的几种可能的首先,应该设计出实现目标系统的几种可能的首先,应该设计出实现目标系统的几种可能的首先,应该设计出实现目标系统的几种可能的方案。软件工程师应该用适当的表达工具描述每种方案。软件工程师应该用适当的表达工具描述每种方案。软件工程师应该用适当的表达工具描述每种方案。软件工程师应该用适当的表达工具描述每种方案,分析每种方案的优缺点,并在充分权衡各种方案,分析每种方案的优缺点,并在充分权衡各种方案,分析每种方案的优缺点,并在充分权衡各种方案,分析每种方案的优缺点,并在充分权衡各种方案的利弊的基础上,推荐一个最佳方案。此外,方案的利弊的基础上,推荐一个最佳方案。此外,方案的利弊的基础上,推荐一个最佳方案。此外,方案的利弊的基础上,推荐一个最佳方案。此外,还应该制定出实现最佳方案的详细计划。如果客户还应该制定出实现最佳方案的详细计划。如果客户还应该制定出实现最佳方案的详细计划。如果客户还应该制定出实现最佳方案的详细计划。如果客户接受所推荐的方案,则应该进一步完成设计程序的接受所推荐的方案,则应该进一步完成设计程序的接受所推荐的方案,则应该进一步完成设计程序的接受所推荐的方案,则应该进一步完成设计程序的体系结构,也就是确定程序由哪些模块组成以及模体系结构,也就是确定程序由哪些模块组成以及模体系结构,也就是确定程序由哪些模块组成以及模体系结构,也就是确定程序由哪些模块组成以及模块间的关系。块间的关系。块间的关系。块间的关系。(2)(2)(2)(2)详细设计:详细设计:详细设计:详细设计:详细设计阶段的任务就是把总体设计中提出详细设计阶段的任务就是把总体设计中提出详细设计阶段的任务就是把总体设计中提出详细设计阶段的任务就是把总体设计中提出的解决办法具体化,回答的关键问题是:的解决办法具体化,回答的关键问题是:的解决办法具体化,回答的关键问题是:的解决办法具体化,回答的关键问题是:“应该应该应该应该怎样具体地实现这个系统呢怎样具体地实现这个系统呢怎样具体地实现这个系统呢怎样具体地实现这个系统呢?”?”?”?”详细设计也称为模块设计,在这个阶段将详详细设计也称为模块设计,在这个阶段将详详细设计也称为模块设计,在这个阶段将详详细设计也称为模块设计,在这个阶段将详细地设计每个模块,确定实现模块功能所需要的细地设计每个模块,确定实现模块功能所需要的细地设计每个模块,确定实现模块功能所需要的细地设计每个模块,确定实现模块功能所需要的算法和数据结构。算法和数据结构。算法和数据结构。算法和数据结构。(3)(3)(3)(3)编码和单元测试:编码和单元测试:编码和单元测试:编码和单元测试:程序员应该根据目标系统的性质和实际环境,程序员应该根据目标系统的性质和实际环境,程序员应该根据目标系统的性质和实际环境,程序员应该根据目标系统的性质和实际环境,选取一种适当的高级程序设计语言选取一种适当的高级程序设计语言选取一种适当的高级程序设计语言选取一种适当的高级程序设计语言(必要时用汇编必要时用汇编必要时用汇编必要时用汇编语言语言语言语言),把详细设计的结果翻译成用选定的语言书,把详细设计的结果翻译成用选定的语言书,把详细设计的结果翻译成用选定的语言书,把详细设计的结果翻译成用选定的语言书写的程序,并且仔细测试编写出的每一个模块。写的程序,并且仔细测试编写出的每一个模块。写的程序,并且仔细测试编写出的每一个模块。写的程序,并且仔细测试编写出的每一个模块。(4)(4)(4)(4)综合测试:综合测试:综合测试:综合测试:这个阶段的关键任务是通过各种类型的测试这个阶段的关键任务是通过各种类型的测试这个阶段的关键任务是通过各种类型的测试这个阶段的关键任务是通过各种类型的测试(及相应的调试及相应的调试及相应的调试及相应的调试)使软件达到预定的要求。使软件达到预定的要求。使软件达到预定的要求。使软件达到预定的要求。应该用正式的文档资料把测试计划、详细测应该用正式的文档资料把测试计划、详细测应该用正式的文档资料把测试计划、详细测应该用正式的文档资料把测试计划、详细测试方案以及实际测试结果保存下来,作为软件配试方案以及实际测试结果保存下来,作为软件配试方案以及实际测试结果保存下来,作为软件配试方案以及实际测试结果保存下来,作为软件配置的一个组成部分。置的一个组成部分。置的一个组成部分。置的一个组成部分。3.3.运行维护阶段运行维护阶段 维护时期的主要任务是通过各种必要的维护维护时期的主要任务是通过各种必要的维护维护时期的主要任务是通过各种必要的维护维护时期的主要任务是通过各种必要的维护活动使软件持久地满足用户的需要。具体地说,活动使软件持久地满足用户的需要。具体地说,活动使软件持久地满足用户的需要。具体地说,活动使软件持久地满足用户的需要。具体地说,当软件在使用过程中发现错误时应该加以改正;当软件在使用过程中发现错误时应该加以改正;当软件在使用过程中发现错误时应该加以改正;当软件在使用过程中发现错误时应该加以改正;当环境改变时应该修改软件以适应新的环境;当当环境改变时应该修改软件以适应新的环境;当当环境改变时应该修改软件以适应新的环境;当当环境改变时应该修改软件以适应新的环境;当用户有新要求时应该及时改进软件以满足用户的用户有新要求时应该及时改进软件以满足用户的用户有新要求时应该及时改进软件以满足用户的用户有新要求时应该及时改进软件以满足用户的新需要。新需要。新需要。新需要。软件生存周期软件生存周期软件生存周期软件生存周期1.5 1.5 软件过程软件过程 过程定义了运用方法的顺序、应该交付的文过程定义了运用方法的顺序、应该交付的文过程定义了运用方法的顺序、应该交付的文过程定义了运用方法的顺序、应该交付的文档资料、为保证软件质量和协调变化所需要采取档资料、为保证软件质量和协调变化所需要采取档资料、为保证软件质量和协调变化所需要采取档资料、为保证软件质量和协调变化所需要采取的管理措施,以及标志软件开发各个阶段任务完的管理措施,以及标志软件开发各个阶段任务完的管理措施,以及标志软件开发各个阶段任务完的管理措施,以及标志软件开发各个阶段任务完成的里程碑。成的里程碑。成的里程碑。成的里程碑。通常使用生命周期模型简洁地描述软件过程。通常使用生命周期模型简洁地描述软件过程。通常使用生命周期模型简洁地描述软件过程。通常使用生命周期模型简洁地描述软件过程。生命周期模型规定了把生命周期划分成哪些阶段生命周期模型规定了把生命周期划分成哪些阶段生命周期模型规定了把生命周期划分成哪些阶段生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。及各个阶段的执行顺序,因此,也称为过程模型。及各个阶段的执行顺序,因此,也称为过程模型。及各个阶段的执行顺序,因此,也称为过程模型。生命周期包括生命周期包括生命周期包括生命周期包括:问题定义、可行性研究、需求问题定义、可行性研究、需求问题定义、可行性研究、需求问题定义、可行性研究、需求分析、总体设计、详细设计、编码和单元测试、分析、总体设计、详细设计、编码和单元测试、分析、总体设计、详细设计、编码和单元测试、分析、总体设计、详细设计、编码和单元测试、综合测试、运行维护,综合测试、运行维护,综合测试、运行维护,综合测试、运行维护,8 8 8 8个阶段。个阶段。个阶段。个阶段。1.1.瀑布模型瀑布模型 在在在在20202020世纪世纪世纪世纪80808080年代之前,瀑布模型一直是惟一年代之前,瀑布模型一直是惟一年代之前,瀑布模型一直是惟一年代之前,瀑布模型一直是惟一被广泛采用的生命周期模型,现在它仍然是软件被广泛采用的生命周期模型,现在它仍然是软件被广泛采用的生命周期模型,现在它仍然是软件被广泛采用的生命周期模型,现在它仍然是软件工程中应用得最广泛的过程模型。传统软件工程工程中应用得最广泛的过程模型。传统软件工程工程中应用得最广泛的过程模型。传统软件工程工程中应用得最广泛的过程模型。传统软件工程方法学的软件过程,基本上可以用瀑布模型来描方法学的软件过程,基本上可以用瀑布模型来描方法学的软件过程,基本上可以用瀑布模型来描方法学的软件过程,基本上可以用瀑布模型来描述。述。述。述。规定了软件生存周期的各个阶段如同瀑布流规定了软件生存周期的各个阶段如同瀑布流规定了软件生存周期的各个阶段如同瀑布流规定了软件生存周期的各个阶段如同瀑布流水,逐级下落,自上而下、相互衔接的固定次序。水,逐级下落,自上而下、相互衔接的固定次序。水,逐级下落,自上而下、相互衔接的固定次序。水,逐级下落,自上而下、相互衔接的固定次序。实际的瀑布模型实际的瀑布模型实际的瀑布模型实际的瀑布模型按照瀑布模型开发软件,有下述的几个特点按照瀑布模型开发软件,有下述的几个特点按照瀑布模型开发软件,有下述的几个特点按照瀑布模型开发软件,有下述的几个特点:n n阶段间具有顺序性和依赖性阶段间具有顺序性和依赖性阶段间具有顺序性和依赖性阶段间具有顺序性和依赖性n n推迟实现的观点推迟实现的观点推迟实现的观点推迟实现的观点n n质量保证的观点质量保证的观点质量保证的观点质量保证的观点优点:优点:优点:优点:n n强迫开发人员采用规范的方法(例如,结构化技强迫开发人员采用规范的方法(例如,结构化技强迫开发人员采用规范的方法(例如,结构化技强迫开发人员采用规范的方法(例如,结构化技术);术);术);术);n n 严格地规定了每个阶段必须提交的文档;严格地规定了每个阶段必须提交的文档;严格地规定了每个阶段必须提交的文档;严格地规定了每个阶段必须提交的文档;n n每个阶段结束前必须正式进行严格的技术审查和每个阶段结束前必须正式进行严格的技术审查和每个阶段结束前必须正式进行严格的技术审查和每个阶段结束前必须正式进行严格的技术审查和管理复审。管理复审。管理复审。管理复审。缺点:缺点:缺点:缺点:n n在可运行的软件产品交付给用户之前,用户只能在可运行的软件产品交付给用户之前,用户只能在可运行的软件产品交付给用户之前,用户只能在可运行的软件产品交付给用户之前,用户只能通过文档来了解未来的产品是什么样的;通过文档来了解未来的产品是什么样的;通过文档来了解未来的产品是什么样的;通过文档来了解未来的产品是什么样的;n n开发人员和用户之间缺乏有效的沟通,很可能导开发人员和用户之间缺乏有效的沟通,很可能导开发人员和用户之间缺乏有效的沟通,很可能导开发人员和用户之间缺乏有效的沟通,很可能导致最终开发出的软件产品不能真正满足用户的需致最终开发出的软件产品不能真正满足用户的需致最终开发出的软件产品不能真正满足用户的需致最终开发出的软件产品不能真正满足用户的需求。求。求。求。2.2.快速原型模型快速原型模型 快速原型模型的第一步是快速建立一个能反快速原型模型的第一步是快速建立一个能反快速原型模型的第一步是快速建立一个能反快速原型模型的第一步是快速建立一个能反映用户主要需求的原型系统,让用户在计算机上映用户主要需求的原型系统,让用户在计算机上映用户主要需求的原型系统,让用户在计算机上映用户主要需求的原型系统,让用户在计算机上试用它,通过实践来了解目标系统的概貌。试用它,通过实践来了解目标系统的概貌。试用它,通过实践来了解目标系统的概貌。试用它,通过实践来了解目标系统的概貌。通常,用户试用原型系统之后会提出许多修通常,用户试用原型系统之后会提出许多修通常,用户试用原型系统之后会提出许多修通常,用户试用原型系统之后会提出许多修改意见,开发人员按照用户的意见快速地修改原改意见,开发人员按照用户的意见快速地修改原改意见,开发人员按照用户的意见快速地修改原改意见,开发人员按照用户的意见快速地修改原型系统,然后再次请用户试用型系统,然后再次请用户试用型系统,然后再次请用户试用型系统,然后再次请用户试用一旦用户认为一旦用户认为一旦用户认为一旦用户认为这个原型系统确实能做他们所需要的工作,开发这个原型系统确实能做他们所需要的工作,开发这个原型系统确实能做他们所需要的工作,开发这个原型系统确实能做他们所需要的工作,开发人员便可据此书写规格说明文档,根据这份文档人员便可据此书写规格说明文档,根据这份文档人员便可据此书写规格说明文档,根据这份文档人员便可据此书写规格说明文档,根据这份文档开发出的软件可以满足用户的真实需求。开发出的软件可以满足用户的真实需求。开发出的软件可以满足用户的真实需求。开发出的软件可以满足用户的真实需求。快速原型模型快速原型模型快速原型模型快速原型模型优点优点优点优点:n n使用这种软件过程开发出的软件产品通常能满足使用这种软件过程开发出的软件产品通常能满足使用这种软件过程开发出的软件产品通常能满足使用这种软件过程开发出的软件产品通常能满足拥护的真实需求拥护的真实需求拥护的真实需求拥护的真实需求;n n软件产品的开发过程基本上是线性顺序过程软件产品的开发过程基本上是线性顺序过程软件产品的开发过程基本上是线性顺序过程软件产品的开发过程基本上是线性顺序过程3.3.增量模型增量模型 增量模型也称为渐增模型,使用增量模型开增量模型也称为渐增模型,使用增量模型开增量模型也称为渐增模型,使用增量模型开增量模型也称为渐增模型,使用增量模型开发软件时,把软件产品作为一系列的增量构件来发软件时,把软件产品作为一系列的增量构件来发软件时,把软件产品作为一系列的增量构件来发软件时,把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由若干个相设计、编码、集成和测试。每个构件由若干个相设计、编码、集成和测试。每个构件由若干个相设计、编码、集成和测试。每个构件由若干个相互协作的模块构成,并且能够完成相对独立的功互协作的模块构成,并且能够完成相对独立的功互协作的模块构成,并且能够完成相对独立的功互协作的模块构成,并且能够完成相对独立的功能。能。能。能。整个软件产品被分解成许多个增量构件整个软件产品被分解成许多个增量构件整个软件产品被分解成许多个增量构件整个软件产品被分解成许多个增量构件,开发开发开发开发人员一个构件接一个构件地向用户提交产品人员一个构件接一个构件地向用户提交产品人员一个构件接一个构件地向用户提交产品人员一个构件接一个构件地向用户提交产品.每次每次每次每次用户都得到一个满足部分需求的可运行的产品用户都得到一个满足部分需求的可运行的产品用户都得到一个满足部分需求的可运行的产品用户都得到一个满足部分需求的可运行的产品,直直直直到最后一次得到满足全部需求的完整产品。到最后一次得到满足全部需求的完整产品。到最后一次得到满足全部需求的完整产品。到最后一次得到满足全部需求的完整产品。增量模型增量模型增量模型增量模型优点:优点:优点:优点:n n能在较短时间内向用户提交可完成部分工作的产能在较短时间内向用户提交可完成部分工作的产能在较短时间内向用户提交可完成部分工作的产能在较短时间内向用户提交可完成部分工作的产品;品;品;品;n n逐步增加产品功能,从而使用户有较充裕的时间逐步增加产品功能,从而使用户有较充裕的时间逐步增加产品功能,从而使用户有较充裕的时间逐步增加产品功能,从而使用户有较充裕的时间学习和适应新产品,减少一个全新的软件给客户学习和适应新产品,减少一个全新的软件给客户学习和适应新产品,减少一个全新的软件给客户学习和适应新产品,减少一个全新的软件给客户组织带来的冲击。组织带来的冲击。组织带来的冲击。组织带来的冲击。4.4.螺旋模型螺旋模型 在软件开发过程中必须及时识别和分析风险,在软件开发过程中必须及时识别和分析风险,在软件开发过程中必须及时识别和分析风险,在软件开发过程中必须及时识别和分析风险,并且采取适当措施以消除或减少风险的危害。并且采取适当措施以消除或减少风险的危害。并且采取适当措施以消除或减少风险的危害。并且采取适当措施以消除或减少风险的危害。构建原型是一种能使某些类型的风险降至最构建原型是一种能使某些类型的风险降至最构建原型是一种能使某些类型的风险降至最构建原型是一种能使某些类型的风险降至最低的方法。低的方法。低的方法。低的方法。螺旋模型的基本思想:螺旋模型的基本思想:螺旋模型的基本思想:螺旋模型的基本思想:使用原型及其他方法来尽量降低风险。理解使用原型及其他方法来尽量降低风险。理解使用原型及其他方法来尽量降低风险。理解使用原型及其他方法来尽量降低风险。理解这种模型的一个简便方法,是把它看作在每个阶这种模型的一个简便方法,是把它看作在每个阶这种模型的一个简便方法
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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