A PARSING APPROACH FOR SYSTEM BEHAVIOUR MODELING
|
|
- Anna Marshall
- 6 years ago
- Views:
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
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 informationPRINCIPLES 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 informationIntroduction 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 informationUNIT-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 informationChapter 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 informationSoftware 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 informationDebugging 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 informationCompiler 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 informationSoftware 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 information11. 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 informationDesigning 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 informationCompuScholar, 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 informationCoverage 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 informationObject 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 informationEECS168 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 informationG 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 informationPRINCIPLES 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 informationShort 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 informationObject-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 informationFunctions. (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 informationCS /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 informationAbout 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 informationWhen 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 informationCS201 - 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 informationEclipse 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 informationFaculty 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 information9/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 informationCourse 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 informationLABORATORY 1 REVISION
UTCN Computer Science Department Software Design 2012/2013 LABORATORY 1 REVISION ================================================================== I. UML Revision This section focuses on reviewing the
More informationINCORPORATING 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 informationA 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 informationThe 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 informationHippo 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 informationAn 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 informationCASE 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 informationProgramming 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 informationAutomated 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 informationClass 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 informationComparing 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 informationDynamic 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 informationConfiguration 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 informationSCOS-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 informationWhat 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 informationLECTURE 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 informationThe 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 informationAnatomy 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 informationNaming 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 informationUsing 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 informationRecursion 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 informationWhy 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 informationNotes 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 informationDynamic 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 informationCS606- 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 informationNOTE: 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 informationRYERSON 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 informationComp 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 informationSemantic 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 informationThe 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 informationCompiler 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 informationAbstract 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 informationObject 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 informationContents. 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 informationTHE 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 informationProgramming 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 informationTRIREME 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 informationCompilers 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 informationWhat 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 informationJava 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 informationChAmElEoN 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 informationPROBLEM 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 informationSri 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 informationReview 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 informationSemantic 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 informationECE 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 informationAutomatic 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 informationBig 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 informationCompiling 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 informationMutanT: 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 informationa. 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 informationCompuScholar, 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 informationBeginning 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 informationThe 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 informationProgramming 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 informationJava 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 informationReverse 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 informationG 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 informationUNIT 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 informationExample: 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 informationThe 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 informationCSE 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 informationChapter 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 informationCombining 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 informationVoluntary 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 informationCJT^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 informationProf. 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 informationCourse 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 informationMIDTERM 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 informationBPM 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 informationThe 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 informationCreational. 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