João Miguel Franco

Learn More
Quantitative assessment of quality attributes (i.e., non-functional requirements, such as performance, safety or reliability) of software architectures during design supports important early decisions and validates the quality requirements established by the stakeholder. In current practice, these quality requirements are most often manually checked, which(More)
The quantitative assessment of quality attributes on software architectures allow to support early decisions in the design phase, certify quality requirements established by stakeholders and improve software quality in future architectural changes. In literature, only few of these quality requirements are verified and most often they are manually checked,(More)
Software engineers and practitioners regard software architecture as an important artifact, providing the means to model the structure and behavior of systems and to support early decisions on dependability and other quality attributes. Since systems are most often subject to evolution, the software architecture can be used as an early indicator on the(More)
Quality attributes (e.g., performance, reliability and security) are detailed in a system's architecture and determine the fitness of purpose and satisfaction of stakeholders regarding the final product. Although research has provided methods to assess different quality attributes, few checks are automatically performed. Manually checking a quality(More)
The ever-growing complexity of software systems makes it increasingly challenging to foresee at design time all interactions between a system and its environment. Most self-adaptive systems trigger adaptations through operators that are statically configured for specific environment and system conditions. However, in the occurrence of uncertain conditions,(More)
Reliability prediction methods support early decision on software development by offering means for architects to reason and test their own designs. However, most of today's reliability prediction methods model the failure behavior as two states: functioning properly or failed, neglecting other failure modes. In addition, the lack of realistic case-studies(More)
  • 1