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

上传人:M****1 文档编号:564327289 上传时间:2023-11-12 格式:DOCX 页数:13 大小:148.24KB
返回 下载 相关 举报
软件工程方法学和软件过程_第1页
第1页 / 共13页
软件工程方法学和软件过程_第2页
第2页 / 共13页
软件工程方法学和软件过程_第3页
第3页 / 共13页
软件工程方法学和软件过程_第4页
第4页 / 共13页
软件工程方法学和软件过程_第5页
第5页 / 共13页
点击查看更多>>
资源描述

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

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

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

3、方法学首先是一种软件开发的方式,它的特点,一是分阶段计划、 控制、顺序实施,另外就是在各个阶段采用结构化(包括结构化分析和结构化设 计)技术。要注意:软件的生命周期概念和软件工程的生命周期方法学概念是两个不同 的概念,不能混淆。软件的生命周期方法学,只是软件开发的一种方法学,同其 他软件开发方法学一样,都是以软件生命周期的概念为基础而研究建立的。生命周期方法学是软件工程最传统的方法学,虽然它并未完全解决软件危机 的问题,但是对软件工程的发展起到了极其重要的促进作用,至今仍旧是最成熟 和应用最为广泛的方法学。我们上面给出了软件工程生命周期方法学的定义,下面我们就根据这个定 义,来详细讨论一下生命

4、周期方法学的主要特点,分析一下怎么样的软件开发方 式就可以被称做是“生命周期方法学”。(2) 特点:詡严格的分阶段计划就是将软件开发过程从时间上分解,降低软件开发的复杂度。软件危机的主要表现之一,就在于软件的开发过程难以管理和控制,软件的 质量没有保证。随着软件规模越来越大,开发周期越来越长,整个软件开发过程 也变得越来越复杂,越来越混乱。人类解决复杂问题的一个惯常方式就是分解, 把复杂的事物分解为小的部分,再逐一解决。生命周期方法学依照软件的生命周 期,将完整的软件开发过程从时间上划分为许多相对独立的阶段。在每一个阶段, 都有它确定的任务和方法,以及完成的结果的标准。詡瀑布式开发模式“瀑布式

5、开发模式”,也就是定义里的“顺序实施”。瀑布的特点是水流从上 到下,一落到底,不会反复。生命周期方法学采用了从上到下,各个阶段逐一进 行的软件开发方式,前一个阶段结束后形成的结果作为下一个阶段工作开始的依 据。在每一个阶段的任务没有按质量要求完成时,不进行下一个阶段的工作,每 个阶段完成后也不再反复。詡严格的技术审査和管理复审技术审查和管理复审是技术和经济两个方面管理软件开发过程,保证软件的 质量,控制开发成本和进度。技术审查包括文档齐备性的形式审查和阶段结果的实质审查。技术审查的要 点就是不能把错误带入下一个阶段,以满足瀑布式开发模式的需要。技术审查通 过后要进行管理复审。它由组织开发工作的

6、项目管理人员进行,是从进度和成本 的角度审查本阶段的工作,并对后续阶段的成本和进度计划进行调整,并对后续 的开发目标进行决策。詡各个阶段采用结构化技术结构化技术的基本思想是自上而下,逐步求精。结构化技术最先起源于编程 领域,后来随着生命周期方法学的发展被全面应用到软件开发过程的各个阶段。 在后续生命周期方法学各个阶段的详细介绍中会说明各种结构化技术的具体方 法。3、面向对象方法学:(1) 定义:面向对象方法学是以面向对象技术为核心,利用类的继承等复用方式,通过 逐步细化地建立对象模型,以及迭代和演化的步骤完成软件开发的模式。面向对象方法学起源于面向对象程序设计,是目前最符合人类解决现实问题 的

7、思维模式和物理系统运行方式的软件开发方法学。(2) 特点:卷以对象作为基本的软件构件在问题的解域模拟问题域的模型,数据和对数据的操作紧密结合。对象是一 种包含了数据和操作,并且良好封装的逻辑实体。整个软件由无数独立活动的对 象构成,对象之间通过消息机制相互通信和相互作用。面向对象的软件结构和面向流程的软件结构之间有巨大的区别,与现实世界 中的实际系统更加吻合,是软件构建思想上的一次革命。詡软件定义和实现的统一无论在定义、设计还是在实现阶段,面向对象方法学都是通过对系统模型的 逐步细化和精化来完成的,因此整个软件的开发过程就是一次由粗到细构建对象 模型的过程,定义和实现不再截然划分。譏重视软件复

8、用面向对象方法学使用类来完成对象的定义,类还可以通过继承派生出新的 类,因此面向对象方法学本质上就具备了良好的软件复用的基础,可以在不同软 件中使用已有的类来派生出新的类,既利用了前人的软件开发成果,又可以根据 每个软件的实际情况产生新的对象,结合对象完善的封装机制,实现对象模型的 多层次、普遍的复用。詡通过逐步演化来完成软件开发面向对象方法学使用循环迭代的方式来开发软件,整个软件系统是逐步精华 的,这既符合人类对事物的认识模式,又可以尽早获得软件开发的概貌性结果, 便于对软件需求进行验证。4、敏捷方法学:(1)定义:敏捷方法学是针对用户需求迅速变化的现实情况,采用短周期交付形式和协 作开发的

9、轻量级软件开发方式。敏捷方法学是程序员对过多强调严格规范和文档的软件工程方法的一次更 高水平上的反动,强调以人为本、追求目标和“轻但适用”。(2)特点:詡追求软件交付使用这一终极目标敏捷方法学把一切软件开发的规范、标准、技术都置于“软件按期交付”这 一目标之下,强调任何使软件能够高质量地按期交付的方法、工具和过程都应得 到应用,把软件能够满足用户的实际需求看做是软件开发工作的根本目标。 詡强调全面合作和交流敏捷方法学把软件开发定性为一种创造和交流的合作活动,强调用户和开 发方不仅仅是合同的甲方和乙方,而是必须全面合作来完成软件开发工作;用户 和开发人员,开发人员之间的有效交流是最重要的成功因素

10、,致力于寻找快捷、 方便和低成本的交流方式。詡 重视软件开发中人的个性敏捷方法学不把软件开发人员看做完成任务的机器,强调发挥个人的潜能和主动性,保障开发人员得到足够的尊重和照顾,维持开发人员的工作积极性,以使开发工作能够有效地持续。詡强调团队的力量敏捷方法学不认为个人的能力决定了软件的成败,它强调开发人员之间的 交流和配合,强调团队的合力,以保障团队在人员调整的情况下依然能够按期完 成软件开发。詡灵活釆用各种开发和管理方式正因为敏捷方法学强调终极目标,因此在具体开发方式和管理方式上,各种 具体的开发方法也有许多区别,只要能够有效地促进软件开发,各种方式方法都 可以使用。三、软件过程软件过程是开

11、发软件所需的一系列任务的框架,它规定了完成各项任务的步 骤和顺序。1、布模型瀑布模型是最传统的软件开发过程,也是经典的生命周期方法学的组成部 分,在软件开发过程首次以“工程化”的思想为指导实现可控制、可管理的过程 发挥了非常重要的作用。需求分析软件设计编码实现软件测试软件维护瀑布模型把软件开发过程从时间上划分成相对独立的阶段,并具备以下特 点:八、擞顺序实施,不能反复每个阶段完成后才能开始下一个阶段的工作,每个阶段的工作结果都 是下一个阶段工作的出发点,一旦完成了一个阶段的工作,就不能再返回 重新进行该阶段的任务。巒推迟编程实现具体编制程序的工作放在需求分析和软件设计之后,不急于编程,以 保证

12、在软件实现之前进行了充分细致的分析和设计,极端的情况下甚至推 崇在编程阶段之前不提供编程开发环境,完全脱离编程思维来完成软件分 析和设计工作。詡通过阶段评审保证开发质量因为瀑布模型在每一个阶段完成后不允许反复,因此如何保证每个阶 段的工作结果能够全面、正确,不把错误带入下一个阶段就变得非常重要。 瀑布模型采用阶段评审来保证软件开发的质量。撫要求文档齐备瀑布模型在编程阶段完成之前是看不到软件实体的,因此为了保证各 个阶段的工作能够顺利开始和结束,保证阶段评审能够有据可依,对各个 阶段产生的文档要求非常严格,种类必须满足规范,内容必须完整充实, 表述必须清晰可读。由于以上特点,瀑布模型也存在明显得

13、缺陷:詡难以验证需求用户在软件开发过程的后期才能见到软件实体,因此即使文档再齐 备,用户也难以确定软件开发的目标和自己的真实需求完全一致,开发人 员也难以直观有效地摸清用户的需求细节,容易对软件需求产生误判。趨不能适应需求的变化瀑布模型完全不允许在开发流程上出现反复,因此在开发周期比较长 的大型项目中,即使需求分析的结果是非常准确有效的,也会由于用户需 求随环境和时间的变化在最终的软件实体中不能得到完美地满足。瀑布模 型对需求变化的适应能力弱严重制约了面向网络时代的新型软件开发项 目的有效实施。詡软件重用性差提高软件开发成果的重用性是提高软件生产率的关键因素。瀑布模型 的开发基点是对某个具体用

14、户需求的分析,采用的是由总到分、逐步细化 的结构化分析和设计技术,每个软件部件都是软件整体的有机组成部分, 这直接影响了软件部件在不同软件项目中的通用性和重用性。2、快速原型法快速原型法是直接针对瀑布模型不能及时验证用户需求的缺陷而改进产生的,它基于第4代编程语言(4GL)可以直观便捷地建立软件界面和软件结构的 特性,在获得软件开发需求后,开发出软件的快速原型供用户试用,通过用户的 反溃来调整需求分析结果,得到用户对需求的完全认可后再进行后续的软件设计 和实现工作。快速原型法的特点是:詡基于瀑布模型基础快速原型法只是对瀑布模型进行了改进,整体流程和基本原则没有 发生变化。詡使用快速原型完成需求

15、验证 快速原型法使用快速原型来完成需求验证,使得用户需求的表述和 交流更加直观有效。詡原型可以被抛弃,也可以演化成最终的软件快速原型法产生的原型可以在需求确认后被放弃,也可以作为界面 基础来进行后续的软件设计的实现。但在面向对象技术出现以前,由于 软件的界面结构与内部模块结构并不完全一致,快速原型演化成最终端 软件存在很多困难,多数情况下还是会重新进行软件的设计和实现。使用快速原型来完成需求验证,使得用户需求的表述和交流更加直 观有效。快速原型法的主要缺点有:詡增加成本和开发时间如果快速原型仅用来完成需求验证,就增加了整个软件开发过程的 成本和时间。機不能适应需求的变化快速原型法仍旧没有解决瀑布模型不能适应软件需求变化的问题。3、增量模型需求分析总体设计构件1 构件N详细设计详细设计编码实现编码实现综合测试综合测试交付试用交付试用增量模型是在软件总体设计中,将软件整体划分为相对独立的构件(通常是 按照功能子系统),对每个构件分别进行详细设计、编码实行和综合测试,再分 别交付用户试用。整个软件的开发和交付是逐构件递增的,因此称为“增量模型”。增量模型的特点是:巒构件分解,逐步开发交付将大型的

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号