382 research outputs found

    Dynamic decision-making based on NFR for managing software variability and configuration selection

    Get PDF
    Due to dynamic variability, identifying the specific conditions under which non-functional requirements (NFRs) are satisfied may be only possible at runtime. Therefore, it is necessary to consider the dynamic treatment of relevant information during the requirements specifications. The associated data can be gathered by monitoring the execution of the application and its underlying environment to support reasoning about how the current application configuration is fulfilling the established requirements. This paper presents a dynamic decision-making infrastructure to support both NFRs representation and monitoring, and to reason about the degree of satisfaction of NFRs during runtime. The infrastructure is composed of: (i) an extended feature model aligned with a domain-specific language for representing NFRs to be monitored at runtime; (ii) a monitoring infrastructure to continuously assess NFRs at runtime; and (iii) a exible decision-making process to select the best available configuration based on the satisfaction degree of the NRFs. The evaluation of the approach has shown that it is able to choose application configurations that well fit user NFRs based on runtime information. The evaluation also revealed that the proposed infrastructure provided consistent indicators regarding the best application configurations that fit user NFRs. Finally, a benefit of our approach is that it allows us to quantify the level of satisfaction with respect to NFRs specification

    A survey on preferences of quality attributes in the decision-making for self-adaptive systems:The bad, the good and the ugly

    Get PDF
    Different techniques have been used to specify preferences for quality attributes and decision-making strategies of self-adaptive systems (SAS). These preferences are defined during requirement specification and design time. Further, it is well known that correctly identifying the preferences associated with the quality attributes is a major difficulty. This is exacerbated in the case of SAS, as the preferences defined at design time may not apply to contexts found at runtime. This paper aims at making an exploration of the research landscape that have addressed decision-making and quality attribute preferences specification for selfadaptation, in order to identify new techniques that can improve the current state-of-the-art of decision-making to support self-adaptation. In this paper we (1) review different techniques that support decisionmaking for self-adaptation and identify limitations with respect to the identification of preferences and weights (i.e. the research gap), (2) identify existing solutions that deal with current limitations

    Defining and validating a multimodel approach for product architecture derivation and improvement

    Full text link
    The final publication is available at Springer via http://dx.doi.org/10.1007/978-3-642-41533-3_24Software architectures are the key to achieving the non-functional requirements (NFRs) in any software project. In software product line (SPL) development, it is crucial to identify whether the NFRs for a specific product can be attained with the built-in architectural variation mechanisms of the product line architecture, or whether additional architectural transformations are required. This paper presents a multimodel approach for quality-driven product architecture derivation and improvement (QuaDAI). A controlled experiment is also presented with the objective of comparing the effectiveness, efficiency, perceived ease of use, intention to use and perceived usefulness with regard to participants using QuaDAI as opposed to the Architecture Tradeoff Analysis Method (ATAM). The results show that QuaDAI is more efficient and perceived as easier to use than ATAM, from the perspective of novice software architecture evaluators. However, the other variables were not found to be statistically significant. Further replications are needed to obtain more conclusive results.This research is supported by the MULTIPLE project (MICINN TIN2009-13838) and the Vali+D fellowship program (ACIF/2011/235).González Huerta, J.; Insfrán Pelozo, CE.; Abrahao Gonzales, SM. (2013). Defining and validating a multimodel approach for product architecture derivation and improvement. En Model-Driven Engineering Languages and Systems. Springer. 388-404. https://doi.org/10.1007/978-3-642-41533-3_24S388404Ali-Babar, M., Lago, P., Van Deursen, A.: Empirical research in software architecture: opportunities, challenges, and approaches. Empirical Software Engineering 16(5), 539–543 (2011)Ali-Babar, M., Zhu, L., Jeffery, R.: A Framework for Classifying and Comparing Software Architecture Evaluation Methods. In: 15th Australian Software Engineering Conference, Melbourne, Australia, pp. 309–318 (2004)Basili, V.R., Rombach, H.D.: The TAME project: towards improvement-oriented software environments. IEEE Transactions on Software Engineering 14(6), 758–773 (1988)Barkmeyer, E.J., Feeney, A.B., Denno, P., Flater, D.W., Libes, D.E., Steves, M.P., Wallace, E.K.: Concepts for Automating Systems Integration NISTIR 6928. National Institute of Standards and Technology, U.S. Dept. of Commerce (2003)Bosch, J.: Design and Use of Software Architectures. Adopting and Evolving Product-Line Approach. Addison-Wesley, Harlow (2000)Botterweck, G., O’Brien, L., Thiel, S.: Model-driven derivation of product architectures. In: 22th Int. Conf. on Automated Software Engineering, New York, USA, pp. 469–472 (2007)Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., Stal, M.: Pattern-Oriented software architecture, vol. 1: A System of Patterns. Wiley (1996)Cabello, M.E., Ramos, I., Gómez, A., Limón, R.: Baseline-Oriented Modeling: An MDA Approach Based on Software Product Lines for the Expert Systems Development. In: 1st Asia Conference on Intelligent Information and Database Systems, Vietnam (2009)Carifio, J., Perla, R.J.: Ten Common Misunderstandings, Misconceptions, Persistent Myths and Urban Legends about Likert Scales and Likert Response Formats and their Antidotes. Journal of Social Sciences 3(3), 106–116 (2007)Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. Addison-Wesley, Boston (2007)Czarnecki, K., Kim, C.H.: Cardinality-based feature modeling and constraints: A progress report. In: Int. Workshop on Software Factories, San Diego-CA (2005)Datorro, J.: Convex Optimization & Euclidean Distance Geometry. Meboo Publishing (2005)Davis, F.D.: Perceived usefulness, perceived ease of use and user acceptance of information technology. MIS Quarterly 13(3), 319–340 (1989)Douglass, B.P.: Real-Time Design Patterns: Robust Scalable Architecture for Real-Time Systems. Addison-Wesley, Boston (2002)Feiler, P.H., Gluch, D.P., Hudak, J.: The Architecture Analysis & Design Language (AADL): An Introduction. Tech. Report CMU/SEI-2006-TN-011. SEI, Carnegie Mellon University (2006)Gómez, A., Ramos, I.: Cardinality-based feature modeling and model-driven engineering: Fitting them together. In: 4th Int. Workshop on Variability Modeling of Software Intensive Systems, Linz, Austria (2010)Gonzalez-Huerta, J., Insfran, E., Abrahao, S.: A Multimodel for Integrating Quality Assessment in Model-Driven Engineering. In: 8th International Conference on the Quality of Information and Communications Technology (QUATIC 2012), Lisbon, Portugal, September 3-6 (2012)Gonzalez-Huerta, J., Insfran, E., Abrahao, S., McGregor, J.D.: Non-functional Requirements in Model-Driven Software Product Line Engineering. In: 4th Int. Workshop on Non-functional System Properties in Domain Specific Modeling Languages, Insbruck, Austria (2012)Guana, V., Correal, V.: Variability quality evaluation on component-based software product lines. In: 15th Int. Software Product Line Conference, Munich, Germany, vol. 2, pp. 19.1–19.8 (2011)Insfrán, E., Abrahão, S., González-Huerta, J., McGregor, J.D., Ramos, I.: A Multimodeling Approach for Quality-Driven Architecture Derivation. In: 21st Int. Conf. on Information Systems Development (ISD 2012), Prato, Italy (2012)ISO/IEC 25000:2005, Software Engineering. Software product Quality Requirements and Evaluation SQuaRE (2005)Kazman, R., Klein, M., Clements, P.: ATAM: Method for Architecture Evaluation (CMU/SEI-2000-TR-004, ADA382629). Software Engineering Institute, Carnegie Mellon University, Pittsburgh (2000), http://www.sei.cmu.edu/publications/documents/00.reports/00tr004.htmlKim, T., Ko, I., Kang, S., Lee, D.: Extending ATAM to assess product line architecture. In: 8th IEEE Int. Conference on Computer and Information Technology, Sydney, Australia, pp. 790–797 (2008)Kitchenham, B.A., Pfleeger, S.L., Hoaglin, D.C., Rosenber, J.: Preliminary Guidelines for Empirical Research in Software Engineering. IEEE Transactions on Software Engineering 28(8) (2002)Kruchten, P.B.: The Rational Unified Process: An Introduction. Addison-Wesley (1999)Martensson, F.: Software Architecture Quality Evaluation. Approaches in an Industrial Context. Ph. D. thesis, Blekinge Institute of Technology, Karlskrona, Sweden (2006)Maxwell, K.: Applied Statistics for Software Managers. Software Quality Institute Series. Prentice-Hall (2002)Olumofin, F.G., Mišic, V.B.: A holistic architecture assessment method for software product lines. Information and Software Technology 49, 309–323 (2007)Perovich, D., Rossel, P.O., Bastarrica, M.C.: Feature model to product architectures: Applying MDE to Software Product Lines. In: IEEE/IFIP & European Conference on Software Architecture, Helsinki, Findland, pp. 201–210 (2009)Robertson, S., Robertson, J.: Mastering the requirements process. ACM Press, New York (1999)Roos-Frantz, F., Benavides, D., Ruiz-Cortés, A., Heuer, A., Lauenroth, K.: Quality-aware analysis in product line engineering with the orthogonal variability model. Software Quality Journal (2011), doi:10.1007/s11219-011-9156-5Saaty, T.L.: The Analytical Hierarchical Process. McGraw- Hill, New York (1990)Taher, L., Khatib, H.E., Basha, R.: A framework and QoS matchmaking algorithm for dynamic web services selection. In: 2nd Int. Conference on Innovations in Information Technology, Dubai, UAE (2005)Wohlin, C., Runeson, P., Host, M., Ohlsson, M.C., Regnell, B., Weslen, A.: Experimentation in Software Engineering - An Introduction. Kluwer (2000

    Ontological approach to derive product configurations from a Software Product Line Reference Architecture

    Get PDF
    Abstract Software Product Lines (SPL) based on reuse, claim to improve evolution, time to market and decrease software development costs. Concrete software products or systems, members of the SPL family, are derived by instantiating a generic Reference Architecture (RA), holding common and variant components. The construction of RA is a complex and costly task, as well as its usage for product derivation, due to the huge number of variants, essentially caused by non functional requirements variability. In consequence, the selection of an RA instance or Feasible Solution (FS), meeting RA constraints and customer requirements, is not straightforward. In this work RA is built by a bottom-up process from existing products; RA and its instances are represented by a non-directed connected graph. The HIS-RA Ontology also represents RA and captures Healthcare Integrated Information Systems (HIS) domain knowledge. Moreover, FS must be connected (the induced graph by FS in RA has no isolated components), consistent (it verifies consistency rules among FS components), and working (it meets domain functional (FR) and non functional (NFR) requirements). The main goal of this paper is to define a semiautomatic process (FFSP), to derive consistency rules using the HIS-RA Ontology built-in reasoning capabilities, to construct consistent, connected and working FS. Software quality is considered by FFSP in the traceability between FR and NFR, and it is specified by ISO/IEC 25010, to guarantee RA evolution and the overall concrete product configuration quality. FFSP is validated on a HIS domain a case study

    Ontological approach to derive product configurations from a Software Product Line Reference Architecture

    Get PDF
    Software Product Lines (SPL) based on reuse, claim to improve evolution, time to market and decrease software development costs. Concrete software products or systems, members of the SPL family, are derived by instantiating a generic Reference Architecture (RA), holding common and variant components. The construction of RA is a complex and costly task, as well as its usage for product derivation, due to the huge number of variants, essentially caused by non functional requirements variability. In consequence, the selection of an RA instance or Feasible Solution (FS), meeting RA constraints and customer requirements, is not straightforward. In this work RA is built by a bottom-up process from existing products; RA and its instances are represented by a non-directed connected graph. The HIS-RA Ontology also represents RA and captures Healthcare Integrated Information Systems (HIS) domain knowledge. Moreover, FS must be connected (the induced graph by FS in RA has no isolated components), consistent (it verifies consistency rules among FS components), and working (it meets domain functional (FR) and non functional (NFR) requirements). The main goal of this paper is to define a semiautomatic process (FFSP), to derive consistency rules using the HIS-RA Ontology built-in reasoning capabilities, to construct consistent, connected and working FS. Software quality is considered by FFSP  in the traceability between FR and NFR, and it is specified by ISO/IEC 25010, to guarantee RA evolution and the overall concrete product configuration quality. FFSP is validated on a HIS domain a case study

    Requirements-aware models to support better informed decision-making for self-adaptation using partially observable Markov decision processes

    Get PDF
    A self-adaptive system (SAS) is a system that can adapt its behaviour in re- sponse to environmental fluctuations at runtime and its own changes. Therefore, the decision-making process of a SAS is challenged by the underlying uncertainty. In this dissertation, the author focuses on the kind of uncertainty associated with the satisficement levels of non-functional requirements (NFRs) given a set of design decisions reflected on a SAS configuration. Specifically, the focus of this work is on the specification and runtime handling of the uncertainty related to the levels of satisficement of the NFRs when new evidence is collected, and that may create the need of adaptation based on the reconfiguration of the system. Specifically, this dissertation presents two approaches that address decision-making in SASs in the face of uncertainty. First, we present RE-STORM, an approach to support decision- making under uncertainty, which uses the current satisficement level of the NFRs in a SAS and the required trade-offs, to therefore guide its self-adaptation. Second, we describe ARRoW, an approach for the automatic reassessment and update of initial preferences in a SAS based on the current satisficement levels of its NFRs. We eval- uate our proposals using a case study, a Remote Data Mirroring (RDM) network. Other cases have been used as well in different publications. The results show that under uncertain environments, which may have not been foreseen in advance, it is feasible that: (a) a SAS reassess the preferences assigned to certain configurations and, (b) reconfigure itself at runtime in response to adverse conditions, in order to keep satisficing its requirements

    Preserving the Quality of Architectural Tactics in Source Code

    Get PDF
    In any complex software system, strong interdependencies exist between requirements and software architecture. Requirements drive architectural choices while also being constrained by the existing architecture and by what is economically feasible. This makes it advisable to concurrently specify the requirements, to devise and compare alternative architectural design solutions, and ultimately to make a series of design decisions in order to satisfy each of the quality concerns. Unfortunately, anecdotal evidence has shown that architectural knowledge tends to be tacit in nature, stored in the heads of people, and lost over time. Therefore, developers often lack comprehensive knowledge of underlying architectural design decisions and inadvertently degrade the quality of the architecture while performing maintenance activities. In practice, this problem can be addressed through preserving the relationships between the requirements, architectural design decisions and their implementations in the source code, and then using this information to keep developers aware of critical architectural aspects of the code. This dissertation presents a novel approach that utilizes machine learning techniques to recover and preserve the relationships between architecturally significant requirements, architectural decisions and their realizations in the implemented code. Our approach for recovering architectural decisions includes the two primary stages of training and classification. In the first stage, the classifier is trained using code snippets of different architectural decisions collected from various software systems. During this phase, the classifier learns the terms that developers typically use to implement each architectural decision. These ``indicator terms\u27\u27 represent method names, variable names, comments, or the development APIs that developers inevitably use to implement various architectural decisions. A probabilistic weight is then computed for each potential indicator term with respect to each type of architectural decision. The weight estimates how strongly an indicator term represents a specific architectural tactics/decisions. For example, a term such as \emph{pulse} is highly representative of the heartbeat tactic but occurs infrequently in the authentication. After learning the indicator terms, the classifier can compute the likelihood that any given source file implements a specific architectural decision. The classifier was evaluated through several different experiments including classical cross-validation over code snippets of 50 open source projects and on the entire source code of a large scale software system. Results showed that classifier can reliably recognize a wide range of architectural decisions. The technique introduced in this dissertation is used to develop the Archie tool suite. Archie is a plug-in for Eclipse and is designed to detect wide range of architectural design decisions in the code and to protect them from potential degradation during maintenance activities. It has several features for performing change impact analysis of architectural concerns at both the code and design level and proactively keep developers informed of underlying architectural decisions during maintenance activities. Archie is at the stage of technology transfer at the US Department of Homeland Security where it is purely used to detect and monitor security choices. Furthermore, this outcome is integrated into the Department of Homeland Security\u27s Software Assurance Market Place (SWAMP) to advance research and development of secure software systems
    • …
    corecore