Más contenido relacionado
Simplicity - The Art Of Maximizing The Amount Of Work Not Done
- 1. Simplicity
Slide 1 of 11
23. October 2012
Matthias Kraaz
© Zühlke 2012
- 2. Simplicity
Simplicity – the art of maximizing the amount of work not done –
is essential.
The Manifesto for Agile Software Development
Simplicity | Matthias Kraaz 23. October 2012 Slide 2 of 11 © Zühlke 2012
- 3. Simplicity
The “Gang of Four” Design Patterns
• Creational patterns (5)
• Structural patterns (7)
• Behavioral patterns (12)
Simplicity | Matthias Kraaz 23. October 2012 Slide 3 of 11 © Zühlke 2012
- 4. Simplicity
class Bridge
Bridge
«use»
API SPI
Simplicity | Matthias Kraaz 23. October 2012 Slide 4 of 11 © Zühlke 2012
- 5. Simplicity
All problems in computer science can be solved by another level
of indirection. But that usually will create another problem.
David Wheeler, 1927-2004, inventor of the subroutine
On the other hand, the effect that indirection has on the
comprehensibility of our code is a very important concern,
because over the last 50 years, in contrast to the dizzying
increases in CPU speeds, the ability of humans to understand
code hasn't improved much.
Diomidis Spinellis
Simplicity | Matthias Kraaz 23. October 2012 Slide 5 of 11 © Zühlke 2012
- 6. Simplicity
class Gas-AHP Architektur
Wird zyklisch von Main
aufgerufen
REG::RHM «use» REG::RRB
+ RRB_Hauptschleife() : void
«use»
«use» «use»
Abgrenzung
Verantwortlichkeit zu
«use» «use»
SDS?
STK::SDI
«use»
STK::SDE
STK::SZP
STK::SKF
Abgrenzung
«use» Verantwortlichkeit zu
STK::SMV SDE?
«use» «use»
«use» «use»
«use»
«use»
«use» STK::SDS
«use»
+ SDS_VS1Server() : void
STK::SDG
«use»
+ SDG_showDebugMessage() : void
«use» «use»
STK::SDV «use» «use»
Abhängigkeiten zu
STK::SSU
praktisch allen «use»
STK::SBD
Modulen (nicht im
«use» «use» «use»
Modell enthalten). STK::Main
«use» «use»
«use»
«use»
«use»
«use»
«use»
STK::SDL «use»
STK::SKD
«use»
STK::SKO
STK::SKT
«use»
«use»
Querschnittliche «use» «use»
«use»
Module: Verwendung
in verschiedensten STK::SRP
Modulen (nicht alle STK::SSY
Verwendungen im «use»
Modell enthalten). «use»
«use» «use»
«use»
STK::SZT «use»
«use» «use»
STK::SCB
«use»
«use»
«use» «use» Fragt Adressen zum
«use» Speichern des Backups
«use»
im EEPROM und
«use» Nur lesend. Fehlerstatus ab.
«use» «use» «use» «use»
STK::SRG «use»
STK::TSY «use»
«use»
«use»
STK::SCS
KEE_hwqcCheckEEPR
«use» OM
«use» + SCS_FehlerStatus() : void
«use»
«use»
STK::KBD «use»
STK::KKO STK::KEE KTM_showZeile für
«use» «use»
"Wink"
«use»
THA_flashEnable/THA
_flashDisable
«use»
«use»
«use»
«use» «use» «use»
«use»
STK::KVS STK::KTM
Abhängigkeiten zu
«use»
praktisch allen
STK::TIB Modulen (nicht im
Composite Beziehung:
Modell enthalten).
Composite Beziehung: - Teile von RIO sind in
- Teile von LIO sind in anderen Modulen
anderen Modulen implementiert
implementiert STK::LIO STK::RIO - RIO benutzt auch die
- LIO benutzt auch die anderen Module
anderen Module - die anderen Module
- die anderen Module benutzen RIO
benutzen LIO «use» «use»
«use»
STK::TDI STK::TAI STK::TSM STK::TDO STK::KKM_EAH1
STK::TPW STK::TSA STK::KKM_VC100 STK::KKM_EEV STK::KKM_Solar STK::KKM_MI STK::KKM_FB STK::KKM_AIR
+ TSA_empfangeRingPuffer() : void
+ TSA_getZeichen() : void
+ TSA_sendePuffer() : void
«use» «use» «use» «use»
STK::THA
Simplicity | Matthias Kraaz 23. October 2012 Slide 6 of 11 © Zühlke 2012
- 7. Simplicity
YAGNI
You ain’t gonna need it!
Simplicity | Matthias Kraaz 23. October 2012 Slide 7 of 11 © Zühlke 2012
- 8. Simplicity
class Simplicity
Class1 Class2
«use»
Simplicity | Matthias Kraaz 23. October 2012 Slide 8 of 11 © Zühlke 2012
- 9. Simplicity
class Refactoring
Class1 Class2
«use»
Interface1
Simplicity | Matthias Kraaz 23. October 2012 Slide 9 of 11 © Zühlke 2012
- 10. Simplicity
class Increment
Class3
Class1 Class2
«use»
Interface1
Simplicity | Matthias Kraaz 23. October 2012 Slide 10 of 11 © Zühlke 2012
- 11. Simplicity
KISS
Keep it simple, stupid!
Simplicity | Matthias Kraaz 23. October 2012 Slide 11 of 11 © Zühlke 2012