lnu.sePublications
Change search
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • harvard1
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf
Designing Self-Adaptive Software Systems with Reuse
Linnaeus University, Faculty of Technology, Department of computer science and media technology (CM). (AdaptWise)ORCID iD: 0000-0002-7555-7300
2018 (English)Doctoral thesis, comprehensive summary (Other academic)
Abstract [en]

Modern software systems are increasingly more connected, pervasive, and dynamic, as such, they are subject to more runtime variations than legacy systems. Runtime variations affect system properties, such as performance and availability. The variations are difficult to anticipate and thus mitigate in the system design.

Self-adaptive software systems were proposed as a solution to monitor and adapt systems in response to runtime variations. Research has established a vast body of knowledge on engineering self-adaptive systems. However, there is a lack of systematic process support that leverages such engineering knowledge and provides for systematic reuse for self-adaptive systems development. 

This thesis proposes the Autonomic Software Product Lines (ASPL), which is a strategy for developing self-adaptive software systems with systematic reuse. The strategy exploits the separation of a managed and a managing subsystem and describes three steps that transform and integrate a domain-independent managing system platform into a domain-specific software product line for self-adaptive software systems.

Applying the ASPL strategy is however not straightforward as it involves challenges related to variability and uncertainty. We analyzed variability and uncertainty to understand their causes and effects. Based on the results, we developed the Autonomic Software Product Lines engineering (ASPLe) methodology, which provides process support for the ASPL strategy. The ASPLe has three processes, 1) ASPL Domain Engineering, 2) Specialization and 3) Integration. Each process maps to one of the steps in the ASPL strategy and defines roles, work-products, activities, and workflows for requirements, design, implementation, and testing. The focus of this thesis is on requirements and design.

We validate the ASPLe through demonstration and evaluation. We developed three demonstrator product lines using the ASPLe. We also conducted an extensive case study to evaluate key design activities in the ASPLe with experiments, questionnaires, and interviews. The results show a statistically significant increase in quality and reuse levels for self-adaptive software systems designed using the ASPLe compared to current engineering practices.

Place, publisher, year, edition, pages
Växjö: Linnaeus University Press, 2018. , p. 56
Series
Linnaeus University Dissertations ; 318/2018
Keywords [en]
Variability, Uncertainty, Self-Adaptation, Software Reuse, Software Design, Methodology, Domain Engineering.
National Category
Software Engineering Computer Sciences Computer and Information Sciences
Research subject
Computer and Information Sciences Computer Science, Computer Science; Computer and Information Sciences Computer Science; Computer Science, Software Technology
Identifiers
URN: urn:nbn:se:lnu:diva-74443ISBN: 978-91-88761-51-4 (print)ISBN: 978-91-88761-52-1 (electronic)OAI: oai:DiVA.org:lnu-74443DiVA, id: diva2:1209012
Public defence
2018-04-19, 13:15 (English)
Supervisors
Available from: 2018-05-22 Created: 2018-05-21 Last updated: 2018-05-22Bibliographically approved
List of papers
1. Autonomic Software Product Lines (ASPL)
Open this publication in new window or tab >>Autonomic Software Product Lines (ASPL)
2010 (English)In: ECSA '10 Proceedings of the Fourth European Conference on Software Architecture: Companion Volume / [ed] Carlos E. Cuesta, ACM Press, 2010, p. 324-331Conference paper, Published paper (Refereed)
Abstract [en]

We describe ongoing work on a variability mechanism for Autonomic Software Product Lines (ASPL). The autonomic software product lines have self-management characteristics that make product line instances more resilient to context changes and some aspects of product line evolution. Instances sense the context, selects and bind the best component variants to variation-points at run-time. The variability mechanism we describe is composed of a profile guided dispatch based on off-line and on-line training processes. Together they form a simple, yet powerful variability mechanism that continuously learns, which variants to bind given the current context and system goals.

Place, publisher, year, edition, pages
ACM Press, 2010
National Category
Computer Sciences
Research subject
Computer and Information Sciences Computer Science, Computer Science
Identifiers
urn:nbn:se:lnu:diva-7157 (URN)10.1145/1842752.1842812 (DOI)2-s2.0-78149405707 (Scopus ID)978-1-4503-0179-4 (ISBN)
Conference
4th European Conference on Software Architecture (ECSA 2010)
Available from: 2010-08-12 Created: 2010-08-12 Last updated: 2018-05-21Bibliographically approved
2. Harnessing Variability in Product-lines of Self-adaptive Software Systems
Open this publication in new window or tab >>Harnessing Variability in Product-lines of Self-adaptive Software Systems
2015 (English)In: Proceedings of the 19th International Conference on Software Product Line: SPLC '15, ACM Press, 2015, p. 191-200Conference paper, Published paper (Refereed)
Abstract [en]

This work studies systematic reuse in the context of self-adaptive software systems. In our work, we realized that managing variability for such platforms is different compared to traditional platforms, primarily due to the run-time variability and system uncertainties. Motivated by the fact that recent trends show that self-adaptation will be used more often in future system generation and that software reuse state-of-practice or research do not provide sufficient support, we have investigated the problems and possibly resolutions in this context. We have analyzed variability for these systems, using a systematic reuse prism, and identified a research gap in variability management. The analysis divides variability handling into four activities: (1) identify variability, (2) constrain variability, (3) implement variability, and (4) manage variability. Based on the findings we envision a reuse framework for the specific domain and present an example framework that addresses some of the identified challenges. We argue that it provides basic support for engineering self-adaptive software systems with systematic reuse. We discuss some important avenues of research for achieving the vision.

Place, publisher, year, edition, pages
ACM Press, 2015
Keywords
self-adaptive software systems, software reuse, variability analysis
National Category
Computer Sciences
Research subject
Computer and Information Sciences Computer Science, Computer Science; Computer Science, Software Technology
Identifiers
urn:nbn:se:lnu:diva-51780 (URN)10.1145/2791060.2791089 (DOI)2-s2.0-84982794653 (Scopus ID)978-1-4503-3613-0 (ISBN)
Conference
19th International Conference on Software Product Line, SPLC ’15
Funder
VINNOVA
Available from: 2016-03-31 Created: 2016-03-31 Last updated: 2018-05-21Bibliographically approved
3. Architectural Reasoning Support for Product-Lines of Self-adaptive Software Systems: A Case Study
Open this publication in new window or tab >>Architectural Reasoning Support for Product-Lines of Self-adaptive Software Systems: A Case Study
2015 (English)In: Software Architecture: 9th European Conference, ECSA 2015, Dubrovnik/Cavtat, Croatia, September 7-11, 201 / [ed] Danny Weyns, Raffaela Mirandola, Ivica Crnkovic, 2015, p. 20-36Conference paper, Published paper (Refereed)
Abstract [en]

Software architecture serves as a foundation for the design and development of software systems. Designing an architecture requires extensive analysis and reasoning. The study presented herein focuses on the architectural analysis and reasoning in support of engineering self-adaptive software systems with systematic reuse. Designing self-adaptive software systems with systematic reuse introduces variability along three dimensions; adding more complexity to the architectural analysis and reasoning process. To this end, the study presents an extended Architectural Reasoning Framework with dedicated reasoning support for self-adaptive systems and reuse. To evaluate the proposed framework, we conducted an initial feasibility case study, which concludes that the proposed framework assists the domain architects to increase reusability, reduce fault density, and eliminate differences in skills and experiences among architects, which were our research goals and are decisive factors for a system's overall quality.

Series
Lecture Notes in Computer Science, ISSN 0302-9743 ; 9278
National Category
Computer and Information Sciences
Research subject
Computer and Information Sciences Computer Science
Identifiers
urn:nbn:se:lnu:diva-48821 (URN)10.1007/978-3-319-23727-5_2 (DOI)000365861700002 ()2-s2.0-84975686953 (Scopus ID)978-3-319-23727-5 (ISBN)978-3-319-23726-8 (ISBN)
Conference
9th European Conference on Software Architecture (ECSA), SEP 07-11, 2015, Cavtat, CROATIA
Funder
VINNOVA
Available from: 2016-01-20 Created: 2016-01-15 Last updated: 2018-05-21Bibliographically approved
4. ASPLe: a methodology to develop self-adaptive software systems with systematic reuse
Open this publication in new window or tab >>ASPLe: a methodology to develop self-adaptive software systems with systematic reuse
(English)Manuscript (preprint) (Other academic)
Abstract [en]

More than two decades of research have demonstrated an increasing need for software systems to be self-adaptive. Self-adaptation is required to deal with runtime dynamics which are difficult to predict before deployment. A vast body of knowledge to develop Self-Adaptive Software Systems (SASS) has been established. We, however, discovered a lack of process support to develop self-adaptive systems with reuse. To that end, we propose a domain-engineering based methodology, Autonomic Software Product Lines engineering (ASPLe), which provides step-by-step guidelines for developing families of SASS with systematic reuse. The evaluation results from a case study show positive effects on quality and reuse for self-adaptive systems designed using the ASPLe compared to state-of-the-art engineering practices.

Keywords
Software design, Uncertainty, Variability, Self-adaptation, Software reuse, Domain engineering, Software product lines
National Category
Computer and Information Sciences Software Engineering
Research subject
Computer and Information Sciences Computer Science, Computer Science; Computer and Information Sciences Computer Science
Identifiers
urn:nbn:se:lnu:diva-74441 (URN)
Available from: 2018-05-21 Created: 2018-05-21 Last updated: 2018-06-05Bibliographically approved

Open Access in DiVA

Doctoral Thesis (Comprehensive Summary)(2285 kB)59 downloads
File information
File name FULLTEXT02.pdfFile size 2285 kBChecksum SHA-512
a9ba2dd1c75a2e6e73942e166e6cf80aa24d492e6a218adbdea5f3a3ba29bc67e7389437fdae20127b434a4e3a0a5ff6c4557b082b089cdb2e53ca4a246ca4aa
Type fulltextMimetype application/pdf

Authority records BETA

Abbas, Nadeem

Search in DiVA

By author/editor
Abbas, Nadeem
By organisation
Department of computer science and media technology (CM)
Software EngineeringComputer SciencesComputer and Information Sciences

Search outside of DiVA

GoogleGoogle Scholar
Total: 59 downloads
The number of downloads is the sum of all downloads of full texts. It may include eg previous versions that are now no longer available

isbn
urn-nbn

Altmetric score

isbn
urn-nbn
Total: 376 hits
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • harvard1
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf