05-软件过程管理与软件工程环境.ppt_第1页
05-软件过程管理与软件工程环境.ppt_第2页
05-软件过程管理与软件工程环境.ppt_第3页
05-软件过程管理与软件工程环境.ppt_第4页
05-软件过程管理与软件工程环境.ppt_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第五章 软件过程管理与软件工程环境,5.1 软件过程 90年代初美国国防部软件工程研究所和CMU大学的研究者提出过程成熟度的CMM(Capability Maturity Model)模型。把过程成熟度分为五级: 第一级:原始的:自发过程,成功靠员工努力; 第二级:可重复的:参照成功的项目重复; 第三级:可定义的:所有管理、工程两方面的活动均文档化并纳入有组织的软件过程,新项目按批准的过程开发和管理; 第四级:可管理的:除三级而外,对软件过程和质量有定量的理解和度量,可以控制度量; 第五级:可优化的:除四级而外,可连续从实施过程的反馈中改进过程,1. 软件过程的活动,活动分为:框架活动、伞形活

2、动 所谓框架活动是软件工程必须的大步骤、是决定产品如何出现、存在的重要活动。它包括一组软件工程工作任务并指出什么算完(里程碑)? 交付出什么?质量保证点是什么? 软件工程工作任务因产品特性而选用不同的过程模型展开。当然,最上层的框架活动是定义、开发、维护。有了模型它就可以把这三大步骤细化了。 伞形活动是为保证高质量产品出现、存在的活动。它凌驾于框架活动之上,故谓之“伞形”,典型的伞形活动是: 软件项目追踪和管理 (1)正式技术评审 (2)软件质量保证 (3)软件配置管理 (4)文档的准备和制作,可重用管理 软件度量(指本项目特殊的度量) 风险管理,2. 项目特征与框架活动,框架活动对某类项目、

3、单位相对固定,但变动比较大 一般把软件项目分成五类。 (1)概念开发项目:相当于我国科研体制中“预研”项目 (2)新应用开发项目:例如,Word 1.0 (3)应用增强项目:有重大改进如Word 3.0,6.0 (4)应用维护项目:相对小的改进 (5)重构工程项目:将已有项目部分或全部重构 概念开发项目可以采用线性顺序模型: (1) 项目定义:概念范围定义 (2) 作计划: 初步概念计划和技术风险评估 (3) 作工程/构建:概念证明 (4) 发布: 概念实现 (5) 客户评价: 客户反应,对于新应用开发项目和后续的增强和维护,可以采用螺旋模型,其框架活动是:,(1) 与客户通信: 建立有效通信

4、 (2) 作计划: 定义资源、时限、项目相关信息 (3) 风险分析: 技术和管理风险 (4) 作工程: 作出主要应用程序表示 (5) 构建和发布: 构建、测试、安装并提供用户支持 (6) 客户评价: 收集反馈意见 这些框架活动可因公司(单位)项目而异。如CSC公司的Objectory方法学把框架活动定义为线性顺序四阶段模型: (1) 初创(Inception): 定义环境、捕捉需求 (2) 求精(Elaboration): 定义需求、分析、设计 (3) 构建(Construction):实现、测试 (4) 移交(Transition): 测试、布署 每个阶段内部都是迭代的,即支持原型。因此生存

5、周期模型不同与传统的,变为二维的模型,一维是框架活动,一维是可反复迭代的工程活动。,5.2 软件过程模型,1. 线性顺序模型 早期的瀑布模型即为线性顺序模型。它一次走完分析、设计、编码测试这些框架活动 质量保证、文档制作、正式技术评审、配置管理等伞形活动穿插其中 特点是严格把关、错误尽早发现并消灭在前一阶段 80年代中期发现严格按瀑布模型开发的大型系统成功率极低(低于23%) ,80年代中期以后出现了多种过程模型 2. 原型模型 基本思想是尽早拿出样板让用户试用,修改或补充了需求再接着开发 它基本上按瀑布模型划分阶段:分析 设计 编码 测试 交付,设计注重上层,找一个或几个最有代表性的子系统快

6、速编码测试,所以也叫快速原型(rapid prototyping) 原型增加了开发的工作量,增加了管理上的困难。特别是原型过程步骤事先难于计划,不知道应反复几次,从哪里开始反复,预算进度均难于控制。但它具有切合实际,成功率较高的优点, 故至今仍在使用。,3. 螺旋模型,4. 构件组装模型,面向对象和基于构件包的软件要重用大量构件,这些构件是适用于某个领域的(例如,建筑,财经、商场,电信等)。它将以前开发并使用良好的构件规范化之后放入项目库 这类软件的开发过程也采用螺旋模型,只是把作工程和构造及发布合成一个步骤。风险分析后,转入客户评价。步骤如下: (1)先标识本项目需要什么构件; (2)库中查

7、找构件或相似的构件; (3)如果可用转4 否则自行开发或修改,确认后入库; (4)构造为新系统作第m次迭代; (5)测试、确认。,5. 快速应用开发模型,RAD有以下步骤: (1)业务模型:以什么信息驱动业务过程运作? 要生成什么信息? 谁生成它? 信息流的去向? 由谁处理? 可以辅之以数据流图 (2)数据模型:为支持业务过程的数据流,找数据对象集合,定义数据对象属性,与其它数据对象的关系构成数据模型,可辅之以E-R图。 (3)做处理模型:如何使数据对象在信息流中完成各业务功能。描述数据对象的增加、修改、删除、查找。即细化数据流图中的处理框。,(4)应用程序生成:利用第四代语言(4GL)写出处

8、理程序,重用已有构件或创建新的可重用构件,利用环境提供的工具,自动生成,构造出整个的应用系统。 (5)测试与交付,由于大量重用,一般只作总体测试,但新创建的构件还是要测试的,6. 其它模型,除了上述五种模型而外,还有并发开发模型和形式方法模型,分别针对并发程序系统和需要作数学验证或函数式,逻辑式程序系统而设的。本书不再讨论。 这些模型是从实际工作中总结出来的。它为过程可定义、可管理、可优化(三、四、五级成熟度)提供了思路。目前这方面的研究很活跃。当前以类似成功产品过程为借鉴力争定义过程(2-3级)的开发方法和工具日益成熟。,5.3 软件项目管理,项目(project)管理是过程管理的主要体现,

9、它根据项目要达到的目标(软件的功能、性能)作出包含人力、资源、技术过程、质量保证、进度安排的项目计划,并按此计划追踪、报告、协调来完成项目。确定开发项目,项目经理以及以下框架活动: 1.建立与客户的通信; 2.作计划,定义资源、时限、落实到开发组; 3.风险分析, ,评估所采用的技术和管理带来的风险; 4.工程,即软件分析与设计; 5.构造和发布,即编码、测试、交付、安装、文档、培训; 6.客户评审,获得客户的反馈。,5.3.1 风险分析与风险管理,1. 风险因素,应从下述角度分析: 产品大小 业务相关 客户相关 技术相关 2. 风险管理 是开发一种策略对以上分析出的风险因素进行管理: 一为回

10、避(mitigation)不使风险发生 第二种办法是监控(monitoring) 第三种办法是加强管理和做应急计划(management and contingency planning),开发环境 组织大小和人员经验 重用件相关 过程相关,5.3.2 软件质量保证,1. 软件质量保证 软件质量保证的SQA活动,贯穿于软件过程始终。开发单位成立SQA小组负责全面质量管理。在开发项目计划时就要做出SQA计划。对于SQA组的工作不外乎以下几方面: 各种测试 测试软件是否满足规格说明的要求。 各种评审 为多种人员参与的讨论会,以规格说明或各种标准,规范为准评价各项软件工作 各种审计 审计(Audit

11、),以职能人员为主审,审查软件过程产物是否符合标准或规格说明书。 报告和记录 所有测试、评审、审计都要详细记录并写出报告,报告和记录均要整理、归档 2. 软件质量保证计划 以上活动均应在项目计划中列出子计划,5.3.2 项目进度与追踪,1.过程分解 2. 时限图 3. 项目追踪,5.3.4 项目计划,项目计划列出软件开发所做的工作。一般的陈述是“做什么”,特殊的陈述是“做多少”和“多长时间” 5.4 软件配置管理 1. 软件配置项和基线 软件工程过程各项活动的产物(程序、文档、数据)经评审或审批后都称之为软件配置项(SCI),第一次交付的软件配置项构成基线(Base line)配置项,2. 配

12、置管理的任务,软件配置管理(SCM)的主要任务是每当有了更改, 与其相关的软件配置项均应得到正确处理 标识软件配置项 版本控制 变更控制 审计与报告 每当有了改变则按既定的规程修改并刷新软件版本; 向有关人员发出配置状态报告、标识、审计、版本控制、变更控制、报告这五项工作目前已开发出许多自动工具可以自动完成,5.5 软件重用,指在一个软件项目中直接使用以前项目中的产物, 而非重用某些工具, 也就是把历史上做过的东西纳入到新项目中 1. 重用过程 2. 支持重用的环境:从过程重用的观点, 以下十种软件过程产物均可以重用: (1)项目计划 特别有关SQA之类的活动均可成段重用。 (2)费用估算 相

13、似工作量的项目重用。 (3)体系结构 相近的体系结构(一般以模板描述)利用模板生成实例。 (4)需求模型和规格说明 重用模型图和成段文字。 (5)设计 数据、界面、过程、对象的描述。 (6)源代码 直接用已验证过的源代码。 (7)各种文档 大部分可拷贝, 或在拷贝基础上修改成新文档。 (8)人机界面 GUI是最成功的重用件, 有时占应用软件代码量的60%。 (9)测试用例 设计、代码重用必然可重用。 (10)数据 内部表格、列表、文件。,3. 构件与构件重用,构件(Component)是可重用的,具有独立性的软件单元,是用来构造其它软件的部件 构件具有以下特点: (1)构件是具有独立性的、被封

14、装好、具有自描述能力的软件单元。它必须能够识别自己的属性、存取方法和事件。构件不依赖于开发语言和开发平台,在二进制级上实现重用性。 (2)构件本身不是一个完整的应用程序,构件可以组装成为应用程序。在编写构件时,构件今后将如何被组装是不可知的; (3)构件都有被定义好的接口,只能通过这些接口来操纵构件; (4)构件之间可以交互,交互双方可以是位于相同的应用程序、相同的计算机、不同的计算机、不同的操作系统等。 (5)构件可以被扩展。,5.6 软件开发环境,程序(软件)的开发、运行都是在支持软件的基础上作出的。这些支持软件的总和我们称之为软件开发环境(Environment) 早期的环境只有最必要的软件工具: 语言的编译器、连接器、加载和运行工具、排错(debugging)工具, 终端显示和编辑工具。我们称最小环境工具集 1. CASE工具概述 70年代中期, 软件工程师迫于软件危机的压力, 提出了计算机辅助软件工程(CASE)的设想, 开发出一系列工具尽量使软件过程的各项活动自动化、半自动化 信息工程工具、过程模型和管理工具、项目计划工

温馨提示

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

评论

0/150

提交评论