9 research outputs found

    A Decision Support System for Selecting Between Designs for Dynamic Software Product Lines

    Get PDF
    When commissioning a system, a myriad of potential designs can successfully fulfill the system\u27s goals. Deciding among the candidate designs requires an understanding of how the design affects the system\u27s quality attributes and how much effort is needed to realize the design. The difficulty of the process compounds if the system to be designed includes dynamic run-time self- adaptivity, the ability for the system to self-modify its architecture at run-time in response to either external or internal stimuli, as the type and location of the dynamic self-adaptivity within the architecture must be co-decided. In this proposal, we introduce a Decision Support System, which contains a new Dynamic Software Product Line-centric cost / effort estimation technique, the Structured Intuitive Model for Dynamic Adaptive System Economics (SIMDASE), that will allow system designers / architects to select the most appropriate design for systems where the candidates can be structured as a Dynamic Software Product Line. We will focus on using the Decision Support System to select designs for a system where at least one component of the system is a low-level embedded system for use within the Internet of Things (IoT), particularly embedded systems whose purpose is to exist as things (either intelligent sensors or actuators). The Decision Support System we introduce is a multi-step process that begins with a high- level system architecture generated from the system requirements and goals. Candidate designs that can fulfill all goals / requirements of the high-level architecture are selected. Each design is then annotated using SIMDASE so that the effort, risk, cost and return on investment that can be expected from the realization of the design(s) can be compared in order to select the best design for a given organization

    Validação de software altamente configurável

    Get PDF
    Dissertação de mestrado em Engenharia de InformáticaA evolução nas áreas de aplicação (quer em número quer em ambição dos problemas a resolver) conduziu a uma crescente complexidade e dimensão dos sistemas de software. Inerentemente, na procura de uma boa solução que ajude a dar resposta às constantes alterações de comportamento requerida para satisfazer os diversos utilizadores destes sistemas, emergem sistemas mais flexíveis, que se acomodam facilmente a diferentes necessidades - sistemas configuráveis. Os sistemas configuráveis tornam as aplicações mais adaptáveis às necessidades de cada um, porém tornam possível a introdução de configurações erradas que podem levar a comportamentos incorrectos e indesejáveis. Assumindo que o programa principal está devidamente testado e aceite como correcto, constata-se que as configurações importadas para a aplicação necessitam de validação de modo a ser garantida a ausência de erros. Conferindo aos sistemas aplicacionais dos dias de hoje uma maior fiabilidade, garante-se a entrega de produtos de qualidade. Tradicionalmente as abordagens à validação e verificação de software caem sobre os métodos formais ou testes sobre o sistema. No entanto, ambas as abordagens dedicam-se essencialmente ao código das aplicações como forma de certificar e garantir a qualidade dos projectos de software. Esta dissertação apresenta uma proposta para colmatar a falha introduzida por abstracção das aplicações, no que diz respeito à certificação de software altamente configurável, com particular ênfase sobre os objectivos de negócio passíveis de serem configurados em tempo de execução, de modo a garantir que as configurações empregues estão correctas e de acordo com os requisitos. A abordagem seguida neste trabalho deu resultados a três níveis distintos; um contributo teórico em que se estudou e analisou o problema em busca de uma abordagem metodológica eficaz para validação deste tipo de sistemas; um contributo prático, pelo desenvolvimento de um sistema que implementa a metodologia definida; e finalmente um contributo pragmático mostrado pela aplicação do sistema desenvolvido a um caso de estudo.Evolution in application areas led to an increasing complexity and scale of software systems. In this context, recent con gurable systems emerged to provide an e cient solution to cope with the frequent changes in systems requirements. Con gurable systems make applications more exible and adaptable to each speci c needs, but con gurable systems are also error prone. Easily wrong con gurations can be loaded and this may lead to undesirable and erroneous behavior. Assuming that the main program is fully tested and accepted as correct, those imported con gurations need validation to guarantee the absence of errors in the nal application. Making application systems more reliable, it is possible to deliver quality products. Formal method thechniques on testing are the classic approach to software validation and veri cation. These approaches are specially tuned for classic programs, and fail when applied to con gurable systems. This was the motivation for this MSc. Degree project. This master work gave rise to three distinct outcomes; a theoretical contribution, concerned with the problem study and the proposal of an e ective methodological approach for such systems validation; a practical contribution consisting in a tool that implements that methodology; and nally a pragmatic contribution, with the application of that tool to a concrete case study

    Verification of Safety-Critical Systems: A Case Study Report on Using Modern Model Checking Tools

    Get PDF
    paper, we describe a case study where a simple 2oo3 voting scheme for a shutdown system was verified using two bounded model checking tools, CBMC and EBMC. The system represents Systematic Capability level 3 according to IEC 61508 ed2.0. The verification process was based on requirements and pseudo code, and involved verifying C and Verilog code implementing the pseudo code. The results suggest that the tools were suitable for the task, but require considerable training to reach productive use for code embedded in industrial equipment. We also identified some issues in the development process that could be streamlined with the use of more formal verification methods. Towards the end of the paper, we discuss the issues we found and how to address them in a practical setting

    Using Formal Methods for Building more Reliable and Secure e-voting Systems

    Get PDF
    Deploying a system in a safe and secure manner requires ensuring the tech- nical and procedural levels of assurance also with respect to social and regu- latory frameworks. This is because threats and attacks may not only derive from pitfalls in complex security critical system, but also from ill-designed procedures. However, existing methodologies are not mature enough to em- brace procedural implications and the need for multidisciplinary approach on the safe and secure operation of system. This is particularly common in electronic voting (e-voting) systems. This dissertation focuses along two lines. First, we propose an approach to guarantee a reasonable security to the overall systems by performing for- mal procedural security analysis. We apply existing techniques and define novel methodologies and approaches for the analysis and verification of procedural rich systems. This includes not only the definition of adequate modeling convention, but also the definition of general techniques for the injection of attacks, and for the transformation of process models into rep- resentations that can be given as input to model checkers. With this it is possible to understand and highlight how the switch to the new tech- nological solution changes security, with the ultimate goal of defining the procedures regulating system and system processes that ensure a sufficient level of security for the system as well as for its procedures. We then investigate the usage of formal methods to study and analyze the strength and weaknesses of currently deployed (e-voting) system in order to build the next generation (e-voting) systems. More specifically, we show how formal verification techniques can be used to model and reason about the security of an existing e-voting system. To do that, we reuse the methodology propose for procedural security analysis. The practical applicability of the approaches is demonstrated in several case studies from the domain of public administrations in general and in e-voting system in particular. With this it can be possible to build more secure, reliable, and trustworthy e-voting system

    Toward a Generic Framework for Ubiquitous System

    No full text
    International audienceIn this paper we present a beginning work about industrial applications using WEB technologies. Systems to study are, for example, robot arms in factories, Heating Ventilation and Air-Conditioning (HVAC) systems for commercial center or buildings, water distribution networks or power management consumption systems of corporate. WEB technologies give us new opportunities to collect the data, to analyze correlations of signals and external events, and finally to change in "soft real-time" the parameters of the managed system. But these applications can be strongly influenced by the behaviour of the communication network and its reliability. We describe the key points that we will explore in our further work

    Resilient Computing Curriculum Draft -- ReSIST NoE Deliverable D16

    Get PDF
    This Deliverable presents the first version of ReSIST's Curriculum in Resilient Computing, limited to the description of the syllabi for the first year (Semesters 1 and 2) and indicates the line and title for the curriculum in the second year (semesters 3 and 4) and propose it to the general discussion for improvements. The curriculum will be updated and completed in successive versions that will take advantage of a large open discussion inside and outside ReSIS

    Estrategias de pruebas de líneas de producto de sistemas de tiempo real especificados con diagramas de estados jerárquicos

    Full text link
    Las Líneas de Producto Software han aparecido en la ingeniería del software como una técnica cuyo objetivo es el de poder crear diferentes variantes software a partir de una infraestructura común, del mismo modo que se hace en otros sectores industriales. Un aspecto que hasta ahora no se ha investigado con tanta extensión es el de las Pruebas de Línea de Producto Software. La cuestión fundamental es decidir hasta qué punto es posible probar las diferents variantes de forma común. En el caso más optimista, probando una funcionalidad sobre la parte general se podría dar por probada sobre todas las variantes. Por contra, en el caso más pesimista, las pruebas de una Línea de Producto Software serían exactamente iguales que las pruebas de varios productos independientes que se hicieran de forma separada. Como término medio, aunque se pruebe la misma funcionalidad en todas las variantes, se podrian reutilizar por ejemplo la arquitectura de pruebas, los casos de prueba, el entorno de pruebas, etc. Buscando dar una solución al problema de las pruebas de Líneas de producto Software de tiempo real, la Tesis Doctoral propone un método de pruebas basado en los diagramas de estados jerárquicos del lenguaje UML para definir los casos de prueba. Se propone una técnica para asegurar la correspondencia (trazabilidad) de los requisitos con los casos de prueba, estructurándolos de forma semejante a los requisitos y estudiando cómo las variantes de los requisitos impactan sobre los diferentes elementos de prueba. También se define dentro del método un flujo de actividades, cuyo objetivo es la automatización de las pruebas para así poder probar las diferentes variantes de la Línea de Producto Software de forma eficiente. Este método tiene tres fases: el Diseño de Pruebas, donde se agrupan en clases de prueba los requisitos tanto genéricos como específicos de cada variante, y se modela cada clase de prueba mediante diagramas de estados jerárquicos y, si es preciso, escenarios en los cuales se incluyen de forma explícita sus requisitos asociados. En la fase de Implementación de Pruebas, estos diagramas se describen por medio de tablas de estados y eventos, con la información adicional necesaria (los datos de prueba) para generar automáticamente el código con los casos de prueba ejecutables. En la fase final de Ejecución de Pruebas, se realiza el caso de prueba sobre el sistema real y se registra el resultado obtenido. Como aportación final, se propone un metamodelo donde se muestran todos los elementos del método de pruebas y las relaciones que existen entre ellos. Para comprobar que la solución propuesta al problema de las pruebas de Líneas de Producto Software de Tiempo real es satisfactoria, se ha elegido una doble estrategia consistente en la aplicación del método sobre un caso industrial real y en la elaboración de un conjunto de herramientas software prototipo, con las cuales se ha demostrado la validez del método propuesto y se ha delimitado su alcance. El caso industrial real escogido ha sido el de una Línea de Productos Software Tiempo Real de sistemas de control del tráfico ferroviario, en el que el autor desarrolla desde hace diez años su actividad profesional, lo cual da a esta Tesis Doctoral un marcado carácter industrial, tanto por la relevancia práctica del tema elegido como por reflejar una experiencia de aplicación industrial real. Las herramientas software desarrolladas, tanto en el caso de aplicación industrial real, como en el ámbito de la Tesis Doctoral, sirven de soporte a la generación de casos de prueba a partir de los modelos de diagramas de estados, la ejecución automatizada de las pruebas, el análisis de los resultados o veredictos de las pruebas y la medición de cobertura de requisitos alcanzada en las pruebas

    Modelling Statecharts and Activitycharts as Signal equations

    Get PDF
    International audienceThe languages for modeling reactive systems are of different styles, like the imperative, state-based ones and the declarative, data-flow ones. They are adapted to different application domains. This paper, through the example of the languages Statecharts and Signal, shows a way to give a model of an imperative specification (Statecharts) in a declarative, equational one (Signal). This model constitutes a formal model of the Statemate semantics of Statecharts, upon which formal analysis techniques can be applied. Being a transformation from an imperative to a declarative structure, it involves the definition of generic models for the explicit management of state (in the case of control as well as of data). In order to obtain a structural construction of the model, a hierarchical and modular organization is proposed, including proper management and propagation of control along the hierarchy. The results presented here cover the essential features of Statecharts as well as of another language of Statemate: Activitycharts. As a translation, it makes multiformalism specification possible, and provides support for the integrated operation of the languages. The motivation lies also in the perspective of gaining access to the various formal analysis and implementation tools of the synchronous technology, using the DC exchange format, as in the Sacres programming environment

    Model Checking Safety-Critical Systems Using Safecharts

    No full text
    corecore