Lecture:
Design Patterns and Anti-Patterns
A few questions addressed in the
lecture
|
|
Monday
8 March |
|
11:05 12:00 |
Lecture 2 |
Design Patterns and Anti-Patterns
|
Tim Muenchen
Bergische Universität Wuppertal - Germany
|
Introduction to the series of two lectures
In High Energy Physics, as in most areas of Science, using
Computers to simulate, analyse and interpret physical data
has become indispensable in the last decades, as the sheer
amount of data one has to process has grown to dimensions
difficult to handle manually. On top of that, the usage of
object orientation is on the advance, replacing legacy
programming languages like Fortran by modern ones like
(among others) C++, Java and Python.
Though, one can not just carry programming style and
concepts from procedural languages to object oriented
languages and hope to benefit from the advantages of this
new programming paradigm. Instead, there are numerous things
to keep in mind to produce working, error-free and
performing - but also understandable, maintainable and
expandable - object oriented software designs.
This series of two lectures aims to sensitize the "object
oriented programming physicist" to things he should be aware
of and keep in mind to fully utilize the OO-paradigm.
|
Second lecture:
Design Patterns and Anti-Patterns
In
this second lecture of the series, after the core ideas in
designing maintainable and well-designed software have been
shown in lecture 1, a powerful concept is presented: the
Design Pattern. Being reusable "blue print"
design snippets
- as opposed to reusable pieces of code or libraries
- such
patterns help in establishing high-quality software designs
without "reinventing the wheel".
Furthermore, Design Patterns fulfil the very important role
of establishing a common vocabulary between software
engineers and developers, leveraging knowledge transfer in
and between teams of software developers and turning
software designs into building blocks of software that are
easy to understand and easy to recognize.
After a few popular Design Patterns are presented and
examples are given, the second big topic of this lecture are
the so-called "Anti Patterns" - the exact opposite of Design
Patterns. These describe things to avoid when designing a
software system, albeit looking just like "the right thing
to do". We will try to explain why those look so good, and
what the consequences are.
|
Audience
This lecture builds up on lecture 1. Attendees will learn
about established Design Patterns that can be used to
ease creating object-oriented software designs and to
streamline the application of the design Best Practices
presented in the first lecture.
Furthermore, Anti-Patterns
are introduced that show typical things not to do when
designing software that lead to common problems, although
seeming attractive and easy to apply on the first
sight, and thus are very dangerous.
|
Pre-requisite
To draw maximum benefits from this lecture, the attendant
should preferably have followed lecture 1.
|
Questions |
-
Universal Modelling Language:
what is it?
-
What are the ten
best
practices
OO-developers should know?
-
Design
Pattern:
reusable snippets
and not reusable libraries! What
does it mean?
-
Anti-patterns:
the opposite of design patterns!
What does it mean?
All the answers at
iCSC
at Lecture 1 and Lecture 2
|
|
|