![Page 1: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/1.jpg)
!
Michele Lanza REVEAL @ Faculty of Informatics
University of Lugano, Switzerland
Engineering Dependable
Software Systems
![Page 2: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/2.jpg)
!
Michele Lanza REVEAL @ Faculty of Informatics
University of Lugano, Switzerland
Engineering Software Systems
![Page 3: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/3.jpg)
!
Software Engineering is dead
![Page 4: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/4.jpg)
![Page 5: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/5.jpg)
![Page 6: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/6.jpg)
![Page 7: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/7.jpg)
![Page 8: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/8.jpg)
![Page 9: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/9.jpg)
![Page 10: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/10.jpg)
![Page 11: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/11.jpg)
![Page 12: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/12.jpg)
![Page 13: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/13.jpg)
!
Michele Lanza REVEAL @ Faculty of Informatics
University of Lugano, Switzerland
Engineering Software Systems
![Page 14: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/14.jpg)
!
Michele Lanza REVEAL @ Faculty of Informatics
University of Lugano, Switzerland
Evolving Software Systems
![Page 15: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/15.jpg)
A Holistic Approach to Evolving
Software Systems
!
Michele Lanza REVEAL @ Faculty of Informatics
University of Lugano, Switzerland
![Page 16: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/16.jpg)
holism |ˈhəәʊlɪz(əә)m, ˈhɒl-| !
The theory that parts of a whole are in intimate interconnection, such that they cannot exist independently of the whole, which is thus regarded as greater than the sum of its parts.
![Page 17: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/17.jpg)
1 What will be the scale of systems be 10-15 years from now?
23
What will those systems look like?
How will they be structured and evolved?
4 How do we ensure their dependability, security, safety, reliability?
![Page 18: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/18.jpg)
What will be the scale of systems 10-15 years from now?
![Page 19: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/19.jpg)
What's in a line?
public class HelloWorld { !
public static void main(String[] args) { System.out.println("Hello, World"); } }
![Page 20: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/20.jpg)
![Page 21: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/21.jpg)
Class Lines of Code Example
S0 < 1,000 whatever
S1 < 10,000 JUnit
S2 < 100,000 Mylyn
S3 < 1,000,000ArgoUML Vuze
S4 < 10,000,000 Eclipse
S5 < 100,000,000Windows Linux
S6 < 1,000,000,000 !
![Page 22: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/22.jpg)
What will systems look like in the future?
![Page 23: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/23.jpg)
![Page 24: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/24.jpg)
![Page 25: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/25.jpg)
How will they be constructed and evolved?
![Page 26: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/26.jpg)
How should they be constructed and evolved?
![Page 27: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/27.jpg)
HistoryPrehistory
![Page 28: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/28.jpg)
HistoryPrehistory
![Page 29: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/29.jpg)
HistoryPrehistory
![Page 30: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/30.jpg)
![Page 31: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/31.jpg)
![Page 32: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/32.jpg)
HistoryPrehistory
VCS seventies
MSR 2004
CVS/SVN nineties
![Page 33: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/33.jpg)
Mining Software
Repositories
![Page 34: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/34.jpg)
compilerun
edit
![Page 35: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/35.jpg)
compilerun
edit
testdebug
refactorversion
visualize
design
RSS
Twitter SkypeIRC e-mail
reengineer
document
rearchitectdiff
blog
reuse
tasks
review
recommend
navigate
![Page 36: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/36.jpg)
![Page 37: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/37.jpg)
![Page 38: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/38.jpg)
for(int j=m; j>i; j--){ uCJM1= dataUC[j-1]; uCJ= dataUC[j]; ! if(uCJM1.compare(z)> { /* exchange */ tempStr= data[j-1]; /* sort the data */ data[j-1]= data[j]; data[j]= tempStr; ! dataUC[j-1]= uCJ; dataUC[j]= uCJM1; } }
![Page 39: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/39.jpg)
![Page 40: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/40.jpg)
![Page 41: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/41.jpg)
![Page 42: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/42.jpg)
Alice wrote: > On Mon 23, Bob wrote: > > Dear list, > > When starting up ArgoUML on my MacOS X system (Java 2) > > it throws a NullPointerException very soon. You'll find the > > trace below. I hope someone knows a solution. Thanks a lot! ! > > Exception in thread "main" java.lang.NullPointerException > > at > > javax.swing.event.SwingSupport.fireChange(SwingChange.java) > > at javax.swing.AbstractAction.setEnabled(AbstractAction.java) [...] > > at uci.uml.Main.main(Main.java:148) ! > I'm sorry I can't help you Bob but thanks for sharing the stack... > Alice. > -- > "Beware of programmers who carry screwdrivers." --L. Brandwein ! Alice, I believe the flawed Explorer.java class generates Bob's issue: public void setEnclosingFig(Fig each) { super.setEnclosingFig(each); if (each != null || (each.getOwner() instanceof MPackage)) { m = (MPackage) each.getOwner(); } ! The problem is in the condition, I attach the diff with this version: --- src/org/argouml/ui/explorer/Explorer.java (revision 14338) +++ src/org/argouml/ui/explorer/Explorer.java (working copy) @@ -147,1 +147,1 @@ [...] super.setEnclosingFig(each); - if (each != null || (each.getOwner() instanceof MPackage)) { + if (each != null && (each.getOwner() instanceof MPackage)) { m = (MPackage) each.getOwner(); } ! Probably ModelTree is also affected, if so, please change it =) Cheers, Carl. -- I used to have a sig, but it took up much space so I got rid of it! --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
![Page 43: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/43.jpg)
Non-relevant
Natural Language
Stack trace
Source code
Patch
(1) Alice wrote: (2) On Mon 23, Bob wrote: (3) Dear list, (4) When starting up ArgoUML on my MacOS X system (Java 2) (5) it throws a NullPointerException very soon. You'll find the (6) trace below. I hope someone knows a solution. Thanks a lot! !(7) Exception in thread "main" java.lang.NullPointerException (8) at (9) javax.swing.event.SwingSupport.fireChange(SwingChange.java) (10) at javax.swing.AbstractAction.setEnabled(AbstractAction.java) [...] (11) at uci.uml.Main.main(Main.java:148) !(12) I'm sorry I can't help you Bob but thanks for sharing the stack... (13) Alice. (14) -- (15) "Beware of programmers who carry screwdrivers." --L. Brandwein !(16) Alice, I believe the flawed Explorer.java class generates Bob's issue: (17) public void setEnclosingFig(Fig each) { (18) super.setEnclosingFig(each); (19) if (each != null || (each.getOwner() instanceof MPackage)) { (20) m = (MPackage) each.getOwner(); } !(21) The problem is in the condition, I attach the diff with this version: (22) --- src/org/argouml/ui/explorer/Explorer.java (revision 14338) (23) +++ src/org/argouml/ui/explorer/Explorer.java (working copy) (24) @@ -147,1 +147,1 @@ [...] (25) super.setEnclosingFig(each); (26) - if (each != null || (each.getOwner() instanceof MPackage)) { (27) + if (each != null && (each.getOwner() instanceof MPackage)) { (28) m = (MPackage) each.getOwner(); } !(29) Probably ModelTree is also affected, if so, please change it =) (30) Cheers, Carl. (31) -- I used to have a sig, but it took up much space so I got rid of it! (32) --------------------------------------------------------------------- (33) To unsubscribe, e-mail: [email protected] (34) For additional commands, e-mail: [email protected]
![Page 44: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/44.jpg)
The content of unstructured data produced during the evolution of a
software system is a valuable information source to support software understanding
and evolution and complements data mined from structured sources.
!Alberto Bacchelli
!
Mining Unstructured Software Data !
PhD Thesis, University of Lugano, 2013
![Page 45: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/45.jpg)
![Page 46: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/46.jpg)
!
Integrated Development Environments + Recommender Systems !
!
!
!
!
!
!
!
!
!
!
Intelligent Development Environments
![Page 47: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/47.jpg)
The Librarian daemon looks like a pleasant, fiftyish, silver-haired, bearded man with bright blue eyes, wearing a V-neck sweater over a work shirt, with a coarsely woven, tweedy-looking wool tie. The tie is loosened, the sleeves pushed up. !Even though he's just a piece of software, he
has reason to be cheerful; he can move through the nearly infinite stacks of information in the Library with the agility of a spider dancing across a vast web of cross-references. The [..] only thing he can't do is think. !“Yes, sir," the Librarian says. He is eager without being obnoxiously chipper, he clasps his hands behind his back, rocks forward slightly on the balls of his feet, raises his eyebrows expectantly over his half-glasses.
![Page 48: A Holistic Approach to Evolving Software Systems](https://reader034.vdocuments.site/reader034/viewer/2022042613/547a4e425806b567048b486f/html5/thumbnails/48.jpg)
A Holistic Approach to Evolving
Software Systems
!
Michele Lanza REVEAL @ Faculty of Informatics
University of Lugano, Switzerland