General
About CSC
Organisation

People
Process for CSC hosting
School Models
Role of Local Organisers
Other Roles

Participants
Past Schools

2004 2005 2006 2007 2008 2009 2010 2011

Diploma at CSC
Sport at CSC
Inverted CSCs

iCSC05 iCSC06 iCSC08 iCSC10 iCSC11

Special schools

School@chep06


Inverted School 2010

8-9 March 2010


CSC2010

CSC2010 Overview

Practical Information
Programme
Schedule
Lecturers
Participants
Organizers

 
Examination results
How to apply
 
CSC-Live

inverted CERN School of Computing 2010 8-9-March 2010, CERN

Programme Overview

 

All questions

Software management and optimization

Visualisation

System Monitoring Details of All Lectures

Schedule

Lecturers

Lecturer Bios

 

Mentors

Printable Version

Series: Living OO Design

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

iCSC
All on iCSCs
News
Registration
Handouts
Programme
Schedule
All questions

Software management and optimization

Lecture1

Lecture2

Lecture3

Lecture4

Living OO Design series

All theme lectures

Visualisation

Lecture5

System monitoring

Lecture6

Lecture7

Lecture8

All theme lectures

 
All iCSC Lectures
 
FAQ
 
Social event
Feedback: Computing (dot) School (at) cern (dot) ch
Last update: Monday, 18. June 2012 09:43

Copyright CERN