+ All Categories
Home > Software > Treating Code Quality as a First Class Entity (icsme15) [doc. symposium]

Treating Code Quality as a First Class Entity (icsme15) [doc. symposium]

Date post: 20-Feb-2017
Category:
Upload: yuriy-tymchuk
View: 319 times
Download: 1 times
Share this document with a friend
58
Treating Code Quality as a First Class Entity Yuriy Tymchuk R A E E L V Supervisor: Michele Lanza
Transcript

Treating Code Quality as a First Class Entity

Yuriy TymchukR AE E LV

Supervisor: Michele Lanza

@yuriy_tymchuk

Treating Code Quality as a First Class Entity

R AE E LVSupervisor: Michele Lanza

@yuriy_tymchuk

Treating Code Quality as a First Class Entity

R AE E LVSupervisor: Michele Lanza

How can development tools help to ensure a good quality of code during the evolution

of a software system?

Code Quality

Code Quality

How easy it is tounderstandmodifytest

the software

ISO/IEC, ISO/IEC 9126. Software Engineering – Product quality 6.5. ISO/IEC, 2001

(maintainability)

Code Review

A. Bacchelli, C. Bird. Expectations, outcomes, and challenges of modern code review. In Proceedings of ICSE’13, pp. 712–721, IEEE, 2013

Code Review Tools

Y. Tymchuk, A. Mocci, and M. Lanza. Code Review: Veni, ViDI, Vici. In Proceedings of SANER’15, pp. 151-160, IEEE, 2015

Visual Design Inspection

Y. Tymchuk, A. Mocci, and M. Lanza. Code Review: Veni, ViDI, Vici. In Proceedings of SANER’15, pp. 151-160, IEEE, 2015

Y. Tymchuk, A. Mocci, and M. Lanza. Code Review: Veni, ViDI, Vici. In Proceedings of SANER’15, pp. 151-160, IEEE, 2015 Y. Tymchuk, A. Mocci, and M. Lanza. Vidi: The Visual Design Inspector. In Proceedings of ICSE’15, to be published, IEEE, 2015

Y. Tymchuk, A. Mocci, and M. Lanza. Code Review: Veni, ViDI, Vici. In Proceedings of SANER’15, pp. 151-160, IEEE, 2015 Y. Tymchuk, A. Mocci, and M. Lanza. Vidi: The Visual Design Inspector. In Proceedings of ICSE’15, to be published, IEEE, 2015

Package

Class

Method

Package

Class

Method

More CriticsLess Critics

Quality Rules

Source Code

Critics

ViDI is …

Disconnected from Development

QualityAssistant

Pharo 4: patches / months ≈ patches/day1726 12 5Pharo 5: patches / months ≈ patches/day1071 5 7

Pharo 4: patches / months ≈ patches/day1726 12 5Pharo 5: patches / months ≈ patches/day1071 5 7

vs

Is the importance of a critic related to a software lifecycle period?

vs

Is the importance of a critic related to a software lifecycle period?

vs

Issues of Quality Rule Checkers

B. Johnson, Y. Song, E. Murphy-Hill, and R. Bowdidge. Why don’t software developers use static analysis tools to !nd bugs? In Proceedings of ICSE’13, pp. 672–681, IEEE, 2013

Issues of Quality Rule Checkers

B. Johnson, Y. Song, E. Murphy-Hill, and R. Bowdidge. Why don’t software developers use static analysis tools to !nd bugs? In Proceedings of ICSE’13, pp. 672–681, IEEE, 2013

Issues of Quality Rule Checkers

B. Johnson, Y. Song, E. Murphy-Hill, and R. Bowdidge. Why don’t software developers use static analysis tools to !nd bugs? In Proceedings of ICSE’13, pp. 672–681, IEEE, 2013

Can a critic noise be reduced by dedicated automated resolution?

Can a critic noise be reduced by dedicated automated resolution?

Noisy rules → auto-"x.

Can a critic noise be reduced by dedicated automated resolution?

Noisy rules → auto-"x. Analyze the impact

Can a critic noise be reduced by dedicated automated resolution?

Noisy rules → auto-"x. Analyze the impact

The “Greatest Common Divisor” Way

C. Sadowski, J. Gogh, C. Jaspan, E. Soederberg, C. Winter. Tricorder: Building a Program Analysis Ecosystem. In Proceedings of ICSE’15, pp. 598–608, IEEE, 2015

One Size Fits All

L. Renggli, S. Ducasse, T. Gîrba, O. Nierstrasz. Domain-speci!c program checking. In Proceedings of TOOLS’10, pp. 213-232, 2010 A. C. Hora. Assessing and Improving Rules to Support Software Evolution. PhD diss., Université Lille 1-Sciences et Technologies, 2014

The Dedicated Rule

L. Renggli, S. Ducasse, T. Gîrba, O. Nierstrasz. Domain-speci!c program checking. In Proceedings of TOOLS’10, pp. 213-232, 2010 A. C. Hora. Assessing and Improving Rules to Support Software Evolution. PhD diss., Université Lille 1-Sciences et Technologies, 2014

Improving Co-Evolution

A. C. Hora. Assessing and Improving Rules to Support Software Evolution. PhD diss., Université Lille 1-Sciences et Technologies, 2014

Improving Co-Evolution

A. C. Hora. Assessing and Improving Rules to Support Software Evolution. PhD diss., Université Lille 1-Sciences et Technologies, 2014

Improving Co-Evolution

A. C. Hora. Assessing and Improving Rules to Support Software Evolution. PhD diss., Université Lille 1-Sciences et Technologies, 2014

Improving Co-Evolution

A. C. Hora. Assessing and Improving Rules to Support Software Evolution. PhD diss., Université Lille 1-Sciences et Technologies, 2014

Rules Should Be Dedicated

Method Class Package Project

Rules Should Be Dedicated

Method Class Package Project

Dependency

Inheritance

Rules Should Be Dedicated

Method Class Package Project

Dependency

Inheritance

Organization

Team

Developer

Rules Should Be Dedicated

Method Class Package Project

Dependency

Inheritance

Organization

Team

Developer

Rules Should Be Dedicated

User

Method Class Package Project

Dependency

Inheritance

Organization

Team

DeveloperUser

What are the con#icts for dedicated rules of dependent projects?

What are the con#icts for dedicated rules of dependent projects?

low-level core UI frameworkBL OC

What are the con#icts for dedicated rules of dependent projects?

BL OC low-level core UI framework

agile visualization framework

What are the con#icts for dedicated rules of dependent projects?

BL OC low-level core UI framework

agile visualization framework

Can deprecation / API changes be enhanced by quality rules?

Can deprecation / API changes be enhanced by quality rules?

Refactoring → rules. Analyze usage

Can a critic noise be reduced by dedicated automated resolution?

Can deprecation / API changes be enhanced by quality rules?

What are the con#icts for dedicated rules of dependent projects?

Is the importance of a critic related to a software lifecycle period?

BL OC

vs

Can a critic noise be reduced by dedicated automated resolution?

Can deprecation / API changes be enhanced by quality rules?

What are the con#icts for dedicated rules of dependent projects?

Is the importance of a critic related to a software lifecycle period?

Do developer/teem dedicated rules perform better than generic?

Can the cost/value of critic resolution be derived from history? (Dedicated technical debt)

BL OC

vs

@yuriy_tymchuk

Treating Code Quality as a First Class Entity

R AE E LVSupervisor: Michele Lanza

@yuriy_tymchuk

Treating Code Quality as a First Class Entity

R AE E LVSupervisor: Michele Lanza

In order to build helpful software quality tools, we need an underlying model that

1) facilitates “smart” rules (that aid in critic resolution) 2) allows adaptation of rules for a speci"c scope 3) is aware of software scopes and lifecycle


Recommended