软件工程方法学和软件过程

上传人:ta****u 文档编号:224226933 上传时间:2023-07-27 格式:DOCX 页数:13 大小:148.24KB
收藏 版权申诉 举报 下载
软件工程方法学和软件过程_第1页
第1页 / 共13页
软件工程方法学和软件过程_第2页
第2页 / 共13页
软件工程方法学和软件过程_第3页
第3页 / 共13页
资源描述:

《软件工程方法学和软件过程》由会员分享,可在线阅读,更多相关《软件工程方法学和软件过程(13页珍藏版)》请在装配图网上搜索。

1、第二讲 软件工程方法学和软件过程 一、 软件的生命周期 1、软件的生命周期 软件同世界上其它所有事物一样,也有产生、发展、成熟到消亡的过程,称 为软件的“生命周期”(life cycle)。“生命周期”把软件不仅仅看作一个静态的 事物,而看成是一个过程,需要动态地进行控制和管理,这对纠正软件开发中的 各种错误观念,实现对经济上合理有效的软件开发是至关重要的。 “生命周期”的概念是软件工程的基石,一切软件工程的研究和实践都是在 此概念基础上进行的。 2、软件生命周期的阶段划分 根据软件自身的特点,生命周期可以划分为以下四个主要阶段: (1) 软件定义: 确定软件开发的目标和具体要

2、求。 (2) 软件开发: 实现软件实体,测试,并交付用户 (3) 使用和维护: 用户使用软件,开发者进行维护 (4)软件废弃: 软件不再适应新的需求,维护代价太高,停止使用 二、 软件工程方法学 1、 软件工程方法学 软件工程方法学是指一套完整的、相关的软件开发技术,包括原则、方法、 过程和工具,也称为软件开发范型。 目前主要的软件工程方法学包括: 生命周期方法学 翦 面向对象方法学 詡敏捷方法学 2、 生命周期方法学: (1) 定义: 生命周期方法学是指严格按照软件的生命周期,采用分阶段计划和控制,以 及顺序实施的步骤,和各种结构化分析(SA, Struct

3、ured Analysis)和结构化设计 (SD, Structured Design)技术的软件开发方式。 生命周期方法学首先是一种软件开发的方式,它的特点,一是分阶段计划、 控制、顺序实施,另外就是在各个阶段采用结构化(包括结构化分析和结构化设 计)技术。 要注意:软件的生命周期概念和软件工程的生命周期方法学概念是两个不同 的概念,不能混淆。软件的生命周期方法学,只是软件开发的一种方法学,同其 他软件开发方法学一样,都是以软件生命周期的概念为基础而研究建立的。 生命周期方法学是软件工程最传统的方法学,虽然它并未完全解决软件危机 的问题,但是对软件工程的发展起到了极其重要的促进作用,至

4、今仍旧是最成熟 和应用最为广泛的方法学。 我们上面给出了软件工程生命周期方法学的定义,下面我们就根据这个定 义,来详细讨论一下生命周期方法学的主要特点,分析一下怎么样的软件开发方 式就可以被称做是“生命周期方法学”。 (2) 特点: 詡严格的分阶段计划 就是将软件开发过程从时间上分解,降低软件开发的复杂度。 软件危机的主要表现之一,就在于软件的开发过程难以管理和控制,软件的 质量没有保证。随着软件规模越来越大,开发周期越来越长,整个软件开发过程 也变得越来越复杂,越来越混乱。人类解决复杂问题的一个惯常方式就是分解, 把复杂的事物分解为小的部分,再逐一解决。生命周期方法学依照软件的生命

5、周 期,将完整的软件开发过程从时间上划分为许多相对独立的阶段。在每一个阶段, 都有它确定的任务和方法,以及完成的结果的标准。 詡瀑布式开发模式 “瀑布式开发模式”,也就是定义里的“顺序实施”。瀑布的特点是水流从上 到下,一落到底,不会反复。生命周期方法学采用了从上到下,各个阶段逐一进 行的软件开发方式,前一个阶段结束后形成的结果作为下一个阶段工作开始的依 据。在每一个阶段的任务没有按质量要求完成时,不进行下一个阶段的工作,每 个阶段完成后也不再反复。 詡严格的技术审査和管理复审 技术审查和管理复审是技术和经济两个方面管理软件开发过程,保证软件的 质量,控制开发成本和进度。 技术审查包

6、括文档齐备性的形式审查和阶段结果的实质审查。技术审查的要 点就是不能把错误带入下一个阶段,以满足瀑布式开发模式的需要。技术审查通 过后要进行管理复审。它由组织开发工作的项目管理人员进行,是从进度和成本 的角度审查本阶段的工作,并对后续阶段的成本和进度计划进行调整,并对后续 的开发目标进行决策。 詡各个阶段采用结构化技术 结构化技术的基本思想是自上而下,逐步求精。结构化技术最先起源于编程 领域,后来随着生命周期方法学的发展被全面应用到软件开发过程的各个阶段。 在后续生命周期方法学各个阶段的详细介绍中会说明各种结构化技术的具体方 法。 3、面向对象方法学: (1) 定义: 面向对象方法学

7、是以面向对象技术为核心,利用类的继承等复用方式,通过 逐步细化地建立对象模型,以及迭代和演化的步骤完成软件开发的模式。 面向对象方法学起源于面向对象程序设计,是目前最符合人类解决现实问题 的思维模式和物理系统运行方式的软件开发方法学。 (2) 特点: 卷以对象作为基本的软件构件 在问题的解域模拟问题域的模型,数据和对数据的操作紧密结合。对象是一 种包含了数据和操作,并且良好封装的逻辑实体。整个软件由无数独立活动的对 象构成,对象之间通过消息机制相互通信和相互作用。 面向对象的软件结构和面向流程的软件结构之间有巨大的区别,与现实世界 中的实际系统更加吻合,是软件构建思想上的一次革命。

8、 詡软件定义和实现的统一 无论在定义、设计还是在实现阶段,面向对象方法学都是通过对系统模型的 逐步细化和精化来完成的,因此整个软件的开发过程就是一次由粗到细构建对象 模型的过程,定义和实现不再截然划分。 譏重视软件复用 面向对象方法学使用类来完成对象的定义,类还可以通过继承派生出新的 类,因此面向对象方法学本质上就具备了良好的软件复用的基础,可以在不同软 件中使用已有的类来派生出新的类,既利用了前人的软件开发成果,又可以根据 每个软件的实际情况产生新的对象,结合对象完善的封装机制,实现对象模型的 多层次、普遍的复用。 詡通过逐步演化来完成软件开发 面向对象方法学使用循环迭代的方式来开

9、发软件,整个软件系统是逐步精华 的,这既符合人类对事物的认识模式,又可以尽早获得软件开发的概貌性结果, 便于对软件需求进行验证。 4、敏捷方法学: (1) 定义: 敏捷方法学是针对用户需求迅速变化的现实情况,采用短周期交付形式和协 作开发的轻量级软件开发方式。 敏捷方法学是程序员对过多强调严格规范和文档的软件工程方法的一次更 高水平上的反动,强调以人为本、追求目标和“轻但适用”。 (2) 特点: 詡追求软件交付使用这一终极目标 敏捷方法学把一切软件开发的规范、标准、技术都置于“软件按期交付”这 一目标之下,强调任何使软件能够高质量地按期交付的方法、工具和过程都应得 到应用,把软件

10、能够满足用户的实际需求看做是软件开发工作的根本目标。 詡强调全面合作和交流 敏捷方法学把软件开发定性为一种创造和交流的合作活动,强调用户和开 发方不仅仅是合同的甲方和乙方,而是必须全面合作来完成软件开发工作;用户 和开发人员,开发人员之间的有效交流是最重要的成功因素,致力于寻找快捷、 方便和低成本的交流方式。 詡 重视软件开发中人的个性 敏捷方法学不把软件开发人员看做完成任务的机器,强调发挥个人的潜能和 主动性,保障开发人员得到足够的尊重和照顾,维持开发人员的工作积极性,以使开发工作能够有效地持续。 詡强调团队的力量 敏捷方法学不认为个人的能力决定了软件的成败,它强调开发人员之间的

11、 交流和配合,强调团队的合力,以保障团队在人员调整的情况下依然能够按期完 成软件开发。 詡灵活釆用各种开发和管理方式 正因为敏捷方法学强调终极目标,因此在具体开发方式和管理方式上,各种 具体的开发方法也有许多区别,只要能够有效地促进软件开发,各种方式方法都 可以使用。 三、 软件过程 软件过程是开发软件所需的一系列任务的框架,它规定了完成各项任务的步 骤和顺序。 1、 布模型 瀑布模型是最传统的软件开发过程,也是经典的生命周期方法学的组成部 分,在软件开发过程首次以“工程化”的思想为指导实现可控制、可管理的过程 发挥了非常重要的作用。 需求分析 软件设计 编码实

12、现 软件测试 软件维护 瀑布模型把软件开发过程从时间上划分成相对独立的阶段,并具备以下特 点: 八、、• 擞顺序实施,不能反复 每个阶段完成后才能开始下一个阶段的工作,每个阶段的工作结果都 是下一个阶段工作的出发点,一旦完成了一个阶段的工作,就不能再返回 重新进行该阶段的任务。 巒推迟编程实现 具体编制程序的工作放在需求分析和软件设计之后,不急于编程,以 保证在软件实现之前进行了充分细致的分析和设计,极端的情况下甚至推 崇在编程阶段之前不提供编程开发环境,完全脱离编程思维来完成软件分 析和设计工作。 詡通过阶段评审保证开发质量 因为瀑布模型在每一个阶段完成后不允许反复,

13、因此如何保证每个阶 段的工作结果能够全面、正确,不把错误带入下一个阶段就变得非常重要。 瀑布模型采用阶段评审来保证软件开发的质量。 撫要求文档齐备 瀑布模型在编程阶段完成之前是看不到软件实体的,因此为了保证各 个阶段的工作能够顺利开始和结束,保证阶段评审能够有据可依,对各个 阶段产生的文档要求非常严格,种类必须满足规范,内容必须完整充实, 表述必须清晰可读。 由于以上特点,瀑布模型也存在明显得缺陷: 詡难以验证需求 用户在软件开发过程的后期才能见到软件实体,因此即使文档再齐 备,用户也难以确定软件开发的目标和自己的真实需求完全一致,开发人 员也难以直观有效地摸清用户的需求细节,容易对

14、软件需求产生误判。 趨不能适应需求的变化 瀑布模型完全不允许在开发流程上出现反复,因此在开发周期比较长 的大型项目中,即使需求分析的结果是非常准确有效的,也会由于用户需 求随环境和时间的变化在最终的软件实体中不能得到完美地满足。瀑布模 型对需求变化的适应能力弱严重制约了面向网络时代的新型软件开发项 目的有效实施。 詡软件重用性差 提高软件开发成果的重用性是提高软件生产率的关键因素。瀑布模型 的开发基点是对某个具体用户需求的分析,采用的是由总到分、逐步细化 的结构化分析和设计技术,每个软件部件都是软件整体的有机组成部分, 这直接影响了软件部件在不同软件项目中的通用性和重用性。 2、快速

15、原型法 快速原型法是直接针对瀑布模型不能及时验证用户需求的缺陷而改进产生 的,它基于第4代编程语言(4GL)可以直观便捷地建立软件界面和软件结构的 特性,在获得软件开发需求后,开发出软件的快速原型供用户试用,通过用户的 反溃来调整需求分析结果,得到用户对需求的完全认可后再进行后续的软件设计 和实现工作。 快速原型法的特点是: 詡基于瀑布模型基础 快速原型法只是对瀑布模型进行了改进,整体流程和基本原则没有 发生变化。 詡使用快速原型完成需求验证 快速原型法使用快速原型来完成需求验证,使得用户需求的表述和 交流更加直观有效。 詡原型可以被抛弃,也可以演化成最终的软件 快速原型法

16、产生的原型可以在需求确认后被放弃,也可以作为界面 基础来进行后续的软件设计的实现。但在面向对象技术出现以前,由于 软件的界面结构与内部模块结构并不完全一致,快速原型演化成最终端 软件存在很多困难,多数情况下还是会重新进行软件的设计和实现。 使用快速原型来完成需求验证,使得用户需求的表述和交流更加直 观有效。 快速原型法的主要缺点有: 詡增加成本和开发时间 如果快速原型仅用来完成需求验证,就增加了整个软件开发过程的 成本和时间。 機不能适应需求的变化 快速原型法仍旧没有解决瀑布模型不能适应软件需求变化的问题。 3、增量模型 ■需求分析 总体设计 构件1

17、■ ■ ■ ■ 构件N 详细设计 详细设计 编码实现 编码实现 综合测试 综合测试 交付试用 交付试用 增量模型是在软件总体设计中,将软件整体划分为相对独立的构件(通常是 按照功能子系统),对每个构件分别进行详细设计、编码实行和综合测试,再分 别交付用户试用。整个软件的开发和交付是逐构件递增的,因此称为“增量模型”。 增量模型的特点是: 巒构件分解,逐步开发交付 将大型的软件进行构件分解,一个构件一个构件地开发交付,也是 化解软件开发复杂性的一种思路。 如果快速原型仅用来完成需求验证,就增加了整个软件开发过程的 成本和时间。 議根据用户反馈修改分析果和设计 在每

18、个构件先后交付用户使用的过程中,可以尽早得到用户的反馈 信息,便于对需求分析结果和软件设计进行修改,避免到最后一步才发 现问题。 翦 逐步进行用户培训 用户是逐步得到软件实体的,在这个过程中,用户可以逐步熟悉系 统工作方式和操作方式,降低了用户培训的难度。 增量模型的缺点有: 詡构件划分难以准确 构件划分在增量模型中非常重要,但是要准确地划分构件却十分困 难。构件划分不仅要保证软件功能的相对完整,还要准确定义不同构件 之间的相互联系和影响,避免构件逐步交付却由于配合问题用户不能使 用。 詡容易引入组装错误 在各个构件分别交付用户使用的过程中,容易引入组装错误(由于 构件间的相互作用

19、带来的软件运行错误)。组装错误常常不仅影响软件的 整体功能,而且对每个构件内部的可靠性和正确性都会产生影响。 4、 螺旋模型 螺旋模型是一种倍受重视的软件开发过程。在螺旋模型中,软件开发按照螺 旋状的路径反复进行,每个周期都会在不同的层次上完成软件原型的构建,通过 对原型的不断改进和细化得到最终的软件。同时,在螺旋模型的每个开发循环中, 都会经历阶段目标的确定和风险分析的步骤,以不断发现和排除软件开发进程中 的各种风险因素,全面掌控软件开发的进度和成本。 螺旋模型的特点是: 詡逐步提高开发目标 开发目标是逐步提高的,这有助于开发过程的控制和管理。 詡软件周期性迭代演化 软件在整个

20、开发过程中,以原型的方式逐步演化,不断迭代,最终 得到可以交付使用的软件系统。 詡 利用风险分析避免投资损失 在每个开发周期中,都要进行风险分析,及时做出后续开发的正确 决策,以避免投资的更大损失。 螺旋模型的缺点有: 巒适用于大型项目 螺旋模型投入的开发控制和管理成本比较高,适用于周期长、规模 大的软件项目。 翦风险分析要求较高 风险分析师螺旋模型得以顺利实施的关键,但是如何发现、预测和 控制风险是一项难度很大的工作,往往只能根据长期的经验来进行判断。 累计我用 确定口标 选样方孤 股定妁求条件 评估疗秦・ 认别时牆 凤险 计划卜-阶段 需求汁划I 与主命操柞槪念 周

21、期il■划 一 JF岌计划需求 确认 塔成耳 .测试卄别 -HI - i > ^Th 一 洋设 連造的 第”个 原卑. 设廿验征 与确认 成试 〔则X 一单一兀測 幵发•昭证 下一级严品 可运行 的原型 5、喷泉模型 喷泉模型是一种在面向对象方法学中应用很广泛的软件开发过程。在喷泉模 型软件开发的各个阶段中,系统表达都采用统一的对象模型,这样每个阶段的工 作都是对上一个阶段产生的对象模型进行细化求精的过程,反复迭代促进软件系 统的演化。在相邻的两个开发阶段之间,并没有明确清晰的工作边界,总是存在 局部的反复。 喷泉模型的特点是: 詡 各个阶段采用统一的系统模型

22、 这样有助于相邻阶段之间的衔接和配合。 詡逐步细化和精化 软件开发的整体过程和每个阶段内部的开发方式都是对系统模型的 逐步细化和精化过程,系统的演进既有继承性又有扩展性。 喷泉模型的缺点有: 譏仅适用于面向对象方法学 面向对象技术是喷泉模型可以得以实现的基础。 巒不易实现过程中的评审和质量控制 喷泉模型各个开发阶段之间边界模糊,阶段成果不清晰独立,过程 中的质量监控比较困难。 6、变换模型 变换模型是一种非常理想的软件开发过程。它使用形式化技术将软件的需求 分析和设计结果表达为数学上严格和无歧义的形式,再使用自动化软件工具将其 逐步变换编译为最终的可执行代码。 变换模型的特

23、点是: 詡自动产生程序代码 只要需求分析的结果可以良好地形式化表达,程序代码的生成就可 以自动完成。 詡可使用快速原型进行需求验证 变换模型中最终软件的质量仅取决于需求分析的结果,因此可使用 快速原型法在需求分析结束后进行需求验证,快速原型可以由变换工具 自动生成,也可以人工设计。 变换模型完全依赖于形式化理论的完善和自动化工具的支持,因此在实际应 用中很难满足所需条件,目前只是软件自动化研究的一个方向,还没有在实践中 变成有效的现实。变换模型还有另一个缺点是过程中没有人工参与,缺乏开发人 员可以理解的软件文档,给软件的维护和重用都带来了困难。 需求分析 形式化说明 软

24、件设计 形式化说明 源程序 可执行代码 7、极限编程 极限编程是符合敏捷方法的基本原则实施的软件开发方式,它强调任何开发 工作最终都要向用户交付合格的软件,并且将许多实践证明有效的开发实践运用 到极限来达到这一目标。 极限编程有完整明确的开发规程,它的主要特点包括: 符合敏捷方法学原则 翦客户参加开发小组 •短交付周期(1〜3周),持续迭代 代码的集体所有 詡极限运用好的开发实践 有许多极限编程的狂热者声称极限编程没有缺陷,但在另外一些人看来,极 限编程的缺陷也很明显:: 对大型项目适应性不强 蟲 依赖于高素质的开发队伍 8、微软过程 微软过程

25、是微软公司根据长期的软件开发经验而总结确立的独特的软件开 发过程,它的核心思想是“同步”和“稳定”,强调既要符合软件开发中演进和 迭代的规律,也要在不同的阶段实现软件配置的“固定化”,以减少变动对各个 不同开发小组的影响。 微软过程本质上更适合微软公司大型产品化软件的开发任务,同时也存在对 于需要对市场和用户需求进行快速反应的网络时代的软件开发不太适应的问题, 微软公司目前已经在进行调整。 微软过程的主要特点包括: 巒 做好早期规划和评估 微软过程强调在一个产品开发的早期要对市场和用户需求有详尽 的分析,做好全面的规划和开发风险评估。 詡 多个小组并行开发,经常同步 在开发任务确定后,

26、微软通常建立多个开发小组并行的开发软件的 不同部分,各个小组间通过频繁地进行产品同步来确保都使用了其它 小组开发成果的最新版本。 过程强调在一个产品开发的早期要对市场和用户需求有详尽的分 析,做好全面的规划和开发风险评估。 翦使用“里程碑”实现阶段性性的产品稳定 当产品开发进行到某个相对独立的时间节点(称为里程碑),可以 完整地完成软件的一部分功能时,此时的各部分开发结果要进行冻结, 不能再随意修改,以确保后续的开发工作有相对稳定的开发基础。 当所有里程碑都实现的时候,整个软件开发的工作也就完整结束 了。 其主要缺点有: 詡缺乏一般性理论指导 微软过程是微软公司自己的软件开发经验的总

27、结,缺乏一般性的软 件工程理论指导,也缺乏通用性。 强调在一个产品开发的早期要对市场和用户需求有详尽的分析,做 好全面的规划和开发风险评估。 翦仅适合产品化软件开发 微软过程更适合面向市场的产品化软件开发,对于大型的任务型软 件开发不太适合。 巒对用户需求反应迟缓 微软过程在前期进行软件开发需求的调研,在后期很难再对软件开 发目标进行大的调整。 课后作业 阅读下面两本书籍中的一本,写一篇论文来说明在软件开发思想方面得到的 启发和自己对于软件工程学科的认识: 《微软的秘密》,北京大学出版社,1997 《人月神话》,清华大学出版社 ,2007 完咸严卅I发布 发布阶駁 轻宦阶段 设L阶段 开发阶段 准备好冋 岌布版本 项11目祁 得到认可 完盛开岌匸作 完成严閘设卄

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

相关资源

更多
正为您匹配相似的精品文档
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


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