Modeling software product lines using color-blind transition systems

Special section FASE'04/05

Abstract

Families of embedded discrete finite state programs are modeled using input-enabled alternating transition systems. One model describes all functionality, while each variant is defined by an environment, describing its possible uses. The environments show both the inputs that a system can receive and indicate which of the system’s responses are relevant for the environment. The latter trait, called color-blindness, creates new possibilities for system transformations in the specialization process. We demonstrate the use of the framework by applying it to two classes of realistic design languages. An example of a product line of alarm clocks is used throughout the article.

Keywords

Product lines Embedded software Labeled transition systems Modeling Relativized simulation 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Appel A.A. (1998). Modern Compiler Implementation in C. Cambridge University Press, Cambridge Google Scholar
  2. 2.
    Berry G. (2000). The foundations of Esterel. In: Plotkin, G., Stirling, C. and Tofte, M. (eds) Proof, Language and Interaction. Essays in Honour of Robin Milner, pp 425–454. MIT Press, Cambridge Google Scholar
  3. 3.
    Bryant R.E. (1986). Graph-based algorithms for boolean function manipulation. IEEE Trans. Comput. 35(8): 677–691 MATHCrossRefGoogle Scholar
  4. 4.
    Clarke E.M. (1999). Model Checking. MIT Press, Cambridge Google Scholar
  5. 5.
    Clements P. and Northrop L. (2001). Software Product Lines: Practices and Patterns. Addison-Wesley, Reading Google Scholar
  6. 6.
    Cormen T.H., Leiserson C.E., Rivest R.L. and Stein C. (2001). Introduction to Algorithms, 2nd edn. MIT Press, Cambridge MATHGoogle Scholar
  7. 7.
    Czarnecki, K., Antkiewicz, M.: Mapping features to models: a template approach based on superimposed variants. In: Glück, R., Lowry, M. (eds.) Generative Programming and Component Engineering (GPCE), vol. 3676 of LNCS, pp. 422–437. Springer, Heidelberg (2005)Google Scholar
  8. 8.
    Danvy, O., Glück, R., Thiemann, P. (eds.): Partial Evaluation, vol. 1110 of LNCS, Dagstuhl Castle, Germany. Springer, Heidelberg (1996)Google Scholar
  9. 9.
    de Alfaro, L., Henzinger, T.A.: Interface automata. In: Symposium on Foundations of Software Engineering (FSE), pp. 109–120. ACM Press, New York (2001)Google Scholar
  10. 10.
    Etalle, S., Gabbrieli, M.: Partial evaluation of concurrent constraint languages. ACM Comput. Surv. 30(3es) (1998)Google Scholar
  11. 11.
    Gomaa H. (2001). Design Software Product Lines with UML. Addison-Wesley, Reading Google Scholar
  12. 12.
    Harel D. (1987). Statecharts: a visual formalism for complex systems. Sci. Comput. Program. 8: 231–274 MATHCrossRefMathSciNetGoogle Scholar
  13. 13.
    Hatcliff, J., Mogensen, T.E., Thiemann, P. (eds.): Partial Evaluation: Practice and Theory. International Summer School, vol. 1706 of LNCS. Springer, Heidelberg (1999)Google Scholar
  14. 14.
    Hoare C.A.R. (1985). Communicating Sequential Processes. Prentice Hall, Englewood Cliffs MATHGoogle Scholar
  15. 15.
    Hosoya, H., Kobayashi, N., Yonezawa, A.: Partial evaluation scheme for concurrent languages and its correctness. In: Bougé, L., Fraigniaud, P., Mignotte, A., Robert, Y. (eds.) Euro-Par’96, vol. 1123 of LNCS, pp. 625–632. Springer, Heidelberg 1996Google Scholar
  16. 16.
    IAR visualSTATE®. http://www.iar.com/Products/VSGoogle Scholar
  17. 17.
    Igarashi, A., Kobayashi, N.: A generic type system for the pi-calculus. In: POPL 2001. ACM Press, New York (2001)Google Scholar
  18. 18.
    Ilog CPLEX. http://www.ilog.com/products/cplexGoogle Scholar
  19. 19.
    Jones N.D., Gomard C.K. and Sestoft P. (1993). Partial Evaluation and Automatic Program Generation. Prentice Hall, Englewood Cliffs MATHGoogle Scholar
  20. 20.
    Larsen K.G. and Milner R. (1992). A compositional protocol verification using relativized bisimulation. Inf. Comput. 99(1): 80–108 MATHCrossRefMathSciNetGoogle Scholar
  21. 21.
    Larsen, K.G.: Context Dependent Bisumulation Between Processes. Ph.D. thesis, Edinburgh University (1986)Google Scholar
  22. 22.
    Larsen K.G. (1987). A context dependent equivalence between processes. Theor. Comput. Sci. 49: 184–215 CrossRefGoogle Scholar
  23. 23.
    Larsen, K.G., Larsen, U., Wasowski, A.: Color-blind specifications for transformations of reactive synchronous programs. In: Cerioli, M. (ed.) Fundamental Approaches to Software Engineering (FASE), vol. 3442 of LNCS. Springer, Heidelberg (2005)Google Scholar
  24. 24.
    Lind-Nielsen J., Andersen H.R., Hulgaard H., Behrmann G., Kristoffersen K. and Larsen K.G. (2001). Verification of large state/event systems using compositionality and dependency analysis. Formal Methods Syst. Des. 18(1): 15–23 CrossRefGoogle Scholar
  25. 25.
    Lynch N. (1988). I/O automata: a model for discrete event systems. Annual Conference on Information Sciences and Systems, pp. 29–38. Princeton University, Princeton Google Scholar
  26. 26.
    Milner R. (1989). Communication and Concurrency. Prentice Hall, Englewood Cliffs MATHGoogle Scholar
  27. 27.
    Muchnick S.S. (1997). Advanced Compiler Design and Implementation. Morgan Kaufmann Publishers, San Francisco Google Scholar
  28. 28.
    Murakami, M.: Partial evaluation of reactive communciating processes using temporal logic formulas. In: Workshop on Algebraic and Object-Oriented Approaches to Software Science (1995)Google Scholar
  29. 29.
    Object Management Group: OMG Unified Modelling Language specification (1999). http://www.omg.orgGoogle Scholar
  30. 30.
    Rajamani, S.K., Rehof, J.: Conformance checking for models of asynchronous message passing software. In Brinksma, E., Larsen, K.G. (eds.) Conference on Computer Aided Verification (CAV), vol. 2404 of LNCS, pp. 166–179. Springer, Heidelberg (2002)Google Scholar
  31. 31.
    Scope. http://www.itu.dk/~wasowski/scopeGoogle Scholar
  32. 32.
    Sun Microsystems. Java card(TM) specification. http://java.sun.com/products/javacard/specs.htmlGoogle Scholar
  33. 33.
    Tarski A. (1955). A lattice-theoretical fixpoint theorem and its applications. Pac. J. Math. 5: 285–309 MATHMathSciNetGoogle Scholar
  34. 34.
    Tretmans J. (1996). Test generation with inputs, outputs and repetitive quiescence. Softw. Concepts Tools 17(3): 103–120 MATHGoogle Scholar
  35. 35.
    van Glabbeek, R.: The linear time-branching time spectrum (extended abstract). In: J.C.M. Beaten, J.W. Klop (eds.) Theories of Concurrency: Unification and Extension (CONCUR), vol. 458 of LNCS, pp. 278–297. Springer, Heidelberg (1990)Google Scholar
  36. 36.
    Wasowski, A.: Automatic generation of program families by model restrictions. In: Software Product Line Conference (SPLC), vol. 3154 of LNCS. Springer, Heidelberg (2004)Google Scholar
  37. 37.
    Wasowski, A.: Code Generation and Model Driven Development for Constrained Embedded Software. Ph.D. thesis, IT University of Copenhagen, January 2005Google Scholar

Copyright information

© Springer-Verlag 2007

Authors and Affiliations

  1. 1.CISSAalborg UniversityAalborgDenmark
  2. 2.IT University of CopenhagenCopenhagenDenmark

Personalised recommendations