Show simple item record

dc.contributor.authorBagherzadeh, Mojtaba
dc.contributor.otherQueen's University (Kingston, Ont.). Theses (Queen's University (Kingston, Ont.))en
dc.description.abstractModel-driven Development (MDD) is a software development approach that advocates using models rather than source code. MDD can decrease complexity by raising the level of abstraction, and increase productivity by automation, e.g., code generation. Developers spend around 50% of their time on debugging and fixing bugs, and the cost of debugging, testing, and verification account for almost 50-75% of the software development budget. Existing MDD tools do not provide proper support for the debugging of models. Thus, developers often debug the generated source code in order to debug their models, which contradicts MDD principles, as many of the benefits of the abstraction are lost. This thesis introduces a novel approach to platform-independent model-level debugging, with the help of model transformation that equips the model with support for debugging services. The approach does not rely on program debuggers, and any changes to, e.g., the code generator or the hardware platform, leave the debugger unaffected. Based on the approach, a model-level debugger MDebugger is created that allows the debugging of UML-RT models. The typically iterative and incremental nature of software development implies that many development artifacts are incomplete until later stages of development. None of the model-level debuggers, including MDebugger, allows the debugging of incomplete (i.e., partial) models, because the model execution techniques (interpretation and code generation) cannot execute partial models. This often prevents useful analyses that would allow the detection of design flaws and bugs early in the development process, when they are easiest to fix. We propose a conceptual framework to execute partial models. Based on the framework, an execution engine of partial models (PMExec) is developed that allows the debugging and execution of partial UML-RT models at any stage of the software development process, assuming that the structural models are defined and proper input is provided. Finally, to keep pace with program debugging services, and optimize the PMExec and MDebugger we introduce a new approach for live modeling that allows the updating of model elements during the execution.en_US
dc.relation.ispartofseriesCanadian thesesen
dc.rightsQueen's University's Thesis/Dissertation Non-Exclusive License for Deposit to QSpace and Library and Archives Canada*
dc.rightsProQuest PhD and Master's Theses International Dissemination Agreement*
dc.rightsIntellectual Property Guidelines at Queen's University*
dc.rightsCopying and Preserving Your Thesis*
dc.rightsThis publication is made available by the authority of the copyright owner solely for the purpose of private study and research and may not be copied or reproduced except as permitted by the copyright laws without written authority from the copyright owner.*
dc.rightsAttribution 3.0 United States*
dc.subjectModel-Driven Developmenten_US
dc.subjectModel-Level Debuggingen_US
dc.subjectLive Modelingen_US
dc.subjectPartial Modelsen_US
dc.titleModel-Level Debugging in the Context of the Model-Driven Developmenten_US
dc.description.degreeDoctor of Philosophyen_US
dc.contributor.supervisorDingel, Juergen

Files in this item


This item appears in the following Collection(s)

Show simple item record

Queen's University's Thesis/Dissertation Non-Exclusive License for Deposit to QSpace and Library and Archives Canada
Except where otherwise noted, this item's license is described as Queen's University's Thesis/Dissertation Non-Exclusive License for Deposit to QSpace and Library and Archives Canada