测试驱动的面向对象软件开发 pdf-面向模式的软件 pdf
软件开发技术的发展历史•面向功能的软件开发技术•面向过程•面向功能•面向模块•面向结构•面向数据•面向对象的软件开发技术•面向模型的软件开发技术Function-oriented软件开发技术输入处理输出帕斯卡之父、结构化程序设计的先驱尼克劳斯·沃特最著名的一本书叫做《算法程序》。 一定的逻辑函数实现一定的任务。 算法是程序的逻辑抽象测试驱动的面向对象软件开发 pdf,是解决某些客观问题的数学过程。 数据结构是客观事物本身的结构特征(即逻辑结构)在计算机中的具体实现(即物理结构)。 它是存储和组织数据的计算机。 道路。 软件实现是根据数据编程的。 面向模型的软件开发技术 • 是面向对象的开发技术。 • 公众对UML 的接受促进了以模型为中心的发展,OMG 提供了一系列标准框架MDA(Model-Driven Architecture)来支持这种发展。 • MDA的主要特点是软件开发的重点和输出不再是程序,而是各种模型。 开发者的工作就是不断地扩充模型,只有到了最后阶段才会考虑实施。 • 模型不一定是面向对象的。 如界面模型、报表模型、工作流模型、数据流模型等。
UML 2.0 也大量吸收和改进了非 OO 模型。 MDA·MDA(模型驱动架构)。 • MDA的主要特点是软件开发的重点和输出不再是程序,而是各种模型。 开发者的工作就是不断地扩充模型,只有到了最后阶段才会考虑实施。 为实现系统目标,模型驱动软件开发方法将系统划分为多个层次,通过各个层次上的模型描述层次上的实体,建立不同层次模型之间的映射关系。 根据模型之间的映射关系,人工或计算机可以完成源模型到目标模型实例的转换,从而达到系统运行的目的。 模型是系统功能、结构和行为的形式化规范。 当规范所依据的语言具有标准语法,并且每个结构都有相应的语义时; 同时,它还可能包含一组规则,用于不同结构之间的分析和推理,规范是形式化的。 语法可以是图形或文本的形式。 语义是指语法描述的事物具有特定的含义。 MDAMDA 的基本思想是:一切皆模型。 软件生命周期是以模型为载体,由模型映射驱动的过程。 MDA驱动的第一步是抽象出与实现技术无关、完整描述业务功能的核心模型(Platform-Independent Model,PIM); 为不同的实现技术制定多个映射规则,然后利用这些映射规则和辅助工具将PIM 转换成与具体实现技术相关的应用模型(Platform-Specific Model,PSM)。
最后,将经过验证的 PSM 转换为代码 MDAMDA 的好处: • 分离业务功能分析设计工件和实施技术之间的紧密耦合关系,从而最大限度地减少技术变更对系统的影响。 •MDA使应用程序模型和领域模型在整个软件生命周期中得到重用 •为了实现系统的目标,将系统划分为若干层次,在每一层次上,模型描述层次上的实体和建立不同层次的上述模型之间的映射关系。 根据模型之间的映射关系,人工或计算机可以完成源模型到目标模型实例的转换,从而达到系统运行的目的。 • 模型可以在计算机域中测试驱动的面向对象软件开发 pdf,也可以在非计算机域中。 • 建模过程是从现实世界到计算机世界的映射。 •模型的驱动过程可以是手动、自动或半自动 MDAMDA核心技术包括: •统一建模语言(Uniform Modeling Language,UML) •元对象工具(MOF) •公共仓库元模型(Common Warehouse Metamodel CWM ) • 基于XML的元数据交换(XML Metadata Interchange 统一建模语言(Uniform Modeling Language,UML) • 面向对象的图来描述任何类型的系统,具有广泛的应用。
• 最常用的模型是对软件系统进行建模,但也可用于描述非软件领域的系统,如机械系统、企业机构或业务流程、处理复杂数据的信息系统、具有真实信息的工业系统等。 - 时间要求,或工业过程等。 • 总之,UML 是一种通用的标准建模语言,它可以对任何具有静态结构和动态行为的系统进行建模。 UML需求定义阶段:用例可以用来捕捉用户需求。 通过用例建模,描述外部角色及其对系统的功能需求。 分析阶段:UML类图用于描述问题域中的主要概念和机制。 在分析阶段,只对问题域的对象建模,不考虑软件系统中定义技术细节(如用户界面、数据库)的类。 编程(构造)阶段:其任务是将设计阶段的类转换为面向对象编程语言的实际代码。 在使用 UML 建立分析和设计模型时,应尽量避免将模型转换为特定的编程语言。 测试阶段:单元测试使用类图和类规范; 集成测试使用组件图和合作图; 系统测试使用用例图来验证系统的行为; 阶段确定需求。 UML • 用例图(Use case diagram) • 类图(Class diagram) • 对象图(Object diagram) • 包(Package) • 组件图(Component diagram) • 配置图(Deployment diagram) UML • 状态图(State Diagram) • Sequence Diagram • Collaboration Diagram • Activity Diagram UML 对于建筑工程来说,工程师一般都有多年的经验,熟悉所使用的各种工程符号,而UML设计可能在纸上画的时候看起来不错,但是很多问题都会实际编程时发现。
这是因为建筑工程的模型贴近现实,而UML的设计是在另一个世界进行的。 浏览器菜单栏工具栏地址栏资源树菜单项MOFMeta-Object Facility • MOF 用于定义面向对象元模型的基本元素、语法和结构。 • MOF 定义的面向对象的元模型可以通过交换元数据实现互操作性。 •MOF为各种元模型提供了共同的语言基础,使它们不是孤立的,而是可以相互映射,相互交换元数据,相互理解。 •MOF通过多重抽象获得现实世界的共性,即“MOFMeta-Object Facility Meta-Metamodel Metamodel Meta-Metadata Metadata Model Data User Object 张三李四员工表设备表资金数据字典业务流程接口描述元元模型 MOF的四层元数据架构 MOFMeta-Object Facility Meta-meta模型界面字典数据字典图形报表设备适应所有变化,使用四层元数据结构描述不断变化的用户需求 Fund XMI:XML XMI(XML Metadata Interchange)定义两套规则: • XML DTD(文档类型定义)生成规则:如何为元数据创建XML DTD。
• XML 文档生成规则:如何根据DTD 为元数据创建XML 文档。 元模型元数据 XML DTD XML 文档模型时间有效性 (Harbert A.Simen) 曾经讨论过:“要构建关于复杂系统的更正式的理论,有一种方法可以求助于层次理论……我们可以期望复杂系统是层次结构的在一个复杂性必然从简单演变而来的世界中 系统 A 系统 Z 系统 B 系统 C • 层次理论简化了复杂的问题。 • 当从系统 A 到系统 Z 无法直接解决时,可以使用一些中间层。 • 架构软件的开发呈现出层次的特点。软件开发是从用户层到软件层来解决。 •模型可以区分“运行时模型”(Run-TimeModel)和“开发时模型”。 •开发时模型是MDA建模驱动过程的本质。 • 运行时模型揭示了广义模型驱动过程的本质。 • “所见即所得”是一个典型的应用的运行时模型。 从 用户模型通过一套驱动程序自动输出到用户模型,是最好的模型驱动应用模式。 • 系统在应用过程中,不断适应应用环境和需求的变化,不断被用户调整或适应性地改进模型。 •这是模型驱动的最高境界。 •模型驱动的软件开发模式是利用模型的映射技术,逐步完成软件细化的过程。
• 在MDA 中,一组元模型用于对系统建模。 模型A 模型Z 模型B 模型C 不同于传统的开发模型: • 异构系统协作:由于元数据具有自描述能力,异构系统可以通过元数据相互识别、相互理解、相互协作。 任何基于MDA的系统都可以存储、管理和发布应用层和系统层的元数据。 当组件嵌入到环境中时,它们可以通过与环境交换元数据来进行通信和协作。 因此,基于MDA的系统可以从根本上解决互操作性问题。 与传统开发模式的区别: • 空间不匹配问题:从计算机软件诞生之日起,软件开发人员就必须同时在问题空间和解决方案空间中工作。 这两个空间的异构性是导致软件质量难以保证的重要原因。 在MDA的开发模型中,问题空间和解决方案空间之间的鸿沟被许多元模型所填补。 单一的问题空间和解空间被多个相关的问题空间和解空间所取代。 不同于传统的开发模式: • 专用的元模型和模型映射技术:针对不同的领域和视角,可以建立专门的元模型。 使用专用元模型建模比使用单一元模型更准确和完整,开发成本也会相应降低。 专用的模型映射工具可以将模型映射中的一些固有范式归纳为自动分析处理工具,从而大大提高模型映射的质量和效率。
不同于传统的开发模式: • 元模型和模型映射技术共享:元模型和模型映射技术实际上包含了特定领域的内在知识。 同一域中的应用程序可以共享这些元模型和模型映射技术。 • 模型重用:软件重用从组件重用扩展到模型重用。 这是软件重用的一大进步。 首先,组件的复用受到平台的限制,而模型的复用则不受平台的限制; 其次,由于模型的多层次性,软件可以在任何层次上进行复用,从而最大程度地复用已有的成果。 . 不同于传统的开发模式: • 流水线开发:由于每个模型都使用一个特殊的元模型,并且有标准化的建模工具和模型映射工具来保证模型的质量,软件生产可以实现流水线操作,即每个该模型的建模和模型映射工作由专门人员完成。 软件生产的质量和效率将有质的飞跃。 与传统开发模式的区别: • 从模型到元模型:从软件技术发展的历史来看,过程细化编程技术的解决空间在数据层,面向对象技术将解决空间提升到模型层,并且MDA把解空间升级为元模型编程技术。 解空间层存在操作对象的限制。 MDA元模型层Meta-object Object Data可以自定义语言(元模型)。 面向对象的模型层Object Data只能使用一种有限的语言(元模型)。 精细数据层Data只能使用有限的数据类型。 我们在做什么 • 目前掀起了一股MDA热潮,国内一些著名的软件工程研究机构都在关注MDA。
• 相关技术基础已经具备。 OMG关于MOF和MDA的规范已经出台,但MDA只是提供了一个框架和概念,在可操作性方面还需要进一步发展。 • SDK开发商推出了基于MDA的开发平台,如Borland推出了基于MDA的Delphi软件。 NET 也融入了 MDA 的概念。 但是这些SDK的MDA建立了一个“开发期”的模型,关注的是如何映射到自己的平台上。 • 软件服务提供商瞄准面向业务平台的发展。 2002年计世资讯(CCW Research)发布的《2003年中国软件平台发展战略研究报告》指出,一个新层次的软件平台,即业务流程管理平台,正在革新软件,尤其是管理软件开发模式。 受此影响,一种新的开发模式——EMA(Enterprise Model Automation)诞生了。 这种全新的开发模式是业界一直追求的“提高软件生产力的银弹”。 计世资讯将这一新级别的软件平台称为“基于业务的软件平台”。 该平台采用的核心思想是模型驱动。 公司名称 产品名称 发布时间 Justep Thinking Acceleration TIB 2002年底 东软金算盘 Golden Abacus VP 2002年10月 UAP 2003年初 金蝶BOS 2003年2月 SAP Netweaver 2003年初 中关村科技软件应用集成基础平台 CenGRP2.0 2002年底 东方通科技 未知. 预计2003年下半年要研究的问题:(1)元模型和模型映射方法学研究。 MDA的改进在很大程度上是元模型和模型映射技术的改进。 如何建立元模型和相应的模型映射技术都需要方法论的指导。
(2) 领域元模型的建立 需要为各种应用领域建立大量基于MOF 的元模型。 这些元模型应该包含应用领域特殊规则的语义,应该是严格的、没有歧义的,并且易于被非计算机专家掌握。 需要研究的问题: (3)构件平台元模型的建立 针对各种构件平台,需要建立专门的平台元模型来支持平台相关模型的建立和代码生成。 (4) 模型映射技术的发展 在大量的元模型出现之前,需要模型映射技术来辅助开发者进行高效的模型映射。 有了高效的模型映射技术,MDA 才能真正实用。 研究课题: (5)中间元模型研究。 如果两个元模型过于异构,则很难为两个元模型开发模型映射工具,或者映射效率低下,需要大量的人工干预。 这样就需要考虑在这两个元模型之间建立一个中间元模型,并以这个中间元模型作为模型映射的桥梁。 在什么情况下以及如何构建中间元模型是需要研究的问题。 (6) 元模型评价理论与模型映射研究。 在特定环境下,什么样的元模型是高效的,什么样的模型映射工具是高效的,都需要评价理论的指导。 这允许开发人员在众多相互竞争的元模型和模型映射工具中选择最适合他们的工具。 POSC软件集成技术研究围绕POSC集成数据模型Epicentre的实现与应用,开展了以下相关研究: • 数据映射工具开发:从Epicenter到关系模型的映射 • 基于Epicenter视图的研究:从Epicentre访问Epicentre关系视图 • 基于Epicentre的数据访问的实现:Epicentre关系数据库的实现 Epicenter关系视图投影 从关系数据库访问映射视图 新疆油田公司勘探生产信息系统围绕信息平台的可扩展性进行开发,初步形成了模型驱动的原型:从 Epicenter 扩展到任意两个数据模型之间的映射(1999)。 四层元数据系统和模型驱动概念的引入 (2000)。 引入工作流概念实现业务集成。
数据总线(交换数据模型、虚拟模型) 中央数据库 探索通用库 日志库 Finder OpenWork CORBA 服务工作流 元数据库 中国石油信息系统标准化技术研究 围绕中国石油信息化总体规划,将元数据系统化并落实到各实施方案中 在国内推广相关理念: • 中国石油信息系统数据交换模型定义规范 • 中国石油信息系统数据元字典 • 中国石油信息系统总部数据中心实施方案 • 中国石油信息系统总部管理源数据字典实施方案 • 中国石油信息系统标准化体系•企业应用集成( EAI,Enterprise Application Integration) Research 中国石油刚刚完成基础信息化,正走向一体化阶段。 新的管理体系注重实用性和商业化,对新技术的理解和消化存在一定的困难。 企业战略 信息化战略管理系统 大庆油田公司信息化建设应用系统 信息系统支撑系统 • 积极参与大庆油田公司信息化建设,宣传模型驱动的信息集成理念,得到专家好评。 •改善用户需求并利用模型驱动。 • 模型驱动思想是信息集成建设的一种新技术思想,受到技术人员的欢迎。 石油信息平台愿景 PIP 企业模型 服务模型 数据模型 接口模型、报表模型 工作流模型、发布模型 短信、数据交换服务、访问服务接口数据模型 报表数据模型 企业数据库存储模型 项目库存储模型 外部数据库存储模型-相关技术 Related technologies 元模型工作流 XML SVG UML B/S 信息平台 EJB .Net 石油信息平台 PIP vision 联合软件公司推动PIP产品化 逐步完成总体框架下的系列元模型研究。 同时,完成相关的映射、建模、执行系统的开发。 • 从长远战略目标出发,坚持特色方向,结合应用项目,注重积累和可持续发展。感谢