Übung 1 software engineering - uzh · software engineering se, 19.10.10 dustin wüest . 10/19/10...
TRANSCRIPT
![Page 1: Übung 1 Software Engineering - UZH · Software Engineering SE, 19.10.10 Dustin Wüest . 10/19/10 Besprechung SE Übung 1 2 Übungsabgaben ... • Um Software besser zu verstehen](https://reader035.vdocuments.site/reader035/viewer/2022081402/605a51380197d825ad5e371e/html5/thumbnails/1.jpg)
Besprechung
Übung 1 Software Engineering
Dustin Wüest SE, 19.10.10
![Page 2: Übung 1 Software Engineering - UZH · Software Engineering SE, 19.10.10 Dustin Wüest . 10/19/10 Besprechung SE Übung 1 2 Übungsabgaben ... • Um Software besser zu verstehen](https://reader035.vdocuments.site/reader035/viewer/2022081402/605a51380197d825ad5e371e/html5/thumbnails/2.jpg)
10/19/10 Besprechung SE Übung 1 2
Übungsabgaben
• Im PDF: vollständige Namen und Matrikelnummern
• Name vom Zip-File / PDF: Übungsnummer und Nachnamen
z.B.: Ex1_Wueest_Schoen_Mueller
(keine Umlaute / Sonderzeichen)
• E-Mail Betreff: [SE EX HS10] ...
• Bei Abgabe kontrollieren, ob pdf / zip vollständig ist
• Ausschliesslich 3er Gruppen
• Übungsabgaben auf Deutsch oder Englisch
![Page 3: Übung 1 Software Engineering - UZH · Software Engineering SE, 19.10.10 Dustin Wüest . 10/19/10 Besprechung SE Übung 1 2 Übungsabgaben ... • Um Software besser zu verstehen](https://reader035.vdocuments.site/reader035/viewer/2022081402/605a51380197d825ad5e371e/html5/thumbnails/3.jpg)
10/19/10 Besprechung SE Übung 1 3
Aufgabe 3.1 – UML Klassendiagramm • Um Software besser zu verstehen / Überblick
Konstruktoren, Getters/Setters, Impl. Abstrakter Methoden weglassen
Abstraktion und Layout
Layout Beispiel
![Page 4: Übung 1 Software Engineering - UZH · Software Engineering SE, 19.10.10 Dustin Wüest . 10/19/10 Besprechung SE Übung 1 2 Übungsabgaben ... • Um Software besser zu verstehen](https://reader035.vdocuments.site/reader035/viewer/2022081402/605a51380197d825ad5e371e/html5/thumbnails/4.jpg)
10/19/10 Besprechung SE Übung 1 4
Aufgabe 3.1 – UML Klassendiagramm
• Vererbung
(ohne Kardinalitäten)
• Assoziation
• Gerichtete Assoziation
• Aggregation
Komposition 0..1
0..*
1
0..*
0..* 0..*
0..*
Abstrakte Klasse
Interface
Bla bla
Bla bla
Bla bla
![Page 5: Übung 1 Software Engineering - UZH · Software Engineering SE, 19.10.10 Dustin Wüest . 10/19/10 Besprechung SE Übung 1 2 Übungsabgaben ... • Um Software besser zu verstehen](https://reader035.vdocuments.site/reader035/viewer/2022081402/605a51380197d825ad5e371e/html5/thumbnails/5.jpg)
10/19/10 Besprechung SE Übung 1 5
Aufgabe 3.1 – UML Klassendiagramm
Vererbte Methoden müssen nicht mehr aufgelistet werden. Assoziationen
nicht vergessen.
![Page 6: Übung 1 Software Engineering - UZH · Software Engineering SE, 19.10.10 Dustin Wüest . 10/19/10 Besprechung SE Übung 1 2 Übungsabgaben ... • Um Software besser zu verstehen](https://reader035.vdocuments.site/reader035/viewer/2022081402/605a51380197d825ad5e371e/html5/thumbnails/6.jpg)
10/19/10 Besprechung SE Übung 1 6
Aufgabe 3.2 – Arten von Strichcodes
• MultipleFormatWriter – Ist kein echter Writer
– Wählt den korrekten Writer aus
![Page 7: Übung 1 Software Engineering - UZH · Software Engineering SE, 19.10.10 Dustin Wüest . 10/19/10 Besprechung SE Übung 1 2 Übungsabgaben ... • Um Software besser zu verstehen](https://reader035.vdocuments.site/reader035/viewer/2022081402/605a51380197d825ad5e371e/html5/thumbnails/7.jpg)
10/19/10 Besprechung SE Übung 1 7
Aufgabe 3.3 – UML Sequenzdiagramm
• Aktivierungsbalken (bei laufenden Methode) • Konstruktoraufruf
• Alternativen
Klasse1 Klasse2
callA()
callB()
![Page 8: Übung 1 Software Engineering - UZH · Software Engineering SE, 19.10.10 Dustin Wüest . 10/19/10 Besprechung SE Übung 1 2 Übungsabgaben ... • Um Software besser zu verstehen](https://reader035.vdocuments.site/reader035/viewer/2022081402/605a51380197d825ad5e371e/html5/thumbnails/8.jpg)
10/19/10 Besprechung SE Übung 1 8
Aufgabe 3.3 – UML Sequenzdiagramm
• Aktivierungsbalken (bei laufenden Methode) • Konstruktoraufruf
• Alternativen
Klasse1
Klasse2
callA()
Klasse1
Klasse2
callA()
<<create>>
![Page 9: Übung 1 Software Engineering - UZH · Software Engineering SE, 19.10.10 Dustin Wüest . 10/19/10 Besprechung SE Übung 1 2 Übungsabgaben ... • Um Software besser zu verstehen](https://reader035.vdocuments.site/reader035/viewer/2022081402/605a51380197d825ad5e371e/html5/thumbnails/9.jpg)
10/19/10 Besprechung SE Übung 1 9
Aufgabe 3.3 – UML Sequenzdiagramm
• Aktivierungsbalken (bei laufenden Methode) • Konstruktoraufruf
• Alternativen QRCodeReader
Detector
detect(hints)
decode(img)
result
alt [!hints]
[else]
decode(b,h)
![Page 10: Übung 1 Software Engineering - UZH · Software Engineering SE, 19.10.10 Dustin Wüest . 10/19/10 Besprechung SE Übung 1 2 Übungsabgaben ... • Um Software besser zu verstehen](https://reader035.vdocuments.site/reader035/viewer/2022081402/605a51380197d825ad5e371e/html5/thumbnails/10.jpg)
10/19/10 Besprechung SE Übung 1 10
Aufgabe 3.3 – UML Sequenzdiagramm
… (Keine offizielle Notation)
![Page 11: Übung 1 Software Engineering - UZH · Software Engineering SE, 19.10.10 Dustin Wüest . 10/19/10 Besprechung SE Übung 1 2 Übungsabgaben ... • Um Software besser zu verstehen](https://reader035.vdocuments.site/reader035/viewer/2022081402/605a51380197d825ad5e371e/html5/thumbnails/11.jpg)
10/19/10 Besprechung SE Übung 1 11
Aufgabe 4.1 – Dokumentation
• Prüfziffer-Berechnung – Von rechts beginnen, jede zweite Nummer addieren
– Ergebnis * 3
– Von rechts, ab dritter Nummer beginnen, jede zweite Nummer addieren
– Ergebnis modulo 10 rechnen, und dies von 10 subtrahieren
![Page 12: Übung 1 Software Engineering - UZH · Software Engineering SE, 19.10.10 Dustin Wüest . 10/19/10 Besprechung SE Übung 1 2 Übungsabgaben ... • Um Software besser zu verstehen](https://reader035.vdocuments.site/reader035/viewer/2022081402/605a51380197d825ad5e371e/html5/thumbnails/12.jpg)
10/19/10 Besprechung SE Übung 1 12
• Code kommentieren: JavaDoc /** ... */
normaler Kommentar /* ... */ oder //
Aufgabe 4.1 – Dokumentation
![Page 13: Übung 1 Software Engineering - UZH · Software Engineering SE, 19.10.10 Dustin Wüest . 10/19/10 Besprechung SE Übung 1 2 Übungsabgaben ... • Um Software besser zu verstehen](https://reader035.vdocuments.site/reader035/viewer/2022081402/605a51380197d825ad5e371e/html5/thumbnails/13.jpg)
10/19/10 Besprechung SE Übung 1 13
Aufgabe 4.1 – Dokumentation
• JavaDoc: Blackbox was macht die Klasse / die Methode (und nicht wie)
• JavaDoc Kopfkommentare von Methoden / Klassen: weder wann noch von wem eine Methode / eine Klasse aufgerufen wird
• Java Style Guide PDF (Kapitel 5)
– Obligatorische Tags (author, history, version, responsibilities für Klassen und pre, post, param, return für Methoden)
![Page 14: Übung 1 Software Engineering - UZH · Software Engineering SE, 19.10.10 Dustin Wüest . 10/19/10 Besprechung SE Übung 1 2 Übungsabgaben ... • Um Software besser zu verstehen](https://reader035.vdocuments.site/reader035/viewer/2022081402/605a51380197d825ad5e371e/html5/thumbnails/14.jpg)
10/19/10 Besprechung SE Übung 1 14
Aufgabe 4.1 – Dokumentation
• Klassenkommentare und Attribute
![Page 15: Übung 1 Software Engineering - UZH · Software Engineering SE, 19.10.10 Dustin Wüest . 10/19/10 Besprechung SE Übung 1 2 Übungsabgaben ... • Um Software besser zu verstehen](https://reader035.vdocuments.site/reader035/viewer/2022081402/605a51380197d825ad5e371e/html5/thumbnails/15.jpg)
10/19/10 Besprechung SE Übung 1 15
Aufgabe 4.1 – Dokumentation
• Methodenkommentare
![Page 16: Übung 1 Software Engineering - UZH · Software Engineering SE, 19.10.10 Dustin Wüest . 10/19/10 Besprechung SE Übung 1 2 Übungsabgaben ... • Um Software besser zu verstehen](https://reader035.vdocuments.site/reader035/viewer/2022081402/605a51380197d825ad5e371e/html5/thumbnails/16.jpg)
10/19/10 Besprechung SE Übung 1 16
Aufgabe 4.1 – Dokumentation
• @pre: was muss erfüllt sein, damit die Methode korrekt ausgeführt wird (ohne Exception)
• @post: Zustandszusicherung (ein Zustand, welcher sicher zutrifft, nachdem die Methode beendet ist)
• Manchmal ist @pre und @post auch leer: @pre -, @post -
• Z.B. für checkStandardUPCEANChecksum(String s):
![Page 17: Übung 1 Software Engineering - UZH · Software Engineering SE, 19.10.10 Dustin Wüest . 10/19/10 Besprechung SE Übung 1 2 Übungsabgaben ... • Um Software besser zu verstehen](https://reader035.vdocuments.site/reader035/viewer/2022081402/605a51380197d825ad5e371e/html5/thumbnails/17.jpg)
10/19/10 Besprechung SE Übung 1 17
Aufgabe 4.1 – Dokumentation
• @pre: was muss erfüllt sein, damit die Methode korrekt ausgeführt wird (ohne Exception)
• @post: Zustandszusicherung (ein Zustand, welcher sicher zutrifft, nachdem die Methode beendet ist)
• Manchmal ist @pre und @post auch leer: @pre -, @post -
• Z.B. für checkStandardUPCEANChecksum(String s):
![Page 18: Übung 1 Software Engineering - UZH · Software Engineering SE, 19.10.10 Dustin Wüest . 10/19/10 Besprechung SE Übung 1 2 Übungsabgaben ... • Um Software besser zu verstehen](https://reader035.vdocuments.site/reader035/viewer/2022081402/605a51380197d825ad5e371e/html5/thumbnails/18.jpg)
10/19/10 Besprechung SE Übung 1 18
Aufgabe 4.1 – Dokumentation
• Beispiel für @pre und @post: Pop()-Methode entfernt das oberste Element in einem Stack
![Page 19: Übung 1 Software Engineering - UZH · Software Engineering SE, 19.10.10 Dustin Wüest . 10/19/10 Besprechung SE Übung 1 2 Übungsabgaben ... • Um Software besser zu verstehen](https://reader035.vdocuments.site/reader035/viewer/2022081402/605a51380197d825ad5e371e/html5/thumbnails/19.jpg)
10/19/10 Besprechung SE Übung 1 19
Aufgabe 4.1 – Dokumentation
• Oft vergessen: Auch Kommentar innerhalb der Methode ist Methodenkommentar!
• Aber: wenn der Kommentar bloss das sagt, was schon offensichtlich ist, dann besser weglassen
//checks if the length of the string is bigger than zero
If( string.length() > 0 )
![Page 20: Übung 1 Software Engineering - UZH · Software Engineering SE, 19.10.10 Dustin Wüest . 10/19/10 Besprechung SE Übung 1 2 Übungsabgaben ... • Um Software besser zu verstehen](https://reader035.vdocuments.site/reader035/viewer/2022081402/605a51380197d825ad5e371e/html5/thumbnails/20.jpg)
10/19/10 Besprechung SE Übung 1 20
Aufgabe 4.2 – Erweitern des Codes
• rotateImage if (image.width < image.height) – Ungültige Annahme, dass alle Bilder dieses Kriterium erfüllen
Systematisches Programmieren – Kommentare zum Code
– Einheitliche / “schöne” Formatierung des Codes
– Sinnvolle Namen für Variablen, Methoden etc.
Verständlichkeit (in der Korrektur etwas unpassend “Simplicity”)
![Page 21: Übung 1 Software Engineering - UZH · Software Engineering SE, 19.10.10 Dustin Wüest . 10/19/10 Besprechung SE Übung 1 2 Übungsabgaben ... • Um Software besser zu verstehen](https://reader035.vdocuments.site/reader035/viewer/2022081402/605a51380197d825ad5e371e/html5/thumbnails/21.jpg)
10/19/10 Besprechung SE Übung 1 21
Aufgabe 4.2 – Erweitern des Codes
Mögliche Lösung:
(Codes auf dem Kopf werden bereits richtig erkannt)
![Page 22: Übung 1 Software Engineering - UZH · Software Engineering SE, 19.10.10 Dustin Wüest . 10/19/10 Besprechung SE Übung 1 2 Übungsabgaben ... • Um Software besser zu verstehen](https://reader035.vdocuments.site/reader035/viewer/2022081402/605a51380197d825ad5e371e/html5/thumbnails/22.jpg)
10/19/10 Besprechung SE Übung 1 22
Aufgabe 4.2 – Erweitern des Codes
Klammer- positionen Einrückungen
Neue Zeile?
(Separate Zeile für Zuweisung)
Kommentare fehlen
![Page 23: Übung 1 Software Engineering - UZH · Software Engineering SE, 19.10.10 Dustin Wüest . 10/19/10 Besprechung SE Übung 1 2 Übungsabgaben ... • Um Software besser zu verstehen](https://reader035.vdocuments.site/reader035/viewer/2022081402/605a51380197d825ad5e371e/html5/thumbnails/23.jpg)
10/19/10 Besprechung SE Übung 1 23
Die nächsten Übungsstunden beginnen gemäss Abstimmung jeweils gleich nach der Vorlesung um 11:45 Uhr
Allgemeines