+ All Categories
Home > Technology > Software Quality for Programmers

Software Quality for Programmers

Date post: 22-Feb-2017
Category:
Upload: pawel-klimczyk
View: 154 times
Download: 5 times
Share this document with a friend
30
Software Quality for Programmers version 1.0 Paweł Klimczyk Gemotial 2016
Transcript
Page 1: Software Quality for Programmers

Software Quality for Programmers

version 1.0

Paweł KlimczykGemotial 2016

Page 2: Software Quality for Programmers

About me

• Software engineer• Running Gemotial Software Studio • Co-organizer of WrocNET• Blog: http://blog.klimczyk.pl• Contact:• Twitter @pwlklm• Mail: [email protected]

Page 3: Software Quality for Programmers

@pwlklm blog.klimczyk.pl

Software quality definition

"capability of a software product to conform to requirements." (ISO/IEC

9001)

Deming:” The problem inherent in attempts to define the quality of a product, almost any product……….”Feigenbaum:”Quality is a customer determination, not an engineer's determination, not a marketing determination, nor a general management determination”Juran:” Two of these meanings dominate the use of the word: 1. Quality consists of those product features which meet the need of customers and thereby provide product satisfaction. 2. Quality consists of freedom from deficiencies. ”

Wikipedia

Page 4: Software Quality for Programmers

@pwlklm blog.klimczyk.pl

Quality in construction

http://www.leica-geosystems.es/images/new/product_solution/app_eng_siterunner.jpghttps://s-media-cache-ak0.pinimg.com/originals/97/ea/

a4/97eaa4fb3555decb132dc12064072e8c.jpg

Page 5: Software Quality for Programmers

@pwlklm blog.klimczyk.pl

„Quality” in code

Page 6: Software Quality for Programmers

@pwlklm blog.klimczyk.pl

Quality check

http://www.e-architect.co.uk/images/jpgs/singapore/uob_plaza_one_two_tr010709_1.jpg

https://i.kinja-img.com/gawker-media/image/upload/18mllspae8l8tjpg.jpg

Page 7: Software Quality for Programmers

@pwlklm blog.klimczyk.pl

„Great refactor”

https://assets.bwbx.io/images/users/iqjWHBFdfxIU/i0dwq8cFhDmE/v1/-1x-1.jpg

Page 8: Software Quality for Programmers

@pwlklm blog.klimczyk.pl

How do it in IT ?

How check quality in software ?

Page 9: Software Quality for Programmers

@pwlklm blog.klimczyk.pl

Measurement - WTF per minute measurement

aka Code Review

Page 10: Software Quality for Programmers

@pwlklm blog.klimczyk.pl

Measurement – Code Review

https://www.jetbrains.com/upsource/features/screenshots/Features-team-collaboration.png

Page 11: Software Quality for Programmers

@pwlklm blog.klimczyk.pl

Measurement - It’s not a bug, it’s a feature

Page 12: Software Quality for Programmers

@pwlklm blog.klimczyk.pl

Measurement - ROI

Page 13: Software Quality for Programmers

@pwlklm blog.klimczyk.pl

Quality and Quantity- what do you choose?

Page 14: Software Quality for Programmers

@pwlklm blog.klimczyk.pl

Technical debt and maintenace

Producing more code

leads to technical debt

Page 15: Software Quality for Programmers

@pwlklm blog.klimczyk.pl

Effective Quality Triangle

Page 16: Software Quality for Programmers

@pwlklm blog.klimczyk.pl

Bad Quality Examples

https://pl.wikipedia.org/wiki/ExoMars

Page 17: Software Quality for Programmers

@pwlklm blog.klimczyk.pl

Code Quality Core

Correctness

Readability

Performance

Page 18: Software Quality for Programmers

@pwlklm blog.klimczyk.pl

Formal Software Quality Measurement Models

Dromey (1992)McCall (1977)

Ghezzi (1991)

FURPS+ (1992)IEEE 1061 (1993)

ISO/IEC 9126-1 (1991)

Boehm (1978)

 ISO/IEC 25010:2011 (2011)

ISO/IEC 9126:2001 (2001)

SATC (1995)

 Kazman (2003) CMM (1991)

Page 19: Software Quality for Programmers

@pwlklm blog.klimczyk.pl

Formal Software Quality Measurement Metrics

Integrity Usability

Reliability

Correctness

Efficiency

Testability

Maintanability

Flexibility

Portability

Reusability

Interoperability

Performance

SupportabilityCompability

Configurability

Security

Operability

Stability

SafetyAnalizability

Changeability

Maturity

Accuracy

Page 20: Software Quality for Programmers

@pwlklm blog.klimczyk.pl

Formal Code Quality Measurement Methods

Cyclomatic Complexity

Lines of code

Cohesion

Code Coupling Circular Dependency

Temporal Coupling

Page 21: Software Quality for Programmers

@pwlklm blog.klimczyk.pl

SOLID, Design Patterns, TDD, XP.

SOLID

Design Patterns

Extreme programming

Test driver development

Domain driven development

Best practicesContinuous Integration

Continuous deployment

Page 22: Software Quality for Programmers

@pwlklm blog.klimczyk.pl

Tooling

Jira

TeamCity

JenkinsSonarQube

UpSource

NDepend/JDepend

JUnit/NUnit

FindBugs

JarAnalyzer

UCDetector

Cobertura

Checkstyle

FxCop

StyleCop Bamboo

Page 23: Software Quality for Programmers

@pwlklm blog.klimczyk.pl

Developer skills

http://manifesto.softwarecraftsmanship.org/

Not only working software,but also well-crafted softwareNot only responding to change,but also steadily adding valueNot only individuals and interactions,but also a community of professionalsNot only customer collaboration,but also productive partnerships

Page 24: Software Quality for Programmers

@pwlklm blog.klimczyk.pl

The Software Craftsman

Sandro Mancuso

Page 25: Software Quality for Programmers

@pwlklm blog.klimczyk.pl

Specifications

Page 26: Software Quality for Programmers

@pwlklm blog.klimczyk.pl

Organization quality triangle

Page 27: Software Quality for Programmers

@pwlklm blog.klimczyk.pl

Conclusions (I)

Whole organization contributes in delivering

quality

What quality do we deliver?

Page 28: Software Quality for Programmers

@pwlklm blog.klimczyk.pl

Conclusions (II)

What developers can do to improve quality?•Craftmanship

•SOLID + Design Patterns + tooling•XP, TDD, BDD, DDD•Change organization or change organization

Page 29: Software Quality for Programmers

@pwlklm blog.klimczyk.pl

Conclusions (III)

Maintenance costs is ~75% of total costs in application

life-cycle

Page 30: Software Quality for Programmers

Thank you!

Contact• Blog:

http://blog.klimczyk.pl• Twitter: @pwlklm• E-mail:

[email protected]

Q&A


Recommended