1、第第1 1章章 概概 论论 软件、软件工程的概念以及开发的主要原则软件、软件工程的概念以及开发的主要原则 软件开发过程的模型以及开发方法软件开发过程的模型以及开发方法 软件工程的生存周期软件工程的生存周期 软件工程发展的最新动向软件工程发展的最新动向2023-1-2411.1.1 1.1.1 软件的定义及特点软件的定义及特点n 定义定义 软件软件(Software)(Software)在计算机系统中与硬件在计算机系统中与硬件(Hardware)(Hardware)相互相互依存,包括依存,包括程序程序(Program)(Program)、相关数据相关数据(Data)(Data)及其及其说明说明文
2、档文档(Document)(Document)。其中。其中程序程序是按照事先设计的功能和是按照事先设计的功能和性能要求执行的指令序列;性能要求执行的指令序列;数据数据是程序能正常操纵信息是程序能正常操纵信息的数据结构;的数据结构;说明文档说明文档包含与程序开发、维护和使用过包含与程序开发、维护和使用过程中有关的各种图文数据。程中有关的各种图文数据。1.1 1.1 软件软件2023-1-242n 软件的特点软件的特点 1.1.软件是一种逻辑实体,而不是具体的物理实体。软件是一种逻辑实体,而不是具体的物理实体。2.2.软件的生产于硬件不同。软件的生产于硬件不同。3.3.在软件的运行和使用期间,没有
3、硬件那样的机械磨损,在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题。老化问题。失效率时间磨合 调整 磨损用坏硬件失效曲线失效率时间软件失效曲线理想曲线实际曲线1.1.1 1.1.1 软件的定义及特点软件的定义及特点2023-1-243 另外,软件还具有受计算机硬件系统限制、至今尚未另外,软件还具有受计算机硬件系统限制、至今尚未摆脱人工开发方式、开发过程复杂、成本相当昂贵,摆脱人工开发方式、开发过程复杂、成本相当昂贵,涉及诸多社会因素等特点。涉及诸多社会因素等特点。1.1.1 1.1.1 软件的定义及特点软件的定义及特点n 软件的特点软件的特点2023-1-244 1 1程序设计阶段程
4、序设计阶段 2020世纪世纪5050年代初期至年代初期至2020世纪世纪6060年代中期年代中期 2 2程序系统阶段程序系统阶段 2020世纪世纪6060年代中期至年代中期至7070年代末年代末 期期 3 3软件工程阶段软件工程阶段 从从2020世纪世纪7070年代中期开始,计年代中期开始,计 算机发展到第个三算机发展到第个三阶段阶段 4 4第四阶段第四阶段从从2020世纪世纪8080年代中期开始年代中期开始,计算机发展到第个四计算机发展到第个四阶段阶段 1.1.2 1.1.2 软件的发展历程软件的发展历程2023-1-245 四个阶段典型技术比较四个阶段典型技术比较阶段阶段 第一阶段第一阶段
5、 第二阶段第二阶段 第三阶段第三阶段 第四阶段第四阶段 典典 型型 技技 术术 面向批处理面向批处理有限的分布有限的分布自定义软件自定义软件 多用户多用户实时实时数据库数据库软件产品软件产品 分布式系统分布式系统嵌入嵌入“智能智能”低成本硬件低成本硬件消费者的影响消费者的影响 强大的桌面系统强大的桌面系统面向对象技术面向对象技术专家系统、人工专家系统、人工神经网络、并行神经网络、并行计算、网格计算计算、网格计算 1.1.2 1.1.2 软件的发展历程软件的发展历程2023-1-24n 1.1.基于软件的功能划分基于软件的功能划分 系统软件系统软件 支撑软件支撑软件 应用软件应用软件n 2.2.
6、基于软件规模划分基于软件规模划分 微型软件微型软件 小型软件小型软件 中型软件中型软件 大型软件大型软件 甚大型软件甚大型软件 极大型软件极大型软件1.1.3 1.1.3 软件的分类软件的分类2023-1-247n 3.3.基于软件工作方式划分基于软件工作方式划分 实时处理软件实时处理软件 交互式软件交互式软件 分时软件分时软件 批处理软件批处理软件1.1.3 1.1.3 软件的分类软件的分类2023-1-248n NetscapeNetscape创始人、硅谷著名投资人创始人、硅谷著名投资人马克马克安德森安德森(Marc Andreessen(Marc Andreessen,19711971)
7、在在20112011年年8 8月月2121日华日华尔街日报上发表的尔街日报上发表的软件正在吞噬整个世界软件正在吞噬整个世界文章中文章中称,当今的软件应用无所不在,并且正在吞噬整个世称,当今的软件应用无所不在,并且正在吞噬整个世界。界。1.1.4 1.1.4 软件的应用领域软件的应用领域2023-1-2491.2 1.2 软件危机软件危机n 定义:软件危机是计算机软件在它的开发和维护定义:软件危机是计算机软件在它的开发和维护过程中所遇到的一系列严重问题。过程中所遇到的一系列严重问题。主要包含两方面的问题:主要包含两方面的问题:如何开发软件,怎样满足对软件日益增长的需求;如何开发软件,怎样满足对软
8、件日益增长的需求;如何维护数量不断膨胀的已有软件。如何维护数量不断膨胀的已有软件。1.2.1 1.2.1 软件危机的定义软件危机的定义2023-1-2410n 软件危机的现象软件危机的现象 对软件开发成本和进度的估计常常很不准确。对软件开发成本和进度的估计常常很不准确。用户对用户对“已完成的已完成的”软件系统不满意的现象经常发生。软件系统不满意的现象经常发生。软件产品的质量往往靠不住。软件产品的质量往往靠不住。软件常常是不可维护的。软件常常是不可维护的。1.2.1 1.2.1 软件危机的定义软件危机的定义2023-1-2411 软件通常没有适当的文档资料。计算机软件不仅仅是软件通常没有适当的文
9、档资料。计算机软件不仅仅是程序,还应该有一整套文档资料。程序,还应该有一整套文档资料。软件成本在计算机系统总成本中所占的比例逐年上升。软件成本在计算机系统总成本中所占的比例逐年上升。软件开发生产率提高的速度,远远跟不上计算机应用软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。迅速普及深入的趋势。n 软件危机的现象软件危机的现象1.2.1 1.2.1 软件危机的定义软件危机的定义2023-1-2412n(1)(1)忽视软件开发前期的需求分析。忽视软件开发前期的需求分析。n(2)(2)开发过程没有统一的、规范的方法论的指导,文开发过程没有统一的、规范的方法论的指导,文件资料不齐全
10、,忽视人与人的交流。件资料不齐全,忽视人与人的交流。n(3)(3)忽视测试阶段的工作,提交用户的软件质量差。忽视测试阶段的工作,提交用户的软件质量差。n(4)(4)忽视软件的维护。忽视软件的维护。n(5)(5)缺少规范而盲目编写程序。缺少规范而盲目编写程序。1.2.2 1.2.2 软件危机产生的原因软件危机产生的原因2023-1-2413n 组织管理组织管理 工程项目管理方法工程项目管理方法n 技术措施技术措施 软件开发技术与方法软件开发技术与方法 软件工具软件工具1.2.3 1.2.3 解决软件危机的途径解决软件危机的途径2023-1-24141.3 1.3 软件工程软件工程1.3.1 1.
11、3.1 软件工程的定义和研究软件工程的定义和研究对象对象n 著名的软件工程专家巴利著名的软件工程专家巴利玻姆玻姆(Barry W.Boehm(Barry W.Boehm,19351935)把把软件工程软件工程定义为定义为“运用现代科学技术知识来运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件数据所必需的相关文件数据。”2023-1-2415n 软件工程定义软件工程定义19931993年年IEEEIEEE进一步给出了更全面的定义,即软件进一步给出了更全面的定义,即软件工程把系统化的、规范化的、可度量的途径应用于
12、工程把系统化的、规范化的、可度量的途径应用于软件开发、运行和维护的过程中,也就是把工程化软件开发、运行和维护的过程中,也就是把工程化应用于软件中。应用于软件中。实际上软件工程的具体研究对象就是软件系统。它实际上软件工程的具体研究对象就是软件系统。它包括了方法、工具和过程包括了方法、工具和过程3 3个要素。个要素。1.3.1 1.3.1 软件工程的定义和研究对象软件工程的定义和研究对象2023-1-2416n 著名的软件工程专家著名的软件工程专家B.W.BoehmB.W.Boehm提出了软件提出了软件工程的七条基本原理。工程的七条基本原理。(1)(1)这七条原理是确保软件产品质量和开发效率的这七
13、条原理是确保软件产品质量和开发效率的原理的最小集合。原理的最小集合。(2)(2)这七条原理是互相独立的,缺一不可又是相当这七条原理是互相独立的,缺一不可又是相当完备的。完备的。1.3.2 1.3.2 软件工程的基本原理软件工程的基本原理2023-1-2417n 用分阶段的生命周期计划严格管理用分阶段的生命周期计划严格管理 不成功的软件项目中有一半左右是由于计划不周造成的。不成功的软件项目中有一半左右是由于计划不周造成的。n 坚持进行阶段评审坚持进行阶段评审 软件的质量保证工作不能等到编码阶段结束之后再进行。软件的质量保证工作不能等到编码阶段结束之后再进行。n 实行严格的产品控制实行严格的产品控
14、制 在软件开发过程中不应随意改变需求,因为改变一项需在软件开发过程中不应随意改变需求,因为改变一项需求往往需要付出较高的代价。求往往需要付出较高的代价。n 采用现代程序设计技术采用现代程序设计技术 采用先进的技术既可提高软件开发的效率,又可提高软采用先进的技术既可提高软件开发的效率,又可提高软件维护的效率。件维护的效率。1.3.2 1.3.2 软件工程的基本原理软件工程的基本原理2023-1-2418n 结果应能清楚地审查结果应能清楚地审查 根据软件开发项目的总目标及完成期限,规定开发根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准,从而使得所得到的结果能够组织的责任和产品标准
15、,从而使得所得到的结果能够清楚地审查。清楚地审查。n 开发小组的人员应该少而精开发小组的人员应该少而精n 承认不断改进软件工程实践的必要性承认不断改进软件工程实践的必要性 不仅要积极主动地采纳新的软件技术,而且要注不仅要积极主动地采纳新的软件技术,而且要注意不断总结经验。意不断总结经验。1.3.2 1.3.2 软件工程的基本原理软件工程的基本原理2023-1-2419n 组织实施软件工程项目,最终目标是降低软件的开组织实施软件工程项目,最终目标是降低软件的开发成本,提高软件的质量、软件的可维护性和软件发成本,提高软件的质量、软件的可维护性和软件开发的效率。软件工程的主要目标是生产具有正确开发的
16、效率。软件工程的主要目标是生产具有正确性、可用性以及开销合适的产品。性、可用性以及开销合适的产品。1.3.3 1.3.3 软件工程软件工程项目的基本目标项目的基本目标2023-1-2420n(1)(1)抽象抽象(abstraction)(abstraction)n(2)(2)信息隐藏信息隐藏(information hiding)(information hiding)n(3)(3)模块化模块化(modularity)(modularity)n(4)(4)局部化局部化(localization)(localization)n(5)(5)一致性一致性(consistency)(consisten
17、cy)n(6)(6)完整性完整性(completeness)(completeness)n(7)(7)可预测性可预测性(verifiability)(verifiability)1.3.4 1.3.4 软件工程的基本原则软件工程的基本原则2023-1-2421n 定义:定义:一个软件从开始计划起,到废弃不用止,一个软件从开始计划起,到废弃不用止,称为软件生存周期称为软件生存周期(life cycle)(life cycle)。n 软件生存周期包括软件生存周期包括计划、开发、运行计划、开发、运行三个时期,三个时期,每一时期又可分为若干更小的阶段。每一时期又可分为若干更小的阶段。1.4 1.4 软
18、件生存周期软件生存周期2023-1-2422n对以上步骤作一个概括的描述对以上步骤作一个概括的描述(1)(1)制定计划制定计划(planning)(planning)(2)(2)需求分析和定义需求分析和定义(requirement analysis and definition)(requirement analysis and definition)(3)(3)软件设计软件设计(software design)(software design)(4)(4)程序编写程序编写(coding(coding、programming)programming)(5)(5)软件测试软件测试(testing
19、)(testing)(6)(6)运行与维护运行与维护(running maintenance)(running maintenance)1.4 1.4 软件生存周期软件生存周期2023-1-2423n 瀑布模型瀑布模型将软件生命周期划分为制定计划、需求将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。相互衔接的固定次序,如同瀑布流水,逐级下落。1.5 1.5 软件开发过程模型软件开发过程模型1.5.1
20、 1.5.1 瀑布模型瀑布模型2023-1-2424标准的瀑布模型标准的瀑布模型1.5.1 1.5.1 瀑布模型瀑布模型2023-1-24251.5.1 1.5.1 瀑布模型瀑布模型实际的瀑布模型实际的瀑布模型2023-1-2426 这种模型的线性过程太理想化,已不再适合现代的这种模型的线性过程太理想化,已不再适合现代的软件开发模式,几乎被业界抛弃,其主要问题在于:软件开发模式,几乎被业界抛弃,其主要问题在于:(1)(1)各个阶段的划分完全固定,阶段之间产生大量的各个阶段的划分完全固定,阶段之间产生大量的 文档,极大地增加了工作量;文档,极大地增加了工作量;(2)(2)由于开发模型是线性的,用
21、户只有等到整个过程的末由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发的风险;期才能见到开发成果,从而增加了开发的风险;(3)(3)早期的错误可能要等到开发后期的测试阶段才能发现,早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果。进而带来严重的后果。n 实际的瀑布模型实际的瀑布模型2023-1-24271.5.1 1.5.1 瀑布模型瀑布模型n 快速原型模型快速原型模型的第一步是建造一个快速原型,实现客的第一步是建造一个快速原型,实现客户或未来的用户与系统之间的交互,用户或客户可以户或未来的用户与系统之间的交互,用户或客户可以通过对原型的评价,
22、进一步细化待开发软件的需求,通过对原型的评价,进一步细化待开发软件的需求,由此通过逐步调整原型而进一步满足客户的要求,开由此通过逐步调整原型而进一步满足客户的要求,开发人员也可以确定客户的真正需求是什么;第二步则发人员也可以确定客户的真正需求是什么;第二步则在第一步的基础上开发客户满意的软件产品在第一步的基础上开发客户满意的软件产品 。1.5.2 1.5.2 快速原型模型快速原型模型2023-1-24281.5.2 1.5.2 快速原型模型快速原型模型2023-1-24291.5.2 1.5.2 快速原型模型快速原型模型2023-1-2430n 19881988年,年,Barry BoehmB
23、arry Boehm正式发表了软件系统开正式发表了软件系统开发的发的“螺旋模型螺旋模型”,它将瀑布模型和快速原型模,它将瀑布模型和快速原型模型结合起来,强调了其它模型所忽视的风险分析,型结合起来,强调了其它模型所忽视的风险分析,特别适合于大型复杂的系统。特别适合于大型复杂的系统。1.5.3 1.5.3 螺旋模型螺旋模型2023-1-2431n 螺旋模型沿着螺线进行若干次迭代:螺旋模型沿着螺线进行若干次迭代:(1)(1)制定计划:制定计划:确定软件目标,选定实施方案,弄清确定软件目标,选定实施方案,弄清项目开发的限制条件;项目开发的限制条件;(2)(2)风险分析:风险分析:分析评估所选方案,考虑
24、如何识别和分析评估所选方案,考虑如何识别和消除风险;消除风险;(3)(3)实施工程:实施工程:实施软件开发和验证;实施软件开发和验证;(4)(4)客户评估:客户评估:评价开发工作,提出修正建议,制定评价开发工作,提出修正建议,制定下一步计划。下一步计划。1.5.3 1.5.3 螺旋模型螺旋模型2023-1-2432需求计划 操作概念 软件需求提交部分确定目标方案限制条件费用累加风险分析风险分析风险分析原型1原型2原型3可操作原型详细设计编程模块测试组装测试确认测试运行评估方案,标识、解决风险软件产品设计设计验证和确认需求验证开发计划测试计划集成和计划下阶段工作开发验证下一级产品1.5.3 1.
25、5.3 螺旋模型螺旋模型2023-1-24n 螺旋模型也有一定的限制条件,具体如下:螺旋模型也有一定的限制条件,具体如下:(1)(1)螺旋模型强调风险分析,但要求许多客户接受和相信这螺旋模型强调风险分析,但要求许多客户接受和相信这种分析,并做出相关反应是不容易的,因此,这种模型往往种分析,并做出相关反应是不容易的,因此,这种模型往往适应于内部的大规模软件开发。适应于内部的大规模软件开发。(2)(2)如果执行风险分析会大大影响项目的利润,那么进行风如果执行风险分析会大大影响项目的利润,那么进行风险分析毫无意义,因此,螺旋模型只适合于大规模软件项目。险分析毫无意义,因此,螺旋模型只适合于大规模软件
26、项目。(3)(3)软件开发人员应该擅长寻找可能的风险,准确地分析风软件开发人员应该擅长寻找可能的风险,准确地分析风险,否则将会带来更大的风险。险,否则将会带来更大的风险。1.5.3 1.5.3 螺旋模型螺旋模型2023-1-2434n 在在增量模型增量模型中,软件被作为一系列的增量构件中,软件被作为一系列的增量构件来设计、实现、集成和测试,每一个构件是能来设计、实现、集成和测试,每一个构件是能够满足一定功能,并且能够最终组合成一个具够满足一定功能,并且能够最终组合成一个具有完整功能软件的模块。有完整功能软件的模块。1.5.4 1.5.4 增量模型增量模型2023-1-24351.5.4 1.5
27、.4 增量模型增量模型2023-1-24n 增量模型也存在以下缺陷:增量模型也存在以下缺陷:(1)(1)由于各个构件是逐渐并入已有的软件体系结构中由于各个构件是逐渐并入已有的软件体系结构中的,所以加入构件必须不破坏已构造好的系统部分,的,所以加入构件必须不破坏已构造好的系统部分,这需要软件具备开放式的体系结构。这需要软件具备开放式的体系结构。(2)(2)在开发过程中,需求的变化是不可避免的。增量在开发过程中,需求的变化是不可避免的。增量模型的灵活性可以使其适应这种变化的能力大大优于模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边瀑布模型和快速原型模型
28、,但也很容易退化为边做边改模型,从而使软件过程的控制失去整体性。改模型,从而使软件过程的控制失去整体性。1.5.4 1.5.4 增量模型增量模型2023-1-2437n 喷泉模型喷泉模型与传统的模型比较,具有更多的增量和与传统的模型比较,具有更多的增量和迭代性质,生存期的各个阶段可以相互重迭和多迭代性质,生存期的各个阶段可以相互重迭和多次反复,而且在项目的整个生存期中还可以嵌入次反复,而且在项目的整个生存期中还可以嵌入子生存期。就像水喷上去又可以落下来,可以落子生存期。就像水喷上去又可以落下来,可以落在中间,也可以落在最底部。在中间,也可以落在最底部。1.5.5 1.5.5 喷泉模型喷泉模型2
29、023-1-24381.5.5 1.5.5 喷泉模型喷泉模型2023-1-2439n 面向对象的技术面向对象的技术为软件工程基于构件的过程为软件工程基于构件的过程模型提供了技术框架。面向对象技术强调类模型提供了技术框架。面向对象技术强调类的创建,类封装了数据以及操纵该数据的算的创建,类封装了数据以及操纵该数据的算法。面向对象的类可以复用。这就导致了构法。面向对象的类可以复用。这就导致了构件组装模型在软件复用上的优势,提高了软件组装模型在软件复用上的优势,提高了软件开发的效率。件开发的效率。1.5.6 1.5.6 构件组装模型构件组装模型2023-1-24401.5.6 1.5.6 构件组装模型
30、构件组装模型2023-1-24n RUPRUP方法方法与早期的开发模型相比,提高了团队与早期的开发模型相比,提高了团队生产力,在迭代的开发过程、需求管理、基于生产力,在迭代的开发过程、需求管理、基于组件的体系结构、可视化软件建模、验证软件组件的体系结构、可视化软件建模、验证软件质量及控制软件变更等方面,针对所有关键的质量及控制软件变更等方面,针对所有关键的开发活动为每个开发成员提供了必要的准则、开发活动为每个开发成员提供了必要的准则、模板和工具指导,并确保全体成员共享相同的模板和工具指导,并确保全体成员共享相同的知识基础。它建立了简洁和清晰的过程结构,知识基础。它建立了简洁和清晰的过程结构,为
31、开发过程提供较大的通用性。为开发过程提供较大的通用性。1.5.7 1.5.7 统一过程统一过程RUPRUP模型模型2023-1-24421 1RUPRUP的二维开发模型的二维开发模型1.5.7 1.5.7 统一过程统一过程RUPRUP模型模型2023-1-24432 2开发过程中的各个阶段和里程碑开发过程中的各个阶段和里程碑 (1)(1)初始阶段初始阶段 初始阶段结束时是第一个重要的里程碑:生命周期目初始阶段结束时是第一个重要的里程碑:生命周期目标标(Lifecycle Objective)(Lifecycle Objective)里程碑。生命周期目标里程碑里程碑。生命周期目标里程碑评价项目基
32、本的生存能力。评价项目基本的生存能力。(2)(2)细化阶段细化阶段 细化阶段结束时是第二个重要的里程碑:生命周期结细化阶段结束时是第二个重要的里程碑:生命周期结构构(Lifecycle Architecture)(Lifecycle Architecture)里程碑。生命周期结构里里程碑。生命周期结构里程碑为系统的结构建立了管理基准并使项目小组能够程碑为系统的结构建立了管理基准并使项目小组能够在构建阶段中进行衡量。此刻,要检验详细的系统目在构建阶段中进行衡量。此刻,要检验详细的系统目标和范围、结构的选择标和范围、结构的选择 1.5.7 1.5.7 统一过程统一过程RUPRUP模型模型2023-
33、1-2444(3)(3)构造阶段构造阶段 构造阶段结束时是第三个重要的里程碑:初始功能构造阶段结束时是第三个重要的里程碑:初始功能(Initial(Initial Operational)Operational)里程碑。初始功能里程碑决定了产品是否可以在里程碑。初始功能里程碑决定了产品是否可以在测试环境中进行部署。此刻,要确定软件、环境、用户是否可测试环境中进行部署。此刻,要确定软件、环境、用户是否可以开始系统的运作。此时的产品版本也常被称为以开始系统的运作。此时的产品版本也常被称为“betabeta”版。版。(4)(4)交付阶段交付阶段 在交付阶段的终点是第四个里程碑:产品发布在交付阶段的终
34、点是第四个里程碑:产品发布(Product(Product Release)Release)里程碑。此时,要确定目标是否实现,是否应该开始里程碑。此时,要确定目标是否实现,是否应该开始另一个开发周期。在一些情况下这个里程碑可能与下一个周期另一个开发周期。在一些情况下这个里程碑可能与下一个周期的初始阶段的结束重合。的初始阶段的结束重合。2 2开发过程中的各个阶段和里程碑开发过程中的各个阶段和里程碑 1.5.7 1.5.7 统一过程统一过程RUPRUP模型模型2023-1-24453 3RUPRUP的核心工作流的核心工作流(Core Workflows)(Core Workflows)(1)(1)
35、商业建模商业建模(Business Modeling)(Business Modeling)(2)(2)需求需求(Requirements)(Requirements)(3)(3)分析和设计分析和设计(Analysis&Design)(Analysis&Design)(4)(4)实现实现(Implementation)(Implementation)(5)(5)测试测试(Test)(Test)(6)(6)部署部署(Deployment)(Deployment)(7)(7)配置和变更管理配置和变更管理(Configuration&Change(Configuration&Change Manag
36、ement)Management)(8)(8)项目管理项目管理(Project Management)(Project Management)(9)(9)环境环境(Environment)(Environment)1.5.7 1.5.7 统一过程统一过程RUPRUP模型模型2023-1-24464 4RUPRUP的迭代开发模式的迭代开发模式 1.5.7 1.5.7 统一过程统一过程RUPRUP模型模型2023-1-2447聆听测试编码设计反馈迭代1.5.8 1.5.8 敏捷过程与极限编程敏捷过程与极限编程2023-1-2448准备好可发布版本完成开发工作完成产品设计项目目标得到认可完成产品发布
37、发布阶段稳定阶段开发阶段设计阶段规划阶段1.5.9 1.5.9 微软过程模型微软过程模型2023-1-24491.5.11 1.5.11 第四代技术模型第四代技术模型收集需求设计策略用4GL实现测试1.5.10 1.5.10 形式化方法模型形式化方法模型2023-1-24501.5.12 1.5.12 个人过程模型个人过程模型2023-1-24511.5.13 1.5.13 团队过程模型团队过程模型2023-1-2452n 1.1.结构化方法结构化方法n 2.2.面向数据结构的开发方法面向数据结构的开发方法n 3.3.面向对象的方法面向对象的方法n 4.4.视觉化开发方法视觉化开发方法1.6
38、1.6 软件开发方法及工具软件开发方法及工具1.6.1 1.6.1 软件的开发方法软件的开发方法2023-1-2453类型类型工具工具说明说明项目管理项目管理RUP支持对迭代化生存周期的控制,提供可定制的软件过程框架。配置管理配置管理ClearCase实现综合的软件配置管理,包括版本控制、工作空间管理、过程控制和建立管理。需求管理需求管理RequisitePro它是一种基于团队的需求管理工具,将数据库和 Word 结合起来,有效地组织需求、排列需求优先级以及跟踪需求变更。可视化建可视化建模模RoseRational Rose 是一个完全的,具有能满足所有建模环境(如Web 开发、数据建模、Visual Studio 和 C+)需求能力和灵活性的可视化建模工具。自动测试自动测试Robot可以对使用各种集成开发环境(IDE)和语言建立的软件应用程序,创建、修改并执行自动化的功能测试、分布式功能测试、回归测试和集成测试。1.6.2 1.6.2 软件的开发工具软件的开发工具2023-1-24541.7 1.7 软件工程的最新发展动向软件工程的最新发展动向n 1.1.软件工程合理的开发治理软件工程合理的开发治理n 2.2.软件工程全球化协作发展软件工程全球化协作发展n 3.3.软件工程模块化软件工程模块化n 4.4.软件工程开放式计算软件工程开放式计算2023-1-2455