Please use this identifier to cite or link to this item: https://hdl.handle.net/10316/29594
Title: Automated Reliability Prediction and Analysis from Software Architectures
Authors: Franco, João Miguel da Costa Sousa 
Orientador: Rela, Mário
Barbosa, Raul
Keywords: Reliability; Automated; Prediction; Analysis; Software Architecture
Issue Date: 27-Apr-2016
Citation: FRANCO, João Miguel da Costa Sousa - Automated reliability prediction and analysis from software architectures. Coimbra : [s.n.], 2016. Tese de doutoramento. Disponível na WWW: http://hdl.handle.net/10316/29594
Project: info:eu-repo/grantAgreement/FCT/SFRH/SFRH/BD/89702/2012/PT/AVAILABILITY EVALUATION OF SOFTWARE ARCHITECTURES THROUGH FORMAL METHODS 
Abstract: The quality of a software is determined by how it meets non-functional requirements such as performance, reliability, availability, maintainability and other ‘-ilities’. Depending on the application context, certain qualities are more critical to attain than others. As an example, a web-server processing large amounts of data should present qualities regarding to performance, while a software applied to a medical context must assure that no human life is at risk and as such, should comply to safety as a quality requirement. In a software engineering perspective, quality requirements should be assessed throughout the software development life-cycle. In an early stage, quality assessment supports design decisions and promotes analysis of possible alternatives. During the implementation or testing stages, project managers may confirm that the design meets the developed product and assure that it will conform to the stakeholder’s requirements. Regarding evolutionary stages, architects can also compare different designs and decide for the most suitable solution ta- king into account the desired quality attributes. During the development of a software system, neglecting the assessment of the quality requirements may lead, sooner or later, to the developed product failing to achieve one or more non-functional attributes desired by the stakeholder. Consequently, the development process returns to a previous phase for re-designing, re-implement and re-test a new solution to solve the problem. In short, it will involve more time, effort and money, causing more costs to the whole software project. Software architecture plays an important role in the achievement of non-functional attributes. Designers use architectures to codify non- functional properties and employ good design practices. In addition, it allows to maintain the traceability of the project through its lifespan and also serve as a form of communication between stakeholders, developers and maintainers. Software architectures can be considered one of the first documents in the project to structure the system, since allows to describe the development plans and specify rules, properties and architectural styles to attain specific quality attributes. For these reasons, the existent techniques to assess quality attributes use software architectures to obtain information about the system and provide accurate quantitative results. The problem addressed by this thesis resides in the fact that in today’s world most of the methods to assess quality attributes from a software architecture are still manually performed. To quantitatively assess an architecture’s quality attribute, designers have to build mathematical models through manual tasks and rebuild them for every change per- formed in the architecture. As any other manual task, building such models is error-prone, time consuming and can be almost unfeasible for large and complex systems. With this in mind, this thesis proposes to fill a gap in research by investigating towards a method that automatically assesses the reli- ability as a quality attribute from a software architecture. In particular, we exploit the formalisms of Architecture Description Languages (ADLs) to automatically generate mathematical models ex- pressing the reliability behavior of a system. Then, we extended the notion of ‘automated assessment’ to perform a thorough analysis to identify architectural weak points that are affecting the system. This analysis aims to provide information for architects about reliability improvements and suggest alternatives. With the goal of providing an assisting tool to aid architects in the design process, we implemented a plugin integrated in a ADL design tool. This plugin aims to make our automated approach available for architects to test and analyze their designs regarding reliability. In addition, we showed the different application contexts of our approach by including it in the reasoning process of self-adaptive systems. The results showed an improvement in the overall system quality when comparing to the traditional planning approaches. To conclude, we validated our method through a set of experiments that put into comparison our method with others that used manual approaches to assess reliability. In this work we pursue the motivation of contributing with a set of methods to give support for practitioners and researchers to avoid, prevent and detect undesired or unfeasible architectural designs. Moreover, we intend to promote the development of software with better quality and assure that it meets the desired quality requirements during the development process.
Description: Tese de doutoramento em Ciências e Tecnologias da Informação, apresentada ao Departamento de Engenharia Informática da Faculdade de Ciências e Tecnologias da Universidade de Coimbra
URI: https://hdl.handle.net/10316/29594
Rights: openAccess
Appears in Collections:FCTUC Eng.Informática - Teses de Doutoramento

Files in This Item:
Show full item record

Google ScholarTM

Check


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.