A Method of Detecting Code Cloning in Open Source Software

Size: px
Start display at page:

Download "A Method of Detecting Code Cloning in Open Source Software"

Transcription

1 A Method of Detecting Code Cloning in Open Source Software Z. Wei 1 and D. Deugo 2 1 The School of Computer Science, Carleton University, Ottawa, Ontario, Canada 2 The School of Computer Science, Carleton University, Ottawa, Ontario, Canada Abstract - In this paper, we discuss an approach to detect code copying in open source software. This approach generates a small fingerprint that includes the main features of the class files contained in a Java Archive (Jar) file. By comparing the intrinsic and extrinsic features of the class files, the approach can find the cloned code in anonymous Jar files. This approach provides a tool to detect cloned code correctly and effectively Keywords: Open Source Software, Code Cloning, Intrinsic Features, Extrinsic Features 1 INTRODUCTION Open source software (OSS) has become critical for most organizations, as there are many advantages of using it [1]: such as high-quality software, lower software costs, numerous technical support and accountability, active communities, and less dependence on vendors. OSS has impact on more than developers and IT-managers but also potentially for all the people throughout the value chain of an organization including suppliers, customers, and partners. Today, more and more OSS is developed and adopted in commercial products. Although organizations have already obtained benefits from OSS, they have to take a critical consideration of OSS and face some questions raised by using it. For example, OSS uses licenses to protect itself and its developers. However, many of these licenses are different and mutually incompatible. Before using OSS, organizations must survey the licenses of the software and obey them to develop their commercial products. However, code of unknown origin is encountered occasionally in development and its pedigree must be made clear. This action is related to the legality and success of software products. 1.1 Problem In this paper, we look at detecting software clones that are written in the Java programming language. We use the known software code to compare with the software that is copied from an anonymous source. After comparing, we can determine whether an organization is copying another s code illegally. There are many existing clone detection methods, such as string matching. But sometimes those methods don t work when the original source code is not available. To avoid this disadvantage, our method focuses on accessible attributes of class files and calculates the similarity of their attributes. 1.2 Motivation The Open Source community attracts very bright, very motivated developers, who although are frequently unpaid and lack disciplined [2]. For many developers, peer review and acclaim is important. They prefer to build software with clean design, reliability and maintainability that is admired by their peers. They develop software to contribute the open source community and get benefits from others contribution. But there are some phenomena, to which we have to pay attention, destroying the balance of the open source community. Some organizations or individuals copy intellectual property, and just make it their own by modifying the code with out any legal right to do so. This behavior shows a complete lack of respect for other developers work and creates an attack on the ecosystem of the community. We must take action to prevent these unethical behaviors and protect authors rights and the community. This is our main motivation for detecting cloned code in OSS. The problems of exploiting OSS to improve one s own product and avoiding infringing others intellectual property are concerned by commercial software developers and project managers. Some issues [3] are related to this consideration: Some commercial software suppliers have been sued by open source advocates for downloading the open source while ignoring the license obligations. Customers want to know the details of the software that are provided by IT companies. Software engineers use some open source in their programs but they do not declare them. Some OSS licenses may influence the intellectual property of software products which include the corresponding open source code. Based on those issues, organizations must take measures to protect against these legal risks of open source. They should periodically conduct a complete audit of their source code, making sure developers and managers know exactly what open source is inside and what the license obligations of that open source are. But the price of the service supported by a professional audit firm is high, and sometime there is no access to the original source code [8]. We devote our focus to audit open source software with low cost. 1.3 Goals There are many available applications detecting code cloning with simple string-matching [10]. We pay more attention to the specific attributes of a class, such as parameters of methods and return value. We take those features from a Jar file to create a unique footprint and then calculate the similarity between the known Jar s fingerprint and an unknown Jar file. The application outputs the result to display a match percentage between the two Jars.

2 1.4 Objectives Several clone detection techniques have been described and implemented [8] [9] [10]. But most of those techniques require the original source code and require much memory. Our objective is to make a small fingerprint using the particular features of the compiled classes in a Jar file and not all the source code. Our approach does not rely upon the original source code because it does not tend to be available in the Jar files. We mainly pick up basic features from the Jar files. Although we utilize less information that describes the features of the code, it does not mean low accuracy. Following Walenstein [4], clone detection adequacy depends on applications and purposes. Intellectual property thieves may modify the name and order of methods but rarely features of the class. Class files contain distinguished features that are the key points to comparing two files. Comparing these features is the core idea of our approach. 1.5 Outline In section 2, we will discuss relevant background work. In section 3 we concentrate on our design, algorithm and what decisions we made. In the section 4 and section 5, we compare several groups of files, present results, draw our conclusions and look at future work. 2 BACKGROUND Much research in the field of clone code detection has been done. Most of it has a high degree of accuracy. However some disadvantages exist in that software, e.g. time-consuming, memory-waste, and especially requiring the source files. Cate Huston [10] uses winnowing to fingerprint Jar files and some potentially interesting information (e.g. filenames, size of the Jar file, the number of entities, and the Jar name) of the Jars to detect significant similarities of those Jars. From the conclusion of that paper we can learn that those potentially interesting information are less consistent. This demonstrates what can be changed in the software clone and the key point of comparison is the features or contents of methods. Some researchers have paid attention to the situation that there is no source code available but compiled code. Carson Browns and David Barrera [8] use the modification of n-gram method to generate the fingerprint of the compiled Java program. They make much improvement including detection speed, small fingerprint and good accuracy. Patrice Arruda et al [9] use graph to describe the dependency of classes and calculate the similarity with matrix. Their approach focuses on the relationship between classes. We follow this research. We also take Jar files as input, and generate the fingerprint of the Class files that are Java s compiled files. The difference between our approaches and [8] is that we do not consider all the byte code of methods in Class files but just the features of Class files, e.g. the number and type of the input parameters of methods, the type of the return value of methods and the like. These features are termed as intrinsic features in our approach. Although software clones can include many modifications, such as renaming classes, variables and methods, adding some inessential code lines, and changing the path of files, the main function of the method will not be changed. In our approach, the relationship between the classes is considered as the extrinsic features. The idea of extracting extrinsic features of a class in our approach is enlightened by [9]. 3 APPROACH 3.1 Design Considering that Java Jar files mainly comprise class files, our approach analyses the class files and uses features of class files to describe fingerprints of Jar files. We divide the features of class files into two groups: intrinsic features and extrinsic features. Intrinsic features of a class file include the description of its methods. The number and types of input parameters and the type that the method returns compose the basic features of a method in a class. The extrinsic features are composed of the relationships of classes, for example super classes, interfaces, and inner classes of a class. These features can indicate the purpose of the class file so that the approach can distinguish the behavior of cloning. Employing these intrinsic and extrinsic features we discover the cloning code. 3.2 Rules Generally, Jar files are kinds of Zip files. Thus before extracting features from class files, we need to decompress the Jar file using the Java Class Foundation Library API [5], java.util.jar, to finish this job. We use the JarResource class which is from a Java World article [6] to obtain the byte codes of all classes in a Jar file. The org.netbeans.modules.classfile API [7] can transform the byte codes of a class to an object in memory. Therefore our algorithm can manipulate class files to get all the features of methods in a class file. To clarify our rules of calculation, we assume that is an original Jar file which is used to generate a fingerprint and is an anonymous Jar file which is possible the cloning Jar file. denotes a Class file that belongs to. denotes a Class file that belongs to. denotes a method that belongs to. denotes a method that belongs to. In our algorithm, we use eight basic rules to demonstrate how to calculate the similarity of two Jar files. Based on the similarity, the cloning Jar file can be detected correctly. The similarity of two methods is calculated by Rule 1: Rule 1: If two methods have same number of parameters, same type of parameters and the same type of return value, then the similarity of two methods similarity is 0. is 1; otherwise, the If the similarity of two methods is obtained, the similarity of intrinsic features of two classes can be analyzed by Rule 2: Rule 2: the similarity of classes S in class = n k =1 S method n

3 is the number of methods in a class. The similarity of extrinsic features of two classes can be calculated by Rule 3 to Rule 6: Rule 3: the similarity Rule 4: the similarity classes are same; otherwise is 0. Rule 5: the similarity is 1 if the types of super is 1 if the number of interfaces is same and the types of interface are same; otherwise is 0. Rule 6: the similarity is 1 if the number of inner classes is same and the types of inner classes are same; otherwise is 0. The similarity of two classes is calculated by combining and as Rule 7: Rule 7: S class = 0.6S in class + 0.4S ex class The weight of is set to sixty percentage points because our approach mainly focuses on methods in a class. The similarity of two Jar files is calculated by the Rule 8: Rule 8: is the number of classes in the original Jar file, indicates the maximum of similarity between and, is the number of classes in the anonymous Jar file. 3.3 Algorithm Our approach compares the original Jar file and the anonymous Jar file with two components. The first component is Fingerprint Generator that manages to generate a fingerprint from the original Jar file. Figure 1 describes the main steps of generating fingerprint. The Fingerprint Generator visits every class in the original Jar file, obtains the intrinsic features and extrinsic features of a class and finally produces the fingerprint of the Jar file. The second component is Fingerprint Detector that computes the similarity of two Jar files through eight rules mentioned. Figure 2 describes the main steps of generating the similarity. 3.4 Decisions Made Our approach only focuses on class files in a Jar file because class files are the core of a Jar file. The similarity between two methods is simply calculated by Rule 1 and expressed by 1 or 0. There is no value of similarity between 0 and 1. As a prototype of first implementation, we intuitively keep the algorithms simple. Although this calculation losses some accuracy, the intention can be described clearly and results are reasonably. We also only consider the basic types of Java such as int, short, long, byte, float, double, string, char and boolean, and the original objects of Java such as Integer. Except these primary types, other self-defined types are uniformly defined as Object type. Through these simple categories of types of parameter, our approach can cover most cases when comparing two methods. In the course of implementing the algorithm, some classes in the different Jar files are very similar but the similarity calculated by our algorithm is not high. However, some classes are different but the similarity is high. Through analyzing the source code artificially, we find that these classes have several methods that have no parameters and no return value. This circumstance will influence the result of comparison. Assuming that there are three classes A, B and C, Class A has 6 methods (X1, X2, X3, X4, X5, X6) among which there are two methods (X5 and X6) have no parameters and no return value. Class B has 4 methods (Y1, Y2, Y3, Y4). Class C has 4 methods (Z1, Z2, Z3, Z4) among which there are two methods (Z3 and Z4) have no parameters and no return value. Assuming X1, X2, X3 are equal to Y1, Y2, Y3, respectively, so the similarity of Class A and B is 0.5. Assuming X1, X2 are equal to Z1, Z2, respectively, the similarity of Class A and C is 0.67 because Class C has two methods Z3 and Z4 which have no parameters and no return values, and Class A also has X5 and X6 which have no parameters and no return values. Even if Z3, Z4 and X5, X6 are entirely different, the similarity is high based on rules. Actually, Class A is more similar to Class B than Class C. Thus methods of no parameters and return value have negative effect in our algorithm. In most classes, methods of no parameter and return value tend to be less important. Considering this situation, we decided to remove methods that have no parameters and return value when calculating the similarity of methods. 4 RESULTS To examine the correctness and effectiveness of our approach, eight selected Jar files are used as the testing set. The environment of testing and the performance are described first. Then the testing results and analysis are discussed. 4.1 Performance The implementation runs on a laptop. Its technical parameters are shown as below: Processor: Pentium(R) Dual-Core CPU 2.30GHz Memory: 4.00 GB System Type: 64-bit Operating System The size of Jar files ranges from 1Kb to 2.7Mb. There are four Jar files that come from Eclipse IDE [11] plugins, two files from our own implementations, and two files from Spring Framework [12]. The worst case is the largest pair of Jar file. Our approach spends seconds for comparison. Although the algorithm runs slowly, the results were good.

4 Figure 1. Fingerprint Generator Figure 2. Fingerprint Detector

5 4.2 Testing Results In the set of testing Jars, we first choose the simplest Jar file, test.jar, which contains one class including three simple methods, to compare with this Jar itself. The result is very good as is the execution time. Next, when comparing two entirely different Jar files (test.jar and com.zxwei.comp5900.jar), the result computed by our approach is correct. The first two Jar files are devised to test our basic idea. The Jar files, org.eclipse.help.ui_3.2.0.v jar and org.eclipse.help.ui_3.5.0.v , were obtained from Eclipse plugins folder under Eclipse IDE. They have similar functions, but they are different versions. The similarity of org.eclipse.help.ui_3.2.0.v jar to itself is first calculated and then the similarity to org.eclipse.help.ui_3.5.0.v is done. The result shows that the former s similarity is higher than the latter s. This data is reasonable because the difference between two versions is larger than one version itself. Working with the different versions of Jar files of JUnit [13], we discover that their similarity is low because JUnit version 4 has many modifications of structures and functions compared with JUnit version 3.8. JUnit version 4 introduces the annotation function to facilitate programming test units. Our approach exploits the number of classes in the first Jar file. Although the similarity is different, the time consumed by calculation is almost equal. Finally, we compare two larger Jar files, one from Spring Framework which is 2645KB and another from Spring Framework 2.5 which is 2773KB. The result reveals that the similarity of these two Jar files is 89.07% and the calculation execution time is s. This indicates the higher version of the Spring Frame has some modification but the main part is similar to the old one. Table 1 lists the all our results of our testing set. Through the testing, our approach shows the good performance on both correctness and efficiency. 5 CONCLUSION Our approach of detecting code cloning in open source software focuses on class files in Jar files. We believe that utilizing the intrinsic and extrinsic features of classes can effectively seek out code cloning and our approach is immune to simple refactoring. Although our approach has slow execution speed, the result were correct and accurate. 5.1 Review goal and contributions Our algorithm and implementation fulfill the objective of detecting code cloning and provide a tool to help companies or institutions, who want to use open source software, to detect the existence of copied code in their software or software they use, thus avoiding lawsuits from distributed or using code with license incompatibilities. 5.2 Future work Our approach has three main aspects for improvement. In the calculation of the similarity of two methods, we can set different weight to the number of parameters, types of parameters and types of return value instead of a Boolean value (0 or 1). We believe this improvement can further increase the accuracy of our algorithms. In the aspect of extrinsic features, attributes of a class and references of other objects in a class are both important properties of a class. Adding these features into the calculation of extrinsic features can promote the accuracy of calculating the similarity of two classes. In the aspect of intrinsic features, considering structures of if-else and while clauses can strengthen detailed description of a method, thereby increasing the accuracy of the algorithm. 6 REFERENCES [1] Jason Williams, Peter Clegg, Emmett Dulaney. Expanding Choice: Moving to Linux and Open Source with Novell Open Enterprise Server. Sams, Mar 7, [2] Nic Peeling, Julian Satchell. Analysis of the Impact of Open Source Software. QinetiQ, [3] Manage The License Obligations and Risks That Come With Developing Commercial Software While Embedding Open Source Inside. Accessed December 4, [4] A. Walenstein, Nitin Jyoti, Junwei Li, Yun Yang, and Arun Lakhotia. Problems creating task-relevant clone detection reference data. In Proceedings of the Working Conference on Reverse Engineering (WCRE 03). IEEE Computer Society Press (2003): [5] Java Platform API Specification Accessed December 4, [6] Arthur Choi, Java Tip 49: How to extract Java resources from JAR and zip archives, JavaWorld.com, January 3rd, 1998, Accessed December 4, [7] org.netbeans.modules.classfile, Accessed December 4, [8] Carson Brown, David Barrera, Dwight Deugo: FiGD: An Open Source Intellectual Property Violation Detector. SEKE (2009): , [9] Patrice Arruda, Pierre Chamoun, Dwight Deugo: A Framework for Detecting Code Piracy Using Class Structure, The 22nd International Conference on Software Engineering and Knowledge Engineering (SEKE 2010), Knowledge Systems Institute Graduate School, , [10] Cate Huston, Fingerprinting Jar Files Using Winnowing, %20using%20winnowing.pdf. Accessed December 4, [11] Eclipse IDE, December 4, [12] Spring Framework, Accessed December 4, 2010.

6 TABLE I. [13] JUnit, Accessed December 4, TESTING RESULTS Fingerprint Generated From Anonymous Java Jar File Certainty Time (s) test.jar test.jar 100% test.jar com.zxwei.comp5900.jar 0% org.eclipse.help.ui_3.2.0.v20060 org.eclipse.help.ui_3.2.0.v % Jar Jar org.eclipse.help.ui_3.2.0.v20060 org.eclipse.help.ui_3.5.0.v % Jar Jar junit-3.8.jar junit-3.8.jar 98.0% 1.01 junit-3.8.jar junit-4.1.jar % junit-4.1.jar junit-4.1.jar % spring jar spring-2.5.jar 89.07%

Creating a Lattix Dependency Model The Process

Creating a Lattix Dependency Model The Process Creating a Lattix Dependency Model The Process Whitepaper January 2005 Copyright 2005-7 Lattix, Inc. All rights reserved The Lattix Dependency Model The Lattix LDM solution employs a unique and powerful

More information

CPE 101. Overview. Programming vs. Cooking. Key Definitions/Concepts B-1

CPE 101. Overview. Programming vs. Cooking. Key Definitions/Concepts B-1 CPE 101 Lecture 2: Problems, Algorithms, and Programs (Slides adapted from a UW course, copyrighted and used by permission) Overview High-level survey Problems, algorithms, and programs Problem solving

More information

Did the availability of refactoring functionality of IDEs result in refactorings being performed more frequently?

Did the availability of refactoring functionality of IDEs result in refactorings being performed more frequently? Page 1 / 1 Did the availability of refactoring functionality of IDEs result in refactorings being performed more frequently? Abstract...1 1 Introduction...1 2 Implementation...2 3 Questionnaire...2 3.1

More information

Graphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub

Graphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub Lebanese University Faculty of Science Computer Science BS Degree Graphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub 2 Crash Course in JAVA Classes A Java

More information

What s NetBeans? Like Eclipse:

What s NetBeans? Like Eclipse: What s NetBeans? Like Eclipse: It is a free software / open source platform-independent software framework for delivering what the project calls "richclient applications" It is an Integrated Development

More information

Type Checking and Type Equality

Type Checking and Type Equality Type Checking and Type Equality Type systems are the biggest point of variation across programming languages. Even languages that look similar are often greatly different when it comes to their type systems.

More information

Whistleblower Submission Form

Whistleblower Submission Form Whistleblower Submission Form FORM C Complete this form IF you are a lawyer a whistleblower (or a group of whistleblowers) who wish to be anonymous. If you are a individual whistleblower, please complete

More information

Lecture 1 Contracts. 1 A Mysterious Program : Principles of Imperative Computation (Spring 2018) Frank Pfenning

Lecture 1 Contracts. 1 A Mysterious Program : Principles of Imperative Computation (Spring 2018) Frank Pfenning Lecture 1 Contracts 15-122: Principles of Imperative Computation (Spring 2018) Frank Pfenning In these notes we review contracts, which we use to collectively denote function contracts, loop invariants,

More information

Exploring Dynamic Compilation Facility in Java

Exploring Dynamic Compilation Facility in Java Exploring Dynamic Compilation Facility in Java Dingwei He and Kasi Periyasamy Computer Science Department University of Wisconsin-La Crosse La Crosse, WI 54601 kasi@cs.uwlax.edu Abstract Traditional programming

More information

National Open Source Strategy

National Open Source Strategy National Open Source Strategy Ministry of Communications & Information Technology - Egypt June 2014 Outline Background Vision & Mission Preliminary Targets Strategic Objectives Enablers Ministry of Communications

More information

EXAM PREPARATION GUIDE

EXAM PREPARATION GUIDE When Recognition Matters EXAM PREPARATION GUIDE PECB Certified ISO/IEC 20000 Lead Auditor www.pecb.com The objective of the Certified ISO/IEC 20000 Lead Auditor examination is to ensure that the candidate

More information

Introduction to Eclipse

Introduction to Eclipse Introduction to Eclipse Ed Gehringer Using (with permission) slides developed by Dwight Deugo (dwight@espirity.com) Nesa Matic (nesa@espirity.com( nesa@espirity.com) Sreekanth Konireddygari (IBM Corp.)

More information

Programming II (CS300)

Programming II (CS300) 1 Programming II (CS300) Chapter 04: Exception Handling MOUNA KACEM mouna@cs.wisc.edu Spring 2018 Creating Classes 2 Introduction Exception Handling Common Exceptions Exceptions with Methods Assertions

More information

WA1278 Introduction to Java Using Eclipse

WA1278 Introduction to Java Using Eclipse Lincoln Land Community College Capital City Training Center 130 West Mason Springfield, IL 62702 217-782-7436 www.llcc.edu/cctc WA1278 Introduction to Java Using Eclipse This course introduces the Java

More information

COMP 250 Winter 2011 Reading: Java background January 5, 2011

COMP 250 Winter 2011 Reading: Java background January 5, 2011 Almost all of you have taken COMP 202 or equivalent, so I am assuming that you are familiar with the basic techniques and definitions of Java covered in that course. Those of you who have not taken a COMP

More information

Software Testing part II (white box) Lecturer: Giuseppe Santucci

Software Testing part II (white box) Lecturer: Giuseppe Santucci Software Testing part II (white box) Lecturer: Giuseppe Santucci 4. White box testing White-box (or Glass-box) testing: general characteristics Statement coverage Decision coverage Condition coverage Decision

More information

Lecture Notes on Contracts

Lecture Notes on Contracts Lecture Notes on Contracts 15-122: Principles of Imperative Computation Frank Pfenning Lecture 2 August 30, 2012 1 Introduction For an overview the course goals and the mechanics and schedule of the course,

More information

Symbol Tables. ASU Textbook Chapter 7.6, 6.5 and 6.3. Tsan-sheng Hsu.

Symbol Tables. ASU Textbook Chapter 7.6, 6.5 and 6.3. Tsan-sheng Hsu. Symbol Tables ASU Textbook Chapter 7.6, 6.5 and 6.3 Tsan-sheng Hsu tshsu@iis.sinica.edu.tw http://www.iis.sinica.edu.tw/~tshsu 1 Definitions Symbol table: A data structure used by a compiler to keep track

More information

Reducing The De-linearization of Data Placement to Improve Deduplication Performance

Reducing The De-linearization of Data Placement to Improve Deduplication Performance Reducing The De-linearization of Data Placement to Improve Deduplication Performance Yujuan Tan 1, Zhichao Yan 2, Dan Feng 2, E. H.-M. Sha 1,3 1 School of Computer Science & Technology, Chongqing University

More information

Data Types, Variables and Arrays. OOC 4 th Sem, B Div Prof. Mouna M. Naravani

Data Types, Variables and Arrays. OOC 4 th Sem, B Div Prof. Mouna M. Naravani Data Types, Variables and Arrays OOC 4 th Sem, B Div 2016-17 Prof. Mouna M. Naravani Identifiers in Java Identifiers are the names of variables, methods, classes, packages and interfaces. Identifiers must

More information

CMPSCI 187 / Spring 2015 Hangman

CMPSCI 187 / Spring 2015 Hangman CMPSCI 187 / Spring 2015 Hangman Due on February 12, 2015, 8:30 a.m. Marc Liberatore and John Ridgway Morrill I N375 Section 01 @ 10:00 Section 02 @ 08:30 1 CMPSCI 187 / Spring 2015 Hangman Contents Overview

More information

EXAM PREPARATION GUIDE

EXAM PREPARATION GUIDE When Recognition Matters EXAM PREPARATION GUIDE PECB Certified ISO 22000 Lead Auditor www.pecb.com The objective of the Certified ISO 22000 Lead Auditor examination is to ensure that the candidate has

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

Lecture 1 Contracts : Principles of Imperative Computation (Fall 2018) Frank Pfenning

Lecture 1 Contracts : Principles of Imperative Computation (Fall 2018) Frank Pfenning Lecture 1 Contracts 15-122: Principles of Imperative Computation (Fall 2018) Frank Pfenning In these notes we review contracts, which we use to collectively denote function contracts, loop invariants,

More information

OPEN SOURCE SECURITY ANALYSIS The State of Open Source Security in Commercial Applications

OPEN SOURCE SECURITY ANALYSIS The State of Open Source Security in Commercial Applications OPEN SOURCE SECURITY ANALYSIS The State of Open Source Security in Commercial Applications By Mike Pittenger, Vice President, Security Strategy Black Duck s On-Demand business conducts audits of customers

More information

An analysis of object-based intelligent image

An analysis of object-based intelligent image An analysis of object-based intelligent image processing and retrieval system Abstract-In order to improve the process of analysis and retrieval of images, it is necessary to examine the execution of such

More information

Architectural Documentation 1

Architectural Documentation 1 Architectural Documentation Architectural Documentation 1 The Purpose of Architectural Documentation The documentation shall give the reader good understanding of the application's architecture and design.

More information

Selenium Testing Course Content

Selenium Testing Course Content Selenium Testing Course Content Introduction What is automation testing? What is the use of automation testing? What we need to Automate? What is Selenium? Advantages of Selenium What is the difference

More information

OPERATING SYSTEMS. Prescribed Text Book. Operating System Principles, Seventh Edition. Abraham Silberschatz, Peter Baer Galvin and Greg Gagne

OPERATING SYSTEMS. Prescribed Text Book. Operating System Principles, Seventh Edition. Abraham Silberschatz, Peter Baer Galvin and Greg Gagne OPERATING SYSTEMS Prescribed Text Book Operating System Principles, Seventh Edition By Abraham Silberschatz, Peter Baer Galvin and Greg Gagne 1 DEADLOCKS In a multi programming environment, several processes

More information

Java Archives Search Engine Using Byte Code as Information Source

Java Archives Search Engine Using Byte Code as Information Source Java Archives Search Engine Using Byte Code as Information Source Oscar Karnalim School of Electrical Engineering and Informatics Bandung Institute of Technology Bandung, Indonesia 23512012@std.stei.itb.ac.id

More information

Compaq Interview Questions And Answers

Compaq Interview Questions And Answers Part A: Q1. What are the difference between java and C++? Java adopts byte code whereas C++ does not C++ supports destructor whereas java does not support. Multiple inheritance possible in C++ but not

More information

Drawing Bipartite Graphs as Anchored Maps

Drawing Bipartite Graphs as Anchored Maps Drawing Bipartite Graphs as Anchored Maps Kazuo Misue Graduate School of Systems and Information Engineering University of Tsukuba 1-1-1 Tennoudai, Tsukuba, 305-8573 Japan misue@cs.tsukuba.ac.jp Abstract

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

EXAM PREPARATION GUIDE

EXAM PREPARATION GUIDE When Recognition Matters EXAM PREPARATION GUIDE PECB Certified ISO 9001 Lead Auditor www.pecb.com The objective of the PECB Certified ISO 9001 Lead Auditor examination is to ensure that the candidate possesses

More information

The PCAT Programming Language Reference Manual

The PCAT Programming Language Reference Manual The PCAT Programming Language Reference Manual Andrew Tolmach and Jingke Li Dept. of Computer Science Portland State University September 27, 1995 (revised October 15, 2002) 1 Introduction The PCAT language

More information

Appendix: Generic PbO programming language extension

Appendix: Generic PbO programming language extension Holger H. Hoos: Programming by Optimization Appendix: Generic PbO programming language extension As explained in the main text, we propose three fundamental mechanisms to be covered by a generic PbO programming

More information

Chapter 8 & Chapter 9 Main Memory & Virtual Memory

Chapter 8 & Chapter 9 Main Memory & Virtual Memory Chapter 8 & Chapter 9 Main Memory & Virtual Memory 1. Various ways of organizing memory hardware. 2. Memory-management techniques: 1. Paging 2. Segmentation. Introduction Memory consists of a large array

More information

A Minimum Cost Handover Algorithm for Mobile Satellite Networks

A Minimum Cost Handover Algorithm for Mobile Satellite Networks Chinese Journal of Aeronautics 21(2008) 269-274 Chinese Journal of Aeronautics www.elsevier.com/locate/cja A Minimum Cost Handover Algorithm for Mobile Satellite Networks Zhang Tao*, Zhang Jun School of

More information

CPS122 Lecture: From Python to Java last revised January 4, Objectives:

CPS122 Lecture: From Python to Java last revised January 4, Objectives: Objectives: CPS122 Lecture: From Python to Java last revised January 4, 2017 1. To introduce the notion of a compiled language 2. To introduce the notions of data type and a statically typed language 3.

More information

Symbol Tables Symbol Table: In computer science, a symbol table is a data structure used by a language translator such as a compiler or interpreter, where each identifier in a program's source code is

More information

Primitive Types. Four integer types: Two floating-point types: One character type: One boolean type: byte short int (most common) long

Primitive Types. Four integer types: Two floating-point types: One character type: One boolean type: byte short int (most common) long Primitive Types Four integer types: byte short int (most common) long Two floating-point types: float double (most common) One character type: char One boolean type: boolean 1 2 Primitive Types, cont.

More information

Frequently Asked Questions about SAS Environment Manager on SAS 9.4

Frequently Asked Questions about SAS Environment Manager on SAS 9.4 ABSTRACT Paper SAS0575-2017 Frequently Asked Questions about SAS Environment Manager on SAS 9.4 Zhiyong Li, SAS Institute Inc. SAS Environment Manager is the predominant tool for managing your SAS environment.

More information

Programming in C++ 5. Integral data types

Programming in C++ 5. Integral data types Programming in C++ 5. Integral data types! Introduction! Type int! Integer multiplication & division! Increment & decrement operators! Associativity & precedence of operators! Some common operators! Long

More information

CMPSCI 187 / Spring 2015 Implementing Sets Using Linked Lists

CMPSCI 187 / Spring 2015 Implementing Sets Using Linked Lists CMPSCI 187 / Spring 2015 Implementing Sets Using Linked Lists Due on Tuesday February 24, 2015, 8:30 a.m. Marc Liberatore and John Ridgway Morrill I N375 Section 01 @ 10:00 Section 02 @ 08:30 1 CMPSCI

More information

SEEK: Scalable Extraction of Enterprise Knowledge

SEEK: Scalable Extraction of Enterprise Knowledge SEEK: Scalable Extraction of Enterprise Knowledge Joachim Hammer Dept. of CISE University of Florida 26-Feb-2002 1 Project Overview Faculty Joachim Hammer Mark Schmalz Computer Science Students Sangeetha

More information

Lists. Michael P. Fourman. February 2, 2010

Lists. Michael P. Fourman. February 2, 2010 Lists Michael P. Fourman February 2, 2010 1 Introduction The list is a fundamental datatype in most functional languages. ML is no exception; list is a built-in ML type constructor. However, to introduce

More information

STQA Mini Project No. 1

STQA Mini Project No. 1 STQA Mini Project No. 1 R (2) C (4) V (2) T (2) Total (10) Dated Sign 1.1 Title Mini-Project 1: Create a small application by selecting relevant system environment/ platform and programming languages.

More information

A B2B Search Engine. Abstract. Motivation. Challenges. Technical Report

A B2B Search Engine. Abstract. Motivation. Challenges. Technical Report Technical Report A B2B Search Engine Abstract In this report, we describe a business-to-business search engine that allows searching for potential customers with highly-specific queries. Currently over

More information

THOMAS LATOZA SWE 621 FALL 2018 DESIGN ECOSYSTEMS

THOMAS LATOZA SWE 621 FALL 2018 DESIGN ECOSYSTEMS THOMAS LATOZA SWE 621 FALL 2018 DESIGN ECOSYSTEMS LOGISTICS HW5 due today Project presentation on 12/6 Review for final on 12/6 2 EXAMPLE: NPM https://twitter.com/garybernhardt/status/1067111872225136640

More information

Adaptive Spatiotemporal Node Selection in Dynamic Networks

Adaptive Spatiotemporal Node Selection in Dynamic Networks Adaptive Spatiotemporal Node Selection in Dynamic Networks Pradip Hari, John B. P. McCabe, Jonathan Banafato, Marcus Henry, Ulrich Kremer, Dept. of Computer Science, Rutgers University Kevin Ko, Emmanouil

More information

General Objective:To understand the basic memory management of operating system. Specific Objectives: At the end of the unit you should be able to:

General Objective:To understand the basic memory management of operating system. Specific Objectives: At the end of the unit you should be able to: F2007/Unit6/1 UNIT 6 OBJECTIVES General Objective:To understand the basic memory management of operating system Specific Objectives: At the end of the unit you should be able to: define the memory management

More information

Programming II (CS300)

Programming II (CS300) 1 Programming II (CS300) Chapter 04: Exception Handling MOUNA KACEM mouna@cs.wisc.edu Fall 2018 Creating Classes 2 Introduction Exception Handling Common Exceptions Exceptions with Methods Assertions and

More information

A Weight Based Attack on the CIKS-1 Block Cipher

A Weight Based Attack on the CIKS-1 Block Cipher A Weight Based Attack on the CIKS-1 Block Cipher Brian J. Kidney, Howard M. Heys, Theodore S. Norvell Electrical and Computer Engineering Memorial University of Newfoundland {bkidney, howard, theo}@engr.mun.ca

More information

Lab 2: Object-Oriented Design 12:00 PM, Jan 31, 2018

Lab 2: Object-Oriented Design 12:00 PM, Jan 31, 2018 CS18 Integrated Introduction to Computer Science Fisler, Nelson Contents Lab 2: Object-Oriented Design 12:00 PM, Jan 31, 2018 1 Terminology 1 2 Class Hierarchy Diagrams 2 2.1 An Example: Animals...................................

More information

Technology for Merchandise Planning and Control

Technology for Merchandise Planning and Control Contents: Technology for Merchandise Planning and Control Module Seven: Enhancing Charts Using What if Analysis REFERENCE/PAGES Enhancing Charts... Unit J 1 XL2007 Customizing a Data Series... Excel 226,

More information

3. Simple Types, Variables, and Constants

3. Simple Types, Variables, and Constants 3. Simple Types, Variables, and Constants This section of the lectures will look at simple containers in which you can storing single values in the programming language C++. You might find it interesting

More information

CS112 Lecture: Defining Instantiable Classes

CS112 Lecture: Defining Instantiable Classes CS112 Lecture: Defining Instantiable Classes Last revised 2/3/05 Objectives: 1. To describe the process of defining an instantiable class 2. To discuss public and private visibility modifiers. Materials:

More information

Using Dependency Graphs to Detect Open Source Intellectual Property Violation

Using Dependency Graphs to Detect Open Source Intellectual Property Violation 1 Using Dependency Graphs to Detect Open Source Intellectual Property Violation Gail Carmichael - gbanaszk@connect.carleton.ca and Siamak Sharif - SiamakSharif@hotmail.com Abstract Clone detection is important

More information

In examining performance Interested in several things Exact times if computable Bounded times if exact not computable Can be measured

In examining performance Interested in several things Exact times if computable Bounded times if exact not computable Can be measured System Performance Analysis Introduction Performance Means many things to many people Important in any design Critical in real time systems 1 ns can mean the difference between system Doing job expected

More information

1 Preface and overview Functional enhancements Improvements, enhancements and cancellation System support...

1 Preface and overview Functional enhancements Improvements, enhancements and cancellation System support... Contents Contents 1 Preface and overview... 3 2 Functional enhancements... 6 2.1 "Amazonification" of the application... 6 2.2 Complete integration of Apache Solr... 7 2.2.1 Powerful full text search...

More information

IBM Enterprise Records Performance Best Practices

IBM Enterprise Records Performance Best Practices IBM Enterprise Records Performance Best Practices Page 1 of 47 TABLE OF CONTENTS 1 INTRODUCTION... 4 1.1 TERMS... 4 1.2 REQUIRED CONCEPTS... 4 2 FILE PLAN MODELING FOR PERFORMANCE... 5 2.1 RETENTION MODEL...

More information

Chapter. Focus of the Course. Object-Oriented Software Development. program design, implementation, and testing

Chapter. Focus of the Course. Object-Oriented Software Development. program design, implementation, and testing Introduction 1 Chapter 5 TH EDITION Lewis & Loftus java Software Solutions Foundations of Program Design 2007 Pearson Addison-Wesley. All rights reserved Focus of the Course Object-Oriented Software Development

More information

code pattern analysis of object-oriented programming languages

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

More information

Questions. 6. Suppose we were to define a hash code on strings s by:

Questions. 6. Suppose we were to define a hash code on strings s by: Questions 1. Suppose you are given a list of n elements. A brute force method to find duplicates could use two (nested) loops. The outer loop iterates over position i the list, and the inner loop iterates

More information

This slide is relevant to providing either a single three hour training session or explaining how a series of shorter sessions focused on per chapter

This slide is relevant to providing either a single three hour training session or explaining how a series of shorter sessions focused on per chapter Welcome to the OpenChain Curriculum Slides. These slides can be used to help train internal teams about FOSS compliance issues and to conform with the OpenChain Specification. You can deliver these slides

More information

LPI Approved Training Partner (LPI ATP) Program Agreement

LPI Approved Training Partner (LPI ATP) Program Agreement The following agreement is herewith concluded between: - hereinafter Partner - and Open Source Certification GmbH, LPI Central Europe, Karthäuserstraße 8, 34117 Kassel, Germany, (hereafter, LPI CE ) Preamble

More information

This course supports the assessment for Scripting and Programming Applications. The course covers 4 competencies and represents 4 competency units.

This course supports the assessment for Scripting and Programming Applications. The course covers 4 competencies and represents 4 competency units. This course supports the assessment for Scripting and Programming Applications. The course covers 4 competencies and represents 4 competency units. Introduction Overview Advancements in technology are

More information

How are Developers Treating License Inconsistency Issues? A Case Study on License Inconsistency Evolution in FOSS Projects

How are Developers Treating License Inconsistency Issues? A Case Study on License Inconsistency Evolution in FOSS Projects How are Developers Treating License Inconsistency Issues? A Case Study on License Inconsistency Evolution in FOSS Projects Yuhao Wu 1(B), Yuki Manabe 2, Daniel M. German 3, and Katsuro Inoue 1 1 Graduate

More information

The type of all data used in a C++ program must be specified

The type of all data used in a C++ program must be specified The type of all data used in a C++ program must be specified A data type is a description of the data being represented That is, a set of possible values and a set of operations on those values There are

More information

Position Sort. Anuj Kumar Developer PINGA Solution Pvt. Ltd. Noida, India ABSTRACT. Keywords 1. INTRODUCTION 2. METHODS AND MATERIALS

Position Sort. Anuj Kumar Developer PINGA Solution Pvt. Ltd. Noida, India ABSTRACT. Keywords 1. INTRODUCTION 2. METHODS AND MATERIALS Position Sort International Journal of Computer Applications (0975 8887) Anuj Kumar Developer PINGA Solution Pvt. Ltd. Noida, India Mamta Former IT Faculty Ghaziabad, India ABSTRACT Computer science has

More information

Implementation of Customized FindBugs Detectors

Implementation of Customized FindBugs Detectors Implementation of Customized FindBugs Detectors Jerry Zhang Department of Computer Science University of British Columbia jezhang@cs.ubc.ca ABSTRACT There are a lot of static code analysis tools to automatically

More information

VARIABLES AND TYPES CITS1001

VARIABLES AND TYPES CITS1001 VARIABLES AND TYPES CITS1001 Scope of this lecture Types in Java the eight primitive types the unlimited number of object types Values and References The Golden Rule Primitive types Every piece of data

More information

Information Security Management Criteria for Our Business Partners

Information Security Management Criteria for Our Business Partners Information Security Management Criteria for Our Business Partners Ver. 2.1 April 1, 2016 Global Procurement Company Information Security Enhancement Department Panasonic Corporation 1 Table of Contents

More information

CLEARING THE PATH: PREVENTING THE BLOCKS TO CYBERSECURITY IN BUSINESS

CLEARING THE PATH: PREVENTING THE BLOCKS TO CYBERSECURITY IN BUSINESS CLEARING THE PATH: PREVENTING THE BLOCKS TO CYBERSECURITY IN BUSINESS Introduction The world of cybersecurity is changing. As all aspects of our lives become increasingly connected, businesses have made

More information

Tacked Link List - An Improved Linked List for Advance Resource Reservation

Tacked Link List - An Improved Linked List for Advance Resource Reservation Tacked Link List - An Improved Linked List for Advance Resource Reservation Li-Bing Wu, Jing Fan, Lei Nie, Bing-Yi Liu To cite this version: Li-Bing Wu, Jing Fan, Lei Nie, Bing-Yi Liu. Tacked Link List

More information

WHITE PAPER: ENTERPRISE AVAILABILITY. Introduction to Adaptive Instrumentation with Symantec Indepth for J2EE Application Performance Management

WHITE PAPER: ENTERPRISE AVAILABILITY. Introduction to Adaptive Instrumentation with Symantec Indepth for J2EE Application Performance Management WHITE PAPER: ENTERPRISE AVAILABILITY Introduction to Adaptive Instrumentation with Symantec Indepth for J2EE Application Performance Management White Paper: Enterprise Availability Introduction to Adaptive

More information

2. The object-oriented paradigm

2. The object-oriented paradigm 2. The object-oriented paradigm Plan for this section: Look at things we have to be able to do with a programming language Look at Java and how it is done there Note: I will make a lot of use of the fact

More information

Blogging and Project Management Survey: Preliminary Findings

Blogging and Project Management Survey: Preliminary Findings Blogging and Project Management Survey: Preliminary Findings Dennis D. McDonald, Ph.D. Email: ddmcd@yahoo.com Web: http://www.ddmcd.com December 7, 2007 Contents copyright 2007 by Dennis D. McDonald Background

More information

ARCHIVE ESSENTIALS

ARCHIVE ESSENTIALS EMAIL ARCHIVE ESSENTIALS KEY CONSIDERATIONS WHEN MOVING TO OFFICE 365 DISCUSSION PAPER PREFACE The last few years have seen significant changes in the way that organisations conduct business. There has

More information

Managing Learning Objects in Large Scale Courseware Authoring Studio 1

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

More information

CSE115 / CSE503 Introduction to Computer Science I. Dr. Carl Alphonce 343 Davis Hall Office hours:

CSE115 / CSE503 Introduction to Computer Science I. Dr. Carl Alphonce 343 Davis Hall Office hours: CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours: Thursday 12:00 PM 2:00 PM Friday 8:30 AM 10:30 AM OR request appointment via e-mail

More information

5/3/2006. Today! HelloWorld in BlueJ. HelloWorld in BlueJ, Cont. HelloWorld in BlueJ, Cont. HelloWorld in BlueJ, Cont. HelloWorld in BlueJ, Cont.

5/3/2006. Today! HelloWorld in BlueJ. HelloWorld in BlueJ, Cont. HelloWorld in BlueJ, Cont. HelloWorld in BlueJ, Cont. HelloWorld in BlueJ, Cont. Today! Build HelloWorld yourself in BlueJ and Eclipse. Look at all the Java keywords. Primitive Types. HelloWorld in BlueJ 1. Find BlueJ in the start menu, but start the Select VM program instead (you

More information

1.1 Jadex - Engineering Goal-Oriented Agents

1.1 Jadex - Engineering Goal-Oriented Agents 1.1 Jadex - Engineering Goal-Oriented Agents In previous sections of the book agents have been considered as software artifacts that differ from objects mainly in their capability to autonomously execute

More information

WELCOME! Lecture 3 Thommy Perlinger

WELCOME! Lecture 3 Thommy Perlinger Quantitative Methods II WELCOME! Lecture 3 Thommy Perlinger Program Lecture 3 Cleaning and transforming data Graphical examination of the data Missing Values Graphical examination of the data It is important

More information

Report on Registrar Whois Data Reminder Policy Survey

Report on Registrar Whois Data Reminder Policy Survey Report on Registrar Whois Data Reminder Policy Survey Executive Summary ICANN adopted the Whois Data Reminder Policy (WDRP) on 27 March 2003. The purpose of the WDRP is to encourage registrants to review

More information

ASSIGNMENT 5 Data Structures, Files, Exceptions, and To-Do Lists

ASSIGNMENT 5 Data Structures, Files, Exceptions, and To-Do Lists ASSIGNMENT 5 Data Structures, Files, Exceptions, and To-Do Lists COMP-202B, Winter 2009, All Sections Due: Tuesday, April 14, 2009 (23:55) You MUST do this assignment individually and, unless otherwise

More information

WHITE PAPER Application Performance Management. The Case for Adaptive Instrumentation in J2EE Environments

WHITE PAPER Application Performance Management. The Case for Adaptive Instrumentation in J2EE Environments WHITE PAPER Application Performance Management The Case for Adaptive Instrumentation in J2EE Environments Why Adaptive Instrumentation?... 3 Discovering Performance Problems... 3 The adaptive approach...

More information

Operating Instructions. VEGA DataViewer. Software for archive, administration and display of DTM data. Document ID: 51547

Operating Instructions. VEGA DataViewer. Software for archive, administration and display of DTM data. Document ID: 51547 Operating Instructions Software for archive, administration and display of DTM data VEGA DataViewer Document ID: 51547 Contents Contents 1 About this document... 3 1.1 Function... 3 1.2 Target group...

More information

Build Your Zero Trust Security Strategy With Microsegmentation

Build Your Zero Trust Security Strategy With Microsegmentation Why Digital Businesses Need A Granular Network Segmentation Approach GET STARTED Overview The idea of a secure network perimeter is dead. As companies rapidly scale their digital capabilities to deliver

More information

Ontology based Model and Procedure Creation for Topic Analysis in Chinese Language

Ontology based Model and Procedure Creation for Topic Analysis in Chinese Language Ontology based Model and Procedure Creation for Topic Analysis in Chinese Language Dong Han and Kilian Stoffel Information Management Institute, University of Neuchâtel Pierre-à-Mazel 7, CH-2000 Neuchâtel,

More information

DATA PROTECTION POLICY THE HOLST GROUP

DATA PROTECTION POLICY THE HOLST GROUP DATA PROTECTION POLICY THE HOLST GROUP INTRODUCTION The purpose of this document is to provide a concise policy regarding the data protection obligations of The Holst Group. The Holst Group is a data controller

More information

- Table of Contents -

- Table of Contents - - Table of Contents - 1 INTRODUCTION... 1 1.1 OBJECTIVES OF THIS GUIDE... 1 1.2 ORGANIZATION OF THIS GUIDE... 2 1.3 COMMON CRITERIA STANDARDS DOCUMENTS... 3 1.4 TERMS AND DEFINITIONS... 5 2 BASIC KNOWLEDGE

More information

Control Flow. COMS W1007 Introduction to Computer Science. Christopher Conway 3 June 2003

Control Flow. COMS W1007 Introduction to Computer Science. Christopher Conway 3 June 2003 Control Flow COMS W1007 Introduction to Computer Science Christopher Conway 3 June 2003 Overflow from Last Time: Why Types? Assembly code is typeless. You can take any 32 bits in memory, say this is an

More information

MODELLING COMPOSITIONS OF MODULAR EMBEDDED SOFTWARE PRODUCT LINES

MODELLING COMPOSITIONS OF MODULAR EMBEDDED SOFTWARE PRODUCT LINES MODELLING COMPOSITIONS OF MODULAR EMBEDDED SOFTWARE PRODUCT LINES Wolfgang Friess AUDI AG wolfgang.friess@audi.de Julio Sincero University Erlangen-Nuernberg sincero@informatik.uni-erlangen.de Wolfgang

More information

EC312 Chapter 5: Intro to Pointers

EC312 Chapter 5: Intro to Pointers Objectives: EC312 Chapter 5: Intro to Pointers (a) Explain the operation of the address operator. (b) Given the source code of a C program which uses pointers, and the output of the debugger, locate the

More information

Lecture Programming in C++ PART 1. By Assistant Professor Dr. Ali Kattan

Lecture Programming in C++ PART 1. By Assistant Professor Dr. Ali Kattan Lecture 08-1 Programming in C++ PART 1 By Assistant Professor Dr. Ali Kattan 1 The Conditional Operator The conditional operator is similar to the if..else statement but has a shorter format. This is useful

More information

Chapter 12. File Management

Chapter 12. File Management Operating System Chapter 12. File Management Lynn Choi School of Electrical Engineering Files In most applications, files are key elements For most systems except some real-time systems, files are used

More information

The SPL Programming Language Reference Manual

The SPL Programming Language Reference Manual The SPL Programming Language Reference Manual Leonidas Fegaras University of Texas at Arlington Arlington, TX 76019 fegaras@cse.uta.edu February 27, 2018 1 Introduction The SPL language is a Small Programming

More information

A Distributed Media Service System Based on Globus Data-Management Technologies1

A Distributed Media Service System Based on Globus Data-Management Technologies1 A Distributed Media Service System Based on Globus Data-Management Technologies1 Xiang Yu, Shoubao Yang, and Yu Hong Dept. of Computer Science, University of Science and Technology of China, Hefei 230026,

More information

The Open Group SOA Ontology Technical Standard. Clive Hatton

The Open Group SOA Ontology Technical Standard. Clive Hatton The Open Group SOA Ontology Technical Standard Clive Hatton The Open Group Releases SOA Ontology Standard To Increase SOA Adoption and Success Rates Ontology Fosters Common Understanding of SOA Concepts

More information