-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
327 lines (304 loc) · 12.2 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, shrink-to-fit=no"
/>
<meta name="description" content="" />
<meta name="author" content="Warteruzannan Soyer Cunha" />
<title>InSet - Tool</title>
<link rel="icon" type="image/x-icon" href="assets/img/favicon.ico" />
<!-- Font Awesome icons (free version)-->
<script
src="https://use.fontawesome.com/releases/v5.13.0/js/all.js"
crossorigin="anonymous"
></script>
<!-- Google fonts-->
<link
href="https://fonts.googleapis.com/css?family=Saira+Extra+Condensed:500,700"
rel="stylesheet"
type="text/css"
/>
<link
href="https://fonts.googleapis.com/css?family=Muli:400,400i,800,800i"
rel="stylesheet"
type="text/css"
/>
<!-- Core theme CSS (includes Bootstrap)-->
<link href="css/styles.css" rel="stylesheet" />
</head>
<body id="page-top">
<!-- Navigation-->
<nav
class="navbar navbar-expand-lg navbar-dark bg-primary fixed-top"
id="sideNav"
>
<a class="navbar-brand js-scroll-trigger" href="#page-top">
<span class="d-block d-lg-none">InSet - Tool</span>
<span class="d-none d-lg-block"
><img
class="img-fluid img-profile rounded-circle mx-auto mb-2"
src="assets/img/512x512.png"
alt=""
/></span>
</a>
<button
class="navbar-toggler"
type="button"
data-toggle="collapse"
data-target="#navbarSupportedContent"
aria-controls="navbarSupportedContent"
aria-expanded="false"
aria-label="Toggle navigation"
>
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="#about">About</a>
</li>
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="#smells">Smells</a>
</li>
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="#architecture"
>Architecture</a
>
</li>
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="#publications"
>Publications</a
>
</li>
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="#downloads"
>Downloads</a
>
</li>
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="#cite">Cite this</a>
</li>
</ul>
</div>
</nav>
<!-- Page Content-->
<div class="container-fluid p-0">
<!-- About-->
<section class="resume-section" id="about">
<div class="resume-section-content">
<h1 class="mb-0">
InSet
<span class="text-primary">Tool</span>
</h1>
<div class="subheading mb-5">
contact me
<a href="mailto:name@email.com">warteruzannan@gmail.com</a>
</div>
<p class="lead mb-5">
Intelligent Smell Detector (InSet) is a tool created by
Warteruzannan Soyer Cunha for detecting architectural smells using
machine learning. It was created within the
<u><a href="http://advanse.dc.ufscar.br/">AdvanSE laboratory</a></u>
of the Universidade Federal de São Carlos (UFSCar).
</p>
<p class="lead mb-5">
Our tool is automatic and does not need any human intervention to
analyze a system and shows its smelly components/dependencies. Our
tool overcomes the limitations of existent tools to identify each
smell and has the following characteristics:
</p>
<ul class="lead mb-5">
<li>
From the user's viewpoint, the InSet tool is automatic and does
not need any configuration or human intervention to analyze a
system, extract its metrics and show its smelly
components/dependencies.
</li>
<li>
Internally, the InSet tool uses machine learning models to
classify the elements (components and/or dependencies) as smelly
and non-smelly. ML models can take the decision based on a vast
set of metrics/features, not only on a unique metric and
threshold. It is important because the interpretation of whether
an element is smelly or not depends on the domain, the experience
of the developers/researchers, and other contextual factors, i.e.,
there is a subjective ingredient in the decision.
</li>
<li>
The tool allows users to give feedback, reporting whether it is
wrong or right. The users' feedback are used to retrain the ML
models, i.e. retrain with real opinions from developers and
researchers. We consider this retraining very important because
the models' performance is constantly monitored and they can be
changed by others that presented a better performance.
</li>
</ul>
</div>
</section>
<hr class="m-0" />
<section class="resume-section" id="smells">
<div class="resume-section-content">
<h2 class="mb-5">Smells</h2>
<h4 class="mb-5">God Component (GC)</h4>
<p>
God Component is a component of your system, usually a big one,
involving several classes, interfaces and other packages. Most of
the time a God Component assumes more responsibilities than it
should and can be characterized by the difficulty of maintenance and
evolution.
</p>
<p class="mb-0">
A way to identify this smell is to find a component that has great
potential to spread side effects when it is changed. Therefore, the
persons more indicated to identify God Component are those that
maintain the system since they know what are the components that
want to be God.
</p>
<br />
<br />
<br />
<br />
<h4 class="mb-5">Unstable Dependency (UD)</h4>
<p>
Thus, Martin (1998) realizes that any architectural elements must
depend on a more stable one than itself. According to Fontana
(2017), an unstable dependency is characterized by architectural
elements that depend on more unstable ones.
</p>
<p>
Since components relate to each other, they must be cohesively and
designed. However, as systems grow, the difficulty of maintaining
some elements of the architecture becomes evident, complex, and
costly to evolve. Thus, this high cost may exist due to the
difficulty of dealing with all relationships of this component.
</p>
<p>
According to this complexity, maintenance difficulty, number of
relationships, among other factors, we can measure the instability
of a component. The concept of instability may vary according to the
knowledge of software engineers who know the system
</p>
</div>
</section>
<!-- downloads-->
<section class="resume-section" id="architecture">
<div class="resume-section-content">
<h2 class="mb-5">Architecture (Under construction)</h2>
<img style="width: 80%" src="assets/img/architecture.png" alt="" />
</div>
</section>
<hr class="m-0" />
<!-- publications-->
<section class="resume-section" id="publications">
<div class="resume-section-content">
<h2 class="mb-5">Related Publications</h2>
<ul class="fa-ul mb-0">
<li>
<span class="fa-li"><i class="fas fa-book"></i></span>
InSet: A Tool to Identify Architecture Smells Using Machine
Learning (2020)
</li>
<li>
<span class="fa-li"><i class="fas fa-book"></i> </span>
<a href="https://dl.acm.org/doi/abs/10.1145/3425269.3425281">
Investigating Non-Usually Employed Features in the Identification
of Architectural Smells: A ML-Based Approach (2020)
</a>
</li>
<li>
<span class="fa-li"><i class="fas fa-book"></i></span>
<a href="https://sol.sbc.org.br/index.php/vem/article/view/7587"
>Uma Investigação da Aplicação de Aprendizado de Máquina para
Detecção de Smells Arquiteturais (2019)</a
>
</li>
</ul>
</div>
</section>
<hr class="m-0" />
<section class="resume-section" id="downloads">
<div class="resume-section-content">
<h2 class="mb-5">Downloads (Under construction)</h2>
<ul class="fa-ul mb-0">
<li>
<span class="fa-li"><i class="fab fa-windows"></i></span>
<a href="https://drive.google.com/open?id=1GCG_UrQzpH3HmCmijW-76tYikcb8bJpc" download
>Windows (x64) - Windows 7,8,10</a
>
</li>
<li>
<span class="fa-li"><i class="fab fa-linux"></i> </span>
<a href="https://drive.google.com/open?id=11DgiIrBMMWbqIfcyPP-ml1bXk2pIKJ-1" download
>Linux (Ubuntu)</a
>
</li>
<li>
<span class="fa-li"><i class="fab fa-apple"></i></span>
<a href="https://drive.google.com/open?id=1BJgabibTaqlcR73Tp6rbxLmkXRhTCgpS"
>MacOS</a
>
</li>
</ul>
<br/>
<h5 class="mb-5">Requirements</h5>
<li>
<span class="fa-li"><i class="fas fa-book"></i></span>
<a href="https://www.oracle.com/br/java/technologies/javase-jre8-downloads.html"
>Java SE Runtime Environment (1.8+)</a
>
</li>
<li>
<span class="fa-li"><i class="fas fa-book"></i></span>
<a href="https://www.python.org/"
>Python 3.6+</a
>
</li>
</div>
</section>
<hr class="m-0" />
<!-- Awards-->
<section class="resume-section" id="cite">
<div class="resume-section-content">
<h2 class="mb-5">Cite this</h2>
<code>
<br />
@INPROCEEDINGS{warteruzannan2020,
<br />
AUTHOR="Warteruzannan Cunha and Guisella Angulo and
Valter Camargo",
<br />
TITLE="InSet: A Tool to Identify Architecture Smells
Using Machine Learning",
<br />
BOOKTITLE="34th Brazilian Symposium on Software
Engineering (SBES '20), October 21--23, 2020, Natal, Brazil",
<br />
DAYS="19-23",
<br />
MONTH="oct",
<br />
YEAR="2020",
<br />
KEYWORDS="Software Maintenance; Software Quality",
<br />
DOI={10.1145/3422392.3422507},
<br />
ISBN={978-1-4503-8753-8/20/09},
<br />
}
</code>
</div>
</section>
</div>
<!-- Bootstrap core JS-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.bundle.min.js"></script>
<!-- Third party plugin JS-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.4.1/jquery.easing.min.js"></script>
<!-- Core theme JS-->
<script src="js/scripts.js"></script>
</body>
</html>