Software & Systems Modeling

, Volume 9, Issue 2, pp 161–201 | Cite as

Formal specification of non-functional properties of component-based software systems

A semantic framework and some applications thereof
Regular Paper

Abstract

Component-based software engineering (CBSE) is viewed as an opportunity to deal with the increasing complexity of modern-day software. Along with CBSE comes the notion of component markets, where more or less generic pieces of software are traded, to be combined into applications by third-party application developers. For such a component market to work successfully, all relevant properties of components must be precisely and formally described. This is especially true for non-functional properties, such as performance, memory foot print, or security. While the specification of functional properties is well understood, non-functional properties are only beginning to become a research focus. This paper discusses semantic concepts for the specification of non-functional properties, taking into account the specific needs of a component market. Based on these semantic concepts, we present a new specification language QML/CS that can be used to model non-functional product properties of components and component-based software systems.

Keywords

Non-functional properties Formal specification Component-based software engineering QML/CS 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Aagedal, J.Ø.: Quality of Service Support in Development of Distributed Systems. PhD thesis, University of Oslo (2001)Google Scholar
  2. 2.
    Abadi M., Lamport L.: The existence of refinement mappings. Theor. Comput. Sci. 82(2), 253–284 (1991)MATHCrossRefMathSciNetGoogle Scholar
  3. 3.
    Abadi M., Lamport L.: An old-fashioned recipe for real time. ACM ToPLaS 16(5), 1543–1571 (1994)CrossRefGoogle Scholar
  4. 4.
    Abadi M., Lamport L.: Conjoining specifications. ACM ToPLaS 17(3), 507–534 (1995)CrossRefGoogle Scholar
  5. 5.
    Aigner, R., Pohl, C., Pohlack, M., Zschaler, S.: Tailor-made containers: Modeling non-functional middleware service. In: Bruel, J.-M., Georg, G., Hussmann, H., Ober, I., Pohl, C., Whittle, J., Zschaler, S. (eds.) Workshop on Models for Non-functional Aspects of Component-Based Software (NfC’04) at UML conference 2004, September 2004. Technical Report TUD-FI04-12 Sept.2004 at Technische Universität DresdenGoogle Scholar
  6. 6.
    Amundsen, S., Lund, K., Eliassen, F., Staehli, R.: QuA: platform-managed QoS for component architectures. In: Proceedings of the Norwegian Informatics Conference (NIK), Stavanger, Norway. Tapir Akademisk Forlag, Trondheim, Norway, November (2004)Google Scholar
  7. 7.
    Balarin F., Watanabe Y., Hsieh H., Lavagno L., Passerone C., Sangiovanni-Vincentelli A.: Metropolis: an integrated electronic system design environment. IEEE Comput. 36, 45–52 (2003)Google Scholar
  8. 8.
    Beugnard A., Jézéquel J.-M., Plouzeau N., Watkins D.: Making components contract aware. IEEE Comput. 32(7), 38–45 (1999)Google Scholar
  9. 9.
    Bézivin, J., Gérard S., Muller P.-A., Rioux, L.: MDA components: Challenges and opportunities. In: Evans, A., Sammut, P., Willans, J.S. (eds.) Proceedings of First International Workshop Metamodelling for MDA, pp. 23–41, York (2003)Google Scholar
  10. 10.
    Börger E.: The ASM refinement method. Formal Aspects Comput. 15(2–3), 237–257 (2003)MATHCrossRefGoogle Scholar
  11. 11.
    Börger E., Stärk R.: Abstract State Machines–A Method for High-Level System Design and Analysis. Springer, Berlin (2003)MATHGoogle Scholar
  12. 12.
    Broy M., Deimel A., Henn J., Koskimies K., Plášil F., Pomberger G., Pree W., Stal M., Szyperski C.: What characterizes a (software) component?. Softw. Concepts Tools 19(1), 49–56 (1998)CrossRefGoogle Scholar
  13. 13.
    Bruel, J.-M. (ed.): Proceedings of First International Workshop on Quality of Service in Component-Based Software Engineering, Toulouse, France. Cépaduès-Éditions, June (2003)Google Scholar
  14. 14.
    Cheesman J., Daniels J.: UML Components: A Simple Process for Specifying Component-Based Software. Addison-Wesley, Reading (2001)Google Scholar
  15. 15.
    Chen, S., Gorton, I., Liu, A., Liu, Y.: Performance prediction of COTS component-based enterprise applications. In: Crnkovic, I., Schmidt, H., Stafford, J., Wallnau, K. (eds.) Proceedings of Fifth ICSE Workshop on Component-Based Software Engineering (CBSE’2002): Benchmarks for Predictable Assembly, May (2002)Google Scholar
  16. 16.
    Chimaris, A., Papadopoulos, G.A.: Implementing QoS aware component-based applications. In: Meersman, R., Tari, Z. (eds.) On the Move to Meaningful Internet Systems 2004: CoopIS, DOA, and ODBASE: OTM Confederated International Conferences, LNCS, vol. 3291, pp. 1173–1189. Springer, Agia Napa (2004)Google Scholar
  17. 17.
    Chung J.-Y., Liu J.W.S., Lin K.-J.: Scheduling periodic jobs that allow imprecise results. IEEE Trans. Comput. 39(9), 1156–1174 (1990)CrossRefGoogle Scholar
  18. 18.
    Chung, L., Nixon, B.A., Yu, E., Mylopoulos, J.: Non-Functional Requirements in Software Engineering. The Kluwer international series in software engineering. Kluwer, Dordrecht (1999)Google Scholar
  19. 19.
  20. 20.
    Ciupke, O., Schmidt, R.: Components as context-independent units of software. In: WCOP 96, Special Issues in Object-Oriented Programming, Workshop Reader of the Tenth European Conference on Object-Oriented Programming ECOOP96, pp. 139–143. d.punkt.verlag, Heidelberg (1996)Google Scholar
  21. 21.
    Clark, T., Evans, A., Kent, S.: Engineering modelling languages: A precise meta-modelling approach. In: Kutsche, R.-D., Weber, H. (eds.) Proceedings of Fifth International Conference on Fundamental Approaches to Software Engineering (FASE 2002), LNCS, vol. 2306, pp. 159–173. Springer, Grenoble (2002)Google Scholar
  22. 22.
    Cottenier, T., van den Berg, A., Elrad, T.: Joinpoint inference from behavioral specification to implementation. In: Ernst, E. (ed.) 21st European Conference on Object-Oriented Programming (ECOOP’07), LNCS, vol. 4609, pp. 476–500. Springer, Berlin (2007)Google Scholar
  23. 23.
    Councill W.T., Heinemann G.T.: Definition of a software component and its elements. In: Heinemann, G.T., Councill, W.T. (eds) Component-Based Software Engineering—Putting the Pieces Together, pp. 5–20. Addison-Wesley, Reading (2001)Google Scholar
  24. 24.
    Crnkovic, I., Larsson, M., Preiss, O.: Concerning predictability in dependable component-based systems: Classification of quality attributes. In: de Lemos, R., et al. (eds.), Architecting Dependable Systems III, LNCS, vol. 3549, pp. 257–278. Springer, Berlin (2005)Google Scholar
  25. 25.
    Filman R.E., Elrad T., Clarke S., Akşit M.: Aspect-Oriented Software Development. Addison-Wesley, Reading (2004)Google Scholar
  26. 26.
    Fishburn P.: Preference structures and their numerical representations. Theor. Comput. Sci. 217(2), 359–383 (1999)MATHCrossRefMathSciNetGoogle Scholar
  27. 27.
    Ford, G.: Measurement theory for software engineers. In: Lecture Notes on Engineering Measurement for Software Engineers. Carnegie Mellon University. CMU/SEI report CMU/SEI-93-EM-9 (1993)Google Scholar
  28. 28.
    Franch, X.: Systematic formulation of non-functional characteristics of software. In: Proceedings of Third International Conference on Requirements Engineering, IEEE Computer Society, pp. 174–181 (1998)Google Scholar
  29. 29.
    Frølund, S., Koistinen, J.: Qml: A language for quality of service specification. Technical report, Hewlett-Packard Software Technology Laboratory. Technical Report No. HPL-98-10 (1998)Google Scholar
  30. 30.
    Gościński A.: Distributed Operating Systems: The logical design. Addison-Wesley, Reading (1991)Google Scholar
  31. 31.
    Griffel F.: Componentware. dpunkt.verlag, Heidelberg (1998)MATHGoogle Scholar
  32. 32.
    Hamann, C.-J.: On the quantitative specification of jitter constrained periodic streams. In: Proceedings of Fifth International Workshop on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems (MASCOTS’97). IEEE Computer Society (1997)Google Scholar
  33. 33.
    Hamann, C.-J., Zschaler, S.: Scheduling real-time components using jitter-constrained streams. In: Proceedings of Workshop on Advances in Quality of Service Management (AQuSerM’06) (2006)Google Scholar
  34. 34.
    Härtig, H., Zschaler, S., Pohlack, M., Aigner, R., Göbel, S., Pohl, C., Röttger, S.: Enforceable component-based realtime contracts—supporting realtime properties from software development to execution. Springer Real Time Syst. J. 35(1), January (2007)Google Scholar
  35. 35.
    Hissam, S.A., Moreno, G.A., Stafford, J.A., Wallnau, K.C.: Packaging predictable assembly. In: Bishop, J. (ed.) Proceedings of IFIP/ACM Working Conference on Component Deployment (CD 2002), LNCS, vol. 2370, pp. 108–126. Springer, Berlin (2002)Google Scholar
  36. 36.
    Hofmeister, C., Nord, R.L., Soni, D.: Describing software architecture with UML. In: Donohoe, P. (ed.) Software Architecture. Proceedings of First Working IFIP Conference on Software Architecture (WICSA1), pp. 145–159 (1999)Google Scholar
  37. 37.
    Hu, T., Marcus, L.: Semantic foundations of an adaptive security infrastructure: Delegation. Unpublished (2005)Google Scholar
  38. 38.
    Information technology–quality of service: Framework. ISO/IEC 13236:1998, ITU-T X.641 (1998)Google Scholar
  39. 39.
    Jacobson I., Griss M., Jonsson P.: Software Reuse–Architecture, Process and Organization for Business Success. ACM Press, London (1997)Google Scholar
  40. 40.
    Jones, C.B.: Specification and design of (parallel) programs. In: Manson, R.E.A. (ed.) Proceedings of IFIP ’83, IFIP, pp. 321–332. North-Holland, Amsterdam (1983)Google Scholar
  41. 41.
    Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C.V., Loingtier, J.-M., Irwin, J.: Aspect-oriented programming. In: Akşit, M., Matsuoka, S. (eds.) 11th European Conference on Object- Oriented Programming (ECOOP’97), LNCS, vol. 1241, pp. 220–242. Springer, Berlin (1997)Google Scholar
  42. 42.
    Kleppe A., Warmer J., Bast W.: MDA Explained: The Model Driven Architecture: Practice and Promise. Addison-Wesley, Reading (2003)Google Scholar
  43. 43.
    Krüger, I.H.: Service specification with MSCs and roles. In: Proceedings of IASTED International Conference on Software Engineering (IASTED SE’04), IASTED, ACTA Press, Innsbruck (2004)Google Scholar
  44. 44.
    Lamport L.: Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers. Addison-Wesley, Reading (2002)Google Scholar
  45. 45.
    Lee, C.: On Quality of Service Management. PhD thesis, Carnegie Mellon University, August (1999)Google Scholar
  46. 46.
    Leue, S.: QoS specification based on SDL/MSC and temporal logic. In: Bochmann, G.v., de Meer, J., Vogel, A. (eds.) Workshop on Multimedia Applications and Quality of Service Verification, Montreal (1994)Google Scholar
  47. 47.
    Liu J.W.S.: Real-Time Systems. Prentice-Hall, New Jersey (2000)Google Scholar
  48. 48.
    Liu, J.W.S., Nahrstedt, K., Hull, D., Chen, S., Li, B.: EPIQ QoS characterization. ARPA Report, Quorum Meeting, July (1997)Google Scholar
  49. 49.
    Lund, M.S., den Braber, F., Stølen, K.: A component-oriented approach to security risk analysis. In: Bruel [13], pp. 99–110Google Scholar
  50. 50.
    Malan, R., Bredemeyer, D.: Defining non-functional requirements. Bredemeyer Consulting, White Paper. http://www.bredemeyer.com/papers.htm, 2001
  51. 51.
    Medvidovic N., Taylor R.N.: A classification and comparison framework for software architecture description languages. IEEE Trans. Softw. Eng. 26(1), 70–93 (2000)CrossRefGoogle Scholar
  52. 52.
    Naumovich, G., Clarke, L.A.: Classifying properties: An alternative to the safety–liveness classification. In: Proceedings of the eighth ACM SIGSOFT International Symposium on Foundations of Software Engineering, pp. 159–168. ACM Press, New York (2000)Google Scholar
  53. 53.
    Nothnagel, J.: Ressourcenverwaltung in drops. Diplomarbeit, Technische Universität Dresden, July 2002. In GermanGoogle Scholar
  54. 54.
    Object Management Group. Real-time CORBA joint revised submission. OMG Document, March 1999. URL http://cgi.omg.org/cgi-bin/doc?orbos/99-02-12 or http://cgi.omg.org/cgi-bin/doc?orbos/99-03-29
  55. 55.
    Object Management Group. UML profile for schedulability, performance, and time specification. OMG Document, March (2002). URL http://www.omg.org/cgi-bin/doc?ptc/02-03-02
  56. 56.
    Object Management Group. UML 2.0 OCL specification. OMG Document, October (2003). URL http://www.omg.org/cgi-bin/doc?ptc/03-10-14
  57. 57.
    Object Management Group. MDA guide version 1.0.1. OMG Document, June (2003). URL http://www.omg.org/cgi-bin/doc?omg/03-06-01
  58. 58.
    Object Management Group. Request for proposals: MDA tool component. OMG Document, July (2006) URL http://www.omg.org/cgi-bin/doc?ad/2006-06-09
  59. 59.
    Rajkumar, R., Lee, C., Lehoczky, J., Siewiorek, D.: Practical solutions for QoS-based resource allocation problems. In: Proceedings of IEEE Real-Time Systems Symposium, December (1998)Google Scholar
  60. 60.
    Reussner, R.H.: Parametrisierte Verträge zur Protokolladaption bei Software-Komponenten. Logos Verlag, Berlin (2001) (In German)Google Scholar
  61. 61.
    Reussner, R.H., Poernomo, I.H., Schmidt, H.W.: Reasoning about software architectures with contractually specified components. In: Cechich, A., Piattini, M., Vallecillo, A. (eds.) Component-Based Software Quality: Methods and Techniques, LNCS, vol. 2693, pp. 287–325. Springer, Berlin (2003)Google Scholar
  62. 62.
    Röttger, S., Aigner, R.: Modeling of non-functional contracts in component-based systems using a layered architecture. In: Component Based Software Engineering and Modeling Non-functional Aspects (SIVOES-MONA), Workshop at UML, October 2002Google Scholar
  63. 63.
    Röttger, S., Zschaler, S.: CQML+: Enhancements to CQML. In: Bruel [13], pp. 43–56Google Scholar
  64. 64.
    Röttger, S., Zschaler, S.: Tool support for refinement of non-functional specifications. Softw. Syst. Model. J. (SoSyM), 6(2), June (2007)Google Scholar
  65. 65.
    Sabata, B., Chatterjee, S., Davis, M., Sydir, J.J., Lawrence, T.F.: Taxonomy for QoS specifications. In: Proceedings of Third International Workshop on Object-oriented Real-Time Dependable Systems (WORDS’97). Newport Beach, California (1997)Google Scholar
  66. 66.
    Salzmann, C., Schätz, B.: Service-based software specification. In: Proceedings of International Workshop on Test and Analysis of Component-Based Systems (TACOS) ETAPS 2003, Electronic Notes in Theoretical Computer Science. Elsevier, Warsaw (2003)Google Scholar
  67. 67.
    Schmidt, D.C., Kuhns, F.: An overview of the real-time CORBA specification. IEEE Comput. 56–63 (2000)Google Scholar
  68. 68.
    Schmidt, D.C., Levine, D.L., Mungee, S.: The design of the TAO real-time object request broker. Comput. Commun. 21(4), April (1998)Google Scholar
  69. 69.
    Selic B.: A generic framework for modeling resources with UML. IEEE Comput. 33(6), 64–69 (2000)Google Scholar
  70. 70.
    Skene, J., Lamanna, D.D., Emmerich, W.: Precise service level agreements. In: Proceedings of 26th International Conference on Software Engineering (ICSE’04), pp. 179–188. IEEE Computer Society, Edinburgh (2004)Google Scholar
  71. 71.
    Smith, C.U., Williams, L.G.: Performance Solutions: A Practical Guide to Creating Responsive, Scalable Software. Object-Technology Series. Addison-Wesley, Reading (2002)Google Scholar
  72. 72.
    Sommerville I.: Software Engineering. Addison-Wesley, Reading (1996)Google Scholar
  73. 73.
    Staehli, R., Eliassen, F., Aagedal, J.Ø., Blair, G.: Quality of service semantics for component-based systems. In: Middleware 2003 Companion, Second International Workshop on Reflective and Adaptive Middleware Systems (2003)Google Scholar
  74. 74.
    Stirling, C.: Modal and Temporal Properties of Processes. Texts in Computer Science. Springer, Berlin (2001)Google Scholar
  75. 75.
    Szyperski, C.: Component Software: Beyond Object-Oriented Programming, 2nd edn. Component Software Series. Addison-Wesley, Reading (2002)Google Scholar
  76. 76.
    Tanenbaum A.S.: Modern Operating Systems, 2nd edn. Prentice-Hall, Englewood Cliffs (2002)Google Scholar
  77. 77.
    Völter, M.: A generative component infrastructure for embedded systems. In: Voelter, M., Kircher, M., Schwanninger, C., Zdun, U., Schmid, A. (eds.) Proceedings of Workshop on Reuse in Constrained Environments at OOPSLA’03, October (2003)Google Scholar
  78. 78.
    Völter, M.: Model-driven development of component infrastructures for embedded systems. In: Klein, T., Rumpe, B., Schätz, B. (eds.) Proceedings of Dagstuhl-Workshop Modellbasierte Entwicklung eingebetteter Systeme (MBEES 2005), Dagstuhl, Germany, 2005. Internationales Begegnungs- und Forschungszentrum (IBFI), Schloss Dagstuhl. http://drops.dagstuhl.de/opus/volltexte/2005/31
  79. 79.
    Werner, M., Richling, J.: Komponierbarkeit nichtfunktionaler Eigenschaften–Versuch einer Definition. In: Fachtagung, G.I. Betriebssysteme 2002 Gesellschaft für Informatik, Berlin (2002) (In German)Google Scholar
  80. 80.
    Zhang, C., Jacobsen, H.-A.: Resolving feature convolution in middleware systems. In: Vlissides, J.M., Schmidt, D.C. (eds.) Proceedings of 19th Annual ACM SIGPLAN Conf. Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2004), pp. 188–205. ACM, VancouverGoogle Scholar
  81. 81.
    Zschaler, S.: A Semantic Framework for Non-functional Specifications of Component-Based Systems. PhD thesis, Technische Universität Dresden, Germany, April (2007)Google Scholar
  82. 82.
    Zschaler, S.: Example specifications of non-functional properties of a simple counter application. Technical Report COMP-006-2008, Computing Department, Lancaster University (2008)Google Scholar

Copyright information

© Springer-Verlag 2009

Authors and Affiliations

  1. 1.Computing DepartmentLancaster UniversityLancasterUK

Personalised recommendations