Download - Software Quality Attributes

Transcript
Page 1: Software Quality Attributes

Software Quality Attributes

Hayim MakabeeInternational Association of Software Architects in Israel

Page 2: Software Quality Attributes

About Me:

Education:

Experience of 20 years in the Israeli software industry.

Today:

Page 3: Software Quality Attributes

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

Page 4: Software Quality Attributes

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.

Page 5: Software Quality Attributes

Examples of Static Attributes

Modularity Coupling Cohesion

Testability

Maintainability

Extensibility

Reusability

Page 6: Software Quality Attributes

Testing Static Quality Attributes

Inspection: Design Reviews Code Reviews Pair Programming

Page 7: Software Quality Attributes

Static Code Analysis

Coding Style: Naming Documentation

Software Quality Metrics: Complexity Coupling

Page 8: Software Quality Attributes

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.

Page 9: Software Quality Attributes

Examples of Dynamic Attributes

Latency

Throughput

Robustness

Scalability

Fault-Tolerance

Page 10: Software Quality Attributes

Testing Dynamic Quality Attributes

Code Profilers: Memory Usage Execution Time

Page 11: Software Quality Attributes

Non-Functional Testing

Performance Tests

Load/Stress Tests

Robustness Tests

Simulators

Bombers

Log Players

Page 12: Software Quality Attributes

Quality Attributes and Architectural Tradeoffs

Architectural Decision: Stateless vs. Stateful Servers.

Load Balancer

Server 1

Server 2

Server 3

DB

Page 13: Software Quality Attributes

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.

Page 14: Software Quality Attributes

Thanks!

Q&A