Design Pattern Evaluation on A RESTful API Wrapper: A Case Study of Software Integration with An Internet Payment Gateway using Model-Driven Architecture

Author

Lindung Parningotan Manik

Abstract

A proper use of design patterns has proven to be very useful in the development of robust applications over time. In this paper, the design patterns are introduced in the early stage of the software development where model-driven architecture is used as the engineering approach. A RESTful internet payment gateway API (Application Programming Interface) wrapper is selected as the case study. At the beginning, Platform Independent Model (PIM) is created as the domain model. After that, the PIM is transformed into the Platform Specific Model (PSM). Before converting the PSM into the source code, three design patterns such as builder, observer, and factory pattern are added into the model. To evaluate the impacts of implementation, static analysis is used to examine the generated code before and after adding the design patterns. The result shows that the design decision increases cohesion, complexity, coupling, inheritance, and size metrics of the source codes.

Full Text:

PDF

References


M. Fowler, “Patterns [software patterns],” IEEE Softw., vol. 20, no. 2, pp. 56–57, 2003.

E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object-oriented Software. Boston, MA, USA: Addison-Wesley Longman Publishing Co., Inc., 1995.

P. Hegedüs, D. Bán, R. Ferenc, and T. Gyimóthy, “Myth or Reality? Analyzing the Effect of Design Patterns on Software Maintainability,” in Communications in Computer and Information Science, 2012, vol. 340, pp. 138–145.

F. Khomh and Y.-G. Guéhéneuc, “Perception and Reality: What are Design Patterns Good For?,” 2007.

L. P. Manik and Technische Universiteit Eindhoven (TUE). Stan Ackermans Instituut. Software Technology (ST), “Modular software architecture for a large complex codebase,” Technische Universiteit Eindhoven, 2015.

OBJECT MANAGEMENT GROUP, “MDA Guide rev.2.0,” no. June, pp. 1–15, 2014.

T. Černý and M. J. Donahoo, “On separation of platform-independent particles in user interfaces,” Cluster Comput., vol. 18, pp. 1–14, 2015.

S. Ellegaard Borch, J. Winther Jespersen, J. Linvald, and K. Østerbye, “A Model Driven Architecture for REA based systems,” 2003.

J. Huang, “The Research of Model-Driven Architecture in the Embedded System,” in Advanced Development in Automation, Materials and Manufacturing, 2014, vol. 624, pp. 524–527.

R. Calinescu, S. Harris, J. Gibbons, J. Davies, I. Toujilov, and S. B. Nagl, “Model-driven architecture for cancer research,” in SEFM ’07: Proceedings of the Fifth IEEE International Conference on Software Engineering and Formal Methods, 2007, pp. 59–68.

A. di Bari, G. Vetere, and K. Tymoshenko, “Towards Model Driven Architectures for Human Language Technologies,” in Proceedings of the Workshop on Open Infrastructures and Analysis Frameworks for HLT, 2014, pp. 23–33.

B. Atanasovski et al., “On defining a model driven architecture for an enterprise e-health system,” Enterp. Inf. Syst., vol. 12, no. 8–9, pp. 915–941, Sep. 2018.

M. Hamlich, A. Mamouni, Y. Raki, A. Marzak, and A. Belangour, “{ZCM} (Zakat Calculation Model) Models Metamodelling Based on {MDA} (Model Driven Architecture) Concepts,” {SSRN} Electron. J., 2018.

R. Cloutier, “Model Driven Architecture for Systems Engineering,” Stevens Inst. Technol. Present. INCOSE Int. Work., 2008.

R. Ferenc, L. Langó, I. Siket, T. Gyimóthy, and T. Bakota, “Source Meter Sonar Qube Plug-in,” in 2014 IEEE 14th International Working Conference on Source Code Analysis and Manipulation, 2014, pp. 77–82.




DOI: http://dx.doi.org/10.25126/jitecs.201943107