SAS® Data Analytic Development: Dimensions of Software Quality
Buy Rights Online Buy Rights

Rights Contact Login For More Details

  • Wiley

More About This Title SAS® Data Analytic Development: Dimensions of Software Quality

English

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.

English

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.

English

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

loading