Universität zu Köln. Historisch-Kulturwissenschaftliche Informationsverarbeitung
Dr. Jan G. Wieners // jan.wieners@uni-koe...
Phasen der Software-Entwicklung
 Analyse
 Spezifikation
 Entwurf
 Algorithmus
 Pseudocode
 Implementation
 (Post-Im...
Ergänzungen
„Betriebssysteme“
Speicherverwaltung: Swapping
 Problem: Externe Fragmentierung
Speicherverwaltung: Paging / Kachelverwaltung
MMU (Memory Management Unit) kümmert sich um
die Übersetzung virtueller Speicheradressen auf
den physikalischen Speicherbe...
Grundproblematik: Inkonsistenzen im Dateisystem
Z.B. Systemabsturz  Inkonsistenz
Journaling-Dateisysteme (ext3 / ext4): Ä...
 SSDs und (De)fragmentierung?
Neulich in den
Sommerferien…
Analyse
„Regeln zur Leitung des
Geistes" (1628):
 Hohe Relevanz der
Analysephase
 Aufteilung in Teil- und
Unterprobleme
 Hierar...
Analyse  Spezifikation  Lasten- /
Pflichtenheft
Entwurf
Systemarchitektur? Tools / Werkzeuge?
www.thecodinglove.com
Entwurf: Mockups
Entwurf: Algorithmus Eindeutige Beschreibung eines endlichen Verfahrens zur Lösung einer bestimmten Klasse von Problemen
„Algorithmus“, formal:
Eine Berechnungsvorschrift zur Lösung eines Problems heißt
genau dann Algorithmus, wenn eine zu die...
TheSimpleMaths:
https://www.youtube.com/watch?v=QR8ffLPtomM
 Finitheit: Das Verfahren muss in einem endlichen
Text eindeutig beschreibbar sein.
 Ausführbarkeit: Jeder Schritt des V...
Finden Sie einen Weg aus dem Labyrinth
Entwerfen Sie ein Verfahren, das Sie aus jedem Labyrinth (mit Ausgang) führt
Pledge-Algorithmus:
 Prämisse: Wir gehen davon aus, dass alle Ecken rechtwinklig
sind
 Somit kommen nur Rechtsdrehungen ...
Pseudocode Pledge-Algorithmus:
Setze Umdrehungszähler auf 0;
Wiederhole
 Wiederhole
 Gehe geradeaus;
 Solange Wand erre...
Implementation
Programmerstellung und Programmiersprachen
Programmiersprachen
Strukturierte Computerorganisation
Problemorientierte Sprache
Assemblersprache
Betriebssystemmaschine
Befehlssatzarchitekt...
Vorgehensmodelle
Anforderungsanalyse
Grobdesign
Feindesign
Implementierung
Test und Integration
Wasserfallmodell
Anforderungsanalyse
Grobdesign
Feindesign
Implementierung
Test und Integration
Prototypische Entwicklung
Anforderungsanaly...
Iterative Entwicklung
Anforderungsanalyse
Grobdesign
Feindesign
Implementierung
Test und Integration
Iterativ Inkrementelle Entwicklung (State of the Art)
Manifest für Agile Software-Entwicklung
 2001 veröffentlicht von 17 renommierten Entwicklern
[http://agilemanifesto.org/i...
 Arbeit in Sprints
 Feedback maximieren durch zeitnahe Software-
Inkremente
 Testgetriebene Entwicklung
 Refaktorisier...
"Als <Rolle> möchte ich <Ziel/Wunsch>, um
<Nutzen>"
[https://www.holisticon.de/2013/06/user-story-cards-aufs-wesentliche-reduziert/]
Product Backlog
mit priorisierten
Aufgaben
Quelle: Jeff Patton, http://agileproductdesign.com/presentations/user_story_map...
Unter jeder Aktivität / jedem
Feature: Entsprechende User
Stories
Quelle: Jeff Patton, http://agileproductdesign.com/prese...
Ein Wanderer kommt an eine Weggabelung. Er weiß,
dass der eine Weg ins Dorf führt, der andere jedoch in
einen Sumpf - und ...
/
Bit wisem 2015-wieners-sitzung-09_Software-Entwicklung
Bit wisem 2015-wieners-sitzung-09_Software-Entwicklung
Bit wisem 2015-wieners-sitzung-09_Software-Entwicklung
Bit wisem 2015-wieners-sitzung-09_Software-Entwicklung
Bit wisem 2015-wieners-sitzung-09_Software-Entwicklung
Bit wisem 2015-wieners-sitzung-09_Software-Entwicklung
Bit wisem 2015-wieners-sitzung-09_Software-Entwicklung
Bit wisem 2015-wieners-sitzung-09_Software-Entwicklung
Bit wisem 2015-wieners-sitzung-09_Software-Entwicklung
Bit wisem 2015-wieners-sitzung-09_Software-Entwicklung
Bit wisem 2015-wieners-sitzung-09_Software-Entwicklung
Bit wisem 2015-wieners-sitzung-09_Software-Entwicklung
Bit wisem 2015-wieners-sitzung-09_Software-Entwicklung
Bit wisem 2015-wieners-sitzung-09_Software-Entwicklung
Bit wisem 2015-wieners-sitzung-09_Software-Entwicklung
Bit wisem 2015-wieners-sitzung-09_Software-Entwicklung
Bit wisem 2015-wieners-sitzung-09_Software-Entwicklung
Nächste SlideShare
Wird geladen in …5
×

Bit wisem 2015-wieners-sitzung-09_Software-Entwicklung

666 Aufrufe

Veröffentlicht am

Bit wisem 2015-wieners-sitzung-09_Software-Entwicklung

Veröffentlicht in: Bildung
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Bit wisem 2015-wieners-sitzung-09_Software-Entwicklung

  1. 1. Universität zu Köln. Historisch-Kulturwissenschaftliche Informationsverarbeitung Dr. Jan G. Wieners // jan.wieners@uni-koeln.de Basisinformationstechnologie I Wintersemester 2015/16 07. Dezember 2015 – Software-Entwicklung: klassisch vs. agil
  2. 2. Phasen der Software-Entwicklung  Analyse  Spezifikation  Entwurf  Algorithmus  Pseudocode  Implementation  (Post-Implementation) Vorgehensmodelle  Wasserfallmodell  Prototypische Entwicklung  Iterative Entwicklung  Iterativ inkrementelle Entwicklung Agile Software-Entwicklung  Intention  Werkzeuge und Methoden  User Stories  User Story Mapping Themenüberblick „Software-Entwicklung: klassisch vs. agil“
  3. 3. Ergänzungen „Betriebssysteme“
  4. 4. Speicherverwaltung: Swapping  Problem: Externe Fragmentierung
  5. 5. Speicherverwaltung: Paging / Kachelverwaltung
  6. 6. MMU (Memory Management Unit) kümmert sich um die Übersetzung virtueller Speicheradressen auf den physikalischen Speicherbereich Paging: MMU Quelle: Tanenbaum: Moderne Betriebssysteme
  7. 7. Grundproblematik: Inkonsistenzen im Dateisystem Z.B. Systemabsturz  Inkonsistenz Journaling-Dateisysteme (ext3 / ext4): Änderungen werden vor der Speicherung in einem reservierten Speicherbereich („Journal“) aufgezeichnet. Ergänzungen „Betriebssysteme“: ext3 / ext4
  8. 8.  SSDs und (De)fragmentierung?
  9. 9. Neulich in den Sommerferien…
  10. 10. Analyse
  11. 11. „Regeln zur Leitung des Geistes" (1628):  Hohe Relevanz der Analysephase  Aufteilung in Teil- und Unterprobleme  Hierarchischer Erkenntnisprozess  Analyse der Analyse i.e. Sicherung der Analyse
  12. 12. Analyse  Spezifikation  Lasten- / Pflichtenheft
  13. 13. Entwurf
  14. 14. Systemarchitektur? Tools / Werkzeuge? www.thecodinglove.com
  15. 15. Entwurf: Mockups
  16. 16. Entwurf: Algorithmus Eindeutige Beschreibung eines endlichen Verfahrens zur Lösung einer bestimmten Klasse von Problemen
  17. 17. „Algorithmus“, formal: Eine Berechnungsvorschrift zur Lösung eines Problems heißt genau dann Algorithmus, wenn eine zu dieser Berechnungsvorschrift äquivalente Turingmaschine existiert, die für jede Eingabe, die eine Lösung besitzt, stoppt.
  18. 18. TheSimpleMaths: https://www.youtube.com/watch?v=QR8ffLPtomM
  19. 19.  Finitheit: Das Verfahren muss in einem endlichen Text eindeutig beschreibbar sein.  Ausführbarkeit: Jeder Schritt des Verfahrens muss tatsächlich ausführbar sein.  Platzkomplexität: Das Verfahren darf zu jedem Zeitpunkt nur endlich viel Speicherplatz benötigen.  Zeitkomplexität und Terminierung: Das Verfahren darf nur endlich viele Schritte benötigen. Algorithmus + Turingmaschine
  20. 20. Finden Sie einen Weg aus dem Labyrinth
  21. 21. Entwerfen Sie ein Verfahren, das Sie aus jedem Labyrinth (mit Ausgang) führt
  22. 22. Pledge-Algorithmus:  Prämisse: Wir gehen davon aus, dass alle Ecken rechtwinklig sind  Somit kommen nur Rechtsdrehungen und Linksdrehungen um jeweils 90 Grad vor  Wir verwalten unterwegs einen Umdrehungszähler, der:  bei jeder Linksdrehung um eins erhöht und  bei jeder Rechtsdrehung um eins verringert wird (auch bei der ersten Rechtsdrehung, die nach dem Auftreffen auf eine Wand ausgeführt wird).  Zu Beginn wird dieser Umdrehungszähler auf null gesetzt  Anschließend werden die beiden Anweisungen  geradeaus, bis Wand erreicht  Folge der Wand, bis Umdrehungszähler = 0 solange wiederholt, bis wir ins Freie gelangen Programmentwicklung: Entwurfsphase
  23. 23. Pseudocode Pledge-Algorithmus: Setze Umdrehungszähler auf 0; Wiederhole  Wiederhole  Gehe geradeaus;  Solange Wand erreicht;  Drehe nach rechts;  Wiederhole  Folge dem Hindernis;  Solange Umdrehungszähler=0; Solange ins Helle gelangt;  Entwurf unabhängig von der Programmiersprache!
  24. 24. Implementation Programmerstellung und Programmiersprachen
  25. 25. Programmiersprachen
  26. 26. Strukturierte Computerorganisation Problemorientierte Sprache Assemblersprache Betriebssystemmaschine Befehlssatzarchitektur (ISA) Mikroarchitektur Digitale Logik Ebene 5 Ebene 4 Ebene 3 Ebene 2 Ebene 1 Ebene 0
  27. 27. Vorgehensmodelle
  28. 28. Anforderungsanalyse Grobdesign Feindesign Implementierung Test und Integration Wasserfallmodell
  29. 29. Anforderungsanalyse Grobdesign Feindesign Implementierung Test und Integration Prototypische Entwicklung Anforderungsanalyse Grobdesign Feindesign Implementierung Test und Integration Prototyp
  30. 30. Iterative Entwicklung Anforderungsanalyse Grobdesign Feindesign Implementierung Test und Integration
  31. 31. Iterativ Inkrementelle Entwicklung (State of the Art)
  32. 32. Manifest für Agile Software-Entwicklung  2001 veröffentlicht von 17 renommierten Entwicklern [http://agilemanifesto.org/iso/de] Intention / Grundpfeiler:  Individuen und Interaktionen haben Vorrang vor Prozessen und Werkzeugen  Funktionsfähige Produkte haben Vorrang vor ausgedehnter Dokumentation  Zusammenarbeit mit dem Kunden hat Vorrang vor Vertragsverhandlungen  Das Eingehen auf Änderungen hat Vorrang vor strikter Planverfolgung.
  33. 33.  Arbeit in Sprints  Feedback maximieren durch zeitnahe Software- Inkremente  Testgetriebene Entwicklung  Refaktorisierung  Codereviews  Pair Programming  User Stories / User Story Mapping  … Agile Entwicklung, so funktioniert‘s
  34. 34. "Als <Rolle> möchte ich <Ziel/Wunsch>, um <Nutzen>"
  35. 35. [https://www.holisticon.de/2013/06/user-story-cards-aufs-wesentliche-reduziert/]
  36. 36. Product Backlog mit priorisierten Aufgaben Quelle: Jeff Patton, http://agileproductdesign.com/presentations/user_story_mapping/index.html
  37. 37. Unter jeder Aktivität / jedem Feature: Entsprechende User Stories Quelle: Jeff Patton, http://agileproductdesign.com/presentations/user_story_mapping/index.html
  38. 38. Ein Wanderer kommt an eine Weggabelung. Er weiß, dass der eine Weg ins Dorf führt, der andere jedoch in einen Sumpf - und da will er nicht hin. An der Gabelung steht ein Haus, und in dem Haus wohnen zwei Zwillinge, die man nicht unterscheiden kann - sie kennen den Weg. Einer der Zwillinge lügt immer, der andere nie. Wenn der Wanderer anklopft, wird einer der Zwillinge an die Tür kommen, aber welcher es ist, das weiß der Wanderer nicht. Der Wanderer kann genau eine Frage stellen, um den Weg herauszufinden. Welche Frage muss er stellen?
  39. 39. /

×