Abstract
In previous work we presented a CSP-based systematic approach that fosters the rigorous design of component-based development. Our approach is strictly defined in terms of composition rules, which are the only permitted way to compose components. These rules guarantee the preservation of properties (particularly deadlock freedom) by construction in component composition. Nevertheless, their application is allowed only under certain conditions whose verification via model checking turned out impracticable even for some simple designs, and particularly those involving cyclic topologies. In this paper, we address the performance of the analysis and present a significantly more efficient alternative to the verification of the rule side conditions, which are improved by carrying out partial verification on component metadata throughout component compositions and by using behavioural patterns. The use of metadata, together with behavioural patterns, demands new composition rules, which allow previous exponential time verifications to be carried out now in linear time. Two case studies (the classical dining philosophers, also used as a running example, and an industrial version of a leadership election algorithm) are presented to illustrate and validate the overall approach.
Similar content being viewed by others
References
Aldini A, Bernardo M (2003) A general approach to deadlock freedom verification for software architectures. In: International symposium of formal methods Europe. Lecture notes in computer science, vol 2805. Springer, New York, pp 658–677
Aldrich J, Chambers C, Notkin D (2002) Archjava: connecting software architecture to implementation. In: International conference on software engineering. ACM Press, New York
Allen R, Douence R, Garlan D (1998) Specifying and analyzing dynamic software architectures. In: Conference on fundamental approaches to software engineering (FASE). Lecture notes in computer science, vol 1382, Lisbon
Allen R (1997) A formal approach to software architecture. Ph.D. thesis, Carnegie Mellon University, CMU Technical Report CMUU-CS–97–144
Antonino PRG, Oliveira MVM, Sampaio ACA, Kristensen KE, Bryans JW (2014) Leadership election: an industrial sos application of compositional deadlock verification. In: NASA formal methods - 6th international symposium (NFM’14).Lecture notes in computer science, vol 8430. Springer, New York, pp 31–45
Arbab F (2004) Reo: a channel-based coordination model for component composition. Math Struct Comput Sci 14(3): 329–366
Antonino PRG, Sampaio A, Woodcock J (2014) A refinement based strategy for local deadlock analysis of networks of csp processes. In: FM 2014: formal methods. Lecture notes in computer science, vol 8430 pp 62–77
Bensalem S, Bozga M, Nguyen T-H, Sifakis J (2010) Compositional verification for component-based systems and application. IET Softw 4(12): 181–193
Bernardo M, Ciancarini P, Donatiello L (2002) Architecting families of software systems with process algebras. ACM Trans Softw Eng Methodol 11(4): 386–426
Bruneton E, Coupaye T, Leclercq M, Quéma V, Stefani JB (2006) The FRACTAL component model and its support in Java. Softw Pract Exp 36(11–12): 1257–1284
Basu A, Gallien M, Lesire C, Nguyen T-H, Bensalem S, Ingrand F, Sifakis J (2008) Incremental component-based construction and verification of a robotic system. In: 18th European conference on artificial intelligence. Frontiers in artificial intelligence and applications, vol 178. IOS, pp 631–635 Press
Bensalem S, Griesmayer A, Legay A, Nguyen T-H, Sifakis J, Yan R (2011) D-finder 2: towards efficient correctness of incremental design. In: NASA formal methods. Lecture notes in computer science, vol 6617. Springer, New York, pp 453–458
Bures T, Hnetynka P, Plasil F (2006) SOFA 2.0: balancing advanced features in a hierarchical component model. In: 4th international conference on software engineering research, management and applications. IEEE, pp 40–48
Brada P (2002) Metadata support for safe component upgrades. In: 26th international computer software and applications conference. IEEE, pp 1017–1021
Brada P (2011) Enhanced type-based component compatibility using deployment context information. Electron Notes Theor Comput Sci 279(2): 17–31
Beyer D, Wendler P (2013) Reuse of verification results. In: Model checking software. Lecture notes in computer science, vol 7976. Springer, New York, pp 1–17
Cheung E, Chen X, Hsieh H, Davare A, Sangiovanni-Vincentelli A, Watanabe Y (2009) Runtime deadlock analysis for system level design. Des Autom Embed Syst 13(4): 287–310
Chi Z (2009) Components composition compatibility checking based on behavior description and roles division. In: International conference on management of e-commerce and e-government. IEEE, pp 262–265
Chen X, He J, Liu Z, Zhan N (2007) A model of component-based programming. In: International symposium on fundamentals of software engineering. Lecture notes in computer science, vol 4767. Springer, New York, pp 191–206
Cheung S, Kramer J (1996) Context constraints for compositional reachability analysis. ACM Trans Softw Eng Methodol 5(4): 334–377
Cordy M, Schobbens P, Heymans P, Legay A (2012) Towards an incremental automata-based approach for software product-line model checking. In: 16th international software product line conference. ACM, New York, pp 74–81
Craig DC, Zuberek WM (2007) Compatibility of software components-modeling and verification. In: International conference on dependability of computer systems. IEEE, pp 11–18
DeMichiel L, Keith M (2006) Enterprise javabeans specification, version 3.0. Technical Report JSR 220, Sun Microsystems
Dias MS, Richardson DJ (2002) Identifying cause and effect relations between events in concurrent event-based components. In: 17th IEEE international conference on automated software engineering. IEEE, pp 245–248
Dihego, J, Sampaio ACA, Oliveira MVM (2015) Constructive extensibility of trustworthy component-based systems. In: Proceedings of the 30th annual ACM symposium on applied computing (SAC’15). ACM, New York
Fitzgerald J, Foster S, Ingram C, Larsen PG, Woodcock J (2013) Model-based engineering for systems of systems: the compass manifesto. Technical report, COMPASS. http://www.compass-research.eu/Project/Publications/MBESoS.pdf. Accessed 22 Apr 2016
Farias A, Guéhéneuc Y (2003) On the coherence of component protocols. Electron Notes Theor Comput Sci 82(5): 42–53
Findler RB, Latendresse M, Felleisen M (2001) Behavioral contracts and behavioral subtyping. ACM SIGSOFT Softw Eng Notes 26(5): 229–236
Formal Systems (Europe) Ltd. (1998) Process behaviour explorer—ProBE user manual
Formal Systems Ltd. (2012) FDR2: user manual, version 2.94
George B (1986) Mascot 3: an informal introductory tutorial. Softw Eng J 1(7): 95–102
Gößler G, Graf S, Majster-Cederbaum M, Martens M, Sifakis J. (2006) Ensuring properties of interaction systems. In: Theory and practice on program analysis and compilation. Lecture notes in computer science, vol 4444. Springer, New York, pp 201–224
Gößler G, Graf S, Majster-Cederbaum M, Martens M, Sifakis J (2007) An approach to modelling and verification of component based systems. In: Current trends in theory and practice of computer science. Lecture notes in computer science, vol 4362. Springer, New York, pp 295–308
Ghezzi C (2012) Evolution, adaptation, and the quest for incrementality. In: Large-scale complex it systems. Development, operation and management. Springer, New York, pp 369–379
Gibson-Robinson T, Armstrong P, Boulgakov A, Roscoe AW (2014) FDR3—a modern model checker for CSP. In: Erika Ábrahám, Klaus Havelund (eds) Tools and algorithms for the construction and analysis of systems. Lecture notes in computer science, vol 8413, pp 187–201
Hepner M, Gamble R, Kelkar M, Davis L, Flagg D (2006) Patterns of conflict among software components. J Syst Softw 79(4): 537–551
Hennicker R, Janisch S, Knapp A (2010) On the observable behaviour of composite components. ENTCS 260: 125–153
He J, Li X, Liu Z (2006) rCOS: a refinement calculus of object systems. Theor Comput Sci 365(1–2): 109–142
He J, Li X, Liu Z (2006) A theory of reactive components. Electron Notes Theor Comput Sci 160: 173–195
Hoare CAR (1985) Communicating sequential processes. Prentice-Hall, USA
Ivers J, Moreno G (2008) PACC starter kit: developing software with predictable behavior. In: ICSE companion. ACM, New York, pp 949–950
Kwiatkowska XWM (2007) Compositional state space reduction using untangled actions. In: 13th international workshop on expressiveness in concurrency. Electron Notes Theor Comput Sci 175:27–46
Lazić R (1999) A semantic study of data-independence with applications to the mechanical verification of concurrent systems. Ph.D. thesis, Oxford University, Oxford
Leavens G, Dhara K (2000) Concepts of behavioral subtyping and a sketch of their extension to Component-Based systems. In: Foundations of component-based systems. Cambridge University Press, Cambridge, pp 113–135
Leveson N (1995) Safeware: system safety and computers. Addison-Wesley, Menlo Park
Lambertz C, Majster-Cederbaum ME (2010) Port protocols for deadlock-freedom of component systems. In: Bliudze S, Bruni R, Grohmann D, Silva A (eds) ICE. EPTCS, vol 38, pp 7–11
Lau K-K, Ukis V (2005) Component metadata in component-based software development: a survey. Preprint CSPP-34, School of Computer Science, The University of Manchester, Manchester
Liskov BH, Wing JM (1994) A behavioural notion of subtyping. ACM Trans Program Lang Syst 16(6):1811–1841
Mahoney M (1990) The roots of software engineering. CWI Q 3(4): 325–334
Martin JMR (1996) The design and construction of deadlock-free concurrent systems. Ph.D. thesis, University of Buckingham, Buckingham
Majster-Cederbaum M, Martens M (2007) Robustness in interaction systems. In: 27th international conference on formal methods for networked and distributed systems. Lecture notes of computer science, vol 4574. Springer, New York, pp 325–340
Majster-Cederbaum M, Martens M (2008) Compositional analysis of deadlock-freedom for tree-like component architectures. In: 8th ACM international conference on embedded software. ACM, New York, pp 199–206
Majster-Cederbaum M, Martens M, Minnameier C (2007) A polynomial-time checkable sufficient condition for deadlock-freedom of component-based systems. In: SOFSEM 2007: theory and practice of computer science, pp 888–899
Majster-Cederbaum M, Martens M, Minnameier C (2008) Liveness in interaction systems. Electron Notes Theor Comput Sci 215: 57–74
Merson P, Hissam S (2005) Predictability by construction. In: 20th annual ACM SIGPLAN conference on object-oriented programming, systems, languages, and applications. ACM, New York, pp 134–135
Microsoft Developer Network (2011) Component object model technologies. Technical report. http://www.microsoft.com. Accessed 22 Apr 2016
Minnameier C (2007) Local and global deadlock-detection in component-based systems are NP-hard. Inf Process Lett 103(3): 105–111
Mota A, Jesus J, Gomes A, Ferri F, Watanabe E (2010) Evolving a safe system design iteratively. In: 29th international conference computer safety, reliability, and security. Lecture notes in computer science, vol 6351. Springer, New York, pp 361–374
Magee J, Kramer J (1996) Dynamic structures in software architecture. In: 4th symposium on the foundations of software engineering. ACM, New York, pp 3–14
Medvidovic N, Taylor R (2000) A classification and comparison framework for software architecture description languages. Trans Softw Eng 26(1): 70–93
Martin JMR, Welch PH (1997) A design strategy for deadlock-free concurrent systems. Transput Commun 3(4): 215–232
Nierstrasz O (1993) Regular types for active objects. ACM Sigplan Not 28(10): 1–15
Object Management Group (2007) Unified modeling language, superstructure, V2.1.2. Technical report formal/2007-11-02, OMG, 2007. OMG adopted specification
Orso A, Do H, Rothermel G, Harrold MJ, Rosenblum DS (2007) Using component metadata to regression test component-based software. Softw Test Verif Reliab 17(2): 61–94
OMG (2012) OMG systems modeling language (OMG SysML), version 1.3. Technical report, Object Management Group
Ouaknine J, Palikareva H, Roscoe AW, Worrell J (2013) A static analysis framework for livelock freedom in CSP. Log Methods Comput Sci 9(3):1–53
Oliveira MVM, Sampaio ACA, Antonino PRG, Ramos RT, Cavancalti ALC, Woodcock JCP (2013) Compositional analysis and design of CML models. Technical report D24.1, COMPASS deliverable. http://www.compass-research.eu/. Accessed 22 Apr 2016
Papadopoulos G, Arbab F (1998) Coordination models and languages. Adv Comput Eng Large Syst 46: 330–401
Plasil F (2005) Enhancing component specification by behavior description: the SOFA experience. In: 4th international symposium on Information and communication technologies. Trinity College, Dublin, p 190
Plasil F, Visnovsky S (2002) Behavior protocols for software components. IEEE Trans Softw Eng 28(11): 1056–1076
Roscoe AW (1998) The theory and practice of concurrency. In: Prentice-Hall series in computer science. Prentice-Hall, USA
Roscoe AW (2005) The pursuit of buffer tolerance. Technical report, Oxford University, Oxford
Roscoe AW (2006) Confluence thanks to extensional determinism. Electron Notes Theor Comput Sci 162: 305–309
Roscoe AW (2010) Understanding concurrent systems, 1st edn. Springer, New York
Ryan P, Schneider S (2001) Process algebra and non-interference. J Comput Secur 9(1): 75–103
Ramos RT, Sampaio ACA, Mota AC (2006) Transformation laws for UML-RT. In: 8th IFIP international conference on formal methods for open object-based distributed systems. Lecture notes in computer science, vol 4037. Springer, New York, pp 123–138
Ramos RT, Sampaio ACA, Mota AC (2009) Systematic development of trustworthy component systems. In: 2nd world congress on formal methods. Lecture notes in computer science, vol 5850. Springer, New York, pp 140–156
Ramos RT, Sampaio ACA, Mota AC (2010) Conformance notions for the coordination of interaction components. Sci Comput Program 75(5): 350–373
Selic B, Gullekson G, Ward P (1994) Real-time object-oriented modeling. Wiley, New York
Sifakis J (2010) Component-based construction of heterogeneous real-time systems in bip. In: The future of software engineering, p 150
Sampaio A, Nogueira S, Mota A, Isobe Y (2014) Sound and mechanised compositional verification of input-output conformance. Softw Test Verif Reliab 24(4): 289–319
Spitznagel B (2004) Compositional transformation of software connectors. Ph.D. thesis, Carnegie Mellon University, Number: CMU-CS-04-128.
Selic B, Rumbaugh J (1998) Using UML for modeling complex RealTime systems. Technical report, Rational Software Corporation
Sinha N, Singhania N, Chandra S, Sridharan M (2012) Alternate and learn: finding witnesses without looking all over. In: Computer aided verification. Springer, New York, pp 599–615
Szyperski C (2002) Component software: beyond object-oriented programming. Addisonn-Wesley, USA
Wallnau KC (2003) Volume III: a technology for predictable assembly from certifiable components. Technical Report CMU/SEI-2003-TR-009, Software Engineering Institute, Carnegie Mellon University, Pittsburgh
Wehrheim H (2000) Specification of an automatic manufacturing system: a case study in using integrated formal methods. In: 3rd internationsl conference fundamental approaches to software engineering. Lecture notes in computer science, vol 1783. Springer, New York, pp 334–348
Zhan N, Kang E, Liu Z (2010) Component publications and compositions. Unifying Theor Program 5713: 238–257
Zeng H, Miao H (2010) Deadlock detection for parallel composition of components. In: Computer and information science, pp 23–34
Zuberek W (2011) Incremental composition of software components. In: Dependable computer systems, pp 301–311
Author information
Authors and Affiliations
Corresponding author
Additional information
Eerke Albert Boiten and Jim Woodcock
Rights and permissions
About this article
Cite this article
Oliveira, M.V.M., Antonino, P., Ramos, R. et al. Rigorous development of component-based systems using component metadata and patterns. Form Asp Comp 28, 937–1004 (2016). https://doi.org/10.1007/s00165-016-0375-1
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00165-016-0375-1