Abstract
Component-based software development is a promising approach for controlling the complexity and quality of software systems. Nevertheless, recent advances in quality control techniques do not seem to keep up with the growing complexity of embedded software; embedded systems often consist of dozens to hundreds of software/hardware components that exhibit complex interaction behavior. Unanticipated quality defects in a component can be a major source of system failure. To address this issue, this paper suggests a design verification approach integrated into the model-driven, component-based development methodology Marmot. The notion of abstract components—the basic building blocks of Marmot—helps to lift the level of abstraction, facilitates high-level reuse, and reduces verification complexity by localizing verification problems between abstract components before refinement and after refinement. This enables the identification of unanticipated design errors in the early stages of development. This work introduces the Marmot methodology, presents a design verification approach in Marmot, and demonstrates its application on the development of a μ-controller-based abstraction of a car mirror control system. An application on TinyOS shows that the approach helps to reuse models as well as their verification results in the development process.
Similar content being viewed by others
References
Adamek J., Plasil F.: Component composition errors and update atomicity: static analysis. J. Softw. Maint. Evol. Res. Pract. 17(4), 363–377 (2005)
Allen R., Garlan D.: A formal basis for architectural connection. ACM Trans. Softw. Eng. Methodol. 6, 213–249 (1997)
Arbab, F.: Reo: a channel-based coordination model for component composition. Math. Struct. Comput. Sci. (2004)
Atkinson C., Bayer J., Bunse C. et al.: Component-Based Product Line Engineering with UML. Addison-Wesley, Reading (2002)
Bondavalli A., Cin M.D., Latella D., Majzik I., Pataricza A., Savoia G.: Dependability analysis in the early phases of UML based system design. Int. J. Comput. Syst. Sci. Eng. 16(5), 265–275 (2001)
Braun, A.W., Wallnau, K.C.: The Current State of CBSE. IEEE Software (1998)
Bunse, C., Groß, H.-G., Peper, C.: Embedded system construction—evaluation of model-driven and component-based development approaches. In: MoDELS Workshops, pp. 66–77 (2008)
Bunse C., Levy N., Freiling F.: A taxonomy on component-based software engineering methods. In: Reussner, R., Stafford, J., Szyperski, C. (eds) Architecting Systems with Trustworthy Components, volume LNCS 3938, Springer, New York (2003)
Campbell L., Cheng B., McUmber W., Stirewalt R.E.K.: Automatically detecting and visualising errors in UML diagrams. Requir. Eng. 7(4), 264–287 (2002)
Cheesman J., Daniels J.: UML Components—A Simple Process for Specifying Component-Based Software. Addison-Wesley, Amsterdam (2000)
Choi, Y.: Checking interaction consistency in MARMOT component refinements. In: Proceedings of SOFSEM 2007, LNCS 4362, January 2007
Choi, Y.: Verification of an abstract component using communication patterns. In: 2009 ICSE Workshop on Model-Based Methodologies for Pervasive and Embedded Software, May 2009
Choi, Y., Bunse, C.: Towards component-based design and verification of a μ-controller. In: 11th International Symposium on Component-Based Software Engineering, pp. 196–211 (2008)
Clarke E.M., Grumberg O., Peled D.: Model Checking. MIT Press, Cambridge (1999)
Clarke E.M., Wing J. et al.: Formal methods: state of the art and future directions. ACM Comput. Surv. 28(4), 626–643 (1996)
D’Souza D., Wills A.C.: Objects, Components and Frameworks With UML: The Catalysis Approach. Addison-Wesley, Reading (1998)
EasterBrook, S., Lutz, R., Covington, R., et al.: Experiences using lightweight formal methods for requirements modeling. IEEE Trans. Softw. Eng. (1998)
Engels G., Kuester J.M., Groenwegen L.: Consistent interaction of software components. J. Integr. Des. Process Sci. 6(4), 2–22 (2003)
Formal Systems Europe Ltd.: Failures-Divergence-Refinement: FDR2 User Manual (1997)
Fung M., Henderson-Sellers B., Yap L.-M.: A comparative evaluation of OO methodologies from a business rules and quality perspective. Aust. Comput. J. 29(3), 95–101 (1997)
Gannod, G.C., Lutz, R.R., Cantu, M.: Embedded software for a space interferometry system: automated analysis of a software product line architecture. In: IEEE International Conference on Performance, Computing, and Communications, April 2001
Gay, D., Levis, P., Behren, R., et al.: The nesC language: a holistic approach to networked embedded systems. In: Conference on Programming Language Design and Implementation, pp. 1–11, June 2003
Gomes, L., et al.: Towards usage of formal methods within embedded systems co-design. In: 10th IEEE International Conference on Emerging Technologies and Factory Automation, September 2005
Graf, S., Saidi, H.: Construction of abstract state graphs with PVS. In: Proceedings of the Computer Aided Verification (CAV 1997), pp. 72–83 (1997)
Haertig H., Zschaler S., Pohlack M. et al.: Enforceable component-based realtime contracts: supporting realtime properties from software development to execution. ACM Trans. Softw. Eng. Methodol. 35, 1–31 (2007)
Hill, J., Szewczyk, R., Woo, A., et al.: System architecture directions for networked sensors. In: 9th International Conference on Architectural Support for Programming Languages and Operating Systems, pp. 93–104, November 2000
Holzmann G.J.: Design and Validation of Computer Protocols. Prentice Hall Software Series, Englewood Cliffs (1991)
Holzmann G.J.: The SPIN Model Checker: Primer and Reference Manual. Addison-Wesley, Reading (2003)
Hooman, J., Kugler, H., Ober, I., et al.: Supporting UML-based development of embedded systems by formal techniques. Softw. Syst. Model. (2008)
Hsiung, P.-A.: Formal synthesis and code generation of embedded real-time software. In: 9th International Symposium on Hardware/Software Codesign, April 2001
Jackson D., Wing J.: Lightweight formal methods. IEEE Comput. 29, 21–22 (1996)
Johnson, S.D.: Formal methods in embedded design. IEEE Computer, November 2003
Kern, C., Greenstreet, M.: Formal verification in hardware design: a survey. ACM Trans. Des. Autom. E. Syst. April 1999
Khan, M.U., Geihs, K., et al.: Model-driven development of real-time systems with UML 2.0 and C. In: Proceedings of the 3rd International Workshop on Model-based Methodologies for Pervasive and Embedded Software at the 13th IEEE International Conference on Engineering (2006)
Latella D., Majzik I., Massink M.: Automatic verification of a behavioral subset of UML statechart diagrams using the SPIN model-checker. Form. Asp. Comput. 11, 637–664 (1999)
Medvidovic N., Taylor R.N.: A classification and comparison framework for software architecture description languages. IEEE Trans. Softw. Eng. 26(1), 70–93 (2000)
Mikk, E., Lakhnech, Y., Siegel, M., Holzmann, G.: Implementing statecharts in PROMELA/SPIN. In: Second IEEE Workshop on Industrial Strength Formal Specification Techniques, October 1998
Milner R.: Communicating and Mobile Systems: The π-Calculus. Cambridge University Press, Cambridge (1999)
Mitchell B.: Characterizing comminication channel deadlocks in sequence diagrams. IEEE Trans. Softw. Eng. 34(3), 305–320 (2008)
Moriconi M., Qian X., Riemenschneider R.A.: Correct architecture refinement. IEEE Trans. Softw. Eng. 21(4), 356–372 (1995)
Naeser, G., Lundqvist, K.: Component-based approach to run-time kernel specification and verification. In: 17th Euromicro Conference on Real-Time Systems, 2005
Ober, I.: Action specification in OMEGA. Technical Report, Verimag (2004). http://www-omega.imag.fr/
Object Management Group.: UML2.0 superstructure specifications
Ribeiro, O.R., Fernandes, J.M., Pinto, L.F.: Model checking embedded systems with PROMELA. In: 12th IEEE International Conference and Workshops on the Engineering of Computer-Based Systems (2005)
Rushby, J., Stringer-Calvert, D.W.J.: A less elementary tutorial for the PVS specification and verification system. Technical Report CSL-95-10, SRI International, August 1996
Szyperski C.: Component Software: Beyond Object-oriented Programming. Addison-Wesley, Reading (2002)
Trofin, M., Murphy, J.: Static verification of component composition in contextual composition frameworks. Software Tools and Technology Transfer (2008)
van der Aalst W.M.P., van Hee K.M., van der Toorn R.A.: Component-based software architectures: a framework based on inheritance of behavior. Sci. Comput. Program. 42(2–3), 129–171 (2002)
Xie, F., Browne, J.C.: Verified systems by composition from verified components. In: Proceedings of Joint Conference ESEC/FSE (2003)
Yang, W., Chung, M.-K., Kyung, C.-M.: Current status and challenges of soc verification for embedded systems market. In: IEEE International Conference on System-On-Chip (2003)
Ziadi, T., Helouët, L., Jezequel, J.-M.: Revisiting statechart synthesis with an algebraic approach. In: 26th International Conference on Software Engineering (2004)
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by Dr. Perry Alexander.
This paper is an extended version of Choi [11] and Choi and Bunse [13]. This work has been supported by the Korea Research Foundation Grant funded by the Korean Government (KRF-2008-331-D00525) and the Engineering Research Center of Excellence Program of the Korean Ministry of Education, Science and Technology (MEST)/Korea Science and Engineering Foundation (KOSEF), grant number R11-2008-007-03002-0.
Rights and permissions
About this article
Cite this article
Choi, Y., Bunse, C. Design verification in model-based μ-controller development using an abstract component. Softw Syst Model 10, 91–115 (2011). https://doi.org/10.1007/s10270-010-0147-y
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10270-010-0147-y