SlideShare a Scribd company logo
1 of 48
Download to read offline
Engineering
Dependable
Software
Systems

!

Michele Lanza

REVEAL @ Faculty of Informatics

University of Lugano, Switzerland
Engineering
Software
Systems

!

Michele Lanza

REVEAL @ Faculty of Informatics

University of Lugano, Switzerland
!

Software Engineering
is dead
Engineering
Software
Systems

!

Michele Lanza

REVEAL @ Faculty of Informatics

University of Lugano, Switzerland
Evolving
Software
Systems

!

Michele Lanza

REVEAL @ Faculty of Informatics

University of Lugano, Switzerland
A Holistic Approach to
Evolving
Software
Systems

!

Michele Lanza

REVEAL @ Faculty of Informatics

University of Lugano, Switzerland
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.
1

2
3
4

What will be the scale of systems be 10-15 years
from now?

What will those systems look like?

How will they be structured and evolved?

How do we ensure their dependability, security,
safety, reliability?
What will be the scale of systems
10-15 years from now?
public class HelloWorld {
!

public static void main(String[] args) {
System.out.println("Hello, World");
}
}

What's in a line?
Class
S0

Lines of Code

Example

< 1,000 whatever

S1

< 10,000 JUnit

S2

< 100,000 Mylyn

S3
S4

< 1,000,000

ArgoUML
Vuze

< 10,000,000 Eclipse
Windows

S5

< 100,000,000

S6

< 1,000,000,000 !

Linux
What will systems

look like in the future?
How will they be

constructed and evolved?
How should they be

constructed and evolved?
Prehistory

History
Prehistory

History
Prehistory

History
Prehistory

History
VCS

CVS/SVN

MSR

seventies

nineties

2004
Mining
Software
Repositories
edit

run

compile
review
rearchitect
version
tasks
design

edit

reuse
RSS
document

run

IRC
Twitter
debug Skype

diff

Facebook
recommend
refactor
navigate
visualize
blog

compile
e-mail

test reengineer
!
!

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;
!

!

!

!

!

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: dev-...@argouml.tigris.org
For additional commands, e-mail: dev-...@argouml.tigris.org
(1)
(2)
(3)
(4)
(5)
(6)

!

(7)
(8)
(9)
(10)
(11)

!

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)

(12)
(13)
(14)
(15)

I'm sorry I can't help you Bob but thanks for sharing the stack...
Alice.
-"Beware of programmers who carry screwdrivers." --L. Brandwein

(16)
(17)
(18)
(19)
(20)

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(); }

(21)
(22)
(23)
(24)
(25)
(26)
(27)
(28)

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(); }

(29)
(30)
(31)
(32)
(33)
(34)

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: dev-...@argouml.tigris.org
For additional commands, e-mail: dev-...@argouml.tigris.org

!

!

!

Non-relevant

Natural Language

Stack trace

Source code

Patch
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
!

Integrated Development Environments + Recommender Systems
!
!
!
!
!
!
!
!
!
!
!

Intelligent Development Environments
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.
A Holistic Approach to
Evolving
Software
Systems

!

Michele Lanza

REVEAL @ Faculty of Informatics

University of Lugano, Switzerland

More Related Content

Viewers also liked

Icsm2010 kamei
Icsm2010 kameiIcsm2010 kamei
Icsm2010 kamei
SAIL_QU
 
A Study of the Quality-Impacting Practices of Modern Code Review at Sony Mobile
A Study of the Quality-Impacting Practices of Modern Code Review at Sony MobileA Study of the Quality-Impacting Practices of Modern Code Review at Sony Mobile
A Study of the Quality-Impacting Practices of Modern Code Review at Sony Mobile
SAIL_QU
 
Revisiting the Applicability of the Pareto Principle to Core Development Team...
Revisiting the Applicability of the Pareto Principle to Core Development Team...Revisiting the Applicability of the Pareto Principle to Core Development Team...
Revisiting the Applicability of the Pareto Principle to Core Development Team...
SAIL_QU
 
Icse2011 build maintenance
Icse2011 build maintenanceIcse2011 build maintenance
Icse2011 build maintenance
SAIL_QU
 
An Empirical Study of Goto in C Code from GitHub Repositories
An Empirical Study of Goto in C Code from GitHub RepositoriesAn Empirical Study of Goto in C Code from GitHub Repositories
An Empirical Study of Goto in C Code from GitHub Repositories
SAIL_QU
 
Smalltalk In a Nutshell
Smalltalk In a NutshellSmalltalk In a Nutshell
Smalltalk In a Nutshell
Michele Lanza
 

Viewers also liked (20)

Icsm2010 kamei
Icsm2010 kameiIcsm2010 kamei
Icsm2010 kamei
 
A Study of the Quality-Impacting Practices of Modern Code Review at Sony Mobile
A Study of the Quality-Impacting Practices of Modern Code Review at Sony MobileA Study of the Quality-Impacting Practices of Modern Code Review at Sony Mobile
A Study of the Quality-Impacting Practices of Modern Code Review at Sony Mobile
 
The impact of supercomputers on MSR
The impact of supercomputers on MSRThe impact of supercomputers on MSR
The impact of supercomputers on MSR
 
Defect Prediction: Accomplishments and Future Challenges
Defect Prediction: Accomplishments and Future ChallengesDefect Prediction: Accomplishments and Future Challenges
Defect Prediction: Accomplishments and Future Challenges
 
Revisiting the Applicability of the Pareto Principle to Core Development Team...
Revisiting the Applicability of the Pareto Principle to Core Development Team...Revisiting the Applicability of the Pareto Principle to Core Development Team...
Revisiting the Applicability of the Pareto Principle to Core Development Team...
 
Modern Code Reviews in Open Source Projects: Which Problems Do They Fix?
Modern Code Reviews in Open Source Projects: Which Problems Do They Fix?Modern Code Reviews in Open Source Projects: Which Problems Do They Fix?
Modern Code Reviews in Open Source Projects: Which Problems Do They Fix?
 
Linking E-Mails and Source Code Artifacts
Linking E-Mails and Source Code ArtifactsLinking E-Mails and Source Code Artifacts
Linking E-Mails and Source Code Artifacts
 
RTFM (Read The Factual Mails) --Augmenting Program Comprehension with REmail
RTFM (Read The Factual Mails) --Augmenting Program Comprehension with REmailRTFM (Read The Factual Mails) --Augmenting Program Comprehension with REmail
RTFM (Read The Factual Mails) --Augmenting Program Comprehension with REmail
 
Supporting Developers’ Coordination in The IDE #cscw2015
Supporting Developers’ Coordination in The IDE #cscw2015Supporting Developers’ Coordination in The IDE #cscw2015
Supporting Developers’ Coordination in The IDE #cscw2015
 
Icse2011 build maintenance
Icse2011 build maintenanceIcse2011 build maintenance
Icse2011 build maintenance
 
An Automated Approach for Recommending When to Stop Performance Tests
An Automated Approach for Recommending When to Stop Performance TestsAn Automated Approach for Recommending When to Stop Performance Tests
An Automated Approach for Recommending When to Stop Performance Tests
 
EvoSpaces - Multi-dimensional Navigation Spaces for Software Evolution
EvoSpaces - Multi-dimensional Navigation Spaces for Software EvolutionEvoSpaces - Multi-dimensional Navigation Spaces for Software Evolution
EvoSpaces - Multi-dimensional Navigation Spaces for Software Evolution
 
Visualizing Gnome with the Small Project Observatory
Visualizing Gnome with the Small Project ObservatoryVisualizing Gnome with the Small Project Observatory
Visualizing Gnome with the Small Project Observatory
 
An Empirical Study of Goto in C Code from GitHub Repositories
An Empirical Study of Goto in C Code from GitHub RepositoriesAn Empirical Study of Goto in C Code from GitHub Repositories
An Empirical Study of Goto in C Code from GitHub Repositories
 
Software Visualization 101+
Software Visualization 101+Software Visualization 101+
Software Visualization 101+
 
Smalltalk In a Nutshell
Smalltalk In a NutshellSmalltalk In a Nutshell
Smalltalk In a Nutshell
 
ICPE2015
ICPE2015ICPE2015
ICPE2015
 
MSR 2009
MSR 2009MSR 2009
MSR 2009
 
WCRE2011
WCRE2011WCRE2011
WCRE2011
 
Msr2016 tarek
Msr2016 tarek Msr2016 tarek
Msr2016 tarek
 

Similar to A Holistic Approach to Evolving Software Systems

Next.ml Boston: Data Science Dev Ops
Next.ml Boston: Data Science Dev OpsNext.ml Boston: Data Science Dev Ops
Next.ml Boston: Data Science Dev Ops
Eric Chiang
 

Similar to A Holistic Approach to Evolving Software Systems (20)

Fun with Functional Programming in Clojure - John Stevenson - Codemotion Amst...
Fun with Functional Programming in Clojure - John Stevenson - Codemotion Amst...Fun with Functional Programming in Clojure - John Stevenson - Codemotion Amst...
Fun with Functional Programming in Clojure - John Stevenson - Codemotion Amst...
 
Fun with Functional Programming in Clojure
Fun with Functional Programming in ClojureFun with Functional Programming in Clojure
Fun with Functional Programming in Clojure
 
[CCC-28c3] Post Memory Corruption Memory Analysis
[CCC-28c3] Post Memory Corruption Memory Analysis[CCC-28c3] Post Memory Corruption Memory Analysis
[CCC-28c3] Post Memory Corruption Memory Analysis
 
What can be done with Java, but should better be done with Erlang (@pavlobaron)
What can be done with Java, but should better be done with Erlang (@pavlobaron)What can be done with Java, but should better be done with Erlang (@pavlobaron)
What can be done with Java, but should better be done with Erlang (@pavlobaron)
 
Get into Functional Programming with Clojure
Get into Functional Programming with ClojureGet into Functional Programming with Clojure
Get into Functional Programming with Clojure
 
Scala lens: An introduction
Scala lens: An introductionScala lens: An introduction
Scala lens: An introduction
 
The things we don't see – stories of Software, Scala and Akka
The things we don't see – stories of Software, Scala and AkkaThe things we don't see – stories of Software, Scala and Akka
The things we don't see – stories of Software, Scala and Akka
 
How to make a large C++-code base manageable
How to make a large C++-code base manageableHow to make a large C++-code base manageable
How to make a large C++-code base manageable
 
[Ruxcon 2011] Post Memory Corruption Memory Analysis
[Ruxcon 2011] Post Memory Corruption Memory Analysis[Ruxcon 2011] Post Memory Corruption Memory Analysis
[Ruxcon 2011] Post Memory Corruption Memory Analysis
 
Conf orm - explain
Conf orm - explainConf orm - explain
Conf orm - explain
 
Spock Framework - Slidecast
Spock Framework - SlidecastSpock Framework - Slidecast
Spock Framework - Slidecast
 
Spock Framework
Spock FrameworkSpock Framework
Spock Framework
 
Parallel Computing with R
Parallel Computing with RParallel Computing with R
Parallel Computing with R
 
Next.ml Boston: Data Science Dev Ops
Next.ml Boston: Data Science Dev OpsNext.ml Boston: Data Science Dev Ops
Next.ml Boston: Data Science Dev Ops
 
Tokyo APAC Groundbreakers tour - The Complete Java Developer
Tokyo APAC Groundbreakers tour - The Complete Java DeveloperTokyo APAC Groundbreakers tour - The Complete Java Developer
Tokyo APAC Groundbreakers tour - The Complete Java Developer
 
Regex Considered Harmful: Use Rosie Pattern Language Instead
Regex Considered Harmful: Use Rosie Pattern Language InsteadRegex Considered Harmful: Use Rosie Pattern Language Instead
Regex Considered Harmful: Use Rosie Pattern Language Instead
 
Getting started with Clojure
Getting started with ClojureGetting started with Clojure
Getting started with Clojure
 
[Wroclaw #7] Why So Serial?
[Wroclaw #7] Why So Serial?[Wroclaw #7] Why So Serial?
[Wroclaw #7] Why So Serial?
 
Java
JavaJava
Java
 
Avout
AvoutAvout
Avout
 

Recently uploaded

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 

A Holistic Approach to Evolving Software Systems

  • 1. Engineering Dependable Software Systems ! Michele Lanza REVEAL @ Faculty of Informatics University of Lugano, Switzerland
  • 2. Engineering Software Systems ! Michele Lanza REVEAL @ Faculty of Informatics University of Lugano, Switzerland
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13. Engineering Software Systems ! Michele Lanza REVEAL @ Faculty of Informatics University of Lugano, Switzerland
  • 14. Evolving Software Systems ! Michele Lanza REVEAL @ Faculty of Informatics University of Lugano, Switzerland
  • 15. A Holistic Approach to Evolving Software Systems ! Michele Lanza REVEAL @ Faculty of Informatics University of Lugano, Switzerland
  • 16. 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.
  • 17. 1 2 3 4 What will be the scale of systems be 10-15 years from now? What will those systems look like? How will they be structured and evolved? How do we ensure their dependability, security, safety, reliability?
  • 18. What will be the scale of systems 10-15 years from now?
  • 19. public class HelloWorld { ! public static void main(String[] args) { System.out.println("Hello, World"); } } What's in a line?
  • 20.
  • 21. Class S0 Lines of Code Example < 1,000 whatever S1 < 10,000 JUnit S2 < 100,000 Mylyn S3 S4 < 1,000,000 ArgoUML Vuze < 10,000,000 Eclipse Windows S5 < 100,000,000 S6 < 1,000,000,000 ! Linux
  • 22. What will systems look like in the future?
  • 23.
  • 24.
  • 25. How will they be constructed and evolved?
  • 26. How should they be constructed and evolved?
  • 30.
  • 31.
  • 36.
  • 37.
  • 38. ! ! 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;
  • 39.
  • 40.
  • 41.
  • 42. ! ! ! ! ! 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: dev-...@argouml.tigris.org For additional commands, e-mail: dev-...@argouml.tigris.org
  • 43. (1) (2) (3) (4) (5) (6) ! (7) (8) (9) (10) (11) ! 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) (12) (13) (14) (15) I'm sorry I can't help you Bob but thanks for sharing the stack... Alice. -"Beware of programmers who carry screwdrivers." --L. Brandwein (16) (17) (18) (19) (20) 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(); } (21) (22) (23) (24) (25) (26) (27) (28) 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(); } (29) (30) (31) (32) (33) (34) 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: dev-...@argouml.tigris.org For additional commands, e-mail: dev-...@argouml.tigris.org ! ! ! Non-relevant Natural Language Stack trace Source code Patch
  • 44. 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
  • 45.
  • 46. ! Integrated Development Environments + Recommender Systems ! ! ! ! ! ! ! ! ! ! ! Intelligent Development Environments
  • 47. 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.
  • 48. A Holistic Approach to Evolving Software Systems ! Michele Lanza REVEAL @ Faculty of Informatics University of Lugano, Switzerland