Proj FuzzViz Paper Reading: Visualization of Object-Oriented Variability Implementations as Cities
Abstract
背景:大型软件中往往有许多实现可变性丰富的方式(继承、patterns),这些都使得可视化较难
本文:VariCity
方法:city metaphor,展示充满可变性行为的zones of interest
- 通过在代码中使用对称性来检测不同形式的可变性实现(例如,继承定义了超类的不可变部分与其子类中可能的变化之间的替换对称性)。
- VariCity 创建一个 3D 城市表示,其中建筑物是类,而对称数量的指标(例如,重载方法的数量)、影响建筑物大小以及如果它们在对称中重载时的颜色。
- 根据类之间的使用关系排列城市街道
实验:
对象:一组大型面向对象的系统
效果:帮助新手发现了与可变性相关区域???
1. Intro
继承定义了超类的不可变部分与其子类的可能变化之间的替换对称性
称数量的指标会影响建筑物的大小,负载很重会影响它们的颜色。
3. background
A. object-oriented symmetries
symmetry: immunity to a possible change
local symmetries in codebase: 允许一部分代码改变,剩下的不便
此外,实现可变性的主要面向对象 (OO) 技术可以通过局部对称(例如,构造函数和方法重载、工厂或策略模式)来表征
( Furthermore, the main object-oriented (OO) techniques implementing variability can be characterized by local symmetries (e.g., constructor and method overloading, factory or strategy pattern), and at an abstract level, a vp represents the unchanged part while its variants are the changed parts in code assets of a system)