14 research outputs found
Executing Assertions via Synthesized Logic Programs
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
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
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
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
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
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
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
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
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)
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