You are previewing SAS Data Analytic Development.
O'Reilly logo
SAS Data Analytic Development

Book Description

Design quality SAS software and evaluate SAS software quality

SAS Data Analytic Development is the developer’s compendium for writing better-performing software and the manager’s guide to building comprehensive software performance requirements. The text introduces and parallels the International Organization for Standardization (ISO) software product quality model, demonstrating 15 performance requirements that represent dimensions of software quality, including: reliability, recoverability, robustness, execution efficiency (i.e., speed), efficiency, scalability, portability, security, automation, maintainability, modularity, readability, testability, stability, and reusability. The text is intended to be read cover-to-cover or used as a reference tool to instruct, inspire, deliver, and evaluate software quality.

A common fault in many software development environments is a focus on functional requirements—the what and how—to the detriment of performance requirements, which specify instead how well software should function (assessed through software execution) or how easily software should be maintained (assessed through code inspection). Without the definition and communication of performance requirements, developers risk either building software that lacks intended quality or wasting time delivering software that exceeds performance objectives—thus, either underperforming or gold-plating, both of which are undesirable. Managers, customers, and other decision makers should also understand the dimensions of software quality both to define performance requirements at project outset as well as to evaluate whether those objectives were met at software completion.

As data analytic software, SAS transforms data into information and ultimately knowledge and data-driven decisions. Not surprisingly, data quality is a central focus and theme of SAS literature; however, code quality is far less commonly described and too often references only the speed or efficiency with which software should execute, omitting other critical dimensions of software quality. SAS® software project definitions and technical requirements often fall victim to this paradox, in which rigorous quality requirements exist for data and data products yet not for the software that undergirds them.

By demonstrating the cost and benefits of software quality inclusion and the risk of software quality exclusion, stakeholders learn to value, prioritize, implement, and evaluate dimensions of software quality within risk management and project management frameworks of the software development life cycle (SDLC). Thus, SAS Data Analytic Development recalibrates business value, placing code quality on par with data quality, and performance requirements on par with functional requirements.

Table of Contents

  1. Preface
    1. Objectives
    2. Audience
    3. Application of Content
    4. Organization
  2. Acknowledgments
  3. About the Author
    1. Chapter 1: Introduction
      1. Distinguishing Data Analytic Development
      2. Software Development Life Cycle (SDLC)
      3. Risk
    2. Chapter 2: Quality
      1. Defining Quality
      2. Software Product Quality Model
      3. Quality in the SDLC
    3. Chapter 3: Communication
      1. Return Codes
      2. System Numeric Return Codes
      3. System Alphanumeric Return Codes
      4. User-Generated Return Codes
      5. Parallel Processing Communication
  4. Part I: Static Performance
    1. Chapter 4: Reliability
      1. Defining Reliability
      2. Paths To Failure
      3. ACL: The Reliability Triad
      4. Reliability in the SDLC
    2. Chapter 5: Recoverability
      1. Defining Recoverability
      2. Recoverability toward Reliability
      3. Recoverability Matrix
      4. TEACH Recoverability Principles
      5. SPICIER Recoverability Steps
      6. Recovering with Checkpoints
      7. Recoverability in the SDLC
    3. Chapter 6: Robustness
      1. Defining Robustness
      2. Robustness toward Reliability
      3. Defensive Programming
      4. Exception Handling
      5. Robustness in the SDLC
    4. Chapter 7: Execution Efficiency
      1. Defining Execution Efficiency
      2. Factors Affecting Execution Efficiency
      3. False Dependencies
      4. Parallel Processing
      5. Execution Efficiency in the SDLC
    5. Chapter 8: Efficiency
      1. Defining Efficiency
      2. Disambiguating Efficiency
      3. Defining Resources
      4. Efficiency in the SDLC
    6. Chapter 9: Scalability
      1. Defining Scalability
      2. The Scalability Triad
      3. Resource Scalability
      4. Demand Scalability
      5. Load Scalability
      6. Scalability in the SDLC
    7. Chapter 10: Portability
      1. Defining Portability
      2. Disambiguating Portability
      3. 3GL versus 4GL Portability
      4. Facets of Portability
      5. Portability in the SDLC
    8. Chapter 11: Security
      1. Defining Security
      2. Confidentiality
      3. Integrity
      4. Availability
      5. Security in the SDLC
    9. Chapter 12: Automation
      1. Defining Automation
      2. Automation in SAS Software
      3. SAS Processing Modes
      4. Starting in Interactive Mode
      5. Starting in Batch Mode
      6. Automation in the SDLC
  5. Part II: Dynamic Performance
    1. Chapter 13: Maintainability
      1. Defining Maintainability
      2. Maintenance
      3. Maintenance in the SDLC
      4. Failure to Maintain
      5. Maintainability
    2. Chapter 14: Modularity
      1. Defining Modularity
      2. From Monolithic to Modular
      3. Modularity Principles
      4. Benefits of Modularity
    3. Chapter 15: Readability
      1. Defining Readability
      2. Plan to Get Hit by a Bus
      3. Software Readability
      4. External Readability
    4. Chapter 16: Testability
      1. Defining Testability
      2. Software Testing
      3. Testability
    5. Chapter 17: Stability
      1. Defining Stability
      2. Achieving Stability
      3. Stable Requirements
      4. Defect-Free Code
      5. Dynamic Flexibility
      6. Stability And Beyond
      7. Modularizing More Than Macros
    6. Chapter 18: Reusability
      1. Defining Reusability
      2. Reuse
      3. Reusability
      4. From Reusability to Extensibility
  6. Index
  7. End User License Agreement