Font Size: a A A

Real-time Collaborative Editing Of Heterogeneous Models Based On Abstract Syntax Trees

Posted on:2022-01-11Degree:MasterType:Thesis
Country:ChinaCandidate:M Y ZhaoFull Text:PDF
GTID:2518306479993519Subject:Software engineering
Abstract/Summary:PDF Full Text Request
The increasing complexity of software systems makes model-based collaborative development a hot spot.Since changes of a heterogeneous model in graphics and text are not equivalent,the collaborative editing of its model has become a difficult prob-lem.The existing approaches do not support the collaborative editing of heterogeneous models.To achieve continuous consistency,this thesis proposes a collaborative editing approach for heterogeneous models based on abstract syntax trees.Both notations are normalized into abstract syntax trees,and then three-way merging is carried out to auto-matically resolve conflicts according to the modification time.The main contributions include:· A normalization process is proposed to transform the model represented by graph-ics and text into a timestamped abstract syntax tree.We ignore unnecessary differ-ences between the textual and graphical notations of the model,transform it into a unified semantic form,and then obtain the abstract syntax tree through Gum Tree D-iff and add a timestamp.· Three-way merge based on abstract syntax tree and automatic conflict resolution based on modified timing are used to obtain conflict-free version.Based on the normalized abstract syntax tree notations,the difference of the changed version is detected by Gum Tree Diff and expressed as an editing script.The three-way merg-ing algorithm based on abstract syntax tree is used to merge the two editing scripts to obtain the latest version.The merge algorithm also detects possible conflicts and automatically resolves conflicts based on the chronological order of change events.· We extend the language server protocol to support information synchronization and synchronously check the syntax of the model.In order to support multi-person collaboration,the version number is modified to a hash value and the parent iden-tifier is added to determine the modification order.In order to support the modifi-cation of graphics,messages such as did Open,did Change,did Save and did Close are modified.In order to prove the generality of our approach,we develop three collaborative tools,including the problem framework web collaborative editing tool PF-Sync,the problem framework VSCode collaborative editing plug-in PF-Plug-in and the i Star2 web collaborative editing tool Pistar-Sync to support collaborative editing for the prob-lem framework models and i Star2 models.Evaluations of the three tools show that our approach can improve the modeling efficiency,and the performance is within the acceptable range.
Keywords/Search Tags:heterogeneous models, collaborative editing, synchronisation, abstract syntax trees, language server
PDF Full Text Request
Related items