software quality architecture and code audit

26
Software Quality Architecture and Code Audit Vikas Hazrati

Upload: xebia-it-architects

Post on 12-Nov-2014

3.823 views

Category:

Technology


2 download

DESCRIPTION

Vikas Hazrati has shared his experience on why anyone would need software quality audit.

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