14 research outputs found

    Executing Assertions via Synthesized Logic Programs

    Get PDF
    Programming with assertions constitutes an effective tool to detect and correct programming errors. The ability of executing for- mal specifications is essential in order to test automatically an imple mentation against its assertions. However, formal assertions may de scribe recursive models which are di±cult to identify so current assertion checkers limit, in a considerable way, the expressivity of the assertion language. In this paper, we are interested in showing how transforma- tional synthesis can help to execute \expressive" assertions r of the form 8¹x(r(¹x) , Q¹yR(¹x; ¹y)) where Q is either an existential or universal quan- tifier and R a quantifier free formula in the language of a formal theory C we call assertion context. This sort of theories is interesting because it presents a balance between expressiveness for writing assertions and existence of effective methods for compiling and executing them

    Synthesis of positive logic programs for checking a class of definitions with infinite quantification

    Get PDF
    We describe a method based on unfold/fold transformations that synthesizes positive logicprograms P(r)with the purpose of checking mechanically definitions of the form D(r) =∀X(r(X) ⇔QYR(X, Y))where ris the relation defined by the formula QYR(X, Y), Xis a set of variables to be instantiated at runtime by ground terms, QYis a set of quantifiedvariables on infinite domains (Qis the quantifier) and R(X, Y)a quantifier-free formulain the language of a first-order logic theory. This work constitutes a first step towards theconstruction of a new type of assertion checkers with the ability of handling restrictedforms of infinite quantification

    Towards a Theory on the Role of Ontologies in Software Engineering Problem Solving: Conclusions from a Theoretical Model of Methodological Works

    Get PDF
    We present and validate a theoretical model of methodological works in Software Engineering that, without claiming for completeness, allows us to investigate the role of ontologies in the problem solving process related with the development of software. Our main conclusion is the potential of ontologies as resources for an individual to think during problem solving. We argument that suitable ontologies can support solving strategies as well as motivate their invention. We also conclude the importance of accompany an ontology with knowledge that guides the engineer in reasoning with its concepts. The model regards a methodological work as an heterogeneous theory about a class of problems and about a number of conceptual elements. Some of the elements are ontologies, which play the role of identifying and relating aspects of the knowledge about the class of problems, making up novel perspectives on the problems that may promote solving strategies. For illustration purposes, we take Jackson’s “Problem Frames” as a case study. We analyse this work through the former model, identifying the ontologies, guides, and promoted strategies. Then we propose an alternative ontology, based on that used in the KAOS approach; we reformulate some parts of Jackson’s work through this ontology and propose a strategy as well as some guides.Comisión Interministerial de Ciencia y Tecnología TIC 2003-02737-C02-0

    Folding by Similarity

    Get PDF
    A formal specification can describe software models which are di±cult to program. Transformational methods based on fold/unfold strategies have been proposed to palliate this problem. The objective of applying transfor- mations is to filter out a new version of the specification where recursion may be introduced by a folding step. Among many problems, the "eureka" about when and how to define a new predicate is di±cult to find automatically. We propose a new version of the folding rule which decides automatically how to introduce new predicates in a specification. Our method is based on finding similarities between formulas represented as parsing trees and it constitutes an assistance to the complex problem of deriving recursive specifications from non recursive ones

    The intentional relationship of representation between the constructs of a language and reality

    Get PDF
    Specifications of conceptualisations (ontologies) are often employed for represent- ing reality, both in knowledge representation and software engineering. While lan- guages o®er sophisticated constructs and rigorous semantics for building concep- tual entities, no attention is paid to the relationship between such entities and the world they intend to represent. This paper studies such a relationship and provides empirical evidences in favour of two main hypotheses: (1) conceptualisations are insuficient to fully represent the specifics of reality; (2) languages (both represen- tation and design-oriented) are general representations of (classes of) systems in the world, and they can be characterised as scientific theories. The first hypoth- esis establishes a problem for which we propose a solution based on the explicit elaboration of statements claiming the similarity (in some respects and to certain degrees of accuracy) between conceptual entities and real-world systems of interest. The second hypothesis constitutes a new perspective for understanding languages, whose advantages to representation and design are discussed in detail.Ministerio de Educación y Ciencia HUM2007-66607-C04-0

    Some Problems of Current Modelling Languages that Obstruct to Obtain Models as Instruments

    Get PDF
    In this paper we reflect on the usefulness of current modelling languages. We defend that objects elaborated with such languages are instruments that pursue one or several typi ed purposes, which include: (1) to represent knowledge about some subject, whether real or imaginary; (2) to help in understanding and in answering questions about the properties of some subject; and (3) to stimulate the engineer's creativity in solving some problem. We reason that achieving this instrumental role in modelling languages is a necessary condition for a Model-Driven Software Engineering. However, studying several languages of common use in practice, we claim that there are at least four problem categories that obstruct that useful models as instruments can be elaborated with current modelling languages

    Constructing Recursions by Similarity

    Get PDF
    A formal specification can describe software models which are difficult to program. Transformational methods based on fold/unfold strategies have been proposed to palliate this problem. The objective of applying transformations is to filter out a new version of the specification where recursion may be introduced by a folding step. Among many problems, the “eureka” about when and how to define a new predicate is difficult to find automatically. We propose a new version of the folding rule which decides automatically how to introduce new predicates in a specification. Our method is based on finding similarities between formulas represented as parsing trees and it constitutes an assistance to the complex problem of deriving recursive specifications from non recursive ones

    Conciencia de modelos como instrumentos en Ingeniería de Software: una aproximación desde las Ciencias Naturales y Sociales

    Get PDF
    El papel que desempeñan los modelos en la Ciencia moderna ha sido tradicionalmente un tema de gran interés para la Filosofía. Una reciente investigación realizada sobre múltiples casos de estudio tomados de la Física, la Química y las Ciencias Económicas (Morgan y Morrison, 1999) nos ofrece una perspectiva pragmática de los modelos científicos, descubriendo en ellos verdaderos instrumentos de investigación, útiles tanto en la elaboración de teorías como en la comprensión del mundo. Este papel consolidado y eminentemente práctico ha despertado nuestra curiosidad y nos ha motivado a estudiar los objetos que en Ingeniería de Software se denominan “modelos”, provistos en nuestro estudio con el conocimiento que ofrece este nuevo ensayo sobre los modelos de la Ciencia. Nos hemos planteado las siguientes preguntas: a) ¿Existe un concepto consolidado de “modelo” en Ingeniería de Software? b) ¿Se utilizan modelos científicos en esta disciplina? c) ¿Existe algún paralelismo entre los modelos de Ingeniería de Software y los de la Ciencia? d) ¿Pueden ser considerados “instrumentos” los modelos de esta ingeniería, al igual que ocurre en la Ciencia? En caso afirmativo, ¿cuál es la funcionalidad de los mismos? En este artículo exponemos las conclusiones a las que hemos llegado. Nuestro método de trabajo ha sido el mismo que el seguido por la investigación referida anteriormente, es decir, el estudio de distintos casos

    Named Entity Recognition Through Corpus Transformation and System Combination

    Get PDF
    In this paper we investigate the way of combining different taggers to improve their performance in the named entity recognition task. The main resources used in our experiments are the publicly available taggers TnT and TBL and a corpus of Spanish texts in which named entities occurrences are tagged with BIO tags. We have defined three transformations that provide us three additional versions of the training corpus. The transformations change either the words or the tags, and the three of them improve the results of TnT and TBL when they are trained with the original version of the corpus. With the four versions of the corpus and the two taggers, we have eight different models that can be combined with several techniques. The experiments carried out show that using machine learning techniques to combine them the performance improves considerably. We improve the baselines for TnT (Fβ=1 value of 85.25) and TBL (Fβ=1 value of 87.45) up to a value of 90.90 in the best of our experiments

    Métodos Formales Orientados a Objetos (LSI-2002-02)

    No full text
    El área de los Métodos Formales Orientados a Objetos (MFOO en adelante) se ocupa de la descripción de software de manera precisa y rigurosa. Tal objetivo obliga a la utilización de lenguajes de especificación de software de naturaleza matemática. Es interesante destacar, que en los últimos años se ha evidenciado un acercamiento entre dos comunidades de ingeniería de software aparentemente muy distintas: la “comunidad de los métodos formales” y la “comunidad de los métodos convencionales”. Syntropy [CoD94] y Catalysis [SoW98] representan dos buenos ejemplos de este acercamiento. Históricamente, los métodos formales centraron sus objetivos en la calidad, descuidando, en gran medida, el entorno en el que debían aplicarse. La falta de educación general y el déficit de herramientas los convirtieron en recursos bastante ideales y difíciles de manejar. Si embargo, esta crítica no recae sólo en el debe de los métodos formales. La sistematización progresiva de la producción de software necesita de notaciones expresivas y, evidentemente, formales. No hay automatización sin formalización. El camino, sin duda, es largo y las fertilizaciones cruzadas entre ambas comunidades, serán necesarias. La organización del presente documento es la siguiente: en la sección 2 se establecen la definición de método formal orientado a objetos, para ello, se definen los conceptos formal y orientación a objetos. A continuación, se establece una organización del conocimiento en el área MFOO mediante una descomposición en temas. La descomposición distingue conceptos básicos y fundamentales, conocimientos sobre formalismos matemáticos y métodos formales orientados a objetos. La sección 4 establece una justificación razonada de la descomposición. La sección 5 permite al lector identificar rápidamente las referencias de interés para un determinado tema. Finalmente, se establece una selección de las referencias recomendadas
    corecore