Abstract
Abstract
Component-based development is a well-established methodology of software development. Nevertheless, some of the benefits that the component based development offers are often neglected. One of them is modeling and subsequent analysis of component behavior, which can help establish correctness guarantees, such as absence of composition errors and safety of component updates. We believe that application of component behavior modeling in practice is limited due to huge differences between the behavior modeling languages (e.g., process algebras) and the common implementation languages (e.g., Java). As a result, many concepts of the implementation languages are either very different or completely missing in the behavior modeling languages. As an example, even though behavior modeling languages are practical for modeling and analysis of various message-based protocols, they are not well suited for modeling current component applications, where thread-based parallelism, lock-based synchronization, and nested method calls are the essential building blocks. With this in mind, we propose a new behavior modeling language for software components, Threaded Behavior Protocols (TBP). At the model level, TBP provides developers with the concepts known from the implementation languages and essential to most component applications. In addition, the theoretical framework of TBP provides a notion of correctness based on absence of communication errors and a refinement relation to verify correctness of hierarchical components. The main asset of TBP formalism is that it links together the notion of threads as used in imperative object oriented languages and the notion of refinement. For instance, this allows reasoning about hierarchical components composed of primitive components implemented in Java without the need of bridging abstractions and simplifications enforced by the modeling languages.
- ABC10 A process algebraic approach to software architecture design2010BerlinSpringer1255.6800410.1007/978-1-84800-223-4Google Scholar
- ABJ+06 Adamek J, Bures T, Jezek P, Kofron J, Mencl V, Parizek P, Plasil F (2006) Component reliability extensions for fractal component model. http://kraken.cs.cas.cz/ft/public/public_index.phtmlGoogle Scholar
- AH01a Interface automataSIGSOFT Softw Eng Notes200126510912010.1145/503271.503226Google ScholarDigital Library
- AH01b de Alfaro L, Henzinger TA (2001) Interface theories for component-based design. In: EMSOFT ’01: Proceedings of the first international workshop on embedded software. London UK, Springer, Berlin, pp 148–165Google Scholar
- All97 Allen RJ (1997) A formal approach to software architecture. PhD thesis, CMUGoogle Scholar
- AP03 Adamek J, Plasil F (2003) Behavior protocols capturing errors and updates. In: Proceedings of the 2nd international workshop on unanticipated software evolutionGoogle Scholar
- AP04 Component composition errors and update atomicity: Static analysisJ Softw Maint Evol Res Pract2004175102Google Scholar
- BBS06 Basu A, Bozga M, Sifakis J (2006) Modeling heterogeneous real-time components in bip. In: Proceedings of the fourth IEEE international conference on software engineering and formal methods, Washington, DC, USA. IEEE Computer Society, pp 3–12Google Scholar
- BDH+08 Bureš T, Děcký M, Hnětynka P, Kofroň J, Parízek P, Plášil F, Poch T, Šerý O, Tůma P (2008) CoCoME in SOFA. In: The common component modeling example: comparing software component models. Springer, Berlin, pp 388–417Google Scholar
- BGR Badger—Verification of component behavior specification. http://d3s.mff.cuni.cz/~sery/badgerGoogle Scholar
- BRJ05 Booch G, Rumbaugh J, Jacobson I (2005) Unified modeling language user guide, 2nd edn. Addison-Wesley Object Technology Series. Addison-Wesley ProfessionalGoogle Scholar
- CoC Modelling Contest: Common Component Modelling Example. http://agrausch.informatik.uni-kl.de/CoCoMEGoogle Scholar
- CSS05 Program compatibility approachesLecture notes in computer science, vol 41112005BerlinSpringer243258Google Scholar
- Cˇ VZ07 Černá I, Vařeková P, Zimmerova B (2007) Component substitutability via equivalencies of component-interaction automata. In: Proceedings of the workshop on formal aspects of component software (FACS’06). ENTCS, vol 182. Elsevier Science Publishers, pp 39–55, June 2007Google Scholar
- FHRR04a Stuck-free conformanceProceedings of 16th international conference on computer aided verification (CAV 2004), Boston, MA, USA, July 13–17, 2004 Lecture notes in computer science, vol 31142004BerlinSpringer242254Google Scholar
- FHRR04b Fournet C, Hoare T, Rajamani SK, Rehof J (2004) Stuck-free conformance theory for ccs. Technical report, Microsoft Research, July 2004Google Scholar
- GG97 Professional Dcom programming1997BirminghamWrox Press Ltd.Google ScholarDigital Library
- Hoa85 Hoare CAR (1985) Communicating sequential processes. Prentice Hall International (UK) LtdGoogle Scholar
- HP00 Model checking JAVA programs using JAVA pathfinderInt J Softw Tools Technol Transf2000243663811059.6858510.1007/s100090050043Google ScholarCross Ref
- Kof07 Kofron J (2007) Checking software component behavior using behavior protocols and spin. In: Proceedings of applied computing 2007, Seoul, Korea, pp 1513–1517Google Scholar
- LNW07 Modal I/O automata for interface and product line theoriesESOP. Lecture notes in computer science, vol 44212007BerlinSpringer6479Google Scholar
- LS00 Foundations of component-based systems2000New YorkCambridge University Press1215.68078Google ScholarDigital Library
- MDEK95 Magee J, Dulay N, Eisenbach S, Kramer J (1995) Specifying distributed software architectures. In: Fifth European software engineering conference, ESEC ’95, BarcelonaGoogle Scholar
- Mil95 Communication and concurrency1995HertfordshirePrentice Hall International (UK) Ltd.Google ScholarDigital Library
- MSD03 Matena V, Stearns B, Demichiel L (2003) Applying enterprise JavaBeans: component-based development for the J2EE platform. Pearson EducationGoogle Scholar
- OLKM00 The Koala component model for consumer electronics softwareComputer2000333788510.1109/2.825699Google ScholarDigital Library
- OMG06 OMG Group (2006) CORBA component model specification. Technical report, OMG GroupGoogle Scholar
- Poc10 Poch T (2010) Towards thread aware component behavior specifications. PhD thesis, Charles University, PragueGoogle Scholar
- PV02 Plasil F, Visnovsky S (2002) Behavior protocols for software components. IEEE Trans Softw Eng 28(9)Google Scholar
- Ros98 Roscoe AW (1998) The theory and practice of concurrency. Prentice HallGoogle Scholar
- RRMP08 Rausch A, Reussner R, Mirandola R, Plasil F (eds) (2008) The common component modeling example: comparing software component models. In: Lecture notes in computer science, vol 5153. Springer, BerlinGoogle Scholar
Index Terms
- Threaded behavior protocols
Recommendations
Verified systems by composition from verified components
This paper presents an approach to integration of model checking into component-based development of software systems. This approach assists in development of highly reliable component-based software systems and reduces the complexity of verifying these ...
Verified systems by composition from verified components
ESEC/FSE-11: Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineeringThis paper presents an approach to integration of model checking into component-based development of software systems. This approach assists in development of highly reliable component-based software systems and reduces the complexity of verifying these ...
A model of component-based programming
FSEN'07: Proceedings of the 2007 international conference on Fundamentals of software engineeringComponent-based programming is about how to create application programs from prefabricated components with new software that provides both glue between the components, and new functionality. Models of components are required to support black-box ...
Comments