Skip to main content
Log in

CHECKSUM: tracking changes and measuring contributions in cooperative systems modeling

  • Regular Paper
  • Published:
Software and Systems Modeling Aims and scope Submit manuscript

Abstract

Models are often used to represent various types of systems. This is especially true for software systems, where cooperating teams create models using a modeling language (e.g., UML). In cooperative modeling scenarios, it is useful to identify contributions and changes performed by individuals and teams. This paper presents a technique called CHECKSUM, which monitors the cooperative work done on models and maintains an immutable changelog. CHECKSUM uses its changelog to measure contributions based on points, time, and quality, and to enable the auditing of a model’s change-history. This paper also presents GEneric Meta-Model (GEMM). The latter unifies the underlying representation of different types of models that follow varying visualization patterns including box and line, container, and interleaving. GEMM enables CHECKSUM to support an extensible variety of model types. We developed a prototype tool that realizes CHECKSUM’s concepts and integrates it into two existing modeling tools. We conducted two studies to evaluate CHECKSUM from two perspectives: technical and user. The studies yielded positive results concerning various qualities including integrability into existing tools, effectiveness, efficiency, usability, and usefulness.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18
Fig. 19
Fig. 20
Fig. 21
Fig. 22
Fig. 23
Fig. 24
Fig. 25
Fig. 26
Fig. 27
Fig. 28
Fig. 29
Fig. 30
Fig. 31
Fig. 32
Fig. 33
Fig. 34
Fig. 35
Fig. 36
Fig. 37
Fig. 38

Similar content being viewed by others

References

  1. Akiki, P.A.: CHAIN: developing model-driven contextual help for adaptive user interfaces. J. Syst. Softw. 135, 165–190 (2018). https://doi.org/10.1016/j.jss.2017.10.017

    Article  Google Scholar 

  2. Akiki, P.A.: Generating contextual help for user interfaces from software requirements. IET Softw. 13, 75–85 (2019)

    Article  Google Scholar 

  3. Akiki, P.A., Bandara, A.K., Yu, Y.: Cedar studio: an IDE supporting adaptive model-driven user interfaces for enterprise applications. In: Proceedings of the 5th ACM SIGCHI Symposium on Engineering Interactive Computing Systems, pp. 139–144. ACM, London (2013)

  4. Akiki, P.A., Bandara, A.K., Yu, Y.: Integrating adaptive user interface capabilities in enterprise applications. In: Proceedings of the 36th International Conference on Software Engineering, pp. 712–723. IEEE/ACM, Hyderabad (2014)

  5. Akiki, P.A., Bandara, A.K., Yu, Y.: Engineering adaptive model-driven user interfaces. IEEE Trans. Softw. Eng. 42, 1118–1147 (2016). https://doi.org/10.1109/TSE.2016.2553035

    Article  Google Scholar 

  6. Akiki, P.A., Bandara, A.K., Yu, Y.: Visual simple transformations: empowering end-users to wire internet of things objects. ACM Trans. Comput.-Hum. Interact. 24, 10:1-10:43 (2017). https://doi.org/10.1145/3057857

    Article  Google Scholar 

  7. Arazy, O., Stroulia, E.: A utility for estimating the relative contributions of wiki authors. In: Third International AAAI Conference on Weblogs and Social Media (2009)

  8. Azevedo, D., Janeiro, J., Lukosch, S., Briggsc, R.O., Fonsecaa, B.: An integrative approach to diagram-based collaborative brainstorming. In: Proceedings of the ECSCW 2011 Workshop on Collaborative Usage and Development of Models and Visualizations (2011)

  9. Beatty, J., Chen, A.: Visual Models for Software Requirements. Microsoft Press, Redmond (2012)

    Google Scholar 

  10. Bendix, L., Emanuelsson, P.: Requirements for practical model merge—an industrial perspective. In: Schürr, A., Selic, B. (eds.) Model Driven Engineering Languages and Systems, pp. 167–180. Springer, Berlin (2009)

    Chapter  Google Scholar 

  11. Benedek, J., Miner, T.: Measuring desirability: new methods for evaluating desirability in a usability lab setting. Proc. Usability Prof. Assoc. 2003, 8–12 (2002)

    Google Scholar 

  12. Berliner, B., et al.: CVS II: parallelizing software development. In: Proceedings of the USENIX Winter 1990 Technical Conference, p. 352 (1990)

  13. Bezivin, J., Gerbe, O.: Towards a precise definition of the OMG/MDA framework. In: Proceedings 16th Annual International Conference on Automated Software Engineering (ASE 2001), pp. 273–280 (2001)

  14. Brandes, U., Eiglsperger, M., Herman, I., Himsolt, M., Marshall, M.S.: GraphML progress report structural layer proposal. In: Mutzel, P., Jünger, M., Leipert, S. (eds.) Graph Drawing, pp. 501–512. Springer, Berlin (2002)

    Chapter  Google Scholar 

  15. Brosch, P., Seidl, M., Wimmer, M., Kappel, G.: Conflict visualization for evolving UML models. J. Object Technol. 11, 2–1 (2012)

    Article  Google Scholar 

  16. Calvary, G., Coutaz, J., Thevenin, D., Limbourg, Q., Bouillon, L., Vanderdonckt, J.: A unifying reference framework for multi-target user interfaces. Interact. Comput. 15, 289–308 (2003). https://doi.org/10.1016/S0953-5438(03)00010-9

    Article  Google Scholar 

  17. Chen, P.P.-S.: The entity-relationship model—toward a unified view of data. ACM Trans. Database Syst. 1, 9–36 (1976). https://doi.org/10.1145/320434.320440

    Article  Google Scholar 

  18. Clarke, D., Helvensteijn, M., Schaefer, I.: Abstract delta modeling. In: Proceedings of the Ninth International Conference on Generative Programming and Component Engineering, pp. 13–22. Association for Computing Machinery, New York (2010)

  19. Connolly, T., Begg, C.: Database Systems: A Practical Approach to Design, Implementation, and Management, 6th edn. Pearson, London (2014)

    MATH  Google Scholar 

  20. Dadgari, D., Stuerzlinger, W.: Novel user interfaces for diagram versioning and differencing. In: Proceedings of the 24th BCS Interaction Specialist Group Conference, pp. 62–71. British Computer Society, Swinton (2010)

  21. Danado, J., Paternò, F.: Puzzle: a mobile application development environment using a jigsaw metaphor. J. Vis. Lang. Comput. 25, 297–315 (2014)

    Article  Google Scholar 

  22. Dardenne, A., van Lamsweerde, A., Fickas, S.: Goal-directed requirements acquisition. Sci. Comput. Program. 20, 3–50 (1993). https://doi.org/10.1016/0167-6423(93)90021-G

    Article  MATH  Google Scholar 

  23. DeMarco, T.: Structure analysis and system specification. In: Broy, M., Denert, E. (eds.) Pioneers and Their Contributions to Software Engineering: sd&m Conference on Software Pioneers, Bonn, June 28/29, 2001, Original Historic Contributions, pp. 255–288. Springer, Berlin (2001)

    Google Scholar 

  24. Ding, X., Danis, C., Erickson, T., Kellogg, W.A.: Visualizing an enterprise wiki. In: CHI ’07 Extended Abstracts on Human Factors in Computing Systems, pp. 2189–2194. ACM, New York (2007)

  25. Ehmann, K., Large, A., Beheshti, J.: Collaboration in context: comparing article evolution among subject disciplines in Wikipedia. First Monday (2008). https://doi.org/10.5210/fm.v13i10.2217

    Article  Google Scholar 

  26. Elmasri, R., Navathe, S.B.: Fundamentals of Database Systems, 7th edn. Pearson, London (2015)

    MATH  Google Scholar 

  27. Elsden, C., Manohar, A., Briggs, J., Harding, M., Speed, C., Vines, J.: Making sense of blockchain applications: a typology for HCI. In: Proceedings of the 2018 CHI Conference on Human Factors in Computing Systems, pp. 458:1–458:14. ACM, New York (2018)

  28. Favre, J.-M.: Towards a basic theory to model model driven engineering. In: 3rd Workshop in Software Model Engineering (WiSME), pp. 262–271. Springer, Berlin (2004)

  29. Flöck, F., Acosta, M.: WikiWho: precise and efficient attribution of authorship of revisioned content. In: Proceedings of the 23rd International Conference on World Wide Web, pp. 843–854. ACM, New York (2014)

  30. Förtsch, S., Westfechtel, B.: Differencing and merging of software diagrams—state of the art and challenges. In: ICSOFT 2007—2nd International Conference on Software and Data Technologies, Proceedings, pp. 90–99 (2007)

  31. Foth, M.: The promise of blockchain technology for interaction design. In: Proceedings of the 29th Australian Conference on Computer–Human Interaction, pp. 513–517. ACM, New York (2017)

  32. Fowler, M.: UML Distilled: A Brief Guide to the Standard Object Modeling Language, 3rd edn. Addison-Wesley Professional, Boston (2004)

    Google Scholar 

  33. García, F., Contreras, J., Rodríguez, P., Moriyón, R.: Help generation for task based applications with HATS. In: Chatty, S., Dewan, P. (eds.) Engineering for Human–Computer Interaction, pp. 149–167. Springer, Boston (1999)

    Chapter  Google Scholar 

  34. Gousios, G., Kalliamvakou, E., Spinellis, D.: Measuring developer contribution from software repository data. In: Proceedings of the 2008 International Working Conference on Mining Software Repositories, pp. 129–132. Association for Computing Machinery, New York (2008)

  35. Green, T.R.G., Petre, M.: Usability analysis of visual programming environments: a ‘cognitive dimensions’ framework. J. Vis. Lang. Comput. 7, 131–174 (1996)

    Article  Google Scholar 

  36. Grune, D.: Concurrent Versions System: A Method for Independent Cooperation. Vrije Universiteit, Amsterdam (1986)

    Google Scholar 

  37. Himsolt, M.: GML: a portable graph file format. Technical report, Universitat Passau (1997)

  38. Hoisl, B., Aigner, W., Miksch, S.: Social rewarding in wiki systems—motivating the community. In: Schuler, D. (ed.) Online Communities and Social Computing, pp. 362–371. Springer, Berlin (2007)

    Chapter  Google Scholar 

  39. Jackson, M.: Problem Frames: Analysing and Structuring Software Development Problems. Addison-Wesley, New York (2001)

    Google Scholar 

  40. Kleppe, A.G., Warmer, J., Warmer, J.B., Bast, W.: MDA Explained: The Model Driven Architecture: Practice and Promise. Addison-Wesley Professional, Boston (2003)

    MATH  Google Scholar 

  41. Korfiatis, N.T., Poulos, M., Bokos, G.: Evaluating authoritative sources using social networks: an insight from Wikipedia. Online Inf. Rev. 30, 252–262 (2006). https://doi.org/10.1108/14684520610675780

    Article  Google Scholar 

  42. Kuttal, S.K., Sarma, A., Rothermel, G.: On the benefits of providing versioning support for end users: an empirical study. ACM Trans. Comput.-Hum. Interact. 21, 9:1-9:43 (2014). https://doi.org/10.1145/2560016

    Article  Google Scholar 

  43. Li, Y., Zheng, K., Yan, Y., Liu, Q., Zhou, X.: EtherQL: a query layer for blockchain system. In: Candan, S., Chen, L., Pedersen, T.B., Chang, L., Hua, W. (eds.) Database Systems for Advanced Applications, pp. 556–567. Springer, Cham (2017)

    Chapter  Google Scholar 

  44. Lin, Y., Gray, J., Jouault, F.: DSMDiff: a differentiation tool for domain-specific models. Eur. J. Inf. Syst. 16, 349–361 (2007). https://doi.org/10.1057/palgrave.ejis.3000685

    Article  Google Scholar 

  45. Liu, S., Zheng, Y., Shen, H., Xia, S., Sun, C.: Real-time collaborative software modeling using UML with rational software architect. In: 2006 International Conference on Collaborative Computing: Networking, Applications and Worksharing, pp. 1–9 (2006)

  46. Maloney, J., Resnick, M., Rusk, N., Silverman, B., Eastmond, E.: The scratch programming language and environment. ACM Trans. Comput. Educ. TOCE 10, 16:1-16:15 (2010)

    Google Scholar 

  47. Maoz, S., Ringert, J.O.: A framework for relating syntactic and semantic model differences. Softw. Syst. Model. 17, 753–777 (2018). https://doi.org/10.1007/s10270-016-0552-y

    Article  Google Scholar 

  48. Maoz, S., Ringert, J.O., Rumpe, B.: ADDiff: semantic differencing for activity diagrams. In: Proceedings of the 19th ACM SIGSOFT Symposium and the 13th European Conference on Foundations of Software Engineering, pp. 179–189. ACM, New York (2011)

  49. Mehra, A., Grundy, J., Hosking, J.: A generic approach to supporting diagram differencing and merging for collaborative design. In: Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering, pp. 204–213. ACM, New York (2005)

  50. Microsoft: Windows Workflow Foundation (2017). https://docs.microsoft.com/en-us/dotnet/framework/windows-workflow-foundation/. Accessed 7 Sept. 2019

  51. Milovanovic, V., Milicev, D.: An interactive tool for UML class model evolution in database applications. Softw. Syst. Model. 14, 1273–1295 (2015). https://doi.org/10.1007/s10270-013-0378-9

    Article  Google Scholar 

  52. Nakamoto, S., et al.: Bitcoin: a peer-to-peer electronic cash system (2008)

  53. Nejati, S., Sabetzadeh, M., Chechik, M., Easterbrook, S., Zave, P.: Matching and merging of variant feature specifications. IEEE Trans. Softw. Eng. 38, 1355–1375 (2012). https://doi.org/10.1109/TSE.2011.112

    Article  Google Scholar 

  54. Nguyen, H.A., Nguyen, T.T., Pham, N.H., Al-Kofahi, J.M., Nguyen, T.N.: Accurate and efficient structural characteristic feature extraction for clone detection. In: Chechik, M., Wirsing, M. (eds.) Fundamental Approaches to Software Engineering, pp. 440–455. Springer, Berlin (2009)

    Chapter  Google Scholar 

  55. Zhu, N., Grundy, J., Hosking, J.: Pounamu: a meta-yool for multi-view visual language environment construction. In: 2004 IEEE Symposium on Visual Languages—Human Centric Computing, pp. 254–256 (2004)

  56. Nizamuddin, N., Salah, K., Azad, M.A., Arshad, J., Rehman, M.H.: Decentralized document version control using ethereum blockchain and IPFS. Comput. Electr. Eng. 76, 183–197 (2019). https://doi.org/10.1016/j.compeleceng.2019.03.014

    Article  Google Scholar 

  57. Obeo, C.B., Pierantonio, F.A.: Model differences in the eclipse modelling framework. Eur. J. Inform. Prof. 9, 29–34 (2008)

    Google Scholar 

  58. Olsen Jr., D.R.: Evaluating user interface systems research. In: Proceedings of the 20th ACM SIGCHI Symposium on User Interface Software and Technology, pp. 251–258. ACM, Newport (2007)

  59. OMG Object Management Group Terms and Acronyms. https://www.omg.org/gettingstarted/terms_and_acronyms.htm. Accessed 14 Sept. 2019

  60. Parizi, R.M., Spoletini, P., Singh, A.: Measuring team members’ contributions in software engineering projects using git-driven technology. In: 2018 IEEE Frontiers in Education Conference (FIE), pp. 1–5 (2018)

  61. Pasternak, E., Fenichel, R., Marshall, A.N.: Tips for Creating a Block language with Blockly. In: Blocks and Beyond Workshop (B&B), 2017 IEEE. IEEE, pp. 21–24 (2017)

  62. Paternò, F., Mancini, C., Meniconi, S.: ConcurTaskTrees: a diagrammatic notation for specifying task models. In: Proceedings of the 6th International Conference on Human–Computer Interaction, pp. 362–369. Chapman and Hall, Sydney (1997)

  63. Peng, Z., Wu, H., Xiao, B., Guo, S.: VQL: Providing query efficiency and data authenticity in blockchain systems. In: 2019 IEEE 35th International Conference on Data Engineering Workshops (ICDEW), pp. 1–6 (2019)

  64. Pfeil, U., Zaphiris, P., Ang, C.S.: Cultural differences in collaborative authoring of Wikipedia. J. Comput.-Mediat. Commun. 12, 88–113 (2006). https://doi.org/10.1111/j.1083-6101.2006.00316.x

    Article  Google Scholar 

  65. Pilato, C.M., Collins-Sussman, B., Fitzpatrick, B.W.: Version Control with Subversion: Next Generation Open Source Version Control. O’Reilly Media Inc, Newton (2008)

    Google Scholar 

  66. Preece, J., Sharp, H., Rogers, Y.: Experimental design. In: Preece, J., Sharp, H., Rogers, Y. (eds.) Interaction Design: Beyond Human–Computer Interaction, 4th edn., p. 486. Wiley, New York (2015)

    Google Scholar 

  67. Rich, C., Sidner, C.L.: DiamondHelp: a generic collaborative task guidance system. AI Mag. 28, 33 (2007)

    Google Scholar 

  68. Robinson, I., Webber, J., Eifrem, E.: Graph Databases, 2nd edn. Oreilly, Newton (2015)

    Google Scholar 

  69. Rubin, J., Chechik, M.: From products to product lines using model matching and refactoring. South Korea, pp. 155–162 (2010)

  70. Rubin, J., Chechik, M., Easterbrook, S.M.: Declarative approach for model composition. In: Proceedings of the 2008 International Workshop on Models in Software Engineering, pp. 7–14. ACM, New York (2008)

  71. Runeson, P., Höst, M.: Guidelines for conducting and reporting case study research in software engineering. Empir. Softw. Eng. 14, 131 (2008). https://doi.org/10.1007/s10664-008-9102-8

    Article  Google Scholar 

  72. Sabel, M.: Structuring Wiki revision history. In: Proceedings of the 2007 International Symposium on Wikis, pp. 125–130. ACM, New York (2007)

  73. Sabetzadeh, M., Nejati, S., Easterbrook, S., Chechik, M.: Global consistency checking of distributed models with TReMer+. In: 2008 ACM/IEEE 30th International Conference on Software Engineering, pp. 815–818 (2008)

  74. Schaefer, I., Bettini, L., Bono, V., Damiani, F., Tanzarella, N.: Delta-oriented programming of software product lines. In: Bosch, J., Lee, J. (eds.) Software Product Lines: Going Beyond, pp. 77–91. Springer, Berlin (2010)

    Chapter  Google Scholar 

  75. Schank, P., Hamel, L.: Collaborative modeling: hiding UML and promoting data examples in NEMo. In: Proceedings of the 2004 ACM Conference on Computer Supported Cooperative Work, pp. 574–577. ACM, New York (2004)

  76. Schwägerl, F., Westfechtel, B.: Integrated revision and variation control for evolving model-driven software product lines. Softw. Syst. Model. 18, 3373–3420 (2019). https://doi.org/10.1007/s10270-019-00722-3

    Article  Google Scholar 

  77. Seidewitz, E.: What models mean. IEEE Softw. 20, 26–32 (2003). https://doi.org/10.1109/MS.2003.1231147

    Article  Google Scholar 

  78. Somogyi, F.A., Asztalos, M.: Systematic review of matching techniques used in model-driven methodologies. Softw. Syst. Model. (2019). https://doi.org/10.1007/s10270-019-00760-x

    Article  Google Scholar 

  79. Spinellis, D.: Version control systems. IEEE Softw. 22, 108–109 (2005). https://doi.org/10.1109/MS.2005.140

    Article  Google Scholar 

  80. Spinellis, D.: Git. IEEE Softw. 29, 100–101 (2012). https://doi.org/10.1109/MS.2012.61

    Article  Google Scholar 

  81. StackExchange Dapper. https://github.com/StackExchange/Dapper. Accessed 1 July 2020

  82. Stephan, M., Cordy, J.R.: A survey of model comparison approaches and applications. In: Proceedings of the 1st International Conference on Model-Driven Engineering and Software Development, pp. 265–277 (2013)

  83. Taentzer, G., Ermel, C., Langer, P., Wimmer, M.: A fundamental approach to model versioning based on graph modifications: from theory to implementation. Softw. Syst. Model. 13, 239–272 (2014). https://doi.org/10.1007/s10270-012-0248-x

    Article  Google Scholar 

  84. Tichy, W.F.: Rcs—a system for version control. Softw. Pract. Exp. 15, 637–654 (1985). https://doi.org/10.1002/spe.4380150703

    Article  Google Scholar 

  85. Torres, J., Jimenez, A., García, S., Peláez, E., Ochoa, X.: Measuring contribution in collaborative writing: an adaptive NMF topic modelling approach. In: 2017 Fourth International Conference on eDemocracy eGovernment (ICEDEG), pp. 63–70(2017)

  86. Wang, D., Olson, J.S., Zhang, J., Nguyen, T., Olson, G.M.: DocuViz: visualizing collaborative writing. In: Proceedings of the 33rd Annual ACM Conference on Human Factors in Computing Systems, pp. 1865–1874. ACM, New York (2015)

  87. Wenzel, S.: Unique identification of elements in evolving software models. Softw. Syst. Model. 13, 679–711 (2014). https://doi.org/10.1007/s10270-012-0311-7

    Article  Google Scholar 

  88. Westfechtel, B.: Merging of EMF models. Softw. Syst. Model. 13, 757–788 (2014). https://doi.org/10.1007/s10270-012-0279-3

    Article  Google Scholar 

  89. Wiegers, K., Beatty, J.: Software Requirements. Microsoft Press, Redmond (2013)

    Google Scholar 

  90. Winter, A., Kullbach, B., Riediger, V.: An overview of the GXL graph Exchange language. In: Diehl, S. (ed.) Software Visualization, pp. 324–336. Springer, Berlin (2002)

    Chapter  Google Scholar 

  91. Yu, E.S.K.: Towards modelling and reasoning support for early-phase requirements engineering. In: Proceedings of ISRE ’97: 3rd IEEE International Symposium on Requirements Engineering, pp. 226–235 (1997)

  92. Zaman, L., Kalra, A., Stuerzlinger, W.: DARLS: differencing and merging diagrams using dual view, animation, re-layout, layers and a storyboard. In: CHI ’11 Extended Abstracts on Human Factors in Computing Systems, pp. 1657–1662. ACM, New York (2011)

  93. Zolotas, A., Hoyos Rodriguez, H., Hutchesson, S., Sanchez Pina, B., Grigg, A., Li, M., Kolovos, D.S., Paige, R.F.: Bridging proprietary modelling and open-source model management tools: the case of PTC integrity modeller and epsilon. Softw. Syst. Model. 19, 17–38 (2020). https://doi.org/10.1007/s10270-019-00732-1

    Article  Google Scholar 

  94. LemonTree (2020). https://www.lieberlieber.com/lemontree/en/

  95. yEd live. In: yWorks. https://www.yworks.com/yed-live. Accessed 14 June 2020

  96. Gephi. In: Gephi. https://gephi.org/. Accessed 14 June 2020

  97. Scalable Vector Graphics (SVG) 1.1, 2nd edn. https://www.w3.org/TR/SVG11. Accessed 18 June 2020

  98. GitHub. https://github.com. Accessed 23 Oct. 2019

  99. Bitbucket. https://bitbucket.org. Accessed 23 Oct. 2019

  100. GitLab. https://gitlab.com. Accessed 23 Oct. 2019

  101. Lucidchart. https://www.lucidchart.com. Accessed 23 Oct. 2019

  102. StarUML. https://staruml.io. Accessed 23 Oct. 2019

  103. Draw.io. https://www.draw.io. Accessed 23 Oct. 2019

  104. Gliffy. www.gliffy.com. Accessed 23 Oct. 2019

  105. Confluence. www.atlassian.com/software/confluence. Accessed 23 Oct. 2019

  106. Scroll Versions. https://www.k15t.com/software/scroll-versions. Accessed 23 Oct. 2019

  107. Visual Paradigm. https://www.visual-paradigm.com. Accessed 23 Oct. 2019

  108. EMF Compare. https://www.eclipse.org/emf/compare/. Accessed 31 Dec. 2020

  109. MATLAB Simulink. https://www.mathworks.com/products/simulink.html. Accessed 31 July 2020

  110. GitHub-Contributions. https://github.blog/2013-01-07-introducing-contributions

  111. GitHub-Example Profile. https://github.com/tclem

  112. NClass. https://nclass.sourceforge.net. Accessed 7 Sept. 2019

  113. SeleniumHQ. https://www.seleniumhq.org. Accessed 10 Oct. 2015

  114. Ethereum. https://www.ethereum.org. Accessed 14 Sept. 2019

  115. BigchainDB. https://www.bigchaindb.com. Accessed 14 Sept. 2019

  116. Neo. https://neo.org. Accessed 14 Sept. 2019

  117. Ripple. https://www.ripple.com. Accessed 14 Sept 2019

  118. Stratis. https://stratisplatform.com. Accessed 14 Sept. 2019

  119. RabbitMQ. https://www.rabbitmq.com. Accessed 1 Sept. 2019

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Pierre A. Akiki.

Additional information

Communicated by Davide Di Ruscio.

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Appendix A: CHECKSUM’s storage mechanism

Appendix A: CHECKSUM’s storage mechanism

CHECKSUM is not mainly related to blockchain technologies, but it uses a blockchain-based mechanism for storing its data. Hence, this appendix offers a brief overview of blockchains and presents CHECHSUM’s storage mechanism.

1.1 Background on blockchain technologies

Blockchain is an infrastructural technology that relies on a distributed ledger, immutable storage, and consensus algorithms. These three technologies decentralize data storage and change the way people collaborate by improving the trustworthiness and integrity of transactions. A common example application for blockchain is the Bitcoin Protocol [52]. Although cryptocurrencies such as Bitcoin are possibly the most common example application of blockchain, there are other important applications such as insurance claim processing and supply chain management. Some platforms support the definition and management of blockchain-based systems using different programming languages. Examples of these platforms include: Ethereum [114], BigChainDB [115], Neo [116], Ripple [117], and Stratis [118]. Version control systems (refer to Sect. 2.3) are a form of blockchain in the sense of having an immutable ledger that keeps a history of changes. However, blockchains use a decentralized approach rather than a centralized one. For example, Nizamuddin et al. [56] presented a decentralized document version control system that is based on Ethereum.

As several researchers noted, blockchains can play an important role in interaction design [27]. One interesting and useful area of application is related to capturing each individual’s contributions to a creative process [31].

1.2 CHECKSUM’s storage mechanism

We based CHECKSUM’s storage mechanism on blockchain to provide immutability and to improve integrity and trust. This mechanism’s concepts and model-management process are presented in Figs. 

Fig. 39
figure 39

Concepts of CHECKSUM’s blockchain-based storage mechanism

39 and

Fig. 40
figure 40

a Multi-node peer to peer communication and b model management process

40 respectively.

1.2.1 Concepts

We designed a blockchain-based persistence layer for CHECKSUM’s prototype. This design supports the use of different types of DBMSs for local storage. This way it is possible to run various queries efficiently using common query languages, which is more difficult to do with traditional blockchain platforms. Researchers have extended existing blockchain platforms to make queries more efficient with approaches such as EtherQL [43] and VQL [63]. When such solutions become more time-tested, it is possible to consider using one of them with an existing blockchain platform in a future version of CHECKSUM.

There are three main concepts in our design, namely Blockchain, Block, and BlockEntry (transaction); these concepts are common in blockchain applications. Every Project has multiple Blockchains; each one stores a different part of the data. Typically, each Blockchain is composed of multiple Blocks that are in turn composed of multiple BlockEntries. The latter represent the data that are stored on a Blockchain.

Consensus algorithms are used to protect the integrity of the data stored on a blockchain, by preventing users from tampering with it and spamming the blockchain with a large number of blocks. Our implementation uses Proof of Work, which is the original consensus algorithm used by Bitcoin. The “Mine” function on Block computes the Block’s hash, based on a “difficulty” value. This function keeps on calling “CreateHash” until it gets a hash that starts with a number of zeros pertaining to a given proof-of-work difficulty. Increasing the difficulty makes it harder to generate new Blocks since it will take longer to find a hash that starts with a higher number of zeros. To get new hashes during the trials without changing the data, a nonce value is used and assigned a new random number after every attempt to get the desired hash.

The ChangeTrackingBlockchain stores tracked changes that are represented as ChangeTrackingOperations. It is possible to reconstruct Models out of their ChangeTrackingOperations. However, not all changes are necessarily tracked (refer to ChangeTrackingRules in Sect. 4), and the reconstruction can be time-consuming. Hence, Models (including diagrams, elements, etc.) are stored separately on the ModelBlockchain.

Users check-in and check-out models as they would do with source control systems. Each Model’s status (checked-in or checked-out) is stored on the ModelStatusBlockchain. The ConfigurationBlockchain saves Configurations that are related to access control, change tracking, and contribution measurement. These Configurations include the following concepts: BlockOperation, BlockOperationReason, ChangeTrackingRules, TimePeriodUnit Duration, OperationTypes, QualityRatingTypes, and RatingReasons.

To enable the persistence of the blockchain data using a DBMS, we defined repositories that provide functions for storing and querying this data. The IBlockchainRepository is the high-level interface that defines the common functions for the other repositories. These functions create, update, and retrieve Blockchain data. A delete function is not included since Blockchains provide immutability by acting like a ledger that logs all transactions. The IBlockchainRepository refers to an IBlockchainUnitOfWork whose concrete implementation works with Blockchains that need to be created or updated. The ChangeTracking, Model, ModelStatus, and Configuration repositories define methods for retrieving data from within the Blockchains. The class diagram presented in Fig. 39 shows a summary of these methods. If we choose to change the implementation to use a blockchain platform, we just need to define an alternative BlockchainContext that interacts with the selected platform rather than a DBMS.

1.3 Model management process

CHECKSUM’s data is shared among users across a peer-to-peer (P2P) network with multiple nodes, where each node represents a user’s device (Fig. 40a). We used WebSockets to enable communication among peers. The nodes act as both clients and servers and engage in full-duplex communication to exchange data and update their local blockchains.

The steps that show the process of managing models with CHECKSUM are presented in Fig. 40b. When a user opens a model design tool, the latter requests updates from peers on the network and updates the local data in all blockchains.

The new models that a user creates are saved in a local database. The changes performed on a model are tracked and also saved locally. When a user is done working and checks-in a model, the latest version of the model is added to the local model blockchain and the model’s new status (checked-in) is added to the local model status blockchain. Then, all the updates that include the model, its status, and the tracked changes are broadcasted to all the other nodes on the network.

When a user checks-out a model, the model’s new status (checked-out) is registered on the model status blockchain, and it is broadcasted to all other nodes on the network. The process of creating and modifying Configurations is similar. Therefore, we did not repeat it in a separate figure.

When transferring data among peers, some nodes are likely not available. This could be due to computer crashes or users being offline. A message broker, RabbitMQ [119], could be used to alleviate this problem. The message broker holds messages in a queue, and a retry mechanism reprocesses the messages in case of failures. This ensures that nodes receive messages from their peers when they come back online. This allows nodes to identify the true status (checked-in or checked-out) of a model, to work on up-to-date model content, and to observe the most recent changes and contributions.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Akiki, P.A., Maalouf, H.W. CHECKSUM: tracking changes and measuring contributions in cooperative systems modeling. Softw Syst Model 20, 1079–1122 (2021). https://doi.org/10.1007/s10270-020-00840-3

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10270-020-00840-3

Keywords

Navigation