ebook img

Formal Methods for Components and Objects: 11th International Symposium, FMCO 2012, Bertinoro, Italy, September 24-28, 2012, Revised Lectures PDF

247 Pages·2013·6.239 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Formal Methods for Components and Objects: 11th International Symposium, FMCO 2012, Bertinoro, Italy, September 24-28, 2012, Revised Lectures

t Elena Giachino r A - Reiner Hähnle e h Frank S. de Boer t - f Marcello M. Bonsangue (Eds.) o y -e e v t ar u t SS Formal Methods 6 6 for Components 8 7 S C and Objects N L 11th International Symposium, FMCO 2012 Bertinoro, Italy, September 2012 Revised Lectures 123 Lecture Notes in Computer Science 7866 CommencedPublicationin1973 FoundingandFormerSeriesEditors: GerhardGoos,JurisHartmanis,andJanvanLeeuwen EditorialBoard DavidHutchison LancasterUniversity,UK TakeoKanade CarnegieMellonUniversity,Pittsburgh,PA,USA JosefKittler UniversityofSurrey,Guildford,UK JonM.Kleinberg CornellUniversity,Ithaca,NY,USA AlfredKobsa UniversityofCalifornia,Irvine,CA,USA FriedemannMattern ETHZurich,Switzerland JohnC.Mitchell StanfordUniversity,CA,USA MoniNaor WeizmannInstituteofScience,Rehovot,Israel OscarNierstrasz UniversityofBern,Switzerland C.PanduRangan IndianInstituteofTechnology,Madras,India BernhardSteffen TUDortmundUniversity,Germany MadhuSudan MicrosoftResearch,Cambridge,MA,USA DemetriTerzopoulos UniversityofCalifornia,LosAngeles,CA,USA DougTygar UniversityofCalifornia,Berkeley,CA,USA GerhardWeikum MaxPlanckInstituteforInformatics,Saarbruecken,Germany Elena Giachino Reiner Hähnle FrankS.deBoer MarcelloM.Bonsangue(Eds.) Formal Methods for Components and Objects 11th International Symposium, FMCO 2012 Bertinoro, Italy, September 24-28, 2012 Revised Lectures 1 3 VolumeEditors ElenaGiachino UniversityofBologna,Dept.ofComputerScience MuraAnteoZamboni,7,40127Bologna,Italy E-mail:[email protected] ReinerHähnle TechnicalUniversityofDarmstadt,Dept.ofComputerScience Hochschulstr.10,64289Darmstadt,Germany E-mail:[email protected] FrankS.deBoer CentreforMathematicsandComputerScience,CWI SciencePark123,1098XGAmsterdam,TheNetherlands E-mail:[email protected] MarcelloM.Bonsangue LeidenUniversity,LeidenInstituteofAdvancedComputerScience(LIACS) P.O.Box9512,2300RALeiden,TheNetherlands E-mail:[email protected] ISSN0302-9743 e-ISSN1611-3349 ISBN978-3-642-40614-0 e-ISBN978-3-642-40615-7 DOI10.1007/978-3-642-40615-7 SpringerHeidelbergNewYorkDordrechtLondon LibraryofCongressControlNumber:2013946244 CRSubjectClassification(1998):D.2.4,D.2,F.3,F.4,D.3,D.1 LNCSSublibrary:SL2–ProgrammingandSoftwareEngineering ©Springer-VerlagBerlinHeidelberg2013 Thisworkissubjecttocopyright.AllrightsarereservedbythePublisher,whetherthewholeorpartof thematerialisconcerned,specificallytherightsoftranslation,reprinting,reuseofillustrations,recitation, broadcasting,reproductiononmicrofilmsorinanyotherphysicalway,andtransmissionorinformation storageandretrieval,electronicadaptation,computersoftware,orbysimilarordissimilarmethodology nowknownorhereafterdeveloped.Exemptedfromthislegalreservationarebriefexcerptsinconnection withreviewsorscholarlyanalysisormaterialsuppliedspecificallyforthepurposeofbeingenteredand executedonacomputersystem,forexclusiveusebythepurchaserofthework.Duplicationofthispublication orpartsthereofispermittedonlyundertheprovisionsoftheCopyrightLawofthePublisher’slocation, initscurrentversion,andpermissionforusemustalwaysbeobtainedfromSpringer.Permissionsforuse maybeobtainedthroughRightsLinkattheCopyrightClearanceCenter.Violationsareliabletoprosecution undertherespectiveCopyrightLaw. Theuseofgeneraldescriptivenames,registerednames,trademarks,servicemarks,etc.inthispublication doesnotimply,evenintheabsenceofaspecificstatement,thatsuchnamesareexemptfromtherelevant protectivelawsandregulationsandthereforefreeforgeneraluse. Whiletheadviceandinformationinthisbookarebelievedtobetrueandaccurateatthedateofpublication, neithertheauthorsnortheeditorsnorthepublishercanacceptanylegalresponsibilityforanyerrorsor omissionsthatmaybemade.Thepublishermakesnowarranty,expressorimplied,withrespecttothe materialcontainedherein. Typesetting:Camera-readybyauthor,dataconversionbyScientificPublishingServices,Chennai,India Printedonacid-freepaper SpringerispartofSpringerScience+BusinessMedia(www.springer.com) Preface Modern software systems are complex and often structured as a composition of a high number of components or objects. In order to construct such complex systems in a systematic manner, the focus in development methodologies is on structural issues: Both data and functions are encapsulated into software units thatareintegratedintolargesystemsbymeansofvarioustechniquessupporting reusabilityandmodifiability.Thisencapsulationprincipleisessentialtoboththe object-oriented and the component-based software engineering paradigms. Formal methods for component- and object-oriented systems are needed to ensure behavioral and security guarantees, with special emphasis on specifica- tion, modeling and validation techniques supporting the concepts of reusability, adaptability and evolvability of the systems, with which the systems can cope withchangesintheenvironmentaswellaswithmodifiedandnewrequirements. The 11th Symposium on Formal Methods for Components and Objects (FMCO2012)washeldduringSeptember24–28,2012,asaninternationalschool atCentroResidenzialeUniversitario(CRU)oftheUniversityofBologna,located in Bertinoro, a small medieval hilltop town in Italy. FMCO 2012 was organized by the European project HATS (Highly Adaptable and Trustworthy Software using Formal Models), a European Integrated Project within the FET Forever Yours programme, in agreement with the EternalS Coordination Action (CA) thatcoordinatesresearchamongthefourprojectsoftheForeverYours initiative: LivingKnowledge, HATS, Connect, and SecureChange. FMCO2012featuredlecturesbyworld-renownedexpertsintheareaofformal models for objects and components. This volume contains the revised papers submitted by the lecturers. The proceedings of the previous editions of FMCO have been published as volumes 2852, 3188, 3657, 4111, 4709, 5382, 5751, 6286, 6957,and7542ofSpringer’sLectureNotesinComputerScience.Webelievethat this volume and all previous proceedings provide a unique combination of ideas on software engineering and formal methods that reflect the expanding body of knowledge on modern software systems. Finally, we thank all authors for the high quality of their contributions, and the reviewers for their help in improving the papers in this volume. June 2013 Frank de Boer Marcello Bonsangue Elena Giachino Reiner H¨ahnle Organization FMCO 2012 was organized by the University of Bologna, Italy, in close col- laboration with the Technical University of Darmstadt, Germany, the Centrum voor Wiskunde en Informatica (CWI), Amsterdam, and Leiden University, The Netherlands. Program Organizers Einar Broch Johnsen University of Oslo, Norway Reiner H¨ahnle Technical University of Darmstadt, Germany Arnd Poetzsch-Heffter Technical University of Kaiserslautern, Germany German Puebla Universidad Politecnica de Madrid, Spain Davide Sangiorgi University of Bologna, Italy Local Organizers Mario Bravetti University of Bologna, Italy Elena Giachino University of Bologna, Italy Davide Sangiorgi University of Bologna, Italy Sponsoring Institutions European project HATS (FP7-231620) European Coordination Action EternalS Table of Contents The Abstract Behavioral Specification Language: A Tutorial Introduction..................................................... 1 Reiner H¨ahnle Subobject-Oriented Programming.................................. 38 Marko van Dooren, Dave Clarke, and Bart Jacobs Verification of Open Concurrent Object Systems ..................... 83 Ilham W. Kurnia and Arnd Poetzsch-Heffter Automatic Inference of Bounds on Resource Consumption............. 119 Elvira Albert, Diego Esteban Alonso-Blas, Puri Arenas, Jesu´s Correas, Antonio Flores-Montoya, Samir Genaim, Miguel Go´mez-Zamalloa, Abu Naser Masud, German Puebla, Jos´e Miguel Rojas, Guillermo Roma´n-D´ıez, and Damiano Zanardini Separating Cost and Capacity for Load Balancing in ABS Deployment Models ......................................................... 145 Einar Broch Johnsen Composing Distributed Systems: Overcoming the Interoperability Challenge ....................................................... 168 Val´erie Issarny and Amel Bennaceur Controlling Application Interactions on the Novel Smart Cards with Security-by-Contract......................................... 197 Olga Gadyatskaya and Fabio Massacci Formal Aspects of Free and Open Source Software Components........ 216 Roberto Di Cosmo, Ralf Treinen, and Stefano Zacchiroli Author Index.................................................. 241 The Abstract Behavioral Specification Language: (cid:2) A Tutorial Introduction Reiner Hähnle Department of Computer Science, TechnischeUniversität Darmstadt [email protected] Abstract. ABS (for abstract behavioral specification) is a novel lan- guage for modeling feature-rich, distributed, object-oriented systems at an abstract, yet precise level. ABS has a clear and simple concurrency modelthatpermitssynchronousaswellasactor-styleasynchronouscom- munication. ABS abstracts away from specific datatype or I/O imple- mentations, but is a fully executable language and has code generators for Java, Scala, andMaude.ABS goes beyond conventionalprogram- ming languages in two important aspects: first, it embeds architectural concepts such as components or feature hierarchies and allows to con- nect features with theirimplementation in termsof product families. In contrast to standard OO languages, code reuse in ABS is feature-based instead of inheritance-based. Second, ABS has a formal semantics and hasbeendesigned withformal analyzability inmind.Thispapergivesa tutorial introduction to ABS. We discuss all important design features, explain why they are present and how theyare intendedto be used. 1 Introduction Software used to be written for (i) a dedicated purpose to be (ii) deployed in a specific environment and (iii) to be executed on a stand-alone machine. This situation changed drastically: all consumer appliances of a certain complexity, from washing machines via mobile phones to vehicles, contain large amounts of software.Highdiversificationandrapidpaceofchangedictatedbycontemporary market conditions require that this software is able to cope with an extreme degree of variability and adaptability. Planned reuse is not just an option, but a key strategy to staying competitive. Atthesametime,modernsoftwareisnearlyalwaysconcurrentandmostlyalso distributed.Itishardtoimaginestate-of-artbusinesssoftwarethatisnotbased on some notion of distributed services. A more recent trend is virtualization: as more and more software is deployed in the cloud, one consequence is that clients loose to some extent control over the execution environment: the exact architecture, the number of processors, the load, as well as other deployment parameters are typically not available at the time when software is developed. (cid:2) ResearchfundedbytheEUprojectFP7-231620HATS:HighlyAdaptableandTrust- worthy Software using Formal Models (http://www.hats-project.eu). E.Giachinoetal. (Eds.): FMCO2012,LNCS7866,pp. 1–37,2013. ©Springer-VerlagBerlinHeidelberg2013 2 R. Hähnle Because of this, the trend to virtualization leads to a new potential gap in the software development chain between developers and operators. In a software development scenario where one has to deal with extreme vari- ability, with complex distributed computation, and with the need to abstract fromdeploymentissues,theavailabilityofsuitablesoftware modeling languages, as well as powerful tools helping in automation, becomes crucial. Design-orientedandarchitecturallanguages,notablytheUMLfamilyofnota- tions, cannot fulfill this role, because they lack executability and mathematical rigor. Executable formalisms for specifying concurrent behavior, such as state charts[28],processcalculi[38],abstractstatemachines[7],orPetrinets[24],are simply too minimalist to describe industrial systems. In addition, they are not integratedwitharchitecturalnotationsorwithfeaturedescriptionlanguages[45] thatmodelvariability.Thelatter,however,donotprovideaconnectionbetween features and their realization. Refinement-based approaches, such as Event- B [1] require too much rigor in their application for being feasible outside ex- tremelysafety-criticalapplications.Theyalsodonotaddressvariability.Finally, implementation-orientedspecificationlanguages,suchasJML[34](forJava)or SPEC#[6](forC#)inheritallthecomplicationsandidiosyncrasiesoftheirhost languages and are not very good at specifying concurrent behavior. Our brief analysis exhibits a gap in the landscape of software specification and modeling languages. The European FP7 Integrated Project HATS (Highly Adaptable&TrustworthySoftwareUsingFormalModels)developedtheAbstract Behavioral Specification (ABS) language in order to address this issue. ABS is a software modeling language that is situated between architectural, design- oriented, foundational, and implementation-oriented languages,see Fig. 1. 1.1 Structure of This Chapter Inthischapterwegiveatutorialintroductionintothedesignprinciples,language elements, and usage of the ABS language. We discuss the design considerations behind ABS in Sect. 2 and give an architectural overview in Sect. 3. Then we present different language layers, starting with the functional layer in Sect. 4, followedbythe OO-imperativelayerinSect.5,the concurrencylayersinSect.6 and language extensions based on pluggable type systems as well as a foreign language interface (Sect. 7). On top of these layers are language concepts for modeling of software product lines. These are discussed in Sect. 8. We close the tutorial with some general considerations on modeling and a discussion of current limitations of ABS in Sect. 9. 1.2 Further Reading This paper is a tutorial on ABS and not a language specification nor a formal definition.AmoretechnicalandmoredetaileddescriptionofABSanditstoolset iscontainedinthepapertrio[9,25,31].ThemostdetaileddocumentaboutABS thatalsocontainsaformalsemanticsis[17].TheofficialABSLanguageSpecifica- tion is [2]. The main web resourcesfor ABS are http://www.hats-project.eu The Abstract Behavioral Specification Language: A Tutorial Introduction 3 Design-oriented, architectural, structural UML, FDL, etc. + executability Abstract Behavioral Realistic Specification Abstract ABS + verifiability + usability Implementation level Minimalist foundational Java/JML, C#/SPEC#, etc. π-calculus, ambient c., etc. Fig.1. The gap in thelandscape of software modeling languages and www.abs-models.org. Finally, for several case studies done with ABS, one can have a look at the public HATS Deliverable D5.3 [19]. ItisstressedatseveralplacesinthistutorialthatABShasbeendesignedwith the goal of permitting automatic static analyses of various kinds. This tutorial concentrates on the ABS language and its development environment. In the paper by Albert et al. in this volume [4] automated resource analysis for ABS is explained in detail. Information on deadlock analysis and formal verification of ABS can be found in [18]. The chapter by Kurnia & Poetzsch-Heffter in this volume [33] contains a general discussion of verification of concurrent open systems such as ABS models. 1.3 Installation of the ABS Eclipse Plugin For trying out the examples provided in this tutorial you will need the ABS Eclipse plugin. To install it, follow the simple instructions at http://tools. hats-project.eu/eclipseplugin/installation.html.You willneed atleast Eclipse version 3.6.2 and it is recommended to work with a clean installation. Theexampleprojectusedthroughoutthistutorialisavailableasanarchivefrom http://www.hats-project.eu/sites/default/files/TutorialExample.zip. Toinstall,unzipthearchivefileintoadirectory/mypath/Account.Thencreatea new ABS Project in Eclipse and import the directory file contents into the workspaceintheusualway.ThisopensautomaticallytheABSModelingPerspec- tive.Afteropeningafewfilesintheeditoryoushouldseeascreensimilartothe oneinFig.2.

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.