-
Notifications
You must be signed in to change notification settings - Fork 21
/
rmod.bib
11304 lines (10740 loc) · 693 KB
/
rmod.bib
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
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
%% Saved with string encoding Unicode (UTF-8)
@inproceedings{Mira15a,
TITLE = {A Partial Read Barrier for Efficient Support of Live Object-oriented Programming},
Annote = {topconference},
AUTHOR = {Miranda, Eliot and B{\'e}ra, Cl{\'e}ment},
URL = {https://hal.inria.fr/hal-01152610},
BOOKTITLE = {International Symposium on Memory Management (ISMM '15)},
ADDRESS = {Portland, United States},
PAGES = {93-104},
YEAR = {2015},
MONTH = jun,
DOI = {10.1145/2754169.2754186},
PDF = {https://hal.inria.fr/hal-01152610/file/partialReadBarrier.pdf},
HAL-ID = {hal-01152610}
}
@inproceedings{Abde07a,
Annote = {internationalworkshop},
Author = {Hani Abdeen and Ilham Alloui and St\'ephane Ducasse and Damien Pollet and Mathieu Suen},
Booktitle = {FAMOOSr, 1st Workshop on FAMIX and Moose in Reengineering},
Keywords = {moose stefPub kzVisualization},
Title = {Package References Distribution Fingerprint},
Year = {2007}}
@inproceedings{Abde08b,
Abstract = {Object-oriented languages such as Java, Smalltalk, and C\+\+ structure their programs using packages, allowing classes to be organized into named abstractions. Maintainers of large applications need to understand how packages are structured and how they relate to each other, but this task is very complex because packages often have multiple clients and different roles (class container, code ownership...). Cohesion and coupling are still among the most used metrics, because they help identify candidate packages for restructuring; however, they do not help maintainers understand the structure and interrelationships between packages. In this paper, we present the package fingerprint, a 2D visualization of the references made to and from a package. The proposed visualization offers a semantically rich, but compact and zoomable visualization centered on packages. We focus on two views (incoming and outgoing references) that help users understand how the package under analysis is used by the system and how it uses the system. We applied these views on three large case studies: JBoss, Azureus, and ArgoUML.},
Aeres = {ACT},
Aeresstatus = {aeres08},
Annote = {internationalconference},
Author = {Hani Abdeen and Ilham Alloui and St\'ephane Ducasse and Damien Pollet and Mathieu Suen},
Booktitle = {Proceeding of the 12th European Conference on Software Maintenance and Reengineering (CSMR'08)},
Hal = {http://hal.inria.fr/inria-00200869},
Hal-Id = {inria-00200869},
Inria = {ADAM},
Keywords = {moose cook-pub lse-pub kzVisualization},
Location = {Athens, Greece},
Misc = {Acceptance rate: 24/87 = 27\%},
Pages = {213--222},
Publisher = {IEEE Computer Society Press},
Rate = {27\%},
Selectif = {oui},
Title = {Package Reference Fingerprint: a Rich and Compact Visualization to Understand Package Relationships},
Url = {http://rmod.inria.fr/archives/papers/Abde08b-CSMR2008-Fingerprint.pdf},
Year = {2008}}
@inproceedings{Abde09b,
Abstract = {Object-oriented (OO) software is usually organized into subsystems using the concepts of package or module. Such modular structure helps applications to evolve when facing new requirements. However, studies show that as soft- ware evolves to meet requirements and environment changes, modularization quality degrades. To help maintainers improve the quality of software modularization we have designed and implemented a heuristic search-based approach for automatically optimizing inter-package connectivity (i.e., dependencies). In this paper, we present our approach and its underlying techniques and algorithm. We show through a case study how it enables maintainers to optimize OO package structure of source code. Our optimization approach is based on Simulated Annealing technique.},
Address = {Washington, DC, USA},
Aeres = {ACT},
Aeresstatus = {aeres12},
Annote = {internationalconference},
Author = {Hani Abdeen and St\'ephane Ducasse and Houari A. Sahraoui and Ilham Alloui},
Booktitle = {Proceedings of the 16th International Working Conference on Reverse Engineering (WCRE'09)},
Hal = {http://hal.inria.fr/inria-00425417},
Hal-Id = {inria-00425417 to recover as lse},
Inria = {RMOD},
Inriareport = {2009},
Keywords = {moose remoose2 lse-pub cook kzRemodularisation},
Misc = {acceptance rate: 20/79 = 25\%},
Pages = {103--112},
Publisher = {IEEE Computer Society Press},
Rate = {25\%},
Selectif = {oui},
Title = {Automatic Package Coupling and Cycle Minimization},
Url = {http://rmod.inria.fr/archives/papers/Abde09b-WCRE2009-AutomaticPackageCoupling.pdf},
X-Country = {FR},
X-Editorial-Board = {yes},
X-International-Audience = {yes},
X-Language = {EN},
X-Pays = {CA},
X-Proceedings = {yes},
Year = {2009}}
@phdthesis{Abde09c,
Abstract = {To cope with the complexity of large object-oriented software systems, developers organize classes into subsystems using the concepts of module or package. Such modular structure helps software systems to evolve when facing new requirements. The organization of classes into packages and/or subsystems represents the software modularization. the software modularization usually follows interrelationships between classes. Ideally, packages should to be loosely coupled and cohesive to a certain extent. However, Studies show that as
software evolves to meet requirements and environment changes, the software modularization gradually drifts
and looses quality. As a consequence, the software modularization must be maintained. It is thus important to
understand, to assess and to optimize the organization of packages and their relationships.
Our claim is that the maintenance of large and complex software modularizations needs approaches that help in:
(1) understanding package shapes and relationships; (2) assessing the quality of a modularization, as well as
the quality of a single package within a given modularization; (3) optimizing the quality of an existing
modularization.
In this thesis, we concentrate on three research fields: software visualizations, metrics and algorithms. At
first, we define two visualizations that help maintainers: (1) to understand packages structure, usage and
relationships; (2) to spot patterns; and (3) to identify misplaced classes and structural anomalies. In
addition to visualizations, we define a suite of metrics that help in assessing the package design quality
(i.e., package cohesion and coupling). We also define metrics that assess the quality of a collection of
inter-dependent packages from different view points, such as the degree of package coupling and cycles.
Finally, we define a search-based algorithm that automatically reduces package coupling and cycles only by
moving classes over existing packages. Our optimization approach takes explicitly into account the original
class organization and package structure. It also allows maintainers to control the optimization process by
specifying: (1) the maximal number of classes that may change their packages; (2) the classes that are
candidate for moving and the classes that should not; (3) the packages that are candidate for restructuring
and the packages that should not; and (4) the maximal number of classes that a given package can entail.
The approaches presented in this thesis have been applied to real large object-oriented software systems. The
results we obtained demonstrate the usefulness of our visualizations and metrics; and the effectiveness of our
optimization algorithm.},
Aeres = {AP},
Annote = {PhD},
Author = {Hani Abdeen},
Hal-Id = {tel-00498389 / zi#3ow#h},
Inria = {RMOD},
Institution = {INRIA},
Keywords = {moose remoose2 lse-pub cook kzVisualization kzVisualization},
School = {Universit\'e de Lille},
Title = {Visualizing, Assessing and Re-Modularizing Object-Oriented Architectural Elements},
Url = {http://rmod.inria.fr/archives/phd/PhD-2009-Abdeen.pdf},
X-Language = {EN},
Year = {2009}}
@article{Abde10a,
Abstract = {Context: Object-oriented languages such as Java, Smalltalk, and C\+\+ structure their programs using packages. Maintainers of large systems need to understand how packages relate to each other, but this task is complex because packages often have multiple clients and play different roles (class container, code ownership. . . ). Several approaches have been proposed, among which the use of cohesion and coupling metrics. Such metrics help identify candidate packages for restructuring; however, they do not help maintainers actually understand the structure and interrelation- ships between packages.
Objectives: In this paper, we use pre-attentive processing as the basis for package visualization and see to what extent it could be used in package understanding.
Method: We present the package fingerprint, a 2D visualization of the references made to and from a package. The proposed visualization offers a semantically rich, but compact and zoomable views centered on packages. We focus on two views (incoming and outgoing references) that help users understand how the package under analysis is used by the system and how it uses the system.
Results: We applied these views on four large systems: Squeak, JBoss, Azureus, and ArgoUML. We obtained several interesting results, among which, the identification of a set of recurring visual patterns that help maintainers: (a) more easily identify the role of and the way a package is used within the system (e.g., the package under analysis provides a set of layered services), and, (b) detect either problematic situations (e.g., a single package that groups together a large number of basic services) or opportunities for better package restructuring (e.g., removing cyclic dependencies among packages). The visualization generally scaled well and the detection of different patterns was always possible.
Conclusion: The proposed visualizations and patterns proved to be useful in understanding and maintaining the different systems we addressed. To generalize to other contexts and systems, a real user study is required.},
Aeres = {ACL},
Aeresstatus = {aeres12},
Annote = {internationaljournal},
Author = {Hani Abdeen and St\'ephane Ducasse and Damien Pollet and Ilham Alloui},
Doi = {10.1016/j.infsof.2010.07.005},
Hal-Id = {inria-00531496},
Impactfactor = {ISI impact factor (2010) 1.821},
Inria = {RMOD},
Inriareport = {2010},
Journal = {Information and Software Technology Journal},
Keywords = {moose remoose2 lse-pub cook kzVisualisation},
Pages = {1312-1330},
Secondurl = {http://rmod.inria.fr/archives/papers/Abde10a-IST-packageFingerprints.pdf},
Title = {Package Fingerprint: a visual summary of package interfaces and relationships},
Url = {http://rmod.inria.fr/archives/papers/Abde10a-IST-Official-packageFingerprints.pdf},
Volume = {52},
X-Editorial-Board = {yes},
X-International-Audience = {yes},
X-Proceedings = {yes},
Year = {2010}}
@inproceedings{Abde11a,
Abstract = {There exist many large object-oriented software systems consisting of several thousands of classes that are organized into several hundreds of packages. In such software systems, classes cannot be considered as units for software modularization. In such context, packages are not simply classes containers, but they also play the role of modules: a package should focus to provide well identified services to the rest of the software system. Therefore, understanding and assessing package organization is primordial for software maintenance tasks. Although there exist a lot of works proposing metrics for the quality of a single class and/or the quality of inter-class relationships, there exist few works dealing with some aspects for the quality of package organization and relationship. We believe that additional investigations are required for assessing package modularity aspects. The goal of this paper is to provide a complementary set of metrics that assess some modularity principles for packages in large legacy object-oriented software: Information-Hiding, Changeability and Reusability principles. Our metrics are defined with respect to object-oriented dependencies that are caused by inheritance and method call. We validate our metrics theoretically through a careful study of the mathematical properties of each metric.},
Address = {Washington, DC, USA},
Aeres = {ACT},
Aeresstatus = {aeres12},
Annote = {internationalconference},
Author = {Hani Abdeen and St\'ephane Ducasse and Houari A. Sahraoui},
Booktitle = {Proceedings of the 18th IEEE International Working Conference on Reverse Engineering (WCRE'11)},
Hal = {http://hal.inria.fr/inria-00614778/en/},
Hal-Id = {inria-00614778},
Inria = {RMOD},
Keywords = {moose cutter lse-pub raweb2011 kzMetric kzRemodularisation},
Labo = {dans},
Misc = {Short paper, acceptance rate: 50/104 = 48\%},
Publisher = {IEEE Computer Society Press},
Rate = {acceptance rate (full + short papers): 50/104 = 48\%},
Selectif = {non},
Title = {Modularization Metrics: Assessing Package Organization in Legacy Large Object-Oriented Software},
Url = {http://hal.inria.fr/docs/00/61/45/83/PDF/ModularizationMetrics-INRIA.pdf},
X-Country = {FR},
X-Editorial-Board = {yes},
X-International-Audience = {yes},
X-Language = {EN},
X-Pays = {FR},
X-Proceedings = {yes},
Year = {2011}}
@techreport{Abde11i,
Abstract = {There exist many large object-oriented software systems consisting of several thousands of classes that are organized into several hundreds of packages. In such software systems, classes cannot be considered as units for software modularization. In such context, packages are not simply classes containers, but they also play the role of modules: a package should focus to provide well identified services to the rest of the software system. Therefore, understanding and assessing package organization is primordial for software maintenance tasks. Although there exist a lot of works proposing metrics for the quality of a single class and/or the quality of inter-class relationships, there exist few works dealing with some aspects for the quality of package organization and relationship. We believe that additional investigations are required for assessing package modularity aspects. The goal of this paper is to provide a complementary set of metrics that assess some modularity principles for packages in large legacy object-oriented software: Information-Hiding, Changeability and Reusability principles. Our metrics are defined with respect to object-oriented inter-package and intra-package dependencies. The dependencies that are caused by different types of inter-class dependencies, such as inheritance and method call. We validate our metrics theoretically through a careful study of the mathematical properties of each metric.},
Aeres = {COM},
Aeresstatus = {aeres12},
Annote = {technicalreport},
Author = {Abdeen, Hani and Ducasse, St{\'e}phane and Sahraoui, Houari A.},
Hal-Id = {inria-00614583},
Inria = {RMOD},
Institution = {RMod -- INRIA Lille-Nord Europe},
Keywords = {Software Metrics Software Modularization Coupling Cohesion Packages Modularity kzMetric kzRemodularisation},
Labo = {dans},
Pdf = {http://hal.inria.fr/inria-00614583/PDF/ModularizationMetrics-INRIA.pdf},
Selectif = {non},
Title = {Modularization Metrics: Assessing Package Organization in Legacy Large Object-Oriented Software},
Url = {http://rmod.inria.fr/archives/reports/Abde11a-TechReport-ModularizationMetrics-INRIA.pdf},
X-Country = {FR},
X-Editorial-Board = {yes},
X-International-Audience = {yes},
X-Language = {EN},
X-Pays = {FR},
X-Proceedings = {yes},
Year = {2011}}
@inproceedings{Abde13a,
Abstract = {Recent studies have largely investigated the detection of class design anomalies. They proposed a large set of metrics that help in detecting those anomalies and in predicting the quality of class design. While those studies and the proposed metrics are valuable, they do not address the particularities of Java interfaces. Interfaces define the contracts that spell out how software modules and logic units interact with each other. This paper proposes a list of design anomalies related to Java interfaces. We identify and describe those anomalies via real examples, taken from well-known Java applications. Then we define three metrics help in automatically estimate the interface design quality, regarding the proposed design anomalies. We evaluate our metrics on three large Java applications. The results show that our metrics are realistic and help in qualifying the interface design, and in identifying candidate refactoringRecently, there has been an important progress in applying search-based optimization techniques to the problem of software re-modularization. Yet, a major part of the existing body of work addresses the problem of modularizing software systems from scratch, regardless of the existing packages structure. This paper presents a novel multi-objective optimization approach for improving existing packages structure. The optimization ap- proach aims at increasing the cohesion and reducing the coupling and cyclic connectivity of packages, by modifying as less as pos- sible the existing packages organization. Moreover, maintainers can specify several constraints to guide the optimization process with regard to extra design factors. To this contribution, we use the Non-Dominated Sorting Genetic Algorithm (NSGA-II). We evaluate the optimization approach through an experiment covering four real-world software systems. The results promise the effectiveness of our optimization approach for improving existing packages structure by doing very small modifications.},
Aeres = {ACT},
Annote = {internationalconference},
Author = {Hani Abdeen and Houari Sahraoui and Osama Shata and Nicolas Anquetil and St\'ephane Ducasse},
Booktitle = {International Working Conference on Reverse Engineering (WCRE'13)},
Hal-Id = {hal-00862063},
Keywords = {moose cutter lse-pub kzMetric kzInterface},
Misc = {Acceptance rate: 38/97 = 39\%},
Publisher = {IEEE Computer Society Press},
Selectif = {oui},
Tagnicolasa = {architecture},
Title = {Towards Automatically Improving Package Structure While Respecting Original Design Decisions},
Url = {http://rmod.inria.fr/archives/papers/Abde13a-ImprovingPackageStructure-WCRE13.pdf},
X-Editorial-Board = {yes},
X-International-Audience = {yes},
X-Language = {EN},
X-Proceedings = {yes},
Year = {2013}}
@article{Abde14a,
Aeres = {ACL},
Aeresstatus = {aeres12},
Annote = {internationaljournal},
Author = {Hani Abdeen and St\'ephane Ducasse and Damien Pollet and Ilham Alloui and Jean-R\'emy Falleri},
Hal-Id = {hal-00957695},
Impactfactor = {5-Year ISI impact factor (2010) 4.865},
Journal = {Science of Computer Programming},
Keywords = {lse-pub kzVisualization},
Labo = {dans},
Month = feb,
Selectif = {yes},
Title = {The Package Blueprint: Visually analyzing and quantifying packages dependencies},
Url = {http://rmod.inria.fr/archives/papers/Abde14a-Official-PackageBlueprint-SCP.pdf},
X-Editorial-Board = {yes},
X-International-Audience = {yes},
X-Language = {EN},
Year = {2014}}
@article{Alle13a,
Abstract = {Being able to combine static and dynamic typing within the same language has clear benefits in order to support the evolution of prototypes or scripts into mature robust programs. While being an emblematic dynamic object-oriented language, Smalltalk is lagging behind in this regard. We report on the design, implementation and application of Gradualtalk, a gradually-typed Smalltalk meant to enable incremental typing of existing programs. The main design goal of the type system is to support the features of the Smalltalk language, like metaclasses and blocks, live programming, and to accomodate the programming idioms used in practice. We studied a number of existing projects in order to determine the features to include in the type system. As a result, Gradualtalk is a practical approach to gradual types in Smalltalk, with a novel blend of type system features that accomodate most programming idioms.},
Annote = {internationaljournal},
Author = {Esteban Allende and Oscar Callau and Johan Fabry and Eric Tanter and Marcus Denker},
Doi = {10.1016/j.scico.2013.06.006},
Hal-Id = {hal-00862815},
Inria = {RMOD},
Journal = {Science of Computer Programming},
Keywords = {type systems, gradual typing, smalltalk, lse-pub},
Title = {Gradual Typing for Smalltalk},
Url = {http://rmod.inria.fr/archives/papers/Alle13aGradualTyping.pdf},
Year = {2013}}
@inproceedings{Alli12a,
Annote = {internationalconference},
Author = {Simon Allier and Nicolas Anquetil and Andre Hora St\'ephane Ducasse},
Booktitle = {Proceedings of the 19th International Working Conference on Reverse Engineering (WCRE'12)},
Hal-Id = {hal-00747817v1},
Inria = {RMOD},
Keywords = {lse-pub stefPub kzChecking},
Misc = {Acceptance rate: 43/138 = 31\%},
Tagnicolasa = {analysis},
Title = {A Framework to Compare Alert Ranking Algorithms},
Url = {http://rmod.inria.fr/archives/papers/Alli12a-wcre2012-ComparisonOfAlertsRankingAlgorithms.pdf},
X-Editorial-Board = {yes},
X-International-Audience = {yes},
X-Proceedings = {yes},
Year = {2012}}
@inproceedings{Anqu00a,
Address = {Los Alamitos, CA, USA},
Aeres = {ACT},
Annote = {internationalconference},
Author = {Anquetil, Nicolas},
Booktitle = {WCRE'00: Proceedings of the Seventh Working Conference on Reverse Engineering (WCRE'00)},
Labo = {non},
Note = {Due to an error of the editor, the paper does not appear in the proceedings},
Publisher = {IEEE Computer Society},
Selectif = {oui},
Tagnicolasa = {analysis},
Title = {Concepts + Relations = 'Abstract Constructs'},
Url = {http://rmod.inria.fr/archives/papers/Anqu00a-WCRE-Concepts+Relations.pdf},
X-Editorial-Board = {yes},
X-International-Audience = {yes},
Year = {2000}}
@inproceedings{Anqu00b,
Abstract = {To group related things together (for example to form subsystems); researchers in Reverse Engineering are looking for algorithms that create meaningful groups. One such algorithm, Concept Analysis, received a lot of interest recently. It creates a lattice of concepts, which have some advantages over the more traditional tree of clusters from clustering algorithms.We will argue that the main interest of Concept Analysis lies in the concepts themselves and can be disconnected from the particular structure (the lattice of concepts) in which the concepts are usually arranged. We will compare Concept Analysis to various other algorithms trying to select the most important concepts contained in a set of entities.Our main conclusion is that although it have advantages, the lattice of concepts suffer from a major drawback that other constructs do not have: it returns much more information (concepts) than what it was given in input (a set of entities describing some software system).},
Address = {Washington, DC, USA},
Aeres = {ACT},
Annote = {internationalconference},
Author = {Anquetil, Nicolas},
Booktitle = {Proceedings of the 8th International Workshop on Program Comprehension},
Isbn = {0-7695-0656-9},
Keywords = {Reverse Engineering, Concept Analysis, Clustering},
Labo = {non},
Pages = {231--},
Publisher = {IEEE Computer Society},
Selectif = {oui},
Series = {IWPC '00},
Tagnicolasa = {architecture},
Title = {A Comparison of Graphs of Concept for Reverse Engineering},
Url = {http://rmod.inria.fr/archives/papers/Anqu00b-ICSM-GraphsConcepts.pdf},
X-Editorial-Board = {yes},
X-International-Audience = {yes},
Year = {2000}}
@inproceedings{Anqu01a,
Abstract = {Program comprehension of legacy systems is a highly knowledge-intensive task. One of the goals of reverse engineering is to propose automated help to relate application domain concepts to all their implementation instances. It is generally accepted that to do so would require analyzing such documentation as identifiers or comments. However, before attempting to perform this difficult analysis, it would be useful to know precisely what information the documentation contains and if it is worth trying. In this paper, we present the results of a study of the knowledge contained in two sources of documentation for the Mosaic system. This knowledge is categorized into various domains, and the relative proportions of these domains are discussed. Among other things, the results highlight the high frequency with which application domain concepts are used, which could provide the means to identify them.},
Acceptnum = {27},
Accepttotal = {104},
Address = {Washington, DC, USA},
Aeres = {ACT},
Annote = {internationalconference},
Author = {Anquetil, Nicolas},
Booktitle = {WCRE '01: Proceedings of the Eighth Working Conference on Reverse Engineering (WCRE'01)},
Doi = {10.1109/WCRE.2001.957821},
Isbn = {0-7695-1303-4},
Labo = {non},
Misc = {acceptance rate: 27/104 = 26\%},
Pages = {166--175},
Publisher = {IEEE Computer Society},
Selectif = {oui},
Tagnicolasa = {knowledge},
Title = {Characterizing the Informal Knowledge Contained in Systems},
Url = {http://rmod.inria.fr/archives/papers/Anqu01a-WCRE-InformalKnowledge.pdf},
X-Editorial-Board = {yes},
X-International-Audience = {yes},
Year = {2001}}
@incollection{Anqu02a,
Address = {New York, NY, USA},
Aeres = {OS},
Annote = {articlebook},
Author = {Lethbridge, Timothy C. and Anquetil, Nicolas},
Booktitle = {Advances in software engineering: Comprehension, Evaluation, and Evolution},
Editor = {Hakan Erdogmus, Oryal Tanir},
Inria = {hors},
Isbn = {0-387-95109-1},
Labo = {hors},
Pages = {137--157},
Publisher = {Springer-Verlag New York, Inc.},
Selectif = {non},
Tagnicolasa = {architecture},
Title = {Approaches to clustering for program comprehension and remodularization},
Url = {http://portal.acm.org/citation.cfm?id=505630.505637},
X-Editorial-Board = {no},
X-International-Audience = {yes},
X-Language = {EN},
X-Proceedings = {no},
Year = {2002}}
@article{Anqu03a,
Abstract = {As valuable software systems become older, reverse engineering becomes increasingly important to companies that have to maintain the code. Clustering is a key activity in reverse engineering that is used to discover improved designs of systems or to extract significant concepts from code. Clustering is an old, highly sophisticated, activity which offers many methods to meet different needs. The various methods have been well documented in the past; however, conclusions from general clustering literature may not apply entirely to the reverse engineering domain. In the paper, the authors study three decisions that need to be made when clustering: the choice of (i) abstract descriptions of the entities to be clustered, (ii) metrics to compute coupling between the entities, and (iii) clustering algorithms. For each decision, our objective is to understand which choices are best when performing software remodularisation. The experiments were conducted on three public domain systems (gcc, Linux and Mosaic) and a real world legacy system (2 million LOC). Among other things, the authors confirm the importance of a proper description scheme for the entities being clustered, list a few effective coupling metrics and characterise the quality of different clustering algorithms. They also propose description schemes not directly based on the source code, and advocate better formal evaluation methods for the clustering results.},
Aeres = {ACL},
Annote = {internationaljournal},
Author = {Nicolas Anquetil and Timothy Lethbridge},
Doi = {10.1049/ip-sen:20030581},
Journal = {IEE Proceedings - Software},
Labo = {non},
Number = {3},
Pages = {185-201},
Selectif = {oui},
Tagnicolasa = {architecture},
Title = {Comparative study of clustering algorithms and abstract representations for software remodularization},
Url = {http://rmod.inria.fr/archives/papers/Anqu03a-IEESoft-ComparativeStudy.pdf},
Volume = {150},
X-Editorial-Board = {yes},
X-International-Audience = {yes},
X-Pays = {CA},
Year = {2003}}
@inproceedings{Anqu03b,
Abstract = {Knowledge management is emerging as a promising area to support software engineering activities. The general idea is to use knowledge gained in previous projects to help future ones. We believe this approach is even more relevant when considering software maintenance where maintainers often have to modify a system that they did not develop, that has no documentation, and that nobody knows intimately. Contrasting with this lack of information on the system, maintainers need a lot of knowledge: about the application domain, the organization software maintenance procedures, the system itself, the language used, past development methods, etc. Although one can readily agree with the information needs listed above, there is no clear, exhaustive definition of which knowledge would be useful to perform software maintenance. In this paper we describe our research to identify these needs. This research is part of a long term project that aims at building a knowledge management system for software maintenance.},
Acceptnum = {71},
Accepttotal = {159},
Aeres = {ACT},
Annote = {internationalconference},
Author = {Nicolas Anquetil and K{\'a}thia Mar\c{c}al de Oliveira and M{\'a}rcio Greyck Batista Dias and Marcelo Ramal and Ricardo de Moura Meneses},
Booktitle = {Proceedings of the Fifteenth International Conference on Software Engineering \& Knowledge Engineering (SEKE'2003)},
Labo = {non},
Misc = {acceptance rate: 71/159 = 45\%},
Pages = {61--68},
Selectif = {oui},
Tagnicolasa = {knowledge},
Title = {Knowledge for Software Maintenance},
X-Editorial-Board = {yes},
X-International-Audience = {yes},
X-Pays = {BR},
Year = {2003}}
@incollection{Anqu06a,
Aeres = {OS},
Annote = {articlebook},
Author = {Nicolas Anquetil and K\'athia M. de Oliveira and M\'arcio G. B. Dias},
Booktitle = {Ontologies for Software Engineering and Software Technology},
Chapter = {5},
Doi = {10.1007/3-540-34518-3\_5},
Editor = {Coral Calero, Francisco Ruiz, Mario Piattini},
Inria = {hors},
Isbn = {978-3-540-34517-6},
Labo = {hors},
Pages = {153--173},
Publisher = {Springer-Verlag New York, Inc.},
Selectif = {non},
Tagnicolasa = {knowledge},
Title = {Software Maintenance Ontology},
X-Editorial-Board = {no},
X-International-Audience = {yes},
X-Language = {EN},
X-Proceedings = {no},
Year = {2006}}
@inproceedings{Anqu06c,
Abstract = {Because they routinely work with intangible goods, software organizations need to be aware of the importance of knowledge. Different knowledge management approaches exist in the literature to help them manage this fundamental asset. However, the current approaches suffer from different problems, like dealing only with explicit knowledge (e.g. in the form of best practices), or focusing on "on demand" knowledge access. In this paper we present a richer, pro-active, knowledge management approach suitable for small or medium organizations. We report on an experiment we conducted with our model.},
Aeres = {ACT},
Author = {Alexandre H. Torres and Nicolas Anquetil and K\'athia M. de Oliveira},
Booktitle = {Proceedings of the Eighth International Workshop on Learning Software Organizations},
Inria = {hors},
Labo = {hors},
Pages = {19--27},
Selectif = {oui},
Tagnicolasa = {knowledge},
Title = {Pro-active dissemination of knowledge with learning histories},
Url = {http://rmod.inria.fr/archives/papers/Anqu06c-LSO-ProactiveKnowldge.pdf},
X-Editorial-Board = {yes},
X-International-Audience = {yes},
X-Language = {EN},
X-Pays = {BR},
X-Proceedings = {yes},
Year = {2006}}
@article{Anqu07a,
Abstract = {Creating and maintaining software systems is a knowledge intensive task. One needs to have a good understanding of the application domain, the problem to solve and all its requirements, the software process used, technical details of the programming language(s), the system's architecture and how the different parts fit together, how the system interacts with its environment, etc. All this knowledge is difficult and costly to gather. It is also difficult to store and usually lives only in the mind of the software engineers who worked on a particular project. If this is a problem for development of new software, it is even more for maintenance, when one must rediscover lost information of an abstract nature from legacy source code among a swarm of unrelated details. In this paper, we submit that this lack of knowledge is one of the prominent problems in software maintenance. To try to solve this problem, we adapted a knowledge extraction technique to the knowledge needs specific to software maintenance. We explain how we explicit the knowledge discovered on a legacy software during maintenance so that it may be recorded for future use. Some applications on industry maintenance projects are reported.},
Address = {Newton, MA, USA},
Aeres = {ACL},
Annote = {internationaljournal},
Author = {Anquetil, Nicolas and de Oliveira, K\'{a}thia M. and de Sousa, Kleiber D. and Batista Dias, M\'{a}rcio G.},
Doi = {10.1016/j.infsof.2006.07.007},
Impactfactor = {Impact Factor (2008) 1.200},
Issn = {0950-5849},
Journal = {Information Software Technology},
Labo = {non},
Number = {5},
Pages = {515--529},
Publisher = {Butterworth-Heinemann},
Selectif = {oui},
Tagnicolasa = {knowledge},
Title = {Software maintenance seen as a knowledge management issue},
Url = {http://rmod.inria.fr/archives/papers/Anqu07a-IST-MaintenanceKnowledge.pdf},
Volume = {49},
X-Editorial-Board = {yes},
X-International-Audience = {yes},
X-Pays = {BR},
Year = {2007}}
@inproceedings{Anqu08a,
Abstract = {Traceability is an important challenge for software organizations. This is true for traditional software development and even more so in new approaches that introduce more variety of artefacts such as Model Driven development or Software Product Lines. In this paper we look at some aspect of the interaction of Traceability, Model Driven development and Software Product Line.},
Address = {Norway},
Aeres = {ACL},
Annote = {internationalworkshop},
Author = {N. {Anquetil} and B. {Grammel} and I. {Galvao Lourenco da Silva} and J.A.R. {Noppen} and S. {Shakil Khan} and H. {Arboleda} and A. {Rashid} and A. {Garcia}},
Booktitle = {ECMDA Traceability Workshop Proceedings},
Labo = {non},
Month = {jun},
Pages = {77--86},
Publisher = {SINTEF ICT},
Selectif = {non},
Tagnicolasa = {traceability SPL},
Title = {Traceability for Model Driven, Software Product Line Engineering},
Url = {http://doc.utwente.nl/64994/},
X-Editorial-Board = {yes},
X-International-Audience = {yes},
Year = {2008}}
@article{Anqu08b,
Annote = {nationaljournal},
Author = {Anquetil, Nicolas and Noppen, Joost and Galv{\~a}o, Ism{\^e}nia},
Journal = {L'Objet},
Number = {3},
Pages = {47--57},
Publisher = {Lavoisier},
Tagnicolasa = {traceability SPL},
Title = {La tra{\c{c}}abilit{\'e} dans les lignes de produits logiciels},
Volume = {14},
Year = {2008}}
@article{Anqu08c,
Annote = {nationaljournal},
Author = {Anquetil, Nicolas and Arboleda, Hugo and DE ALEXANDRIA FERNANDES, Fabricio and Nunez, Angel and Royer, Jean-Claude},
Journal = {L'Objet},
Number = {3},
Pages = {15--31},
Publisher = {Lavoisier},
Tagnicolasa = {traceability SPL},
Title = {Lignes de produits logiciels et usines logicielles},
Volume = {14},
Year = {2008}}
@inproceedings{Anqu09a,
Annote = {invited},
Author = {Anquetil, Nicolas and Lethbridge, Timothy C},
Booktitle = {Reverse Engineering, 2009. WCRE'09. 16th Working Conference on},
Organization = {IEEE},
Pages = {7--7},
Tagnicolasa = {architecture},
Title = {Ten years later, experiments with clustering as a software remodularization method},
Year = {2009}}
@inproceedings{Anqu09b,
Annote = {internationalconference},
Author = {Anquetil, Nicolas and Royer, J-C and Andre, Pascal and Ardourel, Gilles and Hnetynka, Petr and Poch, Tomas and Petrascu, Dragos and Petrascu, Vladiela},
Booktitle = {Reverse Engineering, 2009. WCRE'09. 16th Working Conference on},
Hal-Id = {hal-00457219},
Organization = {IEEE},
Pages = {317--318},
Tagnicolasa = {architecture},
Title = {Javacompext: Extracting architectural elements from java source code},
Year = {2009}}
@article{Anqu10a,
Abstract = {Software product line (SPL) engineering is a recent approach to software development where a set of software products are derived for a well defined target application domain, from a common set of core assets using analogous means of production (for instance, through Model Driven Engineering). Therefore, such family of products are built from reuse, instead of developed individually from scratch. SPL promise to lower the costs of development, increase the quality of software, give clients more flexibility and reduce time to market. These benefits come with a set of new problems and turn some older problems possibly more complex. One of these problems is traceability management. In the European AMPLE project we are creating a common traceability framework across the various activities of the SPL development. We identified four orthogonal traceability dimensions in SPL development, one of which is an extension of what is often considered as "traceability of variability". This constitutes one of the two contributions of this paper. The second contribution is the specification of a metamodel for a repository of traceability links in the context of SPL and the implementation of a respective traceability framework. This framework enables fundamental traceability management operations, such as trace import and export, modification, query and visualization. The power of our framework is highlighted with an example scenario.},
Address = {Secaucus, NJ, USA},
Aeres = {ACL},
Aeresstatus = {aeres12},
Annote = {internationaljournal},
Author = {Anquetil, Nicolas and Kulesza, Uir\'{a} and Mitschke, Ralf and Moreira, Ana and Royer, Jean-Claude and Rummler, Andreas and Sousa, Andr\'{e}},
Doi = {10.1007/s10270-009-0120-9},
Hal-Id = {hal-00668175},
Impactfactor = {Impact Factor (2011) 1.061},
Issn = {1619-1366},
Journal = {Journal of Software and Systems Modeling (SOSYM)},
Labo = {non},
Number = {4},
Pages = {427--451},
Publisher = {Springer-Verlag New York, Inc.},
Selectif = {oui},
Tagnicolasa = {traceability SPL},
Title = {A model-driven traceability framework for software product lines},
Url = {http://rmod.inria.fr/archives/papers/Anqu10a-SOSYM-TraceabilitySPL.pdf},
Volume = {9},
X-Editorial-Board = {yes},
X-International-Audience = {yes},
X-Pays = {DE,PT,BR},
Year = {2010}}
@inproceedings{Anqu11a,
Abstract = {Software re-modularization is an old preoccupation of reverse engineering research. The advantages of a well structured or modularized system are well known. Yet after so much time and efforts, the field seems unable to come up with solutions that make a clear difference in practice. Recently, some researchers started to question whether some basic assumptions of the field were not overrated. The main one consists in evaluating the high-cohesion/low-coupling dogma with metrics of unknown relevance. In this paper, we study a real structuring case (on the Eclipse platform) to try to better understand if (some) existing metrics would have helped the software engineers in the task. Results show that the cohesion and coupling metrics used in the experiment did not behave as expected and would probably not have helped the maintainers reach there goal.
We also measured another possible restructuring which is to decrease the number of cyclic dependencies between modules.
Again, the results did not meet expectations.},
Acceptnum = {29},
Accepttotal = {101},
Address = {Oldenburg, Germany},
Aeres = {ACT},
Aeresstatus = {aeres12},
Annote = {internationalconference},
Author = {Nicolas Anquetil and Jannik Laval},
Booktitle = {Proceedings of the 15th European Conference on Software Maintenance and Reengineering (CSMR'11)},
Hal-Id = {hal-00745773},
Inria = {RMOD},
Inriareport = {2011},
Keywords = {moose lse-pub cutter raweb2011 pharo},
Labo = {dans},
Misc = {acceptance rate: 29/101 = 29\%},
Pages = {279--286},
Selectif = {oui},
Tagnicolasa = {architecture},
Title = {Legacy Software Restructuring: Analyzing a Concrete Case},
Url = {http://rmod.inria.fr/archives/papers/Anqu11a-CSMR2011-Coupling.pdf},
X-Country = {FR},
X-Editorial-Board = {yes},
X-International-Audience = {yes},
X-Language = {EN},
X-Proceedings = {yes},
Year = {2011}}
@incollection{Anqu11b,
Annote = {articlebook},
Author = {Nicolas Anquetil and Uir\'a Kulesza and Ricardo Mateus and Ralf Mitschke and Ana Moreira and Jean-Claude Royer and Andreas Rummler},
Booktitle = {Aspect-Oriented, Model-Driven Software Product Lines -- The AMPLE way},
Chapter = {8},
Doi = {10.1017/CBO9781139003629.008},
Editor = {Awais Rashid and Jean-Claude Royer and Andreas Rummler},
Inria = {RMOD},
Inriareport = {2011},
Isbn = {978-0-521-76722-4},
Keywords = {ample lse-pub raweb2011},
Labo = {dans},
Pages = {222--262},
Publisher = {Cambridge University Press},
Selectif = {non},
Tagnicolasa = {SPL traceability},
Title = {Managing information flow in the {SPL} development processes},
X-Country = {DE PT BR},
X-Editorial-Board = {no},
X-International-Audience = {yes},
X-Language = {EN},
X-Pays = {FR},
X-Proceedings = {non},
Year = {2011}}
@incollection{Anqu11c,
Annote = {articlebook},
Author = {Phil Greenwood and Vander Alves and John Hutchinson and Christa Schwanninger and Nicolas Anquetil},
Booktitle = {Aspect-Oriented, Model-Driven Software Product Lines -- The AMPLE way},
Chapter = {14},
Doi = {10.1017/CBO9781139003629.014},
Editor = {Awais Rashid and Jean-Claude Royer and Andreas Rummler},
Inria = {RMOD},
Inriareport = {2011},
Isbn = {978-0-521-76722-4},
Keywords = {ample lse-pub raweb2011},
Labo = {dans},
Pages = {411--443},
Publisher = {Cambridge University Press},
Selectif = {non},
Tagnicolasa = {SPL},
Title = {Empirical research in software product line engineering},
X-Country = {UK DE},
X-Editorial-Board = {no},
X-International-Audience = {yes},
X-Language = {EN},
X-Pays = {GB},
X-Proceedings = {non},
Year = {2011}}
@techreport{Anqu12x,
Abstract = {This is the yearly report of the RMOD team (http://rmod.inria.fr/). A good way to understand what we are doing.},
Aeres = {AP},
Annote = {technicalreport},
Author = {Nicolas Anquetil and Damien Cassou and Marcus Denker and St\'ephane Ducasse and Damien Pollet},
Hal-Id = {hal-00777904},
Inria = {RMOD},
Inriareport = {2012},
Institution = {INRIA},
Keywords = {rmod raweb lse-pub kzTeamReport},
Title = {Project-Team RMoD (Analyses and Language Constructs for Object-Oriented Application Evolution) 2012 Activity Report},
Url = {http://rmod.inria.fr/archives/reports/Anqu12x-RAWEB-RMOD-2012-TeamActivityReport.pdf},
X-Language = {EN},
Year = {2012}}
@article{Anqu14a,
Aeres = {AP},
Annote = {vulgarisation},
Author = {Nicolas Anquetil and St\'ephane Ducasse and Muhammad U. Bhatti},
Inria = {RMOD},
Journal = {ERCIM News},
Keywords = {moose lse-pub raweb2014 kzIDE kzMoose},
Labo = {dans},
Month = oct,
Pages = {22--23},
Selectif = {non},
Tagnicolasa = {analysis},
Title = {Dedicated Software Analysis Tools},
Url = {http://ercim-news.ercim.eu/images/stories/EN99/EN99-web.pdf},
Volume = {99},
X-Editorial-Board = {yes},
X-International-Audience = {yes},
X-Language = {EN},
X-Proceedings = {no},
Year = {2014}}
@techreport{Anqu14b,
author = {Nicolas Anquetil},
title = {HDR - Supporting Software Evolution in the Organizations},
institution = {{Universit{\'e} des Sciences et Technologie de Lille - Lille I}},
Hal-Id = {tel-01086785},
year = {2014},
month = {may},
annote = {habilitation}
}
@inproceedings{Anqu97a,
Abstract = {Decomposing complex software systems into conceptually independent subsystems represents a significant software engineering activity that receives considerable research attention. Most of the research in this domain deals with the source code; trying to cluster together files which are conceptually related. In this paper we propose using a more informal source of information: file names. We present an experiment which shows that file naming convention is the best file clustering criteria for the software system we are studying.Based on the experiment results, we also sketch a method to build a conceptual browser on a software system.},
Aeres = {ACT},
Annote = {internationalconference},
Author = {Anquetil, Nicolas and Lethbridge, Timothy C.},
Booktitle = {Proceedings of the 1997 conference of the Centre for Advanced Studies on Collaborative research},
Keywords = {clustering},
Labo = {non},
Location = {Toronto, Ontario, Canada},
Month = nov,
Pages = {184--195},
Publisher = {IBM Press},
Selectif = {oui},
Series = {CASCON'97},
Tagnicolasa = {architecture},
Title = {File clustering using naming conventions for legacy systems},
Url = {http://portal.acm.org/citation.cfm?id=782010.782012},
X-Editorial-Board = {yes},
X-International-Audience = {yes},
X-Pays = {CA},
Year = {1997}}
@inproceedings{Anqu98a,
Abstract = {Reverse engineering is a difficult task even for humans. When trying to provide tools to assist in this task, one should try to take advantage of all possible sources of information.Informal sources, like naming conventions, are more abstract than the code, thus helping to bridge the gap between code and design. On the other hand, there is no certainty that they actually represent the current state of the system.Some researchers have used these informal sources of information, relying on an assumption that if types (or variables, or functions) have the same name then they represent the same thing.However none of these researchers have actually tried to establish to what extent this assumption is valid. This paper provides a framework to study this issue. We will define what it means to have a "reliable naming convention", how this can be tested and under what conditions. We present examples from the particular legacy software system we are studying as well as from the literature.},
Aeres = {ACT},
Annote = {internationalconference},
Author = {Nicolas Anquetil and Timothy C. Lethbridge},
Booktitle = {Proceedings of the 1998 conference of the Centre for Advanced Studies on Collaborative research},
Labo = {non},
Location = {Toronto, Ontario, Canada},
Pages = {213--222},
Publisher = {IBM Press},
Selectif = {oui},
Series = {CASCON'98},
Tagnicolasa = {knowledge},
Title = {Assessing the relevance of identifier names in a legacy software system},
Url = {http://portal.acm.org/citation.cfm?id=783160.783164},
X-Editorial-Board = {yes},
X-International-Audience = {yes},
X-Pays = {CA},
Year = {1998}}
@inproceedings{Anqu98b,
Abstract = {Decomposing complex software systems into conceptually independent subsystems is a significant software engineering activity which received considerable research attention. Most of the research in this domain considers the body of the source code; trying to cluster together files which are conceptually related. This paper discusses techniques for extracting concepts (we call them ``abbreviations'') from a more informal source of information: file names. The task is difficult because nothing indicates where to split the file names into substrings. In general, finding abbreviations would require domain knowledge to identify the concepts that are referred to in a name and intuition to recognize such concepts in abbreviated forms. We show by experiment that the techniques we propose allow about 90\% of the abbreviations to be found automatically. },
Address = {Washington, DC, USA},
Aeres = {ACT},
Annote = {internationalconference},
Author = {Nicolas Anquetil and Timothy C. Lethbridge},
Booktitle = {Proceedings of the 20th international conference on Software engineering},
Isbn = {0-8186-8368-6},
Labo = {non},
Location = {Kyoto, Japan},
Pages = {84--93},
Publisher = {IEEE Computer Society},
Selectif = {oui},
Series = {ICSE'98},
Tagnicolasa = {architecture},
Title = {Extracting Concepts from File Names: a New File Clustering Criterion},
Url = {http://portal.acm.org/citation.cfm?id=302163.302172},
X-Editorial-Board = {yes},
X-International-Audience = {yes},
X-Pays = {CA},
Year = {1998}}
@article{Anqu98c,
Abstract = {Although seemingly simple and intuitive, the object model still contains ambiguous notions. For example, inheritance has been proved to convey two different meanings depending on whether it is behavior or implementation that is inherited. Another conceptually simple notion, multiple inheritance, has not yet been clearly formalized. In this paper, we start by looking at relationships between sibling classes (two immediate subclasses of a common parent). Siblings can be combined through multiple inheritance, or on the contrary, they can be mutually exclusive. We call the relation between incompatible siblings "opposition", and show how it could help in formalizing object models. We then consider widening the explicit use of negation in object models. We argue that negative assertions could be used to validate the creation of new classes to ensure they are compatible with the intended uses of existing classes. Negation leads us to consider the implicit assumption behind object models, we propose to shift from the closed world assumption to the open world assumption.},
Address = {New York, NY, USA},
Aeres = {ASCL},
Annote = {internationaljournal},
Author = {Anquetil, Nicolas and Vaucher, Jean},
Doi = {10.1145/609742.609749},
Issn = {0362-1340},
Issue = {1},
Journal = {SIGPLAN Notices},
Keywords = {multiple inheritance, negation, object model, reflection, theoretical foundations},
Labo = {non},
Month = {jan},
Pages = {48--55},
Publisher = {ACM},
Selectif = {non},
Title = {Expressing opposition in the object model, first step towards negation},
Volume = {33},
X-Editorial-Board = {no},
X-International-Audience = {yes},
X-Pays = {CA},
Year = {1998}}
@inproceedings{Anqu99a,
Abstract = {As valuable software systems get old, reverse engineering becomes more and more important to the companies that have to maintain the code. Clustering is a key activity in reverse engineering to discover a better design of the systems or to extract significant concepts from the code. Clustering is an old activity, highly sophisticated, offering many methods to answer different needs. Although these methods have been well documented in the past, these discussions may not apply entirely to the reverse engineering domain. We study some clustering algorithms and other parameters to establish whether and why they could be used for software remodularization. We study three aspects of the clustering activity: abstract descriptions chosen for the entities to cluster; metrics computing coupling between the entities; and clustering algorithms. The experiments were conducted on three public domain systems (gcc, Linux and Mosaic) and a real world legacy system (2 million LOC). Among other things, we confirm the importance of a proper description scheme of the entities being clustered, we list a few good coupling metrics to use and characterize the quality of different clustering algorithms. We also propose novel description schemes not directly based on the source code and we advocate better formal evaluation methods for the clustering results},
Aeres = {ACT},
Annote = {internationalconference},
Author = {Nicolas Anquetil and Timothy Lethbridge},
Booktitle = {Proceedings of Working Conference on Reverse Engineering (WCRE'99)},
Doi = {10.1109/WCRE.1999.806964},
Isbn = {0-7695-0303-9},
Keywords = {clustering},
Labo = {non},
Pages = {235--255},
Selectif = {oui},
Tagnicolasa = {architecture},
Title = {Experiments with {Clustering} as a {Software} {Remodularization} {Method}},
X-Editorial-Board = {yes},
X-International-Audience = {yes},
X-Pays = {CA},
Year = {1999}}
@article{Anqu99b,
Abstract = {We discuss how to extract a useful set of subsystems from a set of existing source-code file names. This problem is challenging because many legacy systems use thousands of files names, including some that are very short and cryptic. At the same time the problem is important because software maintainers often find it difficult to understand such systems. We propose a general algorithm to cluster files based on their names, and a set of alternative methods for implementing the algorithm. One of the key tasks is picking candidate words to try to identify in file names. We do this by (a) iteratively decomposing file names, (b) finding common substrings, and (c) choosing words in routine names, in an English dictionary or in source-code comments. In addition, we investigate generating abbreviations from the candidate words in order to find matches in file names, as well as how to split file names into components given no word markers. To compare and evaluate our five approaches, we present two experiments. The first compares the "concepts" found in each file name by each method with the results of manually decomposing file names. The second experiment compares automatically generated subsystems with subsystem examples proposed by experts. We conclude that two methods are most effective: extracting concepts using common substrings and extracting those concepts that relate to the names of routines in the files.},
Aeres = {ACT},
Annote = {internationaljournal},
Author = {Nicolas Anquetil and Timothy C. Lethbridge},
Doi = {10.1002/(SICI)1096-908X(199905/06)11:3<201::AID-SMR192>3.0.CO;2-1},
Journal = {Journal of Software Maintenance: Research and Practice},
Labo = {non},
Misc = {5 Year ISI impact factor (2010) 1.523},
Pages = {201--21},
Selectif = {oui},
Tagnicolasa = {architecture},
Title = {Recovering Software Architecture from the Names of Source Files},
Volume = {11},
X-Editorial-Board = {yes},
X-International-Audience = {yes},
X-Pays = {CA},
Year = {1999}}
@article{Aran14a,
Author = {Aranega, Vincent and Mottu, Jean-Marie and Etien, Anne and Degueule, Thomas and Baudry, Benoit and Dekeyser, Jean-Luc},
Doi = {10.1002/stvr.1532},
Issn = {1099-1689},
Hal-Id = {hal-00988164},
annote = {internationaljournal},
Journal = {Software Testing, Verification and Reliability},
Keywords = {MDE, model transformation, mutation analysis, traceability, mutation operator},
Title = {Towards an automation of the mutation analysis dedicated to model transformation},
Url = {http://dx.doi.org/10.1002/stvr.1532},
Year = {2014}}
@booklet{Ardi95b,
Annote = {lectures},
Author = {Laurent Arditi and St\'ephane Ducasse},
Keywords = {stefPub kzTeaching},
Note = {support de cours de Deug SM-PE et Mass, 120 pages},
Title = {Une premi\`ere approche fonctionnelle et r\'ecursive de la programmation},
Year = {1995}}
@book{Ardi96a,
Address = {Paris},
Annote = {book},
Author = {Laurent Arditi and St\'ephane Ducasse},
Isbn = {2-212-08915-5},
Keywords = {stefPub scglib kzBook kzTeaching},
Month = apr,
Note = {238 pages, Pr\'eface de G\'erard Huet},
Publisher = {Eyrolles},
Title = {La programmation: une approche fonctionelle et r\'ecursive avec Scheme},
Year = {1996}}
@inproceedings{Ardi97a,
Abstract = {Dans cet article, nous pr\'esentons une exp\'erience d'enseignement de l'informatique en milieu aride: volume horaire faible, faible coefficient, \'etudiants peu motiv\'es. Dans ce contexte d\'efavorable, nous avons choisi de privil\`egier un concept, la r\'ecursivit\'e dans le cadre de la programmation fonctionnelle, plut\^ot qu'un langage. Ce choix nous a conduit \`a consid\`erer le langage Scheme pour sa simplicit\'e. Nous d\'ecrivons ici notre cours, les probl\`emes que nous avons rencontr\'es et les solutions que nous avons choisies.},
Annote = {nationalconference},
Author = {Laurent Arditi and St\'ephane Ducasse},
Booktitle = {Actes des Journ\'ees Fran\c{c}aises des Langages Applicatifs (JFLA '97)},
Hal-Id = {inria-00533051},
Keywords = {stefPub kzTeaching},
Pages = {209--228},
Title = {Scheme: un langage applicatif pour l'enseignement de l'informatique en milieu aride},
Url = {http://scg.unibe.ch/archive/papers/Ardi97aSchemeTeaching.pdf},
Year = {1997}}
@inproceedings{Arev03c,
Abstract = {Understanding the internal workings of classes is a key prerequisite to maintaining an object-oriented software system. Unfortunately, classical editing and browsing tools offer mainly linear and textual views of classes and their implementation. These views fail to expose the semantic relationships between the internal parts of a class. We propose XRay views -- a technique based on Concept Analysis -- which reveal the internal relationships between groups of methods and attributes of a class. XRay views are com- posed out of elementary collaborations between attributes and methods, and help the engineer to build a mental model of how a class works internally. In this paper we present XRay views, and illustrate the approach by applying it on the Smalltalk class UIBuilder.},
Annote = {internationalconference},
Author = {Gabriela Ar{\'e}valo and St\'ephane Ducasse and Oscar Nierstrasz},
Booktitle = {Proceedings of 18th Conference on Automated Software Engineering (ASE'03)},
Cvs = {ConAnASE03XRayViews},
Doi = {10.1109/ASE.2003.1240318},
Hal-Id = {inria-00533054},
Keywords = {recast03 scg-pub stefPub moose arevalo jb04 kzRemodularisation},
Month = oct,
Note = {Short paper},
Pages = {267--270},
Publisher = {IEEE Computer Society},
Secondurl = {http://scg.unibe.ch/archive/papers/Arev03cASE03XRayViews.pdf},
Title = {{X-Ray} Views: Understanding the Internals of Classes},
Url = {http://rmod.inria.fr/archives/papers/Arev03c-ASE03-XRayViews.pdf},
Year = {2003}}
@inproceedings{Arev03d,
Abstract = {Understanding the internal workings of classes is a key prerequisite to maintaining an object-oriented software system. Unfortunately, classical editing and browsing tools offer mainly linear and textual views of classes and their implementation. These views fail to expose the semantic relationships between the internal parts of a class. We propose XRay views --a technique based on Concept Analysis-- which reveal the internal relationships between groups of methods and attributes of a class. XRay views are composed out of elementary collaborations between attributes and methods and help the engineer to build a mental model of how a class works internally. In this paper we present XRay views, and illustrate the approach by applying it to three Smalltalk classes: OrderedCollection, Scanner, and UIBuilder.},
Annote = {internationalworkshop},
Author = {Gabriela Ar{\'e}valo and St\'ephane Ducasse and Oscar Nierstrasz},
Booktitle = {Proceedings of 2nd International Workshop on MASPEGHI 2003 (ASE'03)},
Cvs = {ConAnMASPEGHI03XRayViews},
Keywords = {snf04 scg-pub skip-doi stefPub arevalo jb04 moose kzRemodularisation},
Month = oct,
Pages = {9--18},
Publisher = {CRIM --- University of Montreal (Canada)},
Title = {Understanding Classes using {X-Ray} Views},
Url = {http://scg.unibe.ch/archive/papers/Arev03dMASPEGHI03XRayViews.pdf},
Year = {2003}}
@inproceedings{Arev05b,
Abstract = {Object-oriented applications are difficult to extend and maintain, due to the presence of implicit dependencies in the inheritance hierarchy. Although these dependencies of- ten correspond to well-known schemas, such as hook and template methods, new unanticipated dependency schemas occur in practice, and can consequently be hard to recognize and detect. To tackle this problem, we have applied Concept Analysis to automatically detect recurring dependency schemas in class hierarchies used in object-oriented applications. In this paper we describe our mapping of OO dependencies to the formal framework of Concept Analysis, we apply our approach to a non-trivial case study, and we report on the kinds of dependencies that are uncovered with this technique. As a result, we show how the discovered dependency schemas correspond not only to good design practices, but also to "bad smells" in design.},
Acceptnum = {33},
Accepttotal = {81},
Aeres = {ACT},
Aeresstatus = {aeres08},
Annote = {internationalconference},
Author = {Gabriela Ar{\'e}valo and St\'ephane Ducasse and Oscar Nierstrasz},
Booktitle = {Proceedings of 9th European Conference on Software Maintenance and Reengineering (CSMR'05)},
Cvs = {ConAnCSMR05ClassHierarchies},
Doi = {10.1109/CSMR.2005.24},
Hal-Id = {inria-00533057},
Impactfactor = {hors},
Keywords = {scg-pub arevalo jb05 recast05 stefPub moose kzRemodularisation},
Location = {Manchester, United Kingdom},
Misc = {acceptance rate: 33/81 = 41\%},
Month = mar,
Pages = {62--71},
Publisher = {IEEE Computer Society},
Rate = {41\%},
Secondurl = {http://scg.unibe.ch/archive/papers/Arev05bCSMR05ClassHierarchies.pdf},
Selectif = {non},
Title = {Discovering Unanticipated Dependency Schemas in Class Hierarchies},
Url = {http://rmod.inria.fr/archives/papers/Arev05b-CSMR05-ClassHierarchies.pdf},
Year = {2005}}
@inproceedings{Arev05c,
Abstract = {A key difficulty in the maintenance and evolution of complex software systems is to recognize and understand the implicit dependencies that define contracts that must be respected by changes to the software. Formal Concept Analysis is a well-established technique for identifying groups of elements with common sets of properties. We have successfully applied FCA to complex software systems in order to automatically discover a variety of different kinds of implicit, recurring sets of dependencies amongst design artifacts. In this paper we describe our approach, outline three case studies, and draw various lessons from our experiences. In particular, we discuss how our approach is applied iteratively in order to draw the maximum benefit offered by FCA.},
Aeres = {ACT},
Aeresstatus = {aeres08},
Annote = {internationalconference},
Author = {Gabriela Ar{\'e}valo and St\'ephane Ducasse and Oscar Nierstrasz},
Booktitle = {Proceedings of 3rd International Conference on Formal Concept Analysis (ICFCA'05)},
Cvs = {ConAnICFCA05LessonsLearned},
Doi = {10.1007/b105806},
Hal-Id = {inria-00533445},
Impactfactor = {hors},
Keywords = {scg-pub jb05 recast05 arevalo stefPub kzRemodularisation},
Location = {Lens, France},
Month = feb,
Pages = {95--112},
Publisher = {Springer Verlag},
Secondurl = {http://scg.unibe.ch/archive/papers/Arev05cICFCA05LessonsLearned.pdf},
Selectif = {non},
Series = {LNAI (Lecture Notes in Artificial Intelligence)},
Title = {Lessons Learned in Applying Formal Concept Analysis},
Url = {http://rmod.inria.fr/archives/papers/Arev05c-ICFCA05-LessonsLearned.pdf},
Volume = {3403},
Year = {2005}}
@inproceedings{Arev06a,
Abstract = {Designing class models is usually an iterative process to detect how to express, for a specific domain, the adequate concepts and their relationships. During those iterations, the abstraction of concepts and relationships is an important step. In this paper, we propose to automate this abstraction process using techniques based on Formal Concept Analysis in a model-driven context. Using UML 2.0 class diagrams as modeling language for class models, in this proposal we show how our model-driven approach enables parameterization, tracing and generalization to any metamodel to express class models.},
Author = {Gabriela Ar\'evalo and Jean-R\'emy Falleri and Marianne Huchard and Cl\'ementine Nebut},
Booktitle = {MODELS'06},
Editor = {Oscar Nierstrasz; Jhon Whittle; David Harel; Gianna Reggio},
Isbn = {978-3-540-45772-5},
Keywords = {UML, model transformation, refactoring, formal concept analysis, relational concept analysis},
Month = oct,
Pages = {513-527},
Publisher = {Springer Verlag},
Series = {{LNCS} ({L}ecture {N}otes in {C}omputer {S}cience)},
Title = {Building Abstractions in Class Models: Formal Concept Analysis in a Model-Driven Approach},
Volume = {4199},
Year = {2006}}
@article{Arev10a,
Aeres = {ACL},
Aeresstatus = {aeres12},
Annote = {internationaljournal},
Author = {Gabriela Ar\'evalo and St\'ephane Ducasse and Silvia Gordillo and Oscar Nierstrasz},
Doi = {10.1016/j.infsof.2010.05.010},
Hal-Id = {inria-00531498},
Impactfactor = {ISI impact factor (2010) 1.821},
Inria = {RMOD},
Inriareport = {2010},
Issn = {0950-5849},
Journal = {Journal of Information and Software Technology},
Keywords = {moose lse-pub cook report2010 kzRemodularisation},
Month = dec,
Pages = {1167-1187},
Secondurl = {http://rmod.inria.fr/archives/papers/Arev10a-IST-Official-generatingCatalog.pdf},
Title = {Generating a catalog of unanticipated schemas in class hierarchies using Formal Concept Analysis},
Url = {http://rmod.inria.fr/archives/papers/Arev10a-IST-generatingCatalog.pdf},
Volume = {52},
X-Editorial-Board = {yes},
X-International-Audience = {yes},
X-Pays = {AR,CH},
X-Proceedings = {yes},
Year = {2010}}
@inproceedings{Arlo16a,
TITLE = {{Pillar: A Versatile and Extensible Lightweight Markup Language}},
AUTHOR = {Thibault Arloing and Yann Dubois and Damien Cassou and Ducasse, St{\'e}phane},
URL = {http://rmod.inria.fr/archives/papers/Arlo16a-IWST16-Pillar.pdf},
BOOKTITLE = {International Workshop on Smalltalk Technologies {IWST'16}},
ADDRESS = {Prague, Czech Republic},
HAL-ID = {hal-01353882},
YEAR = {2016},
MONTH = aug,
annote = {internationalworkshop}
}
@inproceedings{Arna10a,
Abstract = {Supporting read-only and side effect free execution has been the focus of a large body of work in the area of statically typed programming languages. Read-onlyness in dynamically typed languages is difficult to achieve because of the absence of a type checking phase and the support of an open-world assumption in which code can be constantly added and modified. To address this issue, we propose Dynamic Read-Only references (DRO) that provide a view on an object where this object and its object graph are protected from modification. The read- only view dynamically propagates to aggregated objects, without changing the object graph itself; it acts as a read-only view of complex data structures, without making them read-only globally. We implement dynamic read-only references by using smart object proxies that lazily propagate the read-only view, following the object graph and driven by control flow and applied them to realize side-effect free assertions.},
Address = {Malaga, Spain},
Annote = {internationalconference},
Author = {Jean-Baptiste Arnaud and Marcus Denker and St\'ephane Ducasse and Damien Pollet and Alexandre Bergel and Mathieu Suen},
Booktitle = {Proceedings of the 48th International Conference Objects, Models, Components, Patterns (TOOLS'10)},
Doi = {10.1007/978-3-642-13953-6\_7},
Hal = {http://hal.archives-ouvertes.fr/inria-00498377/fr/},
Hal-Id = {inria-00498377 / 7a#ndah},
Inria = {RMOD},
Inriareport = {2010},
Keywords = {tools10 lse-pub marcusdenker pharo kzReferences},
Misc = {25\%},
Month = jun,
Rate = {25\%},
Title = {Read-Only Execution for Dynamic Languages},
Url = {http://rmod.inria.fr/archives/papers/Arna10a-Tools2010-ReadOnlyExecutionForDynamicLanguages.pdf},
X-Country = {CL},
X-Editorial-Board = {yes},
X-International-Audience = {yes},
X-Language = {EN},
X-Proceedings = {yes},
Year = {2010}}
@phdthesis{Arna13a,
Abstract = {Dynamically-typed object-oriented programming languages do not provide type information until runtime. Two of their main advantages are that they allow fast prototyping and integrating changes at runtime. The ability of dynamically-typed languages to support program changes at runtime and the lack of type information doom the classic security approaches to failure. Controlling references to single objects and to graphs of objects is essential to build secure systems. Existing approaches are commonly based on static type system and cannot be applied to dynamically-typed languages.This thesis argue that: In the context of dynamically-typed languages, reifying references, controlling behavior, and isolating state via such references, is a practical way to control references. This thesis makes five contributions: - We propose dynamic read-only objects (DRO) as one kind of adaptation of behavioral change at reference-level. - We generalize the DRO model to enable more generic behavioral changes. We extend the Pharo programming environment and language with Handles, that are first-class references with the ability to change the behavior of referenced objects. - We define Metahandle to offer flexibility and adaptability to controlled references. - We propose SHandle, an extension of the Handle model to isolate side effects at the level of references. - And finally, we formalize the Handles and SHandle models to represent and explain their semantics. As validation of our thesis we have implemented three approaches relevant to securing system using our model. In addition, as proof of concept we extended the Pharo virtual machine to support Handles, Metahandles and SHandles.},
Author = {Jean-Baptiste Arnaud},
Hal-Id = {tel-00808419},
Inriareport = {2013},
Institution = {INRIA},
Keywords = {security, dynamically-typed languages, reflection, language design, first class reference, object-oriented programming},
School = {Universit\'e de Lille},
Title = {Towards First Class References as a Security Infrastructure in Dynamically-Typed Languages},
Type_Rapport = {PhD},
Url = {http://rmod.inria.fr/archives/phd/PhD-2013-Arnaud.pdf},
Year = {2013}}
@article{Arna14a,