About the Book
        
        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: 
Preface xi
 Acknowledgments xvi
 About the Author xvii
 Chapter 1 Introduction 1
 Distinguishing Data Analytic Development 3
 Software Development Life Cycle (SDLC) 7
 Risk 14
 Chapter 2 Quality 21
 Defining Quality 24
 Software Product Quality Model 30
 Quality in the SDLC 40
 Chapter 3 Communication 49
 Return Codes 51
 System Numeric Return Codes 53
 System Alphanumeric Return Codes 70
 User-Generated Return Codes 74
 Parallel Processing Communication 79
 PART I DYNAMIC PERFORMANCE 85
 Chapter 4 Reliability 87
 Defining Reliability 90
 Paths to Failure 91
 ACL: The Reliability Triad 102
 Reliability in the SDLC 108
 Chapter 5 Recoverability 123
 Defining Recoverability 125
 Recoverability toward Reliability 127
 Recoverability Matrix 131
 TEACH Recoverability Principles 132
 SPICIER Recoverability Steps 136
 Recovering with Checkpoints 148
 Recoverability in the SDLC 151
 Chapter 6 Robustness 159
 Defining Robustness 162
 Robustness toward Reliability 163
 Defensive Programming 164
 Exception Handling 172
 Robustness in the SDLC 203
 Chapter 7 Execution Efficiency 207
 Defining Execution Efficiency 209
 Factors Affecting Execution Efficiency 210
 False Dependencies 211
 Parallel Processing 220
 Execution Efficiency in the SDLC 232
 Chapter 8 Efficiency 243
 Defining Efficiency 246
 Disambiguating Efficiency 246
 Defining Resources 249
 Efficiency in the SDLC 259
 Chapter 9 Scalability 273
 Defining Scalability 276
 The Scalability Triad 276
 Resource Scalability 278
 Demand Scalability 279
 Load Scalability 290
 Scalability in the SDLC 309
 Chapter 10 Portability 313
 Defining Portability 316
 Disambiguating Portability 317
 3GL versus 4GL Portability 318
 Facets of Portability 319
 Portability in the SDLC 338
 Chapter 11 Security 341
 Defining Security 344
 Confidentiality 344
 Integrity 345
 Availability 365
 Security in the SDLC 379
 Chapter 12 Automation 383
 Defining Automation 386
 Automation in SAS Software 387
 SAS Processing Modes 388
 Starting in Interactive Mode 393
 Starting in Batch Mode 410
 Automation in the SDLC 415
 PART II STATIC PERFORMANCE 419
 Chapter 13 Maintainability 421
 Defining Maintainability 424
 Maintenance 425
 Maintenance in the SDLC 429
 Failure to Maintain 436
 Maintainability 440
 Chapter 14 Modularity 447
 Defining Modularity 449
 From Monolithic to Modular 450
 Modularity Principles 454
 Benefits of Modularity 474
 Chapter 15 Readability 477
 Defining Readability 479
 Plan to Get Hit by a Bus 480
 Software Readability 481
 External Readability 503
 Chapter 16 Testability 507
 Defining Testability 510
 Software Testing 510
 Testability 538
 Chapter 17 Stability 541
 Defining Stability 543
 Achieving Stability 544
 Stable Requirements 545
 Defect-Free Code 546
 Dynamic Flexibility 546
 Stability and Beyond 549
 Modularizing More Than Macros 559
 Chapter 18 Reusability 577
 Defining Reusability 579
 Reuse 580
 Reusability 588
 From Reusability to Extensibility 597
 Index 603
About the Author : 
TROY MARTIN HUGHES has been a SAS practitioner for more than 15 years, has managed SAS projects in support of federal, state, and local government initiatives, and is a SAS Certified Advanced Programmer, SAS Certified Base Programmer, SAS Certified Clinical Trials Programmer, and SAS Professional V8. He has an MBA in information systems management and additional credentials, including: PMP, PMI-ACP, PMI-PBA, PMI-RMP, CISSP, CSSLP, CSM, CSD, CSPO, CSP, and ITIL v3 Foundation. He has been a frequent presenter and invited speaker at SAS user conferences, including SAS Global Forum, WUSS, MWSUG, SCSUG, SESUG, and PharmaSUG. Troy is a U.S. Navy veteran with two tours of duty in Afghanistan, and in his spare time, a volunteer firefighter and EMT.