已阅读5页,还剩55页未读, 继续免费阅读
(管理科学与工程专业论文)uml在柔性开发模式中的应用研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
u m l 在柔性开发模式中的应用研究 摘要 柔性开发模式是一种新的系统开发模式,实现了“闭环式”开发过 程,具有很大的灵活性。效率高,可以对用户的需求变化快速做出反应。但 柔性开发模式的实施受到诸多因素限制,难以具体实施。 u m l 是面向对象领域刚刚兴起的标准建模语言,具有定义良好、可扩 展、易理解、支持面向对象系统开发全过程等优点。 本文论述了实现柔性开发模式的必要条件,把u m l 和柔性开发模式结 合起来,使柔性开发模式具有了实际可行性,并且针对柔性开发模式中存在 的需求和模型之间、模型内部、模型和代码之间存在的不一致问题提出了改 进措旅。最后,在设备管理系统项目开发实例中,验证了柔性开发模式的可 行性和改进措旅的效果。实践证明柔性开模式可行的,适合于大型复杂而功 能又难以很快确定的系统的开发,能够很好的解决目前系统开发中存在的诸 多问题。 关键字:统一建模语言;柔性开发模式;面向对象 “1 。 门 , p 一 a b s t r a c t t h ef l e x i b l es o f t w a r ed e v e l o p m e n tm o d e ,w h i c hr e a l i z e st h e c l o s e l o o p ”d e v e l o p m e n tp r o c e s s ,i s an e wf l e x i b l e ,e f f i c i e n ts y s t e m d e v e l o p m e n tm o d e a n d i nt h i sm e t h o dl h ed e v e l o p e r sc a nr e s p o n d r a p i d l yt ot h ec u s t o m e r sd e m a n dc h a n g e h o w e v e r ,t h ei m p l e m e n t a t i o n o ft h ef l e x i b l es o f t w a r ed e v e l o p m e n tm o d ei s l i m i t e db yl o t so ff a c t o r s a n di sd i 仟i c u l tt oc o m et r u e u m l ( u n i f i e dm o d e l i n gl a n g u a g e ) i s t h es t a n d a r d m o d e l i n g l a n g u a g ee m e r g e di nt h ec oa r e a ,w h i c hi sw e l ld e f i n e da n d e x t e n s i b l e a n di tj si m p o r t a n tt h a ti ts u p p o r t st h ew h o l ec o s y s t e md e v e l o p m e n t p r o c e s s t ot a k et h ea d v a n t a g e so ft h ef l e x i b l es o f t w a r ed e v e l o p m e n tm o d e , t h ew r i t e rs t u d i e dt h e p r e r e q u i s i t e s o f u s i n g t h ef l e x i b l es o f t w a r e d e v e l o p m e n tm o d e 。a n dt h e ns u c c e s s f u l l yi n t r o d u c e du m l i n t ot h i sn e w s o f t w a r ed e v e l o p m e n tm o d e t h i sm a d et h i sn e ws o f t w a r ed e v e l o p m e n t m o d ep r a c t i c a l 。f u r t h e r m o r e ,t h ep a p e rp u t sf o r w a r dt h ej m p r o v e m e n t m e a s u r e sa i m i n ga tt h ei n c o n s i s t e n c yb e t w e e nt h ed e m a n da n dm o d e l , i n s i d eo fd i f f e r e n tm o d e l s a n db e t w e e nt h em o d e ia n dc o d ee x i s t e di n t h ed e v e l o p m e n to ft h ef l e x i b l es o f t w a r ed e v e l o p m e n tm o d e f i n a l l y ,t h e w r i t e ri n t r o d u c e dt h en e ws o f t w a r e d e v e l o p m e n t m e t h o dj n t ot h e d e v e l o p m e n tp r o c e s s o fa n e q u i p m e n tm a n a g e m e n t i n f o r m a t i o n s y s t e m 1 ti sp r o v e dt h a tt h ef l e x i b l e s o f t w a r ed e v e l o p m e n tm e t h o d w h i c hu s e su m la si t s m o d e l i n gl a n g u a g e ,i s e f f e c t i v ea n df e a s i b l e , a n dt h ei m p r o v e m e n tm e a s u r ei se f f i c i e n t k e y w o r d s :u n i f i e dm o d e l i n gl a n g u a g e ( u m l ) ;f l e x i b l e s o f t w a r e d e v e l o p m e n tm o d e ;0 b j e c t - o r i e n t e d i m l 在柔性开发模式中的应用研究 1 前言 当前,世界上各项科学技术突飞猛进,以信息技术为代表的高新技术 发展更是日新月异。信息技术与信息产业正有力地推动着经济全球化进程, 并由此产生了新的经济模式,催生了许多新的产业,加速了世界性的产业结 构、产品结构的调整,对全球社会经济活动产生了难以估量的影响。信息产 业已成为全球经济中融合度最高、潜力晟大、增长最快的领域。加入w t o 有助于中国学习和掌握先进技术、管理经验和利用外资,同时也使中国信息 产业在技术和市场两个方面面临巨大的压力和挑战,加速信息技术和信息产 业的发展对于我国经济发展和信息安全具有重要作用。软件产业是信息产业 中的重要一部分,是当今世界投资回报比最高的产业之一,软件产业的发展 对于我国信息产业的发展具有重要意义。 计算机软件( s o f t w a r e ) 是计算机系统中与硬件( h a r d w a r e ) 相互依存的 另一部分,它包括程序( p r o g r a m ) 、相关数据( d a t a ) 及其说明文档 ( d o c u m e n t ) “1 。软件是依附与计算机硬件设施的逻辑体,与传统的工业产品 相比,具有其独特的特性“1 : ( 1 ) 软件是一种逻辑实体,具有抽象性。这个特点使它与其它工程对 象有着明显的差异。人们可以把它记录在纸上、内存、和磁盘、光盘上,但 却无法看到软件本身的形态,必须通过观察、分析、思考、判断,才能了解 它的功能、性能等特性。 ( 2 ) 软件没有明显的制造过程。一旦研制开发成功,就可以大量拷贝 同一内容的副本。所以对软件的质量控制,必须着重在软件开发方面下工 夫。 ( 3 ) 软件在使用过程中,没有磨损、老化的问题。软件在生存周期后 期不会因为磨损而老化,但会为了适应硬件、环境以及需求的变化而进行修 改,而这些修改又不可避免的引入错误,导致软件失效率升高,从而使软件 退化。当修改的成本变得难以接受时,软件就被抛弃。 ( 4 ) 软件对硬件和环境有着不同程度的依赖性。这导致了软件移植的 问题。 ( 5 ) 软件的开发至今尚未完全摆脱手工作坊式的开发方式,生产效率 低。 u m l 在柔性开发模式中的应用研究 ( 6 ) 软件是复杂的,丽且以后会更加复杂,需要极大智力的投入。软 件是人类有史以来生产的复杂度最高的工业产品。软件涉及人类社会的各行 各业、方方面面,软件开发常常涉及其它领域的专门知识,这对软件工程师 提出了很高的要求。 ( 7 ) 软件的成本相当昂贵。软件开发需要投入大量、高强度的脑力劳 动,成本高,风险也大。现在软件的开销已大大超过了硬件的开销。 ( 8 ) 软件工作牵涉到很多社会因素。 软件自身的特点决定了软件的开发不可能想其他产业那样,软件的开 发必须有它自己独特的过程。 1 1 软件危机及软件工程思想的产生 在计算机系统发展的初期,硬件已经通用化,而软件却是个体化的。 此时的软件开发者和使用者往往是同一个人,程序规模小,几乎没什么系统 的方法可遵循,设计者根据自己的思维进行开发。随着计算机硬件的发展, 计算机的应用领域越来越广,几乎涉及到工厂管理、银行事务等社会生活的 各个方面。这些系统的软件规模都很庞大,逻辑上也相当复杂,并且功能上 要求不断地更改和扩充。软件本身是逻辑实体、其开发是“思考”过程等自 身特点已经决定了软件难理解、维护困难,开发过程难以管理。同时,开发 人员以“手工作坊”的方式来开发软件,完全是按照各自的爱好和习惯进行 的,没有统一的标准和规范可以遵循。因而,在软件的开发过程中遇到了许 多困难。软件危机( s o f t w a r ec r i s i s ) 指的就是在计算机软件的开发和维护 过程中所遇到的一系列严重问题, 1 9 6 8 年北大西洋公约组织的计算机科学家在德国召开的国际学术会议 上第一次提出了“软件危机”( s o f t w a r ec r i s i s ) 这个名词0 1 。概括来说, 软件危机包含两方面问题:( 1 ) 如何开发软件,以满足不断增长,日趋复 杂的需求;( 2 ) 如何维护数量不断膨胀的软件产品。具体地说,软件危机 主要有以下表现: ( 1 ) 对软件开发成本和进度的估计常常不准确。开发成本超出预算, 实际进度比预定计划一再拖延的现象并不罕见。 ( 2 ) 用户对“已完成”系统不满意的现象经常发生。 ( 3 ) 软件产品的质量往往靠不住。b u g 一大堆,p a t c h 一个接一个。 ( 4 ) 软件的可维护程度非常之低。 u m l 在柔性开发模式中的应用研究 ( 5 ) 软件通常没有适当的文档资料。 ( 6 ) 软件的成本不断提高。 ( 7 ) 软件开发生产率的提高赶不上硬件的发展和人们需求的增长。 软件危机的原因,一方面是与软件本身的特点有关:另一方面是由软 件开发和维护的方法不正确有关。软件的特点前面已经有一个简单介绍。软 件开发和维护的不正确方法主要表现为软件开发前期的需求分析过程得不到 重视:开发过程没有统一、规范的方法论的指导,文档资料不齐全,忽视人 与人的交流;对测试阶段的工作不够重视,提交用户的软件质量差;轻视软 件的维护。这些大多数都是软件开发过程管理上的原因。 为了摆脱软件危机,北大西洋公约组织的科技委员会成员国在1 9 6 8 年 召集了近5 0 名一流的编程人员、计算机科学家和工业界巨头,讨论和制定 摆脱“软件危机”的对策,在这次会议上第一次提出了软件工程 ( s o f t w a r ee n g i n e e r i n g ) 这个概念。1 。软件工程是指导计算机软件开发 和维护的工程学科。它采用工程的概念、原理、技术和方法来开发与维护软 件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方 法结合起来。软件工程包括两方面内容:软件开发技术和软件项目管理。软 件开发技术包括软件开发方法学、软件工具和软件工程环境。软件项目管理 包括软件度量、项目估算、进度控制、人员组织、配置管理、项目计划等。 随着软件工程学的不断研究和广泛应用,出现了许多有效的软件开发模式。 1 2 传统软件工程开发模式 软件工程包含四个关键元素,即方法( m e t h o d o l o g i e s ) 、语言 ( l a n g u a g e ) 、工具( t o o l s ) 和过程( p r o c e d u r e s ) “ 。方法提供如何构造软件 的技术,包括一组广泛的任务,其中包括与项目有关的计算和各种估算,系 统和软件需求分析,数据结构设计,程序体系结构,算法过程,编码,测试 和维护等。语言用以支持软件的分析、设计和实现。工具为方法和语言提供 自动化或半自动化的支持。过程把方法、语言和工具粘结在一起,使计算机 软件开发理性化和实时化,过程定义了方法使用的顺序、可交付产品( 文 档、报告及其格式等) 的要求、帮助确保质量和变更的控制,使软件管理人 员能对它们的进展进行评价。软件工程即是由一系列的方法、语言、工具和 过程的步骤所组成。这些步骤通常叫做软件工程模式。软件工程的发展过程 u m l 在柔性开发模式中的应用研究 实际上就是软件危机不断解决的过程。在这个过程中,提出了许多软件工程 模式,典型的有瀑布模型、原型开发模型、螺旋模型、四代技术等。 1 2 1 瀑布式模型 七十年代,b w b o e h m 提出了软件生命周期的瀑布模型( w a t e r f a l l m o d e l ) ,它较典型地刻画了软件生命周期的阶段划分“3 。瀑布模型核心思想 是,从时间上按工序把问题化简,将功能实现与制作分开,便于分工协作。 用结构化分析和设计方法,将物理实现与逻辑表示分开,从规模上将问题化 简。将设计与实践结合,开发技术与管理技术结合,把软件生命周期划分为 八个阶段,各个阶段的任务分别是:问题定义、可行性研究、软件需求分 析、系统总体设计、详细设计、编程、测试和运行、维护。八个阶段又可以 归纳为三个大的阶段,即计划阶段,开发阶段和运行阶段。其各阶段的工作 按顺序开展,形如自上而下的瀑布,故人们将这种开发模式称之为瀑布模 型。它的优点是:奠定了软件工程方法的基础,流水依赖,便于分工协作, 推迟物理实现,易于修改文档,有复审质量保证。其缺点;与用户见面晚、 纠错慢、难于克服系统分析员不懂专业领域知识、用户不懂计算机的困难、 成功率低。适用于系统要求明确、变更不大的小系统”1 。 1 2 2 原型开发模型 鉴于瀑布模型的种种缺陷,研究人员提出了软件快速原型( r a p i d p r o t o t y d i n g ) 模型( 即样机模型) 。由于不是所有的用户对系统都能预先 定义需求,往往只是模糊的设想,修改需求也经常发生。用户与开发者之间 信息的不均衡导致沟通交流障碍,需求无法准确表达。原型模型就是为了确 定需求而提出的实际模型。它借用了其他工程学科中的思想,就是在项目早 期尽快地生产一个便宜的和简化的系统的原型版本,这个原型就是用户和开 发人员用于学习的一种设备,它能为构造系统的规格说明提供必不可少的反 馈信息。用户通过对原型的了解,逐渐明确系统需求,从而确定系统需求, 开发人员就可以进一步准确地进行系统设计与实现。原型法的优点是与用户 见面快,在最终系统开发出来前,用户对系统已经有一定的了解,开发成功 率高,适用于需求不太确定的系统。缺点是周期长,往往开发成本高,而且 原型法也有一些难以解决的困难“1 :( 1 ) 用户看到的是一个可运行的软件 u m l 在柔性开发模式中的应用研究 版本,但不知道这个原型是临对搭建起来的,不知道还没有考虑到软件整体 质量或今后的可维护性问题,容易误认为系统可以很快完成、稍作修改就可 以了,因而期望系统在短期内就可以投入使用。( 2 ) 为了尽快开发出原 型,开发人员经常采用一些折中的解决办法。如使用一些他们对之比较熟悉 或容易得到但并不适当的操作系统、开发语言或设计方法等,经过段时间 后却忘记当初选择这些方法的原因,因而这些并不恰当的部分也就成为系统 的一部分。 1 2 3 螺旋模型 螺旋模型( s p i r a lm o d e l ) 1 9 8 8 年由b o e h m 提出,是一种由原型模型和 瀑布模型演化而来的开发模型,结合了原型法迭代的特点和瀑布模型的控制 的观点,具有软件增量版本发布快速开发的潜力,并且在开发过程中引入了 风险分析。在螺旋模型中,软件的开发过程实际上是一系列的增量版本发布 的过程。 螺旋模型被划分成几个框架活动( f r a m e w o r ka c t i v i t y ) ,即任务 区,一般有3 6 个任务区。如图1 一l ”3 示的是一个包含6 个任务取的螺旋 模型。 图卜1 螺旋模型 f i g 1 一lt h es p i r a lm o d e l 从中心开始,螺旋线往外走,就可一步一步地建立起完整的软件版 本。在螺旋线的第一圈,同用户沟通( c u s t o m e rc o m m u n i c a t i o n ) 、定义目标 ( p l a n n i n g ) 、确定和分析风险( m s ka n a l y s i s ) 。如果风险分析表明需求有不确 定性问题的话,则可在工程任务区( e n g i n e e r i n g ) 内使用原形开发模型,帮助 开发人员和用户弄清需求。然后构建系统并发布( c o n s t r u c t i o n & r e l e a s e ) , e u m l 在柔性开发模式中的应用研究 通过用户评价( c u s t o m e re v a l u a t i o n ) 提出修改意见。第一轮完成后就进入 第二轮,。螺旋模型每一轮都要进行风险分析,根据它的结果,做出继 续还是停止的决策。软件随着过程的迸展和演化,开发者和用户能够更好的 理解和对待每一个演化级别上的风险。螺旋模型使用原型作为降低风险的机 制,但重要的是,它使开发者在产品演化的任意阶段均可使用原型方法。它 保持了瀑布模型中系统的、阶段的方法,但将其加进了迭代框架,更加真实 地反映了现实世界。螺旋模型要求在项目的所有阶段直接考虑技术风险,如 果应用得当,能够在风险变成问题之前降低它的危害。但是螺旋模型也存在 缺陷,就是它很难让用户确信( 特别是在有合同的情况下) 这种演化方法是 可以控制的;而且它要求有风险评价的专门技术,因为这些技术决定评价的 成功与否。 1 2 4 四代技术 四代技术( f o r t h g e n e r a t i o l qt e c h n i q u e s ) ,简称4 g t 。4 g t 拥有一 组工具,它们都有一个共同的特点,即每个工具都能使软件开发人员在高层 次上定义软件的某些特性,并把开发人员定义的这些特性自动地生成源代 码。人们知道,机器如果能在越高层次上定义软件,则程序生成越快。软件 工程的4 g t 模式就能够在机器一定层次上用一种近似自然的语言或种能 赋予特殊功能的符号来定义软件。 目前,支持4 g t 模式的软件开发环境包括部分和全部下述工具:数据库 查询的非过程性语言、报表生成、数据处理、屏幕交互和定义、代码生成、 高级图形功能和电子表格等“1 。这些工 具都很适用,但都局限于一些专门的应 用领域。现在,还没有一种4 g t 环境 能够同样方便地用于上面所介绍的各类 应用软件中。 与其他软件开发模式一样,4 g t 也是从需求分析开始。理想地,用户应 该能描述需求,并将其直接转换为操作 原型。但这是不现实的,因为用户往往 不清楚需要什么,对他们知道的东西也 表现褥模棱两可,因此往往不愿意用 图1 24 g t 模式4 】 f i g t 2t h e4 g t m o d e l 望坚垄耋竺茎垄堕茎! 丛生望塑塑 一 4 g t 工具这种可能导致浪费的方式来定义软件。另外,4 g t 工具也还没有智 能化到可以真正适应人的自然语言,因此人机对话描述仍是4 g t 中所必需 的部分。为了把4 g l 实现转化为一个产品,开发人员必须进行充分的测 试,开发有意义的文档,而且要经历其他软件工程开发模式要求的所有活 动。4 g t 模式虽然可以极大地减少软件开发时间,提高软件开发的生产率, 但是用4 g t 工具生成的源代码效率不高,用它生成的大型软件可维护性 差,而且4 g t 工具的并不比编程语言容易掌握。 1 2 5 面向对象生存期模型 自从面向对象( o b j e c t e d - o r i e n t e d ,0 0 ) 语言s m a l l t a l k 及其环境 出现以来,面向对象技术的研究已遍布计算机软硬件各个领域:面向对象语 言、面向对象程序设计方法学、面向对象操作系统、面向对象数据库等等。 随着面向对象技术的渐趋成熟,人们又提出了面向对象软件工程生存周期开 发模式。 在传统的开发模式中,由于一直采用结构化的开发技术,传统的结构 化技术占据主要地位。面向对象技术的兴起和表现出的巨大优势使人们认识 到要开发出满意的系统必须在软件工程领域也采用面向对象的思想。 h e n d e r s o n s e l l e r s ( 1 9 9 0 ,1 9 9 1 ) 提出,把面向对象技术弓l 入商业环境的 一个关键问题是把面向对象技术贯穿到整个生存周期,还是与传统的结构化 技术掺合或搭配起来使用n 1 。考虑到当时传统的结构化技术发展非常成熟, 已经有大量的支持结构化技术的c a s e 工具,而且基本上所有的软件都是用 结构化的方法开发出来的,人们提出了可以把面向对象技术和结构化技术结 合起来的混合的开发生存周期,指出在软件开发的不同阶段可以采用不同的 软件开发技术。系统开发的过程,也即问题求解的过程,图i - 3 描述了系 统开发的不同实现路线。 在系统的开发过程中,开发人员可以整个过程全部采用面向对象的技 术,也在开发前期采用面向对象的方法,在后期采用传统的结构化开发方 式。但是,在系统开发的过程中,两中方法的交替使用,不同阶段的开发人 员必须进行相应的变化,才可以利用前一阶段的工作,而且由于所使用方法 的不连贯最终往往导致所建立的系统模型难以理解。 u m l 在柔性开发模式中的应用研究 问题卜立卜( 立) _ 妒问躲 ( 1 ) i画囱盟堑 j ( 2 ) l袖毖 li竺 l ( 3 ) l亘旦墨堕 ll生统 l ( 4 ) i 焦统il血回对象| ( 5 ) i娃统le面回殖象l 图卜3 面向对象生存周期模型 f i g 1 3 t h e0 0s o f t w a r el i f e c y c em o d e l 最好的方法就是在生存周期的全过程中采用面向对象技术。只有这样 才有可能使一个阶段的工作输出成为下一个阶段的工作输入,提高工作效率 4 。采用新技术的目的是为了得到最好的效能。它可以有最高的生产率,虽 好的用户需求控制和最大的重用分析、设计或代码复用。不管你转向新方法 的动机是什么,如果你不是百分子百的采用它,那么不仅仅会限制它给你带 来的好处,而且也很难看到这种方法的效益。 混合的方法并不是解决问题的途径,只是人们逐步采用新技术时一个 暂时的折中方案,最终必然过度到完全的面向对象方法。 1 3 本文的研究意义及方法 尽管随着软件工程学的发展,出现了许多优秀的软件开发模式,但时 至今日,软件危机问题依然困扰着软件产业的发展,而且出现了新的问题。 信息技术的飞速发展,已经涉及到人们日常生活的每一项活动,信息技术应 用的日益广泛,使得软件的规模、复杂度、要求的灵活性等急剧变大8 ,这 都为软件开发增加了困难,而且对软件系统有了新的要求。具体表现为: u m l 在柔性开发模式中的应用研究 ( 1 ) 软件的规模极其庞大。现在几乎所有要开发系统都需要解决多方 面的问题,而不是为了实现某个单一的功能就可以的,必须实现的功能繁 多,规模庞大,根本非一两个人就可以开发完成,需要一个团队成员的协调 工作,而且在软件开发的不同阶段需要不同人员的参与才可完成。 ( 2 ) 复杂。现在所开发的系统要解决的问题往往都是复杂的,涉及多 方面的功能和不同层次的用户,因而也所开发的系统也必须考虑多方面的功 能、性能等因素,技术的发展使人们在开发这些系统时除了要实现复杂的功 能要求外,还要考虑到系统数据安全、易用、稳定等性能要求,所有这些都 加大了系统开发的难度和复杂性。 ( 3 ) 开发周期长。系统规模的庞大和复杂性,决定了系统的开发工作 不可能是短期内可以完成的。而开发周期的延长同时就带来了系统的开发成 本升高、开发进度不容易控制等问题。 ( 4 ) 对系统的灵活性要求高。现实世界是不断变化的,系统开发周期 的延长导致系统必须能够适应外部的变化或做出相应的调整。这就需要系统 具有一定的灵活性,在其他条件或需求发生变化时,只进行少量的调整或修 改就可以适应变化后的情况。 ( 5 ) 对所开发系统同其他系统的协作要求高。信息技术的发展,使得 计算机系统已经涉及我们生活的方方面面。系统开发时间只考虑本系统应该 实现的功能和性能要求是不够的。一个新系统的开发必须考虑到和其他系统 的协同问题,即不仅要考虑到与已经有的系统的连接问题,同时也不许考虑 为将来其他系统的开发提供适当的接口,否则,所开发出的系统必然是难以 在实际中得到应用的。 ( 6 ) 涉及专业领域的知识。信息技术应用的日益广泛,使得新的系统 的开发越来越深入到专业领域,涉及大量的专业知识。因而要开发出真正满 足用户需求的系统,必须有熟悉专业应用的人员的参与。而这些熟知用户需 要的专业人士对于计算机系统开发技术往往知之甚少,如何在这些专业人员 和系统开发人员之间建立起良好有效的沟通成了现代系统开发工作中的重要 问题。 ( 7 ) 系统规模的庞大和复杂,要求必须由开发团队的参与才可能顺利 完成系统的开发工作。在系统开发的不同阶段,需要有不同专长的人员的参 与,其中包括熟悉用户需要的专业人员、系统分析设计人员、编码人员、测 试人员等等,如何在这众多具有不同技术背景的人员之间形成有效的沟通, u m l 在柔性开发模式中的应用研究 使前一阶参与人员的工作成果可以直接为下一阶段参与人员所用,成了现代 系统开发工作中的突出问题。 此外,对数据的安全性、可维护性等也都有了更高的要求。 现阶段已有的系统开发模式并不能解决这些问题,因而对新的系统开 发模式的探索就具有重要的实际意义。 柔性开发模式是一种新的系统开发模式,实现了“闭环式”开发过 程,具有很大的灵活性,效率高,可以对用户的需求变化快速做出反应。但 柔性开发模式的实施受到诸多因素限制,难以具体实施。u m l 是面向对象 领域刚刚兴起的标准建模语言,具有定义良好、可扩展、易理解、支持面向 对象系统开发全过程等优点。 本文论述了实现柔性开发模式的必要条件,把u m l 和柔性开发模式结 合起来,使柔性开发模式具有了实际可行性,并且针对柔性开发模式中存在 的需求和模型之间、模型内部、模型和代码之间存在的不一致问题提出了改 进措施。最后,把柔性开发模式和改进措施应用于某石化企业设备管理系统 项目开发实例中,在实际中验证柔性开发模式的可行性和改进措施的效果。 u m l 在柔性开发模式中的应用研究 2 面向对象思想及u m l 面向对象方法起源于面向对象的编程语言,但是它一经产生,在实际 应用所表现出来的优越性,使其在计算机领域迅速得到推广。统一建模语言 ( u n i f i e dm o d e l i n gl a n g u a g e ,u m l ) 正是在面向对象方法基础上形成的是 一种标准的图形化建模语言,它是面向对象分析与设计的一种标准表示,支 持面向对象方法的全过程,为面向对象方法的整个过程提供了一种致的、 准确的图形表示,具有重要的意义和应用前景。 2 1 面向对象 2 0 世纪8 0 年代到9 0 年代,逐步形成了面向对象的概念、方法和技术 11 。面向对象( o b j e c t o r i e n t e d ,0 0 ) 方法就是尽可能地模拟人类习 惯的思维方式,使软件开发方法和过程尽可能接近人类认识世界、解决问题 的方法和过程。面向对象方法起源于面向对象的编程语言,但又不仅仅是一 种程序设计方法,更是一种对应与真实世界概念的抽象思维方式,是一种围 绕真实世界的概念来组织模型的、全新的思考问题的方式n “。面向对象方 法的出现,克服了传统结构化设计方法的缺点,提高了软件系统的稳定性、 可修改性和重用性。 在实践中,我们不难发现任何问题领域实际上都是由一些基本原始事 物组成的,这些事物相互间存在着一定的联系。在用计算机进行建立模型求 解的过程中,为了有效地反映客观世界,最好建立相应的概念去直接表现组 成问题领域的事物及这些事物之间的相互联系:此外,还需建立一套适应人 们一般思维方式的描述模式。面向对象( o b j e c t o r i e n t e d ,0 0 ) 技术的 基本原理正是按问题领域的基本事物实现自然分割,按人们通常的思维方式 建立问题领域的模型,设计尽可能直接自然表现问题求解的软件系统。为 此,面向对象技术引入对象( o b j e c t ) 来表现事物,用消息( m e s s a g e ) 传 递建立事物间的联系:类( c 1 a s s ) 和继承( i n h e r i t a n c e ) 性是适应人们 一般思维方式的描述模型。从求解问题的角度看是用对象描述子问题,对象 簇( 即类) 形成问题空间,对象问的消息传递表示用户要求,从问题空间到 求解空间的映像过程就是我们的系统开发过程。问题空间到求解空间的映射 应是一种自然的映射,有直接的对应关系,这就是面向对象方法学的精髓。 u m l 在柔性开发模式中的应用研究 面向对象的系统包含了三个要素即:对象、类和封装,这三个要素反 映了面向对象的基本观念。 对象是一个状态和操作( 或方法) 的封装体,可以表示为: o b j e c t := ( o i d ,d s ,o s ,m i ) 其中:o i d 为对象名称; d s = ( d 。,d :,d 。 ,数据结构集; o s = 0 。,0 :,0 。 ,操作集: m i = m 。,m :,m k ,消息名称集; 状态是由对象的数据结构的内容和值定义的,方法是一系列的实现步 骤,它是由若干操作构成的。面向对象的方法认为现实世界是由各种对象组 成的,任何事物都是对象,复杂的对象可以由比较简单的对象以某种方式组 合而成。对象是事件的主体,它们之间只能通过传递消息来相互联系。每当 一个操作被调用,就有一条消息被发送到这个对象上,消息带来了将要被执 行的操作的详细内容。 类是创建对象的样板,它包含着所创建对象的状态描述和方法的定 义。类的完整描述包含了外部接口和内部算法以及数据结构的形式。由一个 特定类所创建的对象叫做这个类的实例,因此类是对象的抽象及描述,它是 具有共同行为的若干对象的统一描述体。抽象是一种从一般观点看待事物的 方法,它要求程序员集中于事物的本质特征,而不是具体的细节或具体的实 现。面向对象方法把所有对象划分成各种对象类,每个对象类都定义了一组 数据和一组方法,数据是方法的属性,用来表示对象的状态。当建立一个对 象类的新实例时,可以根据要求为新对象定义其专用的数据,用来描述该对 象独特的属性值。例如,在显示器上画不同风格的直线,需要赋给画笔对象 不同的属性,以改变直线的样式和颜色等。面向对象系统提供了创建新的类 的种方法继承,继承的本质特征就是行为共享。新类共享已有类的行 为,而自己还具有修改和添加的行为。从一个类中继承下来的新类,将继承 已有类的所有方法和属性,还可以添加属于自己的方法和属性。新类被称为 己有类的子类( 派生类) ,已有类被称为父类( 基类) 。 0 0 方法中数据封装原则的引入,极大地降低了各部分代码之间的藕合 度,使得在系统功能发生改变时,只需改变涉及对象的类的代码即可,而类 的继承机制的采用实现了代码的重用性。数据封装和继承机制是系统具有更 大灵活性,可以对需求功能的变化快速做出反应。 竺些垄耋壁茎垄竖茎! 堕堡旦塑塑 面向对象方法的特点是使得面向对象的系统具有稳定性好、可重用性 好、可维护性好等显著优势。 2 2 统一建模语言u m l 2 2 1 u m l 的产生及发展 公认的面向对象建模语言出现于7 0 年代中期。但到9 0 年代,已出现 了数十种面向对象方法,在众多的建模语言中,语言的创造者都努力推崇自 己的产品,曾一度爆发了一场”方法大战”。其中最引人注目的是b o o c h 1 9 9 3 、o o s e 和o m t 一2 等。 b o o c h 是面向对象方法最早的倡导者之,面向对象软件工程的概念 就是由他提出的。1 9 9 1 年,他将以前面向a d a 的工作扩展到整个面向对象 设计领域。b o o c h1 9 9 3 比较适台于系统的设计和构造。r u m b a u g h 等人提出 了面向对象的建模技术( o m t ) 方法,采用了面向对象的概念,并引入各种独 立于语言的表示符。这种方法用对象模型、动态模型、功能模型和用例模 型,共同完成对整个系统的建模,所定义的概念和符号可用于软件开发的分 析、设计和实现的全过程,软件开发人员不必在开发过程的不同阶段进行概 念和符号的转换。o m t 一2 特别适用于分析和描述以数据为中心的信息系统。 j a c o b s o n 于1 9 9 4 年提出了o o s e 方法,其最大特点是面向用例( u s e c a s e ) ,并在用例的描述中引入了外部角色的概念。用例的概念是精确描述 需求的重要武器,但用例贯穿于整个开发过程,包括对系统的测试和验证。 o o s e 比较适合支持商业工程和需求分析。此外,还有c o a d y o u r d o n 方法, 即著名的o o a o o d ,它是最早的面向对象的分析和设计方法之一。 u m l 就是在汲取了众多方法优点的基础上发展起来。面向对象技术和 u m l 的发展过程可用图2 1 来表示。 u m l 在柔性开发模式中的应用研究 9 7 年9 月公布 9 7 年1 月公布 u g l 其他方法 b o o e h 9 l o m tlo o s e 图2 一lu m l 的发展过程 f i g21 怕e l ,sd e y e l o d m e n td r o c e s s 1 9 9 7 年儿月1 7 日,o m g 采纳u m l1 1 作为基于面向对象技术的标准 建模语言。u m l 代表了面向对象软件开发技术的发展方向,具有巨大的市场 前景,也具有重大的经济价值和国防价值。 u m l 的特点和使用目的可以概括为下列几条: ( 1 ) u m l 易于使用,能够进行可视化建模; ( 2 ) 与具体的实现无关,可应用于任何语言平台和工具平台: ( 3 ) 与具体的过程无关,可应用于任何软件开发的过程; ( 4 ) 简单并且可扩展,具有扩展和专有化机制,便于扩展,无须对核心 概念进行修改; ( 5 ) 为面相对象的设计与开发中涌现出的高级概念提供支持,强调软件 在开发过程中对架构、框架、模式和组件的重用; ( 6 ) 与最好的软件工程实践经验集成: , m , il,l辩蚪锚讨iill 婴些垄垩丝墨叁垡茎主堕堡旦婴壅 一一 2 2 2u g l 的主要内容 u m l 是在融合了众多面向对象方法的优点的基础上综合而成的,但是 u m l 主要是一种标准的建模语言而不是定义了标准的系统开发过程。u m l 的 主要内容可以从两个不同的角度来看:一是u m l 语义( 即u m l 本身的定 义) ;二是怎样用u 札的定义来描述所开发的系统( 即u m l 的建模机制) 。 2 2 2 1u m l 语义 u m l 语义描述基于u m l 的精确元模型的定义。元模型为u m l 的所有元素在 语法和语义上提供了简单、一致、通用的定义性说明,使开发人员在语义上 取得一致,消除了因人而异的表达方法所造成的影响。此夕b u m l 还支持对元 模型的扩展定义。 u m l 为对象的结构模型和行为模型定义了语义,结构模型强调系统中对 象的结构,包括类、接口、属性和关系。行为模型强调系统中对象的行为, 包括它们的交互作用、合作性和状态历史。u m l 为模型表示法提供了完整的 语义。 ( 1 ) u m l 的元模型理论 u m l 语言的结构基于四层元模型结构:元一元模型、元模型、模型和用 户对象。如表2 - 1 所示。 表2 1 四层元模型结构 t a b 2 1t h ef o u r - t i e rm e t a l o d e la r c h i t e c t u r eo fu m l 层次描述例子 元一元模型元模型结构的基础, m e t a c l a s s , 定义元模型描述语言的模型m e t a a t t r i b u t e , m e t a o p e r a t io n 元模型元一元模型的实例, c l a s s ,a t t r i b u t e , 定义模型描述语言的模型o p e r a t i o n , c o m p o n e n t 模型元模型的实例,实际应的域模型中的 定义信息域描述语言的模型类、属性、操作、组件 等。 用户对象模型的实例,特定信息域中对象结构 定义一个特定的信息域及相互交互。 u 池在柔性开发模式中的应用研究 元一元模型构层( m e t a m e t a m o d e l i n g ) 成了元模型( m e t a m o d e l i n g ) 体系结构的基础结构,是定义元模型描述语言的模型。它比元模型具有更高 的抽象层次而且更加简洁,为准确定义元模型的元素和各种机制提供最基本 的概念和机制。无论是元模型还是元一元模型都保持着自己设计的完整性。 元模型是元元模型的实例。元模型层的主要责任是定义描述模型的语 言。元模型比定义自身的元一元模型更加精细,尤其是当它们定义动态语言 时。一个系统往往是由多个模型的聚集、相互结合和通信组成。个元模型 通过把属性、操作、结合和通信进一步抽象为结构元素、行为元素来表达模 型,并提供表达系统的机制( 包) 。另外,为了准确地表达模型的语义,提 供了型板( s t e r e o t y p e ,也有人将它译为版类) 、标记值和约束。在这样 的元模型描述下生成的模型实例,可确保语义的准确刻画。模型是元模型的 实例,定义特定信息域描述语言的模型。模型规定了对象的属性、操作以及 聚集、结合和通信,保证用户对象层的语义正确描述。 用户对象( 用户数据) 是模型的实例。用户对象层的主要责任是描述 特定的信息域,它是按照某一领域的域模型组织模型的。任何软件系统在用 户看来都是互相通信的具体对象。如果排除面向对象语言表示的细节,这些 具体对象构成一对象体系结构,并完成具体的相互通信,其目的是实现系统 的功能和性能。从表示的角度,功能、性能即表示的语义。因此表示法系统 必须能表达的第一个层次是用户对象层,即对象实例及其交互。 ( 2 ) 静态语义的形式化 u m l 继承了软件工程中形式化规格说明语言的研究成果。因为u m l 是图 形化的建模语言,当用户借助可视元素表示模型元素时,其语义解释是不够 准确的,只有采用形式化的规格说明描述的软件体系结构在其各个开发阶段 中才能保证语义的一致性。但是形式化语言约束只能准确刻画静态语义,对 于动态语义除了能在几个快照上加入形式化的描述,还必须以自然语言加以 说明,完全形式化是极其复杂的。因此,为了保持描述的清晰,u m l 在给出 自身的语义说明时在采用形式化语言的同时也使用了自然语言,对每个逻辑 包都给出了三个层次的说明:a 抽象语法( a b s t r a c ts y n t a x ) :用一个 u m l 类图给出了各个元素之间的关系;b 良构规则( w e l l f o r m e d n e s s r u l e s ) :用形式化语言o c l ( o b j e c tc o n s t r a i n tl a n g u a g e ) 表达无边界效 应的约束,这些规则定义了正确模型所应满足的约束条件;c 语义 ( s e m a n t i c s ) :用自然语言描述u m l 的动态语义。 u m l 在柔性开发模式中的应用研究 2 2 2 2u m l 描述系统的方法 系统的建模过程实际是问题逐步求解的过程。一般都是从问题领域开 始,由实际需求逐步细化系统,最终得出系统的解决方法,面向对象的系统 建模方法也不例外。对于一个复杂的大型系统,必须从各个方面进行系统建 模,才可对系统给出清楚地描述,不同的方法对于清楚地描述系统需要哪些 模型具有不同的要求。 不同的方法对于如何才可清楚地描述系统提出了不同的要求。 r u m b a u g h 的o m t 方法指出采用面向对象方法描述系统所必须的三个模型是 对象模型、动态模型、功能模型。对象模型用类和关系来刻画系统的静态结 构;动态模型用事件和对象状态来刻画系统的动态特性;功能模型按照对象 的操作来描述如何从输入给出输出结果。也有方法认为需要从需求、静态结 构、动态结构、动态行为以及实现四个方面进行建立模型,即需求模型、结 构模型、行为模型和实现模型。不同方法给出的模型其实都是从不同方面对 系统的描述,只是不同的模型侧重点或视角不同,或者是对同一事情因侧重 点而异的不同说法,它们之间存在着相互补充和制约的关系。 u m l 语言支持所有面向对象的系统开发过程。u m l 是用例驱动的,因而 u m l 模型本身也被认为是4 + l 视图模型( 如图2 2 所示) 。其中,用例视图 (
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 体育产业智能化运动场馆方案
- 2026福建厦门市启航学校招聘事业单位非在编合同教师33人考试参考题库及答案详解
- 2026重庆市两江新区龙兴实验小学校招聘编外教师16人考试备考试题及答案详解
- 2026年模具钳工技师(二级)职业技能鉴定考试题库(含实操)
- 2026吉林长春市工人文化宫招聘劳务派遣制岗位1人笔试参考题库及答案详解
- 2026年阜南齐耀新能源有限公司招聘1人笔试参考题库及答案详解
- 酒店前厅接待服务礼仪标准执行方案
- 客户满意度调查数据分析与改进实施方案
- 2026年资阳市雁江区党校系统人员招聘笔试备考试题及答案详解
- 对合作伙伴服务不足的改进建议函(6篇)范文
- 2026年福建福建农信系统内劳派转正招考笔试题库附答案详解
- 2025年12月英语四级真题(全三套)及答案解析
- 律师事务所律师劳动合同
- 储能电站围墙施工方案
- 2023年安徽省蚌埠二中高一语文自主招生考试人文素养测试题
- AI在公文写作应用
- 2024二年级语文下册【写字表】生字默写-含答案
- 2026春三年级科学下册必考知识点考点
- 江苏省徐州市部分2026届毕业升学考试模拟卷语文卷含解析
- 下一代经销商白皮书:中国快消品流通洞察-2026.3.18
- 2026年共青团培训结业考试题库(含答案)
评论
0/150
提交评论