A PARSING APPROACH FOR SYSTEM BEHAVIOUR MODELING

Size: px
Start display at page:

Download "A PARSING APPROACH FOR SYSTEM BEHAVIOUR MODELING"

Transcription

1 IADIS International Conference Applied Computing 2007 A PARSING APPROACH FOR SYSTEM BEHAVIOUR MODELING Lau Sei Ping 1, Wee Bui Lin 2, Nurfauza bt Jali 3 Faculty of Computer Science and Information Technology Universiti Malaysia Sarawak ABSTRACT Software maintenance tasks are getting more complex and expensive as a system evolves, especially during the iterative development where the design documents have not been updated to reflect code changes. Thus, software maintainers devote most of their efforts trying to understand the flow of the system that they are working on during the maintenance process. Reverse engineering tools play an important role in facilitating this process by reproducing the design model. This will enable the software maintainer to have a clearer comprehension of the software behaviours and the architecture of the system, especially through the graphical representation models. Sequence diagram is one of the essential UML artefacts that depict the objects interaction in the system and provides a self-documented communication medium among the software project team members, especially the software developer and designer. This paper proposes a data extraction approach to map the program behaviours that reflect the actual program design through a reverse engineering process. The parsing technique is used throughout the data extraction process to transform source code into a data structure of tree form before it is analysed. This paper demonstrates the proposed approach using static Java programming source code. KEYWORDS Reverse Engineering, Modelling, Parsing Technique, Sequence Diagram 1. INTRODUCTION Software documentations are very essential in software development process to provide better comprehension and references to all stack holders of the system particularly during the software maintenance process. Without a proper documentation, software maintenance tasks can become very complex and expensive to perform as the system evolves during the repetitive software development, especially where the design documents have not been updated to reflect the actual code changes. Thus, software maintainers devote most of their efforts trying to understand the flows and the architecture design of the system that they are working on during the maintenance process. In order to solve this problem, reverse engineering tools are created to facilitate maintenance process by reproducing the design model. The aim of reverse engineering is to reproduce the design model from the software itself to offer the programmers high-level presentation of the program, to ensure consistency in the actual implementation (Systä, 1999). This enables the software maintainer to have a clearer comprehension of the software behaviours and the architecture of the system, especially through the graphical representation models. Sequence diagram is one of the essential UML artefacts that depict the objects interaction in the system and a self-documented communication medium among the software project team members, especially the software developer and designer. Such diagrams capture important aspects of the object interactions, and can be naturally used to define the testing goals that must be achieved during software testing (Rountev et al.,2005). To regenerate a sequence diagram, data extraction is one of the important components of reverse engineering in order to draw out the relevant information of the system behaviour. This paper presents the use of parsing technique approach for data extraction and analysis in attempt of mapping the program behaviours that reflect the actual program design and present it vividly via graphical presentation model; namely the sequence diagram. The data extracted from static java source code is converted into a data 541

2 ISBN: IADIS structure in a tree form before it is analysed to achieve the goal. This work only concentrates on reversing the java programming source code into parsed graphical representation and is done on the static source code. 2. RELATED WORKS There are various methods and approaches have been introduced by researches aimed to achieve reverse engineering by modelling the system behaviour through the sequence diagram. For instance, Quigley has utilized the runtime results to identify the objects and classes interaction in a program based on the memory allocation (Quigley et al.,2000). This kind of graphical representation in form of memory numbers was not really readable and easily comprehends by readers. While A. Rountev has utilized the control flow analysis method to model the flow of the massages passing between the objects (Rountev et al.,2004)and this research was able to show the behaviour of a method clearly. The same authors have also produced a highly-precise object naming in mapping the existing code to sequence diagram through a static analysis (Rountev et al.,2005). However, it could only support a portion of the program and restricted to the singleton method call. Besides that, another method is by compacting a repetition from the dynamic information of object-oriented programs during the program execution to generate the sequence diagram (Koji et al.,2005). Four compaction rules are introduced in this method to reduce the amount of information on the method calls tracing by abstracting some repetition patterns and recursive calls. Another similar work conducted uses three different techniques; filtering, slicing and information hiding to extract information from program execution trace at various levels of abstraction in order to generate the sequence diagram (Vasconcelos et al.,2005). Whereas, Java Interactive Visualisation Environment (JIVE), is a prominent reverse engineering research project offering a different approach addressed to the same problem (Gestwicki et al.,2004). JIVE provides an interactive environment that facilitates the teaching and debugging, where it is able to show the relationships between the objects, methods and static contacts visually from different views depend on various interests. Besides that, JIVE is also depicts the program behaviour at program runtime with the interactive sequence diagram to allow better understanding of the program execution and this is also the main focuses of our project. However, they have proven that JIVEgenerated sequence diagram is unable to produce meaningful illustration of the system behaviour of various program structures, especially with graphical interface program. 3. APPROACH AND METHODS In this section, we propose an approach on how to retrieve the UML sequence diagram from Java source code. There are two main inputs must be made available for this approach, (a) the source codes and (b) the language grammar. The source codes are referring to Java source files, it can be a single source file or multiple source files, which are interrelated by object references. As for the language grammar, it is the detail descriptions and syntax on how a particular programming language is organized and it is unique for different types of programming language. In our case, the Java grammar is used. The parser will interpret and retrieve the necessary information based on the language syntax and its structure defined in the grammar file. The parsing process is iterated for several times to collect different information required for later use in the sequence diagram construction. Information such as class properties, relationship between classes and methods, method invocation, method lifetimes is collected during the parsing process. Tree data structure is used to store and organize the extracted information during the parsing process and then served as the blue print to reconstruct the sequence diagram. Two major tree structures are constructed during data extraction. The first tree contains class properties information, while the second tree containing the properties of the invoked methods. As shown in Figure 1, the constructed data structure tree will go through the second phase of the parsing process. At this phase, parsing technique is again been used to traverse through the tree and finally construct the sequence diagram based on the stored information. 542

3 IADIS International Conference Applied Computing 2007 Source Code Tree Structure Parsing 90 Process k1::kenderaan proton::car Kenderaan Kereta() Language Grammar Diagram 90 Builder ubahkelajuan() getkelajuan() Sequence Diagra Figure 1. Logical view of the Parsing approach. 3.1 Architecture of Parsing Approach Sequence Diagram Sequence Diagram Presentation Relation Identification Parsing Class Property Gathering Paser Data Gold Parser Grammar Java Source Code Stream File Handling Java Source File Figure 2. The Architecture of Proposed Parsing Approach. The proposed approach consists of four (4) major modules, which are File-Handling, Class Property Gathering, Relationship identification, and Presentation as shown in Figure 2. The parsing technique is applied at the Class Property Gathering and Relationship Identification modules File Handling In general, the file handling performs the task of locating, open and load the Java source codes files for parsing process. There are two type of Java source files used in this module namely Initial source file which refer to the targeted Java Source file to be modelled for its behaviour and Reference source file which is refers to the file that referred by initial file through objects creation and method invocations during system operation. Figure 3 illustrates the relationship between the Initial file and the reference file for the parsing process. 543

4 ISBN: IADIS Initial File m1() m2() Reference file m3() m4() Java Source file Figure 3. Relationship between the Initial file and the reference file in parsing process of system modelling Class Property Gathering The Class Property Gathering module consists of 2 major tasks. First, it provides Java file information to the file handing module. File information such as file path, file name and etc. are required for locating and opening of the reference source file. With this information, the File Handling module is able to locate and load the reference source files required by the initial source file. Secondly, the Class Property Gathering module gathers the necessary data to construct the relevance information on the involved classes during the parsing process. This information is part of the UML class diagram requirements, which including class s attributes, operations and visibility (Systä, 1999). Assume CP is a finite set of classes identified during the first round of the parsing process and is stored in a tree structure. If E CP, then E = (A,M) where A is a finite set of Java class s attributes in the form of (Visibility, Type, Identifier). Visibility is the access modifier of the Java identifier, which is one of the elements in set {public, private, protected. Type is the data type of the identifier, which is either a Java s primitive or reference data type. Identifier refers to the attribute s name assigned by the programmer and shall strictly follow the Java syntax. M is a finite set of Java class methods that declare in E and have the form of (Visibility, Return_Type, Identifier, Parameter_List). Return_Type is the return data type of a method while Parameter_List contains parameters to be passed into M and is in the form of (Type, Identifier) Relationship Identification Process In order to construct the sequence diagram, the necessary building blocks of the diagram need to be identified. The crucial properties need to be identified during this process is the lifeline of each method call and whether control structure was involved to decide method to be invoked within the class. In order to achieve this, sequence of the method call needs to be traced and known by parsing through Java source code. All the information gathered during this process is stored in a tree structure to ease data retrieval in the next process. The Relation between class X and class Y is defined through method invocation in both class X and class Y. Lets say X s source file is the initial source and invoke methods defined in class Y where Y is the reference source file via class Y object declared in X source file. In this case, class X is said to have a relation on class Y via method invocation within class X. Lets R be the finite set of relation class X on class Y, R is in a form of {(Obj Y, M Y ) class X invoke method class Y, where X and Y are the classes defined in CP, M y is the method member in Y invoked by Obj Y. Obj Y is object reference of class Y declared in class X. Each of the ordered pairs in R is a node in the tree structure and each node is labelled using universal address system as illustrated in Figure 6. The lexicographic ordering of the labelling represents the sequence of invoked method in initial source file and reference source files Sequence Diagram Presentation In this process, the constructed data structure during the Class Property Gathering and the Relationship Identification process will serve as the blue print for constructing the sequence diagram. Since information is arranged in a tree structure, prefix tree traversal algorithm is applied for proper tracking and data retrieval. Based on the data flow information and the relationship kept in the tree structure, the sequence diagram is drawn. 544

5 IADIS International Conference Applied Computing IMPLEMENTATION As suggested in our proposed approach, the File Handling module is handled by the OS API, while in our case, it was handle by MS Windows XP and VB6 (Visual Basic 6.0) for rapid implementation of the proposed approach. For Class Property Gathering and Relationship Indemnification process, we use GOLD parser engine as our first phase parsing engine, which is capable to parse text string and retrieve the information as discussed in previous section. GOLD Parser (GOLD Parsing System, 2006)an acronym for Grammar Oriented Language Developer, a free and open source parser generator that supports multiple programming languages, Java programming language is one of them. GOLD Parser actually analyze the syntax and identify the classes by tokenized the reserved words and symbols and atoms of the language from the source strings before determining the syntax are sequence and structurally valid. GOLD Parser is designed with separated parse engine and grammar files that will be used to derive the table information on the particular parsed codes. These criteria can be beneficial to our project that required extraction of object information from the source code such as the relationship between classes and object as well as the behaviour of the program. However, alterations on grammar need to be done to meet the projects needs especially in term of tree graph generation. 5. EXPERIMENTAL RESULTS An experiment on generating the tree data structure from a sample source codes has been carried out to evaluate the accuracy on the data extraction through the use of parsing technique. Experiment is performed based on the sample source code as shown in Figure 4 as the input to the parsing engine. public class A { private B b; private C c; public void ma1(){ b = new B(); c = new C(); b.mb1(); c.mc2(); public Class B { public void mb1 () { C c1 = new C(); c1.mc1(); public void mb2(){ public class C { private B b1; public void mc1(){ public void mc2() { b1 = new B(); b1.mb2(); Figure 4. Sample source code for the project experiment Class A b.ma1() 0 a::a b::b c::c Class B ma1() mb1() mb2() b.mb1() 1 c.mc2() 2 0. ma1 1. mb1 1 ma1 2. mb mc1() Class C mc1() mc2() c1.mc1() 1.1 b1.mb2() mc2() mb2 (a) Methods collection for each class (b) Levelled tree that represents relation of object interactions Figure 5. Data Structure for data collection and objection interaction (c) Sequence diagram extracted from tree Using the GOLD parser and interpretation of parsed data, we generated two (2) data trees, the method collection for each class as shown in Figure 5(a) and the levelled tree that represents the relationships among 545

6 ISBN: IADIS the classes and the order of object interactions for the system illustrated in Figure 5(b). Based on the elements extracted in the levelled tree, we depict the output of the sequence diagram manually as shown in Figure 5(c). This is to demonstrate the consistency of the data extraction with the design model using our approach. 6. CONCLUSION The idea presented in this paper is part of the research work done in modelling the system behaviour through the sequence diagram using the parsing technique. With this approach, it enables the system programmer to model objects interaction of the system and map the interactions into the sequence diagram with a relatively low cost through a reverse engineering process by using parsing technique. The approach shows the processes of static analysis takes place in parsing through the complete source codes, data extraction to generate the object trees until the final generation of the system behaviour model is represented in a sequence diagram. By reverse engineering the static structure of a software through the parsing technique can help the engineer to ensure that the architectural guidelines are followed, tracing the sources of bug, understanding the current behaviour of the software, finding unused code, and so fort. However, we have to admit that the scope of this work is limited to Java source code and bounded to restriction on the static analysis, where the main program of the source codes must be identified before the parsing of source codes is performed to ensure a complete tracking of files during the parsing process. This weakness will be further improved in future where the parsing process should be able to perform by random selection of any single file among all files involved. ACKNOWLEDGEMENT The authors would like to thank C. E. Tan and E. Mit for proofreading the paper. This research was supported by UNIMAS grant 02(66)/524/2005(23) REFERENCES Gestwicki, P. V., & Jayaraman, B. (2004). JIVE: java interactive visualization environment. Object-oriented programming systems, languages, and applications (pp ). Vancouver, BC, CANADA : ACM Press. GOLD Parsing System. (2006, July 5). Retrieved July 8, 2006, from GOLD Parsing System - A Free, Multi- Programming Language, Parser: Koji, T., Takashi, I., Toshihiro, K., Shinji, K., & Katsuro, I. (2005). Extracting Sequence Diagram from Execution Trace of Java Program. Eighth International Workshop on Principles of Software Evolution (pp ). IEEE Computer Society. Quigley, A. J., Postem, M., & Schmid, H. (2000). ReVis: Reverse Engineering by Clustering and Visual Object Classification. Software Engineering Conference, (pp ). Australian. Rountev, A., Kagan, S., & Sawin, J. (2005). Coverage Criteria for Testing of Object Interactions in Sequence Diagrams. Fundamental Approaches to Software Engineering (pp ). Springer-Verlag. Rountev, A., & Connell, B. H. (2005). Object naming analysis for reverse-engineered sequence diagrams. 27th international conference on Software engineering (pp ). St. Louis, MO, USA : ACM Press. Rountev, A., Volgin, O., & Reddoch, M. (2004). Control Flow Analysis for Reverse Engineering of Sequence Diagrams. Technical Report OSU-CISRC-3/04-TR12, Ohio State University, Department of Computer Science and Engineering, Ohio State. Systä, T. (1999). Dynamic Reverse Engineering of Java Software. Workshop on Object-Oriented Technolog (pp ). London, UK: Springer-Verlag. Vasconcelos, A., Cepêda, R., & Werner, C. (2005). An Approach to Program Comprehension through Reverse Engineering of Complementary Software. 1st workshop on Program Comprehension through Dynamic Analysis (PCODA 2005), (pp ). Pittsburg, USA. 546

An Approach for Extracting UML Diagram from Object-Oriented Program Based on J2X Haoqing Zhang1,a

An Approach for Extracting UML Diagram from Object-Oriented Program Based on J2X Haoqing Zhang1,a International Forum on Mechanical, Control and Automation (IFMCA 2016) An Approach for Extracting UML Diagram from Object-Oriented Program Based on J2X Haoqing Zhang1,a 1 School of Computer Science and

More information

PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILING

PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILING PRINCIPLES OF COMPILER DESIGN 2 MARKS UNIT I INTRODUCTION TO COMPILING 1. Define compiler? A compiler is a program that reads a program written in one language (source language) and translates it into

More information

Introduction to Programming Using Java (98-388)

Introduction to Programming Using Java (98-388) Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;

More information

UNIT-IV BASIC BEHAVIORAL MODELING-I

UNIT-IV BASIC BEHAVIORAL MODELING-I UNIT-IV BASIC BEHAVIORAL MODELING-I CONTENTS 1. Interactions Terms and Concepts Modeling Techniques 2. Interaction Diagrams Terms and Concepts Modeling Techniques Interactions: Terms and Concepts: An interaction

More information

Chapter 4 Defining Classes I

Chapter 4 Defining Classes I Chapter 4 Defining Classes I This chapter introduces the idea that students can create their own classes and therefore their own objects. Introduced is the idea of methods and instance variables as the

More information

Software Development Fundamentals (SDF)

Software Development Fundamentals (SDF) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 Software Development Fundamentals (SDF) Fluency in the process of software development is a prerequisite to the study of most

More information

Debugging Reinvented: Asking and Answering Why and Why Not Questions about Program Behavior

Debugging Reinvented: Asking and Answering Why and Why Not Questions about Program Behavior Debugging Reinvented: Asking and Answering Why and Why Not Questions about Program Behavior Andrew J. Ko and Brad A. Myers School of Computer Science, Carnegie Mellon University Presenter: Shaosong Li

More information

Compiler Theory. (Semantic Analysis and Run-Time Environments)

Compiler Theory. (Semantic Analysis and Run-Time Environments) Compiler Theory (Semantic Analysis and Run-Time Environments) 005 Semantic Actions A compiler must do more than recognise whether a sentence belongs to the language of a grammar it must do something useful

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

11. a b c d e. 12. a b c d e. 13. a b c d e. 14. a b c d e. 15. a b c d e

11. a b c d e. 12. a b c d e. 13. a b c d e. 14. a b c d e. 15. a b c d e CS-3160 Concepts of Programming Languages Spring 2015 EXAM #1 (Chapters 1-6) Name: SCORES MC: /75 PROB #1: /15 PROB #2: /10 TOTAL: /100 Multiple Choice Responses Each multiple choice question in the separate

More information

Designing Loop Condition Constraint Model for Join Point Designation Diagrams (JPDDs)

Designing Loop Condition Constraint Model for Join Point Designation Diagrams (JPDDs) Designing Loop Condition Constraint Model for Join Point Designation Diagrams (JPDDs) Bahram Zarrin Master Student Bahram.zarrin@gmail.com Rodziah Atan Doctor rodziah@fsktm.upm.edu.my Muhammad Taufik Abdullah

More information

CompuScholar, Inc. Alignment to Nevada "Computer Science" Course Standards

CompuScholar, Inc. Alignment to Nevada Computer Science Course Standards CompuScholar, Inc. Alignment to Nevada "Computer Science" Course Standards Nevada Course Details: Course Name: Computer Science Primary Cluster: Information and Media Technologies Standards Course Code(s):

More information

Coverage Criteria for Testing of Object Interactions in Sequence Diagrams

Coverage Criteria for Testing of Object Interactions in Sequence Diagrams Coverage Criteria for Testing of Object Interactions in Sequence Diagrams Atanas Rountev, Scott Kagan, and Jason Sawin Ohio State University {rountev, kagan, sawin}@cse.ohio-state.edu Abstract. This work

More information

Object Orientated Analysis and Design. Benjamin Kenwright

Object Orientated Analysis and Design. Benjamin Kenwright Notation Part 2 Object Orientated Analysis and Design Benjamin Kenwright Outline Review What do we mean by Notation and UML? Types of UML View Continue UML Diagram Types Conclusion and Discussion Summary

More information

EECS168 Exam 3 Review

EECS168 Exam 3 Review EECS168 Exam 3 Review Exam 3 Time: 2pm-2:50pm Monday Nov 5 Closed book, closed notes. Calculators or other electronic devices are not permitted or required. If you are unable to attend an exam for any

More information

G Programming Languages - Fall 2012

G Programming Languages - Fall 2012 G22.2110-003 Programming Languages - Fall 2012 Lecture 2 Thomas Wies New York University Review Last week Programming Languages Overview Syntax and Semantics Grammars and Regular Expressions High-level

More information

PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILERS

PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILERS Objective PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILERS Explain what is meant by compiler. Explain how the compiler works. Describe various analysis of the source program. Describe the

More information

Short Notes of CS201

Short Notes of CS201 #includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system

More information

Object-Oriented Design. Module UFC016QM. and Programming. Objects and Classes. O-O Design Unit 2: Faculty of Computing, Engineering

Object-Oriented Design. Module UFC016QM. and Programming. Objects and Classes. O-O Design Unit 2: Faculty of Computing, Engineering Module UFC016QM Object-Oriented Design and Programming O-O Design Unit 2: Objects and Classes Faculty of Computing, Engineering and Mathematical Sciences Schedule Quick recap on Use Case diagrams UWE Flix

More information

Functions. (transfer of parameters, returned values, recursion, function pointers).

Functions. (transfer of parameters, returned values, recursion, function pointers). Functions (transfer of parameters, returned values, recursion, function pointers). A function is a named, independent section of C/C++ code that performs a specific task and optionally returns a value

More information

CS /534 Compiler Construction University of Massachusetts Lowell

CS /534 Compiler Construction University of Massachusetts Lowell CS 91.406/534 Compiler Construction University of Massachusetts Lowell Professor Li Xu Fall 2004 Lab Project 2: Parser and Type Checker for NOTHING Due: Sunday, November 14, 2004, 11:59 PM 1 Introduction

More information

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Compiler Design

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Compiler Design i About the Tutorial A compiler translates the codes written in one language to some other language without changing the meaning of the program. It is also expected that a compiler should make the target

More information

When do We Run a Compiler?

When do We Run a Compiler? When do We Run a Compiler? Prior to execution This is standard. We compile a program once, then use it repeatedly. At the start of each execution We can incorporate values known at the start of the run

More information

CS201 - Introduction to Programming Glossary By

CS201 - Introduction to Programming Glossary By CS201 - Introduction to Programming Glossary By #include : The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with

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

Faculty of Electrical Engineering, Mathematics, and Computer Science Delft University of Technology

Faculty of Electrical Engineering, Mathematics, and Computer Science Delft University of Technology Faculty of Electrical Engineering, Mathematics, and Computer Science Delft University of Technology exam Compiler Construction in4303 April 9, 2010 14.00-15.30 This exam (6 pages) consists of 52 True/False

More information

9/5/17. The Design and Implementation of Programming Languages. Compilation. Interpretation. Compilation vs. Interpretation. Hybrid Implementation

9/5/17. The Design and Implementation of Programming Languages. Compilation. Interpretation. Compilation vs. Interpretation. Hybrid Implementation Language Implementation Methods The Design and Implementation of Programming Languages Compilation Interpretation Hybrid In Text: Chapter 1 2 Compilation Interpretation Translate high-level programs to

More information

Course Hours

Course Hours Programming the.net Framework 4.0/4.5 with C# 5.0 Course 70240 40 Hours Microsoft's.NET Framework presents developers with unprecedented opportunities. From 'geoscalable' web applications to desktop and

More information

LABORATORY 1 REVISION

LABORATORY 1 REVISION UTCN Computer Science Department Software Design 2012/2013 LABORATORY 1 REVISION ================================================================== I. UML Revision This section focuses on reviewing the

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

A new international standard for data validation and processing

A new international standard for data validation and processing A new international standard for data validation and processing Marco Pellegrino (marco.pellegrino@ec.europa.eu) 1 Keywords: Data validation, transformation, open standards, SDMX, GSIM 1. INTRODUCTION

More information

The Analysis and Proposed Modifications to ISO/IEC Software Engineering Software Quality Requirements and Evaluation Quality Requirements

The Analysis and Proposed Modifications to ISO/IEC Software Engineering Software Quality Requirements and Evaluation Quality Requirements Journal of Software Engineering and Applications, 2016, 9, 112-127 Published Online April 2016 in SciRes. http://www.scirp.org/journal/jsea http://dx.doi.org/10.4236/jsea.2016.94010 The Analysis and Proposed

More information

Hippo Software BPMN and UML Training

Hippo Software BPMN and UML Training Hippo Software BPMN and UML Training Icon Key: www.hippo-software.co.uk Teaches theory concepts and notation Teaches practical use of Enterprise Architect Covers BPMN, UML, SysML, ArchiMate Includes paper

More information

An Approach for Quality Control Management in Object Oriented Projects Development

An Approach for Quality Control Management in Object Oriented Projects Development J. Basic. Appl. Sci. Res., 3(1s)539-544, 2013 2013, TextRoad Publication ISSN 2090-4304 Journal of Basic and Applied Scientific Research www.textroad.com An Approach for Quality Control Management in Object

More information

CASE TOOLS LAB VIVA QUESTION

CASE TOOLS LAB VIVA QUESTION 1. Define Object Oriented Analysis? VIVA QUESTION Object Oriented Analysis (OOA) is a method of analysis that examines requirements from the perspective of the classes and objects found in the vocabulary

More information

Programming Languages Third Edition. Chapter 7 Basic Semantics

Programming Languages Third Edition. Chapter 7 Basic Semantics Programming Languages Third Edition Chapter 7 Basic Semantics Objectives Understand attributes, binding, and semantic functions Understand declarations, blocks, and scope Learn how to construct a symbol

More information

Automated generation of TTCN-3 test scripts for SIP-based calls

Automated generation of TTCN-3 test scripts for SIP-based calls MIPRO 2010, May 24-28, 2010, Opatija, Croatia Automated generation of TTCN-3 test scripts for SIP-based calls 1 Nenad Katani, 1 Teo Nenadi, 2 Saša Deši, 1 Lea Skorin-Kapov 1 University of Zagreb, FER,

More information

Class object initialization block destructor Class object

Class object initialization block destructor Class object In this segment, I will review the Java statements and primitives that relate explicitly to Object Oriented Programming. I need to re-enforce Java s commitment to OOP. Unlike C++, there is no way to build

More information

Comparing and Contrasting different Approaches of Code Generator(Enum,Map-Like,If-else,Graph)

Comparing and Contrasting different Approaches of Code Generator(Enum,Map-Like,If-else,Graph) Comparing and Contrasting different Approaches of Generator(Enum,Map-Like,If-else,Graph) Vivek Tripathi 1 Sandeep kumar Gonnade 2 Mtech Scholar 1 Asst.Professor 2 Department of Computer Science & Engineering,

More information

Dynamic Data Flow Analysis for Object Oriented Programs

Dynamic Data Flow Analysis for Object Oriented Programs Dynamic Data Flow Analysis for Object Oriented Programs Andrew Cain Swinburne University of Technology Faculty of Information and Communication Technologies P.O. Box 218, Hawthorn, Victoria 3122, Australia

More information

Configuration Management for Component-based Systems

Configuration Management for Component-based Systems Configuration Management for Component-based Systems Magnus Larsson Ivica Crnkovic Development and Research Department of Computer Science ABB Automation Products AB Mälardalen University 721 59 Västerås,

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

What are the characteristics of Object Oriented programming language?

What are the characteristics of Object Oriented programming language? What are the various elements of OOP? Following are the various elements of OOP:- Class:- A class is a collection of data and the various operations that can be performed on that data. Object- This is

More information

LECTURE NOTES ON COMPILER DESIGN P a g e 2

LECTURE NOTES ON COMPILER DESIGN P a g e 2 LECTURE NOTES ON COMPILER DESIGN P a g e 1 (PCCS4305) COMPILER DESIGN KISHORE KUMAR SAHU SR. LECTURER, DEPARTMENT OF INFORMATION TECHNOLOGY ROLAND INSTITUTE OF TECHNOLOGY, BERHAMPUR LECTURE NOTES ON COMPILER

More information

The design of the PowerTools engine. The basics

The design of the PowerTools engine. The basics The design of the PowerTools engine The PowerTools engine is an open source test engine that is written in Java. This document explains the design of the engine, so that it can be adjusted to suit the

More information

Anatomy of a Compiler. Overview of Semantic Analysis. The Compiler So Far. Why a Separate Semantic Analysis?

Anatomy of a Compiler. Overview of Semantic Analysis. The Compiler So Far. Why a Separate Semantic Analysis? Anatomy of a Compiler Program (character stream) Lexical Analyzer (Scanner) Syntax Analyzer (Parser) Semantic Analysis Parse Tree Intermediate Code Generator Intermediate Code Optimizer Code Generator

More information

Naming in OOLs and Storage Layout Comp 412

Naming in OOLs and Storage Layout Comp 412 COMP 412 FALL 2018 Naming in OOLs and Storage Layout Comp 412 source IR IR target Front End Optimizer Back End Copyright 2018, Keith D. Cooper & Linda Torczon, all rights reserved. Students enrolled in

More information

Using Scala for building DSL s

Using Scala for building DSL s Using Scala for building DSL s Abhijit Sharma Innovation Lab, BMC Software 1 What is a DSL? Domain Specific Language Appropriate abstraction level for domain - uses precise concepts and semantics of domain

More information

Recursion 1. Recursion is the process of defining something in terms of itself.

Recursion 1. Recursion is the process of defining something in terms of itself. Recursion 1 Recursion is the process of defining something in terms of itself. A method that calls itself is said to be recursive. Recursion is an alternative form of program control. It is repetition

More information

Why are there so many programming languages? Why do we have programming languages? What is a language for? What makes a language successful?

Why are there so many programming languages? Why do we have programming languages? What is a language for? What makes a language successful? Chapter 1 :: Introduction Introduction Programming Language Pragmatics Michael L. Scott Why are there so many programming languages? evolution -- we've learned better ways of doing things over time socio-economic

More information

Notes on the Exam. Question 1. Today. Comp 104:Operating Systems Concepts 11/05/2015. Revision Lectures (separate questions and answers)

Notes on the Exam. Question 1. Today. Comp 104:Operating Systems Concepts 11/05/2015. Revision Lectures (separate questions and answers) Comp 104:Operating Systems Concepts Revision Lectures (separate questions and answers) Today Here are a sample of questions that could appear in the exam Please LET ME KNOW if there are particular subjects

More information

Dynamic reverse engineering of Java software

Dynamic reverse engineering of Java software Dynamic reverse engineering of Java software Tarja Systä 1 Abstract. An experimental environment has been built to reverse engineer the run-time behavior of Java software. Event trace information is generated

More information

CS606- compiler instruction Solved MCQS From Midterm Papers

CS606- compiler instruction Solved MCQS From Midterm Papers CS606- compiler instruction Solved MCQS From Midterm Papers March 06,2014 MC100401285 Moaaz.pk@gmail.com Mc100401285@gmail.com PSMD01 Final Term MCQ s and Quizzes CS606- compiler instruction If X is a

More information

NOTE: Answer ANY FOUR of the following 6 sections:

NOTE: Answer ANY FOUR of the following 6 sections: A-PDF MERGER DEMO Philadelphia University Lecturer: Dr. Nadia Y. Yousif Coordinator: Dr. Nadia Y. Yousif Internal Examiner: Dr. Raad Fadhel Examination Paper... Programming Languages Paradigms (750321)

More information

RYERSON POLYTECHNIC UNIVERSITY DEPARTMENT OF MATH, PHYSICS, AND COMPUTER SCIENCE CPS 710 FINAL EXAM FALL 97 INSTRUCTIONS

RYERSON POLYTECHNIC UNIVERSITY DEPARTMENT OF MATH, PHYSICS, AND COMPUTER SCIENCE CPS 710 FINAL EXAM FALL 97 INSTRUCTIONS RYERSON POLYTECHNIC UNIVERSITY DEPARTMENT OF MATH, PHYSICS, AND COMPUTER SCIENCE CPS 710 FINAL EXAM FALL 97 STUDENT ID: INSTRUCTIONS Please write your student ID on this page. Do not write it or your name

More information

Comp 204: Computer Systems and Their Implementation. Lecture 25a: Revision Lectures (separate questions and answers)

Comp 204: Computer Systems and Their Implementation. Lecture 25a: Revision Lectures (separate questions and answers) Comp 204: Computer Systems and Their Implementation Lecture 25a: Revision Lectures (separate questions and answers) 1 Today Here are a sample of questions that could appear in the exam Please LET ME KNOW

More information

Semantic Analysis. Compiler Architecture

Semantic Analysis. Compiler Architecture Processing Systems Prof. Mohamed Hamada Software Engineering Lab. The University of Aizu Japan Source Compiler Architecture Front End Scanner (lexical tokens Parser (syntax Parse tree Semantic Analysis

More information

The Haskell Refactorer, HaRe, and its API

The Haskell Refactorer, HaRe, and its API LDTA 2005 Preliminary Version The Haskell Refactorer, HaRe, and its API Huiqing Li a,1 Simon Thompson a,1 Claus Reinke b,1 a Computing Laboratory, University of Kent, Canterbury, UK b Canterbury, UK Abstract

More information

Compiler Design. Subject Code: 6CS63/06IS662. Part A UNIT 1. Chapter Introduction. 1.1 Language Processors

Compiler Design. Subject Code: 6CS63/06IS662. Part A UNIT 1. Chapter Introduction. 1.1 Language Processors Compiler Design Subject Code: 6CS63/06IS662 Part A UNIT 1 Chapter 1 1. Introduction 1.1 Language Processors A compiler is a program that can read a program in one language (source language) and translate

More information

Abstract 1. Introduction

Abstract 1. Introduction Jaguar: A Distributed Computing Environment Based on Java Sheng-De Wang and Wei-Shen Wang Department of Electrical Engineering National Taiwan University Taipei, Taiwan Abstract As the development of network

More information

Object Histories in Java

Object Histories in Java Object Histories in Java by Aakarsh Nair A thesis presented to the University of Waterloo in fulfillment of the thesis requirement for the degree of Master of Applied Science in Electrical and Computer

More information

Contents. Figures. Tables. Examples. Foreword. Preface. 1 Basics of Java Programming 1. xix. xxi. xxiii. xxvii. xxix

Contents. Figures. Tables. Examples. Foreword. Preface. 1 Basics of Java Programming 1. xix. xxi. xxiii. xxvii. xxix PGJC4_JSE8_OCA.book Page ix Monday, June 20, 2016 2:31 PM Contents Figures Tables Examples Foreword Preface xix xxi xxiii xxvii xxix 1 Basics of Java Programming 1 1.1 Introduction 2 1.2 Classes 2 Declaring

More information

THE SOFTWARE REQUIREMENTS FRAMEWORK FOR DOCUMENT CHANGES USING REVERSE ENGINERING APPROACH

THE SOFTWARE REQUIREMENTS FRAMEWORK FOR DOCUMENT CHANGES USING REVERSE ENGINERING APPROACH THE SOFTWARE REQUIREMENTS FRAMEWORK FOR DOCUMENT CHANGES USING REVERSE ENGINERING APPROACH Hannani Aman and Rosziati Ibrahim University of Tun Hussein Onn Malaysia, Malaysia, {hanani, rosziati@uthm.edu.my}

More information

Programming in C. main. Level 2. Level 2 Level 2. Level 3 Level 3

Programming in C. main. Level 2. Level 2 Level 2. Level 3 Level 3 Programming in C main Level 2 Level 2 Level 2 Level 3 Level 3 1 Programmer-Defined Functions Modularize with building blocks of programs Divide and Conquer Construct a program from smaller pieces or components

More information

TRIREME Commander: Managing Simulink Simulations And Large Datasets In Java

TRIREME Commander: Managing Simulink Simulations And Large Datasets In Java TRIREME Commander: Managing Simulink Simulations And Large Datasets In Java Andrew Newell Electronic Warfare & Radar Division, Defence Science and Technology Organisation andrew.newell@dsto.defence.gov.au

More information

Compilers and Code Optimization EDOARDO FUSELLA

Compilers and Code Optimization EDOARDO FUSELLA Compilers and Code Optimization EDOARDO FUSELLA The course covers Compiler architecture Pre-requisite Front-end Strong programming background in C, C++ Back-end LLVM Code optimization A case study: nu+

More information

What do Compilers Produce?

What do Compilers Produce? What do Compilers Produce? Pure Machine Code Compilers may generate code for a particular machine, not assuming any operating system or library routines. This is pure code because it includes nothing beyond

More information

Java Software Solutions for AP Computer Science 3rd Edition, Lewis et al. 2011

Java Software Solutions for AP Computer Science 3rd Edition, Lewis et al. 2011 A Correlation of AP Computer Science 3rd Edition, Lewis et al. 2011 To the INTRODUCTION This document demonstrates how AP (Advanced Placement) Computer Science, 3rd Edition 2011, Lewis et al. meets the

More information

ChAmElEoN Parse Tree

ChAmElEoN Parse Tree ChAmElEoN Parse Tree Jack L. Watkin May 9, 2017 The objective of this appendix is to describe the abstract syntax tree (ast) generated by the ChAmElEoN parser. 1 Tree Node The ChAmElEoNparser builds an

More information

PROBLEM SOLVING AND OFFICE AUTOMATION. A Program consists of a series of instruction that a computer processes to perform the required operation.

PROBLEM SOLVING AND OFFICE AUTOMATION. A Program consists of a series of instruction that a computer processes to perform the required operation. UNIT III PROBLEM SOLVING AND OFFICE AUTOMATION Planning the Computer Program Purpose Algorithm Flow Charts Pseudo code -Application Software Packages- Introduction to Office Packages (not detailed commands

More information

Sri Vidya College of Engineering & Technology

Sri Vidya College of Engineering & Technology UNIT I INTRODUCTION TO OOP AND FUNDAMENTALS OF JAVA 1. Define OOP. Part A Object-Oriented Programming (OOP) is a methodology or paradigm to design a program using classes and objects. It simplifies the

More information

Review sheet for Final Exam (List of objectives for this course)

Review sheet for Final Exam (List of objectives for this course) Review sheet for Final Exam (List of objectives for this course) Please be sure to see other review sheets for this semester Please be sure to review tests from this semester Week 1 Introduction Chapter

More information

Semantic Analysis. Outline. The role of semantic analysis in a compiler. Scope. Types. Where we are. The Compiler Front-End

Semantic Analysis. Outline. The role of semantic analysis in a compiler. Scope. Types. Where we are. The Compiler Front-End Outline Semantic Analysis The role of semantic analysis in a compiler A laundry list of tasks Scope Static vs. Dynamic scoping Implementation: symbol tables Types Static analyses that detect type errors

More information

ECE 122. Engineering Problem Solving with Java

ECE 122. Engineering Problem Solving with Java ECE 122 Engineering Problem Solving with Java Lecture 14 Array Wrap-Up Outline Problem: How can I store information in arrays without complicated array management? The Java language supports ArrayLists

More information

Automatic Generation of Execution Traces and Visualizing Sequence Diagrams

Automatic Generation of Execution Traces and Visualizing Sequence Diagrams Automatic Generation of Execution Traces and Visualizing Sequence Diagrams 2IM91- Master Thesis ES Report Author: Kaushik Srinivasan (0786828) Host Company: Research& Development Department, Canon Oce

More information

Big Ideas. Chapter Computational Recipes

Big Ideas. Chapter Computational Recipes Chapter 1 Big Ideas This course is an introduction to programming and problem solving. We shall focus on some big ideas of computer science key themes that are seen again and again throughout the discipline.

More information

Compiling and Interpreting Programming. Overview of Compilers and Interpreters

Compiling and Interpreting Programming. Overview of Compilers and Interpreters Copyright R.A. van Engelen, FSU Department of Computer Science, 2000 Overview of Compilers and Interpreters Common compiler and interpreter configurations Virtual machines Integrated programming environments

More information

MutanT: A Modular and Generic Tool for Multi-Sensor Data Processing

MutanT: A Modular and Generic Tool for Multi-Sensor Data Processing 12th International Conference on Information Fusion Seattle, WA, USA, July 6-9, 2009 MutanT: A Modular and Generic Tool for Multi-Sensor Data Processing Simon Hawe, Ulrich Kirchmaier, Klaus Diepold Lehrstuhl

More information

a. It will output It s NOT Rover b. Class Main should be changed to the following (bold characters show the changes)

a. It will output It s NOT Rover b. Class Main should be changed to the following (bold characters show the changes) May 2015 Computing Advanced Paper 1 Question 1 a. It will output It s NOT Rover b. Class Main should be changed to the following (bold characters show the changes) public class Main public static void

More information

CompuScholar, Inc. 9th - 12th grades

CompuScholar, Inc. 9th - 12th grades CompuScholar, Inc. Alignment to the College Board AP Computer Science A Standards 9th - 12th grades AP Course Details: Course Title: Grade Level: Standards Link: AP Computer Science A 9th - 12th grades

More information

Beginning To Define ebxml Initial Draft

Beginning To Define ebxml Initial Draft Beginning To Define ebxml Initial Draft File Name Version BeginningToDefineebXML 1 Abstract This document provides a visual representation of how the ebxml Architecture could work. As ebxml evolves, this

More information

The Procedure Abstraction

The Procedure Abstraction The Procedure Abstraction Procedure Abstraction Begins Chapter 6 in EAC The compiler must deal with interface between compile time and run time Most of the tricky issues arise in implementing procedures

More information

Programming Languages 2nd edition Tucker and Noonan"

Programming Languages 2nd edition Tucker and Noonan Programming Languages 2nd edition Tucker and Noonan" " Chapter 1" Overview" " A good programming language is a conceptual universe for thinking about programming. " " " " " " " " " " " " "A. Perlis" "

More information

Java PathFinder JPF 2 Second Generation of Java Model Checker

Java PathFinder JPF 2 Second Generation of Java Model Checker Java PathFinder JPF 2 Second Generation of Java Model Checker Guenther Brand Mat. Nr. 9430535 27. 06. 2003 Abstract This essay is based on the papers Java PathFinder, Second Generation of Java Model Checker

More information

Reverse Engineering Interface Protocols for Comprehension of Large C++ Libraries during Code Evolution Tasks

Reverse Engineering Interface Protocols for Comprehension of Large C++ Libraries during Code Evolution Tasks Reverse Engineering Interface Protocols for Comprehension of Large C++ Libraries during Code Evolution Tasks Edward B. Duffy, Jason O. Hallstrom and Brian A. Malloy Computer Science Department Clemson

More information

G COURSE PLAN ASSISTANT PROFESSOR Regulation: R13 FACULTY DETAILS: Department::

G COURSE PLAN ASSISTANT PROFESSOR Regulation: R13 FACULTY DETAILS: Department:: G COURSE PLAN FACULTY DETAILS: Name of the Faculty:: Designation: Department:: Abhay Kumar ASSOC PROFESSOR CSE COURSE DETAILS Name Of The Programme:: BTech Batch:: 2013 Designation:: ASSOC PROFESSOR Year

More information

UNIT I INTRODUCTION TO COMPILER 1. What is a Complier? A Complier is a program that reads a program written in one language-the source language-and translates it in to an equivalent program in another

More information

Example: Fibonacci Numbers

Example: Fibonacci Numbers Example: Fibonacci Numbers Write a program which determines F n, the (n + 1)-th Fibonacci number. The first 10 Fibonacci numbers are 0, 1, 1, 2, 3, 5, 8, 13, 21, and 34. The sequence of Fibonacci numbers

More information

The Structure of a Syntax-Directed Compiler

The Structure of a Syntax-Directed Compiler Source Program (Character Stream) Scanner Tokens Parser Abstract Syntax Tree Type Checker (AST) Decorated AST Translator Intermediate Representation Symbol Tables Optimizer (IR) IR Code Generator Target

More information

CSE 504: Compiler Design. Runtime Environments

CSE 504: Compiler Design. Runtime Environments Runtime Environments Pradipta De pradipta.de@sunykorea.ac.kr Current Topic Procedure Abstractions Mechanisms to manage procedures and procedure calls from compiler s perspective Runtime Environment Choices

More information

Chapter 6 Introduction to Defining Classes

Chapter 6 Introduction to Defining Classes Introduction to Defining Classes Fundamentals of Java: AP Computer Science Essentials, 4th Edition 1 Objectives Design and implement a simple class from user requirements. Organize a program in terms of

More information

Combining Different Business Rules Technologies:A Rationalization

Combining Different Business Rules Technologies:A Rationalization A research and education initiative at the MIT Sloan School of Management Combining Different Business Rules Technologies:A Rationalization Paper 116 Benjamin Grosof Isabelle Rouvellou Lou Degenaro Hoi

More information

Voluntary Product Accessibility Template (VPAT ) WCAG Edition. About This Document. Version 2.2 July 2018

Voluntary Product Accessibility Template (VPAT ) WCAG Edition. About This Document. Version 2.2 July 2018 This document is broken into two main sections: Voluntary Product Accessibility Template (VPAT ) WCAG Edition Version 2.2 July 2018 About This Document...1 Essential Requirements and Best Practices for

More information

CJT^jL rafting Cm ompiler

CJT^jL rafting Cm ompiler CJT^jL rafting Cm ompiler ij CHARLES N. FISCHER Computer Sciences University of Wisconsin Madison RON K. CYTRON Computer Science and Engineering Washington University RICHARD J. LeBLANC, Jr. Computer Science

More information

Prof. Mohamed Hamada Software Engineering Lab. The University of Aizu Japan

Prof. Mohamed Hamada Software Engineering Lab. The University of Aizu Japan Language Processing Systems Prof. Mohamed Hamada Software Engineering Lab. The University of Aizu Japan Semantic Analysis Compiler Architecture Front End Back End Source language Scanner (lexical analysis)

More information

Course Description. Learn To: : Intro to JAVA SE7 and Programming using JAVA SE7. Course Outline ::

Course Description. Learn To: : Intro to JAVA SE7 and Programming using JAVA SE7. Course Outline :: Module Title Duration : Intro to JAVA SE7 and Programming using JAVA SE7 : 9 days Course Description The Java SE 7 Fundamentals course was designed to enable students with little or no programming experience

More information

MIDTERM EXAM (Solutions)

MIDTERM EXAM (Solutions) MIDTERM EXAM (Solutions) Total Score: 100, Max. Score: 83, Min. Score: 26, Avg. Score: 57.3 1. (10 pts.) List all major categories of programming languages, outline their definitive characteristics and

More information

BPM optimization Part 1: Introduction to BPM code optimization

BPM optimization Part 1: Introduction to BPM code optimization BPM optimization Part 1: Introduction to BPM code optimization XPDL source code tuning 4/12/2012 IBM Lukasz Osuszek Abstract: This article describes how optimization techniques characteristic of source

More information

The role of semantic analysis in a compiler

The role of semantic analysis in a compiler Semantic Analysis Outline The role of semantic analysis in a compiler A laundry list of tasks Scope Static vs. Dynamic scoping Implementation: symbol tables Types Static analyses that detect type errors

More information

Creational. Structural

Creational. Structural Fitness for Future of Design Patterns & Architectural Styles Design patterns are difficult to teach, so we conducted a class collaboration where we all researched and reported on a variety of design patterns

More information