Rights Contact Login For More Details
- Wiley
More About This Title SAS® Data Analytic Development: Dimensions of Software Quality
- English
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
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
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