15 research outputs found

    Analyzing and Implementing a Feature Mapping Approach to CAD System Interoperability

    Get PDF
    Interoperable information exchange between computer-aided design (CAD) systems is one of the major problems to enable information integration in a collaborative engineering environment. Although a significant amount of work has been done on the extension and standardization of CAD data formats as well as the cooperation of CAD systems in both academy and industry, these approaches are generally low-level and narrowly targeted. Lack of fundamental study of interoperability and generic solution to this problem is the major issue. Our intention of this research is to design a solution of CAD feature interoperability as generic as possible based on a theoretical foundation of language types. In this paper, we present a fundamental model of semantic features and feature mapping process based on the type theory. We implement and demonstrate our approach for automated feature exchange between commercial CAD systems

    Subtyping with Generics: A Unified Approach

    Get PDF
    Reusable software increases programmers\u27 productivity and reduces repetitive code and software bugs. Variance is a key programming language mechanism for writing reusable software. Variance is concerned with the interplay of parametric polymorphism (i.e., templates, generics) and subtype (inclusion) polymorphism. Parametric polymorphism enables programmers to write abstract types and is known to enhance the readability, maintainability, and reliability of programs. Subtyping promotes software reuse by allowing code to be applied to a larger set of terms. Integrating parametric and subtype polymorphism while maintaining type safety is a difficult problem. Existing variance mechanisms enable greater subtyping between parametric types, but they suffer from severe deficiencies. They are unable to express several common type abstractions. They can cause a proliferation of types and redundant code. They are difficult for programmers to use due to its inherent complexity. This dissertation aims to improve variance mechanisms in programming languages supporting parametric polymorphism. To address the shortcomings of current mechanisms, I will combine two popular approaches, definition-site variance and use-site variance, in a single programming language. I have developed formal languages or calculi for reasoning about variance. The calculi are example languages supporting both notions of definition-site and use-site variance. They enable stating precise properties that can be proved rigorously. The VarLang calculus demonstrates fundamental issues in variance from a language neutral perspective. The VarJ calculus illustrates realistic complications by modeling a mainstream programming language, Java. VarJ not only supports both notions of use-site and definition-site variance but also language features with complex interactions with variance such as F-bounded polymorphism and wildcard capture. A mapping from Java to VarLang was implemented in software that infers definition-site variance for Java. Large, standard Java libraries (e.g. Oracle\u27s JDK 1.6) were analyzed using the software to compute metrics measuring the benefits of adding definition-site variance to Java, which only supports use-site variance. Applying this technique to six Java generic libraries shows that 21-47% (depending on the library) of generic definitions are inferred to have single-variance; 7-29% of method signatures can be relaxed through this inference, and up to 100% of existing wildcard annotations are unnecessary and can be elided. Although the VarJ calculus proposes how to extend Java with definition-site variance, no mainstream language currently supports both definition-site and use-site variance. To assist programmers with utilizing both notions with existing technology, I developed a refactoring tool that refactors Java code by inferring definition-site variance and adding wildcard annotations. This tool is practical and immediately applicable: It assumes no changes to the Java type system, while taking into account all its intricacies. This system allows users to select declarations (variables, method parameters, return types, etc.) to generalize and considers declarations not declared in available source code. I evaluated our technique on six Java generic libraries. I found that 34% of available declarations of variant type signatures can be generalized-i.e., relaxed with more general wildcard types. On average, 146 other declarations need to be updated when a declaration is generalized, showing that this refactoring would be too tedious and error-prone to perform manually. The result of applying this refactoring is a more general interface that supports greater software reuse

    Towards Industrial Implementation of Emerging Semantic Technologies

    Get PDF
    Every new design, project, or procedure within a company generates a considerable amount of new information and important knowledge. Furthermore, a tremendous amount of legacy knowledge already exists in companies in electronic and non-electronic formats, and techniques are needed for representing, structuring and reusing this knowledge. Many researchers have spent considerable time and effort developing semantic knowledge management systems, which in theory are presumed to address these problems. Despite significant research investments, little has been done to implement these systems within an industrial setting. In this paper we identify five main requirements to the development of an industry-ready application of semantic knowledge management systems and discuss how each of these can be addressed. These requirements include the ease of new knowledge management software adoption, the incorporation of legacy information, the ease of use of the user interface, the security of the stored information, and the robustness of the software to support multiple file types and allow for the sharing of information across platforms. Collaboration with Raytheon, a defense and aerospace systems company, allowed our team to develop and demonstrate a successful adoption of semantic abilities by a commercial company. Salient features of this work include a new tool, the e-Design MemoExtractor Software Tool, designed to mine and capture company information, a Raytheon-specific extension to the e-Design Framework, and a novel semantic environment in the form of a customized semantic wikiSMW+. The advantages of this approach are discussed in the context of the industrial case study with Raytheon

    Taming the Wildcards: Combining Definition- and Use-Site Variance

    No full text
    Variance allows the safe integration of parametric and subtype polymorphism. Two flavors of variance, definition-site versus use-site variance, have been studied and have had their merits hotly debated. Definition-site variance (as in Scala and C#) offers simple type-instantiation rules, but causes fractured definitions of naturally invariant classes; Use-site variance (as in Java) offers simplicity in class definitions, yet complex type-instantiation rules that elude most programmers. We present a unifying framework for reasoning about variance. Our framework is quite simple and entirely denotational, that is, it evokes directly the definition of variance with a small core calculus that does not depend on specific type systems. This general framework can have multiple applications to combine the best of both worlds: for instance, it can be used to add use-site variance annotations to the Scala type system. We show one such application in detail: we extend the Java type system with a mechanism that modularly infers the definition-site variance of type parameters, while allowing use-site variance annotations on any type-instantiation. Applying our technique to six Java generic libraries (including the Java core library) shows that 20-58% (depending on the library) of generic definitions are inferred to have single-variance; 8-63% of method signatures can be relaxed through this inference, and up to 91% of existing wildcard annotations are unnecessary and can be elided

    Taming the wildcards

    No full text

    Analyzing And Implementing A Feature Mapping Approach To Cad System Interoperability

    No full text
    Interoperable information exchange between computer-aided design (CAD) systems is one of the major problems to enable information integration in a collaborative engineering environment. Although a significant amount of work has been done on the extension and standardization of CAD data formats as well as the cooperation of CAD systems in both academy and industry, these approaches are generally low-level and narrowly targeted. Lack of fundamental study of interoperability and generic solution to this problem is the major issue. Our intention of this research is to design a solution of CAD feature interoperability as generic as possible based on a theoretical foundation of language types. In this paper, we present a fundamental model of semantic features and feature mapping process based on the type theory. We implement and demonstrate our approach for automated feature exchange between commercial CAD systems. Copyright © 2009 by ASME

    Analyzing And Implementing A Feature Mapping Approach To Cad System Interoperability

    No full text
    Interoperable information exchange between computer-aided design (CAD) systems is one of the major problems to enable information integration in a collaborative engineering environment. Although a significant amount of work has been done on the extension and standardization of CAD data formats as well as the cooperation of CAD systems in both academy and industry, these approaches are generally low-level and narrowly targeted. Lack of fundamental study of interoperability and generic solution to this problem is the major issue. Our intention of this research is to design a solution of CAD feature interoperability as generic as possible based on a theoretical foundation of language types. In this paper, we present a fundamental model of semantic features and feature mapping process based on the type theory. We implement and demonstrate our approach for automated feature exchange between commercial CAD systems. © 2009 by ASME

    Analyzing and Implementing a Feature Mapping Approach to CAD System Interoperability

    No full text
    Interoperable information exchange between computer-aided design (CAD) systems is one of the major problems to enable information integration in a collaborative engineering environment. Although a significant amount of work has been done on the extension and standardization of CAD data formats as well as the cooperation of CAD systems in both academy and industry, these approaches are generally low-level and narrowly targeted. Lack of fundamental study of interoperability and generic solution to this problem is the major issue. Our intention of this research is to design a solution of CAD feature interoperability as generic as possible based on a theoretical foundation of language types. In this paper, we present a fundamental model of semantic features and feature mapping process based on the type theory. We implement and demonstrate our approach for automated feature exchange between commercial CAD systems.This proceeding is from Proceedings of the ASME 2009 International Design Engineering Technical Conferences & Computers and Information in Engineering Conference (2009): Paper No. DETC2009-87539, 695–707, doi:10.1115/DETC2009-87539. Posted with permission.</p
    corecore