object-oriented design heuristics - uzhffffffff-fd5f-cdf8-0000... · 2016-06-23 · object-oriented...

9
University of Zurich Department of Informatics software evolution & architecture lab Emanuel Giger, Harald Gall University of Zurich, Switzerland Object-Oriented Design Heuristics Advanced Software Engineering FS 2012 Wednesday, March 14, 2012

Upload: others

Post on 04-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Object-Oriented Design Heuristics - UZHffffffff-fd5f-cdf8-0000... · 2016-06-23 · Object-Oriented Design Heuristics Advanced Software Engineering FS 2012 Wednesday, March 14, 2012

University of ZurichDepartment of Informatics software evolution & architecture lab

Emanuel Giger, Harald Gall

University of Zurich, Switzerland

Object-Oriented Design HeuristicsAdvanced Software EngineeringFS 2012

Wednesday, March 14, 2012

Page 2: Object-Oriented Design Heuristics - UZHffffffff-fd5f-cdf8-0000... · 2016-06-23 · Object-Oriented Design Heuristics Advanced Software Engineering FS 2012 Wednesday, March 14, 2012

Design Heuristics

Wednesday, March 14, 2012

Page 3: Object-Oriented Design Heuristics - UZHffffffff-fd5f-cdf8-0000... · 2016-06-23 · Object-Oriented Design Heuristics Advanced Software Engineering FS 2012 Wednesday, March 14, 2012

Design Heuristics

Wednesday, March 14, 2012

Page 4: Object-Oriented Design Heuristics - UZHffffffff-fd5f-cdf8-0000... · 2016-06-23 · Object-Oriented Design Heuristics Advanced Software Engineering FS 2012 Wednesday, March 14, 2012

What are Design Heuristics?

‣ Conserved senior developer experience

‣ Guidelines / Rules of thumb

‣Warning bells that ringwhen violated

‣ Can be checked by tools

Wednesday, March 14, 2012

Page 5: Object-Oriented Design Heuristics - UZHffffffff-fd5f-cdf8-0000... · 2016-06-23 · Object-Oriented Design Heuristics Advanced Software Engineering FS 2012 Wednesday, March 14, 2012

Sonar

Wednesday, March 14, 2012

Page 6: Object-Oriented Design Heuristics - UZHffffffff-fd5f-cdf8-0000... · 2016-06-23 · Object-Oriented Design Heuristics Advanced Software Engineering FS 2012 Wednesday, March 14, 2012

FindBugs

Wednesday, March 14, 2012

Page 7: Object-Oriented Design Heuristics - UZHffffffff-fd5f-cdf8-0000... · 2016-06-23 · Object-Oriented Design Heuristics Advanced Software Engineering FS 2012 Wednesday, March 14, 2012

Examples

‣ A class should capture one and only one key abstraction.

‣ Classes should not contain more objects than a developer can fit in his or her short term memory. A favorite value for this number is six.

Wednesday, March 14, 2012

Page 8: Object-Oriented Design Heuristics - UZHffffffff-fd5f-cdf8-0000... · 2016-06-23 · Object-Oriented Design Heuristics Advanced Software Engineering FS 2012 Wednesday, March 14, 2012

Goals of this Lecture

‣ Get familiar with Riel’s design heuristics

‣ Learn how to find real design violations in real software with common software engineering tools

‣ Improve the object-orienteddesign of an existing system

Wednesday, March 14, 2012

Page 9: Object-Oriented Design Heuristics - UZHffffffff-fd5f-cdf8-0000... · 2016-06-23 · Object-Oriented Design Heuristics Advanced Software Engineering FS 2012 Wednesday, March 14, 2012

Excercise / Homework

(a) Short (written) discussion

(b) Trade-Offs between heuristics

(c) Come up with (automated) detection strategies

(d) Find design violationsin the wild...

(e) ...and re-factor them!

☞ hand in your solutions until 21.03, [email protected]

Wednesday, March 14, 2012