• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Automated Versioning As A Mechanism For Component Software
 

Automated Versioning As A Mechanism For Component Software

on

  • 844 views

Presentation from theoretical seminar in Prag at Charles University.

Presentation from theoretical seminar in Prag at Charles University.

Statistics

Views

Total Views
844
Views on SlideShare
843
Embed Views
1

Actions

Likes
0
Downloads
3
Comments
0

1 Embed 1

http://www.slideshare.net 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Automated Versioning As A Mechanism For Component Software Automated Versioning As A Mechanism For Component Software Presentation Transcript

    • Automated Versioning As a Mechanism for Component Software Consistency Guarantee
      Jaroslav BAUML
      Dept of Computer Science
      UWB, Pilsen
    • ComponentEvolution
      Component updates reflect their evolution
      Application consistency during updates
      One release of component
      Dependencies to components
      Releases during time
      Depencencies to explicit releases of components (specified by version)
      10/27/2009
      2
      Bauml: Automated Reliable Versioning
    • Versions
      Versions are one of the most important thing in component development…
      Do not believe?
      10/27/2009
      3
      Bauml: Automated Reliable Versioning
    • Versions
      Versions are one of the most important thing in component development…
      10/27/2009
      4
      Bauml: Automated Reliable Versioning
    • Versions
      Versions are one of the most important thing in component development…
      … because they handle (or describe) component evolution
      Unfortunately is also one of the less tracked
      Common versioning scheme:
      major.minor.micro_textualAddons
      1.4.2_alpha2
      10/27/2009
      5
      Bauml: Automated Reliable Versioning
    • Current use ofversionsemantics
      Very often versioning only adhoc
      Marketing purpose
      Semantic purpose
      All incompatible changes <=> majorid++.
      All backward compatible <=> minor id++.
      No changes on interface <=> microid++.
      10/27/2009
      6
      Bauml: Automated Reliable Versioning
    • Semantic Versioning
      No tooling, even no methodologyto create semantic versioning.
      Specifications talk about “compatibility”, but it is too weak.
      To determine what is and what is not compatible, we can use structuralsubtyping.
      10/27/2009
      7
      Bauml: Automated Reliable Versioning
    • Subtyping as key solution for semantic versioning
      Can use Car instead of Vehicle. Car is a subtype of …
      A compatiblewithB <=>B <: A
      10/27/2009
      8
      Bauml: Automated Reliable Versioning
      Difference values: NON, MUT, SPE, GEN
      • evaluate at leaves
      • combine to root:
      spe ⊕ gen -> mut
      mut ⊕ X -> mut
      non ⊕ X -> X
    • SubtypingExample
      10/27/2009
      9
      Bauml: Automated Reliable Versioning
      Rold =majold.minold.micold
      Rnew = majnew.minnew.micnew
    • Subtyping Example (2)
      Two consecutive revisions, versions:
      The function Difference (Rold,Rnew) is defined by the rulesin the table.
      10/27/2009
      10
      Bauml: Automated Reliable Versioning
      OLD Logger 1.2.4, wefoundMutation => NEW Logger‘s version = 2.0.0
    • Our Implementation for OSGi
      Simple meta-models
      Implementation of subtyping
      Java level
      JavaTypes – general project to handle java type system at runtime
      Bytecode, reflection, …
      Bundle level
      Metadata inspection
      10/27/2009
      11
      Bauml: Automated Reliable Versioning
    • Validation – Real World Bundles
      To provide a basic validation of proposed principle, implemented tool was tested on bundles from Apache Felix archive.
      10/27/2009
      12
    • Conclusion
      Our method
      allows you to ensure component consistency
      possible by component type representation
      as strong as type information allows (semantic changes, dynamic features)
      “No matter how sophisticated a (versioning) scheme is, it is useless if it is not used by all components universally.”
      10/27/2009
      13 /18
      Bauml: Automated Reliable Versioning