10 research outputs found

    A metamodel-based ASN.1 editor and compiler for the implementation of communication protocols

    Get PDF
    In der Software-Industrie sind viele metamodell-basierte Werkzeuge entwickelt worden, um die Erstellung von Programmiersprachen und insbesondere domänenspezifischen Sprachen (DSL ) zu unterstützen. Ein Beispiel für diese Werkzeuge ist Eclipse Xtext, welches eine große Popularität im Bereich der modellgetriebenen Softwareentwicklung (MDSE ) besitzt. In diesem Beitrag untersuchen wir, inwieweit Xtext und andere metamodell-basierte Ansätze zur Implementierung eines Editors und Compilers für die ASN.1 Spezifikation, welche von der ITU-T standardisiert wurde, verwendet werden können. Der metamodell-basierte Ansatz zur Implementierung der ASN.1 Spezifikation ermöglicht es, ASN.1-Dokumente softwaretechnisch wie ein Modell behandeln zu können, sodass dieses ASN.1-Modell mit anderen Softwaremodellen (z. B. Zustandsmaschinen)verknüpft werden kann. Unsere Ergebnisse zeigen, dass mit relativ geringem Aufwand eine Basisimplementierung von ASN.1 zu erreichen ist, die bereits eine gute Werkzeugunterstützung liefert. Bei einigen Details der Implementierung gerät man allerdings an die Grenze des Machbaren und diese sind daher sehr schwer zu realisieren. Dies betrifft insbesondere den Parser-Generator und das komplexe Metamodell.In the software industry many metamodel-based tools and approaches have been developed to support the creation of programming and especially domain specific languages (DSL). An example of these tools is eclipse Xtext, which has gained much popularity in the model-driven software engineering (MDSE) community. In this article we investigate whether Xtext and related metamodel-based approaches can also be used to implement the ASN.1 specification that was standardized by the ITU-T. The metamodel-based approach for the implementation of the ASN.1 specification allows to treat ASN.1 documents as software models, so that these ASN.1 models can be interrelated with other models (e.g. state machines). Our results show that relatively little efforts are required to create a basic implementation of this standard with good tool support. However, some details of the implementation are quite difficult to realize because they touch the limits of feasibility. This concerns in particular the parser generator and the complex metamodel

    On Class Diagrams, Crossings and Metrics

    Get PDF
    As a standardized software engineering diagram, the UML class diagram provides various information on the static structure of views on software while design, implementation and maintenance phase. This talk gives an overview on drawing UML class diagrams in hierarchical fashion. Therefore, common elements of class diagrams are introduced and aesthetic rules for drawing UML class diagrams are given. These rules are based on four disciplines involved in the reading process of diagrams. After a brief introduction to our drawing algorithm, an extensive extension of the well-known Sugiyama algorithm, two details are highlighted: A new crossing reduction algorithm is presented and compared to existing ones and issues on measuring the quality of a layout are discussed

    On the use of programming languages for textual specification of Petri Net Models

    Get PDF
    O presente artigo revê e aprofunda o artigo intitulado Towards a Human-Friendly Textual Language for Petri Nets, apresentado no Workshop on Petri Net Standards 2007.As a general interchange format for Petri net models, the Petri Net Markup Language (PNML) allows the specification of Petri net models for all Petri net classes. Those models are typically generated by graphical editors for each Petri net type. Yet, there is no general way to specify Petri net models in a human-friendly textual notation. Instead of proposing a standard for such textual notation, this paper proposes the use of popular general purpose programming languages for the creation and modification of net models defined using PNML. To that end, the paper presents a model for the concepts, and the respective inter- relations, that should be available to define Petri net models in a compact textual format. After, it presents a general framework to specify model composition, using node fusion, for any Petri net class. The framework allows the specification of node fusions and node refinements based on the specification of fusions for each node and net label. The labels’ fusions are defined through the implementation of an abstract data type for the respective Petri net type definition. This allows a general support for model structuring, where several well-known graphical conveniences, e.g. node references and synchronous channels, can be supported and seen as particular cases

    Defining syntax and providing tool support for agent uml using a textual notation

    Get PDF
    Abstract: An important role in software engineering is played by design notations. The Agent UML (AUML) notation for sequence diagrams has been widely used to capture the design of interactions between agents. However, AUML is not precisely defined, and there is very little in the way of tool support available. We argue that using a textual notation allows the notation to be precisely defined, and facilitates the development of tool support. We present a textual notation that we have developed, and describe a number of tools that support this notation. One of these tools is a ‘renderer ’ which takes a textual AUML protocol and generates the standard graphical view. The layout of graphical elements in the generated graphical view is done automatically, using a layout algorithm which we present

    Survey on the Applicability of Textual Notations for the Unified Modeling Language

    Get PDF

    Engineering Enterprise Software Systems with Interactive UML Models and Aspect-Oriented Middleware

    Get PDF
    Large scale enterprise software systems are inherently complex and hard to maintain. To deal with this complexity, current mainstream software engineering practices aim at raising the level of abstraction to visual models described in OMG’s UML modeling language. Current UML tools, however, produce static design diagrams for documentation which quickly become out-of-sync with the software, and thus obsolete. To address this issue, current model-driven software development approaches aim at software automation using generators that translate models into code. However, these solutions don’t have a good answer for dealing with legacy source code and the evolution of existing enterprise software systems. This research investigates an alternative solution by making the process of modeling more interactive with a simulator and integrating simulation with the live software system. Such an approach supports model-driven development at a higher-level of abstraction with models without sacrificing the need to drop into a lower-level with code. Additionally, simulation also supports better evolution since the impact of a change to a particular area of existing software can be better understood using simulated “what-if” scenarios. This project proposes such a solution by developing a web-based UML simulator for modeling use cases and sequence diagrams and integrating the simulator with existing applications using aspect-oriented middleware technology

    Modellgetriebene Testfallkonstruktion durch Domänenexperten im Kontext von Systemfamilien

    Get PDF
    This work presents MTCC (Model-Driven Test Case Construction), an approach to the construction of acceptance tests by domain experts for testing system families based on feature models. MTCC is applied to the application domain of Digital Libraries. The basic hypothesis of this thesis is that the involvement of domain experts in the testing process for members of system families is possible on the basis of feature models and that such a testing approach has a positive influence on the efficiency and effectiveness of testing. Application quality benefits from the involvement of domain experts because tests specified by domain experts reflect their needs and requirements and therefore can serve as an executable specification. One prerequisite for the inclusion of domain experts is tooling that supports the specification of automated tests without formal modeling or programming skills. In MTCC, models of automated acceptance tests are constructed with a graphical editor based on models that represent the test-relevant functionality of a system under test as feature models and finite state machines. Feature models for individual testable systems are derived from domain-level systems for the system family. The use of feature models by the test reuse system of MTCC facilitates the systematic reuse of test models for the members of system families. MTCC is a Model-Driven test automation approach that aims at increasing the efficiency of test execution by automation while keeping independence from the implementation of the testee or the test harness in use. Because tests in MTCC are abstract models that represent the intent of the test independent from implementation specifics, MTCC employs a template-based code generation approach to generate executable test cases.Diese Arbeit stellt den Model-driven Test Case Construction (MTCC) Ansatz zur Konstruktion von wiederverwendbaren Akzeptanztests durch Domänenexperten im Kontext von Systemfamilien vor. Die Hypothese der vorliegenden Arbeit ist, dass die Einbeziehung von Domänenexperten in einen automatisierten Testprozess für die Systeme einer Systemfamilie auf Grundlage eines modellgetriebenen Ansatzes möglich ist und dass ein solcher Ansatz die Effektivität und Effizienz des Testens steigert. Die Qualität von Systemen profitiert von der Einbeziehung von Domänenexperten da deren Anforderungen durch die Tests wiedergegeben werden und diese somit als ausführbare Spezifikation dienen. Eine Voraussetzung für die Einbeziehung von Domänenexperten in das Testen ist eine Form der Werkzeugunterstützung die die Spezifikation von automatisierten Tests ohne Kenntnisse der Programmierung oder der formalen Modellierung gestattet. In MTCC werden abstrakte Modelle von Akzeptanztests mittels eines einfachen, graphischen Editors realisiert der seinerseits auf Modellen basiert die die testrelevant Funktionalität von Testlingen mittels Featuremodellen und endlichen Automaten darstellen. Featuremodelle repräsentieren einzelne Systeme der zu testenden Systemfamilie die von Domänenmodellen auf Ebene der der Systemfamilie abgeleitet sind. MTCC ist ein modellgetriebener Ansatz zur Automatisierung von Tests der der Steigerung der Effektivität der Testausführung dient und zugleich von den Spezifika der Implementierung des Testlings und der jeweiligen Software zur Testausführung entkoppelt. Da Tests in MTCC abstrakte Modelle sind, die die Semantik eines Tests unabhängig von Implementierungswissen ausdrücken, verwendet MTCC ein auf Templates basierendes Verfahren zur Generierung von ausführbaren Testskripten

    Método para el análisis independiente de problemas

    Get PDF
    habilidades de comprensión y resolución de problemas. Tanto es así que se puede afirmar con rotundidad que no existe el método perfecto para cada una de las etapas de desarrollo y tampoco existe el modelo de ciclo de vida perfecto: cada nuevo problema que se plantea es diferente a los anteriores en algún aspecto y esto hace que técnicas que funcionaron en proyectos anteriores fracasen en los proyectos nuevos. Por ello actualmente se realiza un planteamiento integrador que pretende utilizar en cada caso las técnicas, métodos y herramientas más acordes con las características del problema planteado al ingeniero. Bajo este punto de vista se plantean nuevos problemas. En primer lugar está la selección de enfoques de desarrollo. Si no existe el mejor enfoque, ¿cómo se hace para elegir el más adecuado de entre el conjunto de los existentes? Un segundo problema estriba en la relación entre las etapas de análisis y diseño. En este sentido existen dos grandes riesgos. Por un lado, se puede hacer un análisis del problema demasiado superficial, con lo que se produce una excesiva distancia entre el análisis y el diseño que muchas veces imposibilita el paso de uno a otro. Por otro lado, se puede optar por un análisis en términos del diseño que provoca que no cumpla su objetivo de centrarse en el problema, sino que se convierte en una primera versión de la solución, lo que se conoce como diseño preliminar. Como consecuencia de lo anterior surge el dilema del análisis, que puede plantearse como sigue: para cada problema planteado hay que elegir las técnicas más adecuadas, lo que requiere que se conozcan las características del problema. Para ello, a su vez, se debe analizar el problema, eligiendo una técnica antes de conocerlo. Si la técnica utiliza términos de diseño entonces se ha precondicionado el paradigma de solución y es posible que no sea el más adecuado para resolver el problema. En último lugar están las barreras pragmáticas que frenan la expansión del uso de métodos con base formal, dificultando su aplicación en la práctica cotidiana. Teniendo en cuenta todos los problemas planteados, se requieren métodos de análisis del problema que cumplan una serie de objetivos, el primero de los cuales es la necesidad de una base formal, con el fin de evitar la ambigüedad y permitir verificar la corrección de los modelos generados. Un segundo objetivo es la independencia de diseño: se deben utilizar términos que no tengan reflejo directo en el diseño, para que permitan centrarse en las características del problema. Además los métodos deben permitir analizar problemas de cualquier tipo: algorítmicos, de soporte a la decisión o basados en el conocimiento, entre otros. En siguiente lugar están los objetivos relacionados con aspectos pragmáticos. Por un lado deben incorporar una notación textual formal pero no matemática, de forma que se facilite su validación y comprensión por personas sin conocimientos matemáticos profundos pero al mismo tiempo sea lo suficientemente rigurosa para facilitar su verificación. Por otro lado, se requiere una notación gráfica complementaria para representar los modelos, de forma que puedan ser comprendidos y validados cómodamente por parte de los clientes y usuarios. Esta tesis doctoral presenta SETCM, un método de análisis que cumple estos objetivos. Para ello se han definido todos los elementos que forman los modelos de análisis usando una terminología independiente de paradigmas de diseño y se han formalizado dichas definiciones usando los elementos fundamentales de la teoría de conjuntos: elementos, conjuntos y relaciones entre conjuntos. Por otro lado se ha definido un lenguaje formal para representar los elementos de los modelos de análisis – evitando en lo posible el uso de notaciones matemáticas – complementado con una notación gráfica que permite representar de forma visual las partes más relevantes de los modelos. El método propuesto ha sido sometido a una intensa fase de experimentación, durante la que fue aplicado a 13 casos de estudio, todos ellos proyectos reales que han concluido en productos transferidos a entidades públicas o privadas. Durante la experimentación se ha evaluado la adecuación de SETCM para el análisis de problemas de distinto tamaño y en sistemas cuyo diseño final usaba paradigmas diferentes e incluso paradigmas mixtos. También se ha evaluado su uso por analistas con distinto nivel de experiencia – noveles, intermedios o expertos – analizando en todos los casos la curva de aprendizaje, con el fin de averiguar si es fácil de aprender su uso, independientemente de si se conoce o no alguna otra técnica de análisis. Por otro lado se ha estudiado la capacidad de ampliación de modelos generados con SETCM, para comprobar si permite abordar proyectos realizados en varias fases, en los que el análisis de una fase consista en ampliar el análisis de la fase anterior. En resumidas cuentas, se ha tratado de evaluar la capacidad de integración de SETCM en una organización como la técnica de análisis preferida para el desarrollo de software. Los resultados obtenidos tras esta experimentación han sido muy positivos, habiéndose alcanzado un alto grado de cumplimiento de todos los objetivos planteados al definir el método.---ABSTRACT---Software development is an inherently complex activity, which requires specific abilities of problem comprehension and solving. It is so difficult that it can even be said that there is no perfect method for each of the development stages and that there is no perfect life cycle model: each new problem is different to the precedent ones in some respect and the techniques that worked in other problems can fail in the new ones. Given that situation, the current trend is to integrate different methods, tools and techniques, using the best suited for each situation. This trend, however, raises some new problems. The first one is the selection of development approaches. If there is no a manifestly single best approach, how does one go about choosing an approach from the array of available options? The second problem has to do with the relationship between the analysis and design phases. This relation can lead to two major risks. On one hand, the analysis could be too shallow and far away from the design, making it very difficult to perform the transition between them. On the other hand, the analysis could be expressed using design terminology, thus becoming more a kind of preliminary design than a model of the problem to be solved. In third place there is the analysis dilemma, which can be expressed as follows. The developer has to choose the most adequate techniques for each problem, and to make this decision it is necessary to know the most relevant properties of the problem. This implies that the developer has to analyse the problem, choosing an analysis method before really knowing the problem. If the chosen technique uses design terminology then the solution paradigm has been preconditioned and it is possible that, once the problem is well known, that paradigm wouldn’t be the chosen one. The last problem consists of some pragmatic barriers that limit the applicability of formal based methods, making it difficult to use them in current practice. In order to solve these problems there is a need for analysis methods that fulfil several goals. The first one is the need of a formal base, which prevents ambiguity and allows the verification of the analysis models. The second goal is design-independence: the analysis should use a terminology different from the design, to facilitate a real comprehension of the problem under study. In third place the analysis method should allow the developer to study different kinds of problems: algorithmic, decision-support, knowledge based, etc. Next there are two goals related to pragmatic aspects. Firstly, the methods should have a non mathematical but formal textual notation. This notation will allow people without deep mathematical knowledge to understand and validate the resulting models, without losing the needed rigour for verification. Secondly, the methods should have a complementary graphical notation to make more natural the understanding and validation of the relevant parts of the analysis. This Thesis proposes such a method, called SETCM. The elements conforming the analysis models have been defined using a terminology that is independent from design paradigms. Those terms have been then formalised using the main concepts of the set theory: elements, sets and correspondences between sets. In addition, a formal language has been created, which avoids the use of mathematical notations. Finally, a graphical notation has been defined, which can visually represent the most relevant elements of the models. The proposed method has been thoroughly tested during the experimentation phase. It has been used to perform the analysis of 13 actual projects, all of them resulting in transferred products. This experimentation allowed evaluating the adequacy of SETCM for the analysis of problems of varying size, whose final design used different paradigms and even mixed ones. The use of the method by people with different levels of expertise was also evaluated, along with the corresponding learning curve, in order to assess if the method is easy to learn, independently of previous knowledge on other analysis techniques. In addition, the expandability of the analysis models was evaluated, assessing if the technique was adequate for projects organised in incremental steps, in which the analysis of one step grows from the precedent models. The final goal was to assess if SETCM can be used inside an organisation as the preferred analysis method for software development. The obtained results have been very positive, as SETCM has obtained a high degree of fulfilment of the goals stated for the method

    Proceedings of the 4th International Conference on Principles and Practices of Programming in Java

    Full text link
    This book contains the proceedings of the 4th international conference on principles and practices of programming in Java. The conference focuses on the different aspects of the Java programming language and its applications
    corecore