Download Free Sustainable Software Development Book in PDF and EPUB Free Download. You can read online Sustainable Software Development and write the review.

This book focuses on software sustainability, regarded in terms of how software is or can be developed while taking into consideration environmental, social, and economic dimensions. The sixteen chapters cover various related issues ranging from technical aspects like energy-efficient programming techniques, formal proposals related to energy efficiency measurement, patterns to build energy-efficient software, the role of developers on energy efficient software systems and tools for detecting and refactoring code smells/energy bugs; to human aspects like its impact on software sustainability or the adaptation of ACM/IEEE guidelines for student and professional education and; and an economics-driven architectural evaluation for sustainability. Also aspects as the elements of governance and management that organizations should consider when implementing, assessing and improving Green IT or the relationship between software sustainability and the Corporate Social Responsibility of software companies are included. The chapters are complemented by usage scenarios and experience reports on several domains as cloud applications, agile development or e-Health, among others. As a whole, the chapters provide a complete overview of the various issues related to sustainable software development. The target readership for this book includes CxOs, (e.g. Chief Information Officers, Chief Executive Officers, Chief Technology Officers, etc.) software developers, software managers, auditors, business owners, and quality professionals. It is also intended for students of software engineering and information systems, and software researchers who want to know the state of the art regarding software sustainability.
Delivers the cutting - edge of proven practices crafted to your needs for immediate and long - term success with your development efforts.
This is the first book that presents a comprehensive overview of sustainability aspects in software engineering. Its format follows the structure of the SWEBOK and covers the key areas involved in the incorporation of green aspects in software engineering, encompassing topics from requirement elicitation to quality assurance and maintenance, while also considering professional practices and economic aspects. The book consists of thirteen chapters, which are structured in five parts. First the “Introduction” gives an overview of the primary general concepts related to Green IT, discussing what Green in Software Engineering is and how it differs from Green by Software Engineering. Next “Environments, Processes and Construction” presents green software development environments, green software engineering processes and green software construction in general. The third part, “Economic and Other Qualities,” details models for measuring how well software supports green software engineering techniques and for performing trade-off analyses between alternative green practices from an economic perspective. “Software Development Process” then details techniques for incorporating green aspects at various stages of software development, including requirements engineering, design, testing, and maintenance. In closing, “Practical Issues” addresses the repercussions of green software engineering on decision-making, stakeholder participation and innovation management. The audience for this book includes software engineering researchers in academia and industry seeking to understand the challenges and impact of green aspects in software engineering, as well as practitioners interested in learning about the state of the art in Green in Software Engineering.
Today's programmers don't develop software systems from scratch. instead, they spend their time fixing, extending, modifying, and enhancing existing software. Legacy systems often turn into an unwieldy mess that becomes increasingly difficult to modify, and with architecture that continually accumulates technical debt. Carola Lilienthal has analyzed more than 300 software systems written in Java, C#, C++, PHP, ABAP, and TypeScript and, together with her teams, has successfully refactored them. This book condenses her experience with monolithic systems, architectural and design patterns, layered architectures, domain-driven design, and microservices. With more than 200 color images from real-world systems, good and sub-optimal sample solutions are presented in a comprehensible and thorough way, while recommendations and suggestions based on practical projects allow the reader to directly apply the author's knowledge to their daily work. "Throughout the book, Dr. Lilienthal has provided sound advice on diagnosing, understanding, disentangling, and ultimately preventing the issues that make software systems brittle and subject to breakage. In addition to the technical examples that you'd expect in a book on software architecture, she takes the time to dive into the behavioral and human aspects that impact sustainability and, in my experience, are inextricably linked to the health of a codebase. She also expertly zooms out, exploring architecture concepts such as domains and layers, and then zooms in to the class level where your typical developer works day-to-day. This holistic approach is crucial for implementing long-lasting change." From the Foreword of Andrea Goulet CEO, Corgibytes, Founder, Legacy Code Rocks
Today, software engineers need to know not only how to program effectively but also how to develop proper engineering practices to make their codebase sustainable and healthy. This book emphasizes this difference between programming and software engineering. How can software engineers manage a living codebase that evolves and responds to changing requirements and demands over the length of its life? Based on their experience at Google, software engineers Titus Winters and Hyrum Wright, along with technical writer Tom Manshreck, present a candid and insightful look at how some of the world’s leading practitioners construct and maintain software. This book covers Google’s unique engineering culture, processes, and tools and how these aspects contribute to the effectiveness of an engineering organization. You’ll explore three fundamental principles that software organizations should keep in mind when designing, architecting, writing, and maintaining code: How time affects the sustainability of software and how to make your code resilient over time How scale affects the viability of software practices within an engineering organization What trade-offs a typical engineer needs to make when evaluating design and development decisions
Write maintainable, extensible, and durable software with modern C++. This book is a must for every developer, software architect, or team leader who is interested in good C++ code, and thus also wants to save development costs. If you want to teach yourself about writing clean C++, Clean C++ is exactly what you need. It is written to help C++ developers of all skill levels and shows by example how to write understandable, flexible, maintainable, and efficient C++ code. Even if you are a seasoned C++ developer, there are nuggets and data points in this book that you will find useful in your work. If you don't take care with your code, you can produce a large, messy, and unmaintainable beast in any programming language. However, C++ projects in particular are prone to be messy and tend to slip into bad habits. Lots of C++ code that is written today looks as if it was written in the 1980s. It seems that C++ developers have been forgotten by those who preach Software Craftsmanship and Clean Code principles. The Web is full of bad, but apparently very fast and highly optimized C++ code examples, with cruel syntax that completely ignores elementary principles of good design and well-written code. This book will explain how to avoid this scenario and how to get the most out of your C++ code. You'll find your coding becomes more efficient and, importantly, more fun. What You'll Learn Gain sound principles and rules for clean coding in C++ Carry out test driven development (TDD) Discover C++ design patterns and idioms Apply these design patterns Who This Book Is For Any C++ developer and software engineer with an interest in producing better code.
EVOLVING SOFTWARE PROCESSES The book provides basic building blocks of evolution in software processes, such as DevOps, scaling agile process in GSD, in order to lay a solid foundation for successful and sustainable future processes. One might argue that there are already many books that include descriptions of software processes. The answer is “yes, but.” Becoming acquainted with existing software processes is not enough. It is tremendously important to understand the evolution and advancement in software processes so that developers appropriately address the problems, applications, and environments to which they are applied. Providing basic knowledge for these important tasks is the main goal of this book. Industry is in search of software process management capabilities. The emergence of the COVID-19 pandemic emphasizes the industry’s need for software-specific process management capabilities. Most of today’s products and services are based to a significant degree on software and are the results of largescale development programs. The success of such programs heavily depends on process management capabilities, because they typically require the coordination of hundreds or thousands of developers across different disciplines. Additionally, software and system development are usually distributed across geographical, cultural and temporal boundaries, which make the process management activities more challenging in the current pandemic situation. This book presents an extremely comprehensive overview of the evolution in software processes and provides a platform for practitioners, researchers and students to discuss the studies used for managing aspects of the software process, including managerial, organizational, economic and technical. It provides an opportunity to present empirical evidence, as well as proposes new techniques, tools, frameworks and approaches to maximize the significance of software process management. Audience The book will be used by practitioners, researchers, software engineers, and those in software process management, DevOps, agile and global software development.
This book offers a comprehensive review of sustainability and product design, providing useful information on the relevant regulations and standards for industries to meet increasing market demands for eco-products, while reducing their impact on the environment. The examples and methods presented allow readers to gain insights into sustainable products. The authors also explain how to develop products with sustainability features by applying tools and methods for sustainable design and manufacture. These tools/methods include • Regulations/directives related to sustainable product development • Popular lifecycle analysis software packages • Environmental and social lifecycle impact assessment methods • Lifecycle inventory databases • Eco-point and eco-accounting infrastructure • ICT and traceability technologies for sustainable product development • Sustainable design and manufacture • Integrated approach for sustainable product development A description of each sustainability tool is accompanied by easy-to-understand guidelines as well as sustainable product development methods. Five different case studies are also presented to illustrate how to apply the tools and methods into the development of real sustainable products. In view of the increasing pressure on industries to meet the, sometimes conflicting, demands of the market and environment, this book is a valuable resource for engineers and managers in manufacturing companies wishing to update their knowledge of sustainable product development. It is also suitable for researchers and consultants who are involved or interested in sustainable product development, as well as for students studying sustainable development, production, and engineering management.
A comprehensive guide to building Ruby on Rails apps that can be sustained for many years.
The complexity of software is continuously growing as a result of today’s interconnected business processes. Governance of architecture and technology strategy helps to ensure coherence of software and avoid excessive complexity. At the same time software development needs room for creativity and empowerment to provide solutions to business problems of increasing complexity. The book looks at this software dilemma from the perspectives of CIOs/CTOs, software architects, and auditors. Each of these groups has different interests which need to be considered, reconciled, and balanced. CIOs/CTOs are provided with the boundary conditions they have to establish assuring the achievement of strategic objectives. Architects and auditors find proven concepts for effectively assessing software projects and architectures, as well as for effectively communicating identified issues to responsible persons. The book is based on the author’s long experience in software engineering, governance, and auditing.