《软件工程过程模型》PPT课件.ppt
《《软件工程过程模型》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《软件工程过程模型》PPT课件.ppt(52页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第2章 软件工程过程模型 第2章 软件工程过程模型 2.1 软件工程的技术基础软件工程的技术基础2.2 软件工程过程软件工程过程2.3 软件过程模型软件过程模型2.4 线性顺序模型线性顺序模型2.5 原型模型原型模型2.6 快速应用开发模型快速应用开发模型2.7 演化软件过程模型演化软件过程模型2.8 软件过程技术软件过程技术2.9 软件重用技术软件重用技术2.10 小结小结 第2章 软件工程过程模型 2.1 2.1 软件工程的技术基础软件工程的技术基础图2.1 软件工程过程层次图 第2章 软件工程过程模型 正如其他工程方法一样,软件工程必须以有组织的软件质量保证为基础。因此说,对质量的关注构
2、成了软件工程的根基。软件工程过程是将技术层(包括工程技术与管理技术)结合在一起的凝聚力。过程层是软件工程的基层。软件工程过程定义了一组关键过程域(KPAs),这对于软件工程技术的有效应用是必需的。这些关键过程区域是对软件工程项目进行管理与控制的基础,并且确定了上、下各区域之间的关系。其中,对于技术方法的采用、阶段产品的产生、工程里程碑的建立、质量监控与保证、变更控制等方面都进行了规定。除各个开发组织可以定义自己的软件工程过程之外,目前流行比较广泛的软件工程过程包括有RUP过程、极限(XP)过程、敏捷软件过程(Agile S.P)等等。第2章 软件工程过程模型 软件工程方法涵盖了需求分析、设计、
3、编程、测试、维护等各个环节,它给出了完成这些任务在技术上应当“如何做”的方法。它依赖于一组基本原则,这些原则控制了每一个技术区域,涉及到建模活动和其他描述技术。工具层对过程和方法提供支持,使得工程活动、管理活动得以自动、半自动的进行。例如,目前广为使用的数据库建模工具Erwin、面向对象的建模工具Rationnal Rose、配置管理工具等等。如果把一系列的工具集成起来使用,使得一个工具产生的信息可以被另一个工具使用时,就形成了一个支持软件开发的系统。这种集成了软件、硬件和一个软件工程数据库的软件工程环境,称为计算机辅助软件工程(CASE)。第2章 软件工程过程模型 2.2 2.2 软件工程过
4、程软件工程过程 如前所述,软件工程过程是开发或维护软件及其相关产品的一系列活动。软件工程过程是过去十年中人们关注的焦点。软件工程和软件工程过程之间是强相关的。软件工程过程通常包括四种基本的过程活动:(1)软件规格说明:规定软件的功能、性能及其运行限制。(2)软件开发:产生满足规格说明的软件,包括设计与编码等工作。(3)软件确认:确认软件能够满足客户提出的要求,对应于软件测试。(4)软件演进:为满足客户的变更要求,软件必须在使用的过程中演进,以求尽量延长软件的生命周期。第2章 软件工程过程模型 在一个良好的软件过程中,还应当包括一些“保护性”的活动,包括软件项目的跟踪监控、正式的技术审核、软件配
5、置管理活动、软件质量保证活动、文档的准备和产生、软件测试、风险管理等等。这些保护性活动贯穿于整个工程过程之中。在具体的工程过程中,可以根据实际需要,采用不同的过程模型来实现上述的基本活动和保护活动。事实上,软件工程过程是一个软件开发组织针对某一类软件产品为自己规定的工作步骤,它应当是科学的、合理的,否则必将影响到软件产品的质量。一个良好的软件工程过程应当具备如下特点:第2章 软件工程过程模型 (1)易理解性。(2)可见性:每个过程活动都以得到明确的结果而告终,保证过程的进展对外可见。(3)可支持性:容易得到CASE工具的支持。(4)可接受性:比较容易被软件工程师接受和使用。(5)可靠性:不会出
6、现过程错误,或者出现的过程错误能够在产品出错之前被发现。(6)健壮性:不受意外发生问题的干扰。(7)可维护性:过程可以根据开发组织的需求的改变而改进。(8)高效率:从给出软件规格说明起,就能够较快地完成开发而交付使用。第2章 软件工程过程模型 一个软件过程可以表示成如图2.2所示的形式。其中,公共过程框架是通过定义若干适合于所有软件项目的框架活动而建立的;若干任务集合中,每一个集合都由软件工程工作任务、软件项目里程碑、软件工作产品和交付物以及质量保证点组成;保护性活动独立于任何一个框架,贯穿于整个过程。第2章 软件工程过程模型 图2.2 软件工程过程第2章 软件工程过程模型 2.3 2.3 软
7、件过程模型软件过程模型 在一个具体的实际工程活动中,软件工程师必须设计、提炼出一个工程开发策略,用以覆盖软件过程中的基本阶段,确定所涉及的过程、方法、工具。这种策略常被称为“软件工程过程模型”。这一模型的选择应当是根据组织定义的标准软件过程,参考具体工程项目的特点和资源状况进行裁剪来进行的。第2章 软件工程过程模型 从宏观上来看,所有的软件开发过程都可以看成是一个循环解决问题的过程。其中包括四个截然不同的阶段:状态描述、问题定义、技术开发和方案综述,如图2.3所示。状态描述表示了事物的当前状态;问题定义标识了要解决的特定问题;技术开发通过应用某些技术来解决问题;方案综述提交解决结果(如文档、程
8、序、数据、新的商业功能、新产品)给那些从一开始就需要方案的人。前面定义的软件工程的一般阶段和步骤很容易映射到这些阶段上。第2章 软件工程过程模型 图2.3 问题循环解决的各个阶段 第2章 软件工程过程模型 上述的问题循环解决过程可以应用于软件工程的多个不同开发级别(阶段)上,包括考虑整个系统开发的宏观阶段,开发程序构件的中间阶段,甚至是代码编制阶段,因此可以采用分级集合表示。可以定义一个模式,然后在连续的、更小的规模上递归地应用它,这样来提供一个关于过程的理想化的视图。问题循环解决过程的每一个阶段又包含一个相同的问题循环解决过程,如图2.4所示。可以认为,软件开发是从用户到开发者再到技术的一个
9、连续的过程。随着向一个完整系统的逐步进展,上述的阶段递归地应用于用户的需求和开发者的软件技术说明中。第2章 软件工程过程模型 图2.4 问题循环解决阶段中的阶段第2章 软件工程过程模型 要想像图2.3那样清楚地划分阶段活动是很困难的,因为阶段内部和阶段之间的活动往往是交叉的。但是对于任何一个软件项目而言,不管选择了什么样的具体的软件工程过程模型,所有四个活动阶段在某个细节的级别上都是同时存在的。图2.4描述了实际过程的递归性质。在后面的讨论中,我们将会看到,每一种具体的软件工程过程模型实际上都代表了一种将本质上无序的活动有序化的企图。每一种模型都具有能够帮助实际软件项目的控制及协调的特征,但在
10、它们的核心中,这些模型又表现了无序模型的特点。第2章 软件工程过程模型 在软件工程实践中,有许多专家治力于过程模型的研究。像瀑布模型、原型模型、快速应用开发模型、增量模型、螺旋模型、形式化方法模型、RUP模型、敏捷过程模型、构件组装模型、并发开发模型等等都先后得到了有效的应用。目前,关于软件工程过程模型的研究仍然在积极地进行之中,将不断取得新的进展与成就。第2章 软件工程过程模型 2.4 2.4 线性顺序模型线性顺序模型图2.5 线性顺序模型 第2章 软件工程过程模型 线性顺序模型有时也称为“瀑布模型”。它表示了软件开发系统的、顺序的方法。虽然瀑布模型支持带反馈的循环,但大多数使用者均把它视为
11、是严格线性的。从系统级开始,随后是分析、设计、编码、测试和维护。借鉴传统的工程周期,线性顺序模型的活动如图2.5所示。第2章 软件工程过程模型 线性顺序模型是最早,也曾经是应用最广泛的软件工程过程模型,但是这种模型不适应需求经常发生变更的环境。实际的项目很少能够严格地按照该模型给出的顺序进行。需求的变更、设计的变更、编码的变更几乎是不可避免的。虽然线性顺序模型能够允许迭代,但却是间接的迭代。在项目的开发过程中,变更可能会引起混乱。所以,有人形象地把采用线性模型进行商业软件工程称之为“在沙滩上盖楼房”。考虑到用户对于需求的理解有一个渐进渐深的过程,一开始用户往往难以明确地提出所有的需求,这样,线
12、性顺序模型的第一步输入就得不到满足。第2章 软件工程过程模型 同时,线性顺序模型也经常不能接受项目开始阶段自然存在的不确定性。在采用线性顺序模型的时候,用户只有到项目的开发晚期才能够得到程序的可运行版本。大的错误如果到这时才被发现,那么造成的后果往往是灾难性的。同时,因为线性顺序模型每一步的工作都必须以前一阶段的输出为输入,这种特征会导致工作中发生“阻塞”状态。某些项目组成员不得不等待组内其他成员先完成前驱任务才可能展开自己的工作。有时这种等待时间可能会超过实际花在工作上的时间。这种阻塞状态在线性顺序过程的开始和结束时经常会发生。第2章 软件工程过程模型 虽然存在着上述的种种问题,但是线性顺序
13、模型仍然有其值得肯定之处。它提供了一个模板,使得分析、设计、编码、测试与维护工作可以在该模板的指导下有序地展开,避免了软件开发、维护过程中的随意状态。采用这种模型,曾经成功地进行过许多大型软件工程的开发。直至目前,对于需求确定、变更相对较少的项目,线性顺序模型仍然是一种可以考虑采取的过程模型。但在“用户驱动”的商业软件开发中,采用线性顺序模型并不是一个好的选择。第2章 软件工程过程模型 2.5 2.5 原原 型型 模模 型型 大型建筑在施工之前,常常按照图纸制造一个缩小的模型来验证工程完成后可能的效果;新的工业设计在充分证明其正确性之前,也往往利用在缩小规模的前提下制造少量成品进行检验的方法来
14、验证设计正确与否。同样的,如果在开发一项软件工程的时候,用户不能准确、全面地描述其需求,或者开发者还不能确定所选用算法的有效性或人机交互界面的形式时,同样也可以建立一个简化了的样品程序并使之运行,引导用户通过对样品运行情况的观察,进一步明确需求或验证算法的正确性。这种开发模式就称之为“原型模型”,如图2.6所示。第2章 软件工程过程模型 图2.6 原型模型 第2章 软件工程过程模型 原型模型从需求收集开始,开发者和用户在一起定义软件的总体目标,标识出已知的需求,并规划出进一步定义的区域。然后进行快速设计并进行编码实现,进行原型的建造。这种快速设计和建造通常集中在那些对用户可见的部分(如输入方式
15、、输出界面)。原型建造好之后,运行原型程序,由用户和开发者进行评估、验证。接着进一步精化待开发软件的需求,逐步调整原型以使其逐渐满足用户的真正需求,同时也使开发者对将要完成的开发任务有更深入的理解。这一过程是多次迭代进行的。第2章 软件工程过程模型 使用原型模型必须有两个前提。其一是用户必须积极参与原型的建造,同时开发者和用户必须有共识:建造原型仅仅是为了定义需求,之后就必须被全部抛弃(至少是部分抛弃),实际的软件必须在充分考虑到软件质量和可维护性之后才被开发。从这个意义上说,原型模型又往往被称为“抛弃原型模型”。其二是必须有快速开发工具可供使用。第2章 软件工程过程模型 2.6 2.6 快速
16、应用开发模型快速应用开发模型 快速应用开发(RAD)模型是线性顺序模型的一个“高速”变种,强调极端的开发周期。RAD模型通过使用基于构件的建造方法达到快速开发的效果。在需求得到很好理解、项目的范围约束明晰的前提下(通常不容易保证这样的条件),采用RAD过程能够使项目组在很短的时间内(如6090)天创建出功能完善的系统。RAD过程主要用于信息应用软件的开发,如图2.7所示,它包含如下几个开发阶段:第2章 软件工程过程模型 图2.7 RAD模型第2章 软件工程过程模型 业务建模:业务活动中的信息流被模型化。此阶段说明什么信息驱动业务流程、生成什么信息、谁负责生成该信息、该信息流向何处、谁处理它等。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程过程模型 软件工程 过程 模型 PPT 课件
限制150内