The use of general descriptive names, registered names, trademarks, etc. in this publication does not imply, even in the absence of a specific statement, that such names are exempt from the relevant protective laws and regulations and therefore free for general use.
Cover design: KünkelLopka GmbHPrinted on acid-free paper Springer is part of Springer Science+Business Media (www.springer.com)
Vittorio, Antinisca and Paola
Preface
Goal of the BookIn the last decade there has been a growing interest in the research and software industry communities toward techniques, methods and tools that allow one to manage system performance concerns in the software developer domain. Poor performance can often be the cause of software project failure, and the need to address performance concerns during software development is fully acknowledged. One of the main impediments to progress in this field lies in the different cultures in software and performance and in the lack of standard practices and tool support. One promising direction to bridge this gap is the one described in this book. Model-based Software Performance Analysis is the research domain that introduces performance concerns into the scope of software models, thus allowing the developer to carry out performance analysis all along the software lifecycle.The goal of the book is to provide the cross-knowledge that allows developers to face software performance issues since the very early phases of the software development. On one hand, we provide the basic concepts of performance analysis. On the other hand, we introduce the readers to the problem of making a performance analysis a common practice in the software development process and describe the most representative methodologies proposed to annotate and translate software models into performance models.For the sake of book uniformity, we do not report here applications of approaches to case studies from the real world (except for a few cases), because the intent of the book is to provide an introduction to this domain. We leave to possible future editions the treatment of real case studies and the lessons learned from them.
A Bird's-Eye View of Chapters ContentsChapter 1 embeds the software performance analysis activity in the wider framework of non-functional validation. It explains how different non-functional attributes contribute to the quality of a software product. Thereafter we clarify the vii viii Preface difference between software performance analysis (where static/dynamic software models are explicitly built and play a crucial role in the analysis process) and system performance analysis (where the software is only meant as a system synthetic workload).Chapter 2 gives an overview of the most widely adopted software notations, including the techniques for extending UML. Note that this chapter does not aim at presenting notational details, as most of the readers should be familiar with the majority of this chapter concepts.Chapter 3 gives an overview of the most widely adopted performance notations. T...
The ability to validate software systems early in the development lifecycle is becoming crucial. While early validation of functional requirements is supported by well known approaches, the validation of non-functional requirements, such as reliability, is not. Early assessment of non-functional requirements can be facilitated by automated transformation of software models into (mathematical) notations suitable for validation. These type of validation approaches are usually as "transparent" to the developers as possible. Consequently, most software developers find them user friendly and easy to adopt.In this paper we introduce a methodology that starts with the analysis of the UML model of software architecture followed by the bayesian framework for reliability prediction. We utilize three different types of UML diagrams: Use Case, Sequence and Deployment diagrams. They are annotated with reliability related attributes. Unlike traditional reliability growth models, which are applicable late in the lifecycle, our approach bases system reliability prediction on component and connector failure rates. In mature development environments, these may be available as the result of reuse. Throughout the lifecycle, as the developers improve their understanding of failure rates and their operational usage, system reliability prediction becomes more precise. We demonstrate the approach through a case study based on a simple web-based transaction processing system.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.