(计算机应用技术专业论文)中小型软件企业软件过程改进研究.pdf_第1页
(计算机应用技术专业论文)中小型软件企业软件过程改进研究.pdf_第2页
(计算机应用技术专业论文)中小型软件企业软件过程改进研究.pdf_第3页
(计算机应用技术专业论文)中小型软件企业软件过程改进研究.pdf_第4页
(计算机应用技术专业论文)中小型软件企业软件过程改进研究.pdf_第5页
已阅读5页,还剩50页未读 继续免费阅读

(计算机应用技术专业论文)中小型软件企业软件过程改进研究.pdf.pdf 免费下载

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

文档简介

摘要 摘要 软件复用、构件组装、产品线等理论的发展已有多年,但对于在中小软件企业实现 软件复用、构件组装和产品线方式的软件生产还有较大差距。目前,我国的软件企业大 部分是中小型企业,软件过程不规范。根据我国中小软件企业软件开发的现状,进行调 查研究,结合当前国内外研究方向,通过在中小企业的电子商务项目实践和广泛的与开 发人员接触,立足于实际,探讨了具体应怎样做才能成功的进行基于产品线方式的开发。 提出了一套关于软件丌发过程的模型,期望可以对改进中小软件企业的软件过程有所帮 助,提高开发效率和质量。 首先分析了该课题相关方面的研究现状,然后介绍了软件复用和领域工程的一些基 本概念,接着介绍了以下几方面研究成果: ( 1 ) 基于软件复用、构件组装、产品线等理论,提出了中小软件企业产品线工程 模型。探讨了在该模型的软件过程中需遵循的原则和方法,描述了该模型在电子商务项 目中的应用。 ( 2 ) 软件企业产品线工程模型的一个重要方面,是要确立一个好的软件产品线体 系结构。遵循软件过程的原则和方法,提出了根据系统需求量化系统品质属性,运用模 糊代数理论决策软件产品线体系结构的方法。 ( 3 ) 核心资产库是软件企业产品线工程模型的另一个重要方面。合理、有效的组 织和使用企业核心资产是产品线方法实施的关键。研究了构件库的组织与检索技术,并 在一个b 2 b 的电子交易平台项目中得到应用。 关键词软件工程;软件复用;产品线:可复用资源;核心资产 a b s t r a c t a b s t r a c t t h e d e v e l o p m e n to ft h et h e o r i e so f s o f t w a r er e u s e ,c o m p o n e n tc o n s t r u c t i o na n ds o f t w a r e p r o d u c tl i n eh a sb e e nm a n yy e a r s ,b u ti ts t i l lh a sal o n gr o a dt oc a r r yo u tt h e mb yt h es o f t w a r e b u s i n e s se n t e r p r i s e s a tp r e s e n ta m a j o r i t yo ft h es o f t w a r eb u s i n e s se n t e r p r i s e si no u rc o u n t r y i sm e d i u mo rs m a l ls c a l e de n t e r p r i s e s ,t h e i rs o f t w a r ep r o c e s s e sd i dn o tc o m p l yw i t hau n i f i e d s t a n d a r d a c c o r d i n gt ot h ep r e s e n ta p p e a r a n c eo ft h es o f t w a r ed e v e l o p m e n ti no u rc o u n t r y , c o m b i n i n gt h es t u d yd i r e c t i o ni nt h i sa r e aa th o m ea n da b r o a d ,t h i sp a p e rp u tf o r w a r das e to f p r a c t i c a la n df e a s i b l et h e o r ym o d e lc o n c e r n i n gs o f t - w a r ed e v e l o p m e n tp r o c e s s t h r o u g h e l a b o r a t e l yi n v e s t i g a t i o n s ,i n t e n d e dt oh e l pt oi m p r o v et h es o f t w a r ed e v e l o p m e n tp r o c e s si n s o f t w a r eb u s i n e s se n t e r p r i s e s f i r s t l y , t h i sp a p e ra n a l y z e dt h ep r e s e n ta p p e a r a n c eo ft h et o p i ca n dr e l a t e da r e a s ,t h e n i n t r o d u c e ds o m eb a s i cc o n c e p t so fs o f t w a r er e u s ea n dd o m a i ne n g i n e e r i n g ,a n dt h ef o l l o w i n g r e s e a r c hf r u i t s : ( 1 ) a c c o r d i n gt ot h et h e o r i e so fs o f t w a r er e u s e ,c o m p o n e n tc o n s t r u c t i o na n ds o f t w a r e p r o d u c tl i n e ,w ep u tf o r w a r dt h es o f t w a r ep r o c e s si m p r o v i n gm o d e lf o rm e d i u ma n ds m a l l s c a l e ds o f t w a r ee n t e r p r i s e s d i s c u s s e dt h ep r i n c i p l e sa n dm e t h o d sw h i c hn e e dt ob e f o l l o w e di nt h es o f t w a r ee n g i n e e r i n gp r o c e s s ,a n dp e n e t r a t e di n t os o f t w a r ep r o d u c tl i n e a r c h i t e c t u r ea n dt h ec o r ea s s e t sl i b r a r y ( 2 ) t oc a r r yo u tt h es o f t w a r ep r o d u c tl i n ep r a c t i c ee n g i n e e r i n gm o d e li ns o f t w a r e b u s i n e s s e n t e r p r i s e s ,a ni m p o r t a n tt a s ki st oe s t a b l i s hag o o ds o f t w a r ep r o d u c tl i n e a r c h i t e c t u r e s t r i c t l yf o l l o w i n gt h ep r i n c i p l e sa n dm e t h o d so fs o f t w a r ep r o c e s s ,a n a l y z i n ga n d c a l c u l a t i n gt h es y s t e ms t r u c t u r eo ft h es o f t w a r ep r o d u c tl i n et h a tw i l lb ee s t a b l i s h e dw i t ht h e h e l po ff o r m a lm e t h o d ,t h i sp a p e rp u tf o r w a r dt oq u a n t i t a t i v e l ya n a l y z et h es y s t e m c h a r a c t e r i s t i ca c c o r d i n gt os y s t e mr e q u i r e m e n t s ,a n dm a k eu s eo ff u z z yc o m p a r i s o nm e t h o d t od e c i d et h es o f t w a r ep r o d u c tl i n es y s t e ms t r u c t u r e ( 3 ) t h ec o r ea s s e t sl i b r a r yi sa n o t h e ri m p o r t a n ta s p e c ti nt h es o f t w a r ep r o d u c tl i n e p r a c t i c ee n g i n e e r i n gm o d e l t oo r g a n i z ea n du s ec o r ea s s e t sl i b r a r yr e a s o n a b l ya n dv a l i d l yi s ak e yf a c t o ri nt h ei m p l e m e n t a t i o no fas o f t w a r ep r o d u c tl i n e w es t u d i e dt h eo r g a n i z a t i o na n d r e s e a r c hm e t h o d sa b o u tc o m p o n e n tl i b r a r y , a n da p p l i e dt h e mi n t oab 2 b b a r g a i np l a t f o r m k e yw o r d s :s o f t w a r ee n g i n e e r i n g ;s o f t w a r er e u s e ;p r o d u c tl i n e ;r e u s a b l er e s o u r c e s ;c o r ea s s e t s l i 河北大学 学位论文独创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下进行的研究工作 及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文 中不包含其他人已经发表或撰写的研究成果,也不包含为获得河北大学或其他教 育机构的学位或证书所使用过的材料。与我一同工作的同志对本研究所做的任何 贡献均己在论文中作了明确的说明并表示了致谢。 作者签名:豸坦仑 日期:迦乞年l 月量一日 学位论文使用授权声明 本人完全了解河北大学有关保留、使用学位论文的规定,即:学校有权保留 并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。 学校可以公布论文的全部或部分内容,可以采用影印、缩印或其他复制手段保存 论文。 本学位论文属于 1 、保密口,在年月日解密后适用本授权声明。 2 、不保密函。 ( 请在以上相应方格内打“4 ”) 保护知识产权声明 本人舯请河北大学学位所提交的题目为中砌佥此钎蝴叼舅 的学位论文,是我个人在导师( 边 j 、见) 指导并与导师合作下取得的研究成果, 研究工作及取得的研究成果是在河北大学所提供的研究经费及导师的研究经费 资助下完成的。本人完全了解并严格遵守中华人民共和国为保护知识产权所制定 的各项法律、行政法规以及河北大学的相关规定。 本人声明如下:本论文的成果归河北大学所有,未经征得指导教师和河北大 学的书面同意和授权,本人保证不以任何形式公开和传播科研成果和科研工作内 容。如果违反本声明,本人愿意承担相应法律责任。 声明人:墨皇:釜日期:盟年厶月三日 作者签名:堇垒垒 导师签名:遂盈 日期:塑12 年之月上日 日期:上华年月艮日 第1 章引言 第1 章引言 1 1研究背景 众所周知,我国的软件业发展不容乐观,当务之急就是要充分重视软件工程的作用。 实现软件工程化或者说建立软件工程化生产,它的基本要素有两个:工程化理论和工程 化载体( 人) 。北京软件过程改进网( 北京s p ) 在对中小型软件开发企业软件能力成 熟度的调查中发现: ( 1 ) 软件工程体系文件的制定没有结合企业的实际情况,没有解决实际问题。 ( 2 ) 软件工程体系的实施带来大量额外烦琐的管理工作量,又缺乏合适的管理工 具。 ( 3 ) 领导支持的力度不够。 ( 4 ) 实施体系时,没有注意改造企业文化中与制度化不兼容的部分,结果发生文 化冲突。 ( 5 ) 基本软件工程不到位,包括由于软件人才匮乏、人才结构不合理造成的种种 问题。 ( 6 ) 人员素质,各级管理人员普遍缺乏管理知识,不知道怎么管理。 是在中小型软件开发企业中存在的突出的问题。与传统意义上的工程相比,软件工 程向方法具有截然不同的特点,开发者们不能依靠物理学第一定律和硬科学来丌发可靠 的、可重复的方法【1 1 。随着软件开发规模的增大、复杂程度的增加,生产出高质量的软 件产品,就必须对软件的过程进行切实有效的组织和管理。为了帮助软件企业改善和舰 范化软件开发过程,按照本文提出的过程模型改进中小企业的软件过程,是本文的研究 目的。 1 2 项目来源及研究意义 本论文基于河北省科技攻关计划项目中小软件企业软件过程改进及支持工具研 究,项目始于2 0 0 6 年4 月。本文是在此项目取得阶段性研究成果基础之上的进一步研 究。 面对越来越复杂的业务模型和技术变化的逐步加快,任何参与软件系统的开发、部 1 河北人学f :学硕f j 学何沦文 署、维护的组织都希望在软件的开发效率、可维护性、健壮性等方面得到进一步的提高 和保证,从而达到降低开发成本、缩短开发周期以及保证软件质量的效果。九十年代“基 于构件的软件工程”( c o m p o n e n tb a s e ds o f t w a r ee n g i n e e r i n g ,简称c b s e ) 发展起来, 从根本上改变了软件开发方式,成为现代软件工程进步中的一个里程碑【2 】。它促进了软 件大粒度的复用,提高了软件丌发速度和质量,降低了开发成本,同时提高了软件的可 维护性和可扩展性,“软件复用”思想逐渐进入各类软件系统的开发中。人们逐渐认识 到,要真正实现软件的工业化,软件构件复用足条切实可行的途径。 国内外对管理规范、资金雄厚的人型企业的基于软件复用的过程模型已进行了多年 研究,提出了很多成熟的方案,但针对中小氽业软件= ) i :发过程模型的研究还很少,没有 成熟的、被企业认可的方案。我困大部分软件企业属于中小型公司,这些企业有一些共 同的特点【3 】:( 1 ) 人员少,流动性大;( 2 ) 资金不足,难以进行企、l p 级大规模的过程改 进以及相关的培训活动;( 3 ) 软件过程不明显,甚至没有明确定义的软件过程。 通过在一个中小软件企业的实习经验和对中小软件企业的调查中发现,很多软件企 业已有一些开发经验和产品,并且也在努力的“复用”以前的产品或部件,但是没有明 确定义的软件过程和复用的方法,属于盲目的“复用”,开发效率很低,并且由于不当 的部件复用和修改常常造成混乱。他们对提高本企业的软件成熟度级别很迫切,但丌展 领域工程又不合时宜,领域工程究竟应做些什么工作,按照什么样的过程丌展工作还很 茫然,急切需要一个适合我国中小软件企业情况的、可操作性较强的软件过程模型。 1 3 本文的主要工作 虽然软件复用、构件组装、产品线等理论的发展已有多年,但对于软件企业实现软 件复用、构件组装和产品线方式的软件生产还有较大差距。目前在我国,软件企业大部 分是中小型企业,软件过程不规范。本文根据我国软件开发的现状,进行调查研究,结 合当前国内外研究方向,通过在中小企业的电子商务项目实践和广泛的与开发人员接 触,立足于实际,探讨了具体应怎样做才能成功的进行基于产品线方式的开发。提出了 一套关于软件开发过程的模型,期望可以对改进中小软件企业的软件过程有所帮助,提 高开发效率和质量。主要内容有: ( 1 ) 基于复用、构件组装、产品线等理论,提出了中小软件企业产品线工程模型。 探讨了在软件工程过程中需遵循的原则和方法,在开发b 2 b 电子交易平台产品线中应 一2 第1 章引言 用了本文的模型,初步证明是适合中小企业的一个可操作的产品线模型,适合于同类产 品的系列化开发。 ( 2 ) 软件企业产品线工程模型的一个重要方面,是要确立一个好的软件产品线体 系结构。严格遵循软件过程的原则和方法,本文提出了根据系统需求量化系统品质属性, 运用模糊代数理论决策软件产品线体系结构的方法,在一个考务系统产品线中得到应 用。 ( 3 ) 核心资产库是软件企业产品线工程模型的另一个重要方面。合理、有效的组 织和使用企业核心资产是产品线方法实施的关键。研究了构件库的组织与检索技术,把 一个可复用资源演化管理工具【4 1 修改为软件产品线演化管理工具,使之支持软件产品线 及其核心资产的管理和演化,并在b 2 b 的电子交易平台项目中得到应用。 由于研究条件和商j 比等许多因素的限制,无法接触到更多与领域工程和构件库有关 的具体管理、技术、工具、方法等方面的资料,所能得到只是大致的概念和原则等,可 操作性较差。对中小软件企业来说更需要一个实例而不仅是理论。本文为此提供在电子 商务项目上的实际经验,并据此提出了中小软件企业产品线工程模型,为中小软件企业 提供参考,从而可以少走许多弯路。 1 4 论文的组织结构 第1 章,绪论,介绍本文的项目来源及研究意义等内容。 第2 章,介绍软件产品线和产品线体系结构相关的国内外研究现状。分析目前我国 中小型软件开发企业对于软件复用、构件组装和产品线等理论的认识和需求。 第3 章,介绍软件产品线、产品线体系结构和核心资产相关的基本概念和理论。 第4 章,根据我国软件企业开发的现状,提出了中小软件企业产品线的工程模型。 以一个b 2 b 电子交易平台产品线项目为例介绍了该模型的方法及应用。 第5 章,介绍软件企业产品线工程模型的一个重要方面体系结构,借助形式化 的方法和工具对将要确立的软件产品线的组件重要度进行分析和计算,提出了根据系统 需求基于模糊比较方法决策软件产品线体系结构。 第6 章,核心资产库是软件企业产品线工程模型的另一个重要方面。介绍了一个的 核心资产库的支持工具及其在b 2 b 电子交易平台产品线项目实践中的应用和改进。 第7 章,结论与展望。 1 第2 章国内外研究现状 2 1 软件产品线 美国卡耐基梅隆大学软件工程研究所( s o f t w a r ee n g i n e e r i n gi n s t i t u t e s e i ) 定义了 软件产品线的三个基本的活动:核心资产丌艟、利用核心资产的产品,f :发以及技术和组 织管理。核心资,“开发主要指定义产品线范围和生产核心组什。产品开发包括用核心组 件丌发产品、j :程组织的管理和髓督。图2 - i 表玎 了这蔓个基本活动和它们之间的关系, 罔中的各个活动没有明显的起点和终点,= 三者连接在一起并且持续运转,表明三者是必 不叫少的、紧密联系的、可以以任何次序出现,日不断循环。这些活动本质上是高度可 选代的,活动的起点和终点依赖十组纵的实施环境。这个框架包括2 9 个过程并分为三 类:软件丌发、技术管理、组纵管理。在这个框架中,过程的划分基于执行过程所需的 技术,技术卜相关的被组织在一起。存摸型中使用了不同的方法对过程域分类。s e i 的 p l p 框架还更深入的描述了每个过程域的细节d i ,其中包括p u 甲( 是一种可以用于评 估一个组织机构是否能够成功采用产品线的方法) 。p l t p 采用s e i 的框架为模型进行数 据的收集与分析。p l t p 分析的结果呵用1 。对组织机构的改进,以适应产品线方法的实 施。 、珊;。 图2 - ls p l 中的二个基本活动 d i k e l 等提出的模型关注了软件体系结构和组织的交叉部分。这个模型基于5 个原 则:构想、节奏、预见、合作和简化,称v r a p s 模型,5 个基本原则的定义如表2 - 1 。 d i k e l 还提出了一个基于v r a p s 的框架和一个评估的方法( 称为b c n c h m a r k i n g ,基准 点) ,并定义了一些准则、模式和反模式。b c n c h m a r k i n g 类似于s e i 的p l t p 。本文的 4 - 述 第2 章同内外研究现状 模型也主要受到v r a p s 的影响,但比之和s e i 的框架更加具体化和易于实现。 表2 - 1v r a p s 模型的5 个基本原则 原则描述 构想是未米价值到架构约束的映射。它可以用架构的结构、目标明确程度、 一致性、灵活性等来衡耸。 节奏是一个架构开发团体内部以及他与客户或h j 户之问反复出现的、可预 测的t 程交互活动。 预见是指架构人员根据技术的变化、竞争的发展以及州户的需求变更,来 预测、验i i e s h 调整架构的活动。 协作是指与架构受益人保持明确的、合作的角色,并将其所提供和获得的 价值最人化的程度。 简化是指对所戍川的架构和组织环境进行巧妙的潜清不i l 最小化。 青鸟软件生产线【6 j 将软件的生产过程划分为三类f i 同生产车i u j 的活动,即应用构架 提取、构件生产和基于构件一构架复用的应用组装车间。实际上,它的前两个车间对应 领域工程,而组装车间对应应用工程。青鸟领域工程将领域过程分为以下三个阶段叽 领域分析、领域设计、组织构件。领域分析阶段确定哪些需求是被领域巾的系统广泛共 享的,从而建立领域模型;领域设计阶段的目标是获得d s s a ( 领域特定的软件构架) 。 建立了领域模型之后,就可以派生出满足这些被建模的领域需求的d s s a ,并以此为基 础,识别、开发和组织可复用组件【8 】。d s s a 的分析和设计阶段采用自顶向下的方法把 高层的系统设计分解为子系统,子系统又可以被分解为更小的子系统,最低级别的抽象 单位是模块。由于生产的约束可能导致对体系结构风格和模式的限制。 s p p ( s i m p l i f i e dp a r a l l e lp r o c e s s ) ,“精简并行过程”是林锐博士于2 0 0 2 年提出来的。 s p p 是对c m m l 3 级以内各过程域的内容和要求做了“精简”处理而创造出的一种“软 件过程改进方法和规范”。它由众多的过程规范和文档模板组成。主要用于指导国内软 件企业进行软件过程能力的持续改进。c m m i 是s p p 的主要参考标准。但是s p p 并不 是对c m m i 进行简化处理后的结果。两者都是用于指导软件过程改进的方法论。c m m i 主要论述“应当做什么才能使软件过程能力达到c m m i 某种等级 。而s p p 则论述“应 当怎样做才能使软件过程能力达到c m m l 3 级水平”。 以上的论述站在一定的高度讨论了相关的原则和理论,但有关论述不够充分具体, 使得中小企业仍无所适从。有调查表明,国内许多软件企业达到了c m m l 3 5 级却仍不 能进行大项目的开发。实践证明,要达到较高的软件能力成熟度需要一个长期的积累, 按照已有的过程模型进行建设需要耗费大量资金,而且风险很大,这也正是我国中小软 s 河北人学i :学硕+ 何论文 件企业不能很快达到较高能力级别的原因。因此,如何降低风险,逐步投入,效果明显 是中小企业对软件过程改进的基本要求。随着软件开发规模的增大、复杂程度的增加, 生产出高质量的软件产品,就必须对软件过程进行切实有效的组织和管理。通过在中小 企业的项目实践和广泛的与- 丌发人员接触,本文立足于实际,讨论了具体应怎样做才能 成功的进行基于产品线方式的开发,并给出了实例。初步证明了可以改进中小软件企业 的软件过程,提高开发效率和质量。 在文献【4 为了在一个软件企业或软件开发团队中引入c b s e 工程,对如何逐步获 取、积累可复用资源,并对领域资源进行合理的管理、演化的问题进行了研究。基本思 想是:将系统分析没计与领域分析适当结合,经数次迭代,逐步积累领域知识,使面向 提交的应用系统丌发平滑过渡到领域工程,使该领域尽快成熟。主要关注了非成熟领域 工程有关的活动。 2 2 产品线体系结构 软件体系结构的丌发是大型软件系统开发的关键环节。体系结构在软件生产线的开 发中具有至关重要的作用,在这种开发生产中,基于同一个软件体系结构,可以创建具 有不同功能的多个系统。在软件产品族之问共享体系结构和一组可重用的构件,可以降 低开发和维护成本。 当前,体系结构仍是一个非常新的研究领域,其概念还相当模糊。但软件体系结构 作为软件工程领域中的一个组成部分,已经取得了长足的发展,受到大多数软件系统设 计和研究人员的重视。软件体系结构目自仃较活跃的研究方向包括:( 1 ) 软件体系结构形 式基础的研究;( 2 ) 针对软件体系结构描述中特有的问题研究新的专门的高级语言;( 3 ) 建立用于度量和评价软件体系结构的模型和方法;( 4 ) 建立面向专门领域的软件体系结 构范型库。( 5 ) 把软件体系结构从目前的直觉和经验状态过渡到理论。 领域工程通常很难定义领域的范围,而产品线方法定义了一种确定领域范围的经济 的方法。产品线工程是一种特殊形式的软件重用,它通过使用一组要用产品线开发的产 品( 概念上的) ,提供一种确定领域范围的机制。一直以来很多学者专家在这一领域进 行着孜孜不倦的研究,如k a z m a n 9 】提出了w i n c b a m ( 成本效益分析方法) 框架。他 们特别关注了如何使体系结构设计过程与需求分析紧密结合,并且导出一个低成本、低 风险的好的设计方案。他们是在c b a m 1 0 】的基础上增加了双赢( w i n w i n ) 思想的需求 6 第2 章国内外f j 丌究现状 协商以提高体系结构的品质。s v a h n b e r g f 提出了一种方法有助于理解不同体系结构的 优缺点。他们的方法能够帮助软件设计人员根据一些属性选择合适的体系结构。这种方 法主要关注了不同体系结构的特征。 需求抽象模型( r a m ) 1 2 】将需求分为四个层次,并由机构来保证他们之问的相容 性,在项目开发之前进行需求打包等活动。r a m 的主要贡献在于用需求的多级抽象层 次帮助项目经理在项目初期进行需求分析。 武汉大学刘秋华等【l3 】讨论了一种将面向目标的需求工程与用例图结合起来进行体 系结构设计的方法,适用于单个软件产品的开发。西安交通大学何峰等f 1 4 】提出的基于体 系结构的软件分析设计过程( s a d p b a ) 模型,将软件分析设计过程分为需求分析、体 系结构设计和系统设计3 个阶段,该模型是一种采用迭代增量方法将功能设计空间映射 到结构设计空| 、开j ,再由结构设计空i 白j 映射到系统设计空间的过程。应用函数理论对模型 进行形式化描述。本文在软件产品线体系结构设计中借鉴了s a d p b a 模型将软件分析 设计过程分为3 个阶段的思想。 对体系结构设计的形式化表示使得体系结构能更好地被理解、被实现。它的目的是 对体系结构设计人员在实践过程中总结出来的一些设计经验和方法加以总结、概括,从 而形成一个形式化的描述,形成一定的理论基础( 以代替当前不精确的研究) 。已提出 一些形式化机制,如过程代数、偏序集合、化学抽象机等,希望对系统的非功能特性如 性能、可维护性等给出形式特征,同时给出软件体系结构的理论。 通过分析来预见软件的质量,通过分析来创建、选择、评估与比较不同的体系结构。 例如,k a z m a n 等人在2 0 0 0 年提出了a t a m ( a r c h i t e c t u r a lt r a d e o f f a n a l y s i sm e t h o d ) 方 法。a t a m 方法不但能够揭示体系结构如何满足特定的质量需求( 例如性能和可修改 性) ,而且还提供了分析这些质量需求之间交互作用的方法。使用a t a m 方法评价一个 软件体系结构的目的是理解体系结构设计满足系统质量需求的程度。采用a t a m 方法 的步骤如图2 2 所示,限于篇幅,在此不再详细介绍具体步骤。 河北人学i :硕十何论文 介绍a t a m 方法 毒 描沭商、i l ,目标 l i 描述体系结构 l i 标识体系结构步骤 l 产生质量属性树 毒 1 分析体系结构步骤 l 讨论质量需求的故序 l 分析体系结构步骤 毒 提交结果 测 试 阶 段 报告 阶段 图2 2 采用a t a m 方法的步骤 目前,软件体系结构尚处在迅速发展之中,越来越多的研究人员正在把注意力投向 软件体系结构的研究。用于对软件体系结构进行规格描述的模型、标记法和工具仍很不 j 下规。尽管这些不f 规的模型是有用的,为使之更为精确和健壮,在很多方面的研究工 作还需要继续进行。关于软件体系结构的研究工作主要是在国外展开的,国内到目前为 止对于软件体系结构的研究尚处在起步阶段。软件体系结构在国内未引起人们广泛注意 的原因主要有两点: ( 1 ) 软件体系结构从表面上看起来是一个老话题,似乎没有新东西。 ( 2 ) 与国外相比,国内对大型和超大型复杂软件系统开发的经历相对较少,对软 件危机的灾难性体会没有国外深刻,因而对软件体系结构研究的重要性和必要性的认识 还不很充分。 2 3 现有中小型软件企业的状况 关于中小型软件企业并没有明确定义。目前多数人认为我国的软件组织以中小企业 为主,5 0 人以下的软件企业占大多数,这些企业有一些共同的特点: ( 1 ) 人员少,一般在2 0 - - 1 5 0 人之间。流动性很大,企业的组织结构不像大企业 8 描述和介绍阶段 调杳一和分析阶段 第2 章同内外研究现状 那样健全,经常是一人多职,既做开发人员,又做测试人员,甚至还作设计人员。 ( 2 ) 资金不足,难以进行企业级大规模的过程改进以及相关的培训活动。 ( 3 ) 软件过程不明显,甚至没有明确定义的软件过程。一个项目甚至整个企业是 以少数技术骨干为支撑,凭借他们的聪明才智束保证项目的顺利进行和企业的生存发 展。开发人员一般对技术比较重视,而对软件过程则表现出不关心。 ( 4 ) 企业从事的软件生产呈现明、显的领域特征。 与传统意义上的工程相比,软件工程向开发者提出了独特的挑战。开发者们不能依 靠物理学第一定律和硬科学来丌发可靠的、可重复的实践方法【l 】。同传统工程项目相比, 软件项目通常拥有一个乏善可陈的记录。有大量的报告证明,许多软件项目严重超出预 算、未能如期交付、甚至被取消。即使是那些最终走出大门成为产品的项目,在大多数 情况下,也将不得不花费相当多的时问来进行后期的修补和更正。随着项目规模的增长, 软件项目越发变得容易失败了。项目规模越庞大,越是容易超期、超支、甚至是被取消。 从根本上说,最初对成本和工期的评估往往都会失效。这使得一些人相信导致软件工业 失败的根本原因就是对大型软件开发工程不够充分和有效的管理。软件很难,这是因为: a 软件项目是设计型项目,而不是生产型项目。 b 由于软件是纯粹的中问件,软件丌发更多的是一门艺术或者工艺,而不是一门 科学或者工程学科,所以软件开发中的“做”的原则难以运行、管理和衡量。不 同个体问生产力的差别非常巨大。 c 软件缺乏法则和第一性原则。 d 软件缺乏一个可度量的标准单位。 e 鉴于软件的灵活性,软件项目中“支持”的原则( 计划、评估、预测和观察) 非 常困难。 摩尔定律使得软件的基础日新月异软件没有一个“永久”的运行平台。 随着软件丌发规模的增大、复杂程度的增加,人们逐渐意识到,要生产出高质量的 软件产品,就必须对软件的过程进行切实有效的组织和管理。作为国际上最流行、最实 用的一种软件生产过程标准能力成熟度模型( c m m ) ,已经逐步得到国际软件产业 界的认可,成为当今企业从事规模化软件生产不可缺少的一项内容。 为了深入了解企业的实际状况和真实需求,由北京软件过程改进网( s p i n ) 组织 河,l 匕人学i j 学硕f :学位沦文 了一次“c m m 用户市场状况调查( 2 0 0 3 ) ”,调查以网上发布调查表的方式进行。调查 的结论如下: ( 1 ) 软件企业对于c m m 的需求相当旺盛。有4 4 7 的企业目前正在局部引进 和使用c m m ,5 7 1 的企业有正规实施c m m 的意向( 但不一定是评估) 。 ( 2 )当前制度化体系实施碰到的共性问题有七个,依次排序为:基本软件工程 缺乏问题、基础管理的缺乏问题、理论与实际的有效结合问题、事务性管理工作量、文 化冲突问题、领导支持问题、i s 0 9 0 0 0 的影响问题。 ( 3 ) 既往制度化体系,特别足i s 0 9 0 0 0 的实施,没有能够满足企业对于基础管 理的需要,体系实施的有效性有待提高。 ( 4 ) 企业的工具使用率偏低,受欢迎的是一些简便易用、价格适宜的工具。 ( 5 )企业认为最需要工具进行管理的方面依次排序是:需求管理、项目计划、 产品工程、项目跟踪和监控、质量保证、配置管理、培训、同行评审。基于c m m l 2 的 工具的心理价位是不高于2 0 力元。 ( 6 ) 过程改进相关人员对于交流的需求是异常迫切的,软件过程改进网( s p i n ) 这样的民间组织受到大家的普遍欢迎。 “进度高于一切”可以说是国产软件的一大特色风景,而“为了短期利益而不惜愚 弄客户”、不重视质量、喜欢追究责任则成了这道风景上“靓丽 的点缀。国内具有一 定规模的软件企业,在外包市场上驰骋多年,也积累了很多经验,现在困扰他们的并不 是没有外包的单子,而是遇到稍稍大一点的单子就不敢接,担心项目做砸了承担两三倍 的赔偿风险。然而大多数外商对发包小单子没有兴趣,因为小单子并不能为他们节省多 少成本,他们常常很失望,因为在国内找不到他们理想中的合作伙伴。在寻找合作伙伴 的过程中,他们也将目光放到了那些通过c m m 或者c m m i 五级的国内软件企业。考 察结果却是这些企业并没有实力和人才素质来承担大项目。美国一些软件公司的c e o 十分困惑:中国有很多企业都通过了c m m 或者c m m i 五级,为什么他们也没有能力 做大的项目而且在美国也看不到他们的产品? 于是怀疑获得的认证是假的。其实认证并 不是假的,但实际上是由于企业工程师和人员管理的素质提不上去,相应的标准没有能 够执行,因此认证变成是徒有虚名。 调查与分析表明,所有中小型软件开发企业十分迫切希望能够采用软件复用、构件 第2 章同内j , t - t , j r 究现状 组装、产品线等方法以提高软件开发的效率和质量,但真_ _ i ;f 实施起来确有相当大的困难。 中小软件企业经常是给特定用户开发( 为其专门使用的) 软件产品或承接大的软件企业 的子项目,而且这些软件产品和项目常集中于某一领域,因此在该领域企业往往积累了 较丰富的丌发经验和技术。 因此,通过在中小企业的项目实践和广泛的与开发人员接触,本文立足于实际,讨论了 在中小软件企业中具体应怎样做才能成功的进行基于产品线方式的开发,并给出了实 例。期望呵以改进中小软件企业的软件过程,提高开发效率。并进一步对软件产品线中 的重要核心资源产品线体系结构的决策过程进行了研究。 河北人学i :学硕一f j 学何沦文 第3 章基本概念 3 1 软件产品线 一个软件产品线( p r o d u c tl i n e ) 就是一套产品,它们具有共同的特点,能够满足特 定市场和特定任务的特殊需求。产品线将有希望成为新世纪的主流软件生产方式。产品 的灵活性成为市场的新宠,产品线可以为特定顾客或者顾客群定制系统。从丌发者角度 来看,产品线技术能够利用产品所具有的共性来获得产品卜的经济效益。 程序丌发的历史可以被看成为一个螺旋上升的过程,在这个过程罩,组件所表现的 抽象性变得越来越人和自意义,反过来又促使这些组件的重用和应用。从6 0 年代的子 程序,到7 0 年代的模块,到8 0 年代的对象,到9 0 年代的基于组件的系统,软件生产 线将通过完成前所未有的系统之间的复用水平来推进这个螺旋式上升的过程。 软件产品线是一种基于架构的软件复用技术,它的理论基础是:特定领域( 产品线) 内的相似产品具有大量的公共部分和特征,通过识别和描述这些公共部分和特征,可以 开发需求规范、测试用例、软件组件等产品线的公共资源,而这些公共资产可以直接应 用或适当调整后应用于领域内其他产品的开发,从而不再从草图开始开发产品。 文献 2 7 认为,产品线是“由一个组织或机构生产的面向同类市场的一组产品。这 些产品有共同的特征、客户和用途,共享技术资源、发布渠道甚至服务和价格以及其他 资源。”本文采用以下对产品线的定义:“软件产品线是指具有一组可管理的公共特性的 软件密集性系统的集合,这些系统能满足特定的市场需求或任务需求,并且按预定义的 方式从一个公共的核心资产集丌发得到【2 8 1 。”这个定义与目前公认的产品线的定义是比 较接近的。 软件产品线方法集中体现了一种大规模、大粒度的软件复用实践,是软件工程领域 中软件体系结构和软件重用技术发展的结果【1 5 】。通过重复使用各种已有组件和第三方组 件是减少成本、保持竞争力的一种较好的方法。尤其对于中小型软件开发企业具有十分 重要的意义,它可以促进软件企业之间软件联合开发,并发挥自身的优势向专业化的方 向发展。产品线丌发过程如图3 1 所示,包括两个关键过程:领域工程和应用工程【1 6 】。 第3 章基奉概念 图3 - 1 产品线的双生命周期模型 领域工程的主要任务是通过识别特定领域或相似产品的公共结构和特征,丌发产品 线内产品的公共资源。公共资源不仅包括共享软件组件,也包括文档模板、需求规格说 明、测试用例等。领域工程包括三个阶段:领域分析、领域设计、领域实现。在领域分 析阶段,首先分析和确定产品线范围,即定义和确定哪些产品属于该产品线;接着,分 析产品线内产品特征和需求的公共性和变化性,建立软件产品线需求模型。在领域设计 阶段,根据产品线需求模型设计软件产品线架构。最后在系统实现阶段,丌发组件等软 件产品线的公共资源。 应用工程则是在领域工程生成的公共资源基础上开发特定产品,与普通单个产品丌 发不同的是,在产品线应用丌发中,不仅仅考虑客户需求,也要受产品线公共资源约束。 应用工程三个阶段为:需求分析、系统设计、系统实现。 选择软件产品线方法需要对产品线及其实现所需的专家知识领域界定清楚,对产 品线的长期远景进行策略性的规划。因此,要想成功实施软件产品线,必须考虑以下几 个主要因素:( 1 ) 对该领域具备长期和深厚的经验;( 2 ) 一个用于构建产品的好的核 心资源库;( 3 ) 产品线体系结构;( 4 ) 管理( 软件资源、人员组织、过程) 支持。 3 2 体系结构 一般认为: ( 1 ) 体系结构是指一组部件以及部件之间的联系。 ( 2 ) 体系结构是“计算机或计算机系统组件的组织和集成方式”。 相同的体系结构可以有不同的实现方式。在本文中小企业产品线工程模型中的体系 结构是指工程模型中的一个活动,它包括定义体系结构的构想和实现体系结构框架。 对软件体系结构风格的研究和实践促进了对设计的复用,一些经过实践证实的解决 方案也可以可靠地用于解决新的问题。体系结构风格的不变部分使不同的系统可以共享 1 3 河北人学l :学硕f j 学位论文 同样的实现代码。只要系统是使用常用的、规范的方法来组织,就可使别的设计者很容 易地理解系统的体系结构。s h a w 提出了多种体系结构模型,并将它们称为体系结构风 格,研究了不同j x l 格的性质特征。以下是g a r l a n 和s h a w 对通用体系结构风格的分类: ( 1 ) 数据流风格:批处理序列;管道过滤器 ( 2 ) 调用返回风格:主程序子程序;面向对象风格;层次结构 ( 3 ) 独立构件风格:进程通讯;事件系统 ( 4 ) 虚拟机风格:解释器;基于规则的系统 ( 5 ) 仓库j x l 格:数据库系统;超文本系统;黑板系统 限于篇幅,在本文中只介绍几种主要的和经典的体系结构j x l 格。 3 2 1 管道过滤器风格 在管道过滤器风格的软件体系结构中,每个构件都有一组输入和输出,构件读取 输入的数据流,经过内部处理,然后产生输出数据流。这罩的构件被称为过滤器,这种 风格的连接件就象是数据流传输的管道,将一个过滤器的输出传到另一过滤器的输入。 图3 3 是管道过滤器风格的示意图。一个典型的管道过滤器体系结构的例子是以 u n i xs h e l l 编写的程序。u n i x 既提供一种符号,以连接各组成部分( u n i x 的进程) ,又 提供某种进程运行时机制以实现管道。 图3 - 3 管道过滤器风格的体系结构 3 2 2 数据抽象和面向对象风格 螺调用 图3 _ 4 数据抽象和面向对象风格的体系结构 抽象数据类型概念对软件系统有着重要作用,目前软件界已普遍转向使用面向对象 系统。这种风格建立在数据抽象和面向对象的基础上,数据的表示方法和它们的相应操 作被封装在一个抽象数据类型或对象中。这种风格的构件是对象,或者说是抽象数据类 型的实例。对象是一种被称作管理者的构件,因为它负责保持资源的完整性。对象是通 1 4 第3 章摹本概念 过函数和过程的调用末交互的。图3 4 是数据抽象和面向对象风格的示意图。 3 2 - 3基于事件的隐式调用风格 基于事件的隐式调用风格的思想是构件不直接调用一个过程,而是触发或广播一个 或多个事件。系统中其它构件中的过程在一个或多个事件中注册,当一个事件被触发, 系统自动调用在这个事件中注册的所有过程。它的主要特点是事件的触发者并不知道哪 些构件会被这些事件影响。这样不能假定构件的处理顺序,甚至不知道哪些过程会被调 用,因此,许多隐式调用的系统也包含显式调用作为构件交互的补充形式。 支持基于事件的隐式调用的应用系统很多。例如,在编程环境中用于集成各种工具, 在数据库管理系统中确保数据的一致性约束,在用户界面系统中管理数据,以及在编辑 器中支持语法检查。 3 2 4 层次系统风格 层次系统组织成

温馨提示

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

评论

0/150

提交评论