Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to main content
The growing interest in developing adaptive systems has led to numerous proposals for approaches aimed at supporting their develop- ment. Some approaches dene adaptation mechanisms in terms of archi- tectural design, consisting of... more
The growing interest in developing adaptive systems has led to numerous proposals for approaches aimed at supporting their develop- ment. Some approaches dene adaptation mechanisms in terms of archi- tectural design, consisting of concepts such as components, connectors and states. Other approaches are requirements-based, thus concerned with goals, tasks, contexts and preferences as concepts in terms of which adaptation is dened. By considering only a problem- or a solution- oriented view, such proposals are limited in specifying adaptive behavior. In this paper we present ongoing work on supporting the design and run- time execution of adaptive software systems both at a requirements and architectural level, as wells as its challenges, ranging from architectural derivation from requirements to rened adaptation control mechanisms.
The use of object/relational mapping (ORM) frameworks is the stateof-practice in software development, with several ORM frameworks for different object-oriented programming languages. However, to our knowledge, there is no formal... more
The use of object/relational mapping (ORM) frameworks is the stateof-practice in software development, with several ORM frameworks for different object-oriented programming languages. However, to our knowledge, there is no formal definition of the concepts related to these frameworks, which could serve as basis for semantic interoperability tasks (e.g., code migration) or in the definition of architectural smells independently of the chosen framework. In this work, we present ORM-O, a domain reference ontology that aims to identify and represent the semantics of object/relational mapping when such frameworks are used in software development.
With the rise of polyglot programming, different programming languages with different constructs have been combined in the same software development projects. However, to our knowledge, no axiomatization demonstrating the existential... more
With the rise of polyglot programming, different programming languages with different constructs have been combined in the same software development projects. However, to our knowledge, no axiomatization demonstrating the existential commitments of a language have been presented, nor is there effort to adopt a consensual conceptualization between languages, in particular object-oriented ones. In this paper, we propose OOC-O, a reference ontology on Object-Oriented Code whose purpose is to identify and represent the fundamental concepts present in OO source code. The ontology is based on UFO, was developed according to the SABiO method, verified according to its competency questions and validated by instantiation of concepts in OO code form and a process of harmonization among popular object-oriented languages.
Nowadays, there are more and more software systems operating in highly open, dynamic and unpredictable environments. Moreover, as technology advances, requirements for these systems become ever more ambitious. We have reached a point... more
Nowadays, there are more and more software systems operating in highly open, dynamic and unpredictable environments. Moreover, as technology advances, requirements for these systems become ever more ambitious. We have reached a point where system complexity and environmental uncertainty are major challenges for the Information Technology industry. A solution proposed to deal with this challenge is to make systems (self-)adaptive, meaning they would evaluate their own behavior and performance, in order to re-plan and reconfigure their operations when needed. In order to develop an adaptive system, one needs to account for some kind of feedback loop. A feedback loop constitutes an architectural prosthetic to a system proper, introducing monitoring and adaptation functionalities to the overall system. Even if implicit or hidden in the system's architecture, adaptive systems must have a feedback loop among their components in order to evaluate their behavior and act accordingly. In ...
Recently, we have seen an increasing interest in ontologies as artifacts to represent knowledge and as critical elements in knowledge management, requirements engineering and several other application areas. In DomainOriented Software... more
Recently, we have seen an increasing interest in ontologies as artifacts to represent knowledge and as critical elements in knowledge management, requirements engineering and several other application areas. In DomainOriented Software Development Environments, ontologies are used as domain models that can be used to guide requirements engineering. Thus, in this kind of environment, tools supporting ontology development are necessary. In the context of ODE (Ontology-based software Development Environment), we developed ODEd, an ontology editor. The initial version of ODEd, however, offered limited support for defining axioms and for ontology evaluation. In order to overcome such limitations, we improved ODEd adding an axiom editor to it. In this paper we discuss how this axiom editor supports axiom definition and ontology evaluation using an inference engine.
Self-adaptive software systems monitor their operation and adapt when their requirements fail due to unexpected phenomena in their environment. This paper examines the case where the environment changes dynamically over time and the... more
Self-adaptive software systems monitor their operation and adapt when their requirements fail due to unexpected phenomena in their environment. This paper examines the case where the environment changes dynamically over time and the chosen adaptation has to take into account such changes. In control theory, this type of adaptation is known as Model Predictive Control and comes with a well-developed theory and myriads of successful applications. The paper focuses on modelling the dynamic relationship between requirements and possible adaptations. It then proposes a controller that exploits this relationship to optimize the satisfaction of requirements relative to a cost-function. This is accomplished through a model-based framework for designing self- adaptive software systems that can guarantee a certain level of requirements satisfaction over time, by dynamically composing adaptation strategies when necessary. The proposed framework is illustrated and evaluated through a simulation of the Meeting-Scheduling System exemplar.
Software evolution is the main research focus of the Tropos group at University of Trento (UniTN): how do we build systems that are aware of their requirements, and are able to dynamically reconfigure themselves in response to changes in... more
Software evolution is the main research focus of the Tropos group at University of Trento (UniTN): how do we build systems that are aware of their requirements, and are able to dynamically reconfigure themselves in response to changes in context (the environment within which they operate) and requirements. The purpose of this report is to offer an overview of ongoing work at UniTN. In particular, the report presents ideas and results of four lines of research: contextual requirements modeling and reasoning, commitments and goal models, developing self-reconfigurable systems, and requirements awareness.
Goal-Oriented Requirements Engineering (GORE) has grown into an important area of research in the past decades. Still, some of its corners remain dark, since different GORE languages do not provide a well-founded conceptualization of the... more
Goal-Oriented Requirements Engineering (GORE) has grown into an important area of research in the past decades. Still, some of its corners remain dark, since different GORE languages do not provide a well-founded conceptualization of the domain and are not consensual. This may lead to ambiguous or weak understanding of GORE concepts. In this paper, we introduce the Goal-Oriented Requirements Ontology (GORO), a domain ontology founded on the Unified Foundational Ontology (UFO) that intends to represent the nature and relations of concepts surrounding the GORE domain. We use GORO to explore and clarify the semantics used, sometimes implicitly, by well-known GORE languages.
Relational database systems is a well-known domain and an essential component of life in modern society. However, a well-founded ontological conceptualization of this domain is not yet defined and shared by the community, nor applied as a... more
Relational database systems is a well-known domain and an essential component of life in modern society. However, a well-founded ontological conceptualization of this domain is not yet defined and shared by the community, nor applied as a solution to problems such as semantic interoperability, database migration, etc. In this paper, we present RDBS-O, a well-founded reference ontology on the relational database domain, rigorously constructed, verified and validated according to an ontology engineering method. In addition to a reference ontology, we also implement and test its operational version, using it to automatic instantiate the ontology from a real database sample.
Electrical submersible pumps are devices frequently used in off-shore oil exploration. Vibration signals analysis and expert systems technology are used for detecting faults on these motor pumps. Fault diagnosis classifiers may need to be... more
Electrical submersible pumps are devices frequently used in off-shore oil exploration. Vibration signals analysis and expert systems technology are used for detecting faults on these motor pumps. Fault diagnosis classifiers may need to be updated or expanded. This paper proposes a domain specific language for enabling non-programmer engineers to create and adjust rule-based fault diagnosis classifiers of electrical submersible pumps.
Goal-Oriented Requirements Engineering (GORE) gained prominence by covering some of the limitations of traditional Requirements Engineering (RE). As a result, many GORE modeling languages have been proposed since this field emerged.... more
Goal-Oriented Requirements Engineering (GORE) gained prominence by covering some of the limitations of traditional Requirements Engineering (RE). As a result, many GORE modeling languages have been proposed since this field emerged. Aiming at providing formal semantics to the concepts of GORE, the Goal-Oriented Requirements Ontology (GORO) was proposed as a common vocabulary for this domain. However, the first version of GORO lacks important concepts and its applicability was not demonstrated in practice. In this paper, we present GORO 2.0, an evolution of the first version of GORO that overcomes several limitations of its first version, presenting new concepts such as obstacles, conflicts and contributions.
i* is the most popular goal modeling language and, therefore, has several dialects that can interpret its concepts in different ways. iStar 2.0 was designed to lessen the misinterpretation problems of its constructs. Concepts can be... more
i* is the most popular goal modeling language and, therefore, has several dialects that can interpret its concepts in different ways. iStar 2.0 was designed to lessen the misinterpretation problems of its constructs. Concepts can be well-defined in the language but, if not used properly, the produced models may become inconsistent. An ontology can be used to verify and help the construction of correct and consistent models. GORO is an ontology about GORE that was built based on different goal modeling languages. This paper interprets some iStar ’s constructs and proposes some discussions in the light of GORO.
Requirements engineering comprises activities for discovery, analysis and specification of users’ needs and goals for a software system. In an early phase of software development, it is essential not to discard alternatives until some... more
Requirements engineering comprises activities for discovery, analysis and specification of users’ needs and goals for a software system. In an early phase of software development, it is essential not to discard alternatives until some reasoning or evaluation is taken. Goal-oriented requirement engineering provides means for dealing with goals, needs and its alternative options for realization. However, analysis of large scale or complex systems requirements may be hard to be accomplished and error prone. Knowledge-based systems are a good tool to assist analysts in carrying out such analysis. This work proposes an operational ontology to represent iStar 2.0 models using OWL-DL.
Resumo Pesquisadores têm cada vez mais direcionado sua atenção ao uso de modelos em tempo de execução (runtime), provendo ferramentas e frameworks que auxiliam os desenvolvedores na tarefa de construir software alinhado a seus... more
Resumo Pesquisadores têm cada vez mais direcionado sua atenção ao uso de modelos em tempo de execução (runtime), provendo ferramentas e frameworks que auxiliam os desenvolvedores na tarefa de construir software alinhado a seus requisitos/arquitetura. Em particular, algumas pesquisas em Engenharia de Requisitos concentraram-se em desenvolver sistemas de software que possuam a capacidade de ler seus próprios modelos de requisitos e tomar decisões a partir de uma análise do mesmo. É uma tendência comum, por exemplo, na área de sistemas adaptativos, para a qual contribúımos recentemente. Neste artigo, propomos um novo projeto de pesquisa sobre o uso de modelos de requisitos em tempo de execução, discutindo seus potenciais benef́ıcios e os desafios envolvidos.
Organizations often use several applications to support business processes. However, these applications usually are heterogeneous, autonomous and distributed. In this context, Enterprise Application Integration (EAI) initiatives are... more
Organizations often use several applications to support business processes. However, these applications usually are heterogeneous, autonomous and distributed. In this context, Enterprise Application Integration (EAI) initiatives are needed. Ontologies play a key role in EAI, capturing the conceptualization underlying the various applications to be integrated and providing an “interlingua” to support EAI. This paper presents a semantic EAI initiative in the Public Security domain, particularly in the Violent Crimes against Life subdomain. To assign semantics to the integrated applications, we developed and used the Violent Crime Process Ontology Network, which is partially presented in this paper.
The different ways of representing a source code in different programming languages create a heterogeneous context. In addition, the use of multiple programming languages in a single source code (polyglot programming) brings a wide choice... more
The different ways of representing a source code in different programming languages create a heterogeneous context. In addition, the use of multiple programming languages in a single source code (polyglot programming) brings a wide choice of terms from different languages, libraries and structures. These facts prevent the direct exchange of information between source codes of different programming languages, requiring specialized knowledge of the programming languages involved. In this article, we present an ontology-based method for source code interoperability that provides an alternative to mitigate heterogeneity problems, aiming to semantically represent the source code written in different programming languages and apply it from different perspectives in a unified way. In this sense, the method is applied in a lab experiment with the objective of validating its methodological aspects, instantiating their respective phases in different subdomains (object orientation and object/relational mapping) and programming languages (Java and Python) in the code smells detection perspective. In addition, the code smell detector produced is evaluated with a set of real-world software projects written in Java and Python.
Abstract Billing errors increase the costs of power companies and lower their reliability as perceived by customers. The majority of these errors are due to wrong readings that occur when employees of power companies visit the customers... more
Abstract Billing errors increase the costs of power companies and lower their reliability as perceived by customers. The majority of these errors are due to wrong readings that occur when employees of power companies visit the customers to read electrical meters and issue the bills. To prevent such errors, prediction techniques calculate a predicted value for each customer based on the values of their previous readings, plus a tolerance around this value, sending bills to be inspected by analysts if the reading extrapolates the established range. However, such analysis increases the personnel cost of the power company. In addition, wrongly printed bills lead to possible lawsuits and fines that might also affect the costs and reliability of the power company. The main focus of this work is to minimize personnel cost by reducing the number of correct readings sent to unnecessary analysis, while protecting the power company credibility by not increasing the number of bills with wrong values sent to clients in the process. The proposed solution uses Empirical Bayes methods along with a method to consider seasonal behavior of customers. The methodology was applied to a dataset comprising 35,704,489 measurements from 1,330,989 different customers of a Brazilian power company. The results show that the new methodology was able to decrease the number of correct bills sent to analysis without lowering the reputation of the company.
The rational management of software defects is a fundamental requirement for a mature software industry. Standards, guides and capability models directly emphasize how important it is for an organization to know and to have a... more
The rational management of software defects is a fundamental requirement for a mature software industry. Standards, guides and capability models directly emphasize how important it is for an organization to know and to have a well-established history of failures, errors and defects as they occur in software activities. The problem is that each of these reference models employs its own vocabulary to deal with these phenomena, which can lead to a deficiency in the understanding of these notions by software engineers, potential interoperability problems between supporting tools, and, consequently, to a poorer adoption of these standards and tools in practice. We address this problem of the lack of a consensual conceptualization in this area by proposing a reference conceptual model (domain ontology) of Software Defects, Errors and Failures, which takes into account an ecosystem of software artifacts. The ontology is grounded on the Unified Foundational Ontology (UFO) and is based on we...
Research Interests:
The growing interest in developing adaptive systems has led to numerous proposals for approaches aimed at supporting their development. Some approaches define adaptation mechanisms in terms of architectural design, consisting of concepts... more
The growing interest in developing adaptive systems has led to numerous proposals for approaches aimed at supporting their development. Some approaches define adaptation mechanisms in terms of architectural design, consisting of concepts such as components, connectors and states. Other approaches are requirements-based, thus concerned with goals, tasks, contexts and preferences as concepts in terms of which adaptation is defined. By considering only a problem- or a solution- oriented view, such proposals are limited in specifying adaptive behavior. In this paper we present ongoing work on supporting the design and runtime execution of adaptive software systems both at a requirements and architectural level, as wells as its challenges, ranging from architectural derivation from requirements to refined adaptation control mechanisms.
Research Interests:
The use of Requirements at Runtime (RRT) is an emerging research area. Many methods and frameworks that make use of requirements models during software execution can be found in the literature. However, there is still a lack of a formal... more
The use of Requirements at Runtime (RRT) is an emerging research area. Many methods and frameworks that make use of requirements models during software execution can be found in the literature. However, there is still a lack of a formal and explicit representation of what RRT are and what are the primary goals of their use. Still, most RRT proposals have their own modeling languages and ways to represent, specify and make use of requirements at runtime, thus resulting in a domain with overloaded concepts. In this paper, we intend to clarify the main notions involved in RRT, establishing an explicit common conceptualization regarding this domain. To do so, we need first to understand what software execution is, as well as what requirements are. Thus, we present three related domain ontologies: the Software Ontology (SwO), an ontology about software nature and execution, the Reference Software Requirements Ontology (RSRO), which addresses what requirements are and types of requirements, and the Runtime Requirements Ontology (RRO), which extends SwO and RSRO to represent the nature and context of RRT. For developing these ontologies, we follow SABiO, a well-established Ontology Engineering method. Moreover, all the three ontologies are grounded in the Unified Foundational Ontology (UFO) and are integrated into the Software Engineering Ontology Network (SEON). Finally, as prescribed by SABiO, the ontologies are evaluated using ontology verification and validation techniques.
Research Interests:
Information Systems, Software Engineering, Information Science, Ontology, Applied Ontology, and 28 more
The use of Requirements at Runtime (RRT) is an emerging research area. Many methodologies and frameworks that make use of requirements models during the execution of software can be found in the literature, but very few of them use... more
The use of Requirements at Runtime (RRT) is an emerging research area. Many methodologies and frameworks that make use of requirements models during the execution of software can be found in the literature, but very few of them use ontologies to ground the models that are used at runtime. In this paper, we introduce the Runtime Requirements Ontology (RRO), a domain ontology that intends to represent the nature and context of RRT. Following a well-known Ontology Engineering method, we evaluate RRO using verification and validation techniques.
Research Interests:
Software Engineering, Applied Ontology, Semantic Web Technologies, Requirements Engineering, Ontology (Computer Science), and 18 more
In order to generate semantic annotations for a collection of documents, one needs an annotation schema consisting of a semantic model (a.k.a. ontology) along with lists of linguistic indicators (keywords and patterns) for each concept in... more
In order to generate semantic annotations for a collection of documents, one needs an annotation schema consisting of a semantic model (a.k.a. ontology) along with lists of linguistic indicators (keywords and patterns) for each concept in the ontology. The focus of this paper is the automatic generation of the linguistic indicators for a given semantic model and a corpus of documents. Our approach needs a small number of user-defined seeds and bootstraps itself by exploiting a novel clustering technique. The baseline for this work is the Cerno project [8] and the clustering algorithm LIMBO [2]. We also present results that compare the output of the clustering algorithm with linguistic indicators created manually for two case studies.
Variability is essential for adaptive software systems, because it captures the space of alternative adaptations a system is capable of when it needs to adapt. In this work, we propose to capture variability for an adaptation space in... more
Variability is essential for adaptive software systems, because
it captures the space of alternative adaptations a system is capable of when it needs to adapt. In this work, we propose to capture variability for an adaptation space in terms of a three dimensional model. The first dimension captures requirements through goals and reflects all possible ways of achieving these goals. The second dimension captures supported variations of a system's architectural structure, modeled in terms of connectors and components. The third dimension describes supported system behaviors, by modeling possible sequences for goal ful fillment and task execution. Of course, the three dimensions of a variability model are inter-twined as choices made with respect to one dimension have impact on the other two. Therefore, we propose an incremental design methodology for variability models that keeps the three dimensions aligned and consistent. We illustrate our proposal with a case study involving the meeting scheduling system exemplar.
Research Interests:
We have been witnessing growing interest in systems that can adapt their behavior to deal with deviations between their performance and their requirements at run-time. Such adaptive systems usually need to support some form of a feedback... more
We have been witnessing growing interest in systems that can adapt their behavior to deal with deviations between their performance and their requirements at run-time. Such adaptive systems usually need to support some form of a feedback loop that monitors the system’s output for problems and carries out adaptation actions when necessary. Being an important feature, adaptivity needs to be considered in early stages of development. Therefore, adopting a requirements engineering perspective, we have proposed an approach and a framework (both called Zanshin) for the engineering of adaptive systems based on a feedback loop architecture. As part of our framework’s evaluation, we have applied the Zanshin approach to the design of an adaptive computer-aided ambulance dispatch system, whose requirements were based on a well-known case study from the literature. In this paper, we report on the application of Zanshin for the design of an adaptive computer-aided ambulance dispatch system, presenting elements of the design, as well as the results from simulations of run-time scenarios.
Adaptive software systems monitor the environment to ensure that their requirements are being fullled. When this is not the case, their adaptation mechanism proposes an adaptation (a change to the behaviour/configuration) that can lead to... more
Adaptive software systems monitor the environment to ensure that their requirements are being fullled. When this is not the case, their adaptation mechanism proposes an adaptation (a change to the behaviour/configuration) that can lead to restored satisfaction of system requirements. Unfortunately, such adaptation mechanisms don't work very well in cases where there are multiple failures (divergence of system behaviour relative to several requirements). This paper proposes an adaptation mechanism that can handle multiple failures. The proposal consists of extending the Qualia adaptation mechanism of Zanshin enriched with features adopted from Control Theory. The proposed framework supports the definition of requirements for the adaptation process prescribing how to deal at runtime with problems such as conflicting requirements and synchronization, enhancing the precision and effectiveness of the adaptation mechanism. The proposed mechanism, named Qualia+ is illustrated and evaluated with an example using the meeting scheduling exemplar.
The derivation of statecharts from requirements has been addressed from many perspectives. All of them assume that the derivation process is a linear series of refinements resulting in a single statechart, thereby missing the opportunity... more
The derivation of statecharts from requirements has been addressed from many perspectives. All of them assume that the derivation process is a linear series of refinements resulting in a single statechart, thereby missing the opportunity to explore alternatives in the design space. We propose a multi-dimensional approach that exploits inherent variability of the design space, where alternative refinements are considered for the same intermediate problem, resulting in multiple solutions (statecharts) from a single initial problem (requirements). In order to accomplish this, we propose an extended form of goal model where architects can incrementally refine the original requirements by considering behavioral alternatives leading to design solutions. The proposed refinement process is illustrated through an example from the literature. Experimentation with randomly generated models suggests that the proposal is scalable.
The functional specification of any software system operationalizes stakeholder requirements. In this paper we focus on a class of requirements that lead to feedback loop operationalizations. These Awareness Requirements talk about the... more
The functional specification of any software system operationalizes stakeholder requirements. In this paper we focus on a class of requirements that lead to feedback loop operationalizations. These Awareness Requirements talk about the runtime success/failure of other requirements and domain assumptions. Our proposal includes a language for expressing awareness requirements, as well as techniques for elicitation and implementation based on the EEAT requirements monitoring framework.
The growing interest in adaptive software systems has resulted in a number of different proposals for the de- sign of adaptive systems. Some approaches adopt architectural models, whereas others model adaptation options, at the level of... more
The growing interest in adaptive software systems has resulted in a number of different proposals for the de- sign of adaptive systems. Some approaches adopt architectural models, whereas others model adaptation options, at the level of requirements. This dichotomy has motivated us to perform a comparative study between two proposals for the design of adaptive systems: the Rainbow Framework (architecture- based) and our own proposal, Zanshin (requirements-based). This evaluation paper reports on our methodology and results. It also provides a comparison between the use of architectural and requirements models as centrepieces of adaptation, offering guidelines for the future research in the field of adaptive systems.
The Zanshin framework adopts a Requirements Engineering perspective to the design of adaptive systems and is centered around the idea of feedback loops. Evaluation experiments conducted so far have used simulations, limiting the strength... more
The Zanshin framework adopts a Requirements Engineering perspective to the design of adaptive systems and is centered around the idea of feedback loops. Evaluation experiments conducted so far have used simulations, limiting the strength of our conclusions on the viability of our proposal. In this paper, we report on the experience of applying Zanshin to an existing base system, a software that simulates an Automated Teller Machine (ATM), available online, drawing conclusions on the applicability of the framework’s potential in real-life situations.
Pesquisadores têm cada vez mais direcionado sua atenção ao uso de modelos em tempo de execução (runtime), provendo ferramentas e frameworks que auxiliam os desenvolvedores na tarefa de construir software alinhado a seus... more
Pesquisadores têm cada vez mais direcionado sua atenção ao uso de modelos em tempo de execução (runtime), provendo ferramentas e frameworks que auxiliam os desenvolvedores na tarefa de construir software alinhado a seus requisitos/arquitetura. Em particular, algumas pesquisas em Engenharia de Requisitos concentraram-se em desenvolver sistemas de software que possuam a capacidade de ler seus próprios modelos de requisitos e tomar decisões a partir de uma análise do mesmo. É uma tendência comum, por exemplo, na área de sistemas adaptativos, para a qual contribuímos recentemente. Neste artigo, propomos um novo projeto de pesquisa sobre o uso de modelos de requisitos em tempo de execução, discutindo seus potenciais benefícios e os desafios envolvidos.
The great impact that law has on the design of software systems has been widely recognized in past years. However, little attention has been paid to the challenge of coping with variability characterizing the legal domain (e.g., multiple... more
The great impact that law has on the design of software systems has been widely recognized in past years. However, little attention has been paid to the challenge of coping with variability characterizing the legal domain (e.g., multiple ways to comply with a given law, frequent updates to regulations, different jurisdictions, etc.) on the design of software systems. This position paper advocates the use of adaptation mechanisms in order to support regulatory compliance for software systems. First we show an example of how Zanshin, a requirements-based adaptation framework, can be used to design a system that adapts to legal requirements to accommodate legal variability. Then we examine how legal texts can be analyzed as sources for parameters and indicators needed to support adaptation. As motivating running example we consider legal situations concerning the Google driverless car and its recent legalization in the highways of Nevada and soon also in California.
The growing interest in developing adaptive systems has led to numerous proposals for approaches aimed at supporting their development. Some approaches define adaptation mechanisms in terms of architectural design, consisting of concepts... more
The growing interest in developing adaptive systems has led to numerous proposals for approaches aimed at supporting their development. Some approaches define adaptation mechanisms in terms of architectural design, consisting of concepts such as components, connectors and states. Other approaches are requirements-based, thus concerned with goals, tasks, contexts and preferences as concepts in terms of which adaptation is defined. By considering only a problem- or a solution- oriented view, such proposals are limited in specifying adaptive behavior. In this paper we present ongoing work on supporting the design and runtime execution of adaptive software systems both at a requirements and architectural level, as wells as its challenges, ranging from architectural derivation from requirements to refined adaptation control mechanisms.
It is often the case that stakeholders want to strengthen/weaken or otherwise change their requirements for a system-to-be when certain conditions apply at runtime. For example, stakeholders may decide that if requirement R is violated... more
It is often the case that stakeholders want to strengthen/weaken or otherwise change their requirements for a system-to-be when certain conditions apply at runtime. For example, stakeholders may decide that if requirement R is violated more than N times in a week, it should be relaxed to a less demanding one R −. Such evolution requirements play an important role in the lifetime of a software system in that they define possible changes to requirements, along with the conditions under which these changes apply. In this paper we focus on this family of requirements, how to model them and how to operationalize them at runtime. In addition, we evaluate our proposal with a case study adopted from the literature.
Nowadays, there are more and more software systems operating in highly open, dynamic and unpredictable environments. Moreover, as technology advances, requirements for these systems become ever more ambitious. We have reached a point... more
Nowadays, there are more and more software systems operating in highly open, dynamic and unpredictable environments. Moreover, as technology advances, requirements for these systems become ever more ambitious. We have reached a point where system complexity and environmental uncertainty are major challenges for the Information Technology industry. A solution proposed to deal with this challenge is to make systems (self-)adaptive, meaning they would evaluate their own behavior and performance, in order to re-plan and reconfigure their operations when needed. In order to develop an adaptive system, one needs to account for some kind of feedback loop. A feedback loop constitutes an architectural prosthetic to a system proper, introducing monitoring and adaptation functionalities to the overall system. Even if implicit or hidden in the system's architecture, adaptive systems must have a feedback loop among their components in order to evaluate their behavior and act accordingly. In this thesis, we take a Requirements Engineering perspective to the design of adaptive software systems and, given that feedback loops constitute an (architectural) solution for adaptation, we ask the question: what is the requirements problem this solution is intended to solve? To answer this question, we define two new classes of requirements: Awareness Requirements prescribe the indicators of requirements convergence that the system must strive to achieve, whereas Evolution Requirements represent adaptation strategies in terms of changes in the requirements models themselves. Moreover, we propose that System Identification be conducted to elicit parameters and analyze how changes in these parameters affect the monitored indicators, representing such effect using differential relations. These new elements represent the requirements for adaptation, making feedback loops a first-class citizen in the requirements specification. Not only they assist requirements engineers in the task of elicitation and communication of adaptation requirements, but with the proper machine-readable representations, they can serve as input to a framework that implements the generic functionalities of a feedback loop, reasoning about requirements at runtime. We have developed one such framework, called Zanshin, and validated our proposals through experiments based on a well-known case study adopted from the literature.
Coping with run-time uncertainty pose an ever-present threat to the fulfillment of requirements for most software systems (embedded, robotic, socio-technical, etc.). This is particularly true for large-scale, cooperative information... more
Coping with run-time uncertainty pose an ever-present threat to the fulfillment of requirements for most software systems (embedded, robotic, socio-technical, etc.). This is particularly true for large-scale, cooperative information systems. Adaptation mechanisms constitute a general solution to this problem, consisting of a feedback loop that monitors the environment and compensates for deviating system behavior. In our research, we apply a requirements engineering perspective to the problem of designing adaptive systems, focusing on developing a qualitative software-centric, feedback loop mechanism as the architecture that operationalizes adaptivity. In this paper, we propose a framework that provides qualitative adaptation to target systems based on information from their requirements models. The key characteristc of this framework is extensibility, allowing for it to cope with qualitative information about the impact of control (input) variables on indicators (output variables) in different levels of precision. Our proposal is evaluated with a variant of the London Ambulance System case study.
Complexity is now one of the major challenges for the IT industry [1]. Systems might become too complex to be managed by humans and, thus, will have to be self-managed: Self-configure themselves for operation, self-protect from attacks,... more
Complexity is now one of the major challenges for the IT industry [1]. Systems might become too complex to be managed by humans and, thus, will have to be self-managed: Self-configure themselves for operation, self-protect from attacks, self-heal from errors and self-tune for optimal performance [2]. (Self-)Adaptive systems evaluate their own behavior and change it when the evaluation indicates that it is not accomplishing the software's purpose or when better functionality and performance are possible [3]. To that end, we need to monitor the behavior of the running system and compare it to an explicit formulation of requirements and domain assumptions [4]. Feedback loops (e.g., the MAPE loop [2]) constitute an architectural solution for this and, as proposed by past research [5], should be a first class citizen in the design of such systems. We advocate that adaptive systems should be designed this way from as early as Requirements Engineering and that reasoning over requirements is fundamental for run-time adaptation. We therefore propose an approach for the design of adaptive systems based on requirements and inspired in control theory [6]. Our proposal is goal-oriented and targets softwareintensive socio-technical systems [7], in an attempt to integrate control-loop approaches with decentralized agents inspired approaches [8]. Our final objective is a set of extensions to state-of-the-art goal-oriented modeling languages that allow practitioners to clearly specify the requirements of adaptive systems and a run-time framework that helps developers implement such requirements. In this 2-page abstract paper, we summarize this approach.
It is often the case that stakeholders want to strengthen/weaken or otherwise change their requirements for a system-to-be when certain conditions apply at runtime. For example, stakeholders may decide that if requirement R is violated... more
It is often the case that stakeholders want to strengthen/weaken or otherwise change their requirements for a system-to-be when certain conditions apply at runtime. For example, stakeholders may decide that if requirement R is violated more than N times in a week, it should be relaxed to a less demanding one R-. Such evolution requirements play an important role in the lifetime of a software system in that they define possible changes to requirements, along with the conditions under which these changes apply. In this paper we focus on this family of requirements, how to model them and how to operationalize them at runtime. In addition, we evaluate our proposal with a case study adopted from the literature.
A data warehouse (DW) system stores data from multiple data sources in integrated form and provides capabilities for monitoring business operations to ensure compliance to strategic goals. As such, DWs constitute a fundamental building... more
A data warehouse (DW) system stores data from multiple data sources in integrated form and provides capabilities for monitoring business operations to ensure compliance to strategic goals. As such, DWs constitute a fundamental building block for Business Intelligence (BI) operations. In this paper, we introduce the notion of Awareness Requirements (AwReqs) in the requirements analysis and elicitation phase for DWs. In this context, AwReqs provide analysts with the means for eliciting and modeling requirements over performance measures (indicators) to appraise the success or failure of strategic goals. To demonstrate the benefit of our approach, we present a typical business example throughout the paper and show how we can establish in the early stages of DW design the adequacy of the design for BI operations.
Requirements evolution is a main driver for systems evolution. Traditionally, requirements evolution is associated to changes in the users’ needs and environments. In this paper, we explore another cause for requirements evolution:... more
Requirements evolution is a main driver for systems evolution. Traditionally, requirements evolution is associated to changes in the users’ needs and environments. In this paper, we explore another cause for requirements evolution: assumptions. Requirements engineers often make assumptions stating, for example, that satisfying certain sub-requirements and/or correctly executing certain system functionalities would lead to reach a certain requirement. However, assumptions might be, or eventually become, invalid. We outline an approach to monitor, at runtime, the assumptions in a requirements model and to evolve the model to reflect the validity level of such assumptions. We introduce two types of requirements evolution: autonomic (which evolves the priorities of system alternatives based on their success/failure in meeting requirements) and designer-supported (which detects loci in the requirements model containing invalid assumptions and recommends designers to take evolutionary actions).
Recently, there has been a growing interest in self-adaptive systems. Roadmap papers in this area point to feedback loops as a promising way of operationalizing adaptivity in such systems. In this paper, we define a new type of... more
Recently, there has been a growing interest in self-adaptive systems. Roadmap papers in this area point to feedback loops as a promising way of operationalizing adaptivity in such systems. In this paper, we define a new type of requirement — called Awareness Requirement — that can refer to other requirements and their success/failures. We propose a way to elicit and formalize such requirements and offer a requirements monitoring framework to support them.
Control Theory and feedback control in particular have been steadily gaining momentum in software engineering for adaptive systems. Feedback controllers work by continuously measuring system outputs, comparing them with reference targets... more
Control Theory and feedback control in particular have been steadily gaining momentum in software engineering for adaptive systems. Feedback controllers work by continuously measuring system outputs, comparing them with reference targets and adjusting control inputs if there is a mismatch. In Control Theory, quantifying the effects of control input on measured output is a process known as system identification . This process usually relies either on detailed and complex system models or on system observation. In this paper, we adopt a Requirements Engineering perspective and ideas from Qualitative Reasoning to propose a language and a systematic system identification method for adaptive software systems that can be applied at the requirements level, with the system not yet developed and its behavior not completely known.
Several proposals for the design of adaptive systems rely on some kind of feedback loop that monitors the system output and adapts in case of failure. Roadmap papers in the area advocate the need to make such feedback loops first class... more
Several proposals for the design of adaptive systems rely on some kind of feedback loop that monitors the system output and adapts in case of failure. Roadmap papers in the area advocate the need to make such feedback loops first class entities in adaptive systems design. We go further by adopting a Requirements Engineering perspective that is not only based on feedback loops but also applies other concepts from Control Theory to the design of adaptive systems. Our plans include a framework that reasons over requirements at runtime to provide adaptivity to a system proper. In this position paper, we argue for a control-theoretic view for adaptive systems and outline our long-term research agenda, briefly presenting work that we have already accomplished and discussing our plans for the future.
Software evolution is the main research focus of the Tropos group at University of Trento (UniTN): how do we build systems that are aware of their requirements, and are able to dynamically reconfigure themselves in response to changes in... more
Software evolution is the main research focus of the Tropos group at University of Trento (UniTN): how do we build systems that are aware of their requirements, and are able to dynamically reconfigure themselves in response to changes in context (the environment within which they operate) and requirements. The purpose of this report is to offer an overview of ongoing work at UniTN. In particular, the report presents ideas and results of four lines of research: contextual requirements modeling and reasoning, commitments and goal models, developing self-reconfigurable systems, and requirements awareness.
Monitoring and diagnosing (M&D) software based on requirement models is a problem that has recently received a lot of attention in field of Requirement Engineering. In this context, Wang et al. [1] propose a M&D framework that uses goal... more
Monitoring and diagnosing (M&D) software based on requirement models is a problem that has recently received a lot of attention in field of Requirement Engineering. In this context, Wang et al. [1] propose a M&D framework that uses goal models to diagnose failures in software at different levels of granularity. In this paper we extend Wang’s framework to monitor and diagnose malicious attacks. Our extensions include the addition of anti-goals to model attacker intentions, as well as context-based modeling of the domain within which our system operates. The extended framework has been implemented and evaluated through a series of experiments intended to test its scalability.
In the Web Engineering area, many methods and frameworks to support Web Information Systems (WISs) development have already been proposed. Particularly, the use of frameworks and container-based architectures is state-of-the-practice. In... more
In the Web Engineering area, many methods and frameworks to support Web Information Systems (WISs) development have already been proposed. Particularly, the use of frameworks and container-based architectures is state-of-the-practice. In this chapter, we present a method for designing framework- based WISs called FrameWeb, which defines a standard architecture for framework-based WISs and a modeling language that extends UML to build diagrams that specifically depict framework-related components. Considering that the Semantic Web has been gaining momentum in the last few years, we also propose an extension to FrameWeb, called S-FrameWeb, that aims to support the development of Semantic WISs.
In order to generate semantic annotations for a collection of documents, one needs an annotation schema consisting of a semantic model (a.k.a. ontology) along with lists of linguistic indicators (keywords and patterns) for each concept in... more
In order to generate semantic annotations for a collection of documents, one needs an annotation schema consisting of a semantic model (a.k.a. ontology) along with lists of linguistic indicators (keywords and patterns) for each concept in the ontology. The focus of this paper is the automatic generation of the linguistic indicators for a given semantic model and a corpus of documents. Our approach needs a small number of user-defined seeds and bootstraps itself by exploiting a novel clustering technique. The baseline for this work is the Cerno project [8] and the clustering algorithm LIMBO [2]. We also present results that compare the output of the clustering algorithm with linguistic indicators created manually for two case studies.
The Web Engineering area is evolving fast. Many methods and frameworks to support Web Information Systems (WISs) development have already been proposed. Particularly, the use of frameworks and container­based architectures is... more
The Web Engineering area is evolving fast. Many methods and frameworks to support Web Information Systems (WISs) development have already been proposed. Particularly, the use of frameworks and container­based architectures is state­of­the­practice. Motivated by this scenario, we have proposed a method for designing framework­based WISs called FrameWeb. However, we should consider that the Semantic Web has been gaining momentum in the last few years. The idea is that the information on the Web should be available in machine­processable formats so that software agents could reason with it. This paper presents an extension to FrameWeb, called S­ FrameWeb, that aims to support the development of Semantic WISs.
Web application development has long evolved from CGI scripting in structured programming languages to a whole new discipline called Web Engineering. Today, large and complex distributed systems are being built for the web, mostly with... more
Web application development has long evolved from CGI scripting in structured programming languages to a whole new discipline called Web Engineering. Today, large and complex distributed systems are being built for the web, mostly with the use of frameworks or a container-based architecture. This paper proposes a method for the design of Web applications based on the use of frameworks, including a modeling language that extends UML to build diagrams that specifically depict framework-related components.
As primeiras gerações de aplicações para a Web foram construídas de maneira ad-hoc, sem uma metodologia ou processo de software para dar apoio à equipe de desenvolvimento. Para atender à necessidade de abordagens disciplinadas e... more
As primeiras gerações de aplicações para a Web foram construídas de maneira ad-hoc, sem uma metodologia ou processo de software para dar apoio à equipe de desenvolvimento. Para atender à necessidade de abordagens disciplinadas e sistemáticas, uma nova disciplina foi criada: a Engenharia Web (Web Engineering ou WebE). Nessa nova área de pesquisa, muitos métodos têm sido propostos para análise, projeto e desenvolvimento de Sistemas de Informação baseados na Web (Web-based Information Systems – WISs). Juntamente com essas pesquisas, tecnologias para codificação de aplicações Web também se desenvolveram. A utilização de frameworks ou arquiteturas baseadas em containers para prover uma infraestrutura sólida como base para as aplicações é estado-da-prática. No entanto, não foi encontrado na literatura um método de Engenharia Web que tire vantagens do uso desses frameworks durante a fase de projeto de sistema. Este trabalho apresenta um método para o projeto de WISs baseados em frameworks chamado FrameWeb. O método propõe uma arquitetura básica para desenvolvimento de WISs, um conjunto de atividades e um perfil UML para quatro tipos de modelos de projeto que trazem conceitos utilizados por algumas categorias de frameworks. A idéia é que o uso de FrameWeb favoreça um aumento da produtividade da equipe de desenvolvimento por utilizar uma linguagem de modelagem que permite aos projetistas produzir diagramas que representam conceitos dos frameworks e aos desenvolvedores ou ferramentas CASE diretamente traduzir esses diagramas para código. Considerando os investimentos em pesquisas na área da Web Semântica nos últimos anos e que a visão que é proposta para essa evolução da Web não se tornará uma realidade enquanto os autores de websites não adicionarem semântica às suas páginas, achamos importante incluir diretrizes sobre como desenvolver WISs com semântica associada usando FrameWeb. Portanto, este trabalho também propõe S-FrameWeb, que estende FrameWeb com o intuito de construir WISs Semânticos baseados em frameworks.
The rapid evolution of the area of Web Engineering has motivated the proposal of several methods and frameworks for the development of Web Information Systems (WISs). In particular, it is becoming more and more common to use... more
The rapid evolution of the area of Web Engineering has motivated the proposal of several methods and frameworks for the development of Web Information Systems (WISs). In particular, it is becoming more and more common to use container­based architectures and frameworks when it comes to their development. Following this idea, we have proposed a method for designing framework­based WISs, called FrameWeb. and, in this paper, we present FrameWeb's UML profile for modeling framework components in design models.
In the last few years, Web applications have evolved from static hypertext documents to complex information systems. This evolution leads to the necessity of methodologies specifically designed for development of Web-based systems,... more
In the last few years, Web applications have evolved from static hypertext documents to complex information systems. This evolution leads to the necessity of methodologies specifically designed for development of Web-based systems, focusing on agility in the process. This paper presents an agile approach for the development of Web applications that applies the concept of agile modeling, adopts a standard software architecture and is heavily based on frameworks, speeding up system analysis, design and implementation.
Recently, we have seen an increasing interest in ontologies as artifacts to represent knowledge and as critical elements in knowledge management, requirements engineering and several other application areas. In Domain- Oriented Software... more
Recently, we have seen an increasing interest in ontologies as artifacts to represent knowledge and as critical elements in knowledge management, requirements engineering and several other application areas. In Domain- Oriented Software Development Environments, ontologies are used as domain models that can be used to guide requirements engineering. Thus, in this kind of environment, tools supporting ontology development are necessary. In the context of ODE (Ontology-based software Development Environment), we developed ODEd, an ontology editor. The initial version of ODEd, however, offered limited support for defining axioms and for ontology evaluation. In order to overcome such limitations, we improved ODEd adding an axiom editor to it. In this paper we discuss how this axiom editor supports axiom definition and ontology evaluation using an inference engine.
Ontologias têm sido bastante utilizadas na Engenharia de Software, porém, sua construção não é tarefa simples. Dentro do contexto do ambiente de desenvolvimento de software ODE foi criado ODEd, um editor de ontologias desenvolvido para... more
Ontologias têm sido bastante utilizadas na Engenharia de Software, porém, sua construção não é tarefa simples. Dentro do contexto do ambiente de desenvolvimento de software ODE foi criado ODEd, um editor de ontologias desenvolvido para apoiar a orientação a domínio no ambiente. Este trabalho propõe adequar ODEd ao meta-modelo da UML e adicionar algumas novas funcionalidades para melhor apoiar as fases de formalização e avaliação de ontologias, através da construção de um Editor de Axiomas e da integração de uma máquina de inferência.
Ontologias têm sido bastante utilizadas na Engenharia de Software, porém sua construção não é tarefa simples. No contexto do ambiente de desenvolvimento de software ODE, foi desenvolvido ODEd, um editor de ontologias. Contudo, ODEd... more
Ontologias têm sido bastante utilizadas na Engenharia de Software, porém sua construção não é tarefa simples. No contexto do ambiente de desenvolvimento de software ODE, foi desenvolvido ODEd, um editor de ontologias. Contudo, ODEd trabalha de forma limitada a definição de axiomas. Esse artigo apresenta AxE, um editor de axiomas que complementa ODEd, permitindo a construção de axiomas e a avaliação de ontologias através do uso de uma máquina de inferência integrada.