Upgrade to Pro — share decks privately, control downloads, hide ads and more …

How to jSparrow Jenkins?

How to jSparrow Jenkins?

Tool challenge presentation of jSparrow at Software Quality Days 2019

Daniela Baumgartner

January 16, 2019
Tweet

More Decks by Daniela Baumgartner

Other Decks in Programming

Transcript

  1. How to jSparrow jenkins 1 Software Quality Days 2019 Reinhard

    Prehofer / jSparrow / Splendit TOOL-Challenge How to jSparrow Jenkins?
  2. How to jSparrow jenkins 2 jSparrow -Speed Presentation For more

    than 15 years we have been optimizing legacy systems of our customers • Modernization strategy • Replatforming • Set up test infrastruktur • Migration including automated transformation www.splendit.at jSparrow automatically facilitates your routine work with maintenance of important programs • Refactoring of legacy Java code • Eclipse, Maven and Github • Enhancement of code quality • Enforcement of company standards www.jSparrow.eu With our experience in old and new languages, we build bridges between existing technologies and new requirements.
  3. How to jSparrow jenkins 3 • Importance of SW maintenance

    ◦ 2/3 of life cycle costs ◦ keeps business processes running ◦ legacy systems are SW assets • Daily Problems ◦ Too many other projects ◦ Limited resources ◦ Changing technologies and trends ◦ increasing technical debt ◦ “Never change a running system?” SW Maintenance References University of Houston: http://sceweb.sce.uhcl.edu
  4. How to jSparrow jenkins 4 Refactoring • Characteristic of Refactoring

    ◦ Enhancing maintainability of existing source code without changing external behavior ◦ Restructuring of code artifacts • Automatic Code Refactoring ◦ no manual tedious work required ◦ changes follow a predefined pattern ◦ thus individual manual errors are avoided ◦ complete projects refactored within minutes
  5. How to jSparrow Jenkins 5 ISO-25010 & jSparrow: Which aspects

    of the ISO-25010 will be improved by jSparrow
  6. How to jSparrow Jenkins 6 jSparrow - overview • Automatic

    Java Refactoring • Rule based approach ◦ 53 rules implemented • Configurable profiles • User guided • Safe workflow seamlessly integrated into Eclipse IDE ◦ Select rules ◦ Summary Page ◦ Apply changes • Fits in multiple infrastructure (Eclipse IDE, Maven, Github)
  7. How to jSparrow Jenkins 7 jSparrow vs. others • jSparrow

    not only analyses Java sources - but automatically fixes issues and decreases technical debt • Mission critical – only safe changes performed ◦ some sonar issues are false positive • Chain of related rules - one rule creates input for following rules f.e.: Replace For-Loop with Enhanced For Loop => Replace For-Loop with Stream::forEach => Replace Expression Lambda with Method Reference • Categories of improvements ◦ Java 8/9/10 enhancements ◦ performance ◦ readability ◦ standards • User guided (Eclipse IDE) • runs on workstation and server
  8. How to jSparrow Jenkins 8 Sonar meassurements (sonar way profile

    7.1.0) Summary 1: 37,35 % sonar issues automatically fixed by jSparrow. Stay tuned … BETTER results to come!
  9. How to jSparrow Jenkins 9 jSparrow - Jenkins Improvements •

    git-download your Jenkins-sources into Eclipse • Run SonarQube on these original Jenkins sources ◦ Run light-tests profile before jSparrow changes • Run jSparrow: ◦ Select sources ◦ Select 52 rules (including logging rule, excluding renaming rule) ◦ Summary page ◦ Apply changes • Run light-tests profile after jSparrow changes • Test Jenkins functionality after Code Refactoring and Modernization
  10. How to jSparrow Jenkins 10 run jSparrow (1 of 4)

    • Select sources • Select 52 rules (including logging rule, excluding renaming rule) • Summary page • Apply changes select sources via project explorer next step • rule selection • logging rule • rename fields
  11. How to jSparrow Jenkins 11 run jSparrow (2 of 4)

    • Select sources • Select 52 rules (including logging rule, excluding renaming rule) • Summary page • Apply changes profiles exportable selected rules rule description implemented rules to select technical requirements
  12. How to jSparrow Jenkins 12 run jSparrow (3 of 4)

    • Select sources • Select 52 rules (including logging rule, excluding renaming rule) • Summary page • Apply changes run duration found issues estimated time needed for manual changes changed files browse findings old sources changes
  13. How to jSparrow Jenkins 13 run jSparrow (4 of 4)

    • Select sources • Select 52 rules (including logging rule, excluding renaming rule) • Summary page • Apply changes Apply
  14. How to jSparrow Jenkins 14 jSparrow - Jenkins Improvements •

    git-download your Jenkins-sources into Eclipse • Run SonarQube on these original Jenkins sources ◦ Run light-tests profile before jSparrow changes • Run jSparrow: ◦ Select sources ◦ Select 52 rules (including logging rule, excluding renaming rule) ◦ Summary page ◦ Apply changes • Run light-tests profile after jSparrow changes • Test Jenkins functionality after Code Refactoring and Modernization
  15. How to jSparrow Jenkins 15 jSparrow statistics of Jenkins Some

    KPIs of refactoring Jenkins: • 166.870 - LOC in Java • jSparrow results: • 10.806 - issues fixed • 3 minutes 01 second – jSparrow execution time • 81 days 5 hours 01 minute - total saved time fig: Run Summary - jenkins core
  16. How to jSparrow Jenkins 16 jSparrow AND Jenkins • How

    did jSparrow improve Jenkins: ◦ Automatically refactored 10.806 issues (See our results) • How can you improve your code with Jenkins and jSparrow ◦ Integrate jSparrow into your maven build ◦ Define your ruleset in a YAML ◦ Define your profile in a YAML ◦ Run jSparrow in your builds Fits in multiple infrastructure!
  17. How to jSparrow Jenkins 17 jSparrowing .. • Are you

    still correcting your code manually ? • When do you start to jSparrow your Code ◦ Automated ◦ User guided ◦ Safe ◦ Fast, faster, jSparrow ◦ Integrated into • Eclipse • maven/github – including Jenkins build Don´t lose time with tedious and repetitive work – let jSparrow do it! Want to see it live?! Meet us at booth # 13 Just 3 minutes for a proof!!