




已阅读5页,还剩58页未读, 继续免费阅读
(控制理论与控制工程专业论文)基于net的报表生成系统设计.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 报袭是人们在r 常生活中对巢类相关信息进行集中处理的羹要手段, 乍为金敛售惠化不可缺少熬部分,其重甏性积磐遍应用性日灏曼现。文中 使用完全面向对象语言c # 设计实现了通用报表系统 幽予课题豹要求弱麓今掇表系绞熬缺点,文中采掰完全秀发方式竣 计系统系统使用统一建模语言避行多方位的建模,使所要设计的结构和系 统静行为海遥超来:筏礤中应嗣了一些已经用予生产实蔑的设诗穰式,使系 统易于扩展和复用:系统文件使用x m l 格式做为存储介质,解决了转换成其 它格式的问题 系统精心的设计了一些结构,通过这些结构完成了搬表系统的表头多 样化设计、统一液体多种数据源设计、与用户的复杂交互设计、报表文件 豹读写设诗翻摄表熬打印设计。在系统中实现了程痔中鑫对象之耀豹低糕 台性,易于变化对象的封装性,以此来保证系统的可扩展性、可插入性和 可复焉耄妻。 关键字 搬裘 e # 统一建模语言( l 、i l ) 设计模式面向对象扩展标记语言( x 。i l ) a b s t r a c t a sa ni n d i s p e n s a b l ep o r t i o no fe n t e r p r i s e i n f o r m a t i o np l a t , r e p o r ti s o n eo ft h ei m p o r t a n tw a y si nc o l l e c t i n ga n da n a l y z i n gt h e e o r r e l a t i v ei n f o r m a t i o n ,u h i l e i t se s s e n t i a l i t y a n du n i v e r s a l a p p l i c a t i o nh a v eb e e nv i s u a l i z e dd a yb yd a y i np e o p l e sl i f e c # , ac o m p l e t eo b j e c t o r i e n t e dc o m p u t e rl a n g u a g e ,i st h em a i nl a n g u a g e u s e di nt h es y s t e m t h e p r o j e c tr e q u e s t a n dt h es h o r t c o m i n go fr e p o r ts y s t e m n o w a d a y s ,t h e ym a k eu su s ef u t 卜d e v e l o p p e dm o d et od e v e l o ps y s t e m t h e s y s t e mu s e st h eu n i f i e d o d e l i n gl a n g u a g et oc o n s t r u c tv a r i o u sm o d e l , w h i c hc o m m u n i c a r e ss t r u c t u r et ob ed e s i g n e dw i t hs y s t e ma c t i o n s o m e d e s i g np a t t e r n sa d o p t e di nt h ec o d em a k es y s t e m e x t e n s i b l ea n dr e u s e d 。 t h ex m lf o r m a tu s e di nt h es y s t e mf i l ea sm e m o r ym e d iu ms o b e st h e p r o b l e m sw h i c hc o n v e r t oo t h e rf o r m a t t h es y s t e md e s i g n sg i n g e r l i n e s saf e ws t r u c t u r e st h a ta c c o m p l i s h t h ed i v e r s i f i c a t i o na b o u tt h eh e a do fr e p o r t ,u n i f yv a r j o q so fd a t a s o u r c ei nt h eb o d yo fr e p o r t ,e x c h a n g ei n f o r m a t i o nw i t hu s e r ,r e a d a n dw r i t et h er e p o r tf i l ea n dp r i n tt h er e p o r t d u i n gt h es y s t e m d e s i g n i n g ,w es h o u l dd ot h eb e s tt oe n s u r et h ec o u p l i n ga b o u to b j e c t s l o w l y i n ga n dd ot h eb e s tt ob o xt h eo b j e c tw h i c hi8c h a n g e de a s i l y , w h i c hc a ns u r es y s t e me x t e n s i b i l i t y 、f t e x b i l i t ya n dp l u g g a b i l i t y 。 k e y w o r d s : n 阱f r a m e w o r k r e p o t t f o r m s c # o b j e c t o r i e n t e d d e s i g np a t t e r n l j n i f l e dm o d e l i n gl a n g u a g e e x t e n s i b l e , l a r k u pl a n g u a g e 第啦绪论 第一章绪论 n e t 框架是一种新的计算平台,它是在“追求互操作”战略目标下推出的 一种用于构建、配置、运行网页服务和应用程序的多语言环境。n e t 框架代表 了视窗环境下网络丌发工具的未来,它简化了在高度分布式 n t e r n e t 环境中 的应用程序丌发,也预示了工业界计算机辅助发展道路的前进目标。n e t 框架 实际上封装了操作系统使应用程序( 包括网页服务和应用程序,网页服务也称 为w e b 服务) 与操作系统的具体工作( 如文件处理、内存分配) 相隔离。同时,n e t 框架高度集成跨平台的接口技术、组件技术和数据库等。由此,在n e t 框架下 开发的应用程序可以在多种硬件和操作系统之间转移和协作。【”n e t 框架旨在 实现下列目标: 提供一个一致的面向对象的编程环境,而无论对象代码是在本地存 储和执行,还是在本地执行但在i n t e r n e t 上分布,或者是在远程 执行的。 提供一个将软件部署和版本控制冲突最小化的代码执行环境。 提供一个保证代码安全执行的代码执行环境。 提供一个可消除唧本环境或解释环境的性能问题的代码执行环境。 使开发人员的经验在面对类型大不相同的应用程序时保持一致。 按照工业标准生成所有通讯,以确保基于n e t 框架的代码可与任何其他 代码集成。 n e t 战略将在以下三个方面对软件业产生深远的影响: 对最终用户。用户将完全摆脱人为的硬件束缚:用户可以自由访问、 自由查看、自由堕用自己的数据,而不是束缚在便携式电腑的方寸 空间一可通过任坷桌面系统、任何便携式电脑、任何移动电话或p d a 进行访问,并可对其进行跨应用程序的继承。 对丌发人员:丌发人员将能应用n e t 技术创建出全新的各种应用程 序,从而大幅度提高软件生产率,并能使人们可以从任何地点、任 何设备都可访问其个人数据和应用程序。 蚺一章绪论 对企、皿。n e t 把庭员、客户和商务应用程序整合成一个协调的、能 进行智能交日:的整体。 1 1 n e t 的组成和特性 l 1 1 n e t 的组成 n e t 框架是一个多语言组件开发和执行环境,它由以下三个主要部分组成: 1 ) 公甚语言。运行时。在组件运行过程中,运行时负责管理内存分配、启动或删 除线程和进程、实施安全性策略、同时满足当前组件对其它组件的需求。在 丌发阶段,运行时的作用有些变化:与现今的c o m 相比,运行时的自动化程 度大为提高,映射功能将锐减开发人员将业务逻辑程序转化成可复用组件的 代码编写量。n e t 框架的关键作用在于,它提供了一个跨编程语言的统 编程环境,这也是它能独树一帜的根本原因。 2 ) 统一的编程类。e t 框架为开发人员提供了个统一、面向对象、层次化、 可扩展的类库集( a p i ) 。现今,c + + 丌发人员,j a v a 开发人员,v i s u a lb a s i c 用户使用的都是不同的类库。而n e t 框架就统一了微软当前的各种不同类 框架。这样,丌发人员无需学习多种框架就能顺利编程。而且通过创建跨编 程语言的公共a p i 集,n e t 框架可实现跨语言继承性、错误处理功能和调 试功能。 3 ) 活动服务器页面( a s p 一) :a s p + 是使用n e t 框架提供的编程类库构建而成的, 它提供了w e b 应用程序模型,该模型由一组控件和一个基本结构组成。开发 人员可以直接使用a s p 一控件集,而这些控件将用户界面转换成h t m l 格式 ( x m l ) 后再发送给浏览嚣。a s p + 还提供一些基本结构服务,这些服务大大 减少了丌发人员要编写的代码量,并使应用程序的可靠性得到大幅度提高。 1 1 2 n e t 的特性:公共语言运行库的功能 堕:坚! 些叁量塑1 堡苎 里! 堕堕 公共语高运行库管理内存、线程执行、代码执行、代码安全验证、编译以 及其他系统服务。这些功能是在公共语言运行库上运行的托管代码所固有的。 至。,二安全性,取决于包括托管组件的来源在内的一些因素,托管组件被赋 予不同程度的信任度。所以即使用在同一活动应用程序中,托管组件既可能执 行文件访问操作、注册表访问操作或其他须小心使用的功能,也可能不能执行 这些功能。 运行库强制实施代码访问安全。运行库还通过实现称为通用类型系统( c t s ) 严格的类型验证和代码验证基础结构来加强代码可靠性。各种m i c r o s o f t 和第 三方语言编译器生成符合c t s 的托管代码。托管代码可在严格实施类型保证和 类型安全的同时使用其他托管类型和实例。 此外,运行库的托管环境还消除了许多常见的软件问题。自动内存管理解 决了两个最常见的应用程序错误:内存泄漏和无效内存引用。 运行库还提高了开发人员的工作效率。以n e t 框架为目标的语言编译器 使得用该语言编写的现有代玛可以使用n e t 框架的功能,这大大减轻了现有 应用程序的迁移过程的工作负担。 托管和非托管代码之间的互操作性使开发人员能够继续使用所需的c o m 组件和d l 。 运行库旨在增强性能:暴管公共语言运行库提供许多标准运行库服务,但 是它从不解释托管代码一曾i * 为实时( j i t ) 编译的功能使所有托管代码能够以 它在其上执行的系统的本机遘言运行。同时,内存管理器排除了出现零碎内存 的可能性,并增大了内存引习噩域以进一步提高性能。 最后,运行库可由高陛能的服务器端应用程序( 如m i c r o s o f ts q ls e r v e r 和i n t e r n e t 信息服务cii 承载。此基础结构使您在享受支持运行库宿主的 行业最佳企业服务器的优毯| 兰能的同时,能够使用托管代码编写业务逻辑。 1 1 3 服务器用程序开发 在托管领域中,服务器立用程序是通过运行库宿主实现的。非托管应用 程序承载公足语言运行熏看苔使自定义的托管代码可以控制服务器行为。此 阿北i 业人学坝l 。论史第一章绪论 模型在获得主服务器的- 盹能和可伸缩性的同时提供给公共语言运行库和类库的 所有功能。 下面的插图显示在不同服务器环境中运行托管代码的基本网络架构。在应 用程序逻辑通过托管代码执行时,服务器( 如i i s 和s q ls e r v e r ) 可执行标 准操作。 a s p n e t 是使丌发人员能够使用n e t 框架开发基于w e b 的应用程序的 宿主环境。但是,a s p n e t 不止是一个运行库宿主;它是使用托管代码开发w e b 站点和通过i n t e r n e t 分嘶i 的对象的完整结构。w e b 窗体和x m lw e bs e r v i c e s 都将ir s 和a s p n e t 用作也用程序的发布机制,并且两者在n e t 框架中都 具有支持类集合。f 8 l x m lw e bs e r v i e e s 作为基于w e b 的技术的重要发展,是类似于常见w e b 站点的分布式服务器端应用程序组件。但是,与基于w e b 的应用程序不同,x m l w e bs e r v i c e s 组件不具有l i 并且不以浏览器为目标。相反,x m lw e bs e r v i c e s 包含旨在供其他应用程守使目的可重用的软件组件。因此,x m lw e bs e r v i c e s 技 术萨迅速地将应用程序开发和部署推向高度分布式i n t e r n e t 环境。 1 2c j ! j 介绍 c # 是一种新的面同对象缟程语言,c # 的重要性体现在两个方面: 它是专门为与m i c r o s o f t 的n e t f r a m e w o r k - - 起使用而设计的( 功能全 面的平台,用于分竹式应用程序的开发、部署和执行) 。 它是一种基于现代吾向对象设计方法的语言,在设计它时,m i c r o s o f t 还研究了其他类f 奠语言的经验,这些语言是近2 0 年来面同对象_ : 5 8 则 化。业人学坝i 论义第一章绪论 得到广泛应用以来丌发出来的。 c # 就本身而言只是一种语言,尽管它是用于生成面向n e t 环境的代码,但 它本身不是n e t 的一部分。一些特性出n e t 支持,但c # 不支持。而另一些 特性c # 支持,n e t 却不支持( f f , j 女n 运算符重载) 。实际上,c # 为希望建立健 全的n 层客户机服务器应用程序的公司提供了一个绝佳的机会,它与a d o n e t 合并后,就可以快速而经常地访问数据库了,并且一旦为新工程建立了数据库 模式,c # 就会为执行一层数据访问对象提供一个极好的媒介,每个对象都能提 供对不同的数据库表的插入、更新和删除访问。c # 为组件之间的通信封装了杂 乱的信息,让开发人员的注意力集中在把数据访问对象组合在一起,在方法中 精确地强制执行公司的业务规则。而且使用属性,c # 业务对象可以配备方法级 的安全检查、对象池和由c o m + 服务提供的j i t 活动。并且,n e t 附带的实 用程序允许新的n e t 业务对象与原来的c o m 组件交互。【2 1 1 2 1c 捍与c + + 的联系与区别 在讨论c # 为我们带来令人振奋的新特性的时候,先让我们把它和c 做一 个对比,看看其异同之处: c # 与c + + 的联系: c # 与c + + 的语法:虽然有些小的区别,但还是又很多相同之处; 控制流:c # 和c - t 利用相同的语句来控制执行流,工作方式基本相同。 异常处理:c ;的异常处理与c + + 相同,但c # 支持f i n a l ”块并且给要 抛出的对象类型强加了一些限制。 继承模式:c = 中类的继承方式与c + + 相同,相关概念的执行也相同, 如抽象类和虚拟函数。 c # 与c + + 的区别: 编译目标:c + - 代码经常编译成汇编语言。而c # 则编译成中间语言( i l ) 它与j a v a 的字节代玛有些相似。 内存管理:c :将丌发人员从已账式的内存管理任务中解放出来,不再 需要显式地删除动态分配的内存,而c 十+ 则要这么做,无耳j 存储单元 两北r 业人学倾i 论空 第一币绪论 收集器将周期性地清空不再使用的内存,为了使这一功能简便的执 行,c 邯艮制了存储在堆栈中变量的使用。 指针:c # 中指针的运用可能与c + + 一样但它只用于已特别标记为应 用指针的代冯块中。 运算符重载:c # 中可用来显式重载的运算符比c 要少,很大程度上 是因为c # 编译器是运用一些定制的基本操作符重载( 如= ) 来自动计 算出组合操作符的重载( 如+ = ) 。 库:c + + 和c # 都依赖于扩展库的出现,a n s ic + + 依赖于标准库,c # 依 赖于,n e t 基类。而n e t 基类是以单一的继承为基础,而标准库是以 继承和模板为基础;a n s ic + + 的库和语言本身是分离的,c # 中则是互 相依靠的,关系更为紧密。 目标环境:c ;是基于g u i 的环境下专门为编程和背景服务而设计的。 这与语言本身无关而是反映在基类库的设计中。相比较,c + + 是在 命令行用户界面时期被开发的,c # 和标准库都不支持g u i 元素。在 w in d o w s 中,c 一必须直接或间接地依靠w i n d o w sa p i 来实现这一支 持。 预处理指令:c = 包含一些预处理指令,它的语法和c + + 一样。但c # 的预处理指令少得多,因为c # 的其它语言特性使得这些指令不再重 要。 枚举:c # 的枚举比c + + 中枚举的功能更为广泛。它们可支持不同的属 性与方法。要注意的是,只有当代码编译为本机可执行代码时,这一 支持彳存在于源代码中。枚举仍是作为基本的数字类型来执行的,所 以不会存在性能上的损失。 析构函数:当析构函数被调用后,c # 不能保证它的执行,不可以在 析构函数中放置代码,而c + + 则可以。析构函数在c # 中没有像在c 十+ 中那么重要: 类与结构:c = 正式区分了类和结构。类和结构的存储方式不周,结构 不支持继承= 北i 、眦人学坝i 论文第章绪论 1 2 2c 撑的优点 c # 在带来对应用程序的快速开发能力的同时,并没有牺牲c c + + 程序员所关 心的各种特性。它忠实地继承了c c + + 的优点。c # 是专门为n e t 应用而丌发的 语古。这从更本上保证了c :与n e t 框架的完美结合。在n e t 框架的各种优点在 锚中表现的淋漓尽致。 简洁的语法。在缺省的情况下,c # 的代码在n e t 框架提供的“可操 控”环境下运行不允许直接地内存操作。它所带来的最大特色是没 有了指针( 要用的话也可以,不过要事先声明一下,告诉编译器一声) 。 与此相关的,那些在c + + 中被疯狂使用的操作符( 例如:一 ) 已 经不再出现。c = 只支持一个“”,对使用者来说,现在需要理解的仅 仅只是名字嵌套而已。 精心的面向对象没计。嘣具有面向对象的语言的一切特性:封装、继 承与多太,这并不出奇。然而,通过精心地面向对象的设计,从高级 商业到系统级应用,c # 是建造广泛组件的绝对选择。装箱与拆箱机制 就是这种精心设计的成果。而且c # 改c + + 的令人头晕的多继承为单继 承,避免了类型定义的混乱。c # 没有全局函数、没有全局变量,也没 有全局常数。所有的代码都封装在个一个的类当中。整个c # 的类 模型是建立在x e t 虚拟对象系统的基础之上,其对象模型是n e t 基 础构架的一部分而不再是其本身的组成成分。c # 式人们在功能与效 率的杠杆上人们终于找到了支点。 与w e b 的紧密结合:c # 中s o a p 的使用使得c # 克服了不能与b 紧密 结合的缺陷,从而茔大规模深层次的分布式开发从此成为可能。由于 有了w e b 服务框絮的帮助,对程序员来说,网络服务看起来就像是 c # 的本地对象。程亭员们能够利用他们已有的面向对象的知识与技巧 丌发w e b 服务:仅需要使用简单的c # 语言结构,c # 组件将能够方便 为w e b 服务,并宄:a :它们通过i n t e r n e t 被运行在任何操作系统j :的 任何语言所调用: 究全的安全性与巷:吴处理。语言的安全性与错误处理能力是衡器一 7 ,叮北q q 、j k 人学坝i j 论文 第一常绪论 种语言是否优秀的重要依据。错误在所难免,有的错误会带来严重的 后果。c # 的先进的设计思想可以消除软件开发中的错误,并提供了包 括类型安全在内的完整的安全性。c # 会帮助开发者通过更少的代码完 成相同的功能,这既减轻了工作量,又有效地避免了错误的发生。 版本处理技术。c # 提供内置的版本支持来减少开发费用,使用c # 将 会是开发人员更加轻易地开发和维护各种商业应用。升级软件系统中 的组件( 模块) 是一件容易产生错误的工作。在代码修改过程中可能 对现存的软件产生影响,很有可能导致程序的崩溃。版本处理技术可 以保证复杂的软件可以被方便的开发和升级。 灵活性和兼容性。在简化语言的同时c # 并没有失去灵活性。c # 允许使用非安 全的代码,在这个代码块中照样可以使用指针,可以对内存直接操作:而且, c # 还提供了更安全的具有指针功能的类型:委托( d e l e g a t e s ) 。而且c # 允许与 c 风格的需要传递指针型参数的a p i 进行交互操作,d l l 的任何入口点都可以 在程序中进行访问。c 4 遵守n e t 公川语言规范( c l s ) ,从而保证了c # 组件与 其它语言2 1 1 t 1 :i 3 的互操作性。元数据( m e t a d a t a ) 概念的引入既保证了兼容性, 义实现了类型安全。【l 叫 1 3 统一建模语言 建模是丌发优秀软件的所有活动中的核心部分,其目的是把所要设计的结 构和系统的行为沟通起来,并对系统的体系结构进行可视化和控制。建模是为 了更好地理解_ :i f 在构造的系统,并经常提供简化和复用的机会。统一建模语言 ( u m l ) 是一种用于对软件密集型系统的制品进行可视化、详述、构造和文档化的 图形语言。u m l 给出了一种绘制系统蓝图的标准方法,其中即包括概念性的事物, 如业务过程和系统功能,也包括了具体的事物,如用特定的编程语言编写的累、 数据库模式和可复用的软件构件。u m l 描述了一个系统的静态结构和动态行为, 它将系统描述为一些离散的相互作用的对象并最终为外部用户提供一定的功能 的模型结构。静念结构定义了系统中的重要对象的属性和操作以及这些对象之 问的相互关系。动态行为定义了对象的时间特性和对象为完成目标而相互进行 两北下业人学顺l j 论文 第一币绪论 通信的机制。从不同但相互联系的角度对系统建立的模型可用于不同的目的。 它是为支持大部分现存的面向对象开发过程而设计的。 为了理解u m l ,需要形成一个语言的概念模型。这要求学习建模的3 个主要 要素:u m l 的基本构造块、支配这些构造块如何放在一起的规则和一些运用于整 个u m l 的公共机制。u m l 的词汇表包含3 种构造块:事物、关系、图;事物是对 模型中最具有代表性的成分的抽象,在u m l 中有4 种事物: ( 1 ) 结构事物:是u m l 模型中的名词。它们通常是模型中的静念部分,描述 概念或物理元素。例如:类、接口、协作等。 ( 2 ) 行为事物:是u l 模型的动态部分。它们是模型中的动词,描述了跨越 时间和空间的行为。交互和状态机就是行为事物。 ( 3 ) 分组事物:是u m l 模型的组织部分。它们是一些由模型分解成的“盒子”。 包是u m l 中最主要的分组事物。 ( 4 ) 注释事物:是u 1 , i l 模型的解释部分。这些注释事物用来描述、说明和标 注模型的任何元素。注解是l , i l 中主要的注释事物。 关系把事物结合在一起,l m l 中有4 种关系,用它们可以写出结构良好的模 型。 ( 1 ) 依赖关系:是两个事物间的语义关系,其中一个事物( 独立事物) 发生变 化会影响另一个事物( 依赖事物) 的语义。 ( 2 ) 关联关系:是一种结构关系,它描述了一组链,链是对象之间的连接。 聚合是一种特殊类型的关联它描述了整体和部分间的结构关系。 ( 3 ) 泛化关系:是一种特殊一般关系,特殊元素( 子元素) 的对象可代替一 般元素( 父元素) 的对象。用这种方法,子元素共享了父元素的结构和行为。 ( 4 ) 实现关系:是类元之间的语义关系,其中的一个类元指定了由另一个类 元保证执行的契约。有两种地方要遇到实现关系:一种是在接口和实现它们的 类或构件之唰;另一种是在用况和实现它们的协作之间。 图聚集了相关的事物,是一组元素的图形表示。为了对系统进行可视化, 。一t 以从不同的角度画图,这样图是对系统的投影。u m l 中有8 种基本图,而其中 的5 种在建模上很重要: 曲北】一业人学坝i 。论义 辩帝绪论 ( 1 ) 类图:展现了一组对象、接口、协作和它们之间的关系。类图给出系统 的静态设计试图。 ( 2 ) 用况图:展现了一组用况、参与者( 一种特殊的类) 及其它们之间的关系。 用况图给出系统的静态设计视图或静态进程视图。 ( 3 ) 交互图:展现了一种交互,它由一组对象和它们之间的关系组成,包括 在它们之间可能发送的消息。它具体表现为两种图:协作图( 强调收发消息的对 象的结构组织) 和顺序图( 强调消息的时间顺序) ,这两种图是同构的,它们是可 以互相转换的。 ( 4 ) 状念图:展现了一个状态机,它由状态、转换、事件和活动组成。它对 于接口、类或协作的行为建模尤为重要,而且它强调对象行为的事件顺序,这 非常有助于对反应式系统建摸。 ( 5 ) 活动图:是一种特殊的状态图,它展现了在系统内从一个活动到另一个 活动的流程。它对于系统的功能建模特别重要,并强调对象间的控制流程。 还有对象图、构件图和实施图这旱就不介绍了。 u m l 规则使创建的模型在语义上前后一致,并且与所有的相关模型协调一 致,它的语义规则有:命名、范围、可见性、完整性、执行。规格说明、修饰、 通用划分和扩展机制是u m l 中贯穿整个语言且一致应用的公共机制,它们使得 u m l 变得较为简单。 静态建模机制: 任何建模语言都以静态建模机制为基础,标准建模语言u m l 也不例外。u m l 的静态建模机制包括用况图、类图、对象图、包图、构件图和实施图。这罩着 重介绍一下用况图和类图。 一个用况代表一个系统或系统的一部分的行为,是对一组动作序列的描述, 系统执行浚动作序列( 其中包括变体) 来为参与者产生一个可观察的结果值。 4 1 你可以用用况来描述你正在开发的系统想要实现的行为,而不必说明这些行为 如何实现。以字处理软件为例,i j 哿某些正文置为黑体”和“创建一个索引”便 是丽个典型的用况。用况为丌发者提供了一种途径以使他们与系统的最终用户 和领域专家产生公共的理解:另外,用况还帮助我们在开发过程中验证体系结 两北t 业人学坝i j 论殳鹁一币绪睑 构,并随着系统的演化对系统进行校验。用况图用于对系统、子系统或类的行 为进行建模,每张图都显示一组用况、参与者以及它们之间的关系。在u m i ,中, 用况表示为一个椭圆。下图显示了一个金融贸易系统的用况图。其中,“风险分 析”,“交易估价”,“进行交易”,“设置边界”,“超越边界的交易”“评价贸易”, “更新帐目”等都是用况的实例。 圈1 用倒圈 、 囊且 类是任何面向对象系统种的最重要的构造块。类是对一组具有相同属性、 操作、关系和语义的对象的描述。用类捕获f 在开发的系统的词汇,这些类可 以包括作为问题域的一部分的抽象,也可以包括构成实现的那些类。结构良好 的类具有清晰的边界,并形成了整个系统的职责均衡分布的一部分,当为系统 创建很多类时,应该考虑这些类的相互协作方式,并相应地重新分配它们的职 责,以使协作中没有哪个类的职责过多或过少。在u m l 中,类和对象模型分别由 类图和对象图表示,而类图是面向对象设计的核心,类包含的主要元素是名称、 属性和操作。在图形上,把一个类画成一个矩形。类图是顶点和弧的集合,描 述系统中类的静态结构。类图不仅定义系统中的类,表示类之间的关系如关联、 依赖、聚合等,也包括类的内部结构( 类的属性和操作) 。它描述的是一种静态 关系,在系统的整个生命周期都是有效的。下图是一个学校和校内部门的类图, 表示了一个学校应该有一个以上的部门。 属性、 北i 。、世人学坝i 。论义笫一章绪沦 u m l 的动态建模机制关注系统的动态行为,它包括状态图、顺序图、协作图和活 动图,下面我们着重介绍一下状态图和交互图中的顺序图。 在面向对象技术中,对象| h j 的交互是通过对象间消息的传递来完成的。在 u m i 的所有动态模型中均用到消息这个概念。通常,当一个对象调用另一个对象 中的操作时,即完成了一次消息传递。当操作执行后,控制便返回到调用者。对 象通过相互间的通信( 消息传递) 进行合作,并在其生命周期中根据通信的结果 不断改变自身的状态。【3 】 所有对象都具有状态,状态是对象执行了一系列活动的结果。当某个事件发 生后,对象的状态将发生变化:状念图用来描述一个特定对象的所有可能状态及 其引起状态转移的事件,显示的是从状态到状态的控制流,它用于对一个对象 的生命期中的行为建模。大多数情况下,状态图包括对反应型对象的行为建模; 一个反应型对象时这样一个对象,它的行为是通过对来自它的语境外部的事件 作出反应柬最佳刻画的;反壹型对象具有清晰的生命期,它的当前行为受它的 过去行为影响。状态图中定义的状态有:初态、终态、中间状态和复合状态。 页序图用来描述对象之倒动态的交互关系,着重体现对象问消息传递的时 削顺序。顺序图存在两个轴:水平轴表示不同的对象,垂直轴表示时间。顺序 图中的对象用一个带有垂直壶线的矩形框表示,并标有对象名和类名。垂直虚 线是对象的生命线用于表示在某段时间内对象是存在的。对象间的通信通过 在对象的生命线间画消息来表示。消息的箭头指明消息的类型。 1 4 可扩展标记语言x m l 1 4 1x m l 起源 x m l ( e x t e n s i b l e 、l a r k - :pl a n g u a g e ,可扩展置标语言) 是由w 3 c ( w o r l dw i d e w e bc o n s o r t i u m ,互联网黟台组织) 于1 9 9 8 年2 月发布的一种标准,是s g m 。 ( s t a n d a r dg e n e r a ! iz e d 1 i 譬k u pl a n g u a g e 标准通用置标语言) 的一个简化 子集。由于它将s g l i 的丰富功能与h t m l 的易用性结合到了w e b 的应用中,以 一种f7 r 放的自我描述_ 方式毛义了数据结构,在描述数据内容的同时能突出x , 3 绱 i m 北11 l k 人学f | l ;! i 。论立鹃一驻绪论 构的描述从而体现出数据之问的关系。这样所组织的数据对于应用程序和用 户都足友好的、川操作的。 x m i 。强凋的是描述数据内容的组织存放结构。你可以用x m l 来定义在你的数 据文件l f i ,数据是如何组织和安排的。通过这些组织结构信息,可以来引导不 同的数据的使用者将其关心的数据内容提取出来,用于各自的目的。x m 能够成 功的一个关键就是其将数据内容与应用分开从而提高效率的思想。当初数据库 提出的思想就是为了将数据咀独立于数据使用目的方式存放,以达到被不同的 应用程序使用的目的。在这旱我们可以看到,x m l 与数据库有异曲同工之妙,只 不过x m l 是应用在提高网络上的数据可重用性和数据交换的效率方面。 5 1 随着电子商务、电子出版、远程教育等基于w e b 的新兴领域的全面兴起使 得传统的w e b 资源更加复杂化、多样化。同时,人们对w e b 服务功能的需求也 达到更高的标准,传统的 q t m l 由于自身特点的限制,不能有效地解决这些问题: 作为一种简单的表示性语言,它只能显示内容而无法表达数据内容。而这一点 恰恰是电子商务、智能搜索引擎所必需的。另外,h t m l 语言不能描述矢量图形、 数学公式、化学符号等特殊对象,在数据显示方面的描述能力也不尽如人意。 最重要的是:h t m l 只是s g m l 的一个实例化的子集,可扩展性差,用户根本不能 自定义有意义的置标供他人使用。这一切都成为w e b 技术进一步发展的障碍。 s g m l 是一种通用的文档结构描述置标语言,为语法置标提供了异常强大的 工具,同时具有极好的扩展胜,因此在数据分类和索引中非常有用。但s g m l 复 杂度太高,不适合网络的日常直用,加上开发成本高、不被主流浏览器所支持 等原因,使得s g m l 在w e b 上的推广受到阻碍。在这种情况下,开发一种蒹具s g m l 的强大功能、可扩展性以及h t m l 的简单性的语言势在必行。由此诞生了x m l 语 言。 脱胎于s g m l 的x 1 , i l 对s g j i l 和h t m l 的改造是简单的。这种简单继承了s g m i , 的高度概括和h t m l 的易蓬易读,使之自然平滑地过渡,为工程师和浏览器的升 级创造了很好的技术“接口“:同时,这种改造的影响是巨大的,、1 i : 等w e b 信息的组织结构彻底改写:x ! , i l 已经不满足于h t m ,的“所见即所得”它通 过i :f 文的数据关联、规范幺的数据格式和灵活的自定义,使w e b 具备了表达 l 翌:坐! :坐查:! ! ! ! 竺! 堡兰 兰二! 堕堡 网页中的元素究竟“是”什么的能力。这种能力对于人脑来说也许仅仅需要瞬 蚓逻辑的判断,但对于尚处于非智能化阶段的p c 来说,无疑是一次“学习的革 命”。一旦丌发者使用了x 、1 l 来描述他们的数据,他们就可以很方便的在相同 的或是不同的系统中对这些数据进行互操作。当然,前提是那些系统都能理解 x m l 。譬如说,一位丌发者可以使用来自另一个系统的数据,只要那些数据是用 x m l 描述的。如此一来,开发者在考虑软件的互操作性时就再也不必担- 0 诸如平 台、操作系统、语言、或是数据存储等各方面的不同了。x m l 是实现系统之间互 操作性的最简单工具。 x m l 和h t m l 都来自于s g 、i l ,它们都含有标记,有着相似的语法,h t m l 和 x m l 的最大区别在于:h t m l 是一个定型的标记语言,它用固有的标记来描述, 显示网页内容。比如 表示首行标题,有固定的尺寸。相对的,x m l 则没有固 定的标记,x m l 不能描述网页具体的外观,内容,它只是描述内容的数据形式和 结构。 这是一个质的区别:网页将数据和显示混在一起,而x m l 则将数据和显示分丌 来。 1 4 2x m l 技术介绍 x m l 是一种可根据直再程序以不同的方式来描述各种不同类型文件和 数据的逻辑结构的元语言( m e t al a n g u a g e ) 。这种通用的、弹性的、可扩展的方 法,几乎开启了x m l 无可限制的适用范围,从文字处理、电子商务到数据备份 储存,x m l 的影响力几乎可以与s q l 相提并论。这个标准同样的也提供了一个坚 定的共同平台,让不同平台或受系统限制的软件能够彼此相互沟通。 x m l 并不是单独存在的因为x m l 不只是用于一种数据格式的使用,它需要 与多种相关的技术相互作用:、扎的标准体系由一连串不同的“子标准”组成, 它们共同定义和描述了文件表现与使用的各个层面。 文档类型定义d t d + d o c u m e n tt y p ed e f i n i t i o n ) d t d 是定义文档类型的契掏( s c h e m a ) 比如d t d 可用来制定相关文件必须包 含固定结构式的标签。d t d 龟l 应用程序发展时就决定好架构,l 文f 也可 4 以不f = jd t d 就可以处理。但这样的话,储存在文件内部的信息即会丢失。d t d 一般只是用来控制x m l 工具与证实x m l 文件的结构有效性。 町扩展式样语言x s i x m i ,文件的版面既不在文件内定义,也不在d t d 内定义。x m l 的基本原则之 一是内容绝不会与其呈现有关。文件如何呈现是在以x s l ( 或c s s ) 建立式样表 单时决定的。一份文件可以有许多不同的x s l ( e x t e n s i b l es t y l e s h e el l a n g u a g e ) 式样表单,使其具有不同的文件呈现。x s l 同样也支持不同的输出媒 体,例如屏幕显示、打印机输出等。除此之外,x s l 可以将x m l 文件转换成文件。 如果是在服务器端运行,某些了解h t m l 但不了解x m l 的终端装置也可以支持。 x s l 即可扩展样式表语言。x s l 能够改变及转化一种x m l 格式的x m l 数据, 使其变成另外一种x m l 格式:考虑这样一个例子,相同的一个x m l 文档需要用 i _ i t m l 、p d f 等形式来演示。如果没有x s l 的帮助,那么这个x m l 文档只能人为的 进行复制,然后再人为的分别转化成这几种格式。相反,x s l 提供了一个已定义 好的样式表,通过这个结构就可以完成上述的任务。因此如果一个x m l 文档需 要被转化成另外一种表现形式,x s l 是一种好方法。 x m l 查询语言x q l ( x m lq u e r yl a n g u a g e ) x q l 目前仍为x m l 文件可用的查询语言之一。就如同s q l 对于关系数据一样, x 扎可用柬从x m l 数据源等数据库取得x m l 文件或部分文件。x q l 指令集类似x s l 句型语言,可让文件中的某些要素被检选出来。x q l 另一方面可在数据来源完整 的文件类型组合中应用这些指令。这些包括如j o i n 操作的特殊操作元,可让外 部文件之问产生相互关系。 x m ls c h e m a x m l j 架构工作底稿可对付x m l 最严重的弱点之一,也就是缺少数据类型。虽 然x m l jd t d 允许指定文件等级的标签与结构,文件要素内容与属性值仍是纯文 字。x l 架构将数目,f 1 期,时间等类型加入x m l 之内,并且允许使用者定义数 据类型。x m l 架构另外也支持模块化。模块化能使架构更容易重复使用。x m l 架 构本身是由x l 写成的,因此可使用x m l 工具来处理。 文档对象模型d o l l ( d o c u m e n to b j e c tm o d e l ) ! ! :坐! ! ! 叁= 兰塑! 堡= ! ! ! 兰二垦笪堡 文档刘象模型是一种用于h t 、1 1 ,与x m l 文件的a p i ( 应用程序接口) ,可使应用程序 游移于文件的内部结构,进行查询、增加、修改或删除个别要素或属性。d o m 被设计成旨在适用于任何的程序语占,比如m i c r o s o f to f f i c e2 0 0 0 与其他厂 商就支持这种类型。 1 4 3x m l 优势 x m l 的优势之一是丌放性,它允许各个组织、个人建立适合自己需要的置标 集合,并且这些置标可以迅速地投入使用。这一特征使得x m l 可以在电子商务、 政府文档、司法、出版、c dc a m 、保险机构、厂商和中介组织信息交换等领域 中一展身手,针对不同的系统、厂商提供各具特色的独立解决方案。 x m l 的优势之二是分离性它的数据存储格式不受显示格式的制约。一般来 说,篇文档包括三个要素:数据、结构以及显示方式。对于h t m l 来说,显示 方式内嵌在数据中,这样在创建文本时,要时时考虑输出格式如果因为需求 不同而需要对同样的内容进行不同风格的显示时,要从头创建一个全新的文档, 重复工作量很大。此外h t i l 缺乏对数据结构的描述,对于应用程序理解文档内 容、抽耿语义信息都有诸多不便。 x m l 把文档的三要素独立开来,分别处理。首先把显示格式从数据内容中独 立出来,保存在样式单文件中,这样如果需要改变文档的显示方式,只要修改 样式啦文件就行了。x l 的自我描述性质能够很好地表现许多复杂的数据关系, 使得基于x m l 的应用程序可以在x m l 文件中准确高效地搜索相关的数据内容, 忽略其他不相关部分。 x m l 。还有其他许多优点比如它有利于不同系统之间的信息交流,完全可以 充当网际语占,并有希望成为数据和文档交换的标准机制。 6 第二章箍袭生成蓑筑概要设诤 2 。1 课题穰述 第二章报表生成系统概要设计 e r p ( e n t e r p r i s e 淞s o u r c e p l a n n i n g ) 一企监漆溺计刘燕出美鬻 g a r t n e r g r o u p 公司在2 0 墩纪9 0 年代初掇出懿,它将先进企救管理技术与计箨 飘技术、数援礞技术黻及丽络技术宠荚趣结合趣寐,其竣心蒜想是搬强分辑决 策和邂应多秘生产模式,嶷理企业对熬个供应链的有效罄淫。9 0 年饯中麓,e r p 糕念羧逡灏弓| 入我国企蛰,舀蠹一些公司瞧开始萼冬英蠡| 势系绞扩灏为m r p ( 耱瓣 辫求诗鲻) 琴统,并逛溪在蓑m r p 系筑中体袋e r p 斡管疆愚惩。毽在实现e r p 过程中,中文摄袭堂戏瓣遂一瘫避困扰e r p 软件h 开发商的两懿。 2 。1 1 传统撤裘开发存禚懿阕题 掇袭系统楚敝有信息系统中黪烈爨m i s ( 管壤信慧系统) 举可缺少鲍壤戚 鄢分,莠l 农逶遥袭格务释形式薅数据滋露统诗、蠢询、捻套及分轿,良襞瘸户 能够醣直观、综合的方式来获取肖关信息,对统计屠的结果避行数据的存储、 绶理霸分褥,势能强灏形等方式遂示
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年汽车理论试题及和答案
- 2025年公路工程试验检测师资格考试(道路工程)综合练习题及答案一
- 阿里地区2025-2026学年七年级下学期语文期中模拟试卷
- 安达市2024-2025学年七年级上学期语文月考模拟试卷
- 安徽省安庆市大观区2024-2025学年高二上学期期中考试生物试卷及答案
- 2025 年小升初广州市初一新生分班考试数学试卷(带答案解析)-(人教版)
- Python大模型基础与智能应用(微课版)课件第8章 BERT与机器学习模型融合微调案例
- 2025销售合同格式参考文本
- 山东省枣庄市山亭区城头镇高庄小学2024-2025学年五年级下学期期末检测数学试题(无答案)
- 部编版九年级下册第三单元 单元测试卷(含答案)
- 2025年秋新教科版三年级上册科学全册教案教学设计(新教材)
- 河南省洛阳市宜阳县2024-2025学年七年级下学期期末考试数学试卷(含答案)
- 房产抵押合同范本标准模板
- 针刺伤的预防与处理
- 印花税课件教学课件
- 2025年房地产开发商独家代理销售合作协议范本
- 2025年LNG加气站市场行业研究报告及未来发展趋势预测
- 2026创新设计高考总复习生物(人教版)-第十单元 第58课时 植物细胞工程
- 排污许可审核方案投标文件(技术方案)
- 临床医学特招考试题及答案2025版
- 2025阿拉尔经济技术开发区第二轮(4人)考前自测高频考点模拟试题附答案详解
评论
0/150
提交评论