Software Quality Attributes

21,773 views 14 slides Oct 02, 2014
Slide 1
Slide 1 of 14
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14

About This Presentation

The quality of software systems may be expressed as a collection of Software Quality Attributes. When the system requirements are defined, it is essential also to define what is expected regarding these quality attributes, since these expectations will guide the planning of the system architecture a...


Slide Content

Software Quality Attributes Hayim Makabee International Association of Software Architects in Israel

About Me: Education: Experience of 20 years in the Israeli software industry. Today:

Software Quality Attributes Q uality of software systems = Collection of software q uality a ttributes . S ystem 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