دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش: 1 نویسندگان: Coral Calero, Mª Ángeles Moraga, Mario Piattini سری: ISBN (شابک) : 3030699692, 9783030699697 ناشر: Springer سال نشر: 2021 تعداد صفحات: 411 زبان: English فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) حجم فایل: 15 مگابایت
در صورت تبدیل فایل کتاب Software Sustainability به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب پایداری نرم افزار نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
این کتاب بر پایداری نرمافزار تمرکز میکند، با توجه به اینکه نرمافزار چگونه است یا میتوان آن را توسعه داد و در عین حال ابعاد محیطی، اجتماعی و اقتصادی را در نظر گرفت. شانزده فصل موضوعات مرتبط مختلف از جنبههای فنی مانند تکنیکهای برنامهنویسی بهینه انرژی، پیشنهادات رسمی مربوط به اندازهگیری بهرهوری انرژی، الگوهای ساخت نرمافزارهای کارآمد انرژی، نقش توسعهدهندگان در سیستمهای نرمافزاری کارآمد انرژی و ابزارهایی برای شناسایی و بازآفرینی کد را پوشش میدهد. اشکالات بو/انرژی؛ به جنبه های انسانی مانند تأثیر آن بر پایداری نرم افزار یا انطباق دستورالعمل های ACM/IEEE برای آموزش دانشجویی و حرفه ای و. و یک ارزیابی معماری مبتنی بر اقتصاد برای پایداری. همچنین جنبه هایی به عنوان عناصر حاکمیتی و مدیریتی که سازمان ها باید در هنگام پیاده سازی، ارزیابی و بهبود فناوری اطلاعات سبز یا رابطه بین پایداری نرم افزار و مسئولیت اجتماعی شرکت های نرم افزاری در نظر بگیرند، شامل می شود. فصلها با سناریوهای استفاده و گزارشهای تجربی در حوزههای مختلف مانند برنامههای کاربردی ابری، توسعه چابک یا سلامت الکترونیک و سایر موارد تکمیل میشوند. به طور کلی، فصلها نمای کلی کاملی از مسائل مختلف مربوط به توسعه نرمافزار پایدار ارائه میکنند.
خوانندگان هدف این کتاب شامل CxOها میشود، (مانند افسران ارشد اطلاعات، مدیران ارشد اجرایی، افسران ارشد فناوری، و غیره) توسعه دهندگان نرم افزار، مدیران نرم افزار، حسابرسان، صاحبان کسب و کار، و متخصصان کیفیت. همچنین برای دانشجویان مهندسی نرمافزار و سیستمهای اطلاعاتی و محققان نرمافزاری در نظر گرفته شده است که میخواهند از آخرین هنر در مورد پایداری نرمافزار مطلع شوند.
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.
Preface Overview Organization Target Readership Acknowledgments Contents Contributors List of Abbreviations Chapter 1: Introduction to Software Sustainability 1.1 Introduction 1.2 Sustainability 1.2.1 IS Sustainability 1.2.2 ICT/IT Sustainability 1.2.3 Software Sustainability 1.2.4 Software Engineering Sustainability 1.3 Dimensions of Software Sustainability 1.3.1 Sustainability Dimensions and the UN´s SDGs 1.4 Conclusions References Chapter 2: Criteria for Sustainable Software Products: Analyzing Software, Informing Users, and Politics 2.1 Introduction 2.2 Related Work 2.2.1 Sustainable Software 2.2.2 Measurement of Software Sustainability 2.2.3 Energy-Efficient Programming 2.3 Criteria for Sustainable Software Products 2.3.1 Criteria Categories 2.3.2 Discussion of the Criteria 2.4 Measurement Method 2.5 Energy-Efficient Software Development and Deployment 2.6 Conclusion and Outlook References Chapter 3: GSMP: Green Software Measurement Process 3.1 Introduction 3.2 Green Software Measurement Process 3.2.1 Roles 3.2.2 Phases 3.2.3 Summary of Roles Involvement in GSMP 3.2.4 Considerations for the Validity of Energy Consumption Measurements of Software 3.3 Application of the GSMP 3.3.1 Design 3.3.2 Subject and Analysis Units 3.3.3 Field Procedure and Data Collection 3.3.4 Intervention in Case Study 3.3.5 Case Study Analysis and Lessons Learned 3.4 Conclusions References Chapter 4: FEETINGS: Framework for Energy Efficiency Testing to Improve eNvironmental Goals of the Software 4.1 Introduction 4.2 FEETINGS 4.2.1 Conceptual Component 4.2.2 Methodological Component 4.2.3 Technological Component 4.2.3.1 EET (Energy Efficiency Tester) 4.2.3.2 ELLIOT 4.3 Application of FEETINGS: A Case Study of the Energy Consumed by Translators 4.4 Best Practices Guideline on Software Sustainability 4.5 Conclusions References Chapter 5: Patterns and Energy Consumption: Design, Implementation, Studies, and Stories 5.1 Introduction 5.2 Code-Level Patterns 5.2.1 Patterns 5.3 Energy Design Patterns 5.3.1 Patterns 5.4 Object-Oriented Patterns 5.5 Patterns in Context 5.6 Conclusions References Chapter 6: Small Changes, Big Impacts: Leveraging Diversity to Improve Energy Efficiency 6.1 Introduction 6.2 Software Energy Consumption 6.2.1 Gauging Energy Consumption 6.3 Design Decisions 6.3.1 I/O Constructs 6.3.2 Collections Constructs 6.3.3 Concurrent Programming Constructs 6.4 Recommending Java Collections 6.4.1 Evaluation 6.4.2 Findings 6.5 Energy Profiling in the Wild 6.5.1 A Collaborative Approach to Android Energy Consumption Optimization 6.6 Conclusion References Chapter 7: Tool Support for Green Android Development 7.1 Introduction 7.2 Related Work 7.3 Methodology 7.3.1 Research Questions 7.3.2 Search Query 7.3.3 Screening of Publications 7.3.3.1 Duplicate Removal 7.3.3.2 Inclusion Criteria 7.3.3.3 Exclusion Criteria 7.3.3.4 Quality Criteria 7.3.4 Classification and Analysis 7.4 Results 7.4.1 Results of Screening 7.4.2 Classification and Analysis 7.5 Discussion 7.5.1 Support Tools for Code Smell/Energy Bug Detection and Refactoring 7.5.2 Support Tools for Third-Party Library Detection and Migration 7.6 Threats to Validity 7.7 Conclusions References Chapter 8: Architecting Green Mobile Cloud Apps 8.1 Introduction 8.2 Green Software 8.2.1 Definition 8.2.2 Green Software Objectives 8.2.3 Green Software Approaches 8.2.3.1 Conceptual Approaches 8.2.3.2 Algorithmic Approaches 8.2.3.3 Augmentation Approaches 8.3 Mobile Cloud Applications 8.3.1 MCA Offloading Schemes 8.3.1.1 Identification of Offloadable Task (Manual vs Automated Transformation) 8.3.1.2 Remote Execution of Offloadable Task (Partitioning vs Cloning) 8.3.1.3 Decision Making (Static vs Dynamic Thresholds) 8.3.2 MCA Environmental Factors 8.3.2.1 Mobile CPU Availability 8.3.2.2 Mobile Memory Availability 8.3.2.3 Cloud CPU Availability 8.3.2.4 Cloud Memory Availability 8.3.2.5 Network Bandwidth 8.3.2.6 Network Latency 8.3.2.7 Data Size 8.3.3 MCA-Associated Green Metrics 8.3.3.1 Mobile Performance 8.3.3.2 Mobile Energy 8.3.3.3 Cloud Resource 8.3.3.4 Software Availability 8.3.4 Application Taxonomy 8.3.4.1 Computation-Intensive Applications 8.3.4.2 Data-Intensive Applications 8.3.4.3 Hybrid Applications 8.4 MCA Optimization Approach 8.4.1 Gaps in Existing Approaches 8.4.1.1 Challenges of Offloadable Tasks 8.4.1.2 Challenges of the Decision Maker 8.4.1.3 Challenges of Offloading Mechanism 8.4.2 Considerations for Improved Solutions 8.5 MCA Evaluation Approach 8.5.1 Gaps in the Existing Approach 8.5.1.1 Inconsistency in Evaluation Results of Scenarios for an Offloading Scheme 8.5.1.2 Variability of Architecture Scenarios (Making It Difficult to Compare Between Offloading Schemes) 8.5.1.3 Coarse Granularity of Evaluation 8.5.2 Methodology for a Solution 8.5.2.1 Behavior-Driven Development (BDD) 8.5.2.2 Full-Tier as the New Fine-Grained Test Coverage for MCA 8.6 Summary References Chapter 9: Sustainability: Delivering Agility´s Promise 9.1 Introduction 9.2 Sustainability 9.2.1 Business and Sustainability 9.2.2 ICT/Technology and Sustainability 9.3 Agile and Sustainability 9.3.1 Our Highest Priority Is to Satisfy the Customer Through Early and Continuous Delivery of Valuable Software 9.3.2 Welcome Changing Requirements, Even Late in Development: Agile Processes Harness Change for the Customer´s Competitive A... 9.3.3 Deliver Working Software Frequently, from a Couple of Weeks to a Couple of Months, with a Preference to the Shorter Time... 9.3.4 Business People and Developers Must Work Together Daily Throughout the Project 9.3.5 Build Projects Around Motivated Individuals. Give Them the Environment and Support They Need, and Trust Them to Get the ... 9.3.6 The Most Efficient and Effective Method of Conveying Information to and Within a Development Team Is Face-to-Face Conver... 9.3.7 Working Software Is the Primary Measure of Progress 9.3.8 Agile Processes Promote Sustainable Development. The Sponsors, Developers, and Users Should Be Able to Maintain a Consta... 9.3.9 Continuous Attention to Technical Excellence and Good Design Enhances Agility 9.3.10 Simplicity-the Art of Maximizing the Amount of Work Not Done-Is Essential 9.3.11 The Best Architectures, Requirements, and Designs Emerge from Self-Organizing Teams 9.3.12 At Regular Intervals, the Team Reflects on How to Become More Effective, Then Tunes and Adjusts Its Behavior Accordingly 9.3.13 Summary of the Agile Manifesto´s Perspective on Sustainability 9.4 Case Studies: Leveraging Agility for Sustainability 9.4.1 Agility and Partial Sustainability 9.4.1.1 The Social Pillar 9.4.1.2 The Environmental Pillar 9.4.1.3 The Economical Pillar 9.4.2 Company-Wide Agility and Holistic Sustainability 9.4.2.1 Patagonia 9.4.2.2 DSM-Niaga 9.4.2.3 Sparda-Bank Munich 9.5 Conclusion 9.5.1 Criticism 9.5.2 Outlook References Chapter 10: Governance and Management of Green IT 10.1 Introduction 10.2 ``Governance and Management Framework for Green IT´´ (GMGIT) 10.2.1 Framework Structure 10.2.2 Governance and Management Components of Green IT 10.2.2.1 Principles, Policies, and Procedures 10.2.2.2 Organizational Structures 10.2.2.3 People, Skills, and Competencies 10.2.2.4 Culture, Ethics, and Behavior 10.2.2.5 Information 10.2.2.6 Services, Infrastructure, and Applications 10.2.2.7 Processes 10.2.3 Evolution of the GMGIT 10.3 Auditing the Green IT with the GMGIT 10.3.1 Audit Framework of Green IT 10.3.2 ISO/IEC 33000-Based Maturity Model for Green IT 10.3.3 Audits Performed During the Development of the GMGIT 10.4 Using the GMGIT for Green IT Improvement 10.5 Conclusions References Chapter 11: Sustainable Software Engineering: Curriculum Development Based on ACM/IEEE Guidelines 11.1 Introduction 11.2 Related Work 11.2.1 Software Quality and Sustainability 11.2.2 Sustainability in SE Curricula 11.2.3 Key Competencies in Sustainability 11.3 Sustainable Software Engineering Curricula Outline 11.3.1 Fundamental Concepts of Sustainability 11.3.2 Core SE Courses 11.3.3 Technical Elective Courses 11.3.4 Nontechnical Elective Courses 11.3.5 Project-Based Courses and Industrial Practice/Internships 11.4 Discussion 11.5 Conclusion and Outlook References Chapter 12: The Impact of Human Factors on Software Sustainability 12.1 Introduction 12.2 Empirical Study Setup 12.2.1 Research Question 12.2.2 Survey Structure 12.3 Survey Exercise 12.4 Results 12.4.1 Answer to RQs 12.4.2 Implications of Results 12.5 Related Work 12.6 Conclusion and Future Work References Chapter 13: Social Sustainability in the e-Health Domain via Personalized and Self-Adaptive Mobile Apps 13.1 Introduction 13.2 Background 13.3 Related Work 13.4 Reference Architecture 13.5 Components Supporting Self-Adaptation 13.5.1 AI Personalization Adaptation 13.5.2 User Driven Adaptation Manager 13.5.3 Smart Objects Manager 13.5.4 Internet Connectivity Manager 13.5.5 Environment Driven Adaptation Manager 13.6 Goal Model 13.7 Methodology 13.8 Viewpoint Definition 13.9 Scenario-Based Evaluation 13.10 Discussion 13.11 Conclusions and Future Work References Chapter 14: Human Sustainability in Software Development 14.1 Introduction 14.2 Outsourcing Approaches That Consider CSR 14.3 Impact Sourcing: Efficacy, Benefits, and Challenges 14.3.1 Efficacy of Impact Sourcing for Marginalized People 14.3.2 Benefits of Impact Sourcing for Clients 14.3.3 Challenges of Impact Sourcing for Clients 14.4 Ethical Outsourcing: Benefits and Challenges 14.4.1 Benefits of Ethical Outsourcing for Clients 14.4.2 Challenges of Ethical Outsourcing for Clients 14.5 Fair Trade Software: Benefits and Challenges 14.5.1 Benefits of Fair Trade Software 14.5.2 Challenges of Fair Trade Software 14.5.3 Challenges of Cross-Border Development 14.6 Conclusions and Future Research References Chapter 15: The Importance of Software Sustainability in the CSR of Software Companies 15.1 Introduction 15.2 Overview of the CSR in Software Industries 15.2.1 Software Companies: A Representative Selection 15.2.2 Analyzing the CSR Software Sustainability Actions in Software Companies: Work Method 15.2.3 Analyzing the Companies´ CSR from the Point of View of Software Sustainability 15.2.3.1 Analysis of Software Sustainability Actions 15.2.3.2 Analysis of Software Sustainability Actions 15.2.3.3 Environmental Dimension Actions 15.3 Specific Actions for Software Industries 15.4 Analyzing and Improving the CSR of a Specific Company 15.5 Conclusions and Future Work References Chapter 16: Sustainability ArchDebts: An Economics-Driven Approach for Evaluating Sustainable Requirements 16.1 Introduction 16.2 Background 16.2.1 Sustainability and Goal-Oriented Requirements 16.2.2 Architectural Evaluation 16.2.3 Portfolio Management and Requirements 16.2.4 Related Work 16.3 The Problem 16.3.1 Requirements for the Model 16.3.2 Requirements and Value Component Relationship Model 16.4 Sustainability: A Technical Debt Perspective 16.4.1 Step 1: Elicit and Prioritize the Goals, Cost, and the Desired Sustainability Threshold for These Goals 16.4.2 Step 2: Develop Architectural Strategies for the Goals, Elicit Their Parameter Values, and Define the Architectural Dec... 16.4.3 Step 3: Determine Architectural Strategies´ Impact on Sustainability 16.4.4 Step 4: Elicit Sustainability Goals, Design Decisions, Obstacle, and Risk Analysis 16.4.5 Step 5: Determine the Expected Benefit of Each Design Option 16.4.6 Step 6: Analyzing the Costs, Benefits, Risks, and Value Using Portfolio Thinking 16.4.7 Step 7: Identify the Optimal Architecture, Calculate Debt, and Rank Other Architectures 16.5 Evaluation 16.5.1 The Problem 16.5.2 Design Decision Evaluation 16.5.2.1 Step 1: Elicit and Prioritize the Goals, Cost, and the Desired Sustainability Threshold for These Goals 16.5.2.2 Step 2: Develop Architectural Strategies for the Goals, Elicit Their Parameter Values, and Define the Architectural D... 16.5.2.3 Step 3: Determine Architectural Strategies´ Impact on Sustainability 16.5.2.4 Step 4: Elicit Sustainability Goals, Design Decisions, Obstacle, and Risk Analysis 16.5.2.5 Step 5: Determine the Expected Benefit of Each Design Option 16.5.2.6 Step 6: Analyzing the Costs, Benefits, and Risks Using Portfolio Thinking 16.5.2.7 Step 7: Identify the Optimal Architecture, Calculate Debt, and Rank Other Architectures 16.5.3 Findings 16.5.4 Threats to Validity 16.6 Discussions 16.7 Conclusion References