(计算机应用技术专业论文)信息系统软件中分析模式的研究与应用.pdf_第1页
(计算机应用技术专业论文)信息系统软件中分析模式的研究与应用.pdf_第2页
(计算机应用技术专业论文)信息系统软件中分析模式的研究与应用.pdf_第3页
(计算机应用技术专业论文)信息系统软件中分析模式的研究与应用.pdf_第4页
(计算机应用技术专业论文)信息系统软件中分析模式的研究与应用.pdf_第5页
已阅读5页,还剩60页未读 继续免费阅读

(计算机应用技术专业论文)信息系统软件中分析模式的研究与应用.pdf.pdf 免费下载

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

文档简介

信息系统软件分析中分析横式的研究与应用 摘要 摘要 软件复用是软件从业人员的不懈追求,它能够提高软件生产率以及软件质 量。人们在对软件系统进行分析时,经常会发现完全不同领域的分析模型却有着 很多的相似之处,于是对于分析模型的复用逐渐引起了人们的注意。分析模式就 是为着重解决面向对象系统中分析模型复用而诞生的技术。 分析模式是可复用的面向对象分析模型,它是一组概念,这些概念反映了在 业务建模中的通用结构,而不是实际的软件实现。分析模式主要来源于对特定的 业务领域的分析,但它既可以与该特定的领域相关,也可以跨越多个领域。 然而目莳人们在应用分析模式的过程中遇到了各种问题,这在很大程度上是 因为没有正确的方法模型指导使用分析模式。本文对分析模式展开深入研究,针 对分析模式在应用中遇到的问题,根据分析模式的特点和作用,综合国内外相关 研究成果,总结出一个将分析模式与u m l 分析方法相结合的分析模式应用方法 模型,分别从建模语言、过程模型、模式运用原则和析取分析模式四个方面对分 析模式的应用方法进行了研究。本文还对知识层与操作层分离、数量、观察、仓 库管理器、账务等分析模式的背景、思想、作用和效果进行研究,并结合仓库管 理器模式和账务模式提出了个新的分析模式仓库管理分析器模式。最后本 文在分析模式应用方法模型的指导下运用这些分析模式对电力物资管理信息系 统库存管理子系统进行分析,建立了分析模型,验证了分析模式的复用效果和方 法模型的有效性。 本文通过对分析模式应用方法的研究,为在面向对象分析中有效运用分析模 式实现分析模型复用提供了指导,从一定程度上解决了应用分析模式时遇到的问 题。 【关键词】分析模式,软件复用,面向对象分析,软件模式 信息系统软件分析中分析模武的研究与应用 a b s t r a c t a b s t r a c t s o f t w a r er e u s ei st h ei n c e s s a n t q u a r r yo f p e o p l ee n g a g e d i ns o f t w a r ew a d ea n di t c a n i m p r o v es o f t w a r ep r o d u c t i v i t y a n ds o f t w a r eq u a l i t y d u r i n gt h e p r o c e s s o f a n a l y z i n g s o f t w a r es y s t e m s p e o p l ec a no f t e nf i n dt h a tt h ea n a l y s i sm o d e l s i nd i f f e r e n t f i e l d sh a v eal o to fr e s e m b l a n c e s ,a n dt h i sm a k e s p e o p l ep a y a t t e n t i o nt ot h er e u s eo f a n a l y s i sm o d e l s a n a l y s i sp a t t e r ni st h et e c h n i q u eu s e dt os o l v et h er e u s eo fa n a l y s i s m o d e l si no b j e c t - o r i e n ts y s t e m a n a l y s i sp a t t e r n s a r er e u s a b l eo om o d e l s ,a n a l y s i sp a t t e r n sa r eas u i to f c o n c e p t i o n w h i c hd o e s n tr e f l e c tt h er e a l i z a t i o no fr e a ls o i b c a r eb u tr e f l e c tt h e u n i v e r s a ls t r u c t u r eo fb u s i n e s sm o d e l a n a l y s i sp a t t e r n sm o s t l yc o m ef r o ms p e c i f i c f i e l d s ,b u tt h e yu s u a l l yc a l la l s ob eu s e di no t h e rf i e l d s n e v e r t h e l e s sp e o p l ee n c o u n t e rs o m ep r o b l e m s d u r i n g t h ec o u r s eo fu s i n g a n a l y s i sp a t t e r n s ,a n dt h i si sp r i m a r yb e c a u s eo fs c a r c i t yo fm e t h o d o l o g yg u i d a n c e t h i st h e s i sr e s e a r c h e sd e e p l yi n t oa n a l y s i sp a t t e r n s ,a i m i n ga tt h ep r o b l e m s o f a n a l y s i s p a t t e r n sa p p l i a n c e ,a c c o r d i n gt oo f t h ec h a r a c t e r i s t i ca n de f f e c to f a n a l y s i sp a t t e r n s , c o n s u l t i n g t h er e s e a r c ho fi n l a n da n do u t l a n d , s u m m a r i z e sa n a n a l y s i sp a t t e r n s a p p l i a n c em e t h o dm o d e lw h i c hi n t e g r a t e sa n a l y s i sp a t t e r n sa n dt h eu m la n a l y s i s m e t h o d t h em e t h o dm o d e lh a sf o u rf a c e t s :m o d e l - c r e a t i n gl a n g u a g e , p r o c e s sm o d e l , a p p l i a n c ep r i n c i p l e ,a n da n a l y s i sp a t t e r ne x t r a c t t h i st h e s i s a l s or e s e a r c h e st h e b a c k g r o u n d ,i d e a , p u r p o s e a n de f f e c to ff i v e a n a l y s i s m o d e l : s e p a r a t i o n o f k n o w l e d g e l e v e la n do p e r a t i o n l e v e l ,q u a n t i t y , o b s e r v a t i o n , s t o c km a n a g e ra n d a c c o u n t , a n db r i n gf o r w a r dan e wa n a l y s i sp a r e m :s t o c km a n a g e a n a l y z e r a tl a s t t h i st h e s i sa n a l y z e st h ei n v e n t o r ys u b s y s t e mo ft h ee l e c t r i cm a t e r i a lm a n a g e m e n t i n f o r m a t i o ns y s t e mu n d e rt h eg u i d a n c eo f t h em e t h o d m o d e l ,c r e a t i n ga n a l y s i sm o d e l a n d v a l i d a t i n gt h er e u s i t yo f a n a l y s i sp a r e r u s a n dt h ev a l i d i t yo f t h em e t h o dm o d e l t h r o u g ht h er e s e a r c ho ft h em e t h o do fa n a l y s i sp a t t e r n sa p p l i a n c e , t h i st h e s i s p r o v i d e st h eg u i d a n c e o fu s i n g a n a l y s i sp a t t e r ne f f e c t i v e l y i n0 0a n a l y s i sa n d r e a l i z i n ga n a l y s i sm o d e lr e u s e ,a n dp a r t l ys o l v e st h ep r o b l e m so fa n a l y s i sp a t t e r n s a p p l i a n c e k e y w o r d s a n a l y s i s p a t t e r n , s o f t w a r e r e u s e ,o b j e c t - o r i e n t a n a l y s i s , s o f t w a r e p a t t e r n 信息系统软件中分析模式的研究应用 第一章绪论 1 1 技术背景 第一章绪论 1 1 1 软件复用 “不要去重复发明轮子”,这句话一直被视为计算机业界的至理名言。在人 类文明的历史长河中,复用本身来说只不过一件普通而又平凡的事,以至通常大 多数词典都没有收录它。但正是复用使人类的智慧和经验得到积累,创造出了如 今的大干世界。 1 1 1 1 软件复用定义 软件复用是指重复使用“为了复用目的而设计的软件”的过程,是在软件开 发过程中避免重复劳动的解决方案1 l 嘲。软件复用包含以下几方面的内容:【l 】【3 】 l 、复用并不等于重复使用。重复使用的行为多种多样。如果是在一个系统 中多次使用一个相同的软件成分,称为软件共享:使用以前的软件版本作为新版 本的基础,加入新功能,适应新需求,称为软件维护:以某平台上的软件为基础, 修改其和运行平台相关的部分,使其运行于新的软硬件平台,称为软件移植;只 有将某软件或其成分用于其它应用系统中,而新系统具有不同功能和用途,才是 真正意义上的软件复用。 2 、被复用的软件成分一般被称作为可复用构件,即具有相对独立的功能和 可复用价值的构件。可以从旧的软件中提取构件,也可以专门为了复用而开发构 件。随着对软件复用理解的深入,构件的概念已不再局限于源代码构件,而已延 伸到了软件开发过程中任何活动所产生的制品,包括项目计划、可行性报告、需 求定义、分析和设计模型、测试用例、软件过程等等。 3 、复用可分为黑盒复用和自盒复用。黑盒复用指对已有构件不需作任何修 改,直接进行复用;白盒复用指已有构件并不能完全符合用户需求,需要根据用 户需求进行适应性修改后才可使用。显然黑盒复用是更理想的复用方式,但在大 多数应用的组装过程中,构件的适应性修改是必需的。目前黑盒复用的应用主要 还局限于用户界面、数据库访问、网络协议、数据传输、算法、多线程、构件等 计算机领域,而在其它业务领域中的复用还是以白盒复用为主体。 4 、软件复用有三个基本问题。一是必须有可以复用的对象;二是所复用的 对象必须是有用的;三是如何去使用被复用的对象。解决好这几个方面的问题才 第一章绪论信息系统软件中分析模式的研究应用 能实现真正成功的软件复用。 1 1 1 2复用的优势 软件复用是软件界追求的目标。作为一顼被人们寄予很高期望的技术,软件 复用有着众多的优点。其中最主要的两点就是软件复用能降低软件的开发成本和 提高软件质量。 l 、降低软件开发成本 通常情况下,应用软件系统的开发过程包含需求、分析、设计、实现、测试、 维护等多个阶段。如果每个应用系统的开发都是从头开始的话,那么在系统开发 过程中就必然会存在大量的重复劳动,其结果就是大量人力、物力和时间的浪费。 通过软件复用,在软件开发中可以充分地利用已有的开发成果,消除重复劳动, 从而提高软件开发效率,降低开发成本。 当然,复用也是有代价的,开发一个可复用的构件比开发一个仅在一个系统 中使用的构件的成本高出许多,因为在开发时必须保证构件更高的质量和更强的 适应性。此外,对构件库的管理与维护、对新进开发人员学习使用构件的培训等 也需要相应的成本。因此复用所带来的降低软件开发成本的效果在短期内很难得 到体现,甚至需要付出更大的代价,但是从长期的角度来看,这种效果是显而易 见的。根据c a p e r sj o n e s 的统计资料表明,在他统计的所有软件项目技术中,整 个生命期内的复用能带来的最高回报率是4 8 个月后达到3 0 0 0 。1 4 1 2 、提高软件质量 软件复用能够提高软件质量的主要原因是因为构件的质量保证工作一般比 非复用的软件更为严格和充分。虽然在现实中,构件中的错误可能、也确实存在, 然而随着每一次复用,错误被发现和消除,构件的质量也随之改善。随时间的推 移,构件也就变成了实质上的无错误。用这样的构件来创建系统,系统的质量必 然要可靠得多。惠普公司作过研究,被复用代码的错误率只有新开发代码的2 2 , 一个包含6 0 复用代码的程序相对于不使用复用的开发有3 5 至5 1 的改善。p 1 可见,复用对交付的软件在质量和可靠性方面确实带来了实质性的收益。 此外复用其它方面的益处还有:使用相同构件( 特别是用户界面构件) 的系 统将对用户体现较多的一致性,并具有较好的互操作性;推动标准化工作,使软 件体系结构、算法乃至开发过程等方面趋于一致;支持原型开发,因为可复用软 件可以为尽快得到一个系统原型提供有效的支持。【l j 1 1 1 3复用的困难 软件复用所能带来的益处是不言而喻的,然而这些益处经常由于组织的障 信息系统软件中分析模式的研究应用第一章绪论3 碍、对软件复用缺乏本质的理解以及较少或没有鼓励和实现复用技术的策略等因 素而被抵消。概括起来,软件复用的困难主要有以下几个方面:1 5 1 1 6 1 l 、技术方面 开发可复用的构件并不是一件容易的事情,需要投入更大的精力,考虑更多 的问题。而积累大量的、可用于不同环境的构件,更不是一件轻而易举的事。如 果开发团队没有一定的技术实力,要开发这样的构件相当困难。 2 、开发人员方面 喜欢自己创造而不喜欢使用别人的东西,这是软件开发人员尤其是技术能力 较强的软件开发人员的一项顽症。很多开发人员仍然相信复用“相对于其价值来 说带来更多麻烦”,经常可以听到技术人员罗列出一个长长的关于“复用软件的 缺点”的清单。 3 、管理方面 由于复用所带来的效果需要较长时间才能显现,因此对于许多急功近利的软 件公司来说复用并没有吸引力。有些公司继续鼓励对复用无促进的方法学( 如功 能分解) ,而不鼓励那些可能对复用有促进的方法学( 如面向对象方法) ,管理者 更愿意维持现状。 4 、领域方面 一个软件通常只解决一个应用领域的问题,但是软件作为一个总体概念,则 面临现代文明社会的几乎每一个领域。软件领域的广阔性造成了软件的多样性, 而不同应用领域的软件之间的差别是非常大的。这种情况使软件开发者很难构造 出对各种领域都能通用的大批可复用构件。 虽然有着这样或那样的困难,但软件复用的前景依然是广阔的。由于近年来 面向对象技术的兴起,为软件复用提供了技术基础,使得后者也得到了巨大的发 展,很多新的复用技术被不断提出,主要包括软件构件技术、领域工程、软件构 架、软件再工程、软件过程、开发系统、c a s e 技术、软件模式等等。i t l 1 1 2面向对象技术 在计算机刚刚在这个世界上诞生的2 0 世纪5 0 年代,由于硬件的限制,人们 为了使硬件的性能得到充分利用,编写软件是非常抽象和棘手的工作。但随着硬 件技术的不断发展,硬件性能得到了极大的提高,用户对于软件的规模和质量要 求也水涨船高,人们在进行软件开发时不再满足于机器般的思维方式,一些新的 软件开发思想随之产生了。 软件开发的面向对象方法起源于2 0 世纪6 0 年代中期的仿真程序设计语言 第一章绪论信息系统软件中分析模武曲研究应用 s i m u l a 6 7 ,然而花了几乎2 0 年的时问才开始被广为使用。但到了9 0 年代,面向 对象软件工程变成了很多软件产品建造者以及不断增长的信息系统和工程专业 人员的首选。随着时间的流逝,面向对象技术正在取代传统的软件开发方法。 1 1 2 1面向对象思想 客观世冕中的应用问题都是由客观世界中的实体及其相互关系构成的。显 然,可以将客观世界中与应用问题有关的实体及其属性抽象为问题空间中的对 象。面向对象思想就是通过提供对象、对象间消息传递等语言机制,让人们在解 空间中直接模拟问题空间中的对象及其行为,为需求建模活动提供了直观、自然 语言支持和方法学指导。 为了在解空间中逼真地模拟现实问题空间并与人类的思维习惯相一致,面向 对象方法学包容了以下核心概念: l 、对象。对象是现实世界中个体或事物的抽象表示,是其属性和相关操作 的封装。属性表示对象的性质。操作是指该对象可以展现的外部服务。 2 、类。类是某些对象的共同特征( 属性和操作) 的表示。对象是类的实例。 3 、继承。类之间的继承关系是现实世界中遗传关系的直接模拟,表示类之 间的内在联系以及对属性和操作的共享。 4 、消息。消息是对象与其外部世界相互关联的唯一途径。消息刺激接收对 象产生某种行为,通过操作的执行来完成相应行为。 简而言之,面向对象= 对象+ 类+ 继承+ 消息。 6 1 1 1 2 _ 2面向对象系统的特点 对象、类、继承和消息四个面向对象技术的基本组成部分反映了面向对象系 统中的三个基本特点:封装性、继承性和多态性。 5 1 1 6 1 l 、封装性 类和从类导出的对象将数据和数据的操作封装在一起,这提供了一系列重要 的益处。首先,数据和操作的内部实现细节对外界信息隐蔽,有助于减少当变化 发生时副作用的传播;其次数据结构和对它们的操作被合并在单个名字的实体 ( 类) 中,提高了对象的内聚性,有利于构件复用;第三,封装性简化了被封装 对象间的接口。 2 、继承性 继承是传统系统和面向对象系统之间的关键区别之一。子类继承了基类的所 有属性和操作,这意味着所有原本对基类设计和实现的数据结构和算法,不需要 进行进一步的工作立即可被子类使用,从而复用被直接实现。 3 、多态性 信息系统软件申分析模式的研究应用 第一章绪论 5 当子类覆写( o v e r r i d e ) 了从基类继承的操作以满足自身的特定需要时,基 类的操作只有签名( s i g n ) 而不是操作本身被传递到子类,于是出现了一系列操 作具有相同的签名的现象,这就是多态。多态是大大减少扩展现存面向对象系统 所需的工作量的特性,它可以避免代码中出现大型c a s e 语言,降低了对象间的 耦合性,使对象更加独立。 1 1 2 3面向对象技术遵循的原则 除了封装性、继承性和多态性等特点外,面向对象技术还遵循一系列的原则, 这些原则确保了软件的可维护性和可复用性:【7 】【g 】 1 、“开一闭”原则( o p e n c l o s e d p r i n c i p l e ) “开一闭”原则是由b e r l r a n dm e y e r 提出的,是面向对象复用的和第一块基 石。内容是:一个软件实体应当对扩展开放,对修改关闭。也就是说在设计一个 模块的时候,应当使这个模块可以在不被修改的前提下被扩展,可以在不必修改 源代码的情况下改变这个模块的行为。 所有软件系统都有一个共同的性质,即对它们的需求都会随时间的推移而变 化。满足“开闭”原则的设计可以给软件系统两个无可比拟的优越性:通过扩 展已有的系统,可以提供新的行为,以满足对软件的新需求,使变化中的系统有 一定的适应性和灵活性;已有的软件模块,特别是最重要的抽象层模块不能再修 改,这就使变化中的系统有一定的稳定性和延续性。具有这两个优点的系统必然 是一个在高层次上实现了复用的系统,也是一个易于维护的系统。 2 、里氏代换原则( l i s k o vs u b s t i t u t i o n p r i n c i p l e ) 里氏代换原则的严格表达是:如果对每一个类型为t l 的对象o l ,都有类型 为t 2 的对象0 2 ,使得以t 1 定义的所有程序p 在所有的对象0 1 都代换成0 2 时, 程序p 的行为没有变化,那么类型t 2 是类型t l 的子类。换言之,一个软件实 体如果使用的是一个基类的话,那么一定适用于其子类,而且它根本不能察觉出 基类对象和子类对象的区别。 里氏代换原则是继承复用的基石。只有当子类可以替换掉基类,软件单位 的功能不会受到影响时,基类才能真正被复用,而子类也才能够在基类的基础上 增加新的行为。 3 、依赖倒转原则( d e p e n d e n c ei n v e r s i o np r i n c i p l e ) 传统的结构化程序设计倾向于使高层次的模块依赖于低层次的模块,抽象层 次依赖于具体层次。依赖倒转原则就是要把这个错误的依赖关系倒转过来。依赖 倒转原则有两种表述的方法,一种是:抽象不应当依赖于细节;细节应当依赖于 抽象。另一种是:要针对接口编程,不要针对实现编程。 第一章绪论信息系统软件中分析模式的研究应用 依赖倒转原则强调一个系统内的实体之间关系的灵活性。基本上,如果设计 人员希望遵守“开闭”原则,那么倒转依赖原则便是达到要求的途径。 4 、接口隔离原则( i n t e r f a c es e g r e g a t i o np r i n c i p l e ) 接口是一种在逻辑上才存在的概念,是一个类所提供的所有方法的特征集 合,接口的划分就直接带来类型的划分。一个接口应当简单地代表一个角色,而 不是多个角色,如果系统涉及到多个角色的话,那么每一个角色都应当由一个特 定的接口代表。准确而恰当地划分角色以及角色所对应的接口,是面向对象分析 和设计的一个重要的组织部分。将没有关系的接口合并在一起,形成一个臃肿的 大接口,是对角色和接口的污染。 5 、合成聚合复用原则( c o m p o s i t e a g g r e g a t e r e u s e p r i n c i p l e ) 合成聚合复用原则就是在一个新的对象里面使用一些已有的对象,使之成 为新对象的一部分;新的对象通过向这些对象的委派达到复用已有功能的目的。 该原则有另一个简短的表述:要尽量使用合成聚合,尽量不要使用继承。这主 要是因为子类可以看到基类的内容,会破坏基类的封装性;而且从基类继承来的 实现是静态的,不可能在运行时间内发生改变,没有足够的灵活性。 6 、迪米特法则( l a wo f d e m e t e r ) 迪米特法则是1 9 8 7 年秋天由i a nh o l l a n d 在美国东北大学为一个叫做迪米特 的项目设计提出的。这条法则实际上是很多著名系统,比如火星登陆软件系统、 木星的欧罗巴卫星轨道飞船的软件系统的指导设计原则。 迪米特法则认为,每一个软件单位对其他的单位都只有最少的知识,而且局 限于那些与本单位密切相关的软件单位。说得更通俗些就是“不要和陌生人 说话”。迪米特法则为降低面向对象软件系统各构件之间的耦合性指明了方向。 1 1 2 4 面向对象技术的优势 对于近年来面向对象技术成为主流,逐渐替代传统的面向过程的结构化开发 方法的原因,有些人强辩说是软件开发人员在技术上的“喜新厌旧”造成的。【5 1 但事实上这个观点过于简单化了,面向对象技术确实导致了一系列内在的优点, 在管理和技术层次均提供了优势。认为面向对象技术的优势主要体现在以下两个 方面:【5 】 l 、面向对象思想更接近于人类认识客观世界的方式 正如前文所说,客观世界中的应用问题都是由客观世界中的实体及其相互关 系构成的,任何实体都通过自身的特征以区别其它实体,通过行为和其它实体发 生关系。在人类看来,实体应该是其特征和行为的主体,实体和其行为之间的关 系应该是主从关系。将这点抽象到问题空间中,就是对象是由属性和操作构成的, 信息系统软件中舟析模式的研究应用 第一章绪论 7 属性和操作都是对象的一部分。在结构化思想所建立的解空间中,通过结构 ( s t r u c t u r e ) 的确可以反映出属性是对象的一部分,但是结构只能作为函数的参 数面不能成为函数的执行者这一点只能得出对象是操作的一部分的结论,于是和 问题空间发生了矛盾,只有借助于相当复杂的方法操纵解空间中的对象才能得到 问题的软件解。这就是所谓的“语义断层”。【6 j 而面向对象思想通过引入对象、 类、继承和结构的概念,使解空间和问题空间保持一致,使计算机能够和人类用 同样的方式认识这个世界,很好地解决了这个问题。 面向对象技术的这个优势带来了深远的影响。一方面它提高了代码的可读 性,使得代码纠错和程序员之间的交流变得容易;而更重要的是它降低了客户与 开发人员之间沟通的难度。造成软件危机的一个很重要的原因就是需求,开发出 的软件和客户所需要的软件背道而驰是屡见不鲜的事,这主要是软件开发人员对 用户需求的理解与用户的本来愿望有差异造成的,而解决这个问题最好的办法就 是让用户和开发人员充分沟通以减少或消除双方理解上的差异。如果采用结构化 方法,用户和开发人员在思维方式上的差异使得双方的沟通变得相当困难,这带 来的后果往往都是相当严重,甚至是致命的。而采用面向对象思想,大家都同样 的思维方式思考问题,这种沟通相对就容易得多。 2 、面向对象技术有助于复用 客观地说,结构化方法和复用之间并不是一对不可调和的矛盾,事实上,有 效地运用过程和函数这两个工具,依然可以达到相当不错的复用效果。但是,相 比面向对象方法提供了类、继承、聚合、多态等多元化的复用手段,结构化方法 的复用手段就过于单一了( 如果把过程看作不带返回值的函数,那么结构化方法 的复用手段其实就只有函数一种) 。而且,封装性和多态性增加了对象的内聚性, 降低了对象间的耦合性,并结合面向对象技术的一些原则,为打造更高质量和更 高复用性的构件从技术上提供了强有力的支持。面向对象方法在思维方式上的优 势也使开发可被复用的构件或复用其它软件的构件更为方便。 1 2 本文的研究内容和工作 1 2 1 本文的研究目的 面向对象技术对开发质量和复用度较高的软件提供了技术上的支持。但是软 件开发没有银弹( s i l v e r b u l l e t ) 9 1 ,面向对象技术也并非解决软件危机中一切问 题的灵丹妙药。只有在开发过程中合理翘使用面向对象技术才能得到应有的效 果。笔者通过实际项目经历感觉到,在使用面向对象技术开发包括企业资源计划 ( e r p ) 、客户关系管理( c r m ) 、管理信息系统( m 【s ) 等信息系统( i s ) 时, 第一章绪论 信息系统软件中分析模式的研究应用 开发人员很容易陷入到对象的海洋中不知所措。如何从大量的信息中合理有效地 抽象出类;如何使分析模型能够有效地实现用户需求;如何有效地借鉴前人和其 它信息系统的宝贵经验,这些都是亟待解决的问题。 通过合理地复用其它软件的分析模型和分析思想是解决这些问题的有效手 段之一,而分析模式( a n a l y s i s p a t t e r n s ) 【lo j 则是实现这种复用的有效工具。分析 模式是一项在面向对象软件系统开发过程中复用其它软件系统的分析模型的技 术。 目前有关分析模式最重要的研究专家是分析模式的提出者m a r t i nf o w l e r ,他 在 a n a l y s i s p a t t e m :r e u s a b l eo b j e c tm o d e l s ) ) 一书中对分析模式的概念和作用进 行了详细的讨论,不仅提出了一些早期的分析模式,还提出了一些支持模式 ( s u p p o r tp a t t e m ) 。支持模式用于处理那些围绕分析模式建立计算机系统的过程 中出现的问题,即如何选择分析模式,应用它们,最终将它们变成现实。m a r t i n f o w l e r 对分析模式进行了仔细的研究,认为分析模式很难按照传统的垂直应用领 域方式进行划分,提出了将分析模式跨领域运用的思想,从而将分析模式与领域 工程区分开来,大大提高了分析模式的应用价值。然而m a r i nf o w l e r 在对分析 模式的描述时没有采用u m l 语言,也没有像g - o f 描述设计模式那样使用一个统 一的框架,从一定程序上限制了分析模式的交流与传播。 另一位著名的分析模式专家是e d u a r d ob f e r n a n d e z ,他的研究主要集中在 新模式的提出上。e d u a r d ob f e r n a n d e z 在信息系统开发上有着极为丰富的经验, 他在m a r t i nf o w l e r 的启发下,运用自己的经验提出了很多有价值的分析模式, 如仓库管理器模式【1 1 】、预定和使用可重用实体模式1 1 2 1 等,成为目前为止提出模 式最多的分析模式专家。e d u a r d ob f e r n a n d e z 在讨论分析模式时,并没有像 m a r t i nf o w l e r 那样用零散的语言来描述分析模式,而是用他自己的描述框架分别 从问题、环境、约束、解决方案、结论、已知应用、相关模式等方面来描述分析 模式,然而他的框架虽然有不少人仿效,但并没有被所有的分析模式专家奉为标 准。此外,e d u a r d ob f e r n a n d e z 还在分析模式语言和语义方面有比较深入的研 究。 在应用领域方面,分析模式依然主要应用于信息系统软件,但从过于的商业 信息系统和管理信息系统延伸到了地埋信息系统( g i s ) t 3 l 中。在国内,甄镭的 研究则将分析模式用于了信息系统升级和整创“】中。 目前对于分析模式的研究主要集中于分析模式提出与改进、分析模式描述框 架、分析模式语言等方面,而对于分析模式的应用方法的研究较为缺乏。然而分 析模式在实际应用中却不像它的孪生兄弟设计模式那样广泛,这恰恰反映了 分析模式的专业性和难用性。本文的研究目的就是要找到一个能在面向对象分析 信息系统软件中分析模式的研究应用第一章绪论 9 中正确使用分析模式的方法和途径。 1 2 2 本文的工作 本文将完成以下研究工作: 1 、对分析模式展开研究,深入探讨分析模式的概念、性质、特点、分类、 复用性,分析了分析模式的研究现状和使用中遇到的问题; 2 、针对分析模式在应用中遇到的困难,根据分析模式的特点和作用,结合 国内外相关研究成果,总结出一个将分析模式与u m l 分析方法栩结合的分析模 式应用方法模型; 3 、对一些经典分析模式的背景、思想、作用和效果进行研究,并结合已有 分析模式提出一个新的分析模式; 4 、最后通过分析模式应用方法模型运用所讨论的经典分析模式对山东省电 力物资管理信息系统进行分析并建立分析模型,用实例说明并验证分析模式的复 用效果和方法模型的有效性。 1 3 文章结构 第一章:绪论。从软件复用和面向对象技术两个方面介绍本文的技术背景, 同时简要介绍本文的工作内容和组织结构。 第二章:分析模式。从面向对象分析、软件模式和分析模式三方面对分析模 式进行了研究,为以后章节奠定理论基础。 第三章:分析模式应用方法模型。针对分析模式在应用中遇到的困难,从建 模语言、过程模型和模式运用原则三方面总结一个将分析模式与u m l 分析方法 相结合的分析模式应用方法模型。 第四章:经典分析模式研究。对一些经典分析模式进行了研究,重点分析和 探讨这些模式的背景、思想、作用和效果,从中总结析取分析模式时应满足的条 件作为对方法模型的补充,并结合仓库管理器模式和账务模式提出一个新的分析 模式仓库管理分析器模式。 第五章:运用第三章总结出的分析模式应用方法模型和第四章研究的经典分 析模式对山东省电力物资管理信息系统进行分析并建立分析模型,用实例说明并 验证分析模式的复用效果和方法模型的有效性。 第六章:总结和展望。全文总结,并提出分析模式有待进一步研究的问题。 0第= 章分析模式信息系统软件中分析模武的研究应用 第二章分析模式 分析模式是面向对象分析技术和软件模式技术的结合,是一项以在新的面向 对象系统中复用其它面向对象系统的分析模型为研究目的的技术,因此对分析模 式的使用必须同时遵循面向对象分析和软件模式的规律。本章从面向对象分析、 软件模式和分析模式本身三个方面来研究分析模式,把握分析模式的特点和作 用,从而为后续研究工作奠定理论基础。 2 1 面向对象分析 分析模式是用于分析的模式,因此它必须用于面向对象分析中。在2 0 世纪 9 0 年代以前,面向对象技术主要局限于程序设计技术,进入了9 0 年代后,面向 对象技术已经渗透到了软件开发过程的每一道工序中。分析就是其中的一道工 序。目前软件工程界流行的面向对象分析方法主要包括b o o c h 方法、r a m b a u g h 方法、j o c o b s o n 方法、c o a d 和y o u r d o n 方法、w n f s b r o c k 方法等【5 】,其中前三 个方法的组合构成了u m l 分析方法。 2 1 1 分析和分析模型 对于分析的定义,各个不同的软件过程( s o f t w a r ep r o c e s s ) 有着不同的见解。 笔者通过比较后认为,r a t i o n a l 统一过程( r u p ) 【15 1 【1 叼对分析的定义是最准确也 是最贴近分析模式中对分析的理解的。 r u p 将软件开发过程分为需求、分析、设计、实现和测试五个工作流。在 分析工作流中,分析人员应通过精化和组织需求捕获阶段所描述的需求来对其进 行分析。这样做的目的是为了更精确地理解需求,也是为了得到一个易于维护且 有助于确定系统结构( 包括构架) 的需求描述。 1 5 j 【嘲 分析最终得到的制品是一种称为分析模型的概念层对象模型,而分析模式正 是一种实现分析模型复用技术。分析模型使用开发人员的建模语言( 如统一建模 语言( u m l ) ) 来描述,提供了更强的表达能力和形式化方法,有利于精化需求, 探究系统的内部,包括其内部的共享资源。分析模型还有助于组织需求,并能提 供一种侧重于可维护的结构,例如对需求变化的柔性及可用性。这种结构不仅有 益于需求的维护,而且还可作为设计和实现工作流中构造系统时的基本输入。应 该注意的是,创建分析模型是对需求进行抽象的过程,主要考虑的是如何使用开 发人员的语言来描述功能性需求( 即普通的业务需求) ;应避免在分析阶段去解 决非功能性需求( 如客户在体系结构、性能上的特殊要求) 和设计与实现上的问 信息系统软件中分析模式的研究应用第= 辛分析模式 题( 如程序设计语言、操作系统、预制框架、遗留系统等) ,这些问题应该推迟 到设计与实现阶段去解决。图2 1 显示了分析模型在软件开发中的地位。 p r o b l e ms p a c e s o l u t i o ns p a c e o o o u 仍 丘 彤 m , o o o u c o u 图2 1 软件开发过程中的分析模型”1 2 1 2 需求、分析和设计 由于分析模式是用于面向对象分析的技术,并不适合于用软件开发的其它阶 段,因此有必要将分析阶段同与之相邻的需求阶段和设计阶段加以区分,从而确 保不会将分析模式用在错误场合。 很多人无法将需求和分析区分开来,认为这两个概念应该是一体的,不可分 割的,这主要是因为需求阶段和分析阶段所要处理的对象都是用户需求:同时, 分析和设计也是一对比较容易混淆的概念,它们之间的类似之处更多,比如都是 探究系统的内部结构、都用开发人员的语言进行描述、分析模型和设计模型般 都表现为类图和交互图等等,甚至在一些微型系统中可以抛开分析直接进入设计 阶段。 事实上,需求、分析和设计应该是软件开发过程中三个截然不同的阶段。需 求描述的是系统的外部视图,其主要任务是捕获需求,包括功能性需求和非功能 性需求,并用客户和开发人员都能够理解的语言对需求进行描述。【l5 】可以用各种 手段描述需求,比如用例( u s ec a s e ) ,用户故事( u s e rs t o r y ) 【l ”,c r c 卡( 类 ,责任协作卡) 等等。此外,需求阶段还要进行风险分析、可行性分析和对需求 划分优先级等工作。 分析阶段描述的是系统的内部视图。分析人员已经不需要去考虑系统应该实 现些什么功能了,而是要考虑该如何去描述这些功能。在分析阶段,分析人员应 第= 章分析模式信息系统软件中分析模式的研究应用 用开发人员自己的语言来描述需求,用面向对象的思想和分析模型来静态或动态 地反映需求和系统的内部结构,建立一个能反映问题本质的概念模型。【1 5 】 到了设计阶段,设计人员虽然也是用开发人员的语言表示需求,但已经不用 再去考虑问题的本质,而是更多地考虑如何有效地去实现分析中得出的概念模 型。如对象如何创建、接口如何设计、消息如何传递等等,因此设计模型是一种 作为实现蓝图的物理模型。【l 5 】 总而言之,如果将分析理解为用抽象的方式描述问题的话,那么需求就是用 具体的方式描述问题,而设计则是就抽象的方式解决问题。m a r t i nf o w l e r 用了一 个“撞球”的例子来说明需求、分析和设计的区别。在这个例子中,需求的结果 就是要求反映出球在碰撞后的速度变化,分析的结果则是动量守恒定律,设计所 要考虑的则是究竟采用牛顿的公式还是爱因斯坦的公式。【l o 】 2 1 3 分析模式与面向对象分析 分析模式是用于面向对象分析中实现分析模型复用的软件模式,而且它本身 就是可复用的面向对象分析模型,因此分析模式本身具有分析模型的一切特点, 比如它采用的是抽象的语言而不是具体的语言、它用于描述问题而不是解决问题 等。因此分析模式只能用于分析阶段,而不能用于需求和设计阶段;用分析模式 只能用于帮助建立用开发人员的语言描述需求的分析模型,用分析模式去捕获需 求或者实现需求都是错误的。 2 2 软件模式 软件复用是软件界追求的目标,人们正在努力使软件复用变为现实,但是在 具体实现技术上还不成熟。为了促进软件的复用,软件工程专家引入了一项可复 用的技术来捕捉并描述软件业多年来成熟的软件知识和经验。这项技术就是软件 模式( s o f t w a r e p a t t e r n ) 。软件模式的种类很多,而分析模式则是其中的一种。 2 2 1软件模式定义 在软件工程界,受到普遍认可的模式定义是由d i r kr i e h l e 和h e i n z z u l l i g h o v e n 给出的。他们认为,软件模式是指在特定的环境中,从某个具体的、 重复发生的形式中得到的一种抽象。简单地说,软件模式关注那些在不同的应用 中,以不同的面貌重复出现,而实质却相同的东西。而模式的集合则构成了模式 语言。【5 】 1 9 1 模式可视为问题空间到解空间的映射,其映射关系如图2 1 所示。一个复杂 的问题空间r 可被分解为多个问题域,即( r ,尼,b ) 、模式集合f 尸, b ,r ) 将各个问题域映射到与其相应的解域( 研,品) ,这些解域 信息系统鼓件中分析模式的研究应用第= 章分析模式 1 3 可以组合成一个解空间s 。 厂 、 烈映射i p , 映射 【 量 、 ,l ii f 厂八lp ,l f& ii r 八i p ,l f 岛 、 li r n ip i 晶 ii 问题空间模式空问解空间 图2 - 2 模式的应用方式同 应用模式的进程可形式化地描述如下: 1 、将问题空间冉分解成为个问题域:r = r + 彤+ + b ; 2 、对每个问题域届,寻找将置映射到解域& 的模式只: 只= f ( 矗,s )“= l ,2 ,r ) 其中,是从问题域风到解域s 的映射函数; 3 、按照合适的方式重新组织解域s = s l + 岛+ + 晶,得到解空间s 。 通常情况下,问题空间难以分解,应用模式可以指导设计者对问题进行分解, 并帮助找到合适的问题解。 2 2 2 软件模式的成份 一般而言,一个软件模式包括以下四个基本成分:1 2 l 、模式名称( p a t t e r n n a m e ) 用于描述一个设计问题、其解决方案和效果的词。它使人们可以在更高的抽 象层次上进行设计并交流设计思想。 2 、问题( p r o b l e m ) 描述何时使用模式,解释问题及其背景,还可以包括该模式的适用条件。 3 、解决方案( s o l u t i o n ) 描述设计的基本要素,它们的关系、各自的任务以及相互之间的协作。 4 、效果( c o n s e q u e n c e s ) 描述应用该模式所得到的效果和所需要做的权衡取舍。 第= 章分析模式信息系统软件中分析模式的研究应用 从软件模式的成份中可以看出,一个软件模式的应用范围是有限的。无论在 提出还是在应用一个软件模式时,必须弄清模式所能解决的问题和达到的效果, 否则很容易造成“模式滥用”,即在不该使用模式的时候使用模式。 2 2 3 软件模式的作用 目前软件模式的种类很多,有设计模式1 2 5 1 、分析模式、反模式口酊、体积结 构模式【2 8 】1 2 9 1 、有效需求模式

温馨提示

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

评论

0/150

提交评论