Component-Z: A Formal Specification Language Extended Object-Z for Designing Components

Component-Z: Object-Z를 확장한 컴포넌트 정형 명세 언어

  • Published : 2004.05.01

Abstract

Component-based software engineering (CBSE) composes reusable components and develops applications with the components. CBSE is admitted to be a new paradigm that reduces the costs and times to develop software systems. The high quality of component designs can be assured if the consistency and correctness among the elements of a component are verified with formal specifications. Current formal languages for components include only some parts of contracts between interfaces, structural aspects and behavioral aspects of component, component-based system, component composition and variability. Therefore, it is not adequate to use current formal languages in all steps of a component design process. In this paper, we suggest a formal language to specify component designs Component-Z. Component-Z extends Object-Z, adds new notations to specify components. It can be possible to specify interfaces, the inner structure of a component, inner workflows, and workflows among interfaces with Component-Z. In addition, Component-Z provides the notations and semantics to specify variability with variation points, variants and required interfaces. The relation between interfaces and components is defined with mapping schemas. Parallel operator is used to specify component composition. It can be possible to describe deployed components with the specifications of component-based systems. Therefore, the formal specification language proposed in this paper can represent all elements to design components. In the case study, we specify an account management system in a bank so that we show that Component-Z can be used in all steps of component design.

컴포넌트 기반 소프트웨어 공학(CBSE)은 재사용 가능한 컴포넌트를 조립하여 시스템을 개발하는 방법이다. CBSE는 소프트웨어 개발비용과 기간을 단축할 수 있는 새로운 패러다임으로 평가되고 있다. 정형 명세를 사용하면 컴포넌트 구성 요소들 사이의 일관성과 정확성을 판단할 수 있기 때문에 컴포넌트 설계의 품질을 높일 수 있다. 현재까지 제안된 컴포넌트 정형 명세 언어들은 인터페이스간의 계약, 컴포넌트의 구조적인 측면과 동적인 측면, 컴포넌트 기반 시스템, 컴포넌트간의 결합, 가변성 중 일부만을 명세에 반영한다. 따라서 지금까지 발표된 정형 명세 언어를 컴포넌트 설계 과정의 모든 단계에서 사용하는 것은 적절치 않다. 본 논문에서는 컴포넌트 정형 명세 언어인 Component-Z를 제안한다. Component-Z는 Object-Z를 확장하여 컴포넌트 명세를 위한 새로운 표기법을 추가하고 의미론을 확장한다. Component-Z를 사용하여 인터페이스, 컴포넌트 내부 구조, 컴포넌트 내부 워크플로우와 인터페이스간의 워크플로우를 명세 할 수 있다. 또한 가변점(variation point), 가변치(variant), customization 인터페이스를 사용하여 가변성을 명세 할 수 있다. 인터페이스와 컴포넌트 사이의 관계는 매핑 스키마(mapping schema)를 사용하여 정의한다. 또한 병렬 연산자(parallel operator)를 사용하여 컴포넌트간의 결합을 명세 할 수 있고 컴포넌트 기반 시스템을 명세하여 컴포넌트가 배포된 상황을 표현할 수 있다. 따라서 본 논문에서 제안된 정형 명세 언어를 사용하여 컴포넌트 설계에 필요한 모든 요소를 표현 할 수 있다. 사례연구에서는 은행 계좌 관리 시스템을 명세하여 Component-Z가 컴포넌트 설계의 전 단계에서 사용될 수 있음을 보인다.

Keywords

References

  1. Szyperski, C., Component Softwarebeyond Object-Oriented Programming, pp. 21, Addison Wesely, 2002
  2. Lders, F., Lau, K.K. and Ho, S.M., Building Reliable Component-Based Software Systems, pp. 2338, Artech House, 2002
  3. D'Souza, D.F., and Wills, A.C., Objects, Components, and Frameworks with UML: The Catalysis Approach, pp. 91, Addison-Wesley, 1998
  4. Cheesman, J. and Daniels, J., UML Components: A Simple Process for Specifying Component-Based Software, pp. 50, Addison-Wesley, 2000
  5. Kreuz, D., 'Fromal Specification of CORB Services using Object-Z,' Second IEEE International Conference on Formal Engineering Methods, September, 1998
  6. Huaikou, M., Chuanjiang, Y. and Li, L., 'A Formalized Abstract Component Object Model Z-COM,' 36th International Conference on Technology of Object-Oriented Languages and Systems (TOOLS-Asia'00), November, 2000 https://doi.org/10.1109/TOOLS.2000.885924
  7. Heisel, M., Santen, T. and Souquie'res, J., 'Toward a Formal Model of Software Components,' International Conference on Formal Engineering Methods(ICFEM) 2002, pp. 57-68, 2002
  8. Bergner, K., Rausch, A., Sihling, M., Vilbig, A. and Broy, M., Foundations of Component-based Systems, pp. 189-210, Cambridge University Press, 2000
  9. Medvidovic, N. and Taylor, R.N., 'A Classification and Comparison Framework for Software Architecture Description Languages,' IEEE Transaction of Software Engineering, Vol.26, No.1, 2000 https://doi.org/10.1109/32.825767
  10. Sousa, P.J. and Garlan, D., 'Formal Modeling of the Enterprise JavaBeans Component Integration Framework,' Intermation and Software Technology, Vol. 43, No. 3, 2001 https://doi.org/10.1016/S0950-5849(00)00157-9
  11. Canal, C., Fuentes, L., Pimentel, E., Troya, J.M. and Vallecillo, A., 'Adding Roles to CORBA Objects,' IEEE Transaction on Software Engineering, Vol. 29, No 3, 2003 https://doi.org/10.1109/TSE.2003.1183935
  12. Ivers, J., Sinha, N. and Wallnau, K., 'A Basis for Composition Language CL,' Technical Note, CMU/ SEI-2002-TN-026, Carnegie Mellon Software Engineering Institute, 2002
  13. Achermann, F., Lumpe, M., Schneider, J. and Nierstrasz, O., A Survey of Object-Oriented Approaches, pp. 403-426, Cambridge University Press, 2001
  14. Alencar, P.S.C. and Cowan, D.D., 'A Logical Theory of Interfaces and Objects,' IEEE Transaction on Software Engineering, Vol.28, No.6, 2002 https://doi.org/10.1109/TSE.2002.1010059
  15. Fillipe, J.K., 'Foundations of Module Concept for Distributed Object System,' PhD Thesis, Minster University, 2000
  16. Aguirre, N. and Maibaum, T., 'A Logical Basis for the Specification of Reconfigurable Component-Based Systems,' Fundamental Approach to Software Engineering(FASE) 2003, pp. 37-51, 2003
  17. Fischer, C., 'Combination and Implementation of Processes and Data: from CSP-OZ to Java,' PhD Thesis, University of Oldenburg, 2000
  18. Mahony, B.and Dong, J.S., 'Timed Communicating Object-Z,' IEEE Transaction of Software Engineering, Vol.26, No.2, 2000 https://doi.org/10.1109/32.841115
  19. Derrick, J. and Boiten, E., 'Combining Component Specifications in Object-Z and CSP,' Formal Aspects of Computing, Vol.13, pp.111-137, 2002 https://doi.org/10.1007/s001650200002
  20. Xie, X. and Shatz, S.M., 'An Approach for Modeling Components with Customization for Distributed Systems,' International Journal of Informatica, Special issue on Component Based Software Development, Vol. 25, No. 4, pp. 465-474, 2001
  21. Lopes, A..Wernelinger, M. and Fiadelio, J.L., 'Higher-Order Architectural Connector,' ACM Transaction on Software Engineering and Methodology, Vol.12, No. 1, 2003 https://doi.org/10.1145/839268.839272
  22. Deline, R., 'Avoiding Packing Mismatch with Flexible Package,' IEEE Transactions on Software Engineering, Vol.27, No.2, 2001 https://doi.org/10.1109/32.908958
  23. Abmann, U., Invasive Software Composition, pp. 167-187, Springer-Verlag, 2003
  24. Atkinson, C., Bayer, J., Bunse, C., Kamsties, E., Laitenberger, O., Laqua, O., Uthing, U., Paech, B., Wuest, J. and Zettel, J., Component-based Product Line Engineering with UML, pp. 319, Addison-Wesley, 2001
  25. Smith, G., The Object-Z Specification Language, pp. 133-142, Academic Publishers, 2000
  26. Smith, G., 'An Object-Oriented Approach to Formal Specification,' PhD Thesis, University of Queensland, 1992
  27. Smith, G. and Derrick, J., 'Refinement and Verification of Concurrent systems specified in Object-Z and CSP,' Proceedings of the 1st International Conference on Formal Engineering Methods, 1997 https://doi.org/10.1109/ICFEM.1997.630436
  28. Plasil, F. and Visnovsky, S., 'Behavior Protocols for Software Components,' IEEE Transactions oF Software Engineering, Vol.28, No.11, 2002 https://doi.org/10.1109/TSE.2002.1049404