




已阅读5页,还剩50页未读, 继续免费阅读
(计算机软件与理论专业论文)基于mvc模式的软件项目管理系统.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于m v o 模式的软件项目管理系统 摘要 随着计算机技术的迅速发展,人们对计算机软件的需求日益增长。 计算机软件的规模和复杂性也不断增加。然而在各种先进的软件开发 技术以及开发思想被应用于软件开发中时,人们逐渐发现一个企业的 软件生产效率不仅仅取决于开发技术和思想,而更依赖一个成熟的、 完善的、能够不断进化的软件过程。也正是在这种条件下,人们在软 件开发过程中引入项目管理的概念,并开发了一些诸如i s 0 9 0 0 0 和 c m m ( 软件能力成熟度模型) 之类软件项目管理模型。 本文首先介绍了软件项目管理的历史和现状,以及软件开发中的 一些流行技术。并针对以上问题,提出了一些关于如何规范企业软件 过程和提高企业软件能力的观点和看法;基于现有的技术,设计了一 套基于c m m 标准的项目过程管理系统。用以控制软件项目开发的整 个流程,逐步增强软件企业的能力成熟度。系统基于改进的m v c 模 型,采用分层结构设计,基本实现了c m m 第二级过程管理中关键域 所覆盖的内容。 本文的核心是项目管理系统的设计以及变更跟踪部分的设计与实 现。文章介绍了根据m v c 模式以及当前流行的w e b 应用程序框架 而设计的一一个功能较为齐全的软件项目管理系统。并在变更跟踪部分 提出使用x m l 文件作为信息显示的中介,为系统的今后的扩展奠定 了基础。 本文最后展望了软件项目管理的发展前景,并对系统的进一步开 发提出了建议。 关键宇:软件项目管理c m mm v c 变更跟踪 t h es o f t w a r ep r o j e c tm a n a g e m e n t s y s t e mb a s e do nm v cm o d e l a b s t r a c t r a p i dd e v e l o p m e n t o f c o m p u t e rt e c h n o l o g y h a so p e n e dn e wf r o n t i e r s a n dv i s t a sf o r l a r g e ra n dm o r ec o m p l e xc o m p u t e rs o f t w a r e h o w e v e l w i t hv a r i o u sa d v a n c es o f t w a r e d e v e l o p m e n tt e c h n o l o g i e s a n d m e t h o d o l o g i e sb e i n gp r a c t i c e d ,p e o p l e d i s c o v e rt h es o f t w a r ee f f i c i e n c y r e l i e sm o r eo nac o n t i n u o u s l yr e v o l v i n gd e v e l o p m e n tp r o c e s s ,r a t h e rt h a n o nt h et e c h n o l o g i e sa n dm e t h o d o l o g i e st h e m s e l v e s i nt h i sc o n t e x t ,t h e p r o g r a mm a n a g e m e n t c o n c e p t ,u n d e r w h i c hi s 0 9 0 0 0a n dc m m ( c a p a b i l i t ym a t u r i t y m o d e lf o r s o f t w a r e ) w e r e e s t a b l i s h e d ,w a s i n t r o d u c e di n t os o f t w a r ed e v e l o p m e n ta n dm a n a g e m e n t t h i sa r t i c l ef i r s t l yd e s c r i b e st h eh i s t o r ya n ds t a t u sq u o o ft h es o f t w a r e p r o j e c tm a n a g e m e n t ;i n t r o d u c e s s e v e r a l p r e v a l e n tt e c h n o l o g i e s i n s o f t w a r ed e v e l o p m e n t ;a n dp o s e ss o l u t i o n st op r o b l e m se n c o u n t e r e di n t h e s t a n d a r d i z i n g o ft h e c o r p o r a t e s o f t w a r e p r o c e s s a n ds o f t w a r e c a p a b i l i t y i tp u t s f o r w a r dt h es t a n d a r ds o f t w a r ep r o j e c tm a n a g e m e n t s y s t e md e s i g n ,w h i c h i sb a s e do nc m m a n du p d a e dm v cm o d e l ,a n di s d e v o t e dt ot h ec o n t r o la n de n h a n c i n go f t h ec o r p o r a t es o f t w a r em a t u r i t y w i t has t r u c t u r eo fl a y o u t s ,t h i ss y s t e mr e a l i z e da s p e c t sc o v e r e di nk e y d o m a i no f c m m i i t h ea r t i c l ef o c u s e so nt h e p r o j e c tm a n a g e m e n ts y s t e md e s i g n ,a n dt h e c h a n g et r a c k i n gs e c t i o n sd e s i g nm a da p p l i c a t i o n i ti n t r o d u c e sa s o f t w a r e p r o j e c tm a n a g e m e n ts y s t e mb a s e do nt h em v cm o d e la n dt h ec u r r e n t l y p r e v a l e n t w e bf r a m e t h i s s y s t e m e m b r a c e s c o m p a r a b l y m a t u r e f u n c t i o n s t h ec h a n g et r a c k i n gs e c t i o nt r y o u t sx m l a st h ei n t e r m e d i a r y f o rt h ei n f o r m a t i o nv i e w ,l a y i n gaf o u n d a t i o nf o rt h es y s t e m sf u r t h e r e x t e n d i n g a tt h ee n d ,t h ea r t i c l ea p p r o a c h e st h ep r o s p e c t sa n d r e c o m m e n d a t i o n s f o rt h es o f t w a r ep r o j e c tm a n a g e m e n td e v e l o p m e n t k e yw o r d s :s o f t w a r ep r o j e c tm a n a g e m e n t m a t u r i t y m o d e lf o rs o f t w a r e m o d e l v i e w l - c o n t r o l l e r t r a c k i n g c a p a b i l i t y c h a n g e 1 1 软件项目管理的历史 第1 章概述 人类进行项目管理的历史源远流长,我国著名的万里长城,埃及雄伟的金字 塔和古罗马规模宏大供水渠就是这样不朽的伟大工程。但这个时候的项目管理仍 处于初级阶段,没有形成真正的科学分支。直到2 0 世纪6 0 年代,项目管理的范 围仍局限在航空、航天、国防和建筑工业等领域。到了7 0 年代,项目管理在新 产品丌发领域中扩展到了复杂性略低、变化迅速、环境比较稳定的中型企业中。 此后,人们认识到项目管理的重要性,项目管理迅速普及开来。 软件项目管理最早源于7 0 年代中期。当时美国国防部曾立题专门研究软件 项目做不好的原因,发现7 0 的项目是由于管理不善引起的,而并不是因为技术 实力不够,进而得出一个结论,即技术只是影响软件研发项目研发的局部因素, 而管理才是全局成功的关键。 到了9 0 年代中期,i s 0 9 0 0 0 和c m m ( 能力成熟度模型) 对软件管理的发 展起了重要的推动作用,但这个时候软件的项目管理不成熟,软件项目管理不善 的问题仍然存在。据美国软件工程实施现状的调查,软件研发的情况仍然很难预 测,大约只有1 0 的项目能够在预定的费用和进度下交付。 目前,软件项目管理许多技术还很不成熟。但软件的项目管理发展十分迅速, 模式也在不断改变。现在一些大型软件公司多采用一定的标准规范如c m m 和 i s 0 9 0 0 0 ,并借助一些项目管理辅助工具进行软件项目管理,并取得了显著的效 果。一些公司按时完成率已经高达9 5 以上。事实证明,现代软件项目管理模型 在降低软件成本,提高软件质量和减少开发风险方面有着巨大的推动作用。项目 管理已经被公认为是一种有生命力并能实现复杂的企业目标的良好方法。 1 2 软件项目管理的概念 软件项目管理是项目管理中的一个重要组成部分。从概念上讲,软件项目管 理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人 员、进度、质量、风险等进行分析和管理的活动。目的是为了让软件项目尤其是 大型项目的整个软件生命周期( 从分析、设计、编码到测试、维护全过程) 都能 在管理者的控制之下,以预定成本按期,按质的完成软件交付用户使用。而研究 第1 页 软件项目管理为了从已有的成功或失败的案例中总结出能够指导今后开发的通 用原则,方法,同时避免前人的失误。实际上,软件项目管理的意义不仅仅如此, 进行软件项目管理有利于将开发人员的个人丌发能力转化成企业的开发能力,企 业的软件开发能力越高,表明这个企业的软件生产越趋向于成熟,企业越能够稳 定发展( 即减小丌发风险) 。 从软件工程的角度讲,软件开发主要分为六个阶段:需求分析阶段、概要设 计阶段、详细设计阶段、编码阶段、测试阶段、安装及维护阶段。不论是作坊式 丌发,还是团队协作开发,这六个阶段都是不可缺少的。在2 0 世纪8 0 年代初, 著名软件工程专家b w b o e h m 总结出了软件开发时需遵循的七条基本原则,同 样,在进行软件项目管理时,也应该遵循这七条原则。它们是:l1 ) 用分阶段的 生命周期计划严格管理;( 2 ) 坚持进行阶段评审:( 3 ) 实行严格的产品控制:( 4 ) 采用现代程序设计技术;( 5 ) 结果应能够清楚地审查;( 6 ) 开发小组地人员应该 少而精;( 7 ) 承认不断改进软件工程实践的必要性。事实上,现在的软件管理模 型都基于上述七点原则,实质是对各个阶段的管理和控制进行了标准化和制度 化。 现代软件项目管理的内容非常广泛,主要包括如下几个方面:人员的组织与 管理、软件度量、软件项目计划、风险管理、软件质量保证、软件过程能力评估 和软件配置管理等。 1 3 软件项目管理的必要性 我们生活在信息世界,以电子计算机为代表的信息技术已经极大地改变了人 们的生活,而计算机软件在信息社会中扮演着非常重要的角色e 它是现代经济运 行的动力,使政府的规则和社会更加紧密相连。计算机软件帮助人们能够以各种 以前从未想象到的方式和方法来创建、访问和观察信息。从而推动了全球经济的 发展。从人类自身角度,计算机软件在医疗卫生方面的应用也增强了人类抵御疾 病的能力。由于计算机软件能够带来的巨大便利,人们对计算机软件的需求猛增, 软件产品的规模也越来越庞大。计算机软件数量和规模的不断扩大使得作坊式开 发方式已经越来越不适应发展的需要。各软件企业都在积极寻求能够按时,按质 且不超成本完成软件项目的方法,软件工程学的出现就是为了寻求解决一些在软 件开发中的技术规范和方法。 尽管人们已经提出了软件工程的概念和大体上的衡量标准,但大多数情况下 并没有准确的衡量每个阶段的指标。软件的管理仍然不能得到很好的体现。这主 要因为软件项目不同与传统的项目。其不同之处如下: 第2 页 软件从业人员并不总是能够得到所使用的工具的培训和指导。客户甚至 不知道建造一个满足其要求的软件系统的现实情况。 客户通常想不出来他们想从系统中得到什么,更不用说清晰地表达出来。 另一方面,软件从业人员通常对客户的专业领域不够熟悉。因此不能从 客户那里获取详细的需求。而传统的行业却不是这样。 需求收集、分析和文档编制和评审常常被认为是浪费时间。结果就是需 求定义十分粗略。在项目进行中会经常加以修改和增强。而这在其他行 业是不多见的。 软件是一种逻辑实体,具有抽象性,没有明显的制造过程,以及对硬件环境 的依赖决定了软件开发的艰巨性。出于和传统的项目有很多不同,人们按照传统 的观点进行软件项目的开发就可能带来意想不到的麻烦。统计数据表明,大多数 软件开发项目的失败,并不是由于软件开发技术方面的原因,它们的失败是由于 不适当的管理造成的。软件工程所包含的两大主要内容:软件开发技术和软件项 目管理,遗憾的是,尽管人们对软件项目管理重要性的认识有所提高,但在软件 管理方面的进步远比在设计方法学和实现方法学上的进步小。所以软件管理是现 代软件工程发展的一个瓶颈,软件管理发展的滞后严重制约着软件产品的开发。 1 4 软件项目管理工具的现状与局限 随着管理的概念深入人心,人们需要一些辅助的工具来帮助完成管理过程, 项目管理软件应运而生。软件管理工具能够帮助人们实现项目管理。使用项目管 理软件进行项目管理可以提高项目的管理水平,增强计划的可执行性,提高资源 的有效配置,加强成本管理,提高企业的竞争能力。 国外的项目管理发展较早,也开发了大量的项目管理软件,有的现在已经逐 渐成熟,高端的软件如p r i m a v e r a 公司的p 3 、g o r e s 技术公司的a r t e m i s 、a b t 公司的w o r k b e n c h 、w e l c o m 公司的o p e n p l a n 等。低端软件如我们非常熟悉的 m i c r o s o n 的p r o j e c t 。以上这些软件的应用范围不仅仅限于软件项目管理。更多 应用在其他传统行业中。在软件项目管理领域,国外比较优秀的软件项目管理工 具有p c v s ,h a r v e s t 等,其中最为著名的是r a t i o n a l 公司的系列( 包括r o s e , c 1 e a r c a s e ,c l e a r q u e s t 等1 。我国著名的软件项目管理软件是北京大学的青鸟软件 项目管理支撑工具集。 r a t i o n a l 系列工具可以运行在不同的平台上( u n i x ,w i n d o w s ) ,是一套 功能十分强大的项目管理工具集。配合其他软件设计工具,r a t i o n a l 公司提出了 r u p ( r a f t o n a lu n i f i e dp r o c e s s ) 软件工程化过程。这是一个完善的软件项目管理 篇3 页 模型。但购买该套工具的高昂的费用往往让国内很多企业无法承受。 青鸟软件项目管理支撑工具集( 包括项目规划,监测系统j b p r o j e c t ,过程管 理系统j b p m ,变化管理系统j b c c m 和配置管理系统j b c m ) 是北北大青鸟软 件工程有限公司在国家长期支持的科技攻关项目“青鸟工程”科研成果的基础上, 研制的基予构件的新代软件管理工具。系统支持基于构件的软件配置管理,符 合i s 0 9 0 0 0 3 和c m m 软件质量保证体系的要求。也可以运行在多种平台上。但 系统各个部分仍相对是独立的。整个系统目前的应用也不是很广。 对于目前市场上的众多简单的项目管理软件和许多”公开源代码”的项目管理 软件而言,它们的功能一般只限于项目管理某一阶段和某一方面如计划安排、人 员管理、风险分析等方面。 现在的软件项目管理软件大都是功能局限于某一领域,鲜有实现整个软件项 目管理整体过程的系统,这就增加了软件项目管理的复杂程度。有些工具集可以 通过组合形成完整软件项目管理系统,但价格也往往不菲,让国内的一般企业难 以承受。 1 5 系统设计思想 软件项目管理的根本是让软件的整个生命周期内都能处在管理者的控制之 下,婪实现这个目的,就必须对软件的生命周期的各个阶段进行细化。并对各个 阶段的工作进行量化。为了简化对软件项目的管理,该系统吸收了能力成熟度模 型中的思想,将软件生存周期统一纳入系统进行管理。 针对现有的项目管理软件的功能大多单一,在多个系统进行组合应用时,存 在多个用户管理系统的现状,系统提出了统一人员信息库的思想,借助岗位模型, 实现人员项目的交互。系统将艇个软件开发中的各个过程整合到一起,克服 了多个系统信息交流不顺畅的缺点,便于用户及时了解信息。为了方便扩展,本 系统吸收分层设计思想,采用了流行的m v c 模式s t r u t s 框架。同时参考了c m m 模型,拥有了配置管理和变更跟踪管理模块。系统基本覆盖了c m m 第二级的关 键域。 为了方便使用,系统整体采用b s 结构。 1 6 目的和本文的组织结构 本文分两部分,第一部分主要介绍软件项目管理的些理论和现在软件项目 管理的一些成就。软件项目管理模型以及相关的程序设计技术。并简单介绍一些 第4 页 常见的软件项目管理软件。第二部分讲述我们在参考一些项目管理规范的基础 上,结合当前流行的m v c 模式,在一些开放源代码系统的基础上二,实现的项日 管理软件e s p m ( e s o f t w a r ep r o j e c tm a n a g e m e n ts y s t e m ) 系统。基于现有的很 多软件管理系统对软件的管理大都集中在项目管理和配置管理方面,很少有介绍 变更请求和缺陷跟踪部分的现状。本文重点讲述了我自己设计并实现部分变 更请求和缺陷跟踪模块。 第5 页 第2 章软件管理模型与技术 软件项目是工程和管理的结合。软件工程为我们开发和维护软件提供了结构 化的技术手段。它提出了软件生存期模型的概念,对我们软件项目的开发起了很 大的推动作用。并为后来出现的软件项目管理提供了技术手段和实现的方法。软 件项目管理则是从管理的角度,实现对软件生命周期的每个阶段的控制。常见的 软件生命周期模型有瀑布模型和螺旋模型,而对软件管理影响最大的是卡耐基梅 隆大学提出的能力成熟度模型( c m m ,c a p a b i l i t y m a t u r i t y m o d e l f o rs o f t w a r e ) 。 下而将简要介绍一下软件生存期模型和能力成熟度模型。 2 1 软件生存期模型 21 1 瀑布模型 瀑布模型是最常见的软件生存期模型。典型的瀑布模型包括3 个时期,即应 用软件计划时期、开发时期和运行维护时期,每时期又再细化为若二二个阶段, 例如计划时期再分为系统定义和可行性分析两个阶段。就开发时期来说,从需求 分析阶段开始,其任务在于弄清用户需要软件解决什么具体问题;而后进入设计 阶段,包括概要设计和详细设计两个子阶段,前者用以决定软件的总体结构( 例 如整个系统包括多少个子系统,每个子系统又包括多少模块等等) ,后者决定每 个模块的内部逻辑,包括模块的控制结构与数据结构;接下来是编码,目的是将 详细设计所给出的对程序的描述翻译为相应的源程序:最后进入测试阶段,这是 保证软件质量的最终重要环节 瀑布模型的缺点已经为人们熟知,那就是缺乏灵活性,特别是在软件开发早 期的一些问题会对后来的软件开发带来严重影响,后期的更改的代价非常大。而 且该模型对软件的复用和对生存期的多项开发活动集成不能提供支持,也不利于 而向对象的开发。 瀑布模型的风险是来自需求不明确,为此人们提出了其他模型,螺旋模型就 是一个较好控制风险的模型。 2 1 2 螺旋模型 螺旋模型将传统的瀑布模型和演化模型结合起来,并加入风险分析,它主要 有四个阶段: 制定计划确定软件目标,选定实施方案,弄清项目开发的限制条件; 第6 页 风险分析分析所选的方案,考虑如何识别和消除风险; 实施工程实施软件开发: 客户评价评价开发工作,提出修正建议。 螺旋模型的工程实施过程是按着螺旋线旋转方式从中心开始( 初始原型) 。 在螺旋线的第一圈( 轮) ,定义目标,选择方向和限制条件,识别并确定风险; 如果风险分析表明需求有不确定问题的话,则使用原型丌发,帮助开发人员和用 户弄清需求;也可以采用模型和其他方法对问题的定义和需求进行求精或细化; 用户对当前阶段工作结果进行评价,并提出修改意见。第一圈完成以后,就进行 下一圈的工作。在螺旋的每一圈,都要进行风险分析,根据分析结果,决策确定 工程是否继续。如果风险太大,只能终止该工程。在大多数情况下,沿着螺旋的 路径,由里往外,就可以建立起越来越完整的系统模型,而最终成为运行的系统。 在螺旋模型的每一圈都采用原型开发方法进行工程化的处理。 螺旋模型开发模式是采用软件工程逐步逼近的演化方法,使开发人员和用户 能了解每一个演化级的风险,并做出反应。它将原型开发作为减少风险的机制。 但是更重要的,它使开发人员在产品演化的任何阶段都可以采用原型开发方法。 螺旋模型要求对项目的所有阶段的技术风险进行直接研究,如果应用j f 确,将减 少它们成为问题的风险。 螺旋模型不是一次就完成客户的需求,在每次循环过程中,就向客户的要求 逼近一步。每次开发都进行类似的过程,由此使的项目的质量和进度不断循环上 升。本系统采用的软件开发过程就是基于这个思想的。 2 2 成熟度模型 2 2 1 能力成熟厦模型 现在的软件项目管理主要的模型有能力成熟度模型( c v i m ,c a p a b i l i t y m a t u r i t vm o d e lf o rs o f t w a r e ) 和1 s 0 9 0 0 0 质量认证体系。c m m 是卡耐基梅隆大 学的软件工程研究所( s e i ,s o f t w a r e e n g i n e e r i n g i n s t i t u t e ) 提出的模型,此后很 多软件开发公司都纷纷将之引入自己的软件开发过程中。c m m 提出了软件成熟 度的概念,每个成熟度级别是经过严格定义的,且达到成熟软件过程的发展阶梯。 每个成熟度级别由一组过程目标集合组成,一旦完成这些目标,就能确定软件过 程的重要组成部分达到了每个成熟度级别。相应的软件过程也就建立了。从而机 构的过程能力也提高了。 c m v t 的出现是为了克服软件生产的危机。所谓软件生产的危机是指尽管新 的软件开发方法和技术不断生产,但软件生产率和质量并未得到有效提高,软件 第7 页 产品不能按时完成,软件生产预算超支,而且交付客户使用的软件产品( 特别是 大型软件工程) 中由于各种原因产生的错误无法克服。在8 0 年代末期前后,美 国国防部门和工业界开始认识到在软件开发中最重要的问题在于软件生产商对 软件的生产过程管理不力,也就是说,软件生产过程的成败比新技术和开发方法 更能决定个项目或企业的成败。没有完善的软件生产过程体系,软件开发的成 败只能依靠人为主观或偶然因素比如某一杰出软件天才或小组的成就一一 而非可持续的客观标准及体系,因此,对成功的软件过程的重复使用,对以往经 验或教训的分析总结,刺全部开发案例的编档存档就成了一套完整而成熟的软件 过程,需要一个从无序到有序,从人为到客观标准,从定性到定量的不断积累与 完善的过程,这一过程的演变中软件企业会面临一系列有代表意义的成熟阶段。 美国s e i 提出的软件能力的评价与改进指导体系。软件开发企业可以依掘c m m 的框架对项目管理和项目工程进行定量控制和能力评估,而软件应用单位也可依 据c m m 来衡量和预测项目承接方的实际软件生产能力。这样,软件开发方与产 品用户方都基于一个同样的标准来对软件生产和管理作评测与控制。 c m m 将过程能力分成五个等级。所谓过程能力是指遵循某软件过程可能达 到了预期结果的范围。机构的软件过程能力为该机构承担下一个软件项目时可能 达到的最大期望结果提供了预测手段。 c m m 的五个过程能力等级如下: 1 初始级初始级的软件过程是未加定义的随意过程,项目的执行是无序的甚 至是混乱的,没有为软件开发、维护工作提供一个稳定的环境。当工作过 程中遇到网难时,就可能会放弃原有过程中的计戈。而且,初始级企业开 发产品要想获得成功,完全要依靠一个有才能的管理者和他所领导的项目 小组的能力。所以仞始级的能力是非介人的能力,而不是企业的能力。也 许,有些企业制定了一些软件工程规范,但走这些规范未能覆盖基本的关 键过程要求,已执行没有政策、资源等方面的保证时,那么它仍然被视为 初始级。 2 可重复级第2 级的焦点集中在软件管理过程上。一个可管理的过程是一个 可重复的过程,个可重复的过程则能逐渐进化和成熟。第2 级的管理过 程包括了需求管理、项目管理、质量管理、配置管理和子合同管理五个方 面。其中项目管理分为计划过程和跟踪与监控过程两个过程。通过实施这 些过程,从管理角度可以看到一个按计划执行的并且阶段可控的软件开发 过程。在可重复级,基于以往管理类似项目的经验,计划和管理新项目。 建立了管理软件项目的策略和执行这些策略的过程。通过在项目的基础卜 建立基本的过程管理规则来增强过程能力。 第8 页 3 已定义级在已定义级上,全组织的开发和维护软件的标准过程已文档化, 包括软件工程和软件管理过程,而且这些过程被集成为一有机的整体。在 c m m 中的所有地方,均称此标准过程为组织的标准软件过程。等级3 上所 建立的过程,被用来帮助软件经理和技术人员,使其工作得更有效。项目 通过裁剪组织的标准软件过程来建立他们自己定义的软件过程,说明项目 独有的特征。 4 已管理级在己管理级,企业为软件产品和软件过程指定了量化的质量目 标。评价所有项目的重要软件过程的产品和质量,作为企业评价计划的一 部分。利用企业级的软件过程数据库收集、分析来自项目定义的软件过程 的有用数据。在第4 级,软件过程是具有精确定义的、连贯的评价方法, 这些评价方法为评估项目的软件产品和质量奠定了一个量化的基础。量化 控制将使软件开发真正变成为一种工业生产活动。 5 优化级在优化级,整个企业的工作重点是软件过程的不断改进。企业以防 止错误的出现为目标,在过程实施之前就有办法发现过程的弱点和强项。 利用软件过程有效的数据来对企业软件过程中引进的新技术和变化进行成 本收益分析,提出关于开发最优的软件工程实践的革新思想,并推广 到全企业范围内。在第5 级的企业中,软件项目组负责分析错误,判断错 误发生的原因,并对软件过程进行评估,阻止已知的错误类型再次发生, 从中吸取教训,并应用到其它的项目中去。第5 级的目标是达到一个持续 改善的境界。所谓持续改善,是指可根据过程执行的反馈信息来改善下一 步的执行过程,即优化执行步骤。如果一个企业达到了这一级,那么表明 该企业能够根据实际的项目性质、技术等因素,不断调整软件生产过程以 求达到最佳。 除了级别1 ,每个成熟度级别都包含几个关键的过程域。软件开发机构应该 重视这些关键域,它规定了每个成熟度级别必须解决的问题。而且这些问题必须 制度化。 2 2 2 从软件项目角度理解c m m 软件项目的开发是个资源安排的过程,当且仅当软件开发中执行了这个动作 才称为经历该过程。软件工程大师o s t e r w e i l 在其论文 s o f t w a r ep r o c e s s e s a r e s o f t w a r et o o l s 中高屋建瓴地指出:软件过程也是软件。软件有一个丌发的过程, 软件过程也有一个开发的过程;软件开发产出软件产品,软件过程开发产出过程 产品;软件开发可以是一个演进过程,软件过程开发也可以是一个演进过程。过 去的软件工程中也提出了软件工程过程和软件生存期模型,并归纳出软件开发的 一种常见的模型,如瀑布模型,螺旋模型等,但传统的软件工程强调的是引入这 第9 页 些过程,但未对该过程中执行情况进行考核,或者对执行情况的考核不够。所以, 传统的软件工程我们称之为过程说明,或者是软件工程中的技术。对管理方面的 认识存在不足。 从“软件过程也是软件”的焦度考虑,c m m 的本质其实是软件过程开发的 需求和测试方案:c m m 的每个“关键实践”都是软件过程开发的一条需求;至 于“关键过程域”和“关键实践类”,从需求的层次角度,可分别理解为“业务 需求”和“用户需求”:c m m 提问单的每个问题就是测试方案的一个一个的测 试案例,测试方案是依照需求来制定的,c m m 把需求和测试方案合二为一了。 “c m m 是软件过程的进化框架”也不难从“软件过程也是软件”的角度找到合 适的理解,那就是:c m m 对所有软件过程开发的需求,依据重要性和相互依赖 关系,划分了优先级,然后依据需求的优先级将需求分成五组,即初始级、可重 复级、已定义级、已管理级和优化级。 本系统设想是基于c m m2 级认证标准的。并参考了现有的些软件过程模 型。在项目估算中。采用了些现有的估算模型。进行的管理有需求管理,项目 计划,变更跟踪,软件分包,质量管理和配置管理。 当前越来越多的行业把项目管理作为一种生存方式接受下来,项目管理实践 中的持续改进机会已经在以惊人的速度出现。而更为重要的事实是,在基准比较 活动中,一些公司正在与其他公司分享他们的成就。 2 3 容器的概念 容器是w e b 应用程序中非常重要的概念。它指的是用来管理应用程序组件, 提供访问a p i 的运行环境。除了具有运行环境相关的特点外,为了维护在包容器 运行环境中实现不同特点属性的应用提供强大而灵活的机制,容器不定义容器的 其他属性。在基于j 2 e e 组件技术w e b 应用程序设计中,常见容器有如下几种: w e b 容器管理; w e b 容器管理所有j 2 e e 应用程序中j s p 页面和s e r v l e t 组件的执行。w e b 组件和它们的容器运行在j 2 e e 服务器上。 应用程序客户端容器;应用程序客户端容器管理所有j 2 e e 应用程序中应用 程序客户端组件的执行应用程序客户端和它们的容器运行在j 2 e e 服务器上。 a p p l e t 容器;a p p l e t 容器是运行在客户端机器上的w e b 浏览器和j a v a 插 件的结合 e j b 容器;e j b 容器在该系统中没有用到,暂略。 容器为我们提供了如下的服务: 容器设置定制了j 2 e e 服务器所提供得内在支持,包括安全,事务管理, 第1 0 页 j n d i ( j a v an a m i n ga n dd i r e c t o r yi n t e r f a c e ) 寻址,远程连接等服务,以下列出最重要 的几种服务: j n d i 寻址( j n d il o o k u p ) 服务向企业内的多重名字和目录服务提供了一个统 一的接口,这样应用程序组件可以访问名字和目录服务。 数据库连接池( d a t a b a s ec o n n e c t i o np o o l i n g ) 模型是一个有价值的资源。获 取数据库连接是一项耗时的工作,而且连接数非常有限。容器通过管理连接池来 缓和这些问题。 我们在该系统中用到的是主要是w e b 容器和a p p l e t 容器。 2 4m v c 模式 m v c 模式( m o d e l v i e w c o n t r o l l e r ,模型视图一控制) 是交互式应用程序广 泛使用的一种设计模式。它有效地在存储和展示数据的对象中区分功能模块以降 低它们之间的连接度,这种模式将传统的输入、处理和输入模型转化为图形显示 的用户交互模型,或者换一种说法,是多层次的w e b 商业应用;m v c 体系结构 具有三个层面:模型( m o d e l ) 、视图( e w ) 和控带1 ( c o n t r o l l e r ) ,每个层面有其各 自的功能作用,m v c 体系结构如下: 图2 1m v c 结构示意图 模型层负责表达和访问商业数据,执行商业逻辑和操作。也就是说,这一层 就是现实生活中功能的软件模拟;在模型层变化的时候,它将通知视图层并提供 第1 l 页 后者访问自身状态的能力,同时控制层也可以访问其功能函数以完成相关的任 务。 视图层负责显示模型层的内容。它从模型层取得数据并指定这些数据如何被 显示出来。一个模型可以有多个视图,而一个视图理论上也可以使用不同的模型 关联起来。模型层变化的时候,它将自动更新。另外视图层也会将用户的输入传 送给控制器。 控制层负责定义应用程序的行为。它可以分派用户的请求并选择恰当的视图 以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操 作。一般来讲,控制器在模型和视图之间起到了沟通的作用,处理用户在v i e w 上的输入并转发给模型。这样模型和视图两者之间可以做到松耦合,甚至可以彼 此不知道对方。而由控制器连接这两部分。 在本系统中,由于从不同的视点看项目管理本身是具有不同的显示策重,因 此系统中大量应用了m v c 模式。 2 5 基于m v c 模式的s t r u t s 框架及技术 w e b 向软件开发人员提出了一些特有的挑战,最明显的就是客户机和服务器 的无状态连接。这种无状态行为使模型很难将更改通知视图。在w e b 上,为了 发现对应用程序状态的修改,浏览器必须重新查询服务器。在起初的w e b 项目 应用m v c 模式时,仅仅是基于m o d e l1 模型的开发,其基本原理是用户使用j s p 直接从数据库中提取数据。流程如下: 图2 - 2m v cm o d e l1 模式图 该模型的缺点在于由于视图和控制结合在一起,如果系统发生改变,那么整 个的显示和控制都要全部改变。这就对系统的更改和维护带来极大的困难。为了 解决这个问题,人们提出了改进的m v c 模式,既m o d e l2 。它是经典的m v c 模型的w e b 应用变体,m o d e l2 的目的和m v c 一样,也是利用控制器来分离模 型和视图,达到一种层间松散耦合的效果,提高系统灵活性、复用性和可维护性。 它主要的改进就是将视图和模型通过控制器进行分离。如下图 第1 2 页 图2 - 3m v cm o d e l2 模式图 s t r u t s 是基于m o d e l2 之上的一个可配置、高度扩展性的m v c 框架,m v c 模式的每一部分在s t r u c t s 中都有相关对应部分。s t r u t s 框架中对应m v c 模式中 的各部分如下: 视图层 大多数s t r u t s 应用的v i e w 层是由j s p 组成的。为了使v i e w 的开发更加容易, s t r u t s 提供了一整套j s p 自定义的t a g 库。这些t a g 库使我们能很容易地提供完全 国际化的用户界面,这些界面通常是与s t r u t s 应用中的m o d e l 组件交互。 通常w e b 应用的动态前端都是基于h t m l 表单的,这些应用的用户需要应 用的可靠性得到保证,这样就需要表单校验。如果用标准的j s p ,记录表单的内 容和从一个j a v a b e a n 获得表单内容简单乏味而且容易出错。s t r u c t s 应用 f o r m b e a n 使表单处理和校验变得容易。f o r m b e a n 与s t r u t s 的t a g 库结合,使带 f o r m 的视图开发变得容易而自然。 模型层 s t r u t s 应用中的m o d e l 层可以应用任何基于j a v a 的技术实现,比如e j b , h i b e r n a t e ,或者j d o 。通常,m o d e l 是作为包含数据和业务逻辑的简单j a v a b e a n 出现的。如前所述a c t i o n f o r m 对象不是真正m o d e l 层的体现,同时m o d e l 层应 当独立于h t m l 的表单对象。如果可能的话,m o d e l 对象的开发应当是与使用的 开发技术和开发环境( s t r u t s 或者其他) 无关的,这样我们就可以在不同的环境和 应用中很容易地重用它们。 至于a c t i o n f o r m ,它似乎应该被视为应用的m o d e l ,然而事实上他们应当被 当作应用中c o n t r o l l e r 的一部分。a c t i o n f o r mb e a n 中显示了m o d e l 的属性,但它 们不包含任何持续性逻辑或者业务逻辑。a c t i o n f o r m 只是用来在m o d e l 、v i e w 之间传递m o d e l 信息。 因为a c t i o n f o r m 属于c o n t r o l l e r 中的一部分,我们将在c o n t r o l l e r 的部分来具 体了解它。 篇1 3 酉 控制层 s t r u t s 内置一个实现了c o n t r o l l e r 主要功能的s e r v l e t ,它提供将需要调用的 u r l 与一个a c t i o n 对象对应起来的功能。这个s e r v l e t 被称作a c t i o n s e r v l e t ,完 成下列功能: 根据用户要求决定需要的a c t i o n : 为v i e w 提供v i e w 需要的数据: 决定要显示的下一个v i e w 。 a c t i o n s e r v l e t ( 该s e r v l e t 已由s t r u t s 实现,是s t r u t s 架构的核心所在,开发 者无须关心) 的重头工作是调用一一系列简单的a c t i o n 类。s t r u t s 开发人员的工作主 要是提供这些a c t i o n s 来实现应用的逻辑。创建a c t i o n 必须实现a c t i o n 接口。此 接口包含以下方法: p u b l i c a c t i o n f o r w a r d e x e c u t e ( a c t i o n m a p p i n g m a p p i n g , a c t i o n f o m a f o r m ,h t t p s e r v l e t r e q u e s tr e q u e s t ,h t t p s e r v l e t r e s p o n s er e s p o n s e ) t h r o w se x c e p t i o n ; 如上所示,该方法将a c t i o n f o r m 作为它的一个参数。上面提到的a c t i o n s e r v l e t 保汪了f 确的f o r m 传递给这个方法。在v i e w 层我们说过,a c t i o n f o r i n s 在m o d e l 层和v i e w 之间传递数据。a c t i o n f o r m s 是一个非常简单的对象:以下代码显示 了我们将在一个简单的h t m l 表单中用到的a c t i o n f o r m s : i m p o r tj a v a x s e r v l e t h t t p h t t p s e r v l e t r e q u e s t ; i m p o r tj a v a x s e r v l e t h t t p h t t p s e r v l e t r e s p o n s e ; i m p o r to r g a p a c h e s t r u t s a c t i o n a c t i o n f o r m ; i m p o r to r g a p a c h e s t r u t s a c t i o n a c t i o n m a p p i n g ; p u b l i cc l a s sl o g i ne x t e n d sa c t i o n f o r m p r o t e c t e ds t r i n gu s e m a m e ; p r o t e c t e ds t r i n g p a s s w o r d ; p u b l i cv o i ds e t u s e m a m e ( s t r i n gu s e m a m e ) t h i s u s e m a m e = u s e m a m e ; ) p u b l i cs t r i n gg e t u s e m a m e ( ) ( r e t u r nu s e m a m e ; ) p u b l i cv o i ds e t p a s s w o r d ( s t r i n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 索道支架焊接工艺参数调整工艺考核试卷及答案
- 金属成形机床维修规范考核试卷及答案
- 动物胶制造工岗前考核试卷及答案
- 卡轨车司机岗前考核试卷及答案
- 城市轨道交通行车调度员适应性考核试卷及答案
- 现代学徒制下高职校企协同专业诊改体系构建
- 养殖技术考试题目及答案
- 美术中考专业试题及答案
- 果树专业试题及答案
- 单招空乘专业试题及答案
- 2025年公路检测工程师《水运结构与地基》试题及答案
- 隔爆水棚替换自动隔爆装置方案及安全技术措施
- 叙事医学培训课件
- 肠道菌群与人体代谢疾病.ppt
- 极限配合与技术测量基础(第五版)
- 培智四年级美术教案新
- 智能电子储物柜控制系统方案
- 成人高考数学必背知识点
- 16日济宁市兖州誉航汽车广场市场调研及招商销售可行性报告简编版
- 学习JJF1001-2011《通用计量术语及定义》规范的体会
- 基层群众自治制度.ppt
评论
0/150
提交评论