Most software systems are built by a team of collaborating developers changing the system’s code base in parallel. New development environments make rules and patterns the team is following explicit to ensure better quality of a developer’s edit before it is delivered to a shared repository. Current tool support checks whether specified tasks were performed, but cannot assess the desired effect on the developer’s edit. In the talk, we report on current activities on extending such tool support to validate whether specified process tasks were performed effectively, and on our experiences extending the Jazz platform. We present an application of change impact analysis using a change model with programming language semantics and classifications revealing effects on the program behavior. Based on that analysis new change delivery rules can be defined that actually ensure the quality of a program edit.
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Effectively Automate and Enforce Process Rules and Tasks when Delivering Changes
1. Effectively Automate and Enforce
Process Rules and Tasks
when Delivering Changes
Jan Wloka, Rutgers University
Alexander Luchansky, Rutgers University
Barbara G. Ryder, Virginia Tech
Joint work with Frank Tip, IBM Research
2. Delivery of Code Changes
Changes in local code base are shared with team
Two “horror” scenarios:
1.Reported merge conflicts
Responsible to merge conflicting parts manually
2.Accepting changes results in failing tests
Responsible to fix the failures in foreign code
2
3. Process-aware Tool Support
Goal: Effective guidance for team’s development process
IDE makes process rules and tasks explicit
Enforce desired properties of development artifacts
Guide developers/automate tasks to satisfy these properties
3
4. Process-aware Tool Support
Goal: Effective guidance for team’s development process
IDE makes process rules and tasks explicit
Enforce desired properties of development artifacts
Guide developers/automate tasks to satisfy these properties
Problem: Under-representation of program changes!
No error prevention, e.g., “no compilation errors”
No effective quality checks, e.g., “all tests pass”
No process-level guidance, e.g, “bug fixes only in
stabilization phasequot;
3
5. Semantic Representation of Code
Changes
Program Source Code Atomic Change Model Program Behavior
AST :: original
P
I C
M M
AST :: edited
P
I C C
M M M M
4
6. Semantic Representation of Code
Changes
Program Source Code Atomic Change Model Program Behavior
AST :: original
AL
P
I C AL
M M
AC
C
CL
AST :: edited
AM AM
P M M
I C C
CM CM
M M M M
4
7. Semantic Representation of Code
Changes
Program Source Code Atomic Change Model Program Behavior
AST :: original
AL
P call graph :: test1
I C AL
M M
AC
C
CL
AST :: edited call graph :: test2
AM AM
P M M
I C C
CM CM
M M M M
4
8. Semantic Representation of Code
Changes
Program Source Code Atomic Change Model Program Behavior
AST :: original
AL
P call graph :: test1
I C AL
M M
AC
C
Impact on
CL program behavior
AST :: edited call graph :: test2
AM AM
P M M
I C C
CM CM
M M M M
4
9. Analysis-based Process Advisors
Effective Process Rules for Change Delivery
‘Require Test Run to Cover All Changes’ or
‘... at Original Program Elements’
’Require Run Affected Tests’
’Require All Affected Tests Pass’
5
10. Analysis-based Process Advisors
Effective Process Rules for Change Delivery
‘Require Test Run to Cover All Changes’ or
‘... at Original Program Elements’
’Require Run Affected Tests’
’Require All Affected Tests Pass’
Stronger Guidance for Change Delivery
'Allow Delivery of Non-behavioral Changes’
’Compute Set of Safely Deliverable Changes’
’Review Changed but Uncovered Program Elements’
’Generate Tests/Stubs for not Covered Changes’
5
11. Extending Jazz
“Extended Run Tests Operation”
Original
Program
Instrumented Call
Run Tests
Original Graphs
Operation
Program (Original)
Edited Pre-Run Tests Post-Run Tests
Program Operation Operation
Instrumented Call
Run Tests
Edited Graphs
Operation
Change- Program (Edited)
set
Atomic Change Impact
Change Model Classification
6
12. Extending Jazz
“Extended Deliver Changes Operation”
No Edited
Edited Check Process Rule Change Delivery
Rules Violations Operation Program
Program
Shared
Yes
Change- Corrective
set Action
Change Model +
Impact Classification
7