




已阅读5页,还剩87页未读, 继续免费阅读
(计算机软件与理论专业论文)软件柔性的分析和度量.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 由于目前软件应用环境和需求的复杂性及多变性致使人们按常规的方 法进行软件开发很难满足需求,迫使人们研究和开发柔性软件。为了促进 柔性软件的研究和开发能健康顺利的发展,必须研究软件柔性的变化规律, 并建立一套科学的、合理的柔性评估体系,本文从以下几个方面进行研究。 第一,针对目前软件柔性概念不清和柔性的度量无从下手的现状,对 柔性软件及软件柔性的概念和内涵进行了深入系统的研究;在总结了人们 对柔性的认识基础上,从成本、反应速度和适应范围等三个方面出发给出 了新的软件柔性的概念;进而研究了柔性软件的特征、柔性软件的体系结 构,并从不同的层次和角度对软件柔性进行了分类。 第二,从领域分析和应用系统分析角度对柔性软件的需求进行了讨论, 详细的论述了如何确定柔性软件的共性、个性和变性等问题的方法;并从 技术和经济两个方面说明了确定柔性软件系统适应范围的方法及适应范围 大小的原则。 第三,分析了柔性软件的开发过程及每一阶段对软件柔性的影响;进 一步从柔性软件体系结构和柔性的设计实现角度研究不同级别的软件柔性 确定的方法和原则。 第四,详细研究了影响柔性的因素,并将其归纳成几个指标,建立了 软件柔性的度量模型;为了使度量更客观、准确,对每一个指标又进行了 细化,给出了具体的度量方法,使之具有可操作性,并将该度量模型应用 到河北远洋理赔系统中。 关键词软件柔性;柔性的度量;度量模型;柔性软件特征;体系结构;领 域分析;系统分析 垄些尘堂三兰堡主堂壁笙兰 a b s 仃a c t t h ec o m p l e x i t i e sa n dv a r i a b i l i t i e s o ft h ec u r r e n ts o f l w a r e si nt h e i r a p p l i c a t i o ne n v i r o n m e n ta n dr e q u i r e m e n tm a k e i td i f f i c u l tt os a t i s f yt h eu s e r s 。 n e e d si ft h e ya r ed e v e l o p e di nt h er o u n t i n ew a y s ,w h i c ho b l i g e sp e o p l et o r e s e a r c ha n de x p l o r ef i e x i b l es o f t w a r e s i no r d e rt op r o m o t et h es m o o t ha n d h e a l t h yd e v e l o p m e n to ft h er e s e a r c h a n de x p l o r a t i o no nt h es o f t w a r e s ,t h e r e g u l a t i o no ff l e x i b i l i t yh a st ob er e s e a r c h e da n d as e to fs c i e n t i f i ca n ds o u n d e v a l u a t i o ns y s t e m sm u s tb es e td o w n t h i sd i s s e r t a i o nm a k e ss o m ee x p l o r a t i o n o nt h i sp r o b l e mf r o mt h ef o l l o w i n ga s p e c t s : f i r s t l y ,a sr e g a r d ss i t u a t i o no f t h ec o n c e p to b s c u r i t ya n dt h el a c ko ft h e e x a c tm e t r i cb a s eo ff l e x i b i l i t y , t h i ss t u d yh a sc a r r i e do na ni n t e n s i v er e s e a r c h i n t ot h ec o n c e p ta n dc o n n o t a t i o no ft h ef l e x i b i l i t y b a s e do nt h es t t m m e r i z a t i o n o ft h ef o r m e rf l e x i b i l i t y s t u d y , t h i sp a p e rp u t sf o r w a r d an e wd e f i n i t i o no f s o f t w a r e f l e x i b i l i t y t h es y n t h e s i s o fs o f t w a r e c o s t ,r e s p o n s er a t e ,a n d a d a p t a b i l i t y , a n dm a k e saf u r t h e rr e s e a r c ho nt h ef e a t u r e sa n da r c h i l e c t u r e o f f l e x i b l es o f t w a r e ,a n dm a k e sac l a s s i f i c a t i o no fs o f t w a r ef l e x i l i b i t yf r o mt h e d i f f e r e n tp e r s p e c t i v e sa n dl e v e l s s e c o n d l y , t h er e q u i r e m e n t f o rf l e x i b l es o f t w a r ei sd i s c u s s e do nt h eb a s i so f t h ed o m a i na n da p p l i c a t i o na n a l y s i s ,a n dm e a n w h i l et h ep a p e re x p l o r e si n d e t a i lt h em e t l l o d sd e c i d i n gt h ec o m m o n a l i t i e s ,i n d i v i d u a l i t i e sa n dv a i l a b i l i t i e s 1 h et w or e s p e c t so fe c o n o m ya n dt e c h n o l o g ys t a t ec l e a r l yt h em e t h o d st of i x o nt h ea d a p t i v er a n g eo ft h ef l e x i b l es o f t w a r ea n dt h ep r i n c i p l e so ft h es i z eo f t h ea d a p t i v er a n g e t h i r d l y , t h ep a p e ra n a l y z e s t h ep r o c e d u r eo ft h ed e v e l o p m e n to ft h e f l e x i b l es o f t w a r ea n di m p a c to ns o f t w a r ef l e x i b i l i t yd u r i n ge a c hp r o c e d u r eo f t h ed e v e l o p m e n t a n df u r t h e rd i s c u s s e st h em e t h o d sa n dp r i n c i p l e dt oc o n f i r m t h ef l e x i b i l i t yl e v e lo fs o f t w a r ef l e x i b i l i t yf r o mt h ea n g l eo fi t sa r c h i t e c t u r ea n d d e s i g n f i n a l l y , t h i sp a p e rs t u d i e st h ef a c t o r sa f f e c t i n gs o f t w a r ef l e x i b i l i t y a n d s u m m a r i z e st h e s ei n t os e v e r n lm e t r i ci n d i c e s ,a n de s t a b l i s h e sam e t r i cm o d e lo f t h es o f t w a r e f l e x i b i l i t y t o e v a l u a t et h e f l e x i b i l i t y m o r e o b j e c t i v e l y a n d a b s l r a c t a c c u r a t e l y , e a c hi n d e xi s d i v i d e di n t ol o t so fs u b - i n d i c e sa n di n d i c a t e st h e c o n c r e t em e t h o d so f m e a s u r i n g t h es u b i n d i c e s ,w h i c hm a k e st h em e t r i cm o d e l o p e r a t i v e i no r d e r t ot e s ti t sf e a s i b i l i t y , t h i si sa p p l i e dt ot h eh e b e iy u a ny a n g m a n a g e m e n tc o m p e n s a t i o ns y s t e m k e y w o r d sf l e x i b i l i t yo fs o f t w a r e ;m e a s u r e m e n to ff l e x i b i l i t y ;m e t r i cm o d e l ; f e a t u r e so ff l e x i b l es o f t w a r e s ;a r c h i t e c t u r e ;d o m a i n a n a l y s i s ;s y s t e m a n a l y s i s i n 第1 章绪论 第1 章绪论 随着科技和经济飞速的发展,软件系统的应用范围越来越广,同时对 它的要求也越来越高。不仅要满足用户功能和非功能的需求,而且还要求 软件系统能方便、及时的适应环境或用户需求变化,具有良好的柔性。据 统计,目前软件维护工作中,大约有7 0 是由于原有需求的变化和产生新 的需求引起的川。软件应用环境及需求的复杂性和多样性使变化的强度和 频率呈不断增加的态势。然而目前我们在开发一个新的软件系统时,往往 只针对特定的项目和用户当前的功能和非功能需求,这就造成软件系统很 难适应使用环境和用户需求变化。当环境和需求发生变化时,不得不对系 统进行频繁的无准备的修改甚至重新开发。特别对于m i s 系统,其开发和 应用远远不能满足企业发展的需要,企业应用业务的扩张是持续性的,需 随时适应外部竞争和内部管理的变化,而应用系统功能的增加或改变却是 间断性的,一般升级一次间隔3 至5 年,使业务的发展受制于现行应用系 统的功能。加之,一般m i s 应用业务模型固化在软件之中,应用人员既不 能创建,也无法在使用过程中根据业务需求进行更改,大大限制了系统的 适用性和可扩充性。 因此,现行的软件系统的开发方法和开发模式不能及时满足用户需求 变化和环境变化的要求,软件系统的总成本也因系统不断的修改和完善而 大幅度的增加,软件系统的可靠性也因不断的修改而降低,生命周期缩短, 需要研究新的开发方法和模式来解决上述的问题。这种环境促使柔性软件 的诞生和发展,为了使柔性软件能健康迅速的发展,满足用户和环境的变 化的需求,就必须研究柔性的机理和规律以及柔性度量的方法,并把这些 理论应用到实际中。 1 1 软件柔性分析和度量的必要性及意义 在实践中,由于软件应用环境越来越复杂,很难准确地进行需求分析, 造成需求分析不完善。再加上开发时间长或应用环境变化频繁,有时软件 燕山大学工学硕士学位论文 开发还未完成,就因用户业务的变动和需求完善而被迫做出工作量极大的 修改。在投入使用后,也要进行频繁的维护,甚至还会出现一些小改招致 大动的局面,使后期维护比前期开发更艰苦。这种情况往往使一个应用软 件很快就不能适应形势发展的需要而“死亡”。 为了满足当前的软件所面对的应用环境,人们在积极的探讨开发一种 具有适应能力的软件。当软件的使用环境和用户需求在一定范围内发生变 化时,软件系统本身不做修改或稍做修改就能满足用户的要求,我们将其 称为柔性软件系统1 2 】。 柔性软件的开发技术难度大,开发成本高,但能有效的满足环境或用 户需求变化对软件的要求。它是软件发展方向之一,所以柔性作为柔性软 件的一个重要的属性,我们有必要认真分析和研究在软件开发过程中每一 个阶段和一些主要的要素对软件柔性的影响,以及对柔性影响的程度,掌 握柔性变化的机理和变化的规律。通过对柔性影响因素的归纳和总结,建 立一个科学的、客观的、具有可操作性的度量系统,促进柔性软件健康、 迅速的发展。 1 1 1 软件柔性分析的必要性和意义 1 1 】 分析原因提高软件的适应性随着计算机硬件技术的进步,计算 机的容量、速度和可靠性有明显提高,硬件成本降低。在这一形势下,要 求软件能与之相适应。然而软件技术的进步一直未能满足形势发展提出的 要求。用户需求变化得不到很好的满足,软件的总成本较高。软件技术己 成为计算机系统开发的瓶颈,陷入了所谓的“软件危机”。一些软件工程领 域的研究和开发人员为了缓解“软件危机”,积极的探索开发具有柔性的软 件,分析影响软件柔性的因素,缩短软件开发的时问,增大软件的适应范 围,延长软件的生命周期,减少软件的维护成本,使待开发的软件等待时 间变短。据统计,美国绝大多数公司登记在册的待开发的应用系统的积压 时间已达2 至4 年,某些积压最严重的公司积压时间长达7 年【3 】。除非找 到并使用了更好的开发应用系统的方法,否则,这种现象还会变得更加严 重。造成上述问题的原因有如下几个方面: 第1 蕈绪论 ( 1 1 用户需求大量增加计算机硬件价格下降,越来越多的潜在用户有 了可以使用的计算机。计算机的普及和人们思想观念的转变,使软件的应 用领域不断拓宽,许多新的软件需求得以产生,大量潜在的用户需求转变 为实际需求,软件需求总量大大增加。 ( 2 ) 软件开发效率较低软件的开发是极其复杂的智力劳动,对每一种 软件或每一个构件由于尚未有统一的标准,所以重用难度很大。加之软件 开发缺乏有效的组织和管理,造成大量的重复开发和资源浪费,使原本低 效的软件开发雪上加霜。 ( 3 ) 软件适应能力差对用户操作技能要求高,适应能力差软件应用 环境及需求的复杂性和多变性,增加了对软件的灵活性和适应性的要求, 而现有的软件开发模式开发出的软件大:部缺乏柔性和适应性,当需求发生 变化时,系统不能适应;有的系统有一定的适应性由于操作复杂用户很难 进行处理,使得软件的使用生命周期缩短。 上述原因中第1 条原因是客观存在:无法避免的,所以我们只能从第2 、 3 方面入手。除采用工程化软件开发方法提高软件开发效率外,就必须探 讨柔性产生的机理,开发高质量的柔性软件缓解供求矛盾。因而软件柔性 的分析能够在一定程度上缓解软件危机。 1 1 1 _ 2 掌握柔性规律提高产品竞争力在目前市场激烈竞争的情况下, 软件开发商开发的软件系统不仅要满足用户当前的需求,而且对用户在使 用中需求的变化应及时满足,提高产品的竞争力。要实现这个必须研究柔 性的机理,开发适应能力强的柔性软件。具体体现在以下几个方面: ( 1 ) 研究不同的开发阶段对软件柔性的影响,总结柔性的规律,开发出 适应强,具有竞争力的产品。影响柔性的因素比较多,涉及到软件开发的 整个的过程,应对需求,体系结构、开发设计,测试和反馈每一个环节进 行细致的分析和研究,探讨柔性的变化规律,用以指导实践。在实际的开 发中,可以用相对较小的成本,获得相对较强适应性柔性软件。在市场上 具有较强的竞争能力。 ( 2 ) 针对软件的不同应用环境,开发不同柔性级别的软件。通过对不同 级别的柔性的研究,掌握其规律,结合软件的应用环境设计不同级别的柔 燕山大学工学硕士学位论文 性,使适应性最大限度的发挥出来,表现较好的柔性。如在实时性强的环 境下适合开发自适应级的柔性软件,系统对环境的变化进行自动的监测, 然后根据信息,系统自动的进行配置,使适应这种变化,让系统表现出最 大的适应性。 ( 3 ) 研究柔性,确定合理的适应范围。软件的适应范围大小,对软件的 开发成本和软件的柔性有直接的影响。一般来说,软件的适应范围越大, 系统适应环境变化的能力就越强,但随之成本也有很大的增加;同时还可 能会出现一些功能不能被用,造成浪费。因此研究确定合理有效的适应范 围,降低开发成本,也是提高软件产品的一个重要的途径。 1 1 1 3 提高软件可维护性软件维护就是在软件已经交付使用之后,由 于某种原因而修改软件的过程。迄今为止,软件难于维护仍然是软件行业 面i 涵的最大难题,也是软件危机的一个突出的表现。在软件的生命周期中, 软件维护所花费的工作占整个生命期工作量的7 0 以上。最常见的维护需 求有下述的4 种类型【i j : 图1 - 1 不同维护占总维护的比例 f i g 1 - 1t h er a t i oo f d i f f e r e n tm a i n t e n a n c et a k e nu pi ng e n e r a lm a i n t e n a n c e ( 1 ) 改正性维护也就是诊断和改正在使用过程中发现的软件错误。这 些错误是在开发时引入的,由于测试不彻底、不完全造成的,它占维护的 4 第1 章绪论 2 0 左右,一般发生交付使用开始一段时间。 ( 2 ) 适应性维护软件赖以运行的环境( 包括软件环境和硬件环境) 发生 了变化,为了在新环境中能够继续正常运行,而必须相应地对软件进行修 改。这类修改主要涉及软件中直接依赖于硬件环境的部分,或者是软件中 与其它相关软件的接口部分。它在维护占据大约2 5 左右。 f 3 ) 完善性维护在使用软件的过程中用户提出了改建或扩充软件功 能的要求。随着时光流逝,用户工作的外部环境和业务范围、经营策略等 等会不断发生变化,这些变化也在客观上要求对软件相应地加以修改,以 便适应新的需求。事实上,这类完善性维护也占全部维护活动的5 0 以上。 ( 4 ) 预防性维护修改软件为将来的维护活动预先做准备。就是把今天 的方法学用于昨天的系统以满足明天的需要。它在维护中占有很小的比例 大约5 。 维护工作不仅耗费了大量的人力和资金,更严重的是由于不能及时快 速地修改已有的计算机应用系统,使之适应市场环境和企业经营策略、经 营方式的变化,以至不能在激烈的市场竞争中充分发挥计算机在辅助决策 和经营管理中的作用,会使企业遭受严重的经济损失。 柔性软件系统一方面可以减少用户对适应性维护和完善性维护的需 求,另一方面柔性软件系统具有便于维护和更改的特点。传统的软件系统, 修改非常困难,在一个程序中所做的变化,通常会引起一串程序作相应的 修改。因此,维护量将随着已有程序量的增长而成上升的趋势。除非精心 控制,否则程序之间的相互作用大约与程序数目的平方成比例地增长。而 且在对传统的软件的修改过程中,由于其内部相互作用的复杂性,在维护 过程中极易引入新的潜伏错误,形成恶性循环。柔性软件系统的结构和特 点能够有效地防止传统软件修改中牵一发而动全身的缺陷,有利于减少维 护的工作量和提高软件质量。 1 1 2 柔性度量必要性和意义 通过上述分析可知,具有柔性软件是软件发展的一个方向。为了保证 柔性软件能健康和快速的发展,必须建:艺科学的评估体系,对包括柔性在 燕山大学工学硕十学位论文 内的柔性软件属性进行评估。 1 1 2 1及时发现柔性软件开发中存在的问题度量促进了主动性的管理 战略。潜在的问题作为风险客观地标识出来,受到评估和管理,对己存在 的问题可以更好地进行评价和设定优先级。度量促进在早期发现并纠正技 术和管理上的问题,这些问题如果留待以后解决将会更加困难并且代价昂 贵。管理者使用度量这项资源可以预测问题并避免被迫陷入一种消极的、 修复失败的方法上【4 j 。 要使开发的软件具有柔性,能在一定范围和一定程度上满足不同需求 变化,要求软件开发的各个阶段和层次都要具有柔性,即:软件的需求分 析、体系结构设计、构件级设计、界面设计和源代码设计。通过度量和评 估能及时发现设计中存在的问题,及时修改,降低软件开发的成本,使软 件达到预期的目的。所以说对柔性的度量就像医生给一个人进行体验,通 过体验可以及时掌握身体的各个指标,发现身体存在的问题,然后对症下 药,使问题能在初期得到及时的治疗。因此,对柔性的度量和评价应该渗 透到软件开发的每一个环节,才能保证开发的软件柔性满足需求。 1 1 2 2 能促进柔性软件系统开发技术健康迅速的发展通过对柔性软件 的度量和评价,使开发者比较清楚的了解到在软件开发的过程中每一个阶 段、每一个环节和软件的每一个要素是否符合要求,以及程度如何。迫使 开发者可以根据自身的情况,研究如何改进不符合要求的开发阶段、软件 的要素,以满足用户的需求;为了开发出更高水平的柔性软件要进一步总 结成功的经验,积极探讨提高和完善哪些相对较差的环节和要素。促进柔 性软件开发技术健康迅速的发展。 1 1 2 3 有效地交流度量为整个软件组织提供了客观的信息,通过柔性 的度量,可以定量描述软件的柔性是否满足用户需求。是开发商和用户在 该问题上形成统一的唯一可行的方法如果没有软件的度量和评价,用户 只能是根据主观的评估来判断其是否能满足需求。这样开发商和用户在这 一问题上很难取得一致的意见。通过科学的度量和评价,能清楚显示各个 方面指标,使开发商和用户在这一问题上容易形成统一的意见,对该软件 系统进一步发展起到致关重要的作用;为该软件的使用和维护奠定一个坚 6 第1 章绪论 实的基础。 1 1 2 4 做出关键的权衡决策每一个项目都有约束,费用、进度、能力、 技术质量和性能等因素,必须对它们进行权衡并管理,以满足项目的既定 目标。一个领域内的决策通常总会影响到其它的领域,即使它们看起来毫 不相关。度量帮助决策制定者客观地评估这些影响,进行适当的权衡,以 达到项目的最隹目标以及优化软件项目和产品的性能。 1 2 柔性研究的现状 1 2 1柔性软件发展的回顾 从社会的需求角度来分析,柔性软件是软件开发的重要发展趋势之一, 但从国内外大量的文献资料看,有关柔性软件的研究处于刚刚起步阶段, 大多局限在某一个研究领域内。例如n l g u p t a 等在文献中提到的f a s t 方法成为产品线( p r o d u c t1 i n e ) 开发过程的实例1 5 , 6 j ;j a m e sc o p l i e n 等研究了 领域工程的共性特性分析( s c v ) 口j ;s a e k o m a t s u u r a 等提出的有关程序自动 演化技术e v a ( 柔性代理的演化机理) 【8 “1 1 】;h a f e d hm i l i 、杨芙清、梅宏等 对于软件复用的研究 ” 1 6 ;p a r n a sd l 等对模块和信息隐藏进行了深入研 究m 2 0 1 ,并研究了合成系统的模块化结构;c b r a u n 等人在1 9 9 3 年提 出了“领域专用软件体系结构”( d o m a i n s p e c i f i cs o f t w a r ea r c h i t e c t u r e ,简称 d s s a ) 的概念,并指出对基于d s s a 的软件开发,应采用新的软件生命周 期观点,研究符合其特点的软件开发过程【2 2 1 ;王红等2 0 0 0 年在山东师大 学报上发表了基于a g e m 的柔性软件体系结构1 2 3 】;c tc l e a v e l a n d 对应用 生成器方面进行了研究【2 ”;曹军威等人1 9 9 9 年提出了c i m s 应用集成平 台系统体系结构2 5 1 等等,还有程序转换技术 1 2 , 2 6 、自动生成技术和合成技 术 8 1 。同时也提出了一些软件开发思想如自适应总线模型【27 】和开放的实现 思想i z ”,并研制了一些有效的软件开发: 具和软件开发环境【2 。以上都从 不同的侧面对提高软件开发效率和软件适应性进行了一定的研究,但它们 还是很零散的研究,只是从某一侧面为柔性软件的研究起到一定的促进作 用,并没有针对柔性软件进行专门的研究,所提出的有关的理论及开发软 燕山大学工学硕士学位论文 件的方法在软件项目中采用的比率较低。对于柔性软件度量仍采用传统的 软件度量的方法,没有把柔性作为一个独立的属性给予度量,所以柔性软 件开发还没有形成一个系统的、科学的体系。 1 2 2 软件柔性研究的现状 柔性作为软件的一个属性,伴随着社会对柔性软件的需求越来越强烈, 才被用户和软件专家逐渐了解和认识。但目前对于柔性的认识也只限于某 些方面,例如,n e l s o n 等人( 1 9 9 7 ) 通过对工作流的研究,定义了技术柔性 为:一种技术特性,它允许或能够调整或其它的变化对业务的处理,并且 他们提出了一种对技术柔性测量的框架【3 0 】;z h a o j l e o n 提出两个相关的 软件柔性的概念,即系统的适应性和系统的多功能性。系统的适应性是指 在业务的处理过程中为了处理主要的变化不中断和稍微中断业务的操作就 能修改系统使之适应的能力。系统的多功能性是指系统能够在过程和过程 中处理例外情况,允许柔性处理系统问题的能力 3 1 1 ;d e i t e r s ,g o e s m a n n ,a n d l o f f e l e r 从技术,组织和人的观点研究了柔性的问题,他们把柔性分四个 等级,即:过程柔性,相互组织的柔性,柔性的管理和知识以及柔性任务 的分配 3 2 l ;d a n i e ld z e n g 和j l e o nz h a o 提出通过基于智能a g e m 工作流 技术实现软件的柔性,建立了分层的柔性软件模型,通过a g e n t 协调各层 之间以及层内构件问的关系,使系统方便对每个工作流程进行定义或修改。 并从系统柔性的成本方面建立了评价软件的框架【3 3 j ;g a b o rk a r s a i 等人提 出基于监控的自适应软件的开发思想,通过监测软件自身的行为和环境行 为变化情况,系统主动选择并执行相应的策略,使之适应这一变化【34 1 。 在国内,曹军威等人率先把柔性的概念引入软件工程领域,1 9 9 9 年主 要有清华大学c i m s 中心的曹军威、范玉顺针对c i m s 中柔性制造系统提 出的基于代理的柔性软件系统的概念1 35 j :方旭升,沈峰等论述了柔性m i s 的思想和支持技术;王红等在山东师大学报上发表了基于a g e n t 的柔性软 件体系结构j 。 申利民在研究柔性的报表系统、柔性的供应链系统等基础上,在2 0 0 3 出版了柔性软件开发技术较系统的阐明了柔性开发的意义、软件柔性 8 第1 章绪论 含义、开发周期和柔性的度量。到目前为止是一部较详细的论述柔性书籍, 为柔性软件的开发和研究奠定了基础。 目前为止所做出的诸多应用上的尝试是相当有益的,成为柔性研究与 开发的理论基础,其中许多思想也必将在更加宽广的领域中得到广泛应用。 可以预测随着社会对柔性软件的需求越来越强烈,柔性的研究和发展也将 会上一个新的台阶。一些更适合柔性软件开发的语言、技术、方法将会涌 现,对柔性软件开发理论和柔性的认识及研究也将进一步深入和完善。 1 2 3 柔性研发存在的问题和研究的方向 ( 1 ) 目前国内外虽然已经对柔性软件开发和软件柔性等一些相关理论 做了一定的研究,但是仍存在以下几点不足: 对软件柔性的定义学术界尚未统一; 柔性开发理论尚不成熟。如柔性化的体系结构、模型设计、开发过程 阐述不够统一明确; 柔性理论在实际中应用很少。虽然一些软件或多或少的都具有一些柔 性,但真正利用柔性理论开发的软件国内外做的还很少,有关柔性软件的 数据更是非常的少,对柔性的认识和柔性软件的研发非常不利; 没有一个较为完善的柔性的度量体:系。 ( 2 ) 根据存在的问题目前柔性研究的方向是: 确定软件柔性和柔性软件的定义; 研究影响软件柔性的因素,掌握软件柔性的变化规律,将柔性的理论 应用到软件的开发中去指导柔性软件的:f f 发; 研究科学的、具有可操作性的柔性的度量系统: 搜集有关软件各开发阶段的数据,建立有度量的数据,以便好的确定 基线数据,使度量更准确和客观。 1 3 软件柔性研究和度量的基础 由于社会的强烈需求,促使人们开始注意对柔性软件和柔性度量这项 工作的研究;同时软件工程技术的发展也为进行这项研究提供了应有的理 9 燕山大学工学硕士学位论文 论和技术支持。 1 - 3 1 影响软件柔性技术基础 经过几十年的发展,从程序开发语言、开发技术、支撑系统、计算模 型到业务领域都发生了巨大的变革,从低级开发语言到高级语言;从面向 过程的到面向对象,再到面向构件的;从低级复用到高级复用;从各开发 商自定义标准到开放系统技术。这一系列的演化使得我们开发软件的过程 由个体开发到工程开发;由非标准的系统走向开放系统:并且逐渐向基于 服务系统发展。柔性软件系统是向基于服务系统发展过程中的一步,软件 工程的发展为其开发和研究奠定了技术基础。具体如下: 1 3 1 1 领域工程技术( d o m a i ne n g i n e e r i n gt e c h n o l o g y ) 它包括领域分 析、基础结构说明和基础结构的实现。领域分析是n e i g h o r s1 9 8 1 年在提出 的,它的含意是指“标识一个特定领域中一类相似系统中的对象和操作的 活动。”它的目的是支持软件的重用。重用涉及两个方面:一是重用的基础 结构,例如重用基础结构的定义,重用信息库的建立和发展,二是操作, 例如如何使用重用基础结构中的信息,说明和实现一个具体的应用软件系 统,通过领域工程技术产生的是一个支持该领域中重用的基础结构 3 6 、3 8 。领 域技术为我们如何确定、说明和实现领域的共性,个性和变性问题提供了 理论,并且这项技术被越来越广泛的应用到柔性软件的开发中。 1 3 1 2 体系结构技术( a r c h i t e c t u r et e c h n o l o g y ) 体系结构是从需求到实 现设计的桥梁,是实现体系结构级柔性的最重要的步骤。软件构架技术是 对系统整体结构设计的刻画,研究如何快速、可靠地利用可复用构件构造 系统的方式,着重于软件系统自身的整体结构和构件间的互联【3 ”。 1 3 1 3 面向对象技术( o b j e c t o r i e n t e dt e c h n o l o g y ) 对象的概念最早出现 在程序设计中,是d a h l 和n y g a r r d 在他们设计的语言s i m u l a 中提出来 的【4 w 。面向对象方法是一种运用对象、类、继承、封装、聚合、消息传送、 多态性等概念来构造系统的软件工程方法。它从现实世界中客观存在的事 物( 即对象1 出发来构造软件系统,并在系统构造中尽可能运用人类的自然 思维方式。0 0 技术是一种开发可复用构件的可行技术,可用于开发可复 1 0 第1 苹绪论 用资产。面向对象方法的研究开始于面向对象程序设计,虽然已经推广到 需求分析阶段,但还不很成熟。 1 3 1 4 软件构件技术( s o f t w a r ec o m p o n e n tt e c h n o l o g y ) 是支持软件复用 的核心技术。目前构件发展的趋势主要包括两个方面:第一,从集中式的 小粒度组件向分布式的大粒度组件发展;第二,从用于界面制作的窗口组 件向完成逻辑功能的业务组件发展【4 “。 1 3 1 5 软件再工程( s o f t w a r er e e n g i n e e r i n g ) 软件再工程是一个工程过 程,它将逆向工程、重构和正向工程组合起来,将现有系统重新构造为新 的形式。再工程是将遗产系统转化为易演化系统的良好途径之一,可对有 用的构件进行挖掘、整理、提炼和利用1 4 2 1 。 1 3 1 6 软件复用技术( s o f t w a r er e u s e ) 指在两次或多次不同的软件开发 过程中重复使用相同或相似软件元素的过程。软件元素包括程序代码、设 计文档、测试用例、需求分析文档、设汁过程甚至领域支持等。软件复用 技术将产品和过程都作为可复用资产,复用方法可以本分为:开发可复用 资产和使用可复用资产开发。 1 3 1 7 开放系统技术( o p e ns y s t e m )开放系统技术是在系统的开发中使 用接口标准,同时用接口标准来实现系统。当前以解决异构环境中的互操 作为主要目标的分布对象技术是开放系统技术中的主流技术。该技术使得 符合接口标准的构件可以方便地以“即插即用”的方式组装到系统中,实 现黑盒复用f 4 2 】。 1 3 1 8 c a s e 技术( c o m p u t e r - a i d e ds o f t w a r ee n g i n e e r ) c a s e 技术与软 件复用技术相关的主要研究内容包括:在面向复用的软件开发中,可复用 构件的抽取、描述、分类、和存储 4 0 】;在基于复用的软件开发中,可复用 构件的检索、提取、组装及度量等。 此外还有程序自动生成技术、转化技术、合成技术、形式规格说明语 言、软件代理技术【43 1 、中间件技术、人工智能技术等。 1 3 2 软件度量的基础 自1 9 5 8 年r u b e y 和h u r t w i c k 首次提出软件度量学概念以来,软件度 燕山大学工学硕士学位论文 量理论和方法研究不断发展。面向过程的度量、面向对象的度量、以及针 对某一特殊属性的度量,如可靠性、安全性、成本、可使用性等。这些都 为柔性的度量提供了理论基础和实践的保证。 1 3 2 1 面向过程的度量自从1 9 5 8 年r u b e y 和g u r t w i c k 首次提出软件 度量学的概念以来,国内外对面向过程设计软件度量理论和方法研究不断 发展。此后,对软件产品的度量理论和方法研究也取得了长足的发展。1 9 7 0 年h a l s t e a d 提出了软件科学( s o f t w a r es c i e n e s ) l 拘概念,他认为任何一门学 科要成为科学,必须理论和实践结合。1 9 7 6 年m c c a b e 提出了基于程序拓 扑结构的软件复杂方法。在我国,北航曾于近年依据h a l s t e a d 和m c c a b l e 方法研制了一个针对c 语言的软件度量工具。 成本估算中是最早采用测量的概念之一。1 9 8 1 年b o e h m 提出一种基 于l o c 的成本估算模型c o c o m o ( c o n s t r u c t i v ec o s tm o d e l ) ,定义 e f f o r t ( p ) = a l o c 6 ,式中p 为一个程序,a , b 是经验系数,k i t c h e n h a m l 9 9 1 年指出成本估计的4 种方法:专家意见、类比、分解和估算公式。 1 3 2 2 面向对象的度量近年来面向对象技术的兴起,在面向对象分析、 设计、面向对象程序设计语言和工具方面发展很快,且己得到广泛应用。 面向对象技术采用数据抽象、封装、继承、多态性、信息隐藏、重用机制 等,为提高软件的可重用性,增强可维护性、可靠性,提高生产效率等方 面提供了可能。上述各种机制在传统的软件开发中是不完善的或缺少的。 因此传统的软件度量是不完全适用于面向对象软件设计。传统的度量方法 可以适用于对象内部特定的方法,因为它就是普通的函数或过程。如果用 语旬行( l o c ) 来度量整个对象就不合适了,这是由于继承提供了重用,在 正常情况下属于对象自身的代码不太多。 目前,面向对象软件度量学处于开始阶段。软件度量缺少坚实的理论 基础,软件度量方法和工具较少,缺乏实际应用成果。国际上,面向对象 软件度量学以c h i d a m b e r 和k e m e r e r 的研究较为著名f 4 5 】。1 9 9 4 年c h i d a m b e r 和k e m e r e r 又在i e e et r a n s a c t i o ns o f t w a r e 上发表文章1 4 6 j ,阐述了面向对象 设计中软件度量学理论基础,以及软件度量、方法和意义。其他研究人员 如n e v i l l ei c h u r c h 、m a r t i n j s h e p p e r d 、m a r t i nh i t z 和b e h z a d m o u t a z e r i 等 第1 章绪论 针对c & k 的研究方法做了部分试验和前瞻性的分析和改进【4 7 4 ”。 c h i d a m b e r & k e m e r e r 针对类提出了基于继承树的一套面向对象度量 方法。在此方法中主要考虑类的继承、类的方法数、类之间耦合、类的内 聚性等。c & k 度量方法是针对具体的类的度量,对于指导软件设计中对类 的大小、层次、继承关系等设计有一定的指导意义。 在我国,这方面的研究只有少数研究人员跟综国际的研究。例如中科 院软件所弓惠生副研究员在计算机科学上对c & k 度量方法作了简介。 刘宗田在计算机科学上发表了“面向对象软件设计中的软件度量学的 理论和方法”,系统地阐述了面向对象软件度量学理论、方法及意义【4 8 | 。 在此基础了,研制了针对j a v a 和c + + 程序的两个软件度量工具,分别在 计算机学报和第十届国际软件度量会议发表了相关论文【4 9 1 。 1 3 2 3 软件质量的度量软件质量度量定义为:对软件质量属性进行量 化测量。它强调对软件生命周期中的阶段产品实施严格的度量,对软件度 量水平进行阶段性的评估,从而及早诊断软件的质量问题,提供良好的管 理可见性,在软件采购、选用等情况下,通常需要对软件质量进行评估。 所以软件质量的度量已经成为软件生存期内各个阶段必不可少的一环。软 件质量度量的模型有许多,如m c c a l l 模型、i s 0 9 2 1 6 体系、i s 0 1 4 5 9 8 评 估体系。在我国上海软件研究中心根据m c c a l l 模型和i s 0 9 2 1 6 体系,结 合我国软件开发的情况,设计了s s c 软件质量评估体系。这些度量体系都 是采用层次结构,根据度量的标准可以分为几个特性指标,每个特性指标 又包括若干个要素,然后对各要素进行细化度量【5 。 此外,为了促进我国软件产业的发展,国家调整政策进行扶持,其中 将提高软件质量,满足社会需要,作为一项重要计划来实施。所有这一切 从不同的方面为研究柔性的开发和柔性的度量提供技术、理论的支持,使 得人们对本课题的研究也充满信心。 1 4 本课题的研究内容 本课题从人们对柔性的认识,柔性在不同行业的应用及演化入手,在 系统总结和分析柔性软件理论和度量学理论的基础上,深入地研究了“柔 燕山大学工学硕士学位论文 性”的内涵,研究了软件柔性的概念、柔性的特征、柔性软件的体系结构、 建立了柔性度量模型、并且给出该模型使用方法。本课题的研究内容主要 集中在以下几个方面: ( 1 ) 软件柔性的概念和内涵; ( 2 ) 柔性软件具有的特征; ( 3 ) 需求工程与柔性的关系; ( 4 ) 柔性软件的体系结构与柔性的关系; ( 5 1 软件柔性的实现; ( 6 ) 柔性度量的模型的建立; ( 7 ) 各要素度量的方法。 经过上述的工作建立一套科学柔性软件开发和度量或评估体系,以促 进柔性软件开发技术的发展。通过本课题的研究希望能对实际中的工作起 到一定的指导,并对柔性软件开发和柔性软件理论的形成起到促进作用, 1 5 论文的结构 本文共分为四章,内容包括:绪论、软件柔性的概念和特征的研究、 柔性软件的开发与软件柔性的研究、软件柔性的度量。 第1 章为绪论。全面分析了目前软件所面对的问题,论述了研究软件 柔性的意义和必要性,以及柔性软件发展的现状;分析和论证了开发柔性 软件和度量软件柔性可行性。 第2 章为软件柔性的概念和特征的研究。从柔性的自然含义入手,分 析了柔性的自然含义,柔性的演化,通过分析和总结提出了新的柔性定义。 通过对柔性软件的发展和演化的过程进一步分析和研究,得出了柔性软件 所具有的五大特征:以及影响软件柔性的主要因素;并对软件柔性进行分 类。 第3 章为柔性软件的开发与软件柔性关系的分析。本章分析了柔性软 件的开发过程,包括柔性软件的需求工程、柔性软件的体系结构、柔性实 现、测试以及维护与反馈;重点讨论了需求工程、体系结构和实现的方法 与传统的软件区别;在体系结构上积极寻求在体系结构级的柔性支持,提 1 4 第1 苹绪论 出开发柔性构件,柔性的连接器等;在实现上追求模块的独立性、构件的 独立性、过程的独立性,以及信息的透明传送和交互输入;分析和研究了 每一过程对软件柔性的影响。 第4 章软件柔性的度量。通过对影响柔性的因素进行分析、归纳和总 结。从有效的适应范围、可使用性、可扩展性及成本比率这四个方面对软 件的柔性进行了度量,建立了软件柔性
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年氢燃料电池汽车关键零部件国产化技术创新与应用案例分析报告
- 2025年疼痛科疼痛管理知识与镇痛技术考试答案及解析
- 教师招聘之《小学教师招聘》通关考试题库带答案详解(综合卷)
- 2025年教师招聘之《小学教师招聘》练习题库包含答案详解【轻巧夺冠】
- 2025年吉林社会工作者试题(附答案)
- 教师招聘之《幼儿教师招聘》考前冲刺测试卷讲解含答案详解(巩固)
- 2025年教师招聘之《小学教师招聘》考前冲刺练习题库及完整答案详解(易错题)
- 2025内蒙古维拉斯托矿业有限公司招聘6人笔试备考及答案详解1套
- 教师招聘之《幼儿教师招聘》能力提升B卷题库含答案详解【巩固】
- 押题宝典教师招聘之《小学教师招聘》通关考试题库【a卷】附答案详解
- 《纪录片创作理论与实践》- 教学大纲(48学时)
- 江西美术出版社(赣美版)美术四年级上册全册课件
- 泌尿系结石 课件
- 【正版授权】 IEC 60512-26-100:2008/AMD1:2011 EN-FR Amendment 1 - Connectors for electronic equipment - Tests and measurements - Part 26-100: Measurement setup,test and reference arrangements and
- JBT 11699-2013 高处作业吊篮安装、拆卸、使用技术规程
- 屁屁辅助脚本
- 【顺丰集团财务共享中心运作问题与优化建议探析15000字(论文)】
- 中医科室发展规划方案
- 食药环侦知识讲座
- GB/T 19520.21-2023电气和电子设备机械结构482.6 mm(19 in)系列机械结构尺寸第3-109部分:嵌入式计算设备的机箱尺寸
- 山东省海洋知识竞赛(小学组)考试题库大全-上(单选题汇总)
评论
0/150
提交评论