SoftwareQualityModel

Download Report

Transcript SoftwareQualityModel

Software Quality Model
-- a preliminary report --
鄢萌 刘骁
Outline
1. 软件质量
2. 软件质量模型
3. 概率质量模型
4. 主题质量模型
5. Squale模型详解
2015/4/8
page2
Preface
Measure what is measurable, and make measurable what
is not so.
-----Galileo Galilei (1564-1642)
2015/4/8
page3
软件质量
• 软件过程质量:
-- 过程质量,设计质量
-- 软件过程监控与软件过程改进(CMM/CMMI,redmine过程框架)
• 软件质量:
-- 满足用户的需求
-- 需求、设计及开发质量
-- 内部及外部质量(可观测)
-- 设计、实现、测试及维护质量
-- 无缺陷 ,运行正确 (狭义)
--与软件产品满足明确或隐含需求的能力有关的特征和特性的总和
2015/4/8
page4
软件质量模型
质量特性/特征/子特征/度量元
特征值计算方法/特征权重
软件质量模型
个体评分/特征评分/综合评分方法
2015/4/8
page5
基于源代码挖掘的软件质量模型
isse.cqu.edu.cn
Level 1
质量需求特
征
建模和学习
Level 2
1
1 ,n
质量需求
子特征
Level 3
1
1 ,n
特征表示
和描述
基于源代码的软件质量评估和分析
源代码度量
特征
源代码
特征提取
现有软件质量模型
• Boehm
• McCall
• ISO9126
• SIG model
• Squale
• Sqale (sonar)
2015/4/8
page7
Boehm’s Model(Boehm, 1976)
2015/4/8
page8
McCall(US Air Force)(McCall, 1978)
2015/4/8
page9
McCall model
可维护性
灵活性
可测试性
产
品
修
正
性
可移植性
可重用性
产
可互操作性
品
转
移
性
产品运行性
正确性
完整性
rf = c1m1 + c2m2 + c3m3 + ...
rf is a rating of a quality factor, f
ci are the regression coefficients
2015/4/8
可靠性
有用性
有效性
m. are the various measurements f
page10
ISO 9126 (1991)
 “软件质量”(ISO9126):软件满足规定或潜在用户需
求特性的总和。包括“内部质量”、“外部质量”和“
使用质量”三部分。
• 外在因素:软件所提供的功能、性能、人机交互界面是否美
观、易于操作
• 内在因素:软件的设计好坏、缺陷的数目和严重程度
–
–
–
–
–
–
–
没有××功能(功能)
运行速度太慢(性能)
有太多的错误(缺陷)
软件不好改动(维护)
界面不美观(人机界面)
这个软件不好使用(易用性)
等等。。。。。
2015/4/8
page11
ISO 9126
2015/4/8
page12
ISO 9126
 Specifying software quality for a product yet to be
developed is difficult for the customer and/or
supplier
 The customer needs to understand and communicate
requirements for the product to be developed
 The supplier needs to understand the requirement and
to assess with confidence whether it is possible to
provide the product with the right level of quality
ISO 9126 will serve to eliminate any
misunderstanding between customer and supplier
2015/4/8
page13
ISO 9126
外部和内部质量
功能性
可靠性
易用性
效率
可维护性
可移植性
适合性
准确性
互操作性
成熟性
容错性
易恢复性
易理解性
易学性
易操作性
吸引性
时间特性
易分析性
易改变性
稳定性
易测试性
适应性
易安装性
共存性
易替换性
保密安全
性
资源利用
性
ISO 9126 does not provide sub-characteristics and metrics, nor the
method for measurement, rating and assessment.
2015/4/8
page14
SIG1 model (Software Improvement
Group) (2007, 2011)
Ideas:
1.
2.
3.
4.
5.
Based on ISO9126
Focus on maintainability
non-overlap metrics
Better and worse principle
Benchmark in 2011
Rating 1: <= 10% coverage
Rating 2: 10% < coverage <= 60%
Rating 3: 60% < coverage <= 80%
Rating 4: 80% < coverage <= 95%
Rating 5: coverage >95%
1. Software Improvement Group http://www.sig.eu/
2015/4/8
page15
SQALE(2011)
• SQALE: Software Quality Assessment based on
Lifecycle Expectations
http://nemo.sonarqube.org/dashboard/index/176173?did=19
2015/4/8
page16
SQALE (sonar)
2015/4/8
page17
SQALE (sonar)
SQALE Quality Model Example for the Java Language
2015/4/8
page18
Outline
1. 软件质量
2. 软件质量模型
3. 概率质量模型
4. 主题质量模型
5. Squale模型详解
2015/4/8
page19
Paper
• Bakota T, Hegedus P, Kortvelyesi P, et al. A
probabilistic software quality model[C]//Software
Maintenance (ICSM), 2011 27th IEEE International
Conference on. IEEE, 2011: 243-252.
http://www.sed.inf.u-szeged.hu/
2015/4/8
page20
Probabilistic Quality Model
存在的问题:
源代码仓库
特征/度量元
提取
现有
质量
模型
构造质量模型
概率
主题
模型
 源代码底层度量元表示单一
--值或均值
 上层指标计算方法的单一
--权重依据
--线性加权
创新点:
创建了一个标准数据库
从概率的角度为每层的每
个属性构造了goodness函
数
质量评估与改进
2015/4/8
page21
Overview
Benchmark构建
开始
选取100
个java项
目
专家选择
度量元选择
columbus
度量元计算
构造benchmark database
与benchmark中
度量元进行比较
得到goodness
函数
计算上层特征
的goodness
验证与评估
System1
REM
构建概率质量模型
2015/4/8
page22
Probabilistic Quality Model
2015/4/8
page23
Formulation
• Attribute Dependency Graph (ADG) G= (S∪A, E)
S: sensor nodes
A: aggregation nodes
E: Edges
• Goodness:how good or bad an attribute is
Xu : the goodness of each node u
gu : the goodness function of node u
h(t) : the density functions of a system for a metric t
w(t) : the weight –function of the metric t
2015/4/8
page24
Constructing goodness function (1/3)
h1(t),h2(t) : the density functions of two systems for the same metric
w(t) : the weight –function of the metric
D(h1,h2) : h1与h2在度量元t上的差异
2015/4/8
page25
Constructing goodness function (2/3)
-- w(t) : the weight–function of the metric
--Set w(t)=c: all metric values matter in the same amount
--Set w(t)=t: higher metrical values are worse. (e.g. McCabe’s complexity)
归一化:
2015/4/8
x →x/2· max(| max|,| min|)+0.5
[−∞,+∞] → [0,1]
page26
Constructing goodness function (3/3)
第i个系统在特定的度量元上取值的随机变量:
中心极限定理:
2015/4/8
page27
Aggregation
--v :each aggregate node
--n :is the number of incoming edges
--n :is the number of incoming edges
-: the composed probability of the vote
--
2015/4/8
the goodness of the target node
page28
Experiment(data)
2015/4/8
page29
Experiment(Result)
2015/4/8
page30
Evaluation(1/3)
• Pearson相关系数
r 
 X  X Y  Y 
 X  X   Y  Y 
2
2





X 的离均差平方和:
l XX   X  X
Y 的离均差平方和:
lYY   Y  Y
X与Y 间的离均差积和:
l XY   X  X Y  Y

lXY
lXX lYY
2
2


0.8-1.0 极强相关
0.6-0.8 强相关
0.4-0.6 中等程度相关
0.2-0.4 弱相关
0.0-0.2 极弱相关或无相关
2015/4/8
page31
Evaluation(2/3)
2015/4/8
page32
Evaluation(3/3)
--Averaged grades for maintainability and it’s ISO9126 attributes based on the
developer’s opinion
2015/4/8
page33
Conclusion
• Positive
--expert knowledge
--benchmark database
--ISO9126 based
--a probabilistic model
• Negative
-- weight function w(t)
-- limitation of the developers
-- only compare the mean values of goodness functions and the
averages of the experts’ votes (distribution)
2015/4/8
page34
Outline
1. 软件质量
2. 软件质量模型
3. 概率质量模型
4. 主题质量模型
5. Squale模型详解
2015/4/8
page35
Topic model in NLP
-- 一个主题好比是一个“桶”
-- 主题是由一“桶”有联系的单词来体现
-- 每个文档都是所有主题的概率混合
-- 每个词都与一个主题概率相关
2015/4/8
page36
Topic model in Shape semantics
Probabilistic Latent Semantic Analysis (pLSA)
d
D
z
w
N
“face”
2015/4/8
page37
Topic model in software quality
Probabilistic Latent Semantic Analysis (pLSA)
z
d
N
D
File/class
2015/4/8
w
“maintainability”
warning
Error
CBO
McCabe
TLLOC
CC
page38
Research Question 1
• 如何选择单词与主题?
--based on SIG model
2015/4/8
page39
Research Question 2
• 为了得到词频矩阵,如何对单词进行量化?
Practice Name
Class cohesion
Criteria
modularity, maintainability
Score
class
Metrics
LCOM2 (lack of cohesion in methods)
Mark
Individual mark:
– 0 if lcom2 > 100
– 1 if lcom2 > 50
– 2 if lcom2 > 0
– 3 if lcom2 <= 0
Weight
soft
Metadata
参考5.1.3
Company Logo
Page25
Research Question 3
• 如何加入监督信息?如何解释主题模型在质量评估中的意
义?
---taged words
---labeled topic
---supervised LDA
---labeled LDA
---权重函数w(t)
---主题概率
2015/4/8

权重weight
page41
Research Question 3
Correctness
Reliability
Efficiency
Integrity
Usability
Maintainability
Testability
Flexibility
Portability
Reusability
C
Inverse
R
Direct
E
I
U
M
T
F
P
R
Interoperability
2015/4/8
page42
Future work
1. 专家调研
2. 相关系数计算
结果评估
1. 主题概率与权重
主题应用
1. 词频矩阵构建
2. 监督信息
3. 专家知识
主题质量模型的建立
1. 围绕ISO9126
2. 以可维护性切入
3. 借鉴squale
源代码特征选择与提取
2015/4/8
page43
Outline
1. 软件质量
2. 软件质量模型
3. 概率质量模型
4. 主题质量模型
5. Squale模型详解
2015/4/8
page44
Squale模型详解
Squale (Software Quality Enhancement) is an open-source platform
that helps monitoring software quality for multi-language applications.
It currently supports Java out-of-the-box, and can also analyse C/C++ .
Squale is partially funded by the French FUI (Fonds unique
interministériel ), labeled by the Systematic Paris-Region competitive
cluster and supported by its FLOSS group.
2015/4/8
page45
Squale模型详解
2015/4/8
page46
Squale模型详解
可以从图中看出squale模型共分为measures,pratice,critersion,factor 四
层。其中低层的若干个属性组成高层的一个属性,依次类推直到最高
层factor层。
2015/4/8
page47
Squale模型详解
2015/4/8
page48
Squale模型详解
2015/4/8
page49
Squale评价体系
Practice analysis
• metric analysis: based on computed metrics.
—— Inheritance Depth,Source comments rate
• model analysis :based on model analysis.
—— Encapsulation,Classes without method
• rules checking :analysis based on programming rules.
—— Formatting standard,Naming standard
• human analysis :based on human expertise.
—— Documentation quality,Code organization
• dynamic analysis :based on tests analysis.
—— Robustness tests,Functional limits testing
2015/4/8
page50
Squale评价体系
Practice marks
Practice global marks for a project are computed, in most cases, in two
steps:
• Individual mark: Each element (method, class, or package in
object-oriented programs) targeted by a practice is given a mark
with respect to its measures. For example, the two metrics
composing the comment rate practice, cyclomatic complexity and
source line of code, are defined at the method level; thus a comment
rate mark is computed for each method.
• Global mark A global mark for the practice is computed using a
weighted average of the previous individual marks.
2015/4/8
page51
Squale评价体系
Individual mark
Two kinds of formulae exist for computing individual
marks, namely discrete and continuous formulae. An
individual mark is computed from measures in multiple
ranges into a single mark in the range [0; 3].
2015/4/8
page52
Squale评价体系
Global mark
The computation of the practice mark is a two-step process. First a
weighting function is applied to each individual mark:
Then the inverse function:
Thus the global mark for a practice is:
This formula translates individual marks into a new space where low marks
have significantly more weight than others. The average of the weighted marks
will reflect the more important weight of the low marks.
2015/4/8
page53
Squale评价体系
2015/4/8
page54
Squale模型详解
2015/4/8
page55
Squale模型详解
2015/4/8
page56
Squale模型详解
2015/4/8
page57
Squale模型详解
2015/4/8
page58
Squale模型详解
2015/4/8
page59
Squale模型详解
2015/4/8
page60
Squale模型详解
2015/4/8
page61