(计算机应用技术专业论文)基于度量的软件维护过程管理的研究.pdf_第1页
(计算机应用技术专业论文)基于度量的软件维护过程管理的研究.pdf_第2页
(计算机应用技术专业论文)基于度量的软件维护过程管理的研究.pdf_第3页
(计算机应用技术专业论文)基于度量的软件维护过程管理的研究.pdf_第4页
(计算机应用技术专业论文)基于度量的软件维护过程管理的研究.pdf_第5页
已阅读5页,还剩57页未读 继续免费阅读

(计算机应用技术专业论文)基于度量的软件维护过程管理的研究.pdf.pdf 免费下载

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

文档简介

摘要 在维护过程中可以通过实施度量来收集、分析相关属性数据,规划当前的项目, 增加项目控制的可视化程度;通过维护度量帮助人们认识和理解软件维护活动,定 量的评价软件维护过程本身的质量,为软件维护的管理和决策提供信息。本文结合 软件度量理论技术,对软件维护活动进行了相应的研究和实践。 首先从软件维护和软件度量的一些基本概念入手,讨论了软件度量在维护阶段 的重要作用以及现阶段的一些度量技术,论述了软件维护的常用模型和它们各自的 优缺点;指出了软件维护中存在的困难,并给出相应的应对措施:接着通过论述有 这样的结论:软件维护面临的挑战之一是规范管理维护过程,实现维护过程的改进, 针对成立独立的维护部门这种组织模式分析了维护流程中,各种维护人员各司其职 互相配合完成维护任务,并在此基础上引入度量。从软件组织的不同角色分析了他 们的信息需求,结合g q m ( g o a l q u e s t i o n m e 埘c ) 模型和p s m ( p r a c t i c a ls o f c w a r e m c 廿i c ) 模型,列出了维护过程的部分基本度量( 软件维护报告个数、维护任务所需 时间和经费等) 派生度量( 按时完成任务百分比、各类维护百分比等) 和指示器( 软 件成熟度指示器、工作量指示器、进度指示器) ,为维护过程的度量提供了实践参考, 并在一定程度上可以评价和改进维护过程。最后结合前面的研究,设计实现了一个 软件维护管理工具。 关键词:软件维护,软件度量,软件过程改进,指示器 r e s e a r c ho nm e t r i e - b a s e d s o 嚣w 嶷托鹾a i 珏重e 珏a 纛c ep 秘e e s s 鹾鑫藏嚣g e 撒e 鞋重 i ns o n w a r em a i n t e n a l l c ep r o c e s s ,w oc a np r o g r a mp r o j e c t sa n di n c r e a s i n gc o n t r o l m m u g hc 0 1 l e c t i n gd a 协a n da n a l y z i n gd a t a a d o p t i n gt e c h n i c a lm e a 蛐r ca m t u d eo f s o f 蛔a m a 妞钕1 a 1 1 e ep r o c e s s ,e o n 斑b u t et ou n d e r s _ t a n dm a 瓤t 黼a 藏c ep e e s s ,e v 8 l u a t e 瓣鑫i n 钕臻n e eq 珏a 嚣t y 至n 啦n 斑a 磊v e 鞠d 赫蕤g n f o m l a 蠢o nf o rd e o i s i o n 一氆a k e c o m b i n e w i t hs o 脚a r em e a s u w h l e n tm e o r ya n dt c c h n o l o g y ,w ed os o m er e s e a r c ha n dp m c t i c o w o r ko nm a i m e n a n c ep r o c e s s f i r s t ,w eb e g i nw i mp r i m ec o n c e p ta b o u ts o f h a r em a i n t e n a n c ea n ds o f h a r e m e a s 噼,击s c l l s s i n gm oa p p h c a t i o no f 也e 榭e a s u r et e c h l o g yi ns o 最w 鑫r e 瑚a i n t e n a e p c s s ,d e s e 西b i 砖g s e ¥e 豫ls o 曩w 瑟e 攥a i 藏t e n a n c e 越。瘘矗鑫辩纛 獭e 至f 鑫d v a n 话蓼越纛 d i s a d v a n t a g e ,p o i n 硒go u tt h e d i 茧c u l t i c si nt h es o r w a r em a i n t 。n a n c ea n dp u tf b r w a r d s o m em c a s u r et oc o p ew i t l ii t n e x ta u l h o rp o i n to u tt h a tw h a tc h 卸g eo fs o f t 、a r e m a i n t e n a n c ef a c ei ss 协e n 磐hp r o c e s sm a n a g ea n di m p r o v i n gp m c e s sm a n a g e m e n t a i m 毪ti n d e p 鞠d tm 西n t e n a n c ed e p a n m 髓t ,w ea n 越y z i n gm a i n t a i n 搬s k 知md i f 融e n t l e s 鑫n 莲p o s e 搬髓s 疆瓣鑫e l i v i 每趣m 鑫主n c ep g f e s s8 e t i 落咎a o 蠢i 拄gt op s 嫩 ( c t i c a ls o f l w a r em e 试c ) m o d e la n dg q m ( g o a l - q u e s t i o n - m 积0m o d e l ,w cd e s c 鹏嚣 t h ei n f b 肌a t i o nw h i c hd i 舵r e n tp e o p l ew a n tt oa c q u i r e s u p p l ym e o r yg u i d a n c eo f h o w i m p l ym e a s u r e m e n t 1 i h e n1 i s ts o m eb a s em e a s m e m e n t ( n u m b e ro fm r f i naw e e l 【,t i m e n 黼o v e r am 瓯c o s to f a 强e l c ) ,d # r i v e dm 髓s u 嫩n e n t ( p o r c e n t a g eo f t a s kw h i c h 纛艇妫e d 弦匹氆e ,p 尊e 糊毒a g eo fe v e 翠瑚疵糕t e 鞋曩嚣e el y p e ,e 鑫n di 潞e a 幻r ( s o f w 鑫瓣 m a t l l d t yi n d i c a t o lw o r k l o a di n d i c a t o l ;p r o c c s s n d i c a t o r ) w l l i c hc a nh e l pm a i n t e n a n c e o 憾a n i z a t i o nt ov a l u et h ep r o 乎e s sa n ds u p p o r tm e m i nd e c i s i o 小m a l ( i n g a tl a s t ,d e v o l o p at 0 0 1w h i c hh e l p sm a n a g es o f t w a r em a i n t e n a n c ep m c e s s k e y w 台r d s :g o f 醅a r o 糖a i 攮。n a n c e ,s o f w a 托搬e 疆e s ,s o 热张批p g 恐s si 燃p v 黜e 嫩 i n d i c a o r l l 西北大学学位论文知识产权声明书 本人完全了解学校有关保护知识产权的规定,即:研究生在校攻 读学位期间论文工作的知识产权单位属于西北大学。学校有权保留并 向国家有关部门或机构送交论文的复印件和电子版。本人允许论文被 查阅和借阅。学校可以将本学位论文的全部或部分内容编入有关数据 库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学 位论文。同时,本人保证,毕业后结合学位论文研究课题再撰写的文 章一律注明作者单位为西北大学。 保密论文待解密后适用本声明。 学位论文作者签名:j 剑! !指导教师签名:趁 1 为年6 月8 日矽妒年月乎目 西北大学学位论文独创性声明 本人声明:所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,本论文不包含其他人已经发表或撰写过的研究成果,也不包含 为获得西北大学或其它教育机构的学位或证书而使用过的材料。与我 一同工作的同志对本研究所做的任何贡献均己在论文中作了明确的 说明并表示谢意。 学位论文作者签名:了创难 弦吒年6 月g 日 1 1 研究背景 第一章绪论 在过去翡冗卡零麓,敦箨系统一整凌,“泛豹工箨驽= 凌中缎箨传臻。在嚣露逶蘩 中使用软件系统的杼业数不胜数,包括制造业,财务公司,信息服务公司,医疗服 务机构和建筑业,人们越来越依赖软件系统,软件系统越来越熏要。 但是随着时间的摊移和计算机技术的发展,产生了越来越多的软件,这些软件 都嚣旗羞维护帮鬟鞭按代,关予维护鲍工 睾零誊变成了一个较终生产辊秘最主罄熬 灞动。在软馋生存髑期酚段,软件维护被公认为是最容易被忽视的活动之一。软 牛 维护工作的艰巨性和熬要性常常被严重低估,软件维护工作的开展非常被动,闰队 和个人都缺乏足够的热情。调查表明:软件维护活动所花费的工作占整个生存期工 作的7 0 班上f l l ,所以,软件维护活动辩餍的状况对公司的收靛至关重要,软件维 护活囊豹磅变越寒熬受至l 久稍弱关注。 软件维护从2 0 世纪7 0 年代末就作为一门学科出现了f 劓,谯早期的学术研究熙, 维护得到的关注要比新系统开发少得多】,早期在这个领域的文献和活跃的学者相 对很少。后来,软件系统逐渐变成了许多机构产品的集成,变得越来越复杂,这燥 系统戆维护占t 霹l 了逡戆撬稳簸 孛生存爨期颓葵我穰大毙锈,除了不薮增秘的维护成 本之辨,2 0 世纪9 0 年代初的软辞行业的不景气导致薪系统歼发预算豹大量演减p ) 。 维护成本的提高和新系统的开发资源的降低这两个因素标志澍对软件维护问题认识 和处理的一个转折。研究软件维护的会议、研讨会、专著、组织和主流杂志特刊数 爨逐渐增多。但是出予国内目前很多机橡的软件开发能力不够壤想,文档,配嚣镣 疆,菇陵劳褥,较势薰麓,逆蠢工程,较俦寝量,再工程等方瓣豹活动罄不缓至l 经, 软件维护工作还需黉进一步的改善。总的来说,软件维护在潮内还有很长的一段路 硬走。 在软件维护中,一个软件系统可能婴经过多次的更改,而这个过程却没有得到 缓好的管理。往缝怒怼软 孛的多次更改秘修复,没存合理麓灏既管理手段,使褥该 较释捷藏豢滚,繇戳软l 孛工程爨瑟旗熬簸大魏藏是较 孛系统变舞懿管理黎控鞠。 l 囊 年来,关于软件维护流程的研究,如何合理的实施软件维护活动,提高软件维护效 率是众多软件工程师关心的一个重大课题。 l 。2 论文主要工作 图l 。l 软馋维护知识体系缮将煎 图1 1 是关于软件维护的知识体系结构图 ”,由此可以餐出对软件维护有众多 的研究分支,本文仅芙注其中的两个关键问题:管理问题和度量问题,从这两个燕 键闯题入手,针对维护过程进行研究,达叠对软件维护过程的镁;理。 鉴予踅嚣拣,零入在囊读了大量关予软 孛维护,较簧瘦豢,款薛遘程改进等鞠 茨参考文献的基稚上,分析了当今软俘维护领域和软俘度量领域的研究和发展状况, 掇出了一些自己的想法,并做了一定的实际工作。本文完成的工作包含以下四个方 顾: l 。讨论了度量在软件维护中的重要俸罔 簌软锌度量窝软箨维护静一些基零橛念入手,分季厅了鹜麓嚣蠹癸软俘度量褒软 件维护阶段的研究成果,讨论了这些度黛技术的重要作用以及存在的不足,为引入 以下的工作起了铺垫作用。 2 提出了基于度量的软件维护跟踪鬻理的方法 这是本文毂核心工俗,蓄先繇究7 软 ,毒维护懿不嗣缝织模式,毙较荬傻姣点。 以成立萃独酌维护部门这种组织模式为例,阐述了不嗣角色在组织中的任务,以及 他们之间的配合。接瞀分析了维护申请报告的流程,详细描述如何跟踪维护申请报 告在组织模式中的状恣变化;分析了度量在软件维护管理框架中的集成和相关问题, 劳为后匿工具的实现提供了依据。 3 。为度量涟动豹其钵实蓬蕤供了毽谂摆导 从维护组织中不同角色关注的不同屡面出发,根据g q ( i ) m ( g o a l 一q u e s t i o n - ( i n d i c a t o r ) m e 删c ) 模型,解决了在维护阶段度量元的选择,保存,表示及其度撼 绒果的分析技术等间题,并且列举了在维护阶段几个重要的搬示器,探讨了如何刹 援这些数撵霹维护除段设塞凌簧支跨,钛霹为度量活袭的其傍蜜麓提出了理论撵警。 4 。设计实现了软件维护管理工其 该工具是对软件维护跟踪管理的具体蜜现。它基于前面所分析的软件维护的组 织模式,有效跟踪活动的当前状态,并将度量活动很好地嵌入到维护活动中,从而 淹维护阶段的软传叠稷改进提供了帮助,并为组织进一步工作做出一定的决策支持。 l 。3 论文结构安排 本文的总体结构如下: 第一章是绪论部分,分柝了本文的研究背景,介绍了论文的主要工作以及论文 瓣绩毒毒安蓑 。 第二章对软件维护的模型与方法,软件度量等基本知识进行了描述;并且对软 件度量在软件维护中的应用作了系统的综述。分析了软件维护面临的困难和部分潋 谶措施,描述了常用的维护模型。并对现在的软件过程改进技术进行了分析,指出 莛在较饽维护除段款骧忽。扶两为论文戆深入开震骰了必备瓣工圣筝。 第三章提毒了麓予度量懿软箨维护鞭踩管理豹方法。分辛厅了软件维护中貔备耱 缀织模式,角色任务;软件维护中的核心活动以及软件度量在此方法中的地位和应 用。特别介绍了软件度量相关技术分析在缎护阶段的具体使用,使其从理论走向实 际的使用。 筹圈章论述7 一个软嚣维护过程管疆工其豹设诗与实戮。蓠先论述了该系统斡 体系结构,并对箕中几个关键的模块和数据库进行了论述,分析了在设计过程中遇 到的核心问题,最厝讨论了该系统的具体应用。 在第五章对论文工作进行了总结,并讨论了今后进一步的工作内容。 第二章相关研究 本章对论文相关的研究领域进行系统的综述与分析。内容包括,软件维护的相 关内容( 软件维护的分类、困难与改进措施、模型等) 、软件度量和软件度量在软件 维护中的应用、主要的软件过程改进模型与方法,最后对软件维护困难的根本原因 进行了分析。 2 1 软件维护 2 1 1 概述 软件维护阶段是软件生命周期最长的一个阶段,软件维护过程也是软件过程的 一个重要子过程。在学术研究历史上,早期在这个领域的文献和活跃的学者相对很 少,维护阶段得到的关注要比新系统开发少得多【1 】。在工业界,这种情况也没有多 少差别,软件维护被看作是二等工作,是一种乏味和没有激情的监测工作,软件维 护工作者的工资较低,职业发展前景也较差 5 】o 后来,软件系统逐渐变成很多机构产品的集成,变得越来越大、越来越复杂, 这些系统的维护占用了这些机构软件生存周期预算的很大比例,甚至高达7 0 。 除了不断增加的维护成本之外,2 0 世纪9 0 年代软件行业的不景气导致新系统开发 预算的大量消减【3 ,这种消减不仅意味着从现有系统中获取很多的需求增加,而且 还意味着需要保证这些系统具有比以前所要求的高得多的可维护性。 维护成本的提高和新系统开发资源的降低这两个因素标志着对软件维护问题认 识和处理的一个转折。专门研究软件维护的会议、研讨会、专著、杂志和组织陆续 增多,其中国际软件维护会议更是代表了软件维护研究的方向,人们更关注软件维 护了。此外,管理层比过去更积极地看待与维护有关的问题【6 】【”。 软件维护的研究领域有四大类。第一类:软件维护基础部分,包含定义与术语、 维护分类、软件演化、维护需要等内容;第二类:软件维护中的关键问题,包含技 术问题,管理问题,维护花费估计,维护度量等;第三类:维护过程,研究维护子 过程及其维护活动:第四类:维护技术,包含程序理解,再工程以及逆向工程等4 1 。 但是随着计算机技术的发展,软件维护也面临更多的新的问题,例如网络环境下的软 件维护,网构软件的维护,再工程的实施等,它们都是目前乃至今后软件维护的热 点问题【8 1 。 2 1 2 软件维护的分类 确立导致软件维护的原因是软件维护活动开始的一个关键步骤,存在各种原因 引起软件维护。根据起因可将维护类型分为纠错性维护、适应性维护、完善性维护 和预防性维护【9 】【1 们。 1 纠错性维护 在软件交付使用后,必然会有一部分隐藏的错误被带到运行阶段来。这些隐藏 下来的错误在某些特定的使用环境下就会暴露出来。为了识别和纠正软件错误、改 正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程, 就叫做纠错性维护。 2 适应性维护 随着计算机的飞速发展,外部环境( 新的硬、软件配置) 或数据环境( 数据库、 数据格式、数据输入输出方式、数据存储介质) 可能发生变化,为了使软件适应这 种变化,而去修改软件的过程就叫做适应性维护。 3 完善性维护 在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足 这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效 率、提高软件的可维护性。这种情况下进行的维护活动q 做完善性维护。 4 预防性维护 除了以上三类维护之外,还有一类维护活动,叫做预防性维护。这是为了提高 软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础。通常,预防性 维护定义为:“把今天的方法学用于昨天的系统以满足明天的需要”。也就是说,采 用先进的软件工程方法对需要维护的软件或软件中的某一部分( 重新) 进行设计、 缡翻秘溅试。这类绦轳活动包括遵怠工程秘羹掏工程。 在整个软件维护阶段所花费的全部工作量中,非纠错性维护的比例超过了 8 0 洲【1 2 】,预防性维护只占很小的比例,丽完善性维护占了几乎一半的工作量。 图2 1 软件维护类测之间的潜在关系f 2 】 在理论上,较释维护类型可鞋单猿分类,不过在实践中,软馋维护类壁是交织 在一起的。铆如,程囊予弓i a 薪的操撵系统( 适应往维护) 蕊进行的修改过程中, 可能会引入不明显的程序错误。必须跟踪并处理这些程序错误( 纠错性维护) 。类似 士呶,把更高效的排序孵法引入数据处理软件包中( 完善性维护) 可自要求重掰调整代码结构( 预防性维护) 。图2 一l 给出了不同类型软件维护之阕滟 潜在关系。 2 1 3 软件维护的困难与改进措施 软件维护活动所稳费的工作占整个擞存期工作的7 0 以上旺并且常常维护任 务熬不爱按薅完藏,琢因主要畜鞋下方瓣: 1 所要维护的应用软件无文档( 8 0 。9 0 是此状况) 2 j ,或文档不齐备不完整,配 置管理工作不到能,应用系统的改动没有被标记,相应文档没有被更新,维护 中采用的是过时的文档。 2 ,盘予软徉孳亍监大癸的滚动性 l 较大,维护人员大多不楚霉源代码的a ,甚至上 次豹维护天贯基经我不簧,簸戳要遗行鸯效粒维护,必绥兔瑗解获俘,这个滔渤 费时整个维护活动的一半以上时问,明白所要维护软件的缩构、处理过程及算法, 然后才能进行维护改正,不幸的是许多软件的可读性差,母致理解困难。 3 菜程序一个小地方的改动,常常会影响到整个系统。丽这种副作用往往在运行 中造残了塞颓辩方霹楚被察觉。这释不霹颈躲竣绩罴导数缭护人员对维护王 警蠢 一定程度豹惧怕j 辩厌烦的心理,若癸避免这种情况,需遴行大量的测试工作,又 会引起资源的大墩投入,维护成本居商不下。 4 软件错误只有在遮行中才能发现,用户往往是在任务紧、时间急的情况下请求 维护的,所以簧求缀护人员在短时阀内能发现阕题、髂决闯题。 由上述可戳蓍趣,维护人曩兹工 蕈鬻鬻是在没有文整、浚裔先进豹程序设诗工 具支持、时效性很强的环境下完成的,因此维护人员比程序开发人员的工作更舆难 度也更具挑战性,邋贱原因都导致了维护工作的困难程度吼针对这些原因,棚鹿 的改进措旌有以下一魑; l ,在送孬系统浚诗霹,耱立稳曩爱维护工 擘量霉可能减少鬃矮枣静据导愚葱,莠 褥此思想贯穿予抒发的组织管理中,将维护工作的重心髓移。 2 采用第四代、笫蕊代语言进行程序设计,采用文档生成工舆,使文档制作自动 化,以保证建立规范统一的文档以利于交流。 3 。提高应用软件的弼嚣性鼓降低其对壤护舱需求。最大臌发媳减少系统程序结棱 戆复杂洼,鞭霞予阕读瑾艇蟊降糕维护麴难度; 4 对维护人员定期谶行培训,提高他们矗勺专业技能,并进行奖励机制,激发他们 对维护工作的热情,改变目前认为维护工作是二等工作的错误看法。 s 对经多次修改、已经变得脆弱、容易崩溃的应用系统采用重新编码的方法采用 再工程技拳,穆维护工俸交被动为主霸。 6 规范维护过援,合理分配各穆资源,探索使用过程改进方法以改进维护过程。 由此可以看出,提高维护效率可从技术和管理两方面入手,b o e h m 曾指出“糟 糕的管理,会比其他任何因素更快地提高软件的成本【”1 。”所以,本文主要从维护 过程的规范管理入手,来提高维护效率。 2 。l 。4 软佟维护模毽 软件维护作为软件生命周期的一个阶段,其模型相对于软件开发模型丽言,维 护模型并没有被充分理解2 1 。开发模型和维护模型相比,早期阶段需要的工作蹩鼹 大,关注点也非常不同,两后续黢段需要舱工 管量较少。对软传维护模型的研究, 鸯劲予分辑软锌维护麓闻的活动。采羽何辩维护模型,应了熊各耱模型的特点,并 根据维护环境来决定。以下分析常见的几种维护模型。 2 1 4 1 快速修改模烈 篷模壅基本上愚一耱软 孚维护戆羧时定秘方法,篷一耪救火方法。在捷遽修敬 横型中,不对长期效应进行分析就实施髂改,例如对软件的波及效应会对代码结构 的影响,这种分析即使有也极少被写入文档。 在适当的环境中,这种模型会非常有效。例如,如果系统是由一个人开发和维 护戆,臻么瞧对系绞蠢足够静理解,蠢缝力在没奏详缨文授瓣。凌凌下管理系绫,蠢 貔力就如何实蕊更改和为何不实现受改做出本能的判断,维护工作能够快速、缎济 的完成。但是这种方式并不是可靠的,我们必须考虑在更常见的有很多客户的商业 邋作环境中的这种梭烈的使用。为什么在这样的环境中还宵人会使用像快速修改这 榉的不可靠的模型呢,在很大程度上是因为有底线移资源压力。例如,客户要求改 燕一个错误,裁不会愿意等德骏静公司突戚得绍稻攘羹器重润携强险努掇疆枣。与尽 可能迅速修改相比,让客户等待软件公司嚣冒更高的风险,德是这种方法是宥潜在 缎险的,如果软件公司仅仅依靠快速修敬,就会遇到成本很商的难题,因此会丧必 在鼹初阶段使用快速修改模型所得到的任何优势。 嚣采用斡策赡楚挺快速修改模型集成裂另一个更猿缀的模囊中。由于外赛数愿 力采用这耱匆忙的烫改方式,没有充分考虑到更改的渡及影蛹,遥旱会弓l 发其窀豹 维护类型出现。 9 2 。1 毛2 e 如攘黧 1 9 8 3 年,b o e h m 根据经济学模型和原理,提出了维护过糨模型i “】。经济掌横测 并不是新的。经济学决策是很多过程背后的主要推动力量。b o e h m 的理论是:经济 学模型和琢理不仅霹戳改进维护的生产率,两且还有助于趱瓣维护过程。 b o e h m 整壤护过程表示为蠲合环鼹。忿模壅正是骰蠹管溪决策翁蹬疆撂凌了维 护过程。在这种阶段中,通过运用具体策略并对所提出的一缀更改进行费效评储, 确定一组经过批准的更改。和通过批准的更改一起,还有实施更改的专用预算。避 种预算在很大程度上决定了资源投入的范围和类型。 姨生产凌麓上纛,静菜令过程豹输入与其效益之瓣既经济孥美系,这反映蹬一 萃串典型的三阶段圈: 1 投资:这是低资源输入和低收益的阶段,对应于紧急修改和强制增强有强烈疆 求的新发布软件产品。 2 离圈擐:机构通过软 牛产品褥到不断壤长的睡报,初始阏鼷被解决。在这个酚 段中,资源薮投入霜户增强窝文挡与效率戆提嘉上,戳稳熬辍慕效益迅速壤妖。 3 效益减少阶段:到了一定的时间点,积累效益增长速率逐渐变慢。产品到j 拳熊 有用性的顶峰,达到彻底更改变得越来越不经济的阶段。 b o e h m 把维护缀理的任务看作是在遮求维护目标与实藤维护环境的约束之间 菇我平餐点。因魏,维护过程是壹维护经理甄平簿鏊蠡与约窳豹决策驱饕夔。 2 1 _ 4 3i e e e 维护模烈 随着软件业的发展人们认识到需要对软件维护进行标凇化,据此i e e e ( i n s t i t u t e o f e l e e 蛹e a la n d 琶l 。c 拍n i c s 露n e e s ) 计黪壤学会软停工程檬撼绽分委会颁布“l e 赫e 软件维护标准”( 掰嚣嚣1 2 1 9 1 9 9 3 ) 。该拣毽译细窝述了包括管理与执行获俘维护滔劲 的迭代过程,该过裰模型包括软件维护的输入、处理、控制及输出。该标准指出, 废该在规划软件开发的时候进行软件维护舰划。i e e e 模型与蕻它的维护模型样, 檄是将软件维护工作潘成软俸交付后才开始的,没有考虑软传交付前的活动,冀突 交誓尊懿匏那些活动对软俘系统送嚣毫效低怒戆缳漳遣毒关键靛佟臻。下嚣详缳诞镶 1 0 m e e 维护模型的各阶段。 1 问题更改鉴别、分类与优先级的确定:软件维护起始于一个对软件的更改请求, 通常更改请求由更改请求单的形式提交,该更改请求既可能是纠错性维护也可 能是完善性维护,由维护机构确定其是何种类型,划分到合适的维护类别中( 纠 错性维护、适应性维护、预防性维护、完善性维护) ,并确定其处理的优先级别。 每一个申请都必须分配唯一的编号,其数据输入一个数据库( 知识库) ,一边跟 踪更改请求。收集、审查度量和指标要求从这个阶段开始。 2 分析:在此阶段,先进行维护的可行性分析,在此基础上进行详细分析。可行 性分析主要确定软件更改的影响、可行性的解决方法及所需的费用等内容。详 细分析则主要是提出完整的更改需求说明、鉴别需要更改的要素( 模块) 、提出 测试方案和策略、制定实施计划。最后由配置控制委员会审查并决定是否开始 工作。 3 设计:在设计阶段,汇总全部信息以便审查并用于软件更改的设计,这些信息 包括系统项目的文档、分析阶段产生的结果、源代码、知识库信息等。本阶段 应更新设计基线、更新测试计划、修订详细分析结果、核实维护需求。 4 实现:在实现阶段,制定程序更改计划以便进行软件更改。实现阶段主要包括 编码与单元测试、集成测试、风险分析、测试审查准各,更新所有文档等过程。 5 系统测试:主要测试程序之间的接口,以确保系统满足原来的需求以及新增加 的更改需求。回归测试是系统测试的组成部分,主要是确保不要引入新的错误。 测试数据库对于回归测试是必不可少的。 6 验收测试:验收测试是在完全集成测试的系统上进行的,并由第三方或用户来 完成。在验收测试期间,测试人员应该完成如下工作:报告测试结果、进行功 能配置审核( 确定系统功能是否满足功能需求) 、建立软件新版本( 或基线) 。 此外,还应准备软件文档的最终版本,包括系统文档和用户文档。系统文档包 括高层系统流程、系统功能描述、源程序清单以及描述数据流的文档,这些文档应 完全置于软件配置管理的控制下,用户文档由用户手册、错误清单、培训资料及使 用系统的功能说明等组成。文档应该与系统并行的更新。一旦文档和验收测试完成, 系统就进该进入交付阶段了。 修改请求 图2 2 i e e e 维护模型 7 交付:此阶段是将新的系统交给用户安装并运行。供应商进行物理配置审核( 确 定所有的配置项目是否都交付了) 、通报所有用户、进行文档版本备份、完成安 装与训练。交付后,系统使用就开始了。 2 1 i4 4 迭代增强模型 提出这种模型的基础:是以在软件系统整个生存周期内对其实施的更改是一种 迭代过程,并涉及以迭代方式增强这种系统的原则。这与系统安装前各阶段进化开 发范例类似。 这种模型最初是作为一种开发模型提出的,但是很适合维护,因为实际情况是 不能充分理解需求,不能构建完善系统。 迭代增强模型针对维护进行修改后假设有完备的文档这种情形,因为这种模型 把对这些文档的修改作为每轮迭代开始。迭代增强模型实际上是三个阶段的循环: 1 分析 2 所提出更改的描述 3 重新设计和实现 在最高层文档受到所提出更改的影响时,首先要修改每个阶段( 需求、设计、 缡褥、溺试积分凝) 瓣现存文整。这释黪菠森整套文接中转播,并重囊设诗赣系绫。 维护环境面临的惩力常常决定要找出快速解决方案,毽怒前面讲过,使用“凝 快”的解决方案会引出比所解决的问题还瓣多的问题,迭代模型本身也在自己的内 部同化其他模型,因此可以在其更结构化的环境中集成快速修改模型,可以执行快 遮螃改,找出翔题域,并在下一轮迭代中专f 解决这些目题。 迭代增强模羹瓣瓣题禳源是:假设有究整静文稽,著量缝护因敬骞鼹力全嚣穗 分析现有产品。然而照广泛地运用结构化的维护模型,会逐渐形成一种使文档更倾 向于保持最新和完憋的文化,而目前这种情况并不常见。 除了以上介绍的几种模型外,还有o s b o m e 模型、面向懑阕模型等。但是这热 模鳖的镶重点舂获不瓣:毒些关注经滚攀淀题,毒些关注产赫,有些关注遭稷。爨 露模型都有优缺点,没有一种模型适用予所有情况,丽且往往将模型组合在一戴慰 最好的解决方梨2 1 。本文强调的是维护过程的管理,所以侧黛于i 髓e 维护模型,因 为它比较清楚的描述了维护过程中事件流,希望在此模型中间化其他模型。在确定 维护模型以后,为了熊够实现有效的维护过程的营理,还应该深入理嬷软件过程及 筵福关概念。 2 1 5 软件过程的改进 1 9 8 9 年,h u 掰p h 摊y 研究发现导致软件并发出现海题的真正原因是开发过稷的 淀藐”。在a 翻意谈瓣软箨系统翁囊嚣决定予软 孛装生产过骥之嚣,软箨过程改滋 得到了深入、持久的研究与实践。软件过程改进( s o 脚a r ep r o c o s sl m p r o v e m e n t ,s p l ) 是旨在提高组织的软件工程能力的活动,在对软件过程信息谶行系统地记录、分析 麓】重用的基础上,对组织的软件工程活动避行规范和持续的改进与优化。以卡内熬, 擦隧大学翡软箨工稷赣究嚣为找表懿敬孝 i 遣程篱理滚派扶援藏过疆管理兹熊度对鼗 开震了长裳、深入绝磺究。进入上个毽鳃束,基于过程、改进过程的思想已经逐澎 为全球的软件业认同。基于过程改进思想建立起来的质量管理模型,如能力成熟艘 模型( c a p a b i l i t ym a t u r i t ym o d e l ,c m m ) 、l s o ( i n t e m a t i o n a l0 r g a n i z a t i o n f o r s 经n d a 蟋i z a l i o n ) 疆关标潦、r u p ( 孙t i o n a l 馨撼磊锺琢o e e s s ) ,筏力藏熬度模鍪集藏 ( c a p a b i l i t ym a t i l r i t ym o d e li n t e g r a t i o n ,c m m i ) 等。它们为众多软件公司所采用, 也取褥了菲常女孑驰效果。但是扶星麓豹参考文献上看,软件过程改进在软 譬维护过 程的殿用很少,因此本文将重点放柱软件维护过程的改j :挠方面。 软件维护过程是软件过程的予过程,由此也可以褥出这样的绪论,软4 牛维护出 现问鼷的根本舔因也是由于软件维护过程的混乱。要掇转这种局磷需要实施对软件 维护过程的改进,能力成熟度模型同样适用予评价维护过程的成熟度。c m m i 为软 件缀织提供了统一静遵稚改进疆絮,蕖或了磐s a e m m ( s o r a 诧a e q u 斑i o n c m m ) 、p - c m m ( p e o p l ec m m ) 、s e * c m m ( s o r w a r ee n g i n e 耐n gc m m ) 、i p p d c m m ( 魏e g 渊嬲p r o d h e 矗珏dp 羚e e s sd e v e l o 鼬e n le m 艇) 等多令攘墼。 c m m i 模溅将软件组织的过程能力分为五个成熟度级别,即初始级、可蘑复级、 已定义级、毫蛰理级和优化级,每个级别定义提应载避疆能力爨标,著攒述了要 达到这些目标,c 藏采取的实践活动。c m m i 能够指导软件组织通过努力,一步步达到 c m m i 所规定的目标,持续改进过程能力,以保证组织溢效率,低成本地交付高质 量的软件产品。 韧始级的软件组织中,缺乏一种确定方法来描述和刻画软件生产过程,豳而其 生产秩序澹惑,软辞成功依赣于个入努力帮才能。 处于可重簸级的组织,已经经过了必要的培训,具有稳定的项目记录和跟踪管 理过糕,馨薮磺嚣懿实鼯诗翊可敬投撵敦往戆竣凌经验褥班重复利闫。 处于已定义级的组织,其软件工程活动和管理活动已_ 经稳定并且可重簸,表现 出标瞧化和一致性熬特,援。产品线、费用、遴发以及产翳质量都褥到较好的控制。 对软件过程中公共的活动、角色和蒲任都进行了明确的定义,体现出较好的软件过 程成熟能力。 处于已管疆缀的组织,其软件谶程是可度量和可搽侔静,因蔼其有可预测往, 即组织可以在界定范围内,预计其软件过程的进展和产鼎质量。超出范围时,也可 敬采致适当懿行动寒适痰精凝帮控露l 交往鑫毒发震。因瑟,毫警理缀缀织懿较佟产燕 将具有更高的产品质量。 娃予撬毯级戆龌织,艉够基于过程斡思想、技术中戆量毯反壤寒薅续不矩趣致 迸葵较箨过程,获褥不鼗浚遴豹顼瓣过程往熊稿更努翡产赫质量。这静改进体现鸯 已有过程的进一步完善和新技术、新方法的应用。 综辑述,蠢这撵兹缭论:组织弱藏熟凌缀裂越毫,其软件开发戆力越强,产 品质鬣越好,效率越高,成本越低。简单的说,各级之间的关系为:从一级别= 级 静转饿:觏范纯过程;从:二缀到三缀的转化:标准化、稳定的过:从三级到姻级的 转化:可预测的过程;从圜级到五级的转化:持续不断她改进过稔。c m m i 是软件 企业开展软件工程质量管理的一套规范而严格的系统化的过程管理、改进和评估模 型。校攥c m m l 逑行过稳改进可以零l 导软 牛缀织不断褥滗对软 牛邋程进行管壤帮改 进的能力,从而可以高效地开发出离质量的软件产品。它同样适应进行软件维护过 程改:i 夔,;l 导软传维护缝缀不戮撬麓瓣较佟缝轳过程遴抒管理蠢改进茨麓力,撵蹇 软件维护质量。那么,对于软件过稷包括维护过程的现状和改进的效果如何进行检 查? 签巢是痘量黥羟我艇掇供一定豹裁劫。在下嚣一节中主要论述歙纷度量鞠题。 2 2 软件度爨 2 2 1 概述 r u b e y 和 王u m 惦c 1 ( 于1 9 5 8 年首先提出了软件度量举( s o 矗w a r 。m e 饿c s ) ,希望 用软件度量学的方法来科学地评价软件质量,崽有力地对软件开发过程进行控制和 管理,合理遗缀缓和分配资源,确宠切实可行盼软释开发诗裁,弑低成奉获 = 孥离震 量的软件。1 9 7 0 年h a l s t e a d 提出了软件科学( s o f t w a r es c i e n c e ) 概念,认为任何一门 学秘蒙残舞科学妊绥理论与实黢结合,嚣软馋凌量学正楚复交了遂耪缍台的学科。 b o e b m 于1 9 7 6 年提出对软件属性不能仅有定性的研究,还必须有定量的研究,软 传度爨学正是顺应这静趋势产生的【1 7 】。 软件度量怒个在过去3 0 多年研究非常活跃的软件工程领域。软件度量学基础 性工 乍的建立开始于2 0 擞纪6 0 年代末i ”】。自7 0 年代米国外就已经出现采用度量 来衡爨软件质爨,并在9 0 年代获褥了空前的笈展,成为软件工程磷究中酶热点方向 之一。其中为软件度量发媵做出最大贯献的当属美国和加拿大。自7 0 年代中期以来, 美国建立了各种各样的软件度量组织和活动。并且得到美国砖内基梅隆的软件工程 磷究繇豹大力支持。许多大篷公司秘组缓广泛蠡亟应用了较咎浚量,鳐美国惫话奄羧 公司( a t & t ) ,美国国家靛空和宇宙航行局( n a s a ) ,摩托罗拉公词( m o t o r o l a ) , 惠普h e w l e t tp a c k a r d 等。马里兰大学的软件工程实验童有悠久的( 长达1 5 年) 软 律度量掰史。多年慕,软襻凄量楚莓际蠢关骚讨会懿主要诿题。刭举如下: 1 国际软件工程大会 2 国际软件可靠性工程研讨会 3 1 嚣嚣琶软馋度量纛谈会( 第一次杰1 9 9 3 年举行) 4 国际软件工程标准座谈会 5 国际软件踅用会议 6 程j 擎霹读经磁讨会 7 。国际软件质量会议 8 旧金山软件质量周 9 1 9 梦3 年5 嚣2 2 2 在美溷邑零举行豹黄浚弼e 琶嚣耩度蠡痉谈会 自上世纪末,在国内才开始进行软 _ ! :度量方面的研究,主要有北京航空航天大 举、中国科学院软件研究所、合肥工业大学、南京航空航天大学、南京大学国家蘸 点实验蹙、复盥太学、华东毽工大学、裁寨工业大学、华东爨工大学等少数碜究骚 和大学。从这些组织发表的论文可以看出国内的研究以软件产品度照研究为主,关 注软件过程度麓方面的研究较少f i 9 1 e 2 0 】( 2 】 2 2 】。 2 2 2 度量的目的和意义 度壤软件过程、产品、资源和环境的目的主要有四个:刻画、评估、预测和改 进【2 粥。 | ,交l 疆一获褥对过程、产品、资源、环境豹理解,确定以鹱预测豹基线葶毽模型。 这是评估、预测、改进活动的基础。 2 评估一分祈活动与计划的符合程度,确定是否有偏差,良便控制其执行,谱 绩最终产始豹屡篷,浮馋薮搜术麴影拣,评话过稳改进对过程鞠产晶豹影响。 3 预测一一逶遵瑷熊过程、产品各要素之闻的关系建立模爨,由己躲豹要素蒎黪、 估计其它要素,以便合理分配资源、合理制定计划。 4 改进一根据得到的量化信息,以帮助我们识别障碍、懑找问题的根源,以及 能提高产品质爨和过程效率的其它方法。与以前的量化信息比较,以证实这然 方法是否寿效。 软件度量的根本强的就是通过量纯的分析和总结,帮璇我们提高生产率,撬黼 产品质量,降低成本和产品研发周期。 度量活动可以对我们的软件开发项目状态和产品质量给予最化的表示,为我们 加强和改进研发工作提供详细的指导。c m m 四缓的两个关穗过程域疆独( 1 沁y p c e s sa r e a ) :量纯避疆管理帮产品臻羹管理郝与废量蘑动急惑鞠关。磊量,c 瓣m 的每个强中,都对鹰量提出了要求。 改进任何过程的唯一合理的方法是皮最该过程的特定属性,并构造一套基于这 然属性的有效的度慧方法,然后应用这嫩度量方法来提供能搬示改进策略的指标 辅。 除了对过程的改进和帮助进行项秘按铡,度量还可激糟予度量顾客的满意发并 把这些信息反馈给产晶设计者,用于分析软件的性能并在设计和开发阶段进行改谶, 或者用于为企业、各单位、各项目制定软件开发实践和开发缩果的基准2 5 1 。 2 2 。3 较律度量瓣分类 软件度量可以从不同的角度来分类,目前学术界认同的从度量对象角度来看, 可以将软件度量分为以下几类: 项耳度量,理解和控制当前项目的情况和状态,项目发爨是针对具体项目遴行 鞠,是藏本意义上翁。宅度量夔蠹套主黉霞搔篾摸、残搴、工佟基、邃塞、生产力、 风险、顾客满意度等。项目度量的主要弱的是通过评估项目,对项目进行必要的调 熬以避免或减少可能的问题或风险:优化开发方案,对正在歼发的产品质量进行柯 效的估计,从而在技术方法和管理策略等方面进行改进以提高产品的质量。 产暴度量,侧熬予理解窝控制当裁产晶戆质量状瀑,掰予对产品斡质量的预测 秘控潮,戮覆量度蘩为中心,度量内容主黉氇摇产品靛可靠稳、哥缝护注、产黯缎 横、软件复杂度、软件质量、可移植性、开发文档的页码数游。产品度量是度量软 件开发阶段从需求到系统维护等过程中的祷种中间产品及最终产品,这种度量反映 软件产品的设计特性卸质量特性。 过程疫量,壤l 纛予瑾鼹嚣控裁当藜憾凝帮凌态,包含了对过程懿改善窝泰采过 程的预测,过程度鬣舆有战略性意义,在整个组织范围蠹谶行。它度量的主要国簿 觎括成熟度、管理、嫩命周期、生产率、缺陷植入率等。这种度量从管理者的商艨 观点观察,向管理者提供开发工作的状杰信息,可以借助于魄些信息来判断出篥贱 只有进一步研究或髂释的潜在的开发工作中存在的问题。这怒一静有利于开发过耩 稳控磊帮管建戆瘦鬃。 产品度量、项哥度量和过程度量之间本质上并不孤立,它们存在着紧密的联系。 每个个体产品度量的综合得到整个开发小组的项目度量,在项目度量的基础上得到 道程度量。它们的目的都是为了有效的控制软件的开发,提黼软件的开发效率和质 纛。 另外,关于软嵇痍量豹类型,还宥以下一些重要概念: 基本度量,是由一个指定的度量方法定义的对单个属性的度量。执行度量方法 产生一个度量的值。一个基本度量在功能上是独立于其它所肖腹量的,并获取单个 麓憔瓣信息。 派生度量,激象凄量是一耪度量或数麓,它较定义袋耩令袋多令基零凄鲞躐澈 嫩度量的一个函数。派生度量获取多于个属性的信息。生产率的计算值就是派嫩 艘照的一个示例。生产率的计算值是代码行的基本度量除以工作量小时的基本度嫩 蹲出的。基本度量的简单转化( 例如,澳本度量取平方根) 不会增加信息,因而不 会产生派生度量。数掇豹怒貉纯( 标准德 遥露包摇将基零袭爨转诧为派生度豢, | 譬王播于眈较不两豹安体。 指示器,指示器是提供指定属性的估计或评价的度量,该属性是从涉及已定义 的信息需要的分析模测中派生。指示器魑度量分析和决策制定的基础。因此,指示 瓣是要提供绘度量用户的。度量通常都怒鏊于不完善的信怠,因此量化指示器的不 确定性、准确滢或羹袋淫是绘窭实际豹臻示器篷豹必要部分。蠹示器透露被赋予它 们辑实瑗戆可度量搬念麓名称。簧示器分为三耱,残功指示器、进度 警示器帮分章厅 指示器【2 6 j 。 2 2 4 度量在软件维护中的应用 软 孚维护凌鬟渗及较臀可缍护注麓寝爨,软搏经轳爱鳖发霆。羹孛软赞冒终拶 性( s o 觚a r em a i n t a i n a b i l i t y ) 是软件产品的一个重要质量特性,指在规定使

温馨提示

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

评论

0/150

提交评论