Book contents
- Frontmatter
- Contents
- Preface
- Annotated Table of Contents
- Acknowledgments
- PART I Overview
- PART II Software Modeling
- PART III Architectural Design
- 12 Overview of Software Architecture
- 13 Software Subsystem Architectural Design
- 14 Designing Object-Oriented Software Architectures
- 15 Designing Client/Server Software Architectures
- 16 Designing Service-Oriented Architectures
- 17 Designing Component-Based Software Architectures
- 18 Designing Concurrent and Real-Time Software Architectures
- 19 Designing Software Product Line Architectures
- 20 Software Quality Attributes
- PART IV Case Studies
- Appendix A Catalog of Software Architectural Patterns
- Appendix B Teaching Considerations
- Glossary
- Answers to Exercises
- Bibliography
- Index
20 - Software Quality Attributes
from PART III - Architectural Design
Published online by Cambridge University Press: 05 June 2012
- Frontmatter
- Contents
- Preface
- Annotated Table of Contents
- Acknowledgments
- PART I Overview
- PART II Software Modeling
- PART III Architectural Design
- 12 Overview of Software Architecture
- 13 Software Subsystem Architectural Design
- 14 Designing Object-Oriented Software Architectures
- 15 Designing Client/Server Software Architectures
- 16 Designing Service-Oriented Architectures
- 17 Designing Component-Based Software Architectures
- 18 Designing Concurrent and Real-Time Software Architectures
- 19 Designing Software Product Line Architectures
- 20 Software Quality Attributes
- PART IV Case Studies
- Appendix A Catalog of Software Architectural Patterns
- Appendix B Teaching Considerations
- Glossary
- Answers to Exercises
- Bibliography
- Index
Summary
Software quality attributes (Bass, Clements, and Kazman 2003) refer to the nonfunctional requirements of software, which can have a profound effect on the quality of a software product. Many of these attributes can be addressed and evaluated at the time the software architecture is developed. Software quality attributes include maintainability, modifiability, testability, traceability, scalability, reusability, performance, availability, and security. An introduction to software quality attributes is given in Section 4.6. This section describes each of these attributes and discusses how they are supported by the COMET design method.
Some software quality attributes are also system quality attributes because they need both the hardware and software to achieve high quality. Examples of these quality attributes are performance, availability, and security. Other software quality attributes are purely software in nature because they rely entirely on the quality of the software. Examples of these quality attributes are maintainability, modifiability, testability, and traceability.
MAINTAINABILITY
Maintainability is the extent to which software is capable of being changed after deployment. Software may need to be modified for the following reasons:
Fix remaining errors. These are errors that were not detected during testing of the software prior to deployment.
Address performance issues. Performance problems may not become apparent until after the software application has been deployed and is operational in the field.
Changes in software requirements. The biggest reason for software change is changes in software requirements.
- Type
- Chapter
- Information
- Software Modeling and DesignUML, Use Cases, Patterns, and Software Architectures, pp. 357 - 368Publisher: Cambridge University PressPrint publication year: 2011