Tool support for semi-automatic modularization of
existing code bases

CBHPC 2009 (November 15th 2009, Portland)

Robert M...
Outline


  What is the vision?


  First step taken: Tool support for semi-automatic modularization


  Which steps are l...
Vision


Situation
    Designing complex systems (spacecrafts, ships, …) requires numerical
    simulation codes
         ...
In other „words“ ...

        Code A                           Code C
                          Code B




               ...
Software Integration Framework RCE


   Used as a first reference framework


Characteristics
        OSGi/Eclipse RCP
   ...
Excursus: OSGi module concept


  Module concept layer on top of the Java package module concept




         OSGi Module ...
Tool support for semi-automatic modularization


  Support for migration of unmodularized software into modules
  Limited ...
Modis
Key Concepts

  Definition of modules by the user


  Continuous validation of the module definition by modis
      ...
Modis
Modularization Workflow

                 Running source code analysis



                     Definition of modules...
Modis
Realization

Backend
   Make use of ASTParser of Eclipse Java Development Tools
        Abstract Source Tree
       ...
Modis – Tree View




                                                                                                Slid...
Modis - DSM




                                                                                          Slide 13
       ...
Future Work


Long-term
         Automatic integration
         Not limited to specified languages (codes)
         Not li...
Future Work


Medium-term
        Support for („HPC“) languages like C, C++, Fortran
             Possible approach: cross...
Questions?




                                                                                                   Slide 16...
Upcoming SlideShare
Loading in …5
×

Tool support for semi-automatic modularization of existing code bases

3,980 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,980
On SlideShare
0
From Embeds
0
Number of Embeds
2,396
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Tool support for semi-automatic modularization of existing code bases

  1. 1. Tool support for semi-automatic modularization of existing code bases CBHPC 2009 (November 15th 2009, Portland) Robert Mischke, Doreen Seider, Andreas Schreiber German Aerospace Center (DLR) – http://www.dlr.de/sc Slide 1 CBHPC2009 > Doreen Seider > Tool support for semi-automatic modularization > 11/15/2009
  2. 2. Outline What is the vision? First step taken: Tool support for semi-automatic modularization Which steps are left? Slide 2 CBHPC2009 > Doreen Seider > Tool support for semi-automatic modularization > 11/15/2009
  3. 3. Vision Situation Designing complex systems (spacecrafts, ships, …) requires numerical simulation codes Conducted in complex workflows Come from different disciplines Run on different hosts  Software integration frameworks provide simulation environment How do the codes get into the framework? Today: Mostly manually Vision: Automatically Slide 3 CBHPC2009 > Doreen Seider > Tool support for semi-automatic modularization > 11/15/2009
  4. 4. In other „words“ ... Code A Code C Code B Wrapper B Code A Code C Workflow Engine Data Management Resources API ... Software Integration Framework Slide 4 CBHPC2009 > Doreen Seider > Tool support for semi-automatic modularization > 11/15/2009
  5. 5. Software Integration Framework RCE Used as a first reference framework Characteristics OSGi/Eclipse RCP Component-based, service-oriented Developed by German Aerospace Center (DLR) – http://www.dlr.de/sc Fraunhofer SCAI – http://scai.fraunhofer.de http://sourceforge.net/projects/rcenvironment Slide 5 CBHPC2009 > Doreen Seider > Tool support for semi-automatic modularization > 11/15/2009
  6. 6. Excursus: OSGi module concept Module concept layer on top of the Java package module concept OSGi Module One OSGi Module Two exported exported org.package.one private private org.package.three org.package.two Slide 7 CBHPC2009 > Doreen Seider > Tool support for semi-automatic modularization > 11/15/2009
  7. 7. Tool support for semi-automatic modularization Support for migration of unmodularized software into modules Limited at the moment to Programs written in Java OSGi modules (RCE components) Eclipse plugin: modis (modularisation support) Directly integrated in the Eclipse IDE Eclipse update site: http://rm.swprojects.org/eclipse/updates Open Source (01/2010) Slide 8 CBHPC2009 > Doreen Seider > Tool support for semi-automatic modularization > 11/15/2009
  8. 8. Modis Key Concepts Definition of modules by the user Continuous validation of the module definition by modis Cycle detection Check wiring between modules Check dependency resolution Generation of the module descriptions by modis Slide 9 CBHPC2009 > Doreen Seider > Tool support for semi-automatic modularization > 11/15/2009
  9. 9. Modis Modularization Workflow Running source code analysis Definition of modules Elimination of cycles Resolving invalid outbound dependencies Resolving invalid incoming dependencies Slide 10 CBHPC2009 > Doreen Seider > Tool support for semi-automatic modularization > 11/15/2009
  10. 10. Modis Realization Backend Make use of ASTParser of Eclipse Java Development Tools Abstract Source Tree Dependencies of the whole programm ASTParser is backbone for all validation implementations Frontend Tree view Dependency Structure Matrix (DSM) Slide 11 CBHPC2009 > Doreen Seider > Tool support for semi-automatic modularization > 11/15/2009
  11. 11. Modis – Tree View Slide 12 CBHPC2009 > Doreen Seider > Tool support for semi-automatic modularization > 11/15/2009
  12. 12. Modis - DSM Slide 13 CBHPC2009 > Doreen Seider > Tool support for semi-automatic modularization > 11/15/2009
  13. 13. Future Work Long-term Automatic integration Not limited to specified languages (codes) Not limited to specified target frameworks Out of reach at the moment Good guideline Slide 14 CBHPC2009 > Doreen Seider > Tool support for semi-automatic modularization > 11/15/2009
  14. 14. Future Work Medium-term Support for („HPC“) languages like C, C++, Fortran Possible approach: cross-language model (AST) Pattern library for integration of non-Java languages into OSGi frameworks Wrapper generation based upon defined patterns Slide 15 CBHPC2009 > Doreen Seider > Tool support for semi-automatic modularization > 11/15/2009
  15. 15. Questions? Slide 16 Doreen.Seider@dlr.de CBHPC2009 > Doreen Seider > Tool support for semi-automatic modularization > 11/15/2009

×