656 research outputs found
Introduction to Directory Services
The Directory has grown to be an important OSI application as it acts as a focal point and general support for a number of other applications. This work first points out directory requirements in the OSI framework and other OSI applications, as the Mail Handling System. The first version of the X.500 standard is then described and some Directory related issues are discussed. In particular, X.500 Directory as a database system is examined and some directory service implementations are presented
Engineering scalable modelling Languages
Tesis doctoral inédita leída en la Universidad Autónoma de Madrid, Escuela Politécnica Superior, Departamento de Ingeniería Informática. Fecha de lectura: 08-11-2019Esta tesis tiene embargado el acceso al texto completo hasta el 08-05-2021Model-Driven Engineering (MDE) aims at reducing the cost of system development by raising the level of abstraction at which developers work. MDE-based solutions frequently involve the creation of Domain-Specific Modelling Languages (DSMLs). WhilethedefinitionofDSMLsandtheir(sometimesgraphical)supportingenvironments are recurring activities in MDE, they are mostly developed ad-hoc from scratch. The construction of these environments requires high expertise by developers, which currently need to spend large efforts for their construction. This thesis focusses on the development of scalable modelling environments for DSMLs based on patterns. For this purpose, we propose a catalogue of modularity patterns that can be used to extend a modelling language with services related to modularization and scalability. More specifically, these patterns allows defining model fragmentation strategies, scoping and visibility rules, model indexing services, and scoped constraints. Once the patterns have been applied to the meta-model of a modelling language, we synthesize a customized modelling environment enriched with the defined services, which become applicable to both existing monolithic legacy models and new models. A second contribution of this thesis is a set of concepts and technologies to facilitate the creation of graphical editors. For this purpose, we define heuristics which identify structures in the DSML abstract syntax, and automatically assign their diagram representation. Using this approach, developers can create a graphical representation by default from a meta-model, which later can be customised. These contributions have been implemented in two Eclipse plug-ins called EMFSplitter and EMF-Stencil. On one hand, EMF-Splitter implements the catalogue of modularity patterns and, on the other hand, EMF-Stencil supports the heuristics and the generation of a graphical modelling environment. Both tools were evaluated in different case studies to prove their versatility, efficiency, and capabilitieEl Desarrollo de Software Dirigido por Modelos (MDE, por sus siglas en inglés) tiene como objetivo reducir los costes en el desarrollo de aplicaciones, elevando el nivel de abstracciónconelqueactualmentetrabajanlosdesarrolladores. Lassolucionesbasadas en MDE frecuentemente involucran la creación de Lenguajes de Modelado de Dominio Específico (DSML, por sus siglas en inglés). Aunque la definición de los DSMLs y sus entornos gráficos de modelado son actividades recurrentes en MDE, actualmente en la mayoría de los casos se desarrollan ad-hoc desde cero. La construcción de estos entornos requiere una alta experiencia por parte de los desarrolladores, que deben realizar un gran esfuerzo para construirlos. Esta tesis se centra en el desarrollo de entornos de modelado escalables para DSML basados en patrones. Para ello, se propone un catálogo de patrones de modularidad que se pueden utilizar para extender un lenguaje de modelado con servicios relacionados con la modularización y la escalabilidad. Específicamente, los patrones permiten definir estrategias de fragmentación de modelos, reglas de alcance y visibilidad, servicios de indexación de modelos y restricciones de alcance. Una vez que los patrones se han aplicado al meta-modelo de un lenguaje de modelado, se puede generar automáticamente un entorno de modelado personalizado enriquecido con los servicios definidos, que se vuelven aplicables tanto a los modelos monolíticos existentes, como a los nuevos modelos. Una segunda contribución de esta tesis es la propuesta de conceptos y tecnologías para facilitar la creación de editores gráficos. Para ello, definimos heurísticas que identifican estructuras en la sintaxis abstracta de los DSMLs y asignan automáticamente su representación en el diagrama. Usando este enfoque, los desarrolladores pueden crear una representación gráfica por defecto a partir de un meta-modelo. Estas contribuciones se implementaron en dos plug-ins de Eclipse llamados EMFSplitter y EMF-Stencil. Por un lado, EMF-Splitter implementa el catálogo de patrones y, por otro lado, EMF-Stencil implementa las heurísticas y la generación de un entorno de modelado gráfico. Ambas herramientas se han evaluado con diferentes casos de estudio para demostrar su versatilidad, eficiencia y capacidade
Framework development for providing accessibility to qualitative spatial calculi
Dissertation submitted in partial fulfillment of the requirements for the Degree of Master of Science in Geospatial Technologies.Qualitative spatial reasoning deals with knowledge about an infinite spatial domain using a finite set of qualitative relations without using numerical computation. Qualitative knowledge is relative knowledge where we obtain the knowledge on the basis of comparison of features with in the object domain rather then using some external scales. Reasoning is an intellectual facility by which, conclusions are drawn from premises and is present in our everyday interaction with the geographical world. The kind of reasoning that human being relies on is based on commonsense knowledge in everyday situations. During the last decades a multitude of formal calculi over spatial relations have been proposed by focusing on different aspects of space like topology, orientation and distance.
Qualitative spatial reasoning engines like SparQ and GQR represents space and reasoning about the space based on qualitative spatial relations and bring qualitative reasoning closer to the geographic applications. Their relations and certain operations defined in qualitative calculi use to infer new knowledge on different aspects of space.
Today GIS does not support common-sense reasoning due to limitation for how to formalize spatial inferences. It is important to focus on common sense geographic reasoning, reasoning as it is performed by human. Human perceive and represents geographic information qualitatively, the integration of reasoner with spatial application enables GIS users to represent and extract geographic information qualitatively using human understandable query language.
In this thesis, I designed and developed common API framework using platform independent software like XML and JAVA that used to integrate qualitative spatial reasoning engines (SparQ) with GIS application. SparQ is set of modules that structured to provides different reasoning services. SparQ supports command line instructions and it has a specific syntax as set of commands. The developed API provides interface between GIS application and reasoning engine. It establishes connection with reasoner over TCP/IP, takes XML format queries as input from GIS application and converts into SparQ module specific syntax. Similarly it extracts given result, converts it into defined XML format and passes it to GIS application over the same TCP/IP connection.
The most challenging part of thesis was SparQ syntax analysis for inputs and their outputs. Each module in Sparq takes module specific query syntax and generates results in multiple syntaxes like; error, simple result and result with comments. Reasoner supports both binary and ternary calculi. The input query syntax for binary-calculi is different for ternary-calculi in the terms of constraint-networks. Based on analysis I, identified commonalities between input query syntaxes for both binary and ternary calculi and designed XML structures for them. Similarly I generalized SparQ results into five major categories and designed XML structures. For ternary-calculi, I considered constraint-reasoning module and their specific operations and designed XML structure for both of their inputs and outputs
An implementation and analysis of the Abstract Syntax Notation One and the basic encoding rules
The details of abstract syntax notation one standard (ASN.1) and the basic encoding rules standard (BER) that collectively solve the problem of data transfer across incompatible host environments are presented, and a compiler that was built to automate their use is described. Experiences with this compiler are also discussed which provide a quantitative analysis of the performance costs associated with the application of these standards. An evaluation is offered as to how well suited ASN.1 and BER are in solving the common data representation problem
Applied metamodelling : a foundation for language driven development
The Third Edition of Applied Metamodelling represents a small increment since the Second Edition was produced in 2008. The book continues to be referenced in schol- arly articles with 212 citations on Google Scholar including nearly 150 since 2008. The open-source release of the accompanying technologies XMF and XMF-Mosaic did not generate the same level of interest, partly due to a lack of exposure and associated tuto- rial materials. Recently, interest in the field of multi-level modelling has increased and has led to publications and a Dagstuhl Seminar based on the ideas of meta-languages and tool-modelling. An overview of the historical development of XMF, the ideas in this book, and the the birth and death of an associated startup company has been published in 2012 as part of the 10th anniversary edition of the the Journal of Software and Systems Modeling. A project based on the foundations developed in this book and the tooling, now rebranded XModeler, is underway and the aim is to advance the field of multi-level language-based system engineering
Applied metamodelling: a foundation for language driven development.
The motivation behind XMF was to develop a technology that would support a language driven approach to modelling and system development. Our starting point was that UML was not sufficiently flexible and in order to address this we designed an executable meta-language. This book describes the approach and provides an introduction to the key technologies: meta-models, language definition and mappings. The book concludes with a number of worked examples
Contract-Based Programming on Modern C++
Contract-based Programming or Design By Contract (DBC) is a discipline for system construction that
in recent years has postulated to be one of the most solid and reliable models for software creation. It
is well known that in the software industry the number of projects not being successfully developed is
huge. The main cause of the failure is that projects do not meet user expectations. In this context, Design
By Contract seems to emerge as a solution to decrease this failure rate. This philosophy provides a set
of mechanisms for the validation of part of the requirements specification.
In recent years, several programming languages started to implement DBC, either as part of the language
or an external library. The main programming languages that support contract-based programming
are Ada 2012, Spark, Eiffel, D, C# CodeContracts or Microsoft Source-Code Annotation Language
(Microsoft SAL). Traditionally, C++ has been a programming language focused on flexibility, performance
and efficiency. This has attracted many people to carry out projects using this programming
language. However, trends make programming languages change, and the interests of the industry
are leaning towards solid solutions. Those solutions shall include frameworks that are reliable. With
this same purpose, C++ has designed a specification for the implementation of Design By Contract in
the programming language. This new specification has been accepted by the ISO C++ committee to
be included in C++20. The specification includes several clauses that allow the user to write pre/postconditions
on the code. This allows part of the requirement specification to be merged into the code,
enabling traceability between the phases of the software project.
The specification of a new feature in a programming language implies changes in how the language
is understood by a compiler. For the implementation of a new specification, several changes are required
at different levels. This document describes these changes. Additionally, it provides an overview of the
structure of a compiler, and a brief description of all the parts of the Clang C++ compiler.La programación por contratos es una disciplina de construcción de sistemas que recientemente se ha
postulado como una de las más solidas y fiables para la creación de sistemas software. Se sabe que la
industria de desarrollo de software no está siendo exitosa debido en parte a la tasa de fallos que hay en
éstos. En este contexto, la programación por contratos emerge como una solución para reducir esta tasa
de fracaso en la industria. Esta tendencia de desarrollo provee a los usuarios con mecanismos para la
validación de los requisitos.
En los últimos años, varios lenguajes de programación han comenzado a implementar la programación
por contratos, bien como parte del lenguaje o como una biblioteca externa. Los principales lenguajes de
programación que a día de hoy soportan programación por contratos son Ada 2012, Spark, Eiffel, D, C#
CodeContracts or Microsoft Source-Code Annotation Language (Microsoft SAL). Tradicionalmente, C++
ha sido un lenguage de programación centrado en proveer al usuario con flexibilidad, rendimiento y
eficiencia. Estas características han atraido a muchos clientes de cara a utilizar este lenguaje de programación
en proyectos. Sin embargo, las tendencías fuerzan cambios en los lenguajes de programación, y
los intereses de las empresas actualmente se están inclinando hacia soluciones robustas. Estas soluciones,
deben incluir marcos de trabajo que sean fiables. Con esto en mente, se ha diseñado una especificación
para la programación por contratos en el lenguaje de programación. Esta nueva especificación, ha sido
aceptada para por el Comite ISO C++ para ser incluida en C++20. Esta especificación provee al usuario
con varios mecanismos que permiten verificar condiciones en el código. Esto permite directamente enlazar
la especificación de requisitos con la implementación de los mismos.
La especificación de una nueva característica dentro de un lenguaje de programación implica cambios
en como el lenguaje es entendido por un compilador. Para la implementación de estos nuevos requisitos
se requiere de realizar modificaciones en el compilador en distintos niveles de análisis. En este
proyecto, se describe un resumen de los cambios que son necesarios dentro de un compilador. Estos
cambios incluyen un resumen de la estructura del compilador, posteriormente se desglosa la estructura
del compilador de C++ Clang y por último se describen las modificaciones en cada una de las partes
involucradas.Ingeniería Informátic
A User-Defined Approach for Reverse Engineering Tool to Visualize, Understand and Re-document Existing Software Systems (UDARE)
Pemahaman sesuatu perisian sedia ad~khususnya sistem legasLialah satu tugas~rumit.-Pembangun-atau
pengemaskini perisian perlu mempelajari kod sumber sebelum menukar program terlibat dengan bantuan
mana-mana dokumen atau tanpa dokumen. Banyak produk CASE (Kejuruteraan Peri sian Berbantukan
Komputer) atau alat telah muncul untuk membantu pengemaskini perisian yang menghadapi ketiadaan
dokumentasi atau ia tidak terkemaskini terutamanya dokumen reka bentuk yang menyediakan maklumat
paling terperinci mengenai sistem perisian.
Understanding an existing software system particularly a legacy system is a tedious task. Software developers
or maintainers need to study the source codes prior to changing the affected programs with the aid of any
documents or even without any document. Many CASE (Computer-Aided Software Engineering) products or
tools have emerged to assist software maintainers who are confronted with absence of documentation or outdated
documentation particularly design document that provides the most detail information about a software
system
- …