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