The Infona portal uses cookies, i.e. strings of text saved by a browser on the user's device. The portal can access those files and use them to remember the user's data, such as their chosen settings (screen view, interface language, etc.), or their login data. By using the Infona portal the user accepts automatic saving and using this information for portal operation purposes. More information on the subject can be found in the Privacy Policy and Terms of Service. By closing this window the user confirms that they have read the information on cookie usage, and they accept the privacy policy and the way cookies are used by the portal. You can change the cookie settings in your browser.
Runtime adaptivity is a promising direction towards achieving adaptive behavior for software systems that operate within highly dynamic and non-deterministic environments. Model-centric approaches have proven to be able to successfully address various aspects of runtime adaptivity. In this paper, we propose a target architecture for self-adaptive software systems and show how it facilitates adaptation...
Any changes for maintenance or evolution purposes may break existing working features, or may violate the requirements established in the previous software releases. Regression testing is essential to avoid these problems, but it may be ended up with executing many time-consuming test cases. This paper tries to address prioritizing requirements-based regression test cases. To this end, system-level...
Regression testing is an expensive process used to validate modified software. Test case prioritization techniques improve the cost-effectiveness of regression testing by ordering test cases such that those that are more important are run earlier in the testing process. Many prioritization techniques have been proposed and evidence shows that they can be beneficial. It has been suggested, however,...
The testing activities of the Software Verification and Validation (SV&V) team at Research In Motion (RIM) are requirements-based, which is commonly known as requirements-based testing (RBT). This paper proposes a novel approach to enhance the current RBT process at RIM, by utilizing historical testing data from previous releases, static analysis of the modified source code, and real-time execution...
Realizing self-managing systems poses several development and operational challenges. Reusable software frameworks assist in addressing these challenges by utilizing appropriate patterns, and also providing essential runtime services for self-managing systems. This paper presents the StarMX framework, designed for building self-managing Java-based applications. It is a generic framework based on standards...
Adaptive software is a closed-loop system which aims at adjusting itself in different situations at runtime. This paper looks at adaptation as changes in the context of dynamic software evolution, and proposes a conceptual model for these changes based on Activity Theory. This model consists of a hierarchy of activities making changes, and the objectives motivating these changes. This model is an...
Testing heterogeneous software systems raises new research challenges. Requirement-based testing is a promising approach for testing such systems. Research in motion (RIM), whose main product is indeed heterogeneous, has initiated an academia-industry collaborative project to investigate the automation of their requirement-based testing process. In this paper, we first identify research challenges...
The testing activities of the Software Verification & Validation (SV&V) team at Research In Motion (RIM) are requirements-based, which is commonly known as requirements-driven testing (RDT). Software requirements are continuously changing, which has an important impact on the RDT process. This paper describes the major challenges in coping with requirements changes in the software verification...
A cost effective approach to regression testing is to prioritize test cases from a previous version of a software system for the current release. We have previously introduced a new approach for test case prioritization using Bayesian Networks (BN) which integrates different types of information to estimate the probability of each test case finding bugs. In this paper, we enhance our BN-based approach...
The planning process in autonomic software aims at selecting an action from a finite set of alternatives for adaptation. This is an abstruse problem due to the fact that software behaviour is usually very complex with numerous number of control variables. This research work focuses on proposing a planning process and specifically an action selection technique based on "Reinforcement Learning"...
Self-adaptive software is a closed-loop system which aims at adjusting itself in response to changes at runtime. Such a system is required to monitor domain events, detect significant changes, decide how to react, and act in order to execute the decisions. This paper focuses on the deciding process particularly for application-level adaptation actions. For this purpose, a weighted voting mechanism...
During software evolution, developers modify various modules to handle new requirements or to fix existing bugs. Such changes usually propagate to related modules throughout the system. Program comprehension techniques are able to predict this change propagation phenomenon. In this paper, we introduce a novel approach that predicts the possible affected system modules, given a change in the system...
Self-adaptive software is a closed-loop system aims at altering itself in response to changes at runtime. Such a system, normally, requires monitoring, detecting (analyzing), deciding (planning), and acting (effecting) processes to fulfill adaptation requirements. This research mainly focuses on developing a quality-driven framework to facilitate realizing the deciding process. The framework is required...
Architectural stability refers to the extent software architecture is flexible to endure evolutionary changes while leaving the architecture intact. Approaches to evaluate software architectures for stability can be retrospective or predictive. Retrospective evaluation looks at successive releases of a software system to analyze how smoothly the evolution has taken place. Predictive evaluation examines...
Program componentization has been proved to be an effective way to increase the speed and cost-effectiveness of reusing, maintaining, and understanding existing software systems. JComp is a componentization framework that supports semi-automatically extracting reusable components from an existing Java system and automatically transforming the existing system into a component-based system. Based on...
One of the important activities in re-engineering process is detecting design flaws. Such design flaws prevent an efficient maintenance, and further development of a system. This research proposes a novel metric-based heuristic framework to detect and locate object-oriented design flaws from the source code. It is accomplished by evaluating design quality of an object-oriented system through quantifying...
Autonomic systems encompass elements, components, and sometimes smaller autonomic sub-systems. Composition, integration and orchestration at different levels of such autonomic systems are significant issues in the interoperability of their constituent elements. This research focuses on orchestration as an important process of interoperability in an abstract autonomic system model. Policy-based management...
Our previous work on improving the quality of object-oriented legacy systems includes: i) devising a quality-driven re-engineering framework (L. Tahvildari et al., 2003); ii) proposing a software transformation framework based on soft-goal interdependency graphs to enhance quality (L. Tahvildari and K. Kontogiannis, 2002); and iii) investigating the usage of metrics for detecting potential design...
Set the date range to filter the displayed results. You can set a starting date, ending date or both. You can enter the dates manually or choose them from the calendar.