Title: Svetlana Skljarskij, Johannes Nold
 1- Svetlana Skljarskij, Johannes Nold 
- Clemens Szyperski 
-  Component Software - Beyond Object-Oriented 
 Programming (1999)
- und 
- B. Meyer 
- Object-Oriented 
- Software Construction
2- Gliederung 
- I 
- 1. Einleitung / Motivation 
- 2. Modularität 
-  2.1. Fünf Kriterien 
-  2.2. Fünf Regeln 
-  2.3. Fünf Prinzipien 
- 3. Modul 
- 4. Komponenten vs. Objekten 
3- Fünf Kriterien 
- Zerlegbarkeit 
- Kombinierbarkeit 
- Verständlichkeit 
- Stetigkeit 
- Schutz 
4  5Zerlegbarkeitskriterium BEISPIEL Top-down 
Hierarchie 
 6- Kombinierbarkeitskriterium 
7  8- Fünf Regeln 
- Direct Mapping 
- Few Interfaces 
- Small interfaces (weak coupling) 
- Explicit Interfaces 
- Information Hiding
9wenige Schnittstellen 
 10explizite Schnittstellen 
 11- Fünf Prinzipien 
- The Linguistic Modular Units principle. 
- The Self-Documentation principle. 
- The Uniform Access principle. 
- The Open-Closed principle. 
- The Single Choice principle.
12- Properties of components Properties of objects 
-  A component is a unit of independent 
 deployment - An object is a unit of
 instantiation
-  it has a unique identity. 
-  
- A component is a unit of third-party composition 
 - An object has state this state can be a
 persistent state.
- A component has no persistent state - An object 
 encapsulates ist state and behavior.
13A definition software component A software 
component is a unit of composition with 
contractually specified interfaces and explicit 
context dependencies only. A software component 
can be deployed independently and is subject to 
composition by third parties. 
 14- Gliederung 
-  II 
- 5 Interfaces 
- Direkte und indirekte Interfaces 
- Versionen von Interfaces 
- Interfaces als Contracts 
- ... 
- 6 Callbacks und contracts 
- 7 Polymorphismus 
- 8 Aspekte der Skalierung und der Granularität 
- 9 Patterns, frameworks, architectures
15Interfaces
- Marktorientierte Betrachtung 
- access points 
- services 
- contracts 
- 3 wichtige nicht-technische Aspekte
- Technische Betrachtung 
- Set of named operations 
- jede operations semantic ist spezifiziert 
- direkte Interfaces 
16- Direkte und indirekte Interfaces 
- Direkte (prozedurale) Interfaces 
- Indirekte (Objekte) Interfaces 
- late binding
Word processing component
Grammar checking component
Grammar checker class
Word processor class
4
has-a
1
3
has-a
has-a
implements
2
Checker interface
Text service class
has-a
Text service mediator component 
 17- Versionen von Interfaces 
- aufsteigende Versionsnummer bzw. fallende 
 Versionsnummer
- Versionen checken 
- andere Version  anderes Interface 
18- Interfaces als Contracts 
- Contracts als Interface-Spezifikationen 
- Preconditions und Postconditions 
- Contracts und nicht-funktionale Requirements 
- Auswirkungen von Performanceänderungen 
- Was gehört zu einem Contract? 
19- Sicherheit und Progress 
- leads-to Operator 
- Bsp. model update leads-to notifier calls 
- statement specifications 
- keine formale Verifikation
20- Callbacks und Contracts 
- Was ist ein callback? 
- Callbacks - up-calls 
- Valid Status ohne und mit callbacks 
21- Beispiel zu callbacks 
- Ein gebrochener contract 
- PROCEDURE AddEntry (IN n Name f Files.file) 
- ( pre n ?  and f ? NIL ) 
- ( post ThisFile(n)  f ) 
directory display
client
directory
RegisterNotifier(Notifier)
AddEntry(Untitled,f)
Notifier(Untitled)
ThisFile(Untitled)
RemoveEntry(Untitled)
Notifier(Untitled)
ThisFile(Untitled)
Notifier returns
RemoveEntry returns
Notifier returns
AddEntry returns 
 22- Polymorphismus 
- Definition 
- subtype oder inclusion 
-  polymorphismus
Interface View  void close () void 
restore (int left, int top, int right, int 
bottom)  interface TextView extends View  
int caretPos () void setCaretPos (int 
pos)  interface GraphicsView extends View  
int curserX () int curserY () void 
setCursorXY (int x, int y)  
 23- Polymorphismus 
- ad-hoc polymorphismus 
-  (overloading) 
- usw. 
Interface View  ... // wie vorher Model 
getModel ()  interface TextView extends View  
 ... // wie vorher TextModel getModel 
()  interface GraphicsView extends View  
... // wie vorher GraphicsModel getModel ()  
 24- Aspekte der Scalierung und der Granularität 
- Units of abstraction 
- Units of accounting 
- Units of analysis 
- Units of compilation 
- Units of delivery 
- Units of dispute 
- Units of extension 
- Units of fault containment 
25- Aspekte der Scalierung und der Granularität 
- Units of instantiation 
- Units of loading 
- Units of locality
- Units of maintenance 
- Units of system management
26- Patterns, frameworks, architectures 
- Sharing consistency programming languages 
- Sharing concrete solution fragments libraries 
- Sharing individual contracts interfaces 
- Sharing individual interaction architectures 
 patterns
27- Patterns, frameworks, architectures 
- Sharing architectures framework 
- Sharing overall structure system architectures