Situational Aware (SA) Internet of things (IoT) utilize IoT devices for being aware of what is ha... more Situational Aware (SA) Internet of things (IoT) utilize IoT devices for being aware of what is happening in the surroundings, and use this data to decide and act accordingly. In this tool demo paper, we present our architecture-driven arduino code generation tool named ArAI. To develop this tool, we had first of all to learn how to program an Arduino board, that comprises steps such as the writing, verification, compiling and uploading of the code to an Arduino board. Then, we had to realize the transformation (CAPS models to Arduino code) process comprising three different steps: parsing, analyzing, and code generation. The output of this transformation is a fully functional code that can be run on Arduino boards and reflecting the architecture decisions.
Software in the cloud is characterised by the need to be highly adaptive and continuously availab... more Software in the cloud is characterised by the need to be highly adaptive and continuously available. Incremental changes are applied to the deployed system and need to be tested in the field. Different configurations need to be tested. Higher quality standards regarding both functional and non-functional properties are put on those systems, as they often face large and diverse customer bases and/or are used as services from different peer service implementations. The properties of interest include interoperability, privacy, security, reliability, performance, resource use, timing constraints, service dependencies, availability, and so on. This paper discusses the state of the art in model-based testing of cloud systems. It focuses on two central aspects of the problem domain: (a) dealing with the adaptive and dynamic character of cloud software when tested with model-based testing, by developing new online and offline test strategies, and (b) dealing with the variety of modeling con...
When engineering complex and distributed software and hardware systems (increasingly used in many... more When engineering complex and distributed software and hardware systems (increasingly used in many sectors, such as manufacturing, aerospace, transportation, communication, energy, and health-care), quality has become a big issue, since failures can have economic consequences and can also endanger human life. Model-based specifications of component-based systems permit to explicitly model the structure and behaviour of components and their integration. In particular Software Architectures (SA) have been advocated as an effective means to produce quality systems. In this chapter by combining different technologies and tools for analysis and development, we propose an architecture-centric model-driven approach to validate required properties and to generate the system code. Functional requirements are elicited and used for identifying expected properties the architecture shall express. The architectural compliance to the properties is formally demonstrated, and the produced architectur...
International Journal of Cooperative Information Systems, 2004
In a software system, software processes can be concurrently run by system actors (e.g. agents, c... more In a software system, software processes can be concurrently run by system actors (e.g. agents, components), by making use of shared or dedicated software resources. Coordination is a research area oriented to understand, explicitly model and analyze how activities can depend on each other, in a concurrent system. Many coordination models and languages have been presented in the last few years in order to make coordination a first class entity in the development of a software system. However, what usually happens, is that coordination is described late in the software development and it is not integrated in a typical software process. What we claim, with our research, is that if coordination becomes explicit and formalized as soon as possible in the software life cycle, then it is possible to create coordination-aware software systems, which are easily maintained and developed. What we present, in the following, is a software engineering view of coordination. Diagrams produced durin...
CHARMY is a framework for designing and validating architectural specifications. In the early sta... more CHARMY is a framework for designing and validating architectural specifications. In the early stages of the software development process, the CHARMY framework assists the software architect in the design and validation phases. To increase its usability in an industrial context, the tool allows the use of UML-like notations to graphically design the system. Once the design is done, a formal prototype is automatically created for simulation and analysis purposes. The framework provides extensibility mechanisms to enable the introduction of new design and analysis features.
Situational Aware (SA) Internet of things (IoT) utilize IoT devices for being aware of what is ha... more Situational Aware (SA) Internet of things (IoT) utilize IoT devices for being aware of what is happening in the surroundings, and use this data to decide and act accordingly. In this tool demo paper, we present our architecture-driven arduino code generation tool named ArAI. To develop this tool, we had first of all to learn how to program an Arduino board, that comprises steps such as the writing, verification, compiling and uploading of the code to an Arduino board. Then, we had to realize the transformation (CAPS models to Arduino code) process comprising three different steps: parsing, analyzing, and code generation. The output of this transformation is a fully functional code that can be run on Arduino boards and reflecting the architecture decisions.
Software in the cloud is characterised by the need to be highly adaptive and continuously availab... more Software in the cloud is characterised by the need to be highly adaptive and continuously available. Incremental changes are applied to the deployed system and need to be tested in the field. Different configurations need to be tested. Higher quality standards regarding both functional and non-functional properties are put on those systems, as they often face large and diverse customer bases and/or are used as services from different peer service implementations. The properties of interest include interoperability, privacy, security, reliability, performance, resource use, timing constraints, service dependencies, availability, and so on. This paper discusses the state of the art in model-based testing of cloud systems. It focuses on two central aspects of the problem domain: (a) dealing with the adaptive and dynamic character of cloud software when tested with model-based testing, by developing new online and offline test strategies, and (b) dealing with the variety of modeling con...
When engineering complex and distributed software and hardware systems (increasingly used in many... more When engineering complex and distributed software and hardware systems (increasingly used in many sectors, such as manufacturing, aerospace, transportation, communication, energy, and health-care), quality has become a big issue, since failures can have economic consequences and can also endanger human life. Model-based specifications of component-based systems permit to explicitly model the structure and behaviour of components and their integration. In particular Software Architectures (SA) have been advocated as an effective means to produce quality systems. In this chapter by combining different technologies and tools for analysis and development, we propose an architecture-centric model-driven approach to validate required properties and to generate the system code. Functional requirements are elicited and used for identifying expected properties the architecture shall express. The architectural compliance to the properties is formally demonstrated, and the produced architectur...
International Journal of Cooperative Information Systems, 2004
In a software system, software processes can be concurrently run by system actors (e.g. agents, c... more In a software system, software processes can be concurrently run by system actors (e.g. agents, components), by making use of shared or dedicated software resources. Coordination is a research area oriented to understand, explicitly model and analyze how activities can depend on each other, in a concurrent system. Many coordination models and languages have been presented in the last few years in order to make coordination a first class entity in the development of a software system. However, what usually happens, is that coordination is described late in the software development and it is not integrated in a typical software process. What we claim, with our research, is that if coordination becomes explicit and formalized as soon as possible in the software life cycle, then it is possible to create coordination-aware software systems, which are easily maintained and developed. What we present, in the following, is a software engineering view of coordination. Diagrams produced durin...
CHARMY is a framework for designing and validating architectural specifications. In the early sta... more CHARMY is a framework for designing and validating architectural specifications. In the early stages of the software development process, the CHARMY framework assists the software architect in the design and validation phases. To increase its usability in an industrial context, the tool allows the use of UML-like notations to graphically design the system. Once the design is done, a formal prototype is automatically created for simulation and analysis purposes. The framework provides extensibility mechanisms to enable the introduction of new design and analysis features.
Uploads