Software Quality Attributes
-
Upload
hayim-makabee -
Category
Software
-
view
1.240 -
download
3
description
Transcript of Software Quality Attributes
Software Quality Attributes
Hayim MakabeeInternational Association of Software Architects in Israel
About Me:
Education:
Experience of 20 years in the Israeli software industry.
Today:
Software Quality Attributes
Quality of software systems = Collection of software quality attributes.
System requirements => Define what is expected regarding these quality attributes.
Software Quality Attributes: Static Dynamic
Static Quality Attributes
Static quality attributes reflect the system’s structure and organization.
Static quality attributes are directed related to: The architecture and design of the software system. The way the system was implemented (its source code).
Static quality attributes are not visible to the end-user but they affect the system’s development and maintenance costs.
Examples of Static Attributes
Modularity Coupling Cohesion
Testability
Maintainability
Extensibility
Reusability
Testing Static Quality Attributes
Inspection: Design Reviews Code Reviews Pair Programming
Static Code Analysis
Coding Style: Naming Documentation
Software Quality Metrics: Complexity Coupling
Dynamic Quality Attributes
Dynamic quality attributes reflect the behavior of the system during its execution.
Dynamic quality attributes are directly related to: The system’s architecture, design and source code. The system’s configuration and deployment parameters. The system’s environment and the platform on which it is
running.
Dynamic quality attributes exist at runtime, and are visible to the end-user.
Examples of Dynamic Attributes
Latency
Throughput
Robustness
Scalability
Fault-Tolerance
Testing Dynamic Quality Attributes
Code Profilers: Memory Usage Execution Time
Non-Functional Testing
Performance Tests
Load/Stress Tests
Robustness Tests
Simulators
Bombers
Log Players
Quality Attributes and Architectural Tradeoffs
Architectural Decision: Stateless vs. Stateful Servers.
Load Balancer
Server 1
Server 2
Server 3
DB
Summary
Quality of software systems = Collection of software quality attributes.
Static quality attributes reflect the system’s structure and organization.
Dynamic quality attributes reflect the behavior of the system during its execution.
Quality attributes require diverse testing methods and tools.
Quality attributes may drive architectural tradeoffs.
Thanks!
Q&A