softwareentwicklung ohne abhängigkeiten - sigs.de · oblivion (pomo) prinzip der gegenseitigen...
TRANSCRIPT
Softwareentwicklungohne
Abhängigkeiten
Stefan Lieser @stefanlieser
http://refactoring-legacy-code.net
A B
= Funktionseinheit (Methode, Klasse, etc.)
= Abhängigkeit (A ist abhängig von B)
Typische Struktur von Abhängigkeiten
f
f2f1
Flow Design: Datenflussdiagramme
( x ) ( y )
( x ) ( y )( z )
A B
= Funktionseinheit (Methode, Klasse, etc.)
= Datenfluss (ein x fließt von A nach B)( x )
= Verfeinerung
f
f2f1
Mit Abhängigkeiten (FALSCH!!)( x ) ( y )
( x ) ( y )( z )
Y f(X x) { return f1(x); }
Y f1(X x) { var z = ….
return f2(z); }
Y f2(Z z) { var y = …
return y; }
f
f2f1
( x ) ( y )
( x ) ( y )( z )
Y f(X x) { return f1(x); }
Y f1(X x) { var z = ….
return f2(z); }
Y f2(Z z) { var y = …
return y; }
Integration Integration + Operation
Operation
Mit Abhängigkeiten (FALSCH!!)
f
f2f1
Ohne Abhängigkeiten( x ) ( y )
( x ) ( y )( z )
Y f(X x) { var z = f1(x); var y = f2(z); return y; }
Z f1(X x) { var z = ….
return z; }
Y f2(Z z) { var y = …
return y; }
f
f2f1
( x ) ( y )
( x ) ( y )( z )
Y f(X x) { var z = f1(x); var y = f2(z); return y; }
Z f1(X x) { var z = ….
return z; }
Y f2(Z z) { var y = …
return y; }
Integration Operation Operation
Ohne Abhängigkeiten
ProjektstrukturApplication Integration .exe Projekt maximale Abhängigkeiten
Referenziert alle anderen Projekte. Startet die Anwendung in der Main Methode.
ProjektstrukturKomponenten Logik, UI, Ressourcen, etc. .dll Projekte Keine Abhängigkeiten Referenziert lediglich die Kontrakte. Tests referenzieren zugehörige Impl.
http://refactoring-legacy-code.net
http://linkedin.com/in/stefanlieser
https://twitter.com/StefanLieser
http://xing.com/profile/stefan_lieser