SE Besprechung. Übung 1 Programmverständnis, Dokumentation

Ähnliche Dokumente
SOFTWARE ENGINEERING BESPRECHUNG ÜBUNG1. Programmverständnis, Dokumentation

Software Engineering Übung 1 Programmverständnis, Dokumentation

Besprechung. Übung 1 Software Engineering

Algorithmen und Datenstrukturen 06

Tafelübung 07 Algorithmen und Datenstrukturen

Besprechung. Übung 1 Software Engineering

IT I: Heute. abstrakte Methoden und Klassen. Interfaces. Interfaces List, Set und Collection IT I - VO 7 1

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

Begriffe 1 (Wiederholung)

Einführung in die Programmiersprache Java II

Algorithmen und Datenstrukturen 07

7. Objektorientierung. Informatik II für Verkehrsingenieure

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

AuD-Tafelübung T-B5b

Einführung in die Programmiersprache Java II

Programmieren in Java

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik

Angewandte Mathematik in OOP WS 2011/12. Abschluss-Test

Objektorientierte Programmierung Studiengang Medieninformatik

6. Globalübung (zu Übungsblatt 8)

n 1. Grundzüge der Objektorientierung n 2. Methoden, Unterprogramme und Parameter n 3. Datenabstraktion n 4. Konstruktoren n 5. Vordefinierte Klassen

Objektorientierte Programmierung Studiengang Medieninformatik

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Herzlich willkommen!

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke

Programmieren in Java

15 Unified Modeling Language (UML) 7 UML und Java Informatik 2 (SS 07) 595

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

Informatik II Übung 6

Objektorientierte Modellierung (1)

Abschnitt 15: Unified Modeling Language (UML)

SOFTWARE ENGINEERING BESPRECHUNG ÜBUNG2. Anforderungsspezifikation und GWT Tutorien

Javakurs für Anfänger

Programmierung Nachklausurtutorium

Teil 2: Weitere Aspekte der Objektorientierung

Algorithmen und Datenstrukturen 07

UML -Klassendiagramme

1 Klassen anlegen und Objekte erzeugen

1 Klassen anlegen und Objekte erzeugen

Vorlesung Programmieren

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny

Einführung in die Informatik

Universität zu Lübeck Institut für Telematik. Prof. Dr. Stefan Fischer

Vorkurs Informatik WiSe 15/16

Probeklausur: Programmierung WS04/05

Objektorientierte Analyse (OOA) Strukturmodellierung

Wiederholung. Klassenhierarchie:

Vorlesung Programmieren. Bisher: Klassen und Objekte. Was ist mit ähnlichen Klassen? Vererbung und Polymorphismus

Info B VL 11: Innere Klassen/Collections

Universität Karlsruhe (TH)

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen

Methoden und Wrapperklassen

Einstieg in die Informatik mit Java

Übersicht. Vorstellung des OO-Paradigmas

Java Einführung Klassendefinitionen

C++ Teil 12. Sven Groß. 18. Jan Sven Groß (IGPM, RWTH Aachen) C++ Teil Jan / 11

Am Anfang werden die Attribute deklariert public class Kreis {

14. Java Objektorientierung

14. Java Objektorientierung. Klassen, Vererbung, Kapselung

Klassen können bekanntlich aus zwei Komponententypen bestehen, nämlich Attributen und Methoden.

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

Kapitel 2: OO Grundlagen

3 Objektorientierte Konzepte in Java

Javakurs für Anfänger

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen

Vererbung P rogram m ieren 2 F örster/r iedham m er K apitel 11: V ererbung 1

Heute. Nachbetrachtung Wissensüberprüfung. Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12.

Theorie zu Übung 8 Implementierung in Java

Grundelemente objektorientierter Sprachen (1)

1 Klassen und Objekte

Software Engineering Klassendiagramme Einführung

Klassen und ihre Beziehungen III: Mehrfache Vererbung, Rollen, Schnittstellen und Pakete

Objektorientierung. Marc Satkowski 20. November C# Kurs

Programmieren in Java

Einstieg in die Informatik mit Java

Prof. Dr. Wolfgang Schramm. Vorlesung. Techniken der Programmentwicklung. Exkurs: Anonyme Klassen

Vererbung und Polymorphie

II.4.2 Abstrakte Klassen und Interfaces - 1 -

Programmieren I + II Regeln der Code-Formatierung

Javakurs für Anfänger

Vererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus

Übung 1: Object Inspector

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0

12. Java Klassen. Klassen - Technisch. Beispiel: Erdbebendaten. Klassen - Konzeptuell

Programmieren I + II Regeln der Code-Formatierung

Software Engineering, SoSe 07, WSI, D. Huson, May 7,

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Klausur Grundlagen der Programmierung

Programmiermethodik 1. Klausur

Ein einfaches Adventure-Game für die Stufe EF, entwickelt von U. Helmich, inspiriert durch viele bekannte Spiele.

OOSE 01 JAVA MIT BLUEJ UND UML-BY-EXAMPLE

Objektorientierte Programmierung

14. Java Objektorientierung

EINFÜHRUNG IN DIE PROGRAMMIERUNG

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik

Info B VL 8: Abstrakte Klassen & Interfaces

Transkript:

SE Besprechung Übung 1 Programmverständnis, Dokumentation SE, 11.10.11 Mengia Zollinger

Teaching Assistant Mengia Zollinger <mengia.zollinger@uzh.ch> 7. Semester Wirtschaftsinformatik Fasttrack bei A. Bernstein 11.10.2011 Besprechung SE Übung 1 2

Abgabe Erlaubte Datentypen: Dokument als PDF, Source Code als.java keine Bilder Beschriftung: Einteilung: Abgabe an: Namen der Gruppenmitglieder in Kopfzeile 3er Gruppen, keine Einzelarbeiten Nicolas Hoby <nhoby@access.uzh.ch> und Irina Todoran <todoran@ifi.uzh.ch> 11.10.2011 Besprechung SE Übung 1 3

Übung 1 Aufgabe 1: Allgemeine Informationen Aufgabe 2: Einführung und Installationsanleitung der JGAP Bibliothek 11.10.2011 Besprechung SE Übung 1 4

Aufgabe 3.1 Struktur Ziel: Gesamtüberblick über Quellcode gewinnen UML Klassendiagramm auffrischen Aufgabe: Klassendiagramm modellieren Alle Klassenvariabeln & mind. 5 Methoden modellieren Konstruktoren & Setter/Getter nicht modellieren 11.10.2011 Besprechung SE Übung 1 5

Kritik: Nur die angegebenen Klassen modellieren Alle Klassen auf eine A4 Seite Nicht von Hand zeichnen, z.b. mit Visio, UMLet, etc. Attribute, Methoden & Verbindungen vergessen Methoden in der falschen Klasse modelliert (Interface) 11.10.2011 Besprechung SE Übung 1 6

Kritik: <<Stereotyp>> Klassenname {Eigenschaftswert} + Attributname: Attributtyp + Methodenname(Parameter:Typ):Eigenschaft 11.10.2011 Besprechung SE Übung 1 7

+ public, - private, # protected, (~ package) Package Name weglassen <<Interface>> IChromosome - FITNESS_VALUE: String - S_ALLELES: String - S_APPLICATION_DATA: String - S_SIZE: String + cleanup() + size(): int + getgenes(): Gene[] + getgene(a_desiredlocus: int): Gene Primitive Datentypen klein: int, double Klassen gross: String Array: square braces [ ] Static: existiert nur einmal, unterstrichen Final: unveränderbar, Grossbuchstaben Operation: visibility name (Parameter): Typ Parameter: Name: Typ 11.10.2011 Besprechung SE Übung 1 8

Initialwert weglassen! Population +CHROM_DELIMITER:String +CHROM_DELIMITER_HEADING:String -m_fittestchromosome:ichromosome -m_changed:boolean Population +CHROM_DELIMITER:String = ~ +CHROM_DELIMITER_HEADING:String ={ -m_fittestchromosome:ichromosome -m_changed:boolean 11.10.2011 Besprechung SE Übung 1 9

BaseChromosome Vererbung: Oberklasse ist eine Generalisierung der Unterklasse Is-a Beziehung Chromosome Pfeile nicht beschriften (ausser mit Zahlen) 11.10.2011 Besprechung SE Übung 1 10

Realisierung: Beziehung zu einer Schnittstelle BaseChromosome <<Interface>>IChromosome 11.10.2011 Besprechung SE Übung 1 11

Realisierung: Implementierte Methoden eines Interfaces werden nur im Interface modelliert BaseChromosome <<Interface>>IChromosome +getbusinesskey():string # encode(a_string:string):string +size() +increaseage() +resetoperatedon() +operatedon():int 11.10.2011 Besprechung SE Übung 1 12

Person Instanzbeziehung: Object is instance of Class Fritzli 11.10.2011 Besprechung SE Übung 1 13

Komposition: Teil kann nur existieren wenn Ganzes auch existiert BaseChromosome <<Interface>>IChromosome 1..* 1...* 11.10.2011 Besprechung SE Übung 1 14

Aggregation: Teil kann existieren auch wenn Ganzes nicht existiert Vorlesung Student 0..* 3...* 11.10.2011 Besprechung SE Übung 1 15

Aufgabe 3.2 Anwendungsbereich Ziel: Überblick über einzelnen Anwendungsbereich gewinnen Aufgabe: Art von Genen identifizieren Klassennamen & Datentypen eruieren Supergenes, abstrakte Klassen & Interfaces ignorieren 11.10.2011 Besprechung SE Übung 1 16

Kritik: Nicht alle Klassen aufgezählt Nur Klassenname & Datentypen gefragt 11.10.2011 Besprechung SE Übung 1 17

Klassenname BaseGeneImpl BooleanGene CompositeGene Datentyp Object Boolean Depends on subgenes FixedBinaryGene Numbers, only 0 and 1 MapGene MathGene MyIntegerGene Map of alleles Mathematical operators Integer 11.10.2011 Besprechung SE Übung 1 18

DoubleGene IntegerGene MultipleIntegerGene SetGene StringGene Double Integer Integer with restrictions Set of alleles String 11.10.2011 Besprechung SE Übung 1 19

CompositeGene ist kein eigener Datentyp, sondern besteht aus mehreren Subgenen Unterstützt mehrere Datentypen 11.10.2011 Besprechung SE Übung 1 20

Aufgabe 3.3 Verhalten Ziel: Teilablauf der künstlichen Evolution nachvollziehen können Verhalten der Methode evolve() der Klasse GABreeder verstehen UML Sequenzdiagramm auffrischen Aufgabe: Obersten 24 Zeilen der Methode evolve() modellieren 11.10.2011 Besprechung SE Übung 1 21

Kritik: Auf die Darstellung achten: unschön schön 11.10.2011 Besprechung SE Übung 1 22

Aktivierungsbereiche nicht eingezeichnet falsch richtig 11.10.2011 Besprechung SE Übung 1 23

Aktivierungsbereich nur, wo Klasse effektiv aktiv ist 11.10.2011 Besprechung SE Übung 1 24

<create> nur, wenn Objekt neu erstellt wird (new Operator), nicht wenn es zum ersten Mal benutzt wird Nur Methodenaufrufe darstellen, keine Variablenzuweisungen 11.10.2011 Besprechung SE Übung 1 25

11.10.2011 Besprechung SE Übung 1 26

Aufgabe 4 Verbessern des Codes Aufgabe 4.1 Dokumentation Ziel: Javadoc Kommentare erarbeiten Aufgabe: 3 Methoden dokumentieren (Javadoc Kommentar & innerhalb) 11.10.2011 Besprechung SE Übung 1 27

Aufgabe 4 Verbessern des Codes Bewertung Je 0.5 Punkte für Methodenkommentare (3) Je 0.25 Punkte für Kommentare im Code (6) 1 Bonuspunkt für allgemeinen Eindruck Kritik: Nicht alle Kommentare ausgefüllt Nicht Code nacherzählen, sondern erklären warum etwas geschieht 11.10.2011 Besprechung SE Übung 1 28

Aufgabe 4 Verbessern des Codes Schlechtes Beispiel: Gutes Beispiel: 11.10.2011 Besprechung SE Übung 1 29

Aufgabe 4 Verbessern des Codes Aufgabe 4.2 Verbesserung des Codes Ziel: Code analysieren Verbesserungsvorschläge ausarbeiten Aufgabe: Analyse der Methode checkminfitness() Stichworte zur Verbesserung der Methode notieren 11.10.2011 Besprechung SE Übung 1 30

Aufgabe 4 Verbessern des Codes Auswahl an Schwachstellen: Methodenname checkminfitness(): Methode checkt nicht nur, sie verändert auch den Zustand des Systems Feedback fehlt: Methode gibt keine Auskunft darüber, ob und was gemacht wurde Kommentare: erzählen den Code (..is doubled), anstatt ihn zu erklären Methodenkommentare erwähnen Variablen, ohne dass User darauf Zugriff hat 11.10.2011 Besprechung SE Übung 1 31

Aufgabe 4 Verbessern des Codes Bewertung: 0.5 Punkte pro gültigem Punkt, max. 2 Punkte Kritik: private static int MAX_ALLOWED_EVOLUTIONS Ist keine Konstante, auch wenn sie wie eine aussieht (nicht final) Der Fehler ist nicht, dass im Code eine Konstante verändert wird (was nicht geht), sondern dass eine Nicht-Konstante wie eine Konstante deklariert wird 11.10.2011 Besprechung SE Übung 1 32

Übung 1 Resultate 11.10.2011 Besprechung SE Übung 1 33

Allgemeines Fragen/Feedback zu Übung 1? Fragen zur Gruppeneinteilung? 02.11.2010 Besprechung SE Übung 2 34