This open access book provides information how to choose and collect the appropriate metrics for a software project in an organization. There are several kinds of metrics, based on the analysis of source code and developed for different programming paradigms such as structured programming and object-oriented programming (OOP). This way, the book follows three main objectives: (i) to identify existing and easily-collectible measures, if possible in the early phases of software development, for predicting and modeling both the traditional attributes of software systems and attributes specifically related to their efficient use of resources, and to create new metrics for such purposes; (ii) to describe ways to collect these measures during the entire lifecycle of a system, using minimally-invasive monitoring of design-time processes, and consolidate them into conceptual frameworks able to support model building by using a variety of approaches, including statistics, data mining and computational intelligence; and (iii) to present models and tools to support design time evolution of systems based on design-time measures and to empirically validate them.
The book provides researchers and advanced professionals with methods for understanding the full implications of alternative choices and their relative attractiveness in terms of enhancing system resilience. It also explores the simultaneous use of multiple models that reflect different system interpretations or stakeholder perspectives.