优秀的毕业设计论文网
计算机 JAVA 电子信息 单片机 机械机电 模具 土木工程 建筑结构 论文
热门搜索词:网络 ASP.NET 汽车 电气 数控 PLC

ava代码框架自动生成技术的研究

以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
  
资料介绍:

研究现状及发展趋势
    代码生成器的用途一般是根据数据表自动生成实体类,存储过程,数据访问过程,业务逻辑类,以及用户界面类等。
    现阶段代码生成器的设计方案主要有:
    1.模型逻辑,控制器逻辑,视图逻辑都在Win Form[2]的代码中混着。很多设计者由于项目的状况(时间比较紧)把代码生成的逻辑直接放在代码生成器的引擎中。优点:开发速度快。缺点:扩展性差。
    2.在特定项目的数据库中建几个存储过程来实现代码生成优点:开发速度快。缺点:通用性差。
    3.表示层采用服务器视图模板引擎的MVC结构[19],如JSP视图引擎,ASP/ASPX/PHP等服务器视图引擎[17],优点:开发非常方便,可以很好的分离了视图/控制器/模型,缺点:依赖于特定的Web服务器,使用起来没有CS结构的方便好用。
4.自行开发一个视图模板引擎,然后基于该模板引擎建造一个MVC的代码生成器[14],如商业上的CodeSmith.优点:功能强,灵活,扩展性好;缺点:收费的。
代码生成器设计的一个发展趋势为使用XML和XSL技术[16].XML和XSLT为开发WEB应用提供了非常好的解决方案,然而,它们的能力不仅限制在WEB开发上,其实它们提供了很好的基于元数据(meta data)编程的模型,利用XML作为元数据并用XSLT就可以将它转换为任何想要的形式或其他数据。 think58.com [版权所有:http://think58.com]

1.3 开发方法
1.3.1 开发方法概述
1.3.1.1 软件工程方法概述
建立一个软件系统,是一项复杂的软件工程的实施。近20多年来,软件工程发展成为新科学,至今已经成为软件产业的重要支柱。它以计算机软件为工程对象,研究如何对其进行定义、开发和维护。随着计算机硬件技术的飞速发展,计算机软件在各个领域内作用日益突出。多年来被人们沿用的手工作坊式的软件开发方法,在软件产品的质量、成本及开发时间等方面都无法满足需求。用这种方法所开发的软件产品质量低劣、可靠性差、用户难以使用、开发成本高等问题,给软件项目带来严重后果。最为突出的一个例子是60年代美国IBM公司开发OS/360系统。该系统有上千人参加工作,投入了5000人年的工作量,花费了大量资金,却并未取得预期的效果。60年代末期开始出现“软件危机”的种种迹象,人们逐渐认识到用个人编写小型程序的那种手工方式来研制软件已经不行了,必须寻找新技术来指导软件的开发。1968年,首先提出了“软件工程”这一名称,通过对程序中使用GOTO语句的讨论,导出了结构化程序设计的概念,之后人们普遍重视软件需求规格说明书和系统设计在软件开发中的作用。到了80年代,软件工程思想得到系统的归纳和整理,提出了许多工程方法,如结构化生命周期法、快速原型法、企业系统规划法、战略数据规划法等。 本文来自think58

[来源:http://www.think58.com]

1.3.1.2 结构化生命周期法简介[5]
结构化生命周期法[5]是一种传统的软件系统开发方法。其基本思路是把整个系统开发过程分解成若干阶段,每个阶段进行若干活动,每项活动应用一系列标准、规范、方法和技术完成一个或者多个任务,形成符合给定规范的产品。这种方法一直是大型系统开发的主流方法。
1.3.1.3 快速原形法简介[5]
    快速原型法是在80年代发展起来的,其基本思路是用户与开发人员合作,根据用户提出的最基本的问题和想法,首先建立一个应用系统的框架,作为应用开发的实验模型(系统原型)。用户先运行这个系统原型,使用它、熟悉它,受到启发并取得经验,然后对系统的目标和功能提出精确,具体的需求,在对系统需求最后决定后,再用传统的方法建立比较完善的系统。这种方法适合于规模较小而且用户需求不太明确的应用系统。
    该方法加速了系统开发中用户需求的获取过程,大大提高了系统开发效率和有效性。弥补了结沟化生命周期法的缺陷。
快速原型法的开发过程可分为快速分析、构造模型、运行模型、评价模型、改进模型等。
1.3.1.4 叠代法简介[5]
    叠代法是一种周期性软件开发方法,它与快速原形法有区别,如上图所示快速原形法只是在软件原型的构造阶段采用周期性开发方法,而叠代法则在软件生命周期的每一个阶段(包括需求分析,概要设计,详细设计,系统实现,系统测试,系统维护等阶段)都采用周期性开发方法,因此叠代法更适合大型软件的开发。叠代式开发要求系统首先实现用户最基本的功能需求,然后再通过用户使用系统的过程中所产生的反馈信息来不断的改进系统功能以满足用户不断变化的需求。 内容来自think58
[来源:http://www.think58.com]

 JAVA中的反射类
    Reflection是 Java 程序开发语言的特征之一,它允许运行中的Java程序对自身进行检查,或者说“自审”,并能直接操作程序的内部属性。Java 的这一能力在实际应用中也许用得不是很多,但是在其它的程序设计语言中根本就不存在这一特性。例如,Pascal、C 或者 C++ 中就没有办法在程序中获得函数定义相关的信息。
1. reflection的工作机制[7]
有如下Java代码:
 import Java.lang.reflect.*;
 public class DumpMethods
 {
  public static void main(String args[])
  {
  try
  {
              Class c = Class.forName(args[0]);
             Method m[] = c.getDeclaredMethods();
             for (int i = 0; i < m.length; i++)
             System.out.println(m[i].toString());
       } 本文来自think58 [资料来源:http://think58.com]
  catch (Throwable e)
  {
            System.err.println(e);
      }
      }
}
按如下语句执行:
Java DumpMethods Java.util.Stack
它的结果输出为:
public Java.lang.Object Java.util.Stack.push(Java.lang.Object)
public synchronized Java.lang.Object Java.util.Stack.pop()
public synchronized Java.lang.Object Java.util.Stack.peek()
public boolean Java.util.Stack.empty()
public synchronized int Java.util.Stack.search(Java.lang.Object)
这样就列出了Java.util.Stack 类的各方法名以及它们的限制符和返回类型。这个程序使用 Class.forName 载入指定的类,然后调用 getDeclaredMethods来获取这个类中定义了的方法列表。Java.lang.reflect.Methods 是用来描述某个类中单个方法的一个类。
2. Java类反射中的主要方法
 对于以下三类组件中的任何一类来说--构造函数字段和方法--Java.lang.Class提供四种独立的反射调用,以不同的方式来获得信息。调用都遵循一种标准格式。以下是用于查找构造函数的一组反射调用:Constructor getConstructor(Class[] params)--获得使用特殊的参数类型的公共构造函数,Constructor[] getConstructors()--获得类的所有公共构造函数Constructor getDeclaredConstructor(Class[] params)--获得使用特定参数类型的构造函数(与接入级别无关)Constructor[] getDeclaredConstructors()--获得类的所有构造函数(与接入级别无关)获得字段信息的Class反射调用不同于那些用于接入构造函数的调用,在参数类型数组中使用了字段名: [来源:http://think58.com]
Field getField(String name)--获得命名的公共字段
Field[] getFields()--获得类的所有公共字段
Field getDeclaredField(String name)--获得类声明的命名的字段
Field[] getDeclaredFields()--获得类声明的所有字段
 用于获得方法信息函数:
Method getMethod(String name, Class[] params)--使用特定的参数类型,获得命名的公共方法
Method[] getMethods()--获得类的所有公共方法
Method getDeclaredMethod(String name, Class[] params)--使用特定的参数类型,获得类声明的命名的方法
Method[] getDeclaredMethods()--获得类声明的所有方法
think58
[资料来源:THINK58.com]