Assessing software systems
Upcoming SlideShare
Loading in...5
×
 

Assessing software systems

on

  • 2,848 views

I used this set of slides in a presentation I gave to an engineering audience.

I used this set of slides in a presentation I gave to an engineering audience.

Statistics

Views

Total Views
2,848
Views on SlideShare
2,685
Embed Views
163

Actions

Likes
0
Downloads
14
Comments
0

5 Embeds 163

http://www.tudorgirba.com 141
http://www.sw-eng.ibone.ch 9
http://www.sw-eng.ch 7
http://www.slideshare.net 4
http://translate.googleusercontent.com 2

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Assessing software systems Assessing software systems Presentation Transcript

  • Assessing software systems Tudor Gîrba www.tudorgirba.com
  • 2002
  • PhD 2002 2005
  • PhD PostDoc 2002 2005 2009
  • PhD PostDoc 2002 2005 2009 Consultant .ch eng ww.sw- w
  • } } { { } } { { g in er ne gi en d ar rw fo
  • fo rw ar d en gi ne er in g { { { { { { } { { actual development } } } } } } } } {
  • fo rw g rin ar ee d en in ng gi ne ee er rs in ve g re { { { { { { } { { actual development } } } } } } } } {
  • { { { { complex } = } } } } {
  • complex, large { { { { } = } } } } {
  • = 250’000 lines of code
  • = 250’000 lines of code * 2 = 500’000 seconds
  • = 250’000 lines of code * 2 = 500’000 seconds / 3600 140 hours ~
  • = 250’000 lines of code * 2 = 500’000 seconds / 3600 140 hours ~ / 8 ~ 18 days
  • = 250’000 lines of code * 2 = 500’000 seconds / 3600 140 hours ~ / 8 ~ 18 days / 20 ~ 1 month
  • McCabe = 21 d o #isG : NOM = lect 0 102 se ,00 ... ses 3 clas 75 = C LO { { { { } } } } } {
  • McCabe = 21 d o #isG : NOM = lect 0 102 se ,00 ... ses 3 clas 75 = C LO { { { { } } } } } {
  • Metric Value LOC 148‘760 NOM 14‘915 NOC 2’089 CYCLO 30‘073 CALLS 151287 FANOUT 85909 AHH 0.12 ... ...
  • McCabe = 21 d o #isG : NOM = lect 0 102 se ,00 ... ses 3 clas 75 = C LO { { { { } } } } } {
  • A God Class centralizes too much intelligence Class uses directly more than a few attributes of other classes ATFD > FEW Functional complexity of the class is very high AND GodClass WMC ! VERY HIGH Class cohesion is low TCC < ONE THIRD 6 scu 200 Marine Lanza,
  • Significant duplication goes beyond just one line Duplication chain has at least a size of two relevant exact clones SDC ! 2x(FEW+1)+1 Exact clones are longer than a few lines of code Significant Duplication AND Chain SEC > FEW Distance between clones is not more than a few lines of code LB quot; FEW Significant standalone exact clone SEC > AVERAGE(LOC/Operation) Significant OR Duplication 6 scu 200 Significant Duplication Chain Marine Lanza,
  • McCabe = 21 d o #isG : NOM = lect 0 102 se ,00 ... ses 3 clas 75 = C LO { { { { } } } } } {
  • McCabe = 21 d o #isG : NOM = lect 0 102 se ,00 ... ses 3 clas 75 = C LO { { { { } } } } } {
  • How do programs look like today?
  • A picture tells a thousand words
  • proximity
  • enclosure
  • connectivity
  • similarity
  • closure
  • continuity
  • A picture tells a thousand words
  • es tell a ot all ords pictur N usand w tho
  • System Complexity shows class hierarchies 03 asse 20 uc anza, D L
  • Distribution Map shows properties over structure Ducass e etal 200 6
  • Feature Map relates features to packages 7 etal 200 Greevy
  • CodeCity shows where your code lives 7 nza 200 La Wettel,
  • and where your flaws live 8 0 ettel 20 W
  • Duplications shown side by side
  • fo rw g rin ar ee d en in ng gi ne ee er rs in ve g re { { { { { { } { { actual development } } } } } } } } {
  • { { } } } { { { } } re ve rs ee ng in ee rin g reverse engineering fo actual development rw ar d en gi ne er in g { { } } { { } }
  • Hierarchy Evolution reveals evolution patterns 5 etal 200 Girba
  • Ownership Map reveals patterns in CVS 5 etal 200 Girba
  • Clone Evolution shows who copied from whom 6 etal 200 Balint
  • McCabe = 21 d o #isG : NOM = lect 0 102 se ,00 ... ses 3 clas 75 = C LO { { { { } } } } } {
  • McCabe = 21 d o #isG : NOM = lect 0 102 se ,00 ... ses 3 clas 75 = C LO { { { { } } } } } {
  • McCabe = 21 d o #isG : NOM = lect 0 102 se ,00 ... ses 3 clas 75 = C LO { { { { } } } } } {
  • e.ch unib se. o mo
  • McCabe = 21 d o #isG : NOM = lect 0 102 se ,00 ... ses 3 clas 75 = C LO { { { { } } } } } {
  • ment is assess oftware S cy tools han fan ore t m
  • McCabe = 21 d o #isG : NOM = lect 0 102 se ,00 ... ses 3 clas 75 = C LO { { { { } } } } } {
  • Tudor Gîrba www.tudorgirba.com creativecommons.org/licenses/by/3.0/