Developing Sustainable and Energy-Efficient Software Systems

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

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.


Author(s): Artem Kruglov, Giancarlo Succi
Series: SpringerBriefs in Computer Science
Publisher: Springer
Year: 2023

Language: English
Pages: 85
City: Cham

Preface
Contents
1 Concept and Principles of Measurement
1.1 Definitions
1.2 Meaning and Advantages
1.3 Representation Condition
1.4 Measurement Characteristics
1.5 Kinds of Metrics
1.6 Measurement Scales
1.7 Software Metrics
1.7.1 Lines of Code (LOC)
1.7.2 Cyclomatic Complexity
1.7.3 Fan In and Fan Out
1.7.4 Maintainability Index (MI)
1.7.5 Quality Metrics
1.7.5.1 Product Quality Metrics
1.7.5.2 Process Quality Metrics
1.8 Rationale for Noninvasive Measurement
1.9 Conclusion
2 Metrics of Sustainability and Energy Efficiency of Software Products and Process
2.1 Early-Phase Metrics
2.2 Late-Phase Metrics
2.3 Metrics of Energy Consumption
2.4 Conclusion
3 System Energy Consumption Measurement
3.1 Introduction
3.2 Energy Measurements Methods
3.2.1 Hardware Tools
3.2.2 Software Tools
3.2.3 Hybrid Tools
3.3 The Challenges of Estimating the Consumed Energy in Software Development
3.4 Machine Learning-Based Approach for Energy Consumption Measurement
3.4.1 Methodology
3.4.2 Data Collection
3.4.3 Data Preprocessing
3.4.4 Machine Learning Models
3.4.5 Performance Evaluation
3.4.6 Experimental Results
3.5 Conclusion
4 GQM and Recommender System for Relevant Metrics
4.1 Introduction
4.2 Concept of Goal-Question-Metric
4.3 The Goal-Question-Metric Process
4.4 Recommender Systems
4.5 Metrics Recommender
4.5.1 Dataset
4.5.2 Preprocessing
4.5.3 Recommender Algorithm
4.5.4 Conclusion
5 Metrics Representation and Dashboards
5.1 Literature Review
5.1.1 Review of Literature on Dashboards
5.1.2 Types of Dashboards
5.1.3 Purposes/Objectives of Dashboards
5.1.4 Visualization Methods of Dashboards
5.2 Methodology and Implementation
5.2.1 Innometrics Project
5.2.2 Visualization for Developers
5.2.3 Visualization for Managers
5.2.4 Common Visual and Functional Features
5.2.5 Architecture, Implementation
5.2.6 Conclusion
6 Architecture of AISEMA System
6.1 Data Collectors
6.1.1 Quality Attributes
6.1.2 Features
6.1.3 Internal Design
6.1.3.1 Graphic Interface
6.1.3.2 Data Collectors
6.1.3.3 Persistence Layer and API Controller
6.2 Backend System
6.2.1 Quality Attributes
6.2.2 Features
6.2.3 Internal Design
6.2.3.1 Main Server
6.2.3.2 Database
6.2.3.3 External Agents
6.3 Conclusion
References