Top Banner
Software Quality Architecture and Code Audit Vikas Hazrati
26

Software Quality Architecture And Code Audit

Nov 12, 2014

Download

Technology

Vikas Hazrati has shared his experience on why anyone would need software quality audit.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Software Quality Architecture And Code Audit

Software Quality

Architecture and Code Audit

Vikas Hazrati

Page 2: Software Quality Architecture And Code Audit

Agenda

I. What is software quality ?

II. Why Do I Need A Software Quality Audit ?

III. Benefits

IV. Approach

V. What do we audit for?

VI. Sample Tools

VII.Common Findings

VIII.Sample reports?IX. Prerequisites

Page 3: Software Quality Architecture And Code Audit

What is Software Quality?

Page 4: Software Quality Architecture And Code Audit

Why Software Quality Audit

Architecture and JEE not core line of business

Page 5: Software Quality Architecture And Code Audit

Why Software Quality Audit

Measuring quality of outsourced development

Page 6: Software Quality Architecture And Code Audit

Why Software Quality Audit

Neutral Analysis of the architecture and code

Page 7: Software Quality Architecture And Code Audit

Why Software Quality Audit

Validating vendor contractual obligations related to quality

Page 8: Software Quality Architecture And Code Audit

= Software Quality Audit

Page 9: Software Quality Architecture And Code Audit

Benefits

Page 10: Software Quality Architecture And Code Audit

Benefits• Planning for improvements (Given this body of

code/development)• Process (What should we improve first?)• Uncertainty reduction (Is this what we asked for?)• Risk containment (What are the risks associated with this

code/technology/development process, what are the early warning signs that will show the risk is becoming reality and what should we do now to

• Tackling Risk (Reduce risks now or later?)• TCO of the system • Do we have sufficient grounds to sue this contractor?

Page 11: Software Quality Architecture And Code Audit

Approach

Page 12: Software Quality Architecture And Code Audit

What do we audit for?

Page 13: Software Quality Architecture And Code Audit

How?

Use of appropriate tools to narrow down on the right findings

Page 14: Software Quality Architecture And Code Audit

Sample List of Tools

Architecture QualityStructure101, ArchitecturalRules, JDepend

Code QualityCheckstyle, FindBugs, PMD, Hammurapi, Soot,

Squale, Sonar, CAP, Metrics etc.

Page 15: Software Quality Architecture And Code Audit

Common Findings

• Insufficient test code• Build process is not automated• Complex architecture• No automatic quality control• Big up-front design in a changing world• Strict separation between customer and

contractor• Inappropriate design abstraction

Page 16: Software Quality Architecture And Code Audit

Common Findings

• Duplicate class names in different parts of the source tree

• 80% junk: code that does nothing but translate, adds no business value

• No test code

Page 17: Software Quality Architecture And Code Audit

Sample Reports

Page 18: Software Quality Architecture And Code Audit

Sample Reports

Page 19: Software Quality Architecture And Code Audit

Sample Reports

Page 20: Software Quality Architecture And Code Audit

Sample Reports

Page 21: Software Quality Architecture And Code Audit

Sample Reports

Page 22: Software Quality Architecture And Code Audit

Sample Executive SummarySystemX Audit RequirementXebia established the quality of code and

documentation of SystemX. Key research questions were:

- Assess the quality of code and documentation based on industry standards.

- Advise on how to improve code and quality documentation.

- Assess maintainability and ease of installation during maintenance.

Page 23: Software Quality Architecture And Code Audit

Sample Executive ReportSystemX findings- Quality can be improved by increasing the coverage of automated tests and

decreasing code complexity.

- Lack of test code has a strong negative influence on maintainability

- Metrics show that code complexity is high making the code hard to understand and test.

- Reliability is adequate due to the large set of functional tests.

- Installability and portability of SystemX is adequate.

Page 24: Software Quality Architecture And Code Audit

Before Starting

Page 25: Software Quality Architecture And Code Audit

Prerequisites• Sponsorship from senior

management

• Clear expectations

• Access to the project team’s project documentation, project charter, the system requirements and the overall system design.

• Access to the development and deployment environment.

• Access to key individuals and project team members for information and interviews.

Page 26: Software Quality Architecture And Code Audit

26