1,720,973 research outputs found

    From Standard Specifications to a Multi-agent Software System: Audio Video Entertainment Application in Practice

    No full text
    The paper focuses on two particular aspects of using a set of current standards for building a Multi-agent system: analysis and evaluation of certain aspects of the current specification standards provided by FIPA (Foundation of Intelligent Physical Agents) when implementing Multi-agent systems and bridging the gap between the specification and getting a multi-agent system to work. The work reported here is based on one of the developments of a Multi-agent architecture to test certain features of a standards specification. This testing has resulted in determining certain limitations and advantages of using the FIPA standards. The application used for deployment is an audio video entertainment broadcasting (AVEB) system. The development and testing are part of an EU project called - FACTS (acts AC317

    L-ISA: Learning Domain Specific Isa-Relations from the Web

    No full text
    Automated extraction of ontological knowledge from text corpora is a relevant task in Natural Language Processing. In this paper, we focus on the problem of finding hypernyms for relevant concepts in a specific domain (e.g. Optical Recording) in the context of a concrete and challenging application scenario (patent processing). To this end information available on the Web is exploited. The extraction method includes four mains steps. Firstly, the Google search engine is exploited to retrieve possible instances of isa-patterns reported in the literature. Then, the returned snippets are filtered on the basis of lexico-syntactic criteria (e.g. the candidate hypernym must be expressed as a noun phrase without complex modifiers). In a further filtering step, only candidate hypernyms compatible with the target domain are kept. Finally a candidate ranking mechanism is applied to select one hypernym as output of the algorithm. The extraction method was evaluated on 100 concepts of the Optical Recording domain. Moreover, the reliability of isa-patterns reported in the literature as predictors of isa-relations was assessed by manually evaluating the template instances remaining after lexico-syntactic filtering, for 3 concepts of the same domain. While more extensive testing is needed the method appears promising especially for its portability across different domains

    Bayesian Belief Networks: Introduction and Learning

    No full text
    Bayesian Belief Networks are graph-based representations of probability distributions. In the last decade they became popular for modeling and using uncertain knowledge in many and different contexts. In this paper an introduction to the framework and a review of the main issues related to learning Bayesian Belif Networks are presented. The first part focuses on the definition of the framework: the mathematical and representational properties are described and discussed as well as Belief Networks from data, a topic which received much attention recently. A large amount of works, approaches and methodologies proposed in the literature is surveye

    Reverse engineering of the UML class diagram from C++ code in presence of weakly typed containers

    No full text
    UML diagrams, and in particular the most frequently used one, the class diagram, represent a valuable source of information even after the delivery of the system, when it enters the maintenance phase. Several tools provide a reverse engineering engine to recover it from the code. In this paper, an algorithm is proposed for the improvement of the accuracy of the UML class diagram extracted from the code. Specifically, important information about inter-class relations may be missed in a reverse engineered class diagram, when weakly typed containers, i.e., containers collecting objects whose type is the top of the inheritance hierarchy, are employed. In fact, the class of the contained objects is not directly known, and therefore no relation with it is apparent from the container declaration. The proposed approach was applied to several software components developed at CERN. Experimental results highlight that a substantial improvement is achieved when the container type information is refined with the inferred data. The number of relations otherwise missed is relevant and the connectivity of the associated class diagrams is radically different when containers are considered. 14 Refs

    Automatic Verification of Coding Standards

    No full text
    The adoption of a programming discipline is one of the means to control the quality of the code being developed. This is particularly important when the development team is distributed. Modifying or even using code written by others is less difficult if a set of standards are known to be followed. Moreover, programming languages such as C++ give programmers the possibility to obtain a given result in several alternative ways, which span from self descriptive, easy to understand to convoluted and unreasonably complex. Again, enforcing some constraints on the programming constructs that are used, on the naming conventions and on the comments may help. In this paper the tool RuleChecker is described for the automatic verification of coding standards. The tool is built on top of a general C++ analysis package, which was developed in collaboration with CERN. The paper reports some of the design decisions made during the development of the tool. its usage within the Alice experiment at CERN is also described, by first giving some details on the implemented coding conventions and then providing some quantitative measures on the effects of tool adoption within the normal software development proces

    Reverse Engineering of the Interaction Diagrams from C++ Code

    No full text
    In object oriented programming, the functionalities of a system result from the interactions (message exchanges) among the objects allocated by the system. While designing object interactions is far more complex than designing the object structure in forward engineering, the problem of understanding object interactions during code evolution is even harder. In this paper. a tecnique for the automatic extraction of the interaction diagrams from C++ code is proposed. The algoritm is based on a static flow analysis, so that results are ensured to conservatively approximate the behavior of the system in any execution and for any possible input. Scalability of the approach to large software is achieved by means of two mechanisms: partial analysis and focusing. Application of our method to a real world, large C++ system confirmed its viability and usefulnes

    Static and Dynamic C++ Code Analysis for the Recovery of the Object Diagram

    No full text
    When a software system enters the maintenance phase, the availability of accurate and consistent information about its organization can help alleviate the difficulties of program understanding. Reverse engineering methods aim at extracting such kind of information directly from the code. While several tools support the recovery of the class diagram from object oriented code, no work has insofar attacked the problem of statically characterizing the behaviior of an object oriented system by means of diagrams which represent the class instances (objects) and their mutual relationships. In this paper a novel static analysis algorithm is proposed for the extraction of the object diagram from the code, based on a program representatin called the object low graph. Partial object diagrams can be associated dynamically to the system by executing and tracing the program on a set of test cases. The complementary nature of these two views will be discussed, and a novel approach to object oriented testing will be derived from such a comparison. The usefulness of the proposed technique is illustrated on a real world, public domain C++ syste

    C++ Code Analysis: an Open Architecture for the Verification of Coding Rules

    No full text
    The analysis of C++ code is the basic building block of the collaboration between ITC-irst and CERN, aimed at improving the quality of the software by exploiting the information that can be automatically gathered from the code. The first objective of the collaboration is the development of a coding rule check tool. Successive steps will include a reverse engineering engine and an intelligent refactoring tool. Since all planned applications, and possibly also those not yet considered, share a common analysis bulk, particular attention was devoted to the development of an open architecture for the analysis of C++ code. In this report the adopted architectural solutions are presented and discussed, highlighting their generality, the possibilities of extension that they offer, and the way details could be encapsulated within packages, so that a clear and sharp interface between the subsystems is defined. The peculiarities of the C++ language are also described, together with the way they were approached and the state of the current implementatio

    Cjj: a subset of C++ compliant with Java

    No full text
    AbstractThe C++ programming language offers a wide range of coding alternatives to programmers. Some language characteristics inherited from C are potential sources of problems during the evolution of a system. Global variables, arbitrary branches, pointers, memory management instructions and macro directives are examples of them. The resulting code may be difficult to understand, maintain and test, if such language features are used without proper discipline. The Java language was designed with the explicit goal of excluding all troublesome features that can be found in C++, by disregarding some of them (e.g., globals), and disciplining other ones (e.g., pointers). For several companies the migration to Java is not strategically feasible. Nevertheless, the adoption of its philosophy within C++ code could help improve the quality of the software. In this paper a subset of C++, named Cjj, is defined which is compliant with Java, in that it enforces a Java-like programming style, while forbidding all C++ constructs that are in contrast with it. A tool for the verification of the compliance of an input source with Cjj was developed. It verifies if any of the constraints defining Cjj is violated
    corecore