Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Komplexität vermeintlich einfacher Dinge

Komplexität vermeintlich einfacher Dinge

Komplexität steckt auch in (vermeintlich) einfachen Dingen - Softwareentwickler und -architekten sollten sensibel dafür sein ...

Enthält Beispiele: Dateisysteme, Audio-Kompression, Navigation, Gesichtserkennung.

Zitiert Material von Uwe Friedrichsen (danke, Uwe!)

Dr. Gernot Starke

July 01, 2011
Tweet

More Decks by Dr. Gernot Starke

Other Decks in Programming

Transcript

  1. • äußerlich einfache, innerlich komplizierte Dinge aufzeigen... • deren Details

    nur wenige verstehen (müssen) Ich möchte Sie für Komplexität sensibilisieren
  2. Dr. Gernot Starke performant flexibel integriert geboren in Prograland, lebt

    in Architektonien, Visa für Analytistan und LaTesta, lange Aufenthalte in Bisi-Ness, Schwimmabzeichen im Service-Ozean aktiv
  3. Uwe Friedrichsen erklärt Name: Uwe Friedrichsen Berufserfahrung: Relativ vielfältig und

    lang Schwerpunkte: • Teams, Projekte und Systeme zum Erfolg führen – mit einem speziellen Fokus auf Architektur und Agilität • Ganzheitliches Denken, Ideen und Konzepte verknüpfen, Leute zum Nachdenken bringen Firma: codecentric AG
  4. codecentric AG 30.12.10 7 Einfach Chaotisch Kompliziert Komplex Wenig Einflussfaktoren

    Schwache Verknüpfung Klare Ursache-Wirkung Zusammenhänge Stabile Beziehungen Viele Einflussfaktoren Enge Verknüpfung Stabile Beziehungen Nachvollziehbare Ursache-Wirkung Zusammenhänge Viele Einflussfaktoren Dynamische Beziehungen Keine erkennbaren Ursache-Wirkung Zusammenhänge Erkennbare Muster Viele Einflussfaktoren Sehr dynamische Beziehungen Keine erkennbaren Muster Keine Ursache-Wirkung Zusammenhänge Systeme
  5. codecentric AG Wenig Einflussfaktoren Schwache Verknüpfung Klare Ursache-Wirkung Zusammenhänge Stabile

    Beziehungen Viele Einflussfaktoren Enge Verknüpfung Stabile Beziehungen Nachvollziehbare Ursache-Wirkung Zusammenhänge Viele Einflussfaktoren Dynamische Beziehungen Keine erkennbaren Ursache-Wirkung Zusammenhänge Erkennbare Muster Viele Einflussfaktoren Sehr dynamische Beziehungen Keine erkennbaren Muster Keine Ursache-Wirkung Zusammenhänge 30.12.10 9 Einfach Chaotisch Kompliziert Komplex Systeme Ad hoc Lösungen Checklisten Command & Control Best Practices Klassische Analyse- und Planungstechniken Teile & Herrsche Experten Evolutionäre Techniken Indirekte Steuerung Systemische Analyse (Command & Control) Kontinuierliches Lernen Command & Control Stabilisierende Ad hoc Maßnahmen Keine Analyse Erhöhte Interaktion
  6. These Alles ist schwieriger, als es auf den ersten Blick

    aussieht. riskanter, umfangreicher, komplizierter, komplexer, aufwändiger
  7. Zeichen • Darstellung: Zeichensatz, Umbruch, Aliasing, Kerning, Ligatur, Hoch-/Tiefstellung, Formelsatz

    • Codierung: ASCII, EBCEDIC, Unicode, Steuer-/Sonderzeichen, Umlaute, Codepage
  8. Dateien (files) • eindimensionale Folge von Bits • gespeichert auf

    nichtflüchtigen Medium # create a file and write it to disk. filename = "test.dat" # create some data: names = [] names.append(„Tony“) names.append(„Tiger“) # Create a file object in "write" mode FILE = open(filename,"w") # Write all the lines at once: FILE.writelines(names)
  9. Dateien: Inhalt und Metadaten • Links (Hard- und Softlinks) •

    Verzeichnis, Tags, Annotationen • Rechte (Zugriff, Ausführung, Druck, Weitergabe) • Icon • Erstellungs-, Zugriffs-, Änderungsdatum • Version, Historie • Backup- und Sync-Status • Digitale Signatur, DRM, Hash
  10. Quelle: Wikipedia Datei auf physikalischem Medium: • Zuordnung Bit zu

    Lokation, • Fehlererkennung und -korrektur, • Lese-/Schreibstrategien, • langfristige Haltbarkeit :-(
  11. Bilder als Dateien • Bilder: • 1024 x 768 Pixel

    à 8Bit = 786.432 Byte • Farbmodell, Farbechtheit, Auflösung • Bitmap oder Vektorgrafik • Kompression (jpg, gif, png,......) • mit/ohne Metadaten
  12. Dateien: viele davon... • Flickr: 5 E09 Fotos • SnapFish:

    100.000.000 User, unbegrenzt Speicher • GoogleMail: Pro Account >7GByte frei
  13. Daten im Netz • TCP/IP zur „zuverlässigen Versenden von Datenströmen“???

    • DNS, Latenz, Kabel-defekt • DoS, Man-in-the-Middle
  14. Videodaten • Bilder: • 1024 x 768 Pixel à 8Bit

    = 786.432 Byte • Video: 25 Bilder / Sekunde • pro Sekunde 25 * 768kB = 19 MB • pro Stunde = 3600 * 19MB = 68400 MB = 68GB
  15. Video: Kompression • Redundanzreduktion • Ähnlichkeiten von Bildern ausnutzen •

    Irrelevanzreduktion • Unzulänglichkeiten des menschlichen Sehens ausnutzen • Daten- / Containerformate • Video + Audio • AVI, Dirac, Theora, Riff, Real, MPEG, QuickTime, Motion-JPG
  16. Audio • räumliches Hören • sehr hohe zeitliche Auflösung von

    Signalen • Latenz ab ca. 11msec wahrnehmbar!! (= 1 Hunderstel-Sekunde)
  17. These zu Audio Kein Mensch versteht psychoakustische Kompressionsverfahren. Wenige Ausnahmen

    bestätigen diese Regel. mp3, aac & Co: Fourier- Transformation, Zeitreihenanalyse, Golomb-/ Rice-Codes sehr spezialisierte Mathematik :-)
  18. Geodaten, GPS • Grundlage von • Navigation & „Location Based

    Services“ • Funktionsweise • Mehrerer Satelliten senden ständig Position und Uhrzeit • GPS-Empfänger berechnet Position aus Signallaufzeiten
  19. Routing in Karten • Ziele, Zwischenziele, Wegpunkte • Maßstabsanpassung, 2-3D

    Darstellung • Angewandte Graphentheorie plus Computergrafik
  20. Gesichtserkennung • in vielen Digitalkameras angewandt • in Desktop-Fotosoftware angewandt

    (Picasa, iPhoto) • Erkennungsrate ähnlich hoch wie bei Fingerabdruck- oder Iris-Scan (!!)
  21. Gesichtserkennung • 2D und 3D-Verfahren • Lineare Algebra, Eigenvektoren, Eigen-

    Faces, Wavelet-Analyse, (Haar-)Classifier, maschinelles Lernen • Erkennen in Videos
  22. These zu Gesichtserkennung Kein Mensch versteht Hintergründe der Gesichtserkennung. Wenige

    Ausnahmen bestätigen diese Regel. SEHR spezialisierte Mathematik :-)
  23. Fazit • Manche Blackboxes sind innen SEHR kompliziert. Falls Sie

    Details brauchen, wird‘s schwierig und riskant.
  24. Fazit (2) Software-Architekten brauchen simpled& • Unsere Helden sind die

    besten Vereinfacher. • Einfache, verständliche Lösungen gewinnen immer
  25. jetzt mit Zertifikat Lernen Sie, mit Komplexität und Kompliziertheit in

    Architekturen umzugehen: www.arc42.de 7 isaQB International Software Architecture Qualification Board isaQB International Software Architecture Qualification Board isaQB International Software Architecture Qualification Board International Software Architecture Qualification Board 7 Wednesday, November 18, 2009 www.isaqb.org