Abstract
Model-driven and component-based software development seems to be a promising approach to handling the complexity and at the same time increasing the quality of software systems. Although the idea of assembling systems from pre-fabricated components is appealing, quality becomes a major issue, especially for embedded systems. Quality defects in one component might not affect the quality of the component but that of others. This paper presents an integrated, formal verification approach to ensure the correct behavior of embedded software components, as well as a case study that demonstrates its practical applicability. The approach is based on the formalism of abstract components and their refinements, with its focus being on interaction behavior among components. The approach enables the identification of unanticipated design errors that are difficult to find and costly to correct using traditional verification methods such as testing and simulation.
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
A longer version of this paper is under review for publication in Formal Aspects of Computing.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Adamek, J., Plasil, F.: Component composition errors and update atomicity: Static analysis. Journal of Software Maintenance and Evolution: Research and Practice (September 2005)
Atkinson, C., Bayer, J., Bunse, C., et al.: Component-based Product Line Engineering with UML. Addison-Wesley Publishing Company, Reading (2002)
Barros, T., Henrio, L., Madelaine, E.: Behavioural models for hierarchical components. In: International SPIN Workshop on Model Checking Software (August 2005)
Choi, Y.: Checking interaction consistency in MARMOT component refinements. In: van Leeuwen, J., Italiano, G.F., van der Hoek, W., Meinel, C., Sack, H., Plášil, F. (eds.) SOFSEM 2007. LNCS, vol. 4362, pp. 832–843. Springer, Heidelberg (2007)
Engels, G., Kuester, J.M., Groenwegen, L.: Consistent interaction of software components. Journal of Integrated Design and Process Science 6(4), 2–22 (2003)
Graf, S., Saidi, H.: Construction of abstract state graphs with PVS. In: Grumberg, O. (ed.) CAV 1997. LNCS, vol. 1254, pp. 72–83. Springer, Heidelberg (1997)
Object Management Group. UML2.0 superstructure specifications
Grumberg, O., Veith, H. (eds.): 25 Years of Model Checking: History, Achievements, Perspectives. Springer, Heidelberg (2008)
Guelfi, N., Mammar, A.: A formal semantics of timed activity diagrams and its PROMELA translation. In: 12th Asia-Pacific Software Engineering Conference (2005)
Holzmann, G.J.: Design and Validation of Computer Protocols. Prentice Hall Software Series (1991)
Holzmann, G.J.: The SPIN Model Checker: Primer and Reference Manual. Addison-Wesley Publishing Company, Reading (2003)
Hsiung, P.-A.: Formal synthesis and code generation of embedded real-time software. In: 9th International Symposium on Hardware/Software Codesign (April 2001)
Johnson, S.D.: Formal methods in embedded design. IEEE Computer (November 2003)
Kern, C., Greenstreet, M.: Formal verification in hardware design: A survey. ACM Transactions on Design Automation of E. Systems (April 1999)
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)
Naeser, G., Lundqvist, K.: Component-based approach to run-time kernel specification and verification. In: 17th Euromicro Conference on Real-Time Systems (2005)
Pnueli, A.: The temporal logic of programs. In: Proc. 18th IEEE Symp. Foundations of Computer Science, pp. 46–57 (1977)
Reussner, R.H., Poernomo, I., Schmidt, H.W.: Reasoning about software architectures with contractually specified components. In: Component-Based Software Quality: Methods and Techniques, State-of-the-Art Survey (2003)
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)
Song, H., Compton, K.J.: Verifying pi-calculus processes by promela translation. Technical report, Department of Electrical Engineering and Computer Science, University of Michigan (2003)
Xie, F., Browne, J.C.: Verified systems by composition from verified components. In: Proceedings of Joint Conference ESEC/FSE (2003)
Yang, W., Moo-Kyeong, Kyung, C.-M.: Current status and challenges of soc verification for embedded systems market. In: IEEE International Conference on System-On-Chip (2003)
Zimmerova, B., Brim, L., Cerna, I., Varekova, P.: Component-interaction automata as a verification-oriented component-based system specification. In: Workshop on Specification and Verification of Component-Based Systems (2005)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Choi, Y., Bunse, C. (2008). Towards Component-Based Design and Verification of a μ-Controller. In: Chaudron, M.R.V., Szyperski, C., Reussner, R. (eds) Component-Based Software Engineering. CBSE 2008. Lecture Notes in Computer Science, vol 5282. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-87891-9_13
Download citation
DOI: https://doi.org/10.1007/978-3-540-87891-9_13
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-87890-2
Online ISBN: 978-3-540-87891-9
eBook Packages: Computer ScienceComputer Science (R0)