Software Durability: Concepts and Practices

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"

Software evolution is a time-consuming and costly process due to its complex architecture. Software designers need to produce software that is effective as well as durable. Durability and effectiveness of software are the foremost priorities and challenges for developers.

This book comprises real-life case studies of durability issues and their solutions that bring to light loopholes and show how to fix them, to enhance durability. Existing literature on software durability tells us that the first step is to recognise the problem. It gives information about durability, risk, estimation, knowledge, and governance based on five main characteristics: dependability, trustworthiness, usability, security, and human trust. The book serves as a complete package to get acquainted with assurance and risk management from a software durability perspective. It enhances our understanding of the concept of durability, its multi-dimensional approach, threats and their types, risk, mitigation techniques, and suggestive measures.

The book reviews the emerging trends in the software development process in the context of durability concepts such as automated code reviews, coding standards, and software durability standards and their testing, cost management solutions, low-code or no-code solutions, and durability assurance.

Author(s): Rajeev Kumar, Suhel Ahmad Khan, Raees Ahmad Khan
Edition: 1
Publisher: CRC Press/Science Publishers
Year: 2023

Language: English
Pages: 330
City: Boca Raton
Tags: Software Durability; Computer Software; Quality Control; Software Maintenance; Software Architecture; Software Development

Cover
Title Page
Copyright Page
Dedication
Preface
Acknowledgments
Table of Contents
Key Features of the Book
Chapter 1 Software Durability Concepts
1.1 Objectives
1.2 Durability: The Need for a New Paradigm
1.2.1 Emergence of Software Durability
1.2.2 Pertinent Gaps
1.2.3 Formulation of the Issue
1.3 Software Perspective
1.3.1 Software Components
1.3.2 Software Characteristics
1.3.3 Software Types
1.3.4 Software Myths
1.4 Software Durability
1.4.1 Definition
1.4.2 Durability Factors
1.4.3 Durability Planning
1.5 Durability Evaluation
1.6 Models of Durable Software
1.7 Experts’ View
1.8 Conclusion
Points to Remember
Review Questions
Objective Type Questions
Short Answer Type Questions
Descriptive Questions
References
Useful Links
Chapter 2 Assuring Software Durability
2.1 Objectives
2.2 Five Touch Points for Software Durability
2.2.1 Software Dependability
2.2.2 Software Trustworthiness
2.2.3 Software Usability
2.2.4 Software Security
2.2.5 Human Trust
2.3 Quality Assurance: Durability Perspective
2.3.1 Software Quality-Durability Assurance
2.3.2 Major Assurance Activities
2.3.3 Benefits
2.3.4 Disadvantage
2.4 Durability Assurance Framework
2.4.1 The Framework
2.4.2 Premise
2.4.3 Generic Guidelines
2.4.4 Framework Development
2.5 Risk Management Activities in the Early Development of Durable Software Design
2.5.1 Design Planning
2.5.2 Design Inputs
2.5.3 Design Outputs
2.5.4 Design Verification
2.5.5 Design Validation
2.5.6 Design Finalization and Packaging
2.5.7 Design Transfer
2.5.8 Design Review
2.6 Importance of the Frameworks
2.7 Conclusion
Points to Remember
Review Questions
Objective Type Questions
Short Answer Type Questions
Descriptive Questions
References
Useful Links
Chapter 3 Integrating Dependability with Software Durability
3.1 Objectives
3.2 Fundamental Principles
3.2.1 The Evolution of Dependability Concept
3.2.2 Dependability Features
3.2.3 Dependability and Durability Characteristics
3.2.4 Systems, Software, Dependability, and Durability
3.3 Dependability Analysis into Durability Concept
3.3.1 Anticipating Faults
3.3.2 Generalizing the Notion of Hazard
3.3.3 Fault Tree Analysis
3.3.4 Failure Modes, Effects, and Criticality Analysis
3.3.5 Hazard and Operability Analysis
3.4 The Beginnings of Durability and Dependability Integration
3.4.1 Faults and Durable Software Cycle
3.4.2 Formal Techniques
3.4.3 Durability-Dependability Unified Model
3.4.4 Verification by Model Checking
3.4.5 Correctness by Construction
3.4.6 Managing Fault Avoidance and Elimination
3.4.7 Misconceptions
3.4.8 Prescriptive Standards
3.5 Conclusion
Points to Remember
Review Questions
Objective Type Questions
Short Answer Type Questions
Descriptive Questions
References
Useful Links
Chapter 4 Integrating Trustworthiness with Software Durability
4.1 Objectives
4.2 Fundamental Principles
4.2.1 The Evolution of Trustworthiness Concepts
4.2.2 Trustworthiness and Durability Characteristics
4.2.3 Systems, Software, Trustworthiness, and Durability
4.3 Designing for Trustworthy Software: Durability Perspective
4.3.1 Trustworthy Software
4.3.2 Extended Trustworthy Computing Initiative
4.3.3 Robust Software in Durability Context
4.4 Tools and Techniques of Durable Design for Trustworthy Software
4.4.1 The Eight Basic (B8) Tools
4.4.2 Financial Perspective
4.5 Conclusion
Points to Remember
Review Questions
Objective Type Questions
Short Answer Type Questions
Descriptive Questions
References
Useful Links
Chapter 5 Integrating Usability with Software Durability
5.1 Objectives
5.2 Fundamental Principles
5.2.1 The Evolution of Usability Concept
5.2.2 Usability Analysis into Durability Concept
5.2.3 Durability and Usability Characteristics
5.2.4 Systems, Software, Usability and Durability
5.3 Usability Evaluation: Durability Perspective
5.3.1 User-Based Evaluations
5.3.2 Inspection-Based Evaluations
5.3.3 Model-Based Evaluations
5.4 Usability Management Framework
5.5 Hierarchical Usability Model
5.6 Conclusion
Points to Remember
Review Questions
Objective Type Questions
Short Answer Type Questions
Descriptive Questions
References
Useful Links
Chapter 6 Integrating Security with Software Durability
6.1 Objectives
6.2 Fundamental Principles
6.2.1 The Evolution of Security Concept
6.2.2 Security Analysis into Durability Concept
6.2.3 Security and Durability Characteristics
6.2.4 Systems, Software, Security and Durability
6.3 Previous Models/Frameworks
6.4 Challenges for Security-Durability Modeling
6.4.1 Types of Information Loss
6.4.2 Security Challenges: Durability Perspective
6.5 Security Durability Risks at the Design Phase
6.5.1 Risk Scenario of Durable Software
6.5.2 Security Risks Identification at Design-level
6.5.3 Need for Identification
6.5.4 Major Security Risks in the Design Phase
6.5.5 Relation between Security Risk and Security Characteristics
6.6 Managing Software Security Risk: Durability Perspective
6.6.1 Development Risk
6.6.2 Development Environment
6.6.3 Program Constraints
6.6.4 Governance, Management, and Compliance
6.7 Security Durability Blueprints
6.7.1 Identify Goals
6.7.2 Security Durability Management
6.7.3 Security Durability Metrics
6.7.4 Security Durability Assurance
6.7.5 Change Management
6.8 Security Durability Integrate with Development Process
6.8.1 Secure and Durable Serviceability
6.8.2 Service Oriented Design Properties: Durability Perspective
6.8.3 Requirement Gathering
6.8.4 Simplify Security Durability
6.9 Practices for Integrating Durability Concept
6.9.1 Quantum Security Technique
6.9.2 Usable-Security of Software
6.9.3 Sustainable-Security of Software
6.9.4 Security Tactics of Software
6.10 Conclusion
Points to Remember
Review Questions
Objective Type Questions
Short Answer Type Questions
Descriptive Questions
References
Useful Links
Chapter 7 Integrating Human Trust with Software Durability
7.1 Objectives
7.2 Fundamental Principles
7.2.1 The Evolution of the Human Trust Concept
7.2.2 Human Trust Analysis into Durability Concept
7.2.3 Durability and Human Trust Characteristics
7.2.4 Systems, Software, Human Trust, and Durability
7.3 Organizational Roles and Responsibilities
7.3.1 Pre-Development
7.3.2 Account Manager
7.3.3 Business Analyst
7.3.4 Software Architect
7.3.5 Delivery Manager
7.3.6 Domain Expert
7.3.7 Software Developer
7.4 Significant Elements of Human Trust Management
7.4.1 Human Computer Trust
7.4.2 System Trust Solutions
7.4.3 Managing Human Trust
7.4.4 Human Computer Trust Model
7.4.5 The Importance of Human Trust
7.5 Conclusion
Points to Remember
Review Questions
Objective Type Questions
Short Answer Type Questions
Descriptive Questions
References
Useful Links
Chapter 8 Software Durability Assessment Methodology
8.1 Objectives
8.2 Software Durability Assessment
8.3 Measurement Categories
8.3.1 Indirect Parameters
8.3.2 Direct Parameters
8.4 Multi Criteria Decision Analysis
8.5 Pertinent Work on Decision Making Analysis
8.6 Durability Assessment through Decision Making Technique
8.7 Durability Assessment Mechanism
8.7.1 Mechanism Selection and Description
8.7.2 Implementation Procedure
8.8 Benefits of Durability Assessment
8.8.1 Source Code Durability
8.8.2 Documentation, User Interface, and Durability
8.8.3 Security and Privacy
8.8.4 Durable Performance
8.8.5 Business Logic
8.8.6 Architecture Durability
8.8.7 Data Durability
8.8.8 Interoperability
8.9 Conclusion
Points to Remember
Review Questions
Objective Type Questions
Short Answer Type Questions
Descriptive Questions
References
Useful Links
Chapter 9 A Case Study on Software Durability Assessment
9.1 Objectives
9.2 Evaluating the Weights of Characteristics
9.2.1 Construction of Pair-Wise Comparison Matrices
9.2.2 Aggregation of Pair-Wise Comparison Matrices
9.2.3 Defuzzification Procedure and Independent Weights
9.2.4 Dependent Weights of Each Characteristic
9.3 Procedure for Improving Durability of Software
9.4 Ratings of Characteristics
9.4.1 Fuzzified Average Ratings
9.4.2 Defuzzification and Independent Ratings
9.4.3 Dependent Rating of Each Characteristic
9.5 Assessment of Software Durability
9.6 Sensitivity Analysis
9.7 Statistical Investigation
9.7.1 Design Module of an Experiment
9.7.2 Pre-Tryout
9.7.3 Review and Revision
9.7.4 Tryout
9.7.5 Statistical Analysis
9.8 Conclusion
Points to Remember
Review Questions
Objective Type Questions
Short Answer Type Questions
Descriptive Questions
References
Useful Links
Chapter 10 Software Durability Testing
10.1 Objectives
10.2 Durability Testing
10.2.1 Purpose
10.2.2 Challenges
10.2.3 Benefits and Limitations
10.3 Basic Steps to Perform Durability Testing
10.3.1 Establish the Test Environment
10.3.2 Creation of Test Plan and Test Scenarios
10.3.3 Test Cycle Estimation
10.3.4 Risk Analysis
10.3.5 Test Schedule
10.3.6 Test Execution
10.3.7 Review and Revision
10.3.8 Test Cycle Closure
10.4 Durability Testing Execution Procedure
10.5 Types of Durability Testing
10.5.1 Testing Load
10.5.2 Testing Stress
10.5.3 Testing Performance
10.5.4 Testing Volume
10.5.5 Testing Scalability
10.5.6 Testing Reliability
10.5.7 Testing Traceability
10.5.8 Testing Interpretability
10.6 Basics of Code Durability
10.6.1 Durable Code
10.6.2 Code Reviews
10.6.3 Understanding Code Review
10.6.4 Common Code Review Approaches
10.6.5 Importance of Code Durability
10.6.6 Measuring Code Durability
10.6.7 Characteristics of Code Durability
10.6.8 Maintaining Code Durability
10.6.9 Improving Code Durability
10.7 Building Durable Software through Source Code Analysis
10.8 The Gap in Practices
10.9 The Framework
10.9.1 Phase-I: Execute and Monitor
10.9.2 Phase-II: Classify and Control
10.9.3 Phase-III: Refine and Manage
10.10 Significance of the Framework
10.11 Conclusion
Points to Remember
Review Questions
Objective Type Questions
Short Answer Type Questions
Descriptive Questions
References
Useful Links
Chapter 11 Future Prospects of Durability into Software Engineering
11.1 Objectives
11.2 Issues and Challenges
11.3 Durability Meets the Practitioners’ Expectations
11.3.1 Get Practitioner’s Software to Market Faster
11.3.2 Bring in Domain Knowledge
11.3.3 Core Expertise
11.3.4 Cut Costs
11.3.5 Take it a Notch Higher
11.4 Needs and Importance
11.4.1 Software is Now Cheap and Fast
11.4.2 Non-durable Software is Liable to be discarded by Users
11.4.3 Software Failure Costs may be Enormous
11.4.4 Non-durable Software is Difficult to Improve
11.4.6 Non-durable Software may Cause Information Loss
11.4.5 Inefficiency is Predictable
11.5 Evolving Trends in the Development Process and Integration with Durability Concept
11.5.1 Automated Code Reviews
11.5.2 Coding Standards
11.5.3 Cybersecurity with DevSecOps
11.5.4 Software Durability Standards
11.5.5 Cost Management Solution
11.5.6 Low-code or No-code Solutions
11.5.7 Durability Assurance Solutions
11.5.8 Cross-Platform Development Tools
11.5.9 Continuous Delivery and Deployment
11.6 Significant Contributions of the Book
11.7 Impact of the Book
11.8 Successful Strategies for Software Developers
11.9 Recommendations for Security Practitioners
11.10 Conclusion
Points to Remember
Review Questions
Objective Type Questions
Short Answer Type Questions
Descriptive Questions
References
Useful Links
Index