PS Software Engineering WS 2018/19

Ähnliche Dokumente
Entwicklungswerkzeuge

Software Engineering 1

Softwareengineering. Schwerpunkt Software Engineering Ausbildung

SWP Übersetzerbau im SS 13 Einführung und Organisatorisches. Till Zoppke Maximilian Konzack Yves Müller Freie Universität Berlin

StuPro Visualisierung der Ergebnisse von Programmanalysen

Inhaltsverzeichnis. 2.2 Grundlagen der UML Zusammenfassung... 53

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

Eclipse in der Java-Entwicklung

Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum

Design Patterns 2. Model-View-Controller in der Praxis

Praxis der Softwareentwicklung WS 2015/16

Campus-Routenplaner. Praxis der Software-Entwicklung. Einführung 31. Oktober 2018 Lars Gottesbüren Sascha Gritzbach Michael Hamann

Model-View-Controller

Praxis der Softwareentwicklung

Javakurs für Anfänger

Verbesserung der Architektur der DPP- Software Saros (Vortrag 2) Slawa Belousow Institut für Informatik FU Berlin

Programmieren I. Überblick. Institut für Angewandte Informatik. KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft

Mit dem Google-Web-Toolkit moderne Web-Anwendungen entwickeln

Informatik II Übung 1

Fragen Arthur Zaczek. Dez 2015

Praxis der Softwareentwicklung

Projektgruppe. Thomas Kühne. Komponentenbasiertes Software Engineering mit OSGi

BIF/SWE - Übungsbeispiel

Programmieren I. Überblick. Institut für Angewandte Informatik. KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft

Fragen Arthur Zaczek. Apr 2015

Informatik II Übung 7 Gruppe 7

Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum

Design Patterns. OO-GetTogether. Volker Michels

Drucken, GUI, Design Pattern,... PDF, Usability, Observer Pattern, MVC

Motivation Grundlagen Technologien Manipulation Ecore Genmodell Demo Persistenz Notification Ausblick GMF Fazit / Quellen

Build Management Tool?

Build Management Tool

Überblick FBC SNW Zusammenfassung. Entwurfsmuster. Eine Einführung. Botond Draskoczy. Marcus Vitruvius Pollio

Software-Entwicklung in der Praxis Gastvortrag Vorlesung P2, Universität Bern Stefan Reichhart -

Build Management Tool?

Informatik II Übung 6 Gruppe 7

Besprechung. Übung 1 Software Engineering

Architecture Blueprints

Programmieren mit Java

Design Patterns. 3. Juni 2015

Gliederung der Folien

Praktikum Softwareentwicklung 2

Umstieg auf OSGi - aber wie? Martin Lippert & Matthias Lübken akquinet it-agile

Tutorium Softwaretechnik I

Rapid Java wie mit Forms

Software Engineering mit Übungen. Franz-Josef Elmer, Universität Basel, HS 2015

Einführung in Google Web Toolkit

Anforderungen gezielter umsetzen, Optimieren, Transparenz schaffen

Praxis der Softwareentwicklung

3-Tier-Architecture und J2EE

1. Einführung Advanced Programming Techniques. Wintersemester 2009/10 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

Creational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05.

Testen mit JUnit. Motivation

SOLID für.net und JavaScript

Vorlesung Programmieren

5. Dokumentieren und Testen Advanced Programming Techniques. Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

Logo in neuer Logosystematik einfügen: Bewertung der Softwarequalität eines bestehenden Softwaresystems an Hand von

Programmiermethodik Vorlesung und Praktikum SS 2001

Studienarbeit. Mohammad Athar Januar Verantw. Betreuer : Prof. Dr. Walter F. Tichy Betr. Mitarbeiter : Dipl.-Inform. Marc Schanne

Softwareentwicklung in der Wissenschaft Steffen Göttsch

Networked Embedded Systems

Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme. Tillmann Schall, anaptecs GmbH

Besprechung. Übung 1 Software Engineering

Grundlagen der Programmierung in C Klassen

Fragen Arthur Zaczek. Dez 2016

Head First Design Patterns. FALLBEISPIEL: SimUDuck

Software-Metriken. B. Sc. Michael Thomas. Seminar Software-Entwurf WS 2004/05.

Informatik II (D-ITET) Informatik II (D-ITET) Übungsstunde 1. Distributed Systems Group, ETH Zürich

TEIL I: OBJEKTORIENTIERUNG UND GRUNDKURS JAVA GRUNDLAGEN DER PROGRAMMIERUNG... 4

Reverse Engineering Legacy Code

Entwurfsmuster (Design Patterns)

CARL HANSER VERLAG. Erika Horn, Thomas Reinke. Softwarearchitektur und Softwarebauelemente Eine Einführung für Softwarearchitekten

AVO-Übung 1. Übungsszenario, Entwicklungswerkzeuge. Andreas I. Schmied

Softwareentwicklungspraktikum Nebenfach

Softwareentwicklungsprozess im Praktikum. 23. April 2015

Java.NET Web-Technologien Mobile

Saros. Action Awareness in. den deutlich. Fehlermeldungen sollen übertragen werden. Refactoring Informationen besser formuliert

Wann soll ich mocken? XP Days Germany David Völkel

Einführung und Motivation

Informatik II (D-ITET)

Refactoring von Legacy Systemen. Jochen Winzen andrena objects ag

Praktikum. SEP: Java-Programmierung SS Trie: Häufige Fragen. Thomas Bunk und Karlheinz Friedberger

Übung 11: Klausurvorbereitung. Übung 11. Prüfungsvorbereitung Software Engineering WS16/17 Philipp Seltmann

MDRE die nächste Generation des Requirements Engineerings

PHP 6 Beliebte Webskriptsprache wird erwachsen. Linux User Group Bern René Moser <mail@renemoser.net>

Die S.O.L.I.D-Prinzipien für C# Entwickler Thomas Claudius

Matthias Küspert software engineering

CODE REVIEWS DONE RIGHT. Heiko Gramlich

Klausur Software Engineering 2 WNB SS 2008

Dokumentationskonzept

Faktor Zehn Academy. Schulungsangebot

Abschnitt 10: Datenstrukturen

Software Engineering. 13. Qualitätssicherung. Franz-Josef Elmer, Universität Basel, WS 2006/07

Skalierbare Enterprise Architekturen für Universal Windows Platform Apps

Team Foundation Server & Ranorex Workshop

Fragen Arthur Zaczek

Transkript:

PS Software Engineering WS 2018/19

Wöchentlich Dienstag 08:00-10:00 Start: 8:15 Termine: PLUSonline Homepage zum PS: Allgemeines www.softwareresearch.net Teaching

Programmieren im Großen Die Entwicklung von kleinen Programmen unterscheidet sich fundamental von der Entwicklung großer Programme. Große Programme zu entwickeln heißt nicht nur mehr Code schreiben zu müssen. Somit nicht bloß durch mehr Manpower zu beherrschen!

Unterschiedliche Aufgaben Kleine Programme Coden und Ausprobieren habe ich schnell mal programmiert Mittlere bis (sehr) große Softwaresysteme Analyse Spezifikation Entwurf Implementierung Validierung Wartung Dokumentation Qualitätssicherung Projektmanagement Hier im PS: Kleine aber sehr, sehr saubere Programme! Idee: Unsere kleinen Komponenten (ohne Änderung) in große Softwaresysteme integrieren.

Allgemeines (2) Anwesenheitspflicht! 2 Tests Assignments: Wöchentliche Aufgaben Selbständiges Erarbeiten von Hintergrundwissen Praktische (Programmier-)Übungen: Java, knapp 2 Wochen Zeit in 2er-Teams (meistens) Voraussichtlich insgesamt ca. 10 Aufgaben

PS Ablauf Befragung zu Hintergrundwissen Präsentation der Lösung Theoretischer Überblick (z.b. zum konkreten Pattern) Klares Herausarbeiten der wesentlichen Aspekte, Design-Überlegungen Vor-/Nachteile im Vergl. zu möglichen Alternativen Wichtige Code Passagen (keine Scroll-Down-Demo) Eventuell Vorführung der Anwendung Bewunderung ernten bzw. Kritik gefallen lassen Code-Review (in Partnerarbeit)

50% Tests 50% Assignments + MA Beurteilung Für eine positive PS-Note müssen BEIDE Teile positiv sein D.h. SOWOHL mind. 50% der maximalen Testpunkte ALS AUCH mind. 50% der max. Assignment- Punkte.

Aufgaben Abgabe jeweils vor dem PS Deadline Montag 14:00 Repository Git Git: commandline Tortoise (Windows) Eclipse plug-in (Java-IDE) tba

What I expect you to know Java / OO Inheritance Polymorphism Static/dynamic type Encapsulation, Information Hiding Exception handling What I believe you already know too Generics JavaDoc

Topics covered in past years OO Design (Inheritance, Interfaces, Polymorphism, ) Design Patterns (Composite, Iterator, Decorator, Visitor, Observer, MVC) UML Best practices (Exception handling, ) Ant, Versioning (SVN/Git), Jar TestDrivenDevelopment: JUnit Threads / Synchronization (System- vs. Application Programmer) Java Collection Framework Java Streams Generics GUI: Java Swing, JavaFx XML Reflection

Lernziele Herangehensweise: ingenieurmäßige Entwicklung statt Quick-Hack Weg von schau ma moi -, aber es funktioniert -, eigentlich würde man hier besser. -Mentalität Kenntnisse (Begriffe/Methoden/Werkzeuge) DP, UML, Java Libs, UnitTests Verständnis Auswirkungen von DP, Welches DP wann sinnvoll? Anwendung Code <--> UML, Debugging, Versionierung Analyse Probleme in Code erkennen, Anwendung in Komponenten zerlegen Synthese Ein Projekt ingenieurmäßig umsetzen (erweiterbar, modular, robust, korrekt, testbar, flexibel, lesbar, wartbar) Beurteilung Codequalität einschätzen, Annahmen für fehlende Spez. treffen;

Some Remarks Main method Put almost nothing in there Packages Know how to use them tba But don t use them in this lecture (if not mentioned explicitly) JavaDoc Use it for your public API Visibility modifier private stuff leads to less required docu ;-) Naming conventions MyClass, myfield, mymethod, MY_CONSTANT, Exception handling

Assignments A0, A1 Note: no teamwork for this assignment Hints.

Teams of 2

Thanks.