英语原文共 12 页,剩余内容已隐藏,支付完成后下载完整资料
从面向对象的概念建模到
Java中的自动编程
Oscar Pastor, Vicente Pelechano, Emilio Insfraacute;n, Jaime Goacute;mez
信息系统与计算系
瓦伦西亚理工大学
Camiacute;de Vera s / n
46071瓦伦西亚(西班牙)
{opastor | pele | einsfran | jgomez}#dsic.upv.es
摘要
在全世界范围内,使用Java作为事实上的标准语言的世界各地的互联网商业应用程序和企业内部网的发展是现代软件工程中的一个重要课题。在这种情况下,比以往任何时候,定义良好的方法和高层次的工具是必不可少的发展质量软件的方式,在某种程度上,应尽可能独立的技术变化。
在本文中,我们提出了一种基于正式面向对象的OO方法模型。这种方法的主要特点是开发人员的努力集中在概念建模步骤,分析师捕获系统需求,并且遵循执行模型(包括结构和行为)可以自动获得全面的实现。最终结果是具有三层架构的Web应用程序,它以Java中的关系型DBMS作为对象库实现。
关键词:信息系统的概念建模 快速原型 CASE工具
整合数据和行为建模,互联网发展
从面向对象的概念建模到Java中的自动编程
- 简介
通常被称为“网络计算”环境的环境的繁荣起源于互联网商业应用的发展和全球企业内部网的创建。在这些环境中使用Java语言[1]开启了一个关于如何正确实现最终的正确软件产品相关的重要研究工作。在这种情况下,新技术不断涌现,软件开发公司必须为处理新的市场需求制定合适的方法,语言,技术和工具。比以往任何时候,定义良好的方法和高层次的工具是必不可少的发展质量软件的方式,在某种程度上,应尽可能独立于技术变革。明确分离以系统为中心的概念模型层次和旨在实施系统如何实施的执行模式的想法为操作解决问题提供了坚实的基础。如果我们有丰富的概念建模环境来捕获问题空间中的相关系统属性,则可以更容易地生成解决方案空间中的正确的软件表示。
如今OMT [2],OOSE [3]或Booch [4]等OO方法广泛应用在工业软件生产环境。行业趋势试图提供统一的符号,例如UML提案([5]),这是为了标准化一套而开发的最着名的方法使用的符号。即使这种尝试是值得赞扬的,这种方法存在隐含的危险,即为用户提供了一套过多的具有重叠语义的模型,而不采用方法学的方法。遵循这种方法,我们有CASE工具,如Rational ROSE / Java [6]或Paradigm Plus [7],其中包括分析模型中的Java代码生成。但是,如果我们进一步深入有了这个提出的代码生成功能,我们发现,如何在Java中生成在功能上与在概念模型中收集的系统描述相同的最终的软件产品是不清晰的。这是这些方法的共同弱点。 完成概念模型之后,我们所完成的只不过是一个模板,用于宣告没有方法的类,而没有相关的架构问题被考虑在内。
为了提供上述问题的运行解决方案,在本文中我们提出一种基于正式面向对象模型的方法。 这种方法的主要特点是开发人员的努力集中在概念建模步骤,分析人员捕获系统需求,全面实施可以根据执行模型(包括结构和行为)自动进行。最终结果是具有三层架构的Web应用程序,它以Java中的关系型DBMS作为对象库实现。
CASE工具支持此方法[1]。它构成了自动化编程范式[8]的想法的操作方法:图形环境(概念建模步骤)中的系统信息属性集合,自动生成正式的OO系统规范(用作系统存储库)和从概念模型获得的完整的软件原型(包括静态和动态),在功能上等同于引用的系统规范(执行模型步骤)。
- OO方法:面向对象的方法论
遵循OO-Method策略,软件生产过程从概念建模步骤开始,我们必须收集相关的系统属性。一旦我们有一个适当的系统描述,将自动获得一个正式的OO规范。这个规范是一个定义明确的执行模型的源泉,在用户界面,访问控制,服务激活等方面确定所有依赖于实现的功能。该执行模型提供了一个结构良好的框架,可以构建自动代码生成工具。重要的是要注意,OO-Method用户隐藏了形式规范:以图形方式引入相关的系统信息,该方式在语法上符合传统的OO模型,但语义上是为了填充类定义模板 根据正式的OO基础。
-
- OASIS:面向对象的正式模型
OO方法是在OAS形式规范的OASIS的正式基础上创建的信息系统语言[9]。 实际上,我们可以看到OO-Method是一个图形OASIS编辑器,使用常规方法构建使用对象,动态和功能模型,使设计人员认为他们正在使用传统的OO方法。 形式主义以这种方式隐藏在他们身上。 以下,我们快速概述OASIS的特点。
从直观的观点来看,物体可以被视为具有状态的细胞或胶囊和一套服务。该状态被隐藏到其他对象,只能通过服务来处理。该组服务是对象的接口,允许其他对象访问该状态。对象演变的特点是状态的变化。事件表示状态的原子变化,可以分组成事务[2]。
当我们构建系统规范时,我们指定类。类表示共享相同模板的对象的集合。模板必须允许声明一个识别机制,该类的签名包括属性和方法,最后是一组不同类型的公式来覆盖其他类属性:
bull;完整性约束(静态和动态),这些条件必须满足条件。
bull;评估属性如何因事件发生而改变。
bull;将某些属性值与其他属性值相关联的推导。
bull;确定何时可以激活事件的前提条件。
bull;引入内部系统活动的触发器
最后,由于一个对象可以被定义为一个可观察的进程,一个类定义应该丰富与该类附加的进程的规范。这个过程将允许我们将可能的对象生命声明为其元素是事件和事务的术语。OASIS通过引入聚合和继承运算符来处理复杂性。OASIS语言的完整描述可以在[10]中找到。
-
- 概念建模
OO-Method中的概念建模使用三种互补模型收集信息系统相关属性:
bull;对象模型:系统类包括属性,服务的图形模型并定义关系(聚合和继承)。另外,代理介绍关系以指定谁可以激活每个类服务(客户端/服务器关系)。
bull;动态模型:用于指定有效对象生命周期的另一个图形模型
人际交往我们使用两种图表:
bull;状态转换图通过建立有效对象来描述正确的行为,每个对象的生命周期。通过有效的生活,我们意味着一个正确的状态序列。
bull;对象交互图:表示对象之间的相互作用。在这个图中我们定义两个基本交互:触发器,即当条件满足时以自动方式激活的对象服务,以及涉及不同对象服务的交易的全局交互。
bull;功能模型:用于捕获与对象状态的任何更改相关的语义作为事件发生的结果。我们根据涉及的事件参数(如果有)和对象的当前状态以声明方式指定每个事件。我们提供一个明确而简单的策略来处理引入必要的信息。这是该方法的一个贡献,它允许我们以自动的方式生成一个完整的OASIS规范。更详细的信息可以在[11]中找到。
从这三个模型,相应的正式和OO OASIS规范是使用明确的翻译策略获得的。所得到的OASIS规范充当完整的高级系统存库。2.3 执行模式
一旦指定了所有相关的系统信息,我们使用执行模型准确地说明与所选择的对象社会机器表示相关联的实现相关特征。更准确地说,我们必须解释用于为任何目标软件开发环境在逻辑三层架构中实现所有系统属性的模式:
bull;界面层:实现与呈现视觉效果的最终用户交互的类表示应用程序并给用户一种访问和控制的方法对象的数据和服务。
bull;应用层:完全实现指定概念建模步骤执行我们的底层对象模型的语义的业务类行为的类
bull;持久层:提供服务的类,允许业务对象与引用的永久对象存储库进行交互。
为了轻松实现和动画化指定的系统,我们预先定义了用户与系统对象进行交互的方式。 我们介绍一种新的交互方式,接近在一个活跃的对象沉浸的意义上,我们可以将其标注为OO虚拟现实对象社会作为一个成员,并与其他社会对象相互作用。 要实现这个系统的行为必须:
1.识别用户(访问控制):将用户记录到系统中并提供一个
对象系统视图确定可以看到或者是激活对象属性和服务的集合。
2.允许服务激活:最后,在用户连接并具有清晰的对象系统视图之后,用户可以在其世界视图中激活任何可用的服务。 在这些服务中,我们将有系统观察(对象查询)或其他对象提供的事件或事务。
访问控制和构建系统视图(可见类,服务和用户属性)的过程在接口层中实现。 正确配置系统视图的信息包含在概念建模步骤中获得的系统规范中。
任何服务激活都有两个步骤:构建消息并执行(如果可能)。
为了构建消息,用户必须提供信息:
1.识别对象服务器:服务器对象执行任何服务存在是一个隐含的条件,除非我们正在处理一个新的事件[3]。此时,持久层从数据库中检索对象服务器。
2.介绍事件参数:接口层要求激活事件的参数(如有必要)。
一旦发送消息,服务执行的特点是在应用层中的服务器对象中发生下列动作序列:
1.检查状态转换:对象状态转换图(STD)中验证在当前对象状态下,所选服务存在有效的转换。
2.前提条件满意度:与服务相关的前提条件必须保持如果1和2不成立,将会出现例外情况,并忽略该信息。
3.估值履行:诱发事件修改(在功能中指定模型)发生在所涉及的对象状态。
4.新状态下的完整性约束检查:确保服务执行将对象引导到有效状态,在最终状态下验证完整性约束(静态和动态)。如果约束不成立,将会出现异常并忽略之前的状态更改。
5.触发关系测试:在有效的状态更改后,验证表示内部系统活动的条件动作规则的集合。如果其中任何一个持有,指定的服务将被触发。
以前的步骤指导任何程序的实现,以确保在概念模型中收集的对象系统规范与其在编程环境中的定义之间的功能等同。
3、在Java中实现执行模型的架构
上面所示的抽象执行模型是基于一般的三层架构。下面我们将介绍使用Web技术的具体实现Java作为编程语言。这将提供一个方法框架以处理在功能上等同于源概念模型的Java实现。
3.1使用执行模型将概念模型转换为Java类
从提出的执行模型开始,我们想设计实现三个逻辑层次所需的类的架构:接口,应用程序和持久性。以下,我们指定支持预期架构所需的Java类最相关的功能:
在接口级别,我们有互补的类,它们在概念模型中没有明确使用,但是有助于实现用户和应用程序之间的交互,遵循底层对象模型语义。
diams;Access_control类。 此类扩展了一个具有典型小部件以允许用户的面板被识别为对象社会的成员(通过提供对象标识符,密码和用户所属的类)。每次用户想要将系统作为活动对象发送和接收消息时,都会创建一个访问控制对象。这个类实现了我们的执行模型的第一步。
import java.awt.*;
import java.lang.*;
import excepciones.*;
public class Access_control extends Panel { ... }
diams;System_view类:一旦活动对象(用户)连接到系统,system_view对象(system_view类的实例)将显示与用户允许交互的类的数量相同的页面。 这些项目是用户可以激活的可点击区域,以便看到他/她可以使用的服务(也显示为可点击的项目)。 类的声明如下:
import java.applet.*;
import java.awt.*;
import excepciones.*;
public class System_view extends Applet implements Runnable { ... }
diams;Service_activation类:此类将定义用于数据输入的典型Web界面,请求有关的服务参数。service_activation对象将是所有类的所有服务的通用对象。根据激活的服务,它将显示相应的编辑框以识别对象和服务参数。一旦满足,用户可以将消息发送到目的地(提交)或忽略数据请求动作(取消)。
import java.awt.*;
public class Service_activation extends Panel { ... }
在应用程序级别,我们有类实现概念模型中指定的业务类的行为。
为了确保应用程序类的实现将遵循我们的基础对象模型语义,并具有持久性设施,我们将定义我们的业务类作为OASIS接口的实现和扩展Object_mediator类[12]。
OASIS接口指定支持执行模型的必要服务结构,如下面的段落和Object_mediator类所示在下一级解释:
import java.awt.*
全文共10187字,剩余内容已隐藏,支付完成后下载完整资料
资料编号:[142672],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。