252-0232-00 Software Design

252-0232-00 Software Design
• Teacher
– Dr. Dominik Gruntz
– University of Applied Sciences Northwestern Switzerland (FHNW)
– [email protected]
[email protected]
• Lecture
– Friday, 15-17, IFW A32.1
• Assignments
– Friday, 17-18, IFW A32.1
26 February 2016
(C) Hochschule für Technik
Fachhochschule Nordwestschweiz
1
Software Design: Goals
• Goals
–
–
–
–
–
Knowledge of Object-Oriented Concepts
Programming Experience with an OO language (Java)
Programming Experience with Event-Driven User Interfaces (AWT/Swing)
Design Experience: Design Patterns
Experience with a larger program
• Audience
– Students of the Computational Science and Engineering Program
– NDS Students
• Prerequisite
– Structured Programming (Java/C/C++/C#/Fortran)
25 February 2016
(C) Hochschule für Technik
Fachhochschule Nordwestschweiz
2
Software Design: Program
26.02. Structured Programming in Java
04.03. Object-Oriented Programming
Inheritance, Polymorphism, Abstract Classes,
Interfaces, Initialization, Overloading
11.03. Event Driven Programming
18.03. Design Patterns: Observer
08.04.
Observer
15.04.
Strategy, State
22.04.
Composite
29.04.
Prototype
06.05.
Decorator
13.05.
Command
20.05.
Factory / Singleton
27.05.
Dependency Injection
03.06. Summary
25 February 2016
U01
U02 U01
U03
U04
U05
U06
U07
U08
U09
U10
U11
(C) Hochschule für Technik
Fachhochschule Nordwestschweiz
U02
U03
U04
U05
U06
U07
U08
U09
U10
U11
3
Software Design: Assignments
• Assignments
– Development of a Graphics Editor
– No course attendance certificate (Testat) anymore
– The exam questions are in the context of the graphics editor
=> the assignments are a requirement to pass the examination
=> we consider the assignments as part of the course
– Hand in your solutions by the due date, then you will get a feedback from
the assistants
• Assistant
– Stefan Müller, [email protected]
– Darko Makreshanski, [email protected]
• Web
– http://www.gruntz.ch/courses/eth_sd
26 February 2016
(C) Hochschule für Technik
Fachhochschule Nordwestschweiz
4
References
• Head First Design Patterns
Eric Freeman, Elisabeth Robson, Bert Bates
and Kathy Sierra, O’Reilly, 2nd release 2014,
ISBN: 978-0596007126, Online via SFX
• Design Patterns: Elements of Reusable
Object-Oriented Software
Erich Gamma, Richard Helm, Ralph Johnson
and John Vlissides, Addison Wesley, 1995,
ISBN: 978-0201633610
• Design Patterns: Entwurfsmuster als Elemente
wiederverwendbarer objektorientierter Software
Erich Gamma, Richard Helm, Ralph Johnson
and John Vlissides, mitp, 2014, ISBN: 978-3826697005
26 February 2016
(C) Hochschule für Technik
Fachhochschule Nordwestschweiz
5
References
• Computer Science Library
– Maintains a textbook collection for this course







Erich Gamma: Design patterns: elements of reusable object-oriented software
Eric Freeman & Kathy Sierra: Head first design patterns (2004)
Guido Krüger & Thomas Stark: Handbuch der Java-Programmierung (2009)
Christian Ullenboom: Java ist auch eine Insel (2001)
Cay S. Horstmann: Core Java: Volume 1: Fundamentals (2012)
Cay S. Horstmann: Java SE 8 for the Really Impatient (2014)
Tony Bevis, Java Design Pattern Essentials (2012)
http://textbooks.inf.ethz.ch/lectures/computer-science-for-non-computer-scientists/96/
25 February 2016
(C) Hochschule für Technik
Fachhochschule Nordwestschweiz
6