XSCoRe: A Program Comprehension Workbench

Size: px
Start display at page:

Download "XSCoRe: A Program Comprehension Workbench"

Transcription

1 XSCoRe: A Program Comprehension Workbench Pablo Montes Politécnico Grancolombiano, Ing. de Sistemas Bogotá, Colombia pmontesa@poligran.edu.co Silvia Takahashi Universidad de los Andes, Ing. de Sistemas y Computación Bogotá, Colombia stakahas@uniandes.edu.co Presentado como ponencia en la XXXI Conferencia Latinoamericana de Informática, en el marco del Centro Latinoamericano de Estudios en Informática (CLEI)

2 Abstract Even software that was developed using modern object oriented languages like Java can profit from reengineering. This is particularly true for software systems that were not developed following all the guidelines for developing good quality software. As always, the first step in the reengineering effort is program understanding. This paper presents an approach for aiding in the understanding of Java programs. We describe an XML representation that can be used to model Java code. This representation is at a higher level of abstraction than an abstract syntax tree because it incorporates constructs from the underlying object oriented paradigm. A novel characteristic is the inclusion of Javadoc comments in the representation of the Java code. We also describe a workbench that can be used to aid in the understanding of Java programs. This workbench includes the translator from source code to the XML representation of Java code, as well as specific XLS transformations that can be used to extract information. The workbench can be easily extended with new XLS transformations depending on the needs of the software maintenance engineer. Keywords: Source code representation, XML, Javadoc comments, XSL transformations, program comprehension workbenches. 2

3 Resumen Inclusive el software que fue desarrollado usando lenguajes de programación modernos como Java puede beneficiarse de la reingeniería. Esto es particularmente cierto para sistemas de software desarrollados sin seguir todas las técnicas para el desarrollo de software de alta calidad. Como siempre, el primer paso en un proyecto de reingeniería es la comprensión de programas. Este artículo presenta un enfoque para ayudar en la comprensión de programas Java. Definimos una representación XML para modelar código Java. Esta representación se encuentra a un nivel de abstracción más alto que el árbol de sintaxis, ya que incorpora construcciones del modelo de objetos subyacente. Una característica novedosa es la inclusión de comentarios JavaDoc en la representación del código Java. También describimos un banco de trabajo que puede ser usado para ayudar en la comprensión de programas Java. Este banco de trabajo incluye un traductor del código fuente a la representación XML así como transformaciones XLS específicas que pueden ser usadas para extraer información. El banco de trabajo puede ser extendido fácilmente con nuevas transformaciones dependiendo de las necesidades del mantenedor de software. Palabras Claves: Representación de código fuente, XML, comentarios Javadoc, transformaciones XSL, bancos de trabajo para la comprensión de programas. 3

4 1. INTRODUCTION Software reengineering emerges as a field of study in response to the large number of legacy systems that have to be maintained effectively. With the advent of object oriented languages, techniques, and methodologies, it was believed that object oriented software would in itself be maintainable and that no additional tools would be required to aid in program comprehension: all the program artifacts would always be up-to-date, and it would always be possible to know what the actual design of the application was. However, object oriented software also suffers from the lack of good software practices, and we are often faced with the problem of reengineering software written in modern programming languages such as Java. As always, the first step in the reengineering effort is program understanding. This paper summarizes research carried out in Pablo Montes Master s Thesis [[17]]. The purpose of the project was to design a tool that would ease the process of program comprehension for Java programs. The result was a workbench for reverse engineering Java programs which we called of XScoRe. The backbone of this workbench is xjava, an XML based representation of Java source code. The workbench includes a translator from Java projects to xjava and other tools used to extract information from the translated code. The definition of the XML based representation was a pivotal result of the project because it influenced the development of the workbench. By using XML, the tools that make up the workbench can take advantage of existing techniques for managing XML documents. We can obtain different views of the same model which can, in turn, be used to further the understanding of the software system. Though the workbench described in this paper only implements a few views and their corresponding transformations, it can be easily extended to provide information needed to achieve a better understanding of a software system. This paper is organized as follows: Section 2 briefly describes the motivation for building a reverse engineering workbench and justification for using an XML based representation. Section 3 describes the approach used to solve the problem. Section 4 describes the actual solution that was developed. Section 5 outlines directions for future research, and Section 6 presents some conclusions. 4

5 2. BACKGROUND In this section we list the characteristics that reengineering tools should have. We also state the motivation for using XML The ideal reengineering workbench Most authors (see [[10], [18], [19], [20], [21], and [22]]) agree on the characteristics that must be offered by an application that aids in the task of software reengineering. These features are summarized below. 1. The tool must be able to extract information from the software artifacts and generate representations that are at a higher level of abstraction. For example, if the artifact that is being studied is the source code, the representation of the corresponding abstract syntax tree would be at a higher level of abstraction; when dealing with a design document, it would be helpful to obtain analysis information. Examples of analysis information include information regarding the real-world data that is being represented in the application data as well as defining functional and non-functional requirements. 2. Once the information has been extracted, the tool must provide means for exploring the extracted data. This exploration activity is, according to many authors, one of the most important tasks in a reengineering project. To provide facilities for exploration, the tool should offer the following features: a. Navigation: Software systems are generally nonlinear and can be viewed as a multidimensional network of artifacts. The tool must facilitate navigating this network to aid in the process of software understanding. b. Multiple views: Visual metaphors are useful and are commonly used to represent information and ease its comprehension. The tool must offer, not only information obtained from the extraction phases, but also mechanisms for the software engineer to create new views according to his/her needs. c. Extensible: Most reverse engineering applications offer a finite set of features. Though the designers of the application may consider these to be sufficient, it is not possible to predict what aspects of a system are important for all users, nor how to represent them. The application, therefore, must offer mechanisms by which users can extend its functionality. d. Information exchange: Currently, there is a widespread development of applications that support software development both for reverse and forward engineering. The reengineering application must be able to 5

6 interoperate with other reengineering tools and be able to connect with other systems, by using results from or providing information to other components Using XML XML is a Standard format for data exchange [2]. It seems inevitable to relate the use of XML with the practice of reverse engineering. XML intrinsically provides or rather promises all the characteristics mentioned above. Moreover, recent and current research has resulted in the definition of mechanisms for: processing XML documents (SAX, DOM [[14]]), generating multiple views from XML documents through XLST transformations [[8]]. These views often involve the use of HTM thus giving the option of hyperlink navigation. Services for querying data in XML documents (using XPATH, XQUERY and XQL) can also be provided. Moreover, XML has an inherently hierarchical structure where markers are used to identify data. Since naming data often gives an idea regarding its meaning, XML is often described as a mechanism that can be used to specify data semantics. Therefore: Why not define a representation of an application using XML? This would offer the possibility of obtaining information at a higher level of abstraction than the source code, provide the extensibility and support information exchange. We are aware that many other approaches have also used XML as a representation language. In the next section, we describe other approaches and compare them to our proposed solution. 3. A FIRST STEP The source code of a program, though unambiguous due to the fact that it adheres to a well defined grammar, is in a flat text format completely lacking an explicit structure. Its structure can be made explicit after syntactic analysis [[20]]. Usually, the next level of abstraction is the abstract syntax tree (AST). This representation is often used by compilers to represent the source code to analyze, optimize and translate it to a lower level language (e.g., byte code, for Java) [[15]]. This representation is not always intuitive and often reflects the language s syntactic peculiarities instead of higher level language building blocks [[1]]. One of the contributions Java has made to the software engineering community is the standardization of documentation source code comments, informally known as Javadoc comments. This provides not only a standard, but also encourages software engineers to document their programs by offering the possibility of automatically 6

7 generating the basic class documentation in an HTML document. It also serves the reverse engineering community by offering more information that can aid in the process of program understanding. When designing a high level representation for Java source code, Javadoc documentation should not be ignored. However, many existing high level representations often do. In this section we outline the design of XScoRe, the reengineering workbench and xjava, the source code representation used by the workbench. We begin by outlining other approaches to the problem of representation. We also describe the workbench and give the main characteristics of the representation An XML Based Representation There are various approaches, mostly at the academic level, for representing source code using XML. Each one has its own characteristics as well as advantages and disadvantages. Some of the most significant approaches are the following: SrcML [[4], [5], [20]] CppML [[15], [20]] OOML [[15]] JavaML [[1], [15], [20]] We studied these approaches, to determine their features both the good and the bad and define a representation that integrates the best characteristics of existing approaches. Our goal was to define a mechanism that would aid in the task of reverse engineering and program comprehension. SrcML, for example, uses a generic approach. It can be used to model source code written in any language. To be able to achieve this efficiently, the source code is semi-analyzed (the method's body and other low level characteristics are not represented) and the code structure, including spaces an line-breaks, is kept intact. By using SrcML, only the high level characteristics can be obtained. CppML, defines an XML based grammar for C++ source code. It represents source code with its structure as well as the analyzed structure of the syntax tree. This representation adheres to the syntactic structure of the program and does not model high level object oriented concepts. 7

8 OOML presents a much more generic approach. Similarly to SrcML, it models only de basic concepts of the object oriented paradigm and, therefore, it does not include all the information found in the source code. On the other hand, it represents all the analyzed information in a tree-like XML document, without taking into consideration the original code structure. Consequently, this representation can be generated, not only from source code, but also from a more complex predefined representation of the source code. Finally, JavaML is the most complete representation found and the one that provides the most complete documentation. As such, it is the basis for this research work. This representation, however, only takes into account the information needed by the compiler to generate the ByteCode. It, therefore, omits comments which are of great importance in a program comprehension workbench. Additionally, the XML representation is based almost exclusively on the Java grammar and, therefore, it does not take into account the semantic information of the Object Oriented Paradigm. We decided to use XML as the representation language for modeling the Java syntax. In the defined representation, we also model some aspects related to the semantics of the object oriented paradigm. The representation also supports Javadoc comments. As we mentioned above, we called this representation xjava. The novel aspects of our representation are, as we have said, that it is at a higher level of abstraction than the syntax tree and that we represent comments. In section 4.1, we show an example of the representation of a simple class. It shows how we include information regarding classes and packages that can be used to enhance high level software comprehension Using the representation Once the code has been translated to xjava, it can be analyzed, transformed (using XSL transformations), and queried to obtain the required information or to view the parts of the code that are relevant to a particular problem. Some of the views that should be provided by the workbench to aid in the task of program comprehension are listed below. Extracting information necessary to construct UML diagrams using XMI. Dependency graph and call-tree using GXL to represent these structures. Reformatted plain text. Hyperlinked text (HTML). 8

9 Documentation view (a la Javadoc). Graphical view of the program s structure. Querying mechanisms can also be defined using tools such as XPATH Putting it all together The workbench is made up of the following tools: a translator from source code to xjava and a few transformations. It is extensible and the initial set of tools and services should not constitute a roadblock to the person in charge of program comprehension. The user can define new transformations and querying mechanisms depending on his/her program comprehension needs. Standard XML processing APIs such as SAX and DOM can be used to process and analyze the extracted data. Figure 1 illustrates the complete process that is supported by the workbench: all of the source code files are first translated to their equivalent XML representation. Each java file is translated to its corresponding XML file. Additionally, there is a single XML that specifies the packages that make up the system. By using Xlink, we can reference the XML files that represent each individual source code file, indicating to which package it belongs. If we wanted to create a new view of the system we only need to define an XSL transformation and, by running this transformation through the XSLT processor, without modifying the representation or knowing any specifics about the Java grammar, we could create the desired views. Figure 1. xjava and XSL Transformations 9

10 The proposed architecture could potentially be used in a software development environment based on various views of a single model. In this way, the problem of maintaining coherence among the source code and all software artifacts could be solved. An environment like this would aid in software maintenance tasks as well as in the complete cycle of software development. This would be particularly helpful in large and complex systems in which many people participate in the process of software development. The current version of the workbench provides the following transformations: one that generates a documentation view and another for translating the code into an HTML format with hyperlinks. We are currently integrating a tool that obtains the XMI description of the code from xjava to obtain UML class diagrams that include relations among classes. Each of these examples is not only useful in and of itself but in that it illustrates the fact that the workbench can easily be extended to provide more functionality. This is particularly true in the case of the transformation to XMI, for this was done in a Senior Project by a person who did not participate in the original construction of the workbench. It is important to point out, that given that xjava is well defined and documented, anyone who has a good understanding of XML technology can define new views and queries to satisfy new requirements. By adding query services we can provide an environment which is similar to that described in [[1]]. We could even define a new transformation to create a representation that can then be queried by OCL as it is done in [[1]]. 4. IMPLEMENTATION DETAILS This section describes some of the implementation issues. Some xjava examples for a simple class and a comment are shown. We describe the technical information regarding the actual implementation of the translator and the workbench is provided. Finally we give some examples of how XScoRe has been used The representation: xjava Once we decided that XML would be the language we would use to define the representation, we proceeded to research the best practices in XML design and manipulation. We followed the guidelines proposed in [[3]]. The main characteristics that the representation should have are the following: It should be easily extensible. 10

11 It should be complete: the representation should be able to model any java program that can be compiled by a standard java compiler, and all the details present in the code must be represented. In other words, so that it can be regenerated with a new transformation. The representation should be as generic and as simple as possible and should represent the structuring concepts of the object oriented programming paradigm. It should also represent Javadoc comments: not just as plain text but in a structured manner. Based on this and on the Java grammar we define xjava. To achieve extensibility we use an XML schema (XSD) for the definition. We based our design on Java 1.4. We do not include syntactic verification: we assume that the program that is being analyzed does not contain syntax errors. Given that XSD is inherently extensible, it will be easy to incorporate new features that appear in new versions of Java without having to change the representation. The translator was constructed using publicly available Java grammars. Our representation supports all constructs in this grammar, so its completeness is dependent on the completeness of the published grammars. Note that we are only representing static information. Though it is possible to extract information like the class diagram through transformations, we have not researched how to deal with features such as class reflection. Since xjava is used by other tools that analyze and apply transformations to extract information, it is important that it be generic and simple. Our design reflects this: the generated document s structure is data oriented and is completely structured. We used the Venetian Blind in most of the generated documents. Some structuring elements are not represented but can be obtained with an adequate transformation. Two examples of these simplifications are: Java s complete qualified names for packages, imports, or references to classes. Here, instead of obtaining the name of each subcomponent we always represent the name as a single string. The other example is the case of modifiers for classes, attributes or methods: instead of representing each modifier as a different element, the list of modifiers is represented as a single element which contains a string with all the modifiers separated by blanks. If any of these characteristics is needed, we can define transforms to obtain them. We show a simple example of a single java file with its corresponding translation to xjava. Figure 2 shows the sample code and Figure 3 the corresponding representation. We also define a representation for a Java project that includes references to all packages and files in a Java application. We used the XLINK standard defined by W3C to manage references and links with XML. 11

12 Finally, as we mentioned above, given that the tool is going to be used for reverse engineering it is important to represent comments. We defined a structured representation for comments that follow the Javadoc standard. Other comments are represented in plain text. A problem that arises when analyzing a comment is how to determine what programming construct it refers to. Does it refer to the construct in the same line, the previous line or the following line? At times this depends on the software engineer s or the organization s standards. We could try to guess the corresponding construct through parameterized heuristics depending on the number of blank lines before or after a comment. In our representation, we assumed that the comment made reference to the statement or declaration that appear after it. Figures 4 and 5 show an example of a Javadoc comment and the corresponding representation in xjava. Figures 6, 7, 8 and 9 show the result of applying the XSLT that transforms the xjava representation of a more complex program into a series of HTML files that show only the Javadoc comments in an ordered and navigatable manner. This view, though it works like the Javadoc tool or Doxygen, is easily modifiable and extensible by including customized tags. It is important to point out that our tool provides an alternate approach for managing comments. Our tool would be used instead of the Javadoc tool. The interesting feature is that comments are analyzed with the code itself. Though our tool would support new types of tags, we do not propose any methodology for writing comments as is the case in [[25]]. Figure 2. Sample Program 12

13 Figure 3. xjava representation of sample program 13

14 Figure 4 Javadoc Comment Figure 5. Javadoc Translation Figure 6 Files list with links 14

15 Figure 7 Class summary 15

16 Figure 8. Class fields, constructors and methods list with links Figure 9. Method detail 16

17 4.2. Technical Information The lexer and parser were generated using JavaCC [[11], [24]]. Currently many developers are using JavaCC and JavaCC grammar files for Java can be found in the JavaCC Grammar Repository [[12]]. This grammar is based on the initial grammar provided by Sun. We also used JavaCC to analyze Javadoc comments by using only the lexer with lexical states. It is important to point out that though there is a lot of documentation regarding the correct use of Javadoc [[13], [9]], we could not find a grammar that served our purposes. We first generated the syntax tree using JTB (Java Tree Builder) [[23]], a tool that can be used with JavaCC for this purpose. Then, we used the visitor pattern to generate the corresponding representation in xjava. We then used JDOM [[14]] to generate the XML document. Once we obtained this document, transformations can be applied to it to obtain different views. This can all be done though the command line. However, this does not provide a very friendly interface. Therefore, we decided to integrate it with Eclipse s graphical interface through contextual menus. This way a user can translate a Java project to its equivalent xjava representation and can obtain different views from an xjava file. Eclipse Wizards must be implemented for each transformation that requires additional user input. To take advantage of Eclipse s architecture it is not enough to define new plug-ins with new functions. The real potential of the workbench is the fact that it gives the opportunity to extend the plug-ins we have developed. Our plug-in allows developers to add new transformations through XSL transformations or using APIs for XML processing Using XScoRe The set of tools that we developed were tested on the same code used in their development. This is a large project and we were able to create the xjava presentation and obtain information given by the XST transformations that we implemented. The representation of comments was used to create the implementation manual. It is important to point out that by obtaining a representation in XML, it can be visualized in many ways depending on the transformation we use. We also tested it on various student projects. In particular we used it to create a representation of an application used in a course project in which students have to implement an interface of an existing application. As a rule, 17

18 students cannot modify the core of the application; they can only use the public methods of the main class. XScoRe aided in the understanding of the existing software. 18

19 5. SUMMARY AND FUTURE RESEARCH In this section we summarize the current state of the XSCoRe workbench and give directions for future work and research. The design of this workbench makes it ideal for adding features because of its extensible architecture. XScoRe includes the following tools: a translator from Java code to xjava, and an integrated mechanism for applying XSL transformations on the generated documents. Two views were implemented: a documentation view and a hypertext code view. The first one presents comments similarly to Javadoc s presentation scheme. The second view presents the code using HTML which allows straight forward navigation of the code. XScoRe is currently being enhanced with a transformation that obtained XMI from xjava. Once we have obtained the XMI representation, UML diagrams can be generated. The designed system can run as a standalone application through the command line. However, its functionality can be better exploited through the integration with the Eclipse platform. New transformations can easily be defined and integrated. The representation itself can be used to extract information through queries XPATH, XQUERY or XQL which allow queries a là SQL over XML documents. Currently we are working on constructing queries that can be used to obtain information related to certain metrics that in turn can help us detect bad smells [[6]]. We hope to be able to define transformations that can be used for refactoring. Not only can the workbench be extended by adding transformations and query possibilities, its design makes easy to incorporate changes to the language s grammar which are quite common with Java s versioning. In the previous paragraphs we mentioned some directions for future work which are facilitated by the design of the workbench. The basic idea is to include new transformations and support for query management that will add services to the workbench so that it covers more of the activities related to program comprehension and reverse engineering. 19

20 In terms of representation of comments, the current representation does not attempt to determine what program element the comment refers to. This would require the used of heuristics and probably some degree of human intervention. Evidently, it is not enough to have a static representation to achieve program understanding that is enough to carryout maintenance tasks and eventually migrate it to an evolutionary model. Future research should try to define new frameworks in which dynamic information can be represented, preferably also using XML, so that the resulting tools can be integrated with the current system. 6. CONCLUSIONS In this paper we described the results of a research project whose objectives were to develop tools to ease comprehension of java programs. The main results of the research were the development of a workbench (called XScoRe) and of the underlining representation of Java code (xjava). The workbench exhibits many of the characteristics which have been mentioned as vital in a reverse engineering environment: it provides mechanisms for information extraction, generation of multiple views, navigation, and most importantly it provides means for extending it with new features. The code representation is based on XML. Our approach differs from previous ones, in that the representation used was specifically designed with the purpose of reverse engineering. Therefore, it offers many advantages with respect to the code itself or classical textual code representation: it offers services for other reverse engineering tools to extract information and reason about the existing software system. The proposed representation facilitates obtaining program information in a more accessible and heterogeneous manner. Our representation models structures inherent to the object oriented paradigm instead of only representing Java s grammar rules. Therefore, it is at a higher level of abstraction than the source code and even than the syntax tree. We also represent comments which have been written following the Javadoc standard. It is not common for reverse engineering tools to provide support for managing comments. The representation of comments can also be extended if the user wants to define new tags. 20

21 Both XScore and xjava suggest a new approach towards program understanding. The methodology we used during our research defines a framework for the definition of program understanding workbenches that can be used to automate this process. The basic idea is to first define a representation of the source code that can be easily manipulated. The defined representation can then be used to construct different views directly from the representation which contains more information than what is usually available in the abstract syntax tree. Novel features of XSCoRe are the use of XML schemas which makes the workbench more extensible than other approaches; the inclusion of Javadoc comments in the representation so that they can be analyzed automatically; and the integrated representation of all files in an application organized in packages. The use of XML in a context different from that of data representation and exchange proposes a new approach that can be applied to reverse engineering and to any task that requires representing source code at a higher level of abstraction. This approach can be used in formal verification of programs, automatic code generation, or translation from a programming language to another. By the same token, it can also be used in forward engineering by aiding in the whole process of software development. We believe that this research is a significant contribution to problem of understanding source code. Moreover, this research gives new perspectives to the use of XML for a purpose different than that of data representation and exchange in multi-tier environments. Clearly the use of XML for program comprehension and development is just beginning. The results we have obtained till now may serve as a stepping stone for building more complex software comprehension tools. References [1] Antoniol, G. and Di Penta, M. and Merlo, E. YAAB (yet another AST browser): using OCL to navigate ASTs the 11 th IEEE International Workshop on Program Comprehension, Portland, Oregon, USA, May , pages:13-22; IEEE Computer Society Press, [2] Badros, G., JavaML : a markup language for Java source code [online]. International Conference On The World Wide Web (9 : 2000 : Amsterdam, Neatherlands). Available from citeseer: < [3] Bonneau, S., et al. XML Design Handbook. Wrox Press,

22 [4] Collard, M., Maletic, J., and Marcus A., Source code files as structured documents. En : 10 th International Workshop On Program Comprehension, Paris, France, 2002). [online] Available from citeseer: < [5] Collard, M.; Maletic, J., And Marcus A.,. Supporting Document and Data Views of Source Code [online]. Available from citeseer: < [6] Fowler, M., et. al., Refactoring: Improving the Design of Existing Code, Addison-Wesley Pub Co, 28 June, [7] Friendly, L. The Design of Distributed Hyperlinked Programming Documentation, International Workshop On Hypermedia Design, Montpellier, France, [online] Available from citeseer: < [8] Gardner, J., Rendon, Z., XSLT and XPATH: A Guide to XML Transformations. Prentice Hall, [9] How to Write Doc Comments for the Javadoc tool [online], Available from JavaSun < [10] JAHNKE, Jen et al. Reverse Engineering: A Roadmap Future of Software Engineering, Limerick, Ireland. [online], Available from citeseer: < [11] JavaCC Documentation [online], Available from JavaSun < [12] JavaCC Grammar Repository [online], Available from JavaSun: < [13] Javadoc Home Page [online], Available from JavaSun: < [14] JDOM Home Page [online]. < [15] Kontogiannis, K., Mamas, E. Towards Portable Source Code Representations Using XML, 7 th Working Conference On Reverse Engineering, Brisbane, Australia Available from csdl.computer.org. < [16] Kontogiannis, K., Zou, Y., Towards A Portable XML-based Source Code Representation, Xml Technologies And Software Engineering, [online], Available from citeseer: < [17] Montes, P., XSCoRe: Representación de Código Fuente basada en XML como una Herramienta de Asistencia al Proceso de Ingeniería en Reversa, Tesis de Maestría, Dept. Ingeniería de Sistemas y Computación, Universidad de los Andes, Bogotá, Colombia, [18] Rada, Roy. Reengineering Software: How to Reuse Programming to Build New, State-Of-The-Art Software. Fitzroy Dearborn Publishers, [19] Santanu, P., Smith, D., and Tilley, S., Towards a Framework for Program Understanding, 4 th Workshop On Program Comprehension, [online], Available from citeseer: < 22

23 [20] Simic, H., Topolnik, M., Prospects Of Encoding Java Source Code In XML, 7 th International Conference On Telecommunications, Zagreb, Croatia, 2003 [Online], Available From Citeseer: < [21] Tilley, S., Perspectives on Legacy System Reengineering Reengineering centre, Software Engineering Institute, Carnegie Mellon University, 1995, [online]. Available from < [22] Tilley, S., A Reverse-Engineering Environment Framework [online]. Reengineering centre, Software Engineering Institute, Carnegie Mellon University, [online]. Available from < [23] The Java Tree Builder Homepage [online]: < [24] The JavaCC FAQ [on line] < [25] Torchiano, M.,Documenting Pattern Use in Java Programs, In Proc. IEEE Int. Conf. on Software Maintenance (ICSM 2002), Montreal, Canada, October 3-6, 2002, pp

International Journal for Management Science And Technology (IJMST)

International Journal for Management Science And Technology (IJMST) Volume 4; Issue 03 Manuscript- 1 ISSN: 2320-8848 (Online) ISSN: 2321-0362 (Print) International Journal for Management Science And Technology (IJMST) GENERATION OF SOURCE CODE SUMMARY BY AUTOMATIC IDENTIFICATION

More information

An UML-XML-RDB Model Mapping Solution for Facilitating Information Standardization and Sharing in Construction Industry

An UML-XML-RDB Model Mapping Solution for Facilitating Information Standardization and Sharing in Construction Industry An UML-XML-RDB Model Mapping Solution for Facilitating Information Standardization and Sharing in Construction Industry I-Chen Wu 1 and Shang-Hsien Hsieh 2 Department of Civil Engineering, National Taiwan

More information

XML-based Programming Language Modeling: An Approach to Software Engineering

XML-based Programming Language Modeling: An Approach to Software Engineering XML-based Programming Language Modeling: An Approach to Software Engineering Christian Reichel University of Heidelberg Heidelberg, Germany christian.reichel@informatik.uni-heidelberg.de Roy Oberhauser

More information

XML: Extensible Markup Language

XML: Extensible Markup Language XML: Extensible Markup Language CSC 375, Fall 2015 XML is a classic political compromise: it balances the needs of man and machine by being equally unreadable to both. Matthew Might Slides slightly modified

More information

A tutorial report for SENG Agent Based Software Engineering. Course Instructor: Dr. Behrouz H. Far. XML Tutorial.

A tutorial report for SENG Agent Based Software Engineering. Course Instructor: Dr. Behrouz H. Far. XML Tutorial. A tutorial report for SENG 609.22 Agent Based Software Engineering Course Instructor: Dr. Behrouz H. Far XML Tutorial Yanan Zhang Department of Electrical and Computer Engineering University of Calgary

More information

Eclipse Support for Using Eli and Teaching Programming Languages

Eclipse Support for Using Eli and Teaching Programming Languages Electronic Notes in Theoretical Computer Science 141 (2005) 189 194 www.elsevier.com/locate/entcs Eclipse Support for Using Eli and Teaching Programming Languages Anthony M. Sloane 1,2 Department of Computing

More information

COMP9321 Web Application Engineering

COMP9321 Web Application Engineering COMP9321 Web Application Engineering Semester 2, 2015 Dr. Amin Beheshti Service Oriented Computing Group, CSE, UNSW Australia Week 4 http://webapps.cse.unsw.edu.au/webcms2/course/index.php?cid=2411 1 Extensible

More information

Chapter 3. Architecture and Design

Chapter 3. Architecture and Design Chapter 3. Architecture and Design Design decisions and functional architecture of the Semi automatic generation of warehouse schema has been explained in this section. 3.1. Technical Architecture System

More information

Specification and Automated Detection of Code Smells using OCL

Specification and Automated Detection of Code Smells using OCL Specification and Automated Detection of Code Smells using OCL Tae-Woong Kim 1, Tae-Gong Kim 2 and Jai-Hyun Seu 3 School of Computer Engineering, Inje University, Obang-dong 607, Gimhae, Gyeong-Nam, Korea

More information

An Eclipse Plug-In for Generating Database Access Documentation in Java Code

An Eclipse Plug-In for Generating Database Access Documentation in Java Code An Eclipse Plug-In for Generating Database Access Documentation in Java Code Paul L. Bergstein and Aditya Gade Dept. of Computer and Information Science, University of Massachusetts Dartmouth, Dartmouth,

More information

Software Architecture Recovery based on Dynamic Analysis

Software Architecture Recovery based on Dynamic Analysis Software Architecture Recovery based on Dynamic Analysis Aline Vasconcelos 1,2, Cláudia Werner 1 1 COPPE/UFRJ System Engineering and Computer Science Program P.O. Box 68511 ZIP 21945-970 Rio de Janeiro

More information

Documenting Java Database Access with Type Annotations

Documenting Java Database Access with Type Annotations Documenting Java Database Access with Type Annotations Paul L. Bergstein Dept. of Computer and Information Science, University of Massachusetts Dartmouth 285 Old Westport Rd., Dartmouth, MA 02747 pbergstein@umassd.edu

More information

Evolution of XML Applications

Evolution of XML Applications Evolution of XML Applications University of Technology Sydney, Australia Irena Mlynkova 9.11. 2011 XML and Web Engineering Research Group Department of Software Engineering Faculty of Mathematics and Physics

More information

Introduction to XML. XML: basic elements

Introduction to XML. XML: basic elements Introduction to XML XML: basic elements XML Trying to wrap your brain around XML is sort of like trying to put an octopus in a bottle. Every time you think you have it under control, a new tentacle shows

More information

Inyección de Dependencias en el Lenguaje de Programación Go

Inyección de Dependencias en el Lenguaje de Programación Go Inyección de Dependencias en el Lenguaje de Programación Go Dependency injection in GO programming language Carlos Eduardo Gutiérrez Morales Instituto Tecnológico de Colima g0402748@itcolima.edu.mx Jesús

More information

M359 Block5 - Lecture12 Eng/ Waleed Omar

M359 Block5 - Lecture12 Eng/ Waleed Omar Documents and markup languages The term XML stands for extensible Markup Language. Used to label the different parts of documents. Labeling helps in: Displaying the documents in a formatted way Querying

More information

Towards the re-usability of software metric definitions at the meta level

Towards the re-usability of software metric definitions at the meta level Towards the re-usability of software metric definitions at the meta level - Position Paper - Jacqueline A. McQuillan and James F. Power Department of Computer Science, National University of Ireland, Maynooth,

More information

The XML Metalanguage

The XML Metalanguage The XML Metalanguage Mika Raento mika.raento@cs.helsinki.fi University of Helsinki Department of Computer Science Mika Raento The XML Metalanguage p.1/442 2003-09-15 Preliminaries Mika Raento The XML Metalanguage

More information

An Implementation of the Behavior Annex in the AADL-toolset Osate2

An Implementation of the Behavior Annex in the AADL-toolset Osate2 2011 16th IEEE International Conference on Engineering of Complex Computer Systems An Implementation of the Behavior Annex in the AADL-toolset Osate2 Gilles Lasnier, Laurent Pautet Inst. TELECOM - TELECOM

More information

Chapter 13 XML: Extensible Markup Language

Chapter 13 XML: Extensible Markup Language Chapter 13 XML: Extensible Markup Language - Internet applications provide Web interfaces to databases (data sources) - Three-tier architecture Client V Application Programs Webserver V Database Server

More information

extensible Markup Language

extensible Markup Language extensible Markup Language XML is rapidly becoming a widespread method of creating, controlling and managing data on the Web. XML Orientation XML is a method for putting structured data in a text file.

More information

COMP9321 Web Application Engineering

COMP9321 Web Application Engineering COMP9321 Web Application Engineering Semester 2, 2015 Dr. Amin Beheshti Service Oriented Computing Group, CSE, UNSW Australia Week 12 (Wrap-up) http://webapps.cse.unsw.edu.au/webcms2/course/index.php?cid=2411

More information

Introduction to XML. Asst. Prof. Dr. Kanda Runapongsa Saikaew Dept. of Computer Engineering Khon Kaen University

Introduction to XML. Asst. Prof. Dr. Kanda Runapongsa Saikaew Dept. of Computer Engineering Khon Kaen University Introduction to XML Asst. Prof. Dr. Kanda Runapongsa Saikaew Dept. of Computer Engineering Khon Kaen University http://gear.kku.ac.th/~krunapon/xmlws 1 Topics p What is XML? p Why XML? p Where does XML

More information

Model driven Engineering & Model driven Architecture

Model driven Engineering & Model driven Architecture Model driven Engineering & Model driven Architecture Prof. Dr. Mark van den Brand Software Engineering and Technology Faculteit Wiskunde en Informatica Technische Universiteit Eindhoven Model driven software

More information

Turning a Suite of Modeling and Processing Tools Into a Production Grade System

Turning a Suite of Modeling and Processing Tools Into a Production Grade System Turning a Suite of Modeling and Processing Tools Into a Production Grade System Pascal Rivière 1, Olivier Rosec 1 1 Caisse nationale d assurance vieillesse (Cnav) 110 112 avenue de Flandre, F-75019 Paris

More information

Introduction to XML 3/14/12. Introduction to XML

Introduction to XML 3/14/12. Introduction to XML Introduction to XML Asst. Prof. Dr. Kanda Runapongsa Saikaew Dept. of Computer Engineering Khon Kaen University http://gear.kku.ac.th/~krunapon/xmlws 1 Topics p What is XML? p Why XML? p Where does XML

More information

Automation of Semantic Web based Digital Library using Unified Modeling Language Minal Bhise 1 1

Automation of Semantic Web based Digital Library using Unified Modeling Language Minal Bhise 1 1 Automation of Semantic Web based Digital Library using Unified Modeling Language Minal Bhise 1 1 Dhirubhai Ambani Institute for Information and Communication Technology, Gandhinagar, Gujarat, India Email:

More information

ADT: Eclipse development tools for ATL

ADT: Eclipse development tools for ATL ADT: Eclipse development tools for ATL Freddy Allilaire (freddy.allilaire@laposte.net) Tarik Idrissi (tarik.idrissi@laposte.net) Université de Nantes Faculté de Sciences et Techniques LINA (Laboratoire

More information

An Annotation Tool for Semantic Documents

An Annotation Tool for Semantic Documents An Annotation Tool for Semantic Documents (System Description) Henrik Eriksson Dept. of Computer and Information Science Linköping University SE-581 83 Linköping, Sweden her@ida.liu.se Abstract. Document

More information

Executive Summary. Round Trip Engineering of Space Systems. Change Log. Executive Summary. Visas

Executive Summary. Round Trip Engineering of Space Systems. Change Log. Executive Summary. Visas Reference: egos-stu-rts-rp-1002 Page 1/7 Authors: Andrey Sadovykh (SOFTEAM) Contributors: Tom Ritter, Andreas Hoffmann, Jürgen Großmann (FHG), Alexander Vankov, Oleg Estekhin (GTI6) Visas Surname - Name

More information

INCORPORATING ADVANCED PROGRAMMING TECHNIQUES IN THE COMPUTER INFORMATION SYSTEMS CURRICULUM

INCORPORATING ADVANCED PROGRAMMING TECHNIQUES IN THE COMPUTER INFORMATION SYSTEMS CURRICULUM INCORPORATING ADVANCED PROGRAMMING TECHNIQUES IN THE COMPUTER INFORMATION SYSTEMS CURRICULUM Charles S. Saxon, Eastern Michigan University, charles.saxon@emich.edu ABSTRACT Incorporating advanced programming

More information

Delivery Options: Attend face-to-face in the classroom or remote-live attendance.

Delivery Options: Attend face-to-face in the classroom or remote-live attendance. XML Programming Duration: 5 Days Price: $2795 *California residents and government employees call for pricing. Discounts: We offer multiple discount options. Click here for more info. Delivery Options:

More information

Evaluating OO-CASE tools: OO research meets practice

Evaluating OO-CASE tools: OO research meets practice Evaluating OO-CASE tools: OO research meets practice Danny Greefhorst, Matthijs Maat, Rob Maijers {greefhorst, maat, maijers}@serc.nl Software Engineering Research Centre - SERC PO Box 424 3500 AK Utrecht

More information

An improved XML syntax for the Java programming language

An improved XML syntax for the Java programming language An improved XML syntax for the Java programming language Marko Topolnik University of Zagreb, FER Unska 3, Zagreb, Croatia (HR-10000) marko.topolnik@fer.hr Abstract The benefits of using XML to encode

More information

COMP9321 Web Application Engineering

COMP9321 Web Application Engineering COMP9321 Web Application Engineering Semester 1, 2017 Dr. Amin Beheshti Service Oriented Computing Group, CSE, UNSW Australia Week 12 (Wrap-up) http://webapps.cse.unsw.edu.au/webcms2/course/index.php?cid=2457

More information

Standard Business Rules Language: why and how? ICAI 06

Standard Business Rules Language: why and how? ICAI 06 Standard Business Rules Language: why and how? ICAI 06 M. Diouf K. Musumbu S. Maabout LaBRI (UMR 5800 du CNRS), 351, cours de la Libération, F-33.405 TALENCE Cedex e-mail: {diouf, musumbu, maabout}@labri.fr

More information

UML-Based Conceptual Modeling of Pattern-Bases

UML-Based Conceptual Modeling of Pattern-Bases UML-Based Conceptual Modeling of Pattern-Bases Stefano Rizzi DEIS - University of Bologna Viale Risorgimento, 2 40136 Bologna - Italy srizzi@deis.unibo.it Abstract. The concept of pattern, meant as an

More information

Device Independent Principles for Adapted Content Delivery

Device Independent Principles for Adapted Content Delivery Device Independent Principles for Adapted Content Delivery Tayeb Lemlouma 1 and Nabil Layaïda 2 OPERA Project Zirst 655 Avenue de l Europe - 38330 Montbonnot, Saint Martin, France Tel: +33 4 7661 5281

More information

Heading-Based Sectional Hierarchy Identification for HTML Documents

Heading-Based Sectional Hierarchy Identification for HTML Documents Heading-Based Sectional Hierarchy Identification for HTML Documents 1 Dept. of Computer Engineering, Boğaziçi University, Bebek, İstanbul, 34342, Turkey F. Canan Pembe 1,2 and Tunga Güngör 1 2 Dept. of

More information

Navigating Large Source Files Using a Fisheye View

Navigating Large Source Files Using a Fisheye View Navigating Large Source Files Using a Fisheye View Jakub Dostál 1 1 University College Dublin, Ireland dostal.j@gmail.com Abstract As programs grow larger, it becomes more difficult to understand their

More information

Representing Software Traceability using UML and XTM with an investigation into Traceability Patterns

Representing Software Traceability using UML and XTM with an investigation into Traceability Patterns Honours Project 2005 Representing Software Traceability using UML and XTM with an investigation into Traceability Patterns David Hollings University of Cape Town Dept. of Computer Science South Africa

More information

APPLYING OBJECT-ORIENTATION AND ASPECT-ORIENTATION IN TEACHING DOMAIN-SPECIFIC LANGUAGE IMPLEMENTATION *

APPLYING OBJECT-ORIENTATION AND ASPECT-ORIENTATION IN TEACHING DOMAIN-SPECIFIC LANGUAGE IMPLEMENTATION * APPLYING OBJECT-ORIENTATION AND ASPECT-ORIENTATION IN TEACHING DOMAIN-SPECIFIC LANGUAGE IMPLEMENTATION * Xiaoqing Wu, Barrett Bryant and Jeff Gray Department of Computer and Information Sciences The University

More information

XML Markup Languages Framework for Programming in 21 st Century towards Managed Software Engineering

XML Markup Languages Framework for Programming in 21 st Century towards Managed Software Engineering XML Markup Languages Framework for Programming in 21 st Century towards Managed Software Engineering Khubaib Ahmed Qureshi Department of Information Technology, Hamdard Institute of Management Sciences

More information

SDMX self-learning package No. 3 Student book. SDMX-ML Messages

SDMX self-learning package No. 3 Student book. SDMX-ML Messages No. 3 Student book SDMX-ML Messages Produced by Eurostat, Directorate B: Statistical Methodologies and Tools Unit B-5: Statistical Information Technologies Last update of content February 2010 Version

More information

An XML-based Framework for Language Neutral Program Representation and Generic Analysis

An XML-based Framework for Language Neutral Program Representation and Generic Analysis An XML-based Framework for Language Neutral Program Representation and Generic Analysis Raihan Al-Ekram and Kostas Kontogiannis Dept. of Electrical and Computer Engineering University of Waterloo Waterloo,

More information

Managing Learning Objects in Large Scale Courseware Authoring Studio 1

Managing Learning Objects in Large Scale Courseware Authoring Studio 1 Managing Learning Objects in Large Scale Courseware Authoring Studio 1 Ivo Marinchev, Ivo Hristov Institute of Information Technologies Bulgarian Academy of Sciences, Acad. G. Bonchev Str. Block 29A, Sofia

More information

Document-Centric Computing

Document-Centric Computing Document-Centric Computing White Paper Abstract A document is a basic instrument for business and personal interaction and for capturing and communicating information and knowledge. Until the invention

More information

Generalized Document Data Model for Integrating Autonomous Applications

Generalized Document Data Model for Integrating Autonomous Applications 6 th International Conference on Applied Informatics Eger, Hungary, January 27 31, 2004. Generalized Document Data Model for Integrating Autonomous Applications Zsolt Hernáth, Zoltán Vincellér Abstract

More information

11. EXTENSIBLE MARKUP LANGUAGE (XML)

11. EXTENSIBLE MARKUP LANGUAGE (XML) 11. EXTENSIBLE MARKUP LANGUAGE (XML) Introduction Extensible Markup Language is a Meta language that describes the contents of the document. So these tags can be called as self-describing data tags. XML

More information

3rd Lecture Languages for information modeling

3rd Lecture Languages for information modeling 3rd Lecture Languages for information modeling Agenda Languages for information modeling UML UML basic concepts Modeling by UML diagrams CASE tools: concepts, features and objectives CASE toolset architecture

More information

XML Technologies Dissected Erik Wilde Swiss Federal Institute of Technology, Zürich

XML Technologies Dissected Erik Wilde Swiss Federal Institute of Technology, Zürich XML Technologies Dissected Erik Wilde Swiss Federal Institute of Technology, Zürich The lack of well-defined information models in many XML technologies can generate compatibility problems and lower the

More information

A SHIFT OF ACCENT IN INTRODUCTORY OBJECT ORIENTED PROGRAMMING COURSES. Eugeni Gentchev*, Claudia Roda**

A SHIFT OF ACCENT IN INTRODUCTORY OBJECT ORIENTED PROGRAMMING COURSES. Eugeni Gentchev*, Claudia Roda** A SHIFT OF ACCENT IN INTRODUCTORY OBJECT ORIENTED PROGRAMMING COURSES Eugeni Gentchev*, Claudia Roda** * The American University of Paris, Computer Science Department 148 rue de Grenelle, 75007 Paris,

More information

PECULIARITIES OF LINKED DATA PROCESSING IN SEMANTIC APPLICATIONS. Sergey Shcherbak, Ilona Galushka, Sergey Soloshich, Valeriy Zavgorodniy

PECULIARITIES OF LINKED DATA PROCESSING IN SEMANTIC APPLICATIONS. Sergey Shcherbak, Ilona Galushka, Sergey Soloshich, Valeriy Zavgorodniy International Journal "Information Models and Analyses" Vol.2 / 2013, Number 2 139 PECULIARITIES OF LINKED DATA PROCESSING IN SEMANTIC APPLICATIONS Sergey Shcherbak, Ilona Galushka, Sergey Soloshich, Valeriy

More information

Knowledge Discovery: How to Reverse-Engineer Legacy Systems

Knowledge Discovery: How to Reverse-Engineer Legacy Systems Knowledge Discovery: How to Reverse-Engineer Legacy Systems Hugo Bruneliere, Frédéric Madiot INRIA & MIA-Software 1 Context of this work Knowledge Discovery: How To Reverse-Engineer Legacy Sytems The present

More information

COMP9321 Web Application Engineering

COMP9321 Web Application Engineering COMP9321 Web Application Engineering Semester 2, 2017 Dr. Amin Beheshti Service Oriented Computing Group, CSE, UNSW Australia Week 4 http://webapps.cse.unsw.edu.au/webcms2/course/index.php?cid= 2465 1

More information

Summary of Bird and Simons Best Practices

Summary of Bird and Simons Best Practices Summary of Bird and Simons Best Practices 6.1. CONTENT (1) COVERAGE Coverage addresses the comprehensiveness of the language documentation and the comprehensiveness of one s documentation of one s methodology.

More information

Metamorphosis An Environment to Achieve Semantic Interoperability with Topic Maps

Metamorphosis An Environment to Achieve Semantic Interoperability with Topic Maps Metamorphosis An Environment to Achieve Semantic Interoperability with Topic Maps Giovani Rubert Librelotto 1 and José Carlos Ramalho 2 and Pedro Rangel Henriques 2 1 UNIFRA Centro Universitário Franciscano

More information

Automatized Generating of GUIs for Domain-Specific Languages

Automatized Generating of GUIs for Domain-Specific Languages Automatized Generating of GUIs for Domain-Specific Languages Michaela Bačíková, Dominik Lakatoš, and Milan Nosáľ Technical University of Košice, Letná 9, 04200 Košice, Slovakia, (michaela.bacikova, dominik.lakatos,

More information

White Paper on RFP II: Abstract Syntax Tree Meta-Model

White Paper on RFP II: Abstract Syntax Tree Meta-Model White Paper on RFP II: Abstract Syntax Tree Meta-Model OMG Architecture Driven Modernization Task Force August 18, 2004 Contributors: Philip Newcomb, The Software Revolution, Inc. Ed Gentry, Blue Phoenix,

More information

ITM DEVELOPMENT (ITMD)

ITM DEVELOPMENT (ITMD) ITM Development (ITMD) 1 ITM DEVELOPMENT (ITMD) ITMD 361 Fundamentals of Web Development This course will cover the creation of Web pages and sites using HTML, CSS, Javascript, jquery, and graphical applications

More information

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe. Slide 27-1

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe. Slide 27-1 Slide 27-1 Chapter 27 XML: Extensible Markup Language Chapter Outline Introduction Structured, Semi structured, and Unstructured Data. XML Hierarchical (Tree) Data Model. XML Documents, DTD, and XML Schema.

More information

Database Systems: Design, Implementation, and Management Tenth Edition. Chapter 14 Database Connectivity and Web Technologies

Database Systems: Design, Implementation, and Management Tenth Edition. Chapter 14 Database Connectivity and Web Technologies Database Systems: Design, Implementation, and Management Tenth Edition Chapter 14 Database Connectivity and Web Technologies Database Connectivity Mechanisms by which application programs connect and communicate

More information

Use of XML Schema and XML Query for ENVISAT product data handling

Use of XML Schema and XML Query for ENVISAT product data handling Use of XML Schema and XML Query for ENVISAT product data handling Stéphane Mbaye stephane.mbaye@gael.fr GAEL Consultant Cité Descartes, 8 rue Albert Einstein 77420 Champs-sur-Marne, France Abstract * This

More information

Adaptable and Adaptive Web Information Systems. Lecture 1: Introduction

Adaptable and Adaptive Web Information Systems. Lecture 1: Introduction Adaptable and Adaptive Web Information Systems School of Computer Science and Information Systems Birkbeck College University of London Lecture 1: Introduction George Magoulas gmagoulas@dcs.bbk.ac.uk October

More information

A MAS Based ETL Approach for Complex Data

A MAS Based ETL Approach for Complex Data A MAS Based ETL Approach for Complex Data O. Boussaid, F. Bentayeb, J. Darmont Abstract : In a data warehousing process, the phase of data integration is crucial. Many methods for data integration have

More information

Part VII. Querying XML The XQuery Data Model. Marc H. Scholl (DBIS, Uni KN) XML and Databases Winter 2005/06 153

Part VII. Querying XML The XQuery Data Model. Marc H. Scholl (DBIS, Uni KN) XML and Databases Winter 2005/06 153 Part VII Querying XML The XQuery Data Model Marc H. Scholl (DBIS, Uni KN) XML and Databases Winter 2005/06 153 Outline of this part 1 Querying XML Documents Overview 2 The XQuery Data Model The XQuery

More information

x ide xml Integrated Development Environment Specifications Document 1 Project Description 2 Specifi fications

x ide xml Integrated Development Environment Specifications Document 1 Project Description 2 Specifi fications x ide xml Integrated Development Environment Specifications Document Colin Hartnett (cphartne) 7 February 2003 1 Project Description There exist many integrated development environments that make large

More information

CSI 3140 WWW Structures, Techniques and Standards. Representing Web Data: XML

CSI 3140 WWW Structures, Techniques and Standards. Representing Web Data: XML CSI 3140 WWW Structures, Techniques and Standards Representing Web Data: XML XML Example XML document: An XML document is one that follows certain syntax rules (most of which we followed for XHTML) Guy-Vincent

More information

Using Attribute Grammars to Uniformly Represent Structured Documents - Application to Information Retrieval

Using Attribute Grammars to Uniformly Represent Structured Documents - Application to Information Retrieval Using Attribute Grammars to Uniformly Represent Structured Documents - Application to Information Retrieval Alda Lopes Gançarski Pierre et Marie Curie University, Laboratoire d Informatique de Paris 6,

More information

Xerces Http Apache Org Xml Features Validation Schema Full Checking

Xerces Http Apache Org Xml Features Validation Schema Full Checking Xerces Http Apache Org Xml Features Validation Schema Full Checking Hi, Apache Jena uses a feature of Xerces 2 for validating strings that claim to be setfeature("apache.org/xml/features/validation/schema-full-checking".

More information

Data Exchange. Hyper-Text Markup Language. Contents: HTML Sample. HTML Motivation. Cascading Style Sheets (CSS) Problems w/html

Data Exchange. Hyper-Text Markup Language. Contents: HTML Sample. HTML Motivation. Cascading Style Sheets (CSS) Problems w/html Data Exchange Contents: Mariano Cilia / cilia@informatik.tu-darmstadt.de Origins (HTML) Schema DOM, SAX Semantic Data Exchange Integration Problems MIX Model 1 Hyper-Text Markup Language HTML Hypertext:

More information

KNSP: A Kweelt - Niagara based Quilt Processor Inside Cocoon over Apache

KNSP: A Kweelt - Niagara based Quilt Processor Inside Cocoon over Apache KNSP: A Kweelt - Niagara based Quilt Processor Inside Cocoon over Apache Xidong Wang & Shiliang Hu {wxd, shiliang}@cs.wisc.edu Department of Computer Science, University of Wisconsin Madison 1. Introduction

More information

code pattern analysis of object-oriented programming languages

code pattern analysis of object-oriented programming languages code pattern analysis of object-oriented programming languages by Xubo Miao A thesis submitted to the School of Computing in conformity with the requirements for the degree of Master of Science Queen s

More information

Semi-Formal, not Semi-Realistic: A New Approach to Describing Software Components

Semi-Formal, not Semi-Realistic: A New Approach to Describing Software Components Semi-Formal, not Semi-Realistic: A New Approach to Describing Software Components E James Montgomery, Rune Meling, Daniela Mehandjiska School of Information Technology Bond University Queensland, Australia

More information

HERA: Automatically Generating Hypermedia Front- Ends for Ad Hoc Data from Heterogeneous and Legacy Information Systems

HERA: Automatically Generating Hypermedia Front- Ends for Ad Hoc Data from Heterogeneous and Legacy Information Systems HERA: Automatically Generating Hypermedia Front- Ends for Ad Hoc Data from Heterogeneous and Legacy Information Systems Geert-Jan Houben 1,2 1 Eindhoven University of Technology, Dept. of Mathematics and

More information

COMP9321 Web Application Engineering. Extensible Markup Language (XML)

COMP9321 Web Application Engineering. Extensible Markup Language (XML) COMP9321 Web Application Engineering Extensible Markup Language (XML) Dr. Basem Suleiman Service Oriented Computing Group, CSE, UNSW Australia Semester 1, 2016, Week 4 http://webapps.cse.unsw.edu.au/webcms2/course/index.php?cid=2442

More information

7.1 Introduction. extensible Markup Language Developed from SGML A meta-markup language Deficiencies of HTML and SGML

7.1 Introduction. extensible Markup Language Developed from SGML A meta-markup language Deficiencies of HTML and SGML 7.1 Introduction extensible Markup Language Developed from SGML A meta-markup language Deficiencies of HTML and SGML Lax syntactical rules Many complex features that are rarely used HTML is a markup language,

More information

Parser Design. Neil Mitchell. June 25, 2004

Parser Design. Neil Mitchell. June 25, 2004 Parser Design Neil Mitchell June 25, 2004 1 Introduction A parser is a tool used to split a text stream, typically in some human readable form, into a representation suitable for understanding by a computer.

More information

An Approach To Web Content Mining

An Approach To Web Content Mining An Approach To Web Content Mining Nita Patil, Chhaya Das, Shreya Patanakar, Kshitija Pol Department of Computer Engg. Datta Meghe College of Engineering, Airoli, Navi Mumbai Abstract-With the research

More information

Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley. Chapter 7 XML

Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley. Chapter 7 XML Chapter 7 XML 7.1 Introduction extensible Markup Language Developed from SGML A meta-markup language Deficiencies of HTML and SGML Lax syntactical rules Many complex features that are rarely used HTML

More information

ANX-PR/CL/ LEARNING GUIDE

ANX-PR/CL/ LEARNING GUIDE PR/CL/001 SUBJECT 103000693 - DEGREE PROGRAMME 10AQ - ACADEMIC YEAR & SEMESTER 2018/19 - Semester 1 Index Learning guide 1. Description...1 2. Faculty...1 3. Prior knowledge recommended to take the subject...2

More information

SRI VIDYA COLLEGE OF ENGINEERING & TECHNOLOGY- VIRUDHUNAGAR

SRI VIDYA COLLEGE OF ENGINEERING & TECHNOLOGY- VIRUDHUNAGAR UNIT IV Part A 1. WHAT IS THE USE OF XML NAMESPACE? XML allows document authors to create custom elements. This extensibility can result in naming collisions (i.e. different elements that have the same

More information

IBM WebSphere Message Broker V8 Application Development I

IBM WebSphere Message Broker V8 Application Development I IBM WebSphere Message Broker V8 Application Development I Duración: 5 Días Código del Curso: WM664G Temario: This 5-day instructor-led course provides an intermediate-level overview of the WebSphere Message

More information

Relating Meta modelling and Concrete Textual Syntax

Relating Meta modelling and Concrete Textual Syntax Relating Meta modelling and Concrete Textual Syntax Francisco Pérez Andrés (Escuela Politécnica Superior, Ingeniería Informática, Universidad Autónoma de Madrid) MSDL 2006 Summer Presentations Monday 28

More information

Computation Independent Model (CIM): Platform Independent Model (PIM): Platform Specific Model (PSM): Implementation Specific Model (ISM):

Computation Independent Model (CIM): Platform Independent Model (PIM): Platform Specific Model (PSM): Implementation Specific Model (ISM): viii Preface The software industry has evolved to tackle new approaches aligned with the Internet, object-orientation, distributed components and new platforms. However, the majority of the large information

More information

GENERATING RESTRICTION RULES AUTOMATICALLY WITH AN INFORMATION SYSTEM

GENERATING RESTRICTION RULES AUTOMATICALLY WITH AN INFORMATION SYSTEM GENERATING RESTRICTION RULES AUTOMATICALLY WITH AN INFORMATION SYSTEM M.Sc. Martha Beatriz Boggiano Castillo, Lic. Alaín Pérez Alonso, M.Sc. María Elena Martínez del Busto, Dr. Ramiro Pérez Vázquez, Dra.

More information

Transformational Abstraction for Java (TAJ)

Transformational Abstraction for Java (TAJ) Transformational Abstraction for Java (TAJ) Advisor: Student: Dr. Spencer Rugaber Sergio Berzosa González Motivation A major problem in software maintenance and reverse engineering is the lack of documentation

More information

SCOS-2000 Technical Note

SCOS-2000 Technical Note SCOS-2000 Technical Note MDA Study Prototyping Technical Note Document Reference: Document Status: Issue 1.0 Prepared By: Eugenio Zanatta MDA Study Prototyping Page: 2 Action Name Date Signature Prepared

More information

XML: the document format of the future?

XML: the document format of the future? Arco User Conference 99 XML: the document format of the future? Hans C. Arents senior IT market analyst I.T. Works Guiding the IT Professional Innovation Center, Technologiepark 3, B-9052 Gent (Belgium),

More information

EBS goes social - The triumvirate Liferay, Application Express and EBS

EBS goes social - The triumvirate Liferay, Application Express and EBS EBS goes social - The triumvirate Liferay, Application Express and EBS Keywords: EBS, Portals, Application Express, Integration Overview Michael Pergande PROMATIS software GmbH Ettlingen As part of Oracle

More information

AGORA: a Layered Architecture for Cooperative Work Environments

AGORA: a Layered Architecture for Cooperative Work Environments AGORA: a Layered Architecture for Cooperative Work Environments Miguel A. Martínez-Prieto, Pablo de la Fuente GRINBD, Universidad de Valladolid 47011 Valladolid (Spain) migumar2,pfuente@infor.uva.es Carlos

More information

Comp 336/436 - Markup Languages. Fall Semester Week 4. Dr Nick Hayward

Comp 336/436 - Markup Languages. Fall Semester Week 4. Dr Nick Hayward Comp 336/436 - Markup Languages Fall Semester 2018 - Week 4 Dr Nick Hayward XML - recap first version of XML became a W3C Recommendation in 1998 a useful format for data storage and exchange config files,

More information

Ingegneria del Software Corso di Laurea in Informatica per il Management. Introduction to UML

Ingegneria del Software Corso di Laurea in Informatica per il Management. Introduction to UML Ingegneria del Software Corso di Laurea in Informatica per il Management Introduction to UML Davide Rossi Dipartimento di Informatica Università di Bologna Modeling A model is an (abstract) representation

More information

José Manuel Barrueco Cruz and Thomas Krichel. Subject description in the academic metadata format

José Manuel Barrueco Cruz and Thomas Krichel. Subject description in the academic metadata format José Manuel Barrueco Cruz and Thomas Krichel Subject description in the academic metadata format En este trabajo abordamos el problema de codificación de clasificaciones en un formato de metadatos determinado

More information

MODEL-DRIVEN REVERSE ENGINEERING AND PROGRAM COMPREHENSION: AN EXAMPLE INGENIERÍA REVERSA Y COMPRENSIÓN DE PROGRAMAS DIRIGIDA POR MODELOS: UN EJEMPLO

MODEL-DRIVEN REVERSE ENGINEERING AND PROGRAM COMPREHENSION: AN EXAMPLE INGENIERÍA REVERSA Y COMPRENSIÓN DE PROGRAMAS DIRIGIDA POR MODELOS: UN EJEMPLO Ingeniare. Revista chilena de ingeniería, vol. 18 Nº 1, 2010, pp. 76-83 MODEL-DRIVEN REVERSE ENGINEERING AND PROGRAM COMPREHENSION: AN EXAMPLE INGENIERÍA REVERSA Y COMPRENSIÓN DE PROGRAMAS DIRIGIDA POR

More information

Recovery of Design Pattern from source code

Recovery of Design Pattern from source code Recovery of Design Pattern from source code Amit Kumar Gautam and T.Gayen Software Engineering, IIIT Allahabad tgayen@iiita.ac.in, Ise2008004@iiita.ac.in Abstract. The approach for detecting design pattern

More information

End User s Guide Release 5.0

End User s Guide Release 5.0 [1]Oracle Application Express End User s Guide Release 5.0 E39146-04 August 2015 Oracle Application Express End User's Guide, Release 5.0 E39146-04 Copyright 2012, 2015, Oracle and/or its affiliates. All

More information

Data Presentation and Markup Languages

Data Presentation and Markup Languages Data Presentation and Markup Languages MIE456 Tutorial Acknowledgements Some contents of this presentation are borrowed from a tutorial given at VLDB 2000, Cairo, Agypte (www.vldb.org) by D. Florescu &.

More information

Comparing Open Source Digital Library Software

Comparing Open Source Digital Library Software Comparing Open Source Digital Library Software George Pyrounakis University of Athens, Greece Mara Nikolaidou Harokopio University of Athens, Greece Topic: Digital Libraries: Design and Development, Open

More information

Delivery Options: Attend face-to-face in the classroom or via remote-live attendance.

Delivery Options: Attend face-to-face in the classroom or via remote-live attendance. XML Programming Duration: 5 Days US Price: $2795 UK Price: 1,995 *Prices are subject to VAT CA Price: CDN$3,275 *Prices are subject to GST/HST Delivery Options: Attend face-to-face in the classroom or

More information