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.
Similar content being viewed by others
References
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
Akiki, P.A.: Generating contextual help for user interfaces from software requirements. IET Softw. 13, 75–85 (2019)
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)
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)
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
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
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)
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)
Beatty, J., Chen, A.: Visual Models for Software Requirements. Microsoft Press, Redmond (2012)
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)
Benedek, J., Miner, T.: Measuring desirability: new methods for evaluating desirability in a usability lab setting. Proc. Usability Prof. Assoc. 2003, 8–12 (2002)
Berliner, B., et al.: CVS II: parallelizing software development. In: Proceedings of the USENIX Winter 1990 Technical Conference, p. 352 (1990)
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)
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)
Brosch, P., Seidl, M., Wimmer, M., Kappel, G.: Conflict visualization for evolving UML models. J. Object Technol. 11, 2–1 (2012)
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
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
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)
Connolly, T., Begg, C.: Database Systems: A Practical Approach to Design, Implementation, and Management, 6th edn. Pearson, London (2014)
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)
Danado, J., Paternò, F.: Puzzle: a mobile application development environment using a jigsaw metaphor. J. Vis. Lang. Comput. 25, 297–315 (2014)
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
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)
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)
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
Elmasri, R., Navathe, S.B.: Fundamentals of Database Systems, 7th edn. Pearson, London (2015)
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)
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)
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)
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)
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)
Fowler, M.: UML Distilled: A Brief Guide to the Standard Object Modeling Language, 3rd edn. Addison-Wesley Professional, Boston (2004)
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)
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)
Green, T.R.G., Petre, M.: Usability analysis of visual programming environments: a ‘cognitive dimensions’ framework. J. Vis. Lang. Comput. 7, 131–174 (1996)
Grune, D.: Concurrent Versions System: A Method for Independent Cooperation. Vrije Universiteit, Amsterdam (1986)
Himsolt, M.: GML: a portable graph file format. Technical report, Universitat Passau (1997)
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)
Jackson, M.: Problem Frames: Analysing and Structuring Software Development Problems. Addison-Wesley, New York (2001)
Kleppe, A.G., Warmer, J., Warmer, J.B., Bast, W.: MDA Explained: The Model Driven Architecture: Practice and Promise. Addison-Wesley Professional, Boston (2003)
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
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
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)
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
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)
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)
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
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)
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)
Microsoft: Windows Workflow Foundation (2017). https://docs.microsoft.com/en-us/dotnet/framework/windows-workflow-foundation/. Accessed 7 Sept. 2019
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
Nakamoto, S., et al.: Bitcoin: a peer-to-peer electronic cash system (2008)
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
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)
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)
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
Obeo, C.B., Pierantonio, F.A.: Model differences in the eclipse modelling framework. Eur. J. Inform. Prof. 9, 29–34 (2008)
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)
OMG Object Management Group Terms and Acronyms. https://www.omg.org/gettingstarted/terms_and_acronyms.htm. Accessed 14 Sept. 2019
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)
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)
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)
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)
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
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)
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)
Rich, C., Sidner, C.L.: DiamondHelp: a generic collaborative task guidance system. AI Mag. 28, 33 (2007)
Robinson, I., Webber, J., Eifrem, E.: Graph Databases, 2nd edn. Oreilly, Newton (2015)
Rubin, J., Chechik, M.: From products to product lines using model matching and refactoring. South Korea, pp. 155–162 (2010)
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)
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
Sabel, M.: Structuring Wiki revision history. In: Proceedings of the 2007 International Symposium on Wikis, pp. 125–130. ACM, New York (2007)
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)
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)
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)
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
Seidewitz, E.: What models mean. IEEE Softw. 20, 26–32 (2003). https://doi.org/10.1109/MS.2003.1231147
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
Spinellis, D.: Version control systems. IEEE Softw. 22, 108–109 (2005). https://doi.org/10.1109/MS.2005.140
Spinellis, D.: Git. IEEE Softw. 29, 100–101 (2012). https://doi.org/10.1109/MS.2012.61
StackExchange Dapper. https://github.com/StackExchange/Dapper. Accessed 1 July 2020
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)
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
Tichy, W.F.: Rcs—a system for version control. Softw. Pract. Exp. 15, 637–654 (1985). https://doi.org/10.1002/spe.4380150703
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)
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)
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
Westfechtel, B.: Merging of EMF models. Softw. Syst. Model. 13, 757–788 (2014). https://doi.org/10.1007/s10270-012-0279-3
Wiegers, K., Beatty, J.: Software Requirements. Microsoft Press, Redmond (2013)
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)
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)
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)
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
LemonTree (2020). https://www.lieberlieber.com/lemontree/en/
yEd live. In: yWorks. https://www.yworks.com/yed-live. Accessed 14 June 2020
Gephi. In: Gephi. https://gephi.org/. Accessed 14 June 2020
Scalable Vector Graphics (SVG) 1.1, 2nd edn. https://www.w3.org/TR/SVG11. Accessed 18 June 2020
GitHub. https://github.com. Accessed 23 Oct. 2019
Bitbucket. https://bitbucket.org. Accessed 23 Oct. 2019
GitLab. https://gitlab.com. Accessed 23 Oct. 2019
Lucidchart. https://www.lucidchart.com. Accessed 23 Oct. 2019
StarUML. https://staruml.io. Accessed 23 Oct. 2019
Draw.io. https://www.draw.io. Accessed 23 Oct. 2019
Gliffy. www.gliffy.com. Accessed 23 Oct. 2019
Confluence. www.atlassian.com/software/confluence. Accessed 23 Oct. 2019
Scroll Versions. https://www.k15t.com/software/scroll-versions. Accessed 23 Oct. 2019
Visual Paradigm. https://www.visual-paradigm.com. Accessed 23 Oct. 2019
EMF Compare. https://www.eclipse.org/emf/compare/. Accessed 31 Dec. 2020
MATLAB Simulink. https://www.mathworks.com/products/simulink.html. Accessed 31 July 2020
GitHub-Contributions. https://github.blog/2013-01-07-introducing-contributions
GitHub-Example Profile. https://github.com/tclem
NClass. https://nclass.sourceforge.net. Accessed 7 Sept. 2019
SeleniumHQ. https://www.seleniumhq.org. Accessed 10 Oct. 2015
Ethereum. https://www.ethereum.org. Accessed 14 Sept. 2019
BigchainDB. https://www.bigchaindb.com. Accessed 14 Sept. 2019
Neo. https://neo.org. Accessed 14 Sept. 2019
Ripple. https://www.ripple.com. Accessed 14 Sept 2019
Stratis. https://stratisplatform.com. Accessed 14 Sept. 2019
RabbitMQ. https://www.rabbitmq.com. Accessed 1 Sept. 2019
Author information
Authors and Affiliations
Corresponding author
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.
39 and
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
About this article
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
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10270-020-00840-3