SlideShare a Scribd company logo
Automated Versioning As a Mechanism for Component Software Consistency GuaranteeJaroslav BAUMLDept of Computer ScienceUWB, Pilsen
ComponentEvolutionComponent updates reflect their evolutionApplication consistency during updatesOne release of componentDependencies to componentsReleases during timeDepencencies to explicit releases of components (specified by version)10/27/20092Bauml: Automated Reliable Versioning
VersionsVersions are one of the most important thing in component development…Do not believe?10/27/20093Bauml: Automated Reliable Versioning
VersionsVersions are one of the most important thing in component development…10/27/20094Bauml: Automated Reliable Versioning
VersionsVersions are one of the most important thing in component development…… because they handle (or describe) component evolutionUnfortunately is also one of the less trackedCommon versioning scheme:major.minor.micro_textualAddons1.4.2_alpha210/27/20095Bauml: Automated Reliable Versioning
Current use ofversionsemanticsVery often versioning only adhocMarketing purposeSemantic purposeAll incompatible changes  <=> majorid++.All backward compatible <=>  minor id++.No changes on interface <=> microid++.10/27/20096Bauml: Automated Reliable Versioning
Semantic VersioningNo 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/20097Bauml: Automated Reliable Versioning
Subtyping as key solution for semantic versioningCan use Car instead of Vehicle. Car is a subtype of …A compatiblewithB <=>B <: A 10/27/20098Bauml: Automated Reliable VersioningDifference values: NON, MUT, SPE, GEN evaluate at leaves
combine to root:spe ⊕ gen -> mutmut ⊕ X  -> mutnon ⊕ X -> X
SubtypingExample10/27/20099Bauml: Automated Reliable VersioningRold =majold.minold.micoldRnew = majnew.minnew.micnew
Subtyping Example (2)Two consecutive revisions, versions: The function Difference (Rold,Rnew) is defined by the rulesin the table.10/27/200910Bauml: Automated Reliable VersioningOLD Logger 1.2.4, wefoundMutation => NEW Logger‘s version = 2.0.0
Our Implementation for OSGiSimple meta-models Implementation of subtypingJava levelJavaTypes – general project to handle java type system at runtimeBytecode, reflection, …Bundle levelMetadata inspection10/27/200911Bauml: Automated Reliable Versioning
Validation – Real World BundlesTo provide a basic validation of proposed principle, implemented tool was tested on bundles from Apache Felix archive.10/27/200912

More Related Content

PPTX
FMI Composer Overview
PPTX
VIKING cluster meeting 1
PDF
Consistency, Availability, Partition: Make Your Choice
PDF
Coherence and consistency models in multiprocessor architecture
PDF
Pp3 - Pixel Perfect Precision V3
PPT
Louzel Report - Reliability & validity
PPTX
Benefit Of Computer
PPTX
advantages and disadvanteges of computer
FMI Composer Overview
VIKING cluster meeting 1
Consistency, Availability, Partition: Make Your Choice
Coherence and consistency models in multiprocessor architecture
Pp3 - Pixel Perfect Precision V3
Louzel Report - Reliability & validity
Benefit Of Computer
advantages and disadvanteges of computer

Viewers also liked (7)

PPTX
Validity and Reliability
PPTX
Validity and reliability of questionnaires
PPT
Presentation Validity & Reliability
DOCX
ADVANTAGES AND DIS-ADVANTAGES OF COMPUTER
PDF
Precision attachments
PPT
multimedia element
PPT
Benefits Of Computer Software
Validity and Reliability
Validity and reliability of questionnaires
Presentation Validity & Reliability
ADVANTAGES AND DIS-ADVANTAGES OF COMPUTER
Precision attachments
multimedia element
Benefits Of Computer Software
Ad

Similar to Automated Versioning As A Mechanism For Component Software (20)

PPTX
Automated Versioning In OSGi
PDF
Populating a Release History Database (ICSM 2013 MIP)
PDF
An overview of techniques for detecting software variability concepts in sour...
PPTX
Software testing
PDF
Versioning and License selection
PDF
New types of tests for Java projects
PPTX
Automated bug localization
PPTX
Simplifying Software Correctness
PPTX
Mining Sociotechnical Information From Software Repositories
PDF
Case Study: Mylyn Reviews for Software Development in Air Traffic Management
PDF
Feature-Oriented Software Evolution
PDF
Hacking Java - Enhancing Java Code at Build or Runtime
PDF
L035478083
PDF
Benchmarking Versioning for Big Linked Data
PDF
Presentation of HOBBIT's versioning benchmark at Graph-TA
PDF
Quality of Bug Reports in Open Source
PPTX
Visualizing the Evolution of Systems and their Library Dependencies
PDF
Why is Java relevant? New features of Java8
PDF
Data Modeling Lineage | Embarcadero Technoloiges
PDF
findbugs Bernhard Merkle
Automated Versioning In OSGi
Populating a Release History Database (ICSM 2013 MIP)
An overview of techniques for detecting software variability concepts in sour...
Software testing
Versioning and License selection
New types of tests for Java projects
Automated bug localization
Simplifying Software Correctness
Mining Sociotechnical Information From Software Repositories
Case Study: Mylyn Reviews for Software Development in Air Traffic Management
Feature-Oriented Software Evolution
Hacking Java - Enhancing Java Code at Build or Runtime
L035478083
Benchmarking Versioning for Big Linked Data
Presentation of HOBBIT's versioning benchmark at Graph-TA
Quality of Bug Reports in Open Source
Visualizing the Evolution of Systems and their Library Dependencies
Why is Java relevant? New features of Java8
Data Modeling Lineage | Embarcadero Technoloiges
findbugs Bernhard Merkle
Ad

Recently uploaded (20)

PDF
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
PPTX
Chapter 5: Probability Theory and Statistics
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
A comparative analysis of optical character recognition models for extracting...
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
PPTX
cloud_computing_Infrastucture_as_cloud_p
PDF
Zenith AI: Advanced Artificial Intelligence
PDF
Encapsulation theory and applications.pdf
PDF
project resource management chapter-09.pdf
PDF
Approach and Philosophy of On baking technology
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
Mushroom cultivation and it's methods.pdf
PDF
Hybrid model detection and classification of lung cancer
PPTX
1. Introduction to Computer Programming.pptx
PDF
Hindi spoken digit analysis for native and non-native speakers
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PDF
WOOl fibre morphology and structure.pdf for textiles
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
Chapter 5: Probability Theory and Statistics
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
A comparative analysis of optical character recognition models for extracting...
Programs and apps: productivity, graphics, security and other tools
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
cloud_computing_Infrastucture_as_cloud_p
Zenith AI: Advanced Artificial Intelligence
Encapsulation theory and applications.pdf
project resource management chapter-09.pdf
Approach and Philosophy of On baking technology
Group 1 Presentation -Planning and Decision Making .pptx
Mushroom cultivation and it's methods.pdf
Hybrid model detection and classification of lung cancer
1. Introduction to Computer Programming.pptx
Hindi spoken digit analysis for native and non-native speakers
Univ-Connecticut-ChatGPT-Presentaion.pdf
WOOl fibre morphology and structure.pdf for textiles

Automated Versioning As A Mechanism For Component Software

  • 1. Automated Versioning As a Mechanism for Component Software Consistency GuaranteeJaroslav BAUMLDept of Computer ScienceUWB, Pilsen
  • 2. ComponentEvolutionComponent updates reflect their evolutionApplication consistency during updatesOne release of componentDependencies to componentsReleases during timeDepencencies to explicit releases of components (specified by version)10/27/20092Bauml: Automated Reliable Versioning
  • 3. VersionsVersions are one of the most important thing in component development…Do not believe?10/27/20093Bauml: Automated Reliable Versioning
  • 4. VersionsVersions are one of the most important thing in component development…10/27/20094Bauml: Automated Reliable Versioning
  • 5. VersionsVersions are one of the most important thing in component development…… because they handle (or describe) component evolutionUnfortunately is also one of the less trackedCommon versioning scheme:major.minor.micro_textualAddons1.4.2_alpha210/27/20095Bauml: Automated Reliable Versioning
  • 6. Current use ofversionsemanticsVery often versioning only adhocMarketing purposeSemantic purposeAll incompatible changes <=> majorid++.All backward compatible <=> minor id++.No changes on interface <=> microid++.10/27/20096Bauml: Automated Reliable Versioning
  • 7. Semantic VersioningNo 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/20097Bauml: Automated Reliable Versioning
  • 8. Subtyping as key solution for semantic versioningCan use Car instead of Vehicle. Car is a subtype of …A compatiblewithB <=>B <: A 10/27/20098Bauml: Automated Reliable VersioningDifference values: NON, MUT, SPE, GEN evaluate at leaves
  • 9. combine to root:spe ⊕ gen -> mutmut ⊕ X -> mutnon ⊕ X -> X
  • 10. SubtypingExample10/27/20099Bauml: Automated Reliable VersioningRold =majold.minold.micoldRnew = majnew.minnew.micnew
  • 11. Subtyping Example (2)Two consecutive revisions, versions: The function Difference (Rold,Rnew) is defined by the rulesin the table.10/27/200910Bauml: Automated Reliable VersioningOLD Logger 1.2.4, wefoundMutation => NEW Logger‘s version = 2.0.0
  • 12. Our Implementation for OSGiSimple meta-models Implementation of subtypingJava levelJavaTypes – general project to handle java type system at runtimeBytecode, reflection, …Bundle levelMetadata inspection10/27/200911Bauml: Automated Reliable Versioning
  • 13. Validation – Real World BundlesTo provide a basic validation of proposed principle, implemented tool was tested on bundles from Apache Felix archive.10/27/200912
  • 14. ConclusionOur methodallows you to ensure component consistencypossible by component type representationas 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/200913 /18Bauml: Automated Reliable Versioning