Model Driven Engineering of Communication Protocol Artifact with Design Pattern Usage in Distributed and Real-Time Embedded Systems: An Industrial Experience

Model Driven Engineering of Communication Protocol Artifact with Design Pattern Usage in Distributed and Real-Time Embedded Systems: An Industrial Experience

Distributed and real-time embedded systems, in which collections of independent computers interoperate, appear to users as a single coherent system by creating "systems of systems". The scale and complexity of such systems makes it infeasible to deploy them in standalone configuration, which highlights the necessity of more systematically designed and implemented communication protocol assets. These assets should be not only close-to error proneness with abstraction, but also reusable to achieve maximum efficiency and effectiveness during software development life cycle. To address these challenges in a specific industrial context, we designed and implemented reusable artifact for communication protocols via model driven engineering with the help of design pattern usage. This artifact is currently in use by many teams in the company as we report its solution approach and its impacts in this paper.

___

  • [1] A. S. Tanenbaum and M. v. Steen, Distributed systems : principles and paradigms, 2nd ed. Upper Saddle RIiver, NJ: Pearson Prentice Hall, 2007.[2] N. Wang, C. D. Gill, D. C. Schmidt, A. Gokhale, B. Natarajan, J. P. Loyall, et al., "QoS-enabled Middleware," in Middleware for Communications, Q. Mahmoud, Ed., ed: Wiley, 2004.[3] A. Gokhale, K. Balasubramanian, A. S. Krishna, J. Balasubramanian, G. Edwards, G. Deng, et al., "Model driven middleware: A new paradigm for developing distributed real-time and embedded systems," Science of Computer Programming, vol. 73, pp. 39-58, 9/1/ 2008.[4] ASELSAN. (2017, 12/02/2017). ASELSAN. Available: www.aselsan.com.tr[5] D. Akdur and V. Garousi, "Model-Driven Engineering in Support of Development, Test and Maintenance of Communication Middleware: An Industrial Case-Study," in International Conference on Model-Driven Engineering and Software Development (MODELSWARD), 2015.[6] IEC/PAS, "Dependability of software products containing reusable components – Guidance for functionality and tests," vol. 62814, ed, 2012.[7] J. Hutchinson, J. Whittle, M. Rouncefield, and S. Kristoffersen, "Empirical assessment of MDE in industry," in 33rd International Conference on Software Engineering, Waikiki, Honolulu, HI, USA, 2011, pp. 471-480.[8] A. Gokhale, D. C. Schmidt, B. Natarajan, J. Gray, and N. Wang, "Model Driven Middleware," in Middleware for Communications, Q. Mahmoud, Ed., ed: Wiley, 2004.[9] F. Buschmann, R. Meunier, H. Rohnert, P. Sommerland, and M. Stal, Pattern-Oriented Software Architecture Volume 1: A System of Patterns: Wiley, 1996.[10] IBM. (2013, 16/08/2013). Rational Rhapsody family. Available: http://www-03.ibm.com/software/products/en/ratirhapfami[11] W. Chao, L. Hong, G. Zhigang, Y. Min, and Y. Yuhao, "An automatic documentation generator based on model-driven techniques," in Computer Engineering and Technology (ICCET), 2010 2nd International Conference on, 2010, pp. V4-175-V4-179.[12] D. Parnas, "Precise Documentation: The Key to Better Software," in The Future of Software Engineering, S. Nanz, Ed., ed: Springer Berlin Heidelberg, 2011, pp. 125-148.[13] M. Lindvall, S. Komi-Sirviö, P. Costa, and C. Seaman, "Embedded Software Maintenance," Data and Analysis Center for Software2003.[14] F. Belli, "Dependability and Software Reuse -- Coupling Them by an Industrial Standard," in SERE-C '13 Proceedings of the 2013 IEEE Seventh International Conference on Software Security and Reliability Companion 2013, pp. 145-154.[15] D. Akdur and Ç. Özdemir, "The Impacts of Reusable and Configurable Modules on Software Quality in Real-Time Embedded Systems: Radar Utility Libraries (In Turkish: Gerçek Zamanlı Gömülü Sistemlerde Yeniden Kullanılabilir ve Yapılandırılabilir Yazılımların Kaliteye Etkisi: Radar Projeleri Destek Kütüphaneleri)," in 8th Turkish National Software Engineering Symposium (In Turkish: Ulusal Yazılım Mühendisliği Sempozyumu (UYMS)), Cyprus, 2014, pp. 177-186.[16] P. Mohagheghi, S. Ict, and R. Conradi, "An Empirical Investigation of Software Reuse Benefits in a Large Telecom Product," ACM Transactions on Software Engineering and Methodology, vol. 17, pp. 13:1-13:31, 2008.[17] I. Sommerville, Software Engineering: Addison Wesley, 2010.[18] J. Kramer, "Is abstraction the key to computing?," Commun. ACM, vol. 50, pp. 36-42, 2007.[19] E. Arisholm, L. C. Briand, S. E. Hove, and Y. Labiche, "The impact of UML documentation on software maintenance: an experimental evaluation," Software Engineering, IEEE Transactions on, vol. 32, pp. 365-381, 2006.[20] J. Hutchinson, J. Whittle, and M. Rouncefield, "Model-driven engineering practices in industry: Social, organizational and managerial factors that lead to success or failure," Science of Computer Programming, vol. 89, Part B, pp. 144-161, 2014.[21] B. P. Douglass, Real-time UML: Developing Efficient Objects for Embedded Systems: Addison-Wesley, 2000.[22] B. P. Douglass, Real Time UML: Advances in the UML for Real-time Systems: Addison-Wesley, 2004.[23] G. M. Nicolescu, P. J., Model-Based Design for Embedded Systems CRC Press, 2009.[24] S. Gerard, J.-P. Babau, and J. Champeau, Model Driven Engineering for Distributed Real-Time Embedded Systems: Wiley-IEEE Press, 2010.[25] D. Akdur, V. Garousi, and O. Demirörs, "Cross-factor analysis of software modeling practices versus practitioner demographics in the embedded software industry," in 6th Mediterranean Conference on Embedded Computing (MECO), Montenegro, 2017.[26] D. Akdur, O. Demirörs, and V. Garousi, "Characterizing the development and usage of diagrams in embedded software systems," presented at the 43rd Euromicro Conference on Software Engineering and Advanced Applications (SEAA), Vienna, Austria, 2017.[27] J. Davies, J. Gibbons, J. Welch, and E. Crichton, "Model-driven engineering of information systems: 10 years and 1000 versions," Science of Computer Programming, vol. 89, Part B, pp. 88-104, 9/1/ 2014.[28] D. Akdur, O. Demirörs, and V. Garousi. (2015, Technical report of a world-wide survey on software modeling and model-driven engineering in the embedded software industry. [Technical Report]. Available: https://drive.google.com/file/d/0BzPI4c-GGTgoVlAzNDR6Q2I3ZDA/view[29] E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software: Addison-Wesley, 1998.[30] C. Zhang and D. Budgen, "What Do We Know about the Effectiveness of Software Design Patterns?," IEEE Transactions on Software Engineering, vol. 38, pp. 1213- 1231, 2012.[31] H. Mu and S. Jiang, "Design patterns in software development," in Software Engineering and Service Science (ICSESS), 2011 IEEE 2nd International Conference on, 2011, pp. 322-325.[32] H. Kun-Yuan, L. Yen-Chih, L. Chi-Hua, and L. Jenq Kuen, "The support of software design patterns for streaming RPC on embedded multicore processors," in Signal Processing Systems, 2008. SiPS 2008. IEEE Workshop on, 2008, pp. 263-268.[33] R. Vincke, S. Van Landschoot, P. Cordemans, J. Peuteman, E. Steegmans, and J. Boydens, "Algorithm Parallelization Using Software Design Patterns, an Embedded Case Study Approach," in P2P, Parallel, Grid, Cloud and Internet Computing (3PGCIC), 2013 Eighth International Conference on, 2013, pp. 470-473.[34] T. Ovatman and F. Buzluca, "Software Design Pattern Behavior in Shared Memory Multiprocessor Systems," in Computational Intelligence and Software Engineering, 2009. CiSE 2009. International Conference on, 2009, pp. 1-4.[35] J. S. Fant, H. Gomaa, and R. G. Pettit, "Architectural Design Patterns for Flight Software," in Object/Component/Service-Oriented Real-Time Distributed Computing Workshops (ISORCW), 2011 14th IEEE International Symposium on, 2011, pp. 97-101.[36] S. Siegl, K. S. Hielscher, and R. German, "Modeling and Statistical Testing of Real Time Embedded Automotive Systems by Combination of Test Models and Reference Models in MATLAB/Simulink," in Systems Engineering (ICSEng), 2011 21st International Conference on, 2011, pp. 180-185.[37] D. C. Schmidt and S. D. Huston, C++ Network Programming: Mastering complexity with ACE and patterns: Addison-Wesley, 2002.[38] J. Martinez, P. Merino, and A. Salmeron, "Applying MDE Methodologies to Design Communication Protocols for Distributed Systems," in Complex, Intelligent and Software Intensive Systems, 2007. CISIS 2007. First International Conference on, 2007, pp. 185-190.[39] F. Fleurey, B. Morin, A. Solberg, and O. Barais, "MDE to Manage Communications with and between Resource-Constrained Systems," in Model Driven Engineering Languages and Systems. vol. 6981, J. Whittle, T. Clark, and T. Kühne, Eds., ed: Springer Berlin Heidelberg, 2011, pp. 349-363.[40] D. Stewart, M. Domeika, S. A. Hissam, S. Hovsmith, J. Ivers, R. Dickson, et al., "Chapter 17 - Multicore Software Development for Embedded Systems: This Chapter draws on Material from the Multicore Programming Practices Guide (MPP) from the Multicore Association," in Software Engineering for Embedded Systems, ed Oxford: Newnes, 2013, pp. 563-612.[41] B. P. Douglass, Real-Time Design Patterns : robust scalable architecture for Real-time systems. Boston, MA: Addison-Wesley, 2003.[42] A. G. Kleppe, J. Warmer, and W. Bast, MDA Explained: The Model Driven Architecture: Practice and Promise: Addison-Wesley Longman Publishing Co., Inc., 2003.[43] W. Qiang, X. Jiamou, L. Xuwen, and J. Kebin, "The research and implementation of interfacing based on PCI express," in Electronic Measurement & Instruments, 2009. ICEMI '09. 9th International Conference on, 2009, pp. 3-116-3-121.[44] S. R. Gopalan. (1998). A Detailed Comparison of CORBA, DCOM, and Java/RMI. Available: http://my.execpc.com/~gopalan/misc/compare.html[45] A. S. Krishna, D. C. Schmidt, R. Klefstad, and A. Corsaro, "Real-time CORBA Middleware," in Middleware for Communications, Q. Mahmoud, Ed., ed: Wiley, 2004.[46] R. Schantz and D. C. Schmidt, "Middleware for Distributed Systems," in Encyclopedia of Computer Science and Engineering, B. Wah, Ed., ed, 2008.[47] A. S. Tanenbaum and T. Austin, Structured Computer Organization, 6th ed.: Prentice Hall, 2012.