Tutorium Softwaretechnik I

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

Softwaretechnologie -Wintersemester 2013/ Dr. Günter Kniesel

Klassendiagramm. (class diagram)

Softwaretechnologie Wintersemester 2009/2010 Dr. Günter Kniesel, Pascal Bihler

Softwaretechnologie -Wintersemester 2011/ Dr. Günter Kniesel

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick

Große Übung Praktische Informatik 1

Selbststudium OOP4 Auftrag

Lösungsvorschlag für Übungsblatt 4 Software Engineering 1 (WS 2012/13)

Orientierte Modellierung mit der Unified Modeling Language

Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML)

Vorlesung Programmieren

Grundbegriffe der Informatik

Kapitel Abbildung von UML-Modellen auf Code

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

Empirische Softwaretechnik Kosten und Nutzen von UML in der Wartung Dr. Victor Pankratius Andreas Höfer Wintersemester 2009/2010

3. Tutorium zu Softwaretechnik I

Grundlagen der Softwaretechnik

Praktikum Software Engineering

Unified Modeling Language (UML)

RUP Analyse und Design: Überblick

PRÜFUNG. Grundlagen der Softwaretechnik

Software Engineering II

Geschäftsabläufe und Beziehungen zwischen. (Mitarbeitende / Geschäftsobjekte)

2. Tutorium zu Softwaretechnik I

Vorlesung Software-Engineering I

Innovator 11 classix. Java Reverse Engineering. HowTo. Ralph Schönleber.

UML mit Enterprise Architect

PRÜFUNG. Grundlagen der Softwaretechnik

Software Engineering Klassendiagramme Einführung

Softwareentwicklungspraktikum Sommersemester Feinentwurf

Selbstbestimmtes Lernen. Proinformatik III Objektorientierte Programmierung. Format. Inhalt. Buzzwords

SS Björn Berezowski B.Sc. Marco Münch B.Sc. Michael Roth B.Sc. Repetitorium PG 1. Übungsblatt. 1 Übung - Probeklausur SS 2010 Typ Prof.

Grundbegriffe der Objektorientierung

Softwaretechnik. Prof. Tomas Bures, PhD., Dipl. Inf. Lenz Belzner, Dipl. Inf. Christian Kroiß

Systemanalyse. - Seminar für AI/DM 3 im Wintersemester 2004/05 -

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0

5. Tutorium zu Programmieren

Nachklausur Programmieren / Algorithmen und Datenstrukturen 1

Grundbegriffe der Informatik

Software Engineering in der Praxis

Analyse und Modellierung von Informationssystemen

Together - Integrierte SWE und QA 1. Flugbuchungssystem

Einführung in die Informationsverarbeitung Teil Thaller. Stunde VII: Planen und Realisieren

Motivation. Motivation

Klassendiagramm. Kurzer Überblick über UML - Stand BlaBla

Projekt AGB-10 Fremdprojektanalyse

13. Tutorium zu Programmieren

Modellieren mit der Unified Modeling Language: Klassen- und Objektdiagramme. 11. November 2014

PSE: Analysesoftware für Logistiknetzwerke

Arbeiten mit UMLed und Delphi

MCRServlet Table of contents

Methoden zur Visualisierung von ereignisdiskreten Analysedaten

Java Einführung Methoden in Klassen

Programmieren in Java

Musterlösung Klausur Softwaretechnik

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000

Code-Erzeugung aus UML-Klassendiagrammen

SEQUENZDIAGRAMM. Christoph Süsens

Vorlesung "Software-Engineering"

Software Engineering Übung 4 Architektur, Modulentwurf

Programmieren Tutorium Wintersemester 2008/2009

3 Objektorientierte Konzepte in Java

Einführung in UML. Überblick. 1. Was ist UML??? 2. Diagrammtypen. 3. UML Software. Was ist ein Modell??? UML Geschichte,...

BABOK Knowledge Area Requirements Analysis Modeling Techniques - Process Models - - State Diagrams - Holger Dexel,

Klausur "OOAD" im SS Name, Vorname: Matrikel-Nr:

Software Engineering. Fakultät Elektrotechnik Bachelor-Studiengänge, 4. Semester Prof. Dr.-Ing. Dagmar Meyer

Inhalte der Veranstaltung

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden

Auktion name adresse pseudonym adresse /bewertungszahl. Gebot. höhe zeitpunkt bieter. initiiert

Informationsmanagement in Organisationen Überblick

Software Engineering in der Praxis

Übungen zur Softwaretechnik

Übung 4. Musterlösungen

Vererbung. Vererbung von Methoden und Instanzvariablen. Vererbung als Realisierung einer is-a Beziehung.

Javakurs 2013 Objektorientierung

2. Automatische Codegenerierung mittels dynamischer Spezialisierung

Klausur vom 14. Juni Informatik 4

14. Tutorium zu Programmieren

Verwaltung von Studienergebnissen

Einsatz von UML und C++ am Beispiel einer Satelliten-Lageregelungssoftware

Modellierung von Verhalten OOPM, Ralf Lämmel

Vgl. Oestereich Kap 2.7 Seiten

Softwaretechnik für den Entwurf

Lösungsvorschlag für Übungsblatt 6 Software Engineering 1 (WS 2012/13)

Programmieren Tutorium

PIWIN 1 Übung Blatt 5

4 Vererbung, Polymorphie

SS2010 BAI2-DBP Gruppe 1 Lösung zu Übungsblatt 3. R. C. Ladiges, D. Fast 29. April 2010

Javakurs für Anfänger

Softwaretechnik Unified Modeling Language (UML)

3. Konzepte der objektorientierten Programmierung

Workflows: Anforderungserhebung und analyse

Objektorientierte Programmierung

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9

Einführung in die Programmierung für NF

Klassen in Java. Klassen

Softwaretechnik. Fomuso Ekellem WS 2011/12

Algorithmen und Datenstrukturen 07

SWE5 Übungen zu Software-Engineering

Transkript:

Tutorium Softwaretechnik I Moritz Klammler 30. Mai 2017 Fakultät für Informatik, IPD Tichy Titelfoto: Copyright (C) 2010 Multimotyl CC BY-SA 3.0 1 30. Mai 2017 Moritz Klammler - Tutorium Softwaretechnik I Fakultät für Informatik, IPD Tichy KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu

Administrativa & Errata In Zukunft bei Mail-Abgaben bitte immer die Übungsleiter (swt1@ipd.kit.edu) auf Cc setzen. (Und damit rechnen, dass sie Eure Abgabe nicht akzeptieren werden.) 2 30. Mai 2017 Moritz Klammler - Tutorium Softwaretechnik I Fakultät für Informatik, IPD Tichy

Administrativa & Errata In Zukunft bei Mail-Abgaben bitte immer die Übungsleiter (swt1@ipd.kit.edu) auf Cc setzen. (Und damit rechnen, dass sie Eure Abgabe nicht akzeptieren werden.) Beim Klassendiagramm (in der Klausur) immer alle drei Kästen zeichnen (auch die leeren). 2 30. Mai 2017 Moritz Klammler - Tutorium Softwaretechnik I Fakultät für Informatik, IPD Tichy

Administrativa & Errata In Zukunft bei Mail-Abgaben bitte immer die Übungsleiter (swt1@ipd.kit.edu) auf Cc setzen. (Und damit rechnen, dass sie Eure Abgabe nicht akzeptieren werden.) Beim Klassendiagramm (in der Klausur) immer alle drei Kästen zeichnen (auch die leeren). Wie schreibe ich (in der Klausur) handschriftlich kursiv? AbstractWidget /AbstractWidget/ {abstract} AbstractWidget 2 30. Mai 2017 Moritz Klammler - Tutorium Softwaretechnik I Fakultät für Informatik, IPD Tichy

Themen des Tages Übungsblatt 1 Definitionsphase (analysis) UML-Diagramme Objektmodellierung 3 30. Mai 2017 Moritz Klammler - Tutorium Softwaretechnik I Fakultät für Informatik, IPD Tichy

Übungsblatt 1 Häufige Probleme Niemand hat das Parent-Projekt korrekt definiert. Maven-Cache is evil! Hint: ~/.m2/ 4 30. Mai 2017 Moritz Klammler - Tutorium Softwaretechnik I Fakultät für Informatik, IPD Tichy

Übungsblatt 1 Häufige Probleme Niemand hat das Parent-Projekt korrekt definiert. Maven-Cache is evil! Hint: ~/.m2/ Auf Ressourcen immer mittels ClassLoader zugreifen (am Besten via getresourceasstream). 4 30. Mai 2017 Moritz Klammler - Tutorium Softwaretechnik I Fakultät für Informatik, IPD Tichy

Übungsblatt 1 Häufige Probleme Niemand hat das Parent-Projekt korrekt definiert. Maven-Cache is evil! Hint: ~/.m2/ Auf Ressourcen immer mittels ClassLoader zugreifen (am Besten via getresourceasstream). Unit-Test-Framework ausnutzen. Nicht selbst Control-Flow implementieren. 4 30. Mai 2017 Moritz Klammler - Tutorium Softwaretechnik I Fakultät für Informatik, IPD Tichy

Übungsblatt 1 Häufige Probleme Niemand hat das Parent-Projekt korrekt definiert. Maven-Cache is evil! Hint: ~/.m2/ Auf Ressourcen immer mittels ClassLoader zugreifen (am Besten via getresourceasstream). Unit-Test-Framework ausnutzen. Nicht selbst Control-Flow implementieren. Exception-Handling: Bitte nur catchen, wenn man auch etwas Sinnvolles zur Fehlerbehandlung beitragen kann. Ansonsten eskalieren lassen. printstacktrace() ist in aller Regel keine sinnvolle Fehlerbehandlung. 4 30. Mai 2017 Moritz Klammler - Tutorium Softwaretechnik I Fakultät für Informatik, IPD Tichy

Übungsblatt 1 Häufige Probleme Niemand hat das Parent-Projekt korrekt definiert. Maven-Cache is evil! Hint: ~/.m2/ Auf Ressourcen immer mittels ClassLoader zugreifen (am Besten via getresourceasstream). Unit-Test-Framework ausnutzen. Nicht selbst Control-Flow implementieren. Exception-Handling: Bitte nur catchen, wenn man auch etwas Sinnvolles zur Fehlerbehandlung beitragen kann. Ansonsten eskalieren lassen. printstacktrace() ist in aller Regel keine sinnvolle Fehlerbehandlung. Instanzvariablen explizit mit null zu initialisieren ist unnötig. 4 30. Mai 2017 Moritz Klammler - Tutorium Softwaretechnik I Fakultät für Informatik, IPD Tichy

Übungsblatt 1 Häufige Probleme Niemand hat das Parent-Projekt korrekt definiert. Maven-Cache is evil! Hint: ~/.m2/ Auf Ressourcen immer mittels ClassLoader zugreifen (am Besten via getresourceasstream). Unit-Test-Framework ausnutzen. Nicht selbst Control-Flow implementieren. Exception-Handling: Bitte nur catchen, wenn man auch etwas Sinnvolles zur Fehlerbehandlung beitragen kann. Ansonsten eskalieren lassen. printstacktrace() ist in aller Regel keine sinnvolle Fehlerbehandlung. Instanzvariablen explizit mit null zu initialisieren ist unnötig. Wie verwende ich Branches in Git? 4 30. Mai 2017 Moritz Klammler - Tutorium Softwaretechnik I Fakultät für Informatik, IPD Tichy

Übungsblatt 1 Häufige Probleme Niemand hat das Parent-Projekt korrekt definiert. Maven-Cache is evil! Hint: ~/.m2/ Auf Ressourcen immer mittels ClassLoader zugreifen (am Besten via getresourceasstream). Unit-Test-Framework ausnutzen. Nicht selbst Control-Flow implementieren. Exception-Handling: Bitte nur catchen, wenn man auch etwas Sinnvolles zur Fehlerbehandlung beitragen kann. Ansonsten eskalieren lassen. printstacktrace() ist in aller Regel keine sinnvolle Fehlerbehandlung. Instanzvariablen explizit mit null zu initialisieren ist unnötig. Wie verwende ich Branches in Git? Wie erstelle und applye ich einen Patch? 4 30. Mai 2017 Moritz Klammler - Tutorium Softwaretechnik I Fakultät für Informatik, IPD Tichy

Übungsblatt 1 Häufige Probleme Niemand hat das Parent-Projekt korrekt definiert. Maven-Cache is evil! Hint: ~/.m2/ Auf Ressourcen immer mittels ClassLoader zugreifen (am Besten via getresourceasstream). Unit-Test-Framework ausnutzen. Nicht selbst Control-Flow implementieren. Exception-Handling: Bitte nur catchen, wenn man auch etwas Sinnvolles zur Fehlerbehandlung beitragen kann. Ansonsten eskalieren lassen. printstacktrace() ist in aller Regel keine sinnvolle Fehlerbehandlung. Instanzvariablen explizit mit null zu initialisieren ist unnötig. Wie verwende ich Branches in Git? Wie erstelle und applye ich einen Patch? Wie teste ich Identitäten intelligent? 4 30. Mai 2017 Moritz Klammler - Tutorium Softwaretechnik I Fakultät für Informatik, IPD Tichy

Übungsblatt 1 Häufige Probleme Niemand hat das Parent-Projekt korrekt definiert. Maven-Cache is evil! Hint: ~/.m2/ Auf Ressourcen immer mittels ClassLoader zugreifen (am Besten via getresourceasstream). Unit-Test-Framework ausnutzen. Nicht selbst Control-Flow implementieren. Exception-Handling: Bitte nur catchen, wenn man auch etwas Sinnvolles zur Fehlerbehandlung beitragen kann. Ansonsten eskalieren lassen. printstacktrace() ist in aller Regel keine sinnvolle Fehlerbehandlung. Instanzvariablen explizit mit null zu initialisieren ist unnötig. Wie verwende ich Branches in Git? Wie erstelle und applye ich einen Patch? Wie teste ich Identitäten intelligent? Wie teste ich undokumentierten Code sinnvoll? 4 30. Mai 2017 Moritz Klammler - Tutorium Softwaretechnik I Fakultät für Informatik, IPD Tichy

Das Lastenheft ist ein Artefakt der Definitionsphase.

Das Pflichtenheft kann UML-Diagramme enthalten.

Das Pflichtenheft kann UML-Diagramme enthalten.

Das Pflichtenheft kann UML-Diagramme enthalten. Von einer Klasse kann es Null oder mehr Instanzen geben.

Das Pflichtenheft kann UML-Diagramme enthalten. Von einer Klasse kann es Null oder mehr Instanzen geben.

Das Pflichtenheft kann UML-Diagramme enthalten. Von einer Klasse kann es Null oder mehr Instanzen geben. Die Instanzen einer Klasse unterscheiden sich nicht.

Das Pflichtenheft kann UML-Diagramme enthalten. Von einer Klasse kann es Null oder mehr Instanzen geben. Die Instanzen einer Klasse unterscheiden sich nicht.

Das Pflichtenheft kann UML-Diagramme enthalten. Von einer Klasse kann es Null oder mehr Instanzen geben. Die Instanzen einer Klasse unterscheiden sich nicht. Instanzen werden in der Vorlesung auch Exemplare genannt.

Das Pflichtenheft kann UML-Diagramme enthalten. Von einer Klasse kann es Null oder mehr Instanzen geben. Die Instanzen einer Klasse unterscheiden sich nicht. Instanzen werden in der Vorlesung auch Exemplare genannt.

Das Pflichtenheft kann UML-Diagramme enthalten. Von einer Klasse kann es Null oder mehr Instanzen geben. Die Instanzen einer Klasse unterscheiden sich nicht. Instanzen werden in der Vorlesung auch Exemplare genannt. Eine Klasse legt fest, welche Attribute ihre Instanzen haben.

Das Pflichtenheft kann UML-Diagramme enthalten. Von einer Klasse kann es Null oder mehr Instanzen geben. Die Instanzen einer Klasse unterscheiden sich nicht. Instanzen werden in der Vorlesung auch Exemplare genannt. Eine Klasse legt fest, welche Attribute ihre Instanzen haben.

Das Pflichtenheft kann UML-Diagramme enthalten. Von einer Klasse kann es Null oder mehr Instanzen geben. Die Instanzen einer Klasse unterscheiden sich nicht. Instanzen werden in der Vorlesung auch Exemplare genannt. Eine Klasse legt fest, welche Attribute ihre Instanzen haben. Wenn zwei Instanzen derselben Klasse in allen Attributen übereinstimmen, sind sie identisch.

Das Pflichtenheft kann UML-Diagramme enthalten. Von einer Klasse kann es Null oder mehr Instanzen geben. Die Instanzen einer Klasse unterscheiden sich nicht. Instanzen werden in der Vorlesung auch Exemplare genannt. Eine Klasse legt fest, welche Attribute ihre Instanzen haben. Wenn zwei Instanzen derselben Klasse in allen Attributen übereinstimmen, sind sie identisch.

Das Pflichtenheft kann UML-Diagramme enthalten. Von einer Klasse kann es Null oder mehr Instanzen geben. Die Instanzen einer Klasse unterscheiden sich nicht. Instanzen werden in der Vorlesung auch Exemplare genannt. Eine Klasse legt fest, welche Attribute ihre Instanzen haben. Wenn zwei Instanzen derselben Klasse in allen Attributen übereinstimmen, sind sie identisch. Der Zustand eines Objekts ist ein Element aus dem kartesischen Produkt der Wertebereiche seiner Attribute.

Das Pflichtenheft kann UML-Diagramme enthalten. Von einer Klasse kann es Null oder mehr Instanzen geben. Die Instanzen einer Klasse unterscheiden sich nicht. Instanzen werden in der Vorlesung auch Exemplare genannt. Eine Klasse legt fest, welche Attribute ihre Instanzen haben. Wenn zwei Instanzen derselben Klasse in allen Attributen übereinstimmen, sind sie identisch. Der Zustand eines Objekts ist ein Element aus dem kartesischen Produkt der Wertebereiche seiner Attribute.

Das Pflichtenheft kann UML-Diagramme enthalten. Von einer Klasse kann es Null oder mehr Instanzen geben. Die Instanzen einer Klasse unterscheiden sich nicht. Instanzen werden in der Vorlesung auch Exemplare genannt. Eine Klasse legt fest, welche Attribute ihre Instanzen haben. Wenn zwei Instanzen derselben Klasse in allen Attributen übereinstimmen, sind sie identisch. Der Zustand eines Objekts ist ein Element aus dem kartesischen Produkt der Wertebereiche seiner Attribute. Wenn sich zwei Objekte im selben Zustand befinden, sollte ihr nach außen sichtbares Verhalten nicht unterscheidbar sein.

Das Pflichtenheft kann UML-Diagramme enthalten. Von einer Klasse kann es Null oder mehr Instanzen geben. Die Instanzen einer Klasse unterscheiden sich nicht. Instanzen werden in der Vorlesung auch Exemplare genannt. Eine Klasse legt fest, welche Attribute ihre Instanzen haben. Wenn zwei Instanzen derselben Klasse in allen Attributen übereinstimmen, sind sie identisch. Der Zustand eines Objekts ist ein Element aus dem kartesischen Produkt der Wertebereiche seiner Attribute. Wenn sich zwei Objekte im selben Zustand befinden, sollte ihr nach außen sichtbares Verhalten nicht unterscheidbar sein.

Das Pflichtenheft kann UML-Diagramme enthalten. Von einer Klasse kann es Null oder mehr Instanzen geben. Die Instanzen einer Klasse unterscheiden sich nicht. Instanzen werden in der Vorlesung auch Exemplare genannt. Eine Klasse legt fest, welche Attribute ihre Instanzen haben. Wenn zwei Instanzen derselben Klasse in allen Attributen übereinstimmen, sind sie identisch. Der Zustand eines Objekts ist ein Element aus dem kartesischen Produkt der Wertebereiche seiner Attribute. Wenn sich zwei Objekte im selben Zustand befinden, sollte ihr nach außen sichtbares Verhalten nicht unterscheidbar sein. Der Zustand eines Objekts sollte von außen nur Methoden verändert werden können.

Das Pflichtenheft kann UML-Diagramme enthalten. Von einer Klasse kann es Null oder mehr Instanzen geben. Die Instanzen einer Klasse unterscheiden sich nicht. Instanzen werden in der Vorlesung auch Exemplare genannt. Eine Klasse legt fest, welche Attribute ihre Instanzen haben. Wenn zwei Instanzen derselben Klasse in allen Attributen übereinstimmen, sind sie identisch. Der Zustand eines Objekts ist ein Element aus dem kartesischen Produkt der Wertebereiche seiner Attribute. Wenn sich zwei Objekte im selben Zustand befinden, sollte ihr nach außen sichtbares Verhalten nicht unterscheidbar sein. Der Zustand eines Objekts sollte von außen nur Methoden verändert werden können.

Diskussion: Sinnvolle Vererbungsbeziehungen 6 30. Mai 2017 Moritz Klammler - Tutorium Softwaretechnik I Fakultät für Informatik, IPD Tichy

UML-Diagramme UML-Klassendiagramme (class diagram) UML-Aktivitätsdiagramme (activity diagram) UML-Sequenzdiagramme (sequence diagram) UML-Zustandsdiagramme (state machine) UML-Paketdiagramme 7 30. Mai 2017 Moritz Klammler - Tutorium Softwaretechnik I Fakultät für Informatik, IPD Tichy

Übung: Objektmodellierung Asterix bemerkt, dass sein Dorf von einer römischen Legion angegriffen wird, und macht sich bereit, es zu verteidigen. Dazu will er sich zunächst an einem Schluck Zaubertrank stärken. Er besucht daher den Druiden Miraculix, der als Einziger diesen magischen Trank brauen kann. Miraculix bittet Asterix in seine Hütte und flößt ihm eine Schöpfkelle des Zaubertranks ein, den er noch in einem Kessel neben dem Feuer warm gehalten hat. Asterix nimmt den Trank zu sich. Sodann vergewissert er sich anhand eines Hinkelsteins, dass der Trank seine gewünschte Wirkung nicht verfehlt hat. Nachdem er diesen mühelos mit einer Hand stemmen kann, verschwendet er keine Zeit mehr und stürmt vor das Dorf, um die Römer zu empfangen. 8 30. Mai 2017 Moritz Klammler - Tutorium Softwaretechnik I Fakultät für Informatik, IPD Tichy