3 research outputs found

    Software architecture: styles and representational schemes

    Get PDF
    Software architecture is being widely used today to describe a very high-level design methodology of large software systems. Software architecture represents the overall structure of a system in an abstract, structured manner. A good architectural representation scheme holds the key to the effectiveness of a software architecture description and usage. In this work we look at architectural styles and architectural representation schemes. We propound the idea that the layered architectural model is a suitable candidate for a generalized architectural style and that it can cater to many different problem domains, other than the message-passing systems it has traditionally been used to model. We propose some rules by which the layered architectural style can be improved and modified in order to be able to model a wider problem domain. Then we evaluate different methods of architectural representations that have been used to model software architecture and analyze their strengths and shortcomings. We propose the use of a modified data flow diagram architecture representation scheme. This scheme is called AND-OR DFD method and is introduced and developed in this thesis. The main concept introduced here is a combination of components to form action groups to support multiple workflows and the relationships among them, without significant increase in the architectural complexity. Finally, we look at UML as a prospect for a generalized architecture description language and discuss its merits and demerits with examples

    Modeling, simulation, and analysis of a complex lift system

    Get PDF
    La construcción de software complejo puede verse asistida por los llamados métodos formales que permiten detectar errores de diseño e implementación, especialmente con respecto a las propiedades críticas del sistema. Los métodos formales son técnicas con una base matemática muy fuerte que les hace muy apropiados para el análisis y verificación del software. En este proyecto, hemos seleccionado un sistema complejo, como es la construcción de un sistema compuesto de varios ascensores que funcionan de manera coordinada. Este problema muestra muchos de los problemas típicos del desarrollo de software crítico. Por un lado, como cada ascensor funciona como un proceso autónomo que tiene que sincronizarse con el resto, la implementación del sistema puede contener los típicos errores de seguridad o viveza propios de los sistemas concurrentes. Por otro lado, la estructura del sistema de ascensores contiene varios componentes que se relacionan entre sí de múltiples formas. Finalmente, en el sistema de ascensores también hay propiedades de tiempo real que deberían satisfacerse para que su comportamiento sea aceptable. Cada tipo de propiedad requiere utilizar una técnica formal diferente. La mejor técnica formal para detectar errores propios de la interacción incorrecta entre procesos es el “Model Checking”[1,2,3]. En el model checking, los actores principales son los estados del sistema, y las transiciones que hacen que el sistema evolucione. Sin embargo, para analizar propiedades estructurales de los sistemas es mucho más fácil y eficiente usar lenguajes en los que la noción de clase y relación/asociación sea más explícita. En este proyecto, se ha utilizado el model checker SPIN, las herramientas Alloy, USE (para UML/OCL) y Uppaal para la descripción y análisis de las distintas propiedades deseables del sistema. Como resultado, se ha construido un sistema de ascensores que es correcto con respecto a las propiedades críticas del sistema
    corecore