235 research outputs found
Software Engineering of Component-Based Systems-of-Systems: A Reference Framework
CORE A.International audienceSystems-of-Systems (SoS) are complex infrastructures, which are characterized by a wide diversity of technologies and requirements imposed by the domain(s) they target. In this context, the software engineering community has been focusing on assisting the developers by providing them domain-specific languages, component-based software engineering frameworks and tools to leverage on the design and the development of such systems. However, the adoption of such approaches often prevents developers from combining several domains, which is a strong requirement in the context of SoS. Furthermore, only little attention has been paid to the definition of a modular toolset and an extensible runtime infrastructure for deploying and executing SoS. In this paper, we therefore propose a reference framework to leverage on the software engineering of SoS. Our reference framework has been validated on the development of two platforms, namely Hulotte and FraSCAti, to demonstrate that the resulting complexity is isolated in the core toolset, while the development of domain-specific extensions is leveraged and simplified by clearly identified abstractions
Reasoning and Improving on Software Resilience against Unanticipated Exceptions
In software, there are the errors anticipated at specification and design
time, those encountered at development and testing time, and those that happen
in production mode yet never anticipated. In this paper, we aim at reasoning on
the ability of software to correctly handle unanticipated exceptions. We
propose an algorithm, called short-circuit testing, which injects exceptions
during test suite execution so as to simulate unanticipated errors. This
algorithm collects data that is used as input for verifying two formal
exception contracts that capture two resilience properties. Our evaluation on 9
test suites, with 78% line coverage in average, analyzes 241 executed catch
blocks, shows that 101 of them expose resilience properties and that 84 can be
transformed to be more resilient
NPEFix: Automatic Runtime Repair of Null Pointer Exceptions in Java
Null pointer exceptions, also known as null dereferences are the number one
exceptions in the field. In this paper, we propose 9 alternative execution
semantics when a null pointer exception is about to happen. We implement those
alternative execution strategies using code transformation in a tool called
NPEfix. We evaluate our prototype implementation on 11 field null dereference
bugs and 519 seeded failures and show that NPEfix is able to repair at runtime
10/11 and 318/519 failures
Informatique : Des logiciels mis au vert
National audienc
Un ADL pour les Architectures Distribuées à Composants HétérogÚnes
National audienceDans cet article, nous présentons un ADL pour les architectures à composants hétérogÚnes et distribuées, et son utilisation au moment du déploiement. Actuellement, il n'existe pas de solution générique pour déployer une architecture distribuée basée sur différents intergiciels. Pour répondre à cette problématique, nous proposons dans cet article une approche pour décrire une telle architecture et un support pour le déploiement. Notre solution s'appuie sur un langage de description d'architecture possédant des notions de dépendances verticales et horizontales. Un exemple simple est présenté pour illustrer notre langage et pour valider nos contributions
Adlet: A Java-based Architecture Description Language
Adlet is a Java-based architecture description language (ADL). Adlet enables todescribe in pure Java syntax a software architecture. Two main patterns are supported: compositecomponent, and typed binding. The composite component pattern enables to describe a hierarchyof parent and sub components. Typed bindings enable to describe the communication links betweenprovided and required component interfaces. These two patterns are implemented in pure Javasyntax. This means that an Adlet software architecture descriptor is a fully legal Java programwith no particular language extension. This enables reusing the full stack of tools (unit testing,processing, editing, compiling, etc.) available for this language. As such Adlet can be seen aprogramming style for describing software architectures with the Java language.Adlet est un langage de description dâarchitecture (ADL) en Java. Adlet permetde dĂ©crire une architecture logicielle dans une syntaxe purement Java. Deux gabarits principauxsont supportĂ©s: composant composite, et liaison typĂ©e. Le gabarit composant composite permetde dĂ©crier une hiĂ©rarchie de composants parents et enfants. Les liaisons typĂ©es permettent dedĂ©crire les liens de communication entre les interfaces fournies et requises dâun composant. Cesdeux gabarits sont mis en Ćuvre avec une syntaxe purement Java. Cela signifie quâun descripteurAdlet dâarchitecture logicielle est un programme purement Java sans extension langage particuliĂšre.Cela permet dâutiliser la pile complĂšte dâoutils (test unitaire, traitement, Ă©dition, compilation, etc.)disponible pour ce langage. En tant que tel Adlet peut ĂȘtre vu comme un style de programmationpour dĂ©crire des architectures logicielles en Jav
Creating Context-Adaptive Business Processes
Acceptance rate : 15%, Rank (CORE) : AInternational audienceAs the dynamicity of today's business environments keeps increasing, there is a need to continuously adapt business processes in order to respond to the changes in those environments and keep a competitive level. By using complex event processing, we can discover information that is relevant to our organization, which is usually hidden among the data generated in the environment, and use it to adapt the processes accordingly in order to respond to the changing conditions in an optimal way. Unfortunately, the static nature of business process definitions makes it impossible to adapt them at runtime and the redeployment of a modified process is required. By using a component-based approach, we can transform the existing business processes into dynamically bound components, adding the flexibility needed to adapt the processes at runtime. In this paper we present CEVICHE, a framework that combines the strengths of complex event processing and dynamic business process adaptation, which allows to respond to the needs of the rapidly changing environment, and its adaptation language called SBPL, an extension to BPEL which adds flexibility to business processes
EÌtat de lâart sur lâinteropeÌrabiliteÌ des systeÌmes
Ce document consiste en un rapport dâeÌtat de lâeÌtat de lâart scientifique sur les techniques de connecteurs pour assurer lâinteropeÌrabiliteÌ des systeÌmes communicants heÌteÌrogeÌnes
- âŠ