UID:
almahu_9948026538902882
Format:
1 online resource (0 p.)
Edition:
1st edition
ISBN:
0-12-802541-7
Content:
Software Quality Assurance in Large Scale and Complex Software-intensive Systems presents novel and high-quality research related approaches that relate the quality of software architecture to system requirements, system architecture and enterprise-architecture, or software testing. Modern software has become complex and adaptable due to the emergence of globalization and new software technologies, devices and networks. These changes challenge both traditional software quality assurance techniques and software engineers to ensure software quality when building today (and tomorrow’s) adaptive, context-sensitive, and highly diverse applications. This edited volume presents state of the art techniques, methodologies, tools, best practices and guidelines for software quality assurance and offers guidance for future software engineering research and practice. Each contributed chapter considers the practical application of the topic through case studies, experiments, empirical validation, or systematic comparisons with other approaches already in practice. Topics of interest include, but are not limited, to: quality attributes of system/software architectures; aligning enterprise, system, and software architecture from the point of view of total quality; design decisions and their influence on the quality of system/software architecture; methods and processes for evaluating architecture quality; quality assessment of legacy systems and third party applications; lessons learned and empirical validation of theories and frameworks on architectural quality; empirical validation and testing for assessing architecture quality. Focused on quality assurance at all levels of software design and development Covers domain-specific software quality assurance issues e.g. for cloud, mobile, security, context-sensitive, mash-up and autonomic systems Explains likely trade-offs from design decisions in the context of complex software system engineering and quality assurance Includes practical case studies of software quality assurance for complex, adaptive and context-critical systems
Note:
Description based upon print version of record.
,
Front Cover -- Software Quality Assurance -- Copyright Page -- Contents -- List of Contributors -- Biography -- Deployability -- Release Plan -- Moving Through the Tool Chain -- Trade-offs -- General Scenarios and Tactics -- Microservices -- Continuous Deployment -- Roll Back -- The Number of Quality Attributes Is Growing -- References -- Foreword -- References -- Preface -- Introduction -- Why a New Book on Software Quality -- Book Outline -- 1 Quality concerns in large-scale and complex software-intensive systems -- 1.1 Introduction -- 1.2 Software Quality Management -- 1.3 Software Quality Models -- 1.4 Addressing System Qualities -- 1.5 Assessing System Qualities -- 1.5.1 Assessment Processes -- 1.5.2 Metrics and Measurements -- 1.6 Current Challenges and Future Directions of Software Quality -- 1.7 Conclusion -- References -- 2 An introduction to modern software quality assurance -- 2.1 Introduction -- 2.2 Requirement Conformance Versus Customer Satisfaction -- 2.3 Measurement -- 2.4 Quality Perspectives -- 2.5 Quality Models -- 2.6 Non-Functional Requirements -- 2.7 Cost of Quality -- 2.8 Verification and Validation -- 2.9 Role of Formal Methods -- 2.10 Role of Testing and Automated Testing -- 2.11 Reliability -- 2.12 Security -- 2.13 Safety -- 2.14 Reviews and Usability -- 2.15 Reviews and Postmortems -- 2.16 User Experience -- 2.17 Social Media, Cloud Computing, and Crowdsourcing -- 2.18 Maintenance and Change Management -- 2.19 Defect Analysis and Process Improvement -- 2.20 Role of Product and Process Metrics -- 2.21 Statistical SQA -- 2.22 Change Management -- 2.23 Agile Development Processes -- 2.24 Conclusions/Best Practices -- References -- 3 Defining software quality characteristics to facilitate software quality control and software process improvement -- 3.1 Overview -- 3.2 Process Based Approaches to Software Quality.
,
3.3 Review of the Structure and Utility of Software Quality characterization Models -- 3.3.1 Quality Factor Perspectives and Definitions -- 3.3.2 Defining Criteria for Quality Factors -- 3.3.3 Metrics for Defining the Presence of Quality Factors -- 3.3.3.1 Metric versus measurement -- 3.4 Defining an Organization's Software Quality Characterization Model -- 3.4.1 Step 1: Document the Quality Factors and Model Hierarchy -- 3.4.2 Step 2: Document the Quality Characterization Model's Internal Metrics -- 3.4.3 Step 3: Document the Quality Characterization Model's External Metrics -- 3.4.3.1 Which external metrics should be documented as requirements? -- 3.4.3.2 Which external metrics should be subjected to dynamic testing? -- 3.5 Software Quality Control's Utilization of the Quality Characterization Model -- 3.5.1 Systems Analysis -- 3.5.2 Systems Design -- 3.5.3 Development -- 3.5.4 Testing the Presence of External Metrics for a Given Quality Factor -- 3.6 SPI Utilization of the Quality Characterization Model -- 3.6.1 Measuring and Monitoring Quality Factors and Related Metrics -- 3.6.2 Process Improvements Related to Software Quality Characterization Models -- 3.7 Concluding Remarks -- References -- 4 Quality management and software process engineering -- 4.1 Motivation -- 4.2 Our Notion of Process -- 4.3 Quality Management -- 4.4 Software Process (SP) -- 4.5 Software Quality -- 4.6 Quality Management Through SP Engineering -- 4.6.1 Localizing Focus on Quality -- 4.6.1.1 Requirements engineering and management -- 4.6.1.2 Engineering technical specifications -- 4.6.1.3 System architectural design -- 4.6.1.4 System engineering design -- 4.6.1.5 Software architectural design -- 4.6.1.6 Software engineering design -- 4.6.1.7 Software construction engineering -- 4.6.1.8 Software installation engineering -- 4.6.1.9 Software commissioning engineering.
,
4.6.1.10 Software operations engineering -- 4.6.1.11 Software maintenance engineering -- 4.6.1.12 Software re(verse) engineering -- 4.6.2 Controls Based on "Progress" and Life cycle Models of SP -- 4.6.3 Process Quality and Quality Management -- 4.6.4 Contextual Constraints -- 4.7 Conclusion -- References -- 5 Architecture viewpoints for documenting architectural technical debt -- 5.1 Introduction -- 5.2 Background and Related Work -- 5.2.1 Architectural Technical Debt -- 5.2.2 Technical Debt Documentation -- 5.3 Typical Stakeholders and Concerns -- 5.3.1 ATD Stakeholders -- 5.3.2 Concerns on ATD -- 5.4 ATD Viewpoints -- 5.4.1 ATD Detail Viewpoint -- 5.4.2 ATD Decision Viewpoint -- 5.4.3 ATD-Related Component Viewpoint -- 5.4.4 ATD Distribution Viewpoint -- 5.4.5 ATD Stakeholder Involvement Viewpoint -- 5.4.6 ATD Chronological viewpoint -- 5.5 Case Study -- 5.5.1 Study Objective and Research Questions -- 5.5.2 Study Execution -- 5.5.2.1 Case description -- 5.5.2.2 Data collection -- 5.5.2.2.1 Data to be collected -- 5.5.2.2.2 Data collection method -- 5.5.2.2.3 Data collection process -- 5.5.3 Results -- 5.5.3.1 Understandability of ATD viewpoints (RQ1) -- 5.5.3.2 Ease of collecting the required information and documenting ATD views (RQ2) -- 5.5.3.3 Usefulness in understanding ATD (RQ3) -- 5.5.4 Interpretation -- 5.5.4.1 Interpretation of the results regarding RQ1 -- 5.5.4.2 Interpretation of the results regarding RQ2 -- 5.5.4.3 Interpretation of the results regarding RQ3 -- 5.5.5 Implications for Research and Practice -- 5.5.6 Threats to Validity -- 5.6 Conclusions and Future Work -- Acknowledgment -- Appendix A. ATD Concerns -- Appendix B. Viewpoint Definitions and Correspondence Rules -- B.1 Metamodel of ATD Viewpoints -- B.2 ATD Decision Viewpoint -- B.2.1 Model kind -- B.3 ATD-Related Component Viewpoint -- B.3.1 Model kind.
,
B.4 ATD Distribution Viewpoint -- B.4.1 Model kind -- B.5 ATD Stakeholder Involvement Viewpoint -- B.5.1 Model kind -- B.6 ATD Chronological Viewpoint -- B.6.1 Model kind -- B.7 ATD Detail Viewpoint -- B.7.1 Model kind -- B.8 Correspondences Between Viewpoints -- References -- 6 Quality management and Software Product Quality Engineering -- 6.1 Limitations of the Current Software Practices -- 6.1.1 Quality Management During the Lifecycle -- 6.1.2 Managing Software Quality Requirements -- 6.1.3 Support for Utilizing Institutional Knowledge -- 6.2 Principles of Software Product Quality Engineering -- 6.2.1 Holistic View of Product Quality -- 6.2.2 Engineering Quality with Patterns -- 6.2.2.1 Structure of a quality pattern -- 6.2.2.2 Catalog of quality patterns -- 6.2.2.3 Functional Correctness Patterns -- 6.2.3 Compositional Traceability -- 6.2.4 Process-Product Correlation -- 6.3 Case Study -- 6.3.1 Process Instantiation and Configuration Structure -- 6.3.2 Software Quality Requirements -- 6.3.3 Consistency Tracker -- 6.4 Conclusion -- References -- 7 "Filling in the blanks": A way to improve requirements management for better estimates -- 7.1 Introduction -- 7.2 Meeting the "Voice of the Customer": QFD -- 7.3 "Filling in the Blanks": How to Further Improve Estimation Capability? -- 7.3.1 What Could be Missing? Coming Back to Early Phases… -- 7.3.2 Working on Requirements -- 7.3.3 Working with Stakeholders (with the Proper Requirements) -- 7.4 Improving QFD: QF2D -- 7.5 QF2D: Example Calculation -- 7.6 Conclusions and Next Steps -- References -- 8 Investigating software modularity using class and module level metrics -- 8.1 Introduction -- 8.2 Software Quality Measurement -- 8.3 Software Measurement -- 8.4 Software Modularity -- 8.5 Coupling and Cohesion Metrics -- 8.6 Coupling and Cohesion Metrics at Higher Levels of Granularity.
,
8.7 Coupling and Cohesion Metrics Utilized in This Study -- 8.8 Empirical Study -- 8.9 Objectives and Research Questions -- 8.10 Empirical Design -- 8.10.1 System Selection -- 8.10.2 Data Collection and Analysis -- 8.11 Results -- 8.11.1 RQ1: Can we Characterize through Metrics, HLMs in Weka, and Thus Indicate Good/bad Candidate, HLMs? -- 8.11.2 RQ2: Are Coupling Metrics at this High Level of Modularity Reflective of Coupling Metrics at Lower Levels of Granula... -- 8.12 Discussion -- 8.13 Validity and Reliability -- 8.14 Conclusion -- Acknowledgment -- References -- 9 Achieving quality on software design through test-driven development -- 9.1 Introduction -- 9.2 Evidences on the Influence of TDD on Software Quality -- 9.3 TDD as a Design Technique -- 9.4 Modeling Relations with TDD -- 9.4.1 Mock Objects -- 9.4.2 Designing Dependencies -- 9.4.3 Hierarchy and Abstractions -- 9.5 Large Refactorings -- 9.6 Combining TDD with Other Design Techniques -- 9.6.1 Architectural Design -- 9.6.2 Domain Modeling -- 9.6.3 Design Patterns -- 9.7 Preparing for TDD in a Software Project -- 9.8 Continuous Inspection -- 9.9 Conclusions -- References -- 10 Architectural drift analysis using architecture reflexion viewpoint and design structure reflexion matrices -- 10.1 Introduction -- 10.2 Reflexion Modeling -- 10.3 Reflexion Modeling Using Software Architecture Viewpoints -- 10.4 Reflexion Viewpoint -- 10.5 Design Structure Matrix -- 10.6 Design Structure Reflexion Matrix -- 10.7 Possible Applications -- 10.8 Conclusion -- References -- 11 Driving design refinement: How to optimize allocation of software development assurance or integrity requirements -- 11.1 Introduction -- 11.2 Safety Requirements in ARP4754-A -- 11.3 The Issue of Independence in ARP4754-A -- 11.4 Challenges in Requirements Allocation-The Research Problem -- 11.5 Automatic Allocation of DALs.
,
11.5.1 HiP-HOPS.
,
English
Additional Edition:
ISBN 0-12-802301-5
Language:
English