This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
bok:eng:mbse:quality [2020/07/06 13:41] anwlur [References] added 'evaluating quality in MDE' |
bok:eng:mbse:quality [2021/05/11 14:21] (current) 101.88.111.77 [Model Quality] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Model Quality ====== | ====== Model Quality ====== | ||
- | Metrics improve development process, understanding of complexity, discovering/predicting faults and estimation of efforts. Often the choice of metrics exceed what is required and therefore it is advised to define what is the purpose of measurement. | + | Metrics improve development process, understanding of complexity, discovering/predicting faults and estimation of efforts. Often the choice of metrics exceed what is required and therefore it is advised to define what is the purpose of measurement.. |
===== Framework for Deciding Metrics ===== | ===== Framework for Deciding Metrics ===== | ||
- | A useful framework to derive useful metrics is the Goal-Question-Metric (GQM) paradigm developed by Basili [2]. The GQM process is as follows: | + | ==== Goal-Question-Metric Framework ==== |
+ | |||
+ | A useful framework to derive useful metrics is the Goal-Question-Metric (GQM) paradigm developed by Basili ((V.R. Basili, G. Caldiera, and H.D. Rombach, "The Goal Question Metric Paradigm", In Encyclopedia of Software Engineering, volume 2, John Wiley and Sons, 1994, pp. 528-532.)). The GQM process is as follows: | ||
- Define goals of measurement (for "UML As Sketch" type models then goal is mainly focusing on communication.) | - Define goals of measurement (for "UML As Sketch" type models then goal is mainly focusing on communication.) | ||
- | - Define questions that have answer that allow the observer to determine whether the goal has been met | + | - Define questions to which the answers allow the observer to determine whether the goal has been met |
- Each question is evaluated to determine what metrics are required to support the question's answer. | - Each question is evaluated to determine what metrics are required to support the question's answer. | ||
+ | ==== Krogstie's framework ==== | ||
+ | |||
+ | {{ :bok:eng:mbse:quality:model-quality1.png?400 |}} | ||
+ | |||
+ | Krogstie's framework((P. Mohagheghi and J. Aagedal, [[https://www.omg.org/ocsmp/MiSE2007-QualityMDE.pdf|"Evaluating Quality in Model-Driven Engineering"]] Access on Jul. 2nd, 2020)) is a framework which lays out that quality goals are defined as relations between blocks. | ||
+ | |||
+ | * Syntatic quality - goal that all statements in the model are according to the syntax of the modeling language | ||
+ | * Empirical quality - comprises comprehensibility matters such as layout and readability | ||
+ | * Organizational quality - model fulfills the goal of modeling | ||
+ | * Social quality - agreement between stakeholder's intepretations | ||
+ | |||
+ | No known empirical evaluation of this framework on models. | ||
===== Quality Goals ===== | ===== Quality Goals ===== | ||
- | Mohagheghi [1] show that there are 6 classes of quality goals for models: | + | Mohagheghi((P. Mohagheghi et al, [[https://www.omg.org/ocsmp/ICSE2009_WoSQ_3415_mohagheghi_parastoo.pdf|"Existing Model Metrics and Relations to Model Quality"]] Accessed on Jul. 4th, 2020)) show that there are 6 classes of quality goals for models: |
* Comprehensibility (emphasis for model sketches) | * Comprehensibility (emphasis for model sketches) | ||
* Confinement (emphasis for model sketches) | * Confinement (emphasis for model sketches) | ||
Line 20: | Line 34: | ||
* Changeability (emphasis for model design) | * Changeability (emphasis for model design) | ||
- | {{ :bok:eng:mbse:intro:mbse_intro1.png?400 |}} | + | {{ bok:eng:mbse:quality:mbse_intro1.png?400 |}} |
* **Comprehensibility** - Model is understandable to its intended audience. | * **Comprehensibility** - Model is understandable to its intended audience. | ||
Line 26: | Line 40: | ||
* **Correctness** - Model includes correct elements & relationships. Does not violate rules and conventions | * **Correctness** - Model includes correct elements & relationships. Does not violate rules and conventions | ||
* **Completeness** - All necessary information is included at the necessary degree of fidelity | * **Completeness** - All necessary information is included at the necessary degree of fidelity | ||
- | * **Consistency** - Model is without contradictions. //Horizontal consistency// is consistency between diagrams and views that belong same level of abstraction. //Vertical consistency// is consistency between models or diagrams at different levels of consistency. Consistency also refers to semantics, i.e. same element does not have multiple interpretations | + | * **Consistency** - Model is without contradictions. //Horizontal consistency// is consistency between diagrams and views that belong same level of abstraction. //Vertical consistency// is consistency between models or diagrams at different levels of fidelity. Consistency also refers to semantics, i.e. same element does not have multiple interpretations |
* **Changeability** - Model supports continuous and rapid improvement and evolution | * **Changeability** - Model supports continuous and rapid improvement and evolution | ||
Line 50: | Line 64: | ||
===== Model Metrics ===== | ===== Model Metrics ===== | ||
- | * **Model Size** - number of elements[3]. Allows for | + | ==== Model Size ==== |
+ | |||
+ | * Rationale includes: | ||
* Comparison of models (before and after, model A and model B on same system) | * Comparison of models (before and after, model A and model B on same system) | ||
* Measure of progress | * Measure of progress | ||
* Prediction of work effort | * Prediction of work effort | ||
- | * **Design Metrics** | + | * Examples((C.F.J. Lange, [[http://www.win.tue.nl/~clange/papers/Lange_ModelSizeMatters.pdf|"Model Size Matters"]], Proc. Model Size Metrics Workshop, 2006)): |
- | * Degree of polymorphism | + | * Absolute size (e.g. number of elements) |
- | * Degree of information hiding | + | * Relative size (e.g. ratio between sequence diagrams and use cases) |
- | * Degree of complexity | + | * Complexity (...) |
- | * Dynamicity / Coupling - complexity of a class internal behavior based on message calls and state transitions | + | * Functionality (e.g. number of use cases) |
- | * Depth of Inheritance Tree (DIT) | + | * Re-use (e.g. applicable if a profile is used, then the metric may be % of profile usage) |
- | * Cohesion - which part of class is needed to perform a single task | + | |
- | * Number of Use Cases - number of use cases per class | + | ==== Design Metrics ==== |
- | * **Comprehensibility Metrics** | + | |
+ | Rationale for the below metrics is to measure the quality of detailed design and implementation | ||
+ | |||
+ | * **Degree of Polymorphism((A.F. Abreu, and W. Melo, “Evaluating the Impact of Object-Oriented Design on Software Quality”, Proc. 3rd International Metric Symposium, 1996, pp. 90-99.))** - the extent to which a method of a class over-rides the class' inherited method from its parent class. | ||
+ | * **Degree of Information Hiding** - the extent that a class' variables and methods are encapsulated. A private element is fully hidden. | ||
+ | |||
+ | === Complexity Metrics === | ||
+ | |||
+ | * **Weighted Methods Per Class** (from Chidamber & Kemerer((S.R. Chidamber, and C.F. Kemerer, “A Metrics Suite for Object-Oriented Design”, IEEE Trans. on Software Engineering 20(6), 1994, pp. 476–493)) OO metrics suite) - Number of Methods defined in class. //High is Complex// | ||
+ | * **Depth of Inheritance Tree** (a CK metric) - Maximum inheritance path from the class to the root class. Deeper a class the more it is likely to inherit, therefore increasing complexity. //High is Complex// | ||
+ | * **Number of Children** (a CK metric) - Number of immediate sub-classes of a class. //Low is Complex// | ||
+ | * **Coupling between Object Classes** (a CK metric) - A coupling is present when method declared in one class use methods in another class. //High is Complex// | ||
+ | * **Response for a Class** (a CK metric) - A response set of method that can potentially be executed in response to a message received by an object of that class. //High is Complex// | ||
+ | * **Lack of Cohesion** (a CK metric) - Lack of cohesion between methods. Identifies classes that attempt to achieve many objectives. //High is Complex// | ||
+ | |||
+ | ==== Comprehensibility Metrics ==== | ||
* Number of elements on diagram | * Number of elements on diagram | ||
* Number of crossing lines on diagram | * Number of crossing lines on diagram | ||
* Number of entry and exit points on diagram | * Number of entry and exit points on diagram | ||
- | ===== References ===== | ||
- | |||
- | * [1] P. Mohagheghi et al, [[https://www.omg.org/ocsmp/ICSE2009_WoSQ_3415_mohagheghi_parastoo.pdf|"Existing Model Metrics and Relations to Model Quality"]] Accessed on Jul. 4th, 2020 | ||
- | * [2] V.R. Basili, G. Caldiera, and H.D. Rombach, "The Goal Question Metric Paradigm", In Encyclopedia of Software Engineering, volume 2, John Wiley and Sons, 1994, pp. 528-532. | ||
- | * [3] C.F.J. Lange, [[http://www.win.tue.nl/~clange/papers/Lange_ModelSizeMatters.pdf|"Model Size Matters"]], Proc. Model Size Metrics Workshop, 2006. | ||
- | * [4] P. Mohagheghi and J. Aagedal, [[https://www.omg.org/ocsmp/MiSE2007-QualityMDE.pdf|"Evaluating Quality in Model-Driven Engineering"]] Access on Jul. 2nd, 2020 |