Vorbereitung FAA auf Folie ? Gliederung auf Folie Spektrum-Bericht über Windows2k (##) als Handout kopieren alle ?? entfernt?! 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Vorbereitung Beamer, Laptop, Maus 2 Exemplare der Diss Anwesenheitsliste Handout Artikel aus Spektrum d. Wiss: Windows2k Fragen? 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Software Architektur-Modelle Grundlagen 1: Einheiten („Units“) Vorlesung Software Architektur-Modelle Grundlagen 1: Einheiten („Units“) Dr. Harald Störrle Ludwig-Maximilians-Universität München Wintersemester 2001 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Organisatorisches Feedback stoerrle@informatik.uni-muenchen.de Gastvortrag 18.12., Norbert Grass, IBM S/390 („Host“) Folienlayout WWW-Angebot - Probleme gelöst (?) www.pst.informatik.uni-muenchen.de/lehre/WS0102/architektur Aufgaben vom letzen Mal 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Semestervorschau Überblick (neu) Einleitung Architektur-Einheiten („Units“) Modellierungs-Notationen (UML, ...) Semantik-Formalismen (CSP, PN; Traces, LTS, PW) Wright Darwin UML/AM Konsistenz, Verifikation S/390 („Host“) & CICS vs. EJB & Applicationserver Grundbegriffe am Beispiel Änderungsverwaltung elementare Methodiken Validation, Soft-Factors Rückschau Grundlagen 3 ADLs 5 Host vs. EJB Prozesse 3 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Organisatorisches Feedback stoerrle@informatik.uni-muenchen.de Gastvortrag 18.12., Norbert Grass, IBM S/390 („Host“) Folienlayout, WWW-Angebot www.pst.informatik.uni-muenchen.de/lehre/WS0102/architektur Buch - bitte nach der Vorlesung abholen Aufgaben vom letzen Mal 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Aufgaben vom letzten Mal Lektüre Vorlesungsseite besuchen, im Netz stöbern Beispiele finden Finden Sie Beispiele für Systeme mit SWA in Ihrer täglichen Umwelt! Identifizieren Sie Stakeholder und deren Anforderungen. Gibt es Konflikte? Vorbereitung Schauen Sie sich EJBs, BOs, & UML Components an Entscheiden Sie sich, ob Sie teilnehmen! 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Programm für heute Was heißt eigentlich „große Systeme“? Aus was für Einheiten sind sie aufgebaut? Welche Anforderungen müssen diese Einheiten erfüllen? Erste Notationen 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Was heißt eigentlich „groß“? Größe in Anzahl Dauer der LoC Entwickler Erst-Entwicklung sehr groß 106-108 102-104 5-15 Jahre groß 105-106 101-102 2-5 Jahre System Zeilen Code Windows 2000 29 Mio. große militärische SW 27 Mio. typische Unternehmens-SW 19 Mio. typisches BS 12 Mio. 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Große Software ist anders Vergleiche Software ~ Lebewesen Software ~ Gebäude/Maschinen TO DO siehe Notizseite ?? Beispiel: Bewegungsabläufe von Elefanten vs. Eichhörnchen (oder Insekten) Insekten können aus großer Höhe ohne Schaden fallen Insekten vermehren sich schnell Große Tiere haben wesentlich mehr Intelligenz, selbst wenn man Termiten oder Ameisen-Staaten mitrechnet und langsamere Fortpflanzungszyklen, und längere Lebensdauer z.B. Lungen vs. Tracheen z.B. Skelett vs. Chitin-Panzer (vgl auch Autos: ?? Vs. selbsttragende Karosserie, dito Gebäude) z.B. Gehirn: zentrales Organ (Gehirn), plus Hilfsknoten (Nervenknoten, Rückenmark) vs. Dezentrale Motorik/Sensorik bei Bienen z.B. Anpassung an ökologische Nische Variabilität (siehe Reproduktionszyklus) exklusive Ausschöpfung der Nische, bzgl Kontextbedingungen Mobilität 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Große Software ist anders Die Herstellung großer SW-Systeme ist ein inhärent eigenes Problem Proportionen von Phasen und Aufwänden bis zu 95% des Gesamtaufwandes gehen in Tests: Kosten für Definition, Bereitstellung und Administration von Testumgebung, Testfällen, Testergebnissen. Regressionstests! nicht enthalten: konstruktive QS-Maßnahmen. Aufgaben KM/ÄM wird zu einem enorm wichtigen Thema typischen Probleme Mitarbeitermotivation (Fluktuation, innere Kündigung, Politik) Kommunikationsaufwand wächst mindestens quadratisch ebenso der Aufwand für Planung und Controlling 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Große Software ist anders Daher gibt es entscheidende Unterschiede zwischen großen und kleinen Projekten bezüglich: Infrastrukturen Organisationsformen, Kommunikationswege und -mittel Methodik, Werkzeuge, Aktivitäten, Phasen Schwerpunkte, Probleme, Aufgaben Beteiligte ... => letztlich bezüglich ALLER Aspekte und: große Systeme brauchen eine Architektur Siehe zum Beispiel Windows2000. Windows ist natürlich in Hinblick auf Architektru ein schlechtes Beospiel, weil es dort um ein Betreibssystem geht, und die Architekturen von Betriebssystemen ist extrem gut verstanden: das wird in jedem Grundstudium gelehrt, das kennt jeder einzelne Infomatiker (und wichtiger: auch jeder angelernt Programmierer) aus eigener täglicher Erfahrung. Insofern ist es vielleicht auch gerade ein gutes Beispiel dafür, welche Größenordnugn von Systemen gebaut weden kann, wenn die Architektru gut verstanden ist. 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Windows 2k als Großprojekt Bislang größtes kommerzielles System Ca. 27 Mio. LoC (meistenteils C++) täglicher Build-Test-Zyklus kontrolliertes Ignorieren von Fehlern wöchentliches Motivationstreffen ca. 4200 Leute halber Tag ca. 90.000 Emails täglich täglich aktualisiertes Download von Sourcen über Nacht werden ca. 2000 CDs gebrannt & verteilt 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Was heißt groß bei Systemen? Ausstattung von Siemens Business Services (SBS), Stand Ende 2000 35 Mainframes 1.140 Unix/NT-Server mit insgesamt 257 TByte 3.120 Workstations 3.100 Leitungen 2.100 Router mit insgesamt 500 Tbit/s Volumen 2.750 UNIX/NT-Server 72.500 PCs 170.000 Terminals und Peripherie-Geräte zentral dezentral 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
?? Große Systeme (Bsp) Große Systeme sind arbeitsteilig und bestehen aus eigenständigen Subsystemen, auch „Einheiten“ genannt wg. Begriffsüberladung. 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Was sind Einheiten? Einmal Träumen, bitte Einheiten sind... ...langlebig ...wiederverwendbar ...integrierbar ...robust ...verteilbar ...getrennt entwickelbar (bzw. beschaffbar) ...Gegenstand von Verhandlungen & Verträgen ...sowohl fachlich als auch technisch ...sowohl Modell als auch Implementierung kann ich hier nicht sagen, daß will ich erst am Ende meiner Argumentation rausbekommen 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Was sind Einheiten? Terminologie Einheiten sind die „Bausteine“, aus denen sich Architekturen zusammensetzen. Diese Bausteine werden durch „Mörtel“ zu einem „Ensemble“ zusammengefügt. Terminologie Bausteine Components Mörtel Glue (Connectors, Ports) Ensemble Configuration 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Was sind Einheiten Vom Traum zur Realität Wie müssen Einheiten beschaffen sein, welche Eigenschaften müssen sie aufweisen, um unsere Ziele zu erreichen? Zwei Beobachtungen aus der Praxis helfen uns, Fehler früherer Ansätze zu vermeiden. 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Empirische Ergebnisse 1/2 Frühe Fehler sind die teuersten. 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Schlußfolgerung: durchgängig Die Bausteine einer Architektur müssen schon frühzeitig im Zuge eines Projektes definiert werden, nicht erst zur Implementierungszeit. Daher müssen sie als Modelle vorliegen, nicht (nur) als Code. Um gleichzeitig die Übersicht zu gewährleisten, sollten sie durch Sichten organisiert sein. 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Exkurs: Sichten/Sichtweisen (engl.: View/Viewpoint) Vorschläge Kruchten „4+1 View Model“ physical, logical, scenarios, process, development Amigos „UML Manual“ deployment, design, use case, implementation, process RM-ODP (ISO/IEC 10746-a...d bzw. ITU-T X.901...904) information, enterprise, technology, engineering, computation Davis/Williams component, domain, context, interfaces, platform 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Exkurs: Sicht/Sichtweise Wie ist ihre Beziehung zueinander? Wie ist ihre Beziehung zu UML? Wie werden die Sichten dargestellt? Welche Sichten sollten fixiert werden? Für alle Anwendungen die gleichen Sichten? Lösung: IEEE Architecture Working Group, P1471 generisches Konzept Sicht/Sichtweise 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Exkurs: Sichten in P1471 „a view is a representation of a whole system from the perspective of a related set of concerns“ „a viewpoint is a specification of the conventions for constructing and using a view“ -- Ende des Exkurses -- 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Empirische Ergebnisse 2/2 Studien zeigen: nur in frühen Phasen ist Wiederverwendung effektiv: dort geht es um große Einheiten die Domänen- oder Systemwissen kodifizieren und relativ leicht änderbar sind Daher ist Wiederverwendung von kleinen Einheiten (z.B. Klassen) unwirtschaftlich. 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Empirische Ergebnisse 2/2 Kosten vs. Nutzen bei Wiederverwendung n Nutzen in LoC k Kosten Aktivität abhängig von kq query Formulieren der Suchanfrage Expertise in der Wv.-Domäne ks Search Suche in Komponenten-DB Größe der DB kc choice Auswahl der Kandidaten Recall, Qualität der Ergebnisse, Expertise des Bearbeiters ka adapt Anpassen Precision & Größe ki integrate Integrieren in Gesamt-System Komplexität der Schnittstelle Die Kosten sind nur wenig abhängig von der Menge des wiederverwendeten Codes. 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Schlußfolgerung: groß Die wiederzuverwendenden Komponenten sollten möglichst groß sein. Einschränkung: mit steigender Größe steigt der durchschnittliche Anpassungsaufwand. 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Schlußfolgerung: autark Daher müssen die Einheiten sehr autark sein, d.h. unabhängig und selbstgenügsam („self-containedness“). Insbesondere müssen sie sehr harte, wohl-kontrollierte schmale Schnittstellen aufweisen. 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Schlußfolgerung: formal Um die Kosten zu reduzieren, müssen Arbeitsschritte automatisiert werden. Um auf Modellen automatisiert arbeiten zu können, müssen die Modelle formal sein. Um gleichzeitig Akzeptanz zu erreichen, muß diese Formalität versteckt werden. 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Zusammenfassung der Anforderungen Damit Einheiten als Architektur-Einheiten wirklich einsetzbar sind, müssen sie folgendes sein: Durchgängig - in allen Phasen brauchbar Groß - von großer Granularität Autark - sehr unabhängig Formal - aber bitte verständlich! 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Erfüllen heutige Ansätze diese Anforderungen? Welche Ansätze gibt es? Klassen/Objekte Java Beans (und ähnliche) Enterprise Java Beans (EJBs) UML Components UML Subsystems Business Objects Units 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Klassen/Objekte Sehr kleine Einheiten starke Abhängigkeit zum Kontext nur Zugriffskontrolle nach innen, nicht nach außen, nur alles-oder-nichts Kontrolle Analyse-Klassen haben keinen Bezug zu Implementations-Klassen („semantic gap“) 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Java Beans (und ähnliche) Java-Klassen mit einigen zusätzlichen Namenskoventionen. Gleiche Kritik wie bei Klassen/Objekten 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Enterprise Java Beans (EJB) Mehr als Java Beans Ablaufumgebung (Application Server) stellt gewisse Basisdienste zur Verfügung (Persistenz, Transaktionskotrolle, Sicherheit, Naming, Kommunikation, ...) Probleme kleine Einheiten sehr implementierungslastig einige ungelöste technische Probleme zur Zeit Integration mit Corba 3 als „Corba Component Model“ (CCM), und mit UML als „UML Profile for EJBs“ 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
UML Components In UML 1.4 sind Components Bit-Folgen „A component represents a physical piece of implementation of a system“ => genau nicht das, was man braucht 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
UML Subsystems Pakete mit 2-3 Kompartimenten + richtige Granularität + Im Prinzip durchgägngig verwendbar - vage Definition, keine Semantik - keine Konzepte für Schnittstellen Sichten 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Business Objects Business Objects sind „...interoperable [...] high-level application components relevant to and usable by application domain developers...“ (OMG BO-RFP, cf/96-01-04) 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Business Objects Interne Schichtung Präsentation Applikation GUI Dialog-Steuerung Applikation Dienste Anwendungs-Logik Persistenz DB-Zugriff DB 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Business Objects Aufgaben der GUI-Schicht Anzeige der graphischen Schnittstelle Eingaben auffangen und kanalisieren Dies „dünne“ Schicht ganz oben ist entscheidend für Portabilität und Multi-Kanalfähigkeit Desktop (Fat Client) WAP Internet (Kunden!) Intranet Druckstraße DMS Batch-Verarbeitung ... 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Business Objects Aufgaben der Dialog-Steuerung Steuerung der GUI-Schicht Plausibilisierung zum Teil auch Sicherheit 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Business Objects Aufgaben der Dienste-Schicht Bereitstellung von Diensten für den Benutzer die Nachbarsysteme in einheitlicher und kontrollierter Weise Synchronisation Transaktionssteuereung 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Business Objects Aufgaben der Logik-Schicht Implementierung der eigentlichen Fachlogik Schritte von Geschäftsprozessen Domänenwissen fachliche Objekte 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Business Objects Aufgaben der DB-Zugriffs-Schicht Umsetzung Relationen/Klassen bzw. Zeilen/Objekte Umsetzung technische/fachliche Transaktionen, Schwebeverwaltung (z.B. Halbbuchungen) Caching und Garbage Collection für fachliche Objekte transparenter Daten-/Dateizugriff, optimistische Sperrstrategie Versionierung, Historisierung Unabhängigkeit von DB-Produkten (siehe z.B. R/3, row-level locking gab`s damals noch nicht) 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Business Objects Aufgaben der DB-Schicht klassische DB-Aufgaben, also Persistenz Recovery-Fähigkeit Performanz Konsistenz ... 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Business Objects + Richtige Granularität + Abgeschlossenheit + erste Werkzeuge - aufwändig, relativ starr - keine präzise Definition - Durchgängigkeit? - Sichten? - Kein Bezug zu UML 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Units Einheiten sind aufgebaut aus einer (beliebigen) Menge von Sichten, idR. ist eine davon die Schnittstellen-Sicht, die Ports enthält. Ein Port kontrolliert eingehende wie ausgehende Nachrichten. Alle Kommunikationen einer Einheit geht über Ports. 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Units „kleines“ Konzept Anforderungen erfüllt? Verallgemeinerung von Business Objects Paßt auch auf andere Ansätze Anforderungen erfüllt? + Durchgängigkeit / frühe Phasen + Autark + Granularität + UML-Integration + Formal 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Literatur (zur Nachbereitung) Technische Komponentenmodelle EJB 2.0, http://java.sun.com/products/ejb/whitepaper.html Corba Component Model Bücher von Oliver Sims (alle bei Wiley/OMG Press) Business Objects (1994) Building Business Objects (1998, Sims & P. Eeles) Business Component Factories (2000, Sims & P. Herzum) 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Literatur (zur Vorbereitung) Bernd Oesterreich: OO Software-Entwicklung mit der UML??, Oldenbourg, 5. Auflage OMG: The Unified Modelling Language v1.4, September 2001 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Literatur (Achtung! Nicht Lesen!) Fowler: UML distilled Oldenbourg, 5. Auflage ?? : The Unified Modelling Language?? O`Reilly Stevens, ??: ?? 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Aufgabe Beschreiben Sie die Geschäftsprozesse einer Bibliothek Wie? a) alle (die sie finden) im Überblick b) einen oder zwei im Detail Wie? Nachdenken oder Interview (Bibliothekar) Beliebiger Formalismus, Text, ... Umfang etwa 1-2 Seiten Was sind ihre Probleme/Erfahrungen gewesen? 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle
Unified Modelling Language Nächstes Mal Unified Modelling Language 30.10.2001 Grundlagen: Units VL Software Architektur-Modelle ã Dr. Harald Störrle