Objektorientierte Analyse und Design

Größe: px
Ab Seite anzeigen:

Download "Objektorientierte Analyse und Design"

Transkript

1 Hochschule Darmstadt Fachbereich Informatik Objektorientierte Analyse und Design 1. Motivation SS 2011 Einige Folien dieser Vorlesung entstammen Präsentationen von Prof. U. Andelfinger, B. Humm, G. Raffius OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 1

2 1. Motivation Planspiel Stellen Sie sich vor, Sie sollen Software entwickeln für ein Projekt, dessen Fachgebiet Sie nicht kennen (z.b. ein Verwaltungssystem für ein Krankenhaus) Randbedingungen der Kunde kennt sich nicht mit IT aus die Aufgabe ist nicht ganz trivial die Software hat eine Wartungsverpflichtung von 10 Jahren Wie würden Sie vorgehen? Welche Arbeitsergebnisse würden Sie anstreben? OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 2

3 1. Motivation Grundidee OOAD Problem: Wie entwickle ich ein komplexes System? Analysiere die reale Welt Abstrahiere daraus ein Modell mit den wesentlichen Daten und Klassen (Objekten) und deren Beziehungen zueinander Entwerfe ein detailliertes Modell, das auf dem abstrakten Modell basiert Setze das Ergebnis um Arzt.cpp OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 3

4 1. Motivation Abstraktionsebenen gedankliche Ebene Reale Welt Abstraktion logische Ebene (Modell) OOA-Ebene OOD-Ebene Implementierungskonzepte Codierung physische Ebene (Implementierungsebene) Programm Arzt.cpp Abstraktionsebenen der objektorientierten Systementwicklung (4-Schichten-Modell) OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 4

5 1. Motivation Phasenmodell der objektorientierten Systementwicklung reale Welt Code Konsistenz Abstraktion Isomorphismus Konkretisierung Abbildung Informationsgehalt Design- Modell Coderahmen Analyse-Modell OOA (Analyse) OOD (Design) OOP (Programmierung) Entwicklungs -phase OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 5

6 1. Motivation Phasen und Tätigkeiten (I) OOA: Objektorientierte Analyse Ziele: - Anforderungen an das zu entwickelnde Softwaresystem erfassen und beschreiben - ein gemeinsames Verständnis der Produktidee bei Auftraggeber, Auftragnehmer, Benutzer und Entwicklern schaffen Tätigkeiten: - Herausarbeiten der wesentlichen Sachverhalte, Vernachlässigen von Details - Dokumentation von Anwendungsfällen (Szenarien) - Dokumentation der Systemidee, der Leistungsmerkmale, der Rahmenbedingungen und Voraussetzungen - Entwicklung eines objektorientierten Analysemodells ("OOA-Modell", "Domänenmodell") Umsetzung - als Text und/oder als Modell - weitgehend unabhängig von der späteren konkreten Umsetzung - Modellierung oft mit Elementen der Unified Modeling Language (UML) OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 6

7 1. Motivation Phasen und Tätigkeiten (II) OOD: Objektorientiertes Design Ziele: - Erarbeitung eines Lösungskonzepts zu einem gegebenen Problem / gegebenen Anforderungen(vgl. OOA) - Dokumentation des Konzept als Vorarbeit für die Implementierung Tätigkeiten: - das in der OOA erstellte Analysemodell wird kontinuierlich weiterentwickelt und darauf aufbauend ein objektorientiertes Designmodell ("Architektur / Design") erstellt - Festlegung von Verantwortlichkeiten, Schnittstellen, Implementierungsvorgaben - Dokumentation von Klassen, Objekten, Komponenten (uvm.) und deren Interaktion Umsetzung - Modellierung in der Regel mit Elementen der Unified Modeling Language (UML) - Das Designmodell berücksichtigt neben den fachlichen Aspekten des Auftraggebers auch technische Gegebenheiten (Betriebssystem, Zielsprache etc.) OOP: Objektorientierte Programmierung Umsetzung des OOD-Modells in ein objektorientiertes Computerprogramm OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 7

8 1. Motivation Modelle und Inhalte Beschreibung der wesentlichen Klassen mit Verantwortlichkeit & Attributen unabhängig vom Zielsystem Ergänzung um Umsetzungsdetails Komponenten mit Verantwortlichkeit & Schnittstellen Detaillierte Beschreibung von Klassen, Operationen, Attributen in der Zielsprache Case-Tool macht den Abgleich zwischen Designmodell und Code Forward Engineering Analyse-Modell Konkretisierung Design-Modell Round-trip Engineering Code Reverse Engineering OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 8

9 1. Motivation Inhalte der Vorlesungen zur Softwaretechnik OO: Grundlagen der Objektorientierung OOAD: Analyse und Design UML: einheitliche und präzise "Sprache" zur Dokumentation Modellierung und Darstellung Inhalt und Einsatz der diversen Diagramme OOAD Entwicklung: Entstehung der Softwaretechnik Vorgehen Techniken zum Vorgehen in Projekten Prozesse allgemeine und systematische Vorgehensmöglichkeiten Qualität Beurteilung der Arbeitsergebnisse SWE Planung Arbeiten mit Plänen und Ressourcen Organisation Aufbau von Teams Projektmgmt OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 9

10 1. Motivation Konzept von Praktikum und Vorlesung zur Softwaretechnik OOAD Objektorientierung Analyse und Design Dokumentation der Arbeit - UML "Handwerkszeug" für SW-Entwickler - Gutes Design Praktikum OOAD Umgang mit dem Handwerkszeug - Erste Modellierung - "Entwickeln" eines Mini-Projekts - Arbeit mit der UML - Kennenlernen des CASE-Tools - Kennenlernen der Entw.umgebung SWE Gesamtkonzept / Zusammenhänge - Arbeit in großen Projekten - Anwendung des Handwerkszeugs - Qualitätssicherung - Organisation Praktikum SWE Anwendung der Verfahren aus OOAD und SWE Entwicklung eines Systems in kleinen Teams Möglichst hohe Realitätsnähe - Eigenständige Lösung der Aufgaben - Überprüfung durch Reviews - Aufteilung der Arbeiten im Team OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 10

11 1. Motivation Themen in OOAD im Detail OOAD 1. Motivation 2. Grundkonzepte der Objektorientierung 3. Objektorientierte Software-Entwicklung 4. Objektorientierte Analyse - Use Cases - Aktivitätsdiagramme - Analysemodell 5. Objektorientiertes Design - Darstellung der Statik eines Systems (Klassendiagramm) - Umsetzung von Klassen in C++ - Darstellung der Dynamik eines Systems (Sequenz-, Zustandsdiagramme) - Weitere Diagramme in der UML 6. Welches Design ist das Richtige? 7. Manuelle Prüfverfahren OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 11

12 1. Motivation Lernziele der Veranstaltung OOAD Sie beherrschen die Grundprinzipien der Objektorientierung Sie können Anforderungen an ein zu entwickelnde Softwaresystem erfassen und beschreiben Sie beherrschen die UML als Standard zur Darstellung der (meisten) Ergebnisse Sie können die Statik eines Systems in Diagrammen darstellen? Sie können die Dynamik eines Systems in Diagrammen darstellen? Sie können ein adäquates Lösungskonzepts zu einem gegebenen Problem erarbeiten Sie beherrschen das Handwerkszeug zur Mitarbeit in einem modernen Projekt! OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 12

13 1. Motivation Literatur Brett D. McLaughlin, G. Pollice, D. West: Objektorientierte Analyse & Design von Kopf bis Fuß", O'REILLY, 2007 Mario Winter; Methodische objektorientierte Software-Entwicklung; dpunkt-verlag; 2005 Chonoles, Schardt: UML2 für Dummies; Wiley-VCH; 2003 Rupp, Queins, Zengler: UML2 glasklar; 3. Auflage, Hanser-Verlag; 2007 OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 13

14 Hochschule Darmstadt Fachbereich Informatik Objektorientierte Analyse und Design 2. Grundkonzepte der Objektorientierung OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 14

15 2. Grundkonzepte der Objektorientierung Historie Erfinder der objektorientierten SW-Entwicklung Prof. Dr. e. h. Kristen Nygaard ( ), Oslo, Norwegen Department of Informatics University of Oslo - Erfinder der Programmiersprache SIMULA 67, die das Klassenkonzept in die Programmiersprachenwelt einführte (zusammen mit Ole-Johan Dahl) - Erfinder der objektorientierten Programmiersprache BETA (zusammen mit B. B. Kristensen, O. L. Madsen, B. Møller-Pedersen). Bertrand Meyer, Programmiersprache Eiffel, 1988; kurz danach auch C++ OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 15

16 2. Grundkonzepte der Objektorientierung Objektorientierung (OO) OO ist ein Ansatz zur Entwicklung von Software vorhergehende Ansätze betrachteten Daten und Operationen darauf unabhängig voneinander nun werden die zu verarbeitenden Daten anhand ihrer Eigenschaften und der möglichen Operationen klassifiziert und gruppiert - Teile die zu beschreibende "Welt" in Objekte mit Eigenschaften und Operationen auf - das Zusammenspiel der Objekte erfolgt über Kommunikation untereinander Anspruch, die "reale Welt" besser nachbilden zu können Umsetzung durch unterstützende Konzepte Klassen Vererbung... Objektorientierung ist seit den 90-ern das zentrale Programmierparadigma OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 16

17 2. Grundkonzepte der Objektorientierung Grundidee Objektorientierung Problem: Wie entwickle ich ein komplexes System? Analysiere die Welt der Anwendung bestimme Objekte die darin vorkommen Entwickle die Anwendung basierend auf den wesentlichen Daten und Klassen (Objekten) und deren Beziehungen zueinander Arzt.cpp OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 17

18 2. Grundkonzepte der Objektorientierung Die Herausforderung Bildquelle: Wikipedia Objektorientierung an sich ist einfach. Betrachte (und definiere) Dinge in der Welt der Anwendung und extrahiere die wesentlichen Teile ( Objekte / Attribute / Klassen) Untersuche das Zusammenspiel / die Kommunikation der einzelnen Objekte ( Operationen) Betrachte die Welt aus der Sicht eines einzelnen Objekts Gehe davon aus, dass die anderen Objekte schon alles richtig machen spiele iterativ die Anwendungsfälle durch, bis das skizzierte System die gewünschte Leistung erbringen kann OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 18

19 2. Grundkonzepte der Objektorientierung Abstraktion Abstraktion ist das Weglassen von unwesentlichen Details, so dass die Essenz der Sache übrig bleibt Beispiel: Karte der U-Bahn in London, 1928 (links) und 1933 (rechts) Bildquelle: J. Kramer. Is Abstraction the Key to Computing? Communications of the ACM, Vol. 50, No. 4, April 2007 OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 19

20 2. Grundkonzepte der Objektorientierung Einführungsbeispiel: Makler-Software Sie sollen eine Software für den Verkauf von Häusern entwickeln welche Objekte interessieren Sie? was ist wesentlich? was ist unwesentlich? welche Interaktion gibt es mit den Objekten? Bildquelle: R. Hahn OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 20

21 2. Grundkonzepte der Objektorientierung Objekte Haben Attribute Bieten Operationen an :Einfamilienhaus Haustyp = Landhaus Besitzer = Dr. Kaiser Adresse = Königstein Wohnfläche = 400 [qm] Anzahl Bäder = 3 Hat Schwimmbad = ja Garten = 5000 [qm] Baujahr = 1976 Verkaufspreis = 2 Mio. [ ] :Einfamilienhaus Haustyp = Bungalow Besitzer = Herzog Adresse = Stiepel Wohnfläche = 250 [qm] Anzahl Bäder = 2 Hat Schwimmbad = nein Garten = 1500 [qm] Baujahr = 1986 Verkaufspreis = 1,5 Mio. [ ] :Einfamilienhaus Haustyp = Stadthaus Besitzer = Urban Adresse = Bochum Wohnfläche = 200 [qm] Anzahl Bäder = 2 Hat Schwimmbad = nein Garten = 400 [qm] Baujahr = 1990 Verkaufspreis = 1 Mio. [ ] anfragen Verkaufspreis anfragen Verkaufspreis anfragen Verkaufspreis OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 21

22 2. Grundkonzepte der Objektorientierung Abstraktion für Objekte Trenne Konzept und Umsetzung (Abstraktion) Je nach Anwendung sind unterschiedliche Abstraktionen sinnvoll (je nachdem was für die Anwendung wesentlich ist z.b. Makler, Architekt, Katasteramt,...) Eine Klasse definiert die (gemeinsamen)... Attribute ihrer Objekte Operationen ihrer Objekte Objekte werden oft auch Instanzen einer Klasse genannt Einfamilienhaus Haustyp Besitzer Adresse Wohnfläche Anzahl Bäder Hat Schwimmbad Garten Baujahr Verkaufspreis anfragen Verkaufspreis OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 22

23 2. Grundkonzepte der Objektorientierung Von Objekten zu Klassen... Klasse als Schablone Mitarbeiter-Objekt ändern Name Name Mitarbeiter-Objekt ändern Name Name Geh alt Geh alt ändern Gehalt ändern Gehalt OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 23

24 2. Grundkonzepte der Objektorientierung Kapselung Da Objekte nur noch über Methoden interagieren, kann das Innenleben der Objekte und Klassen verborgen werden Objekt Operation 1 Eine Klasse kapselt Attribute und Operationen Daten Operation 2 Zugriff auf die Daten erfolgt nur über die Operationen Die interne Realisierung ist von außen nicht sichtbar Botschaft Auswahl einer Operation OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 24

25 2. Grundkonzepte der Objektorientierung Kapselung und Klassen ein Beispiel Aufgabe: Entwerfe eine Klasse für die Verwaltung von Personen Name und Geschlecht sollen erfasst werden Das Alter soll später ausgegeben werden können Attribute Operationen -Name - SetName() und GetName(); - Gender - SetGender() und GetGender(); - DateOfBirth - SetDateOfBirth() und GetDateOfBirth(); - GetAge(); Operationen können mehr leisten als nur Attribute zurückliefern! Berechnungen durchführen (z.b. das Alter aus Datum und Geb.datum berechnen) Gültigkeitsprüfungen machen (z.b. bei SetDateOfBirth) Automatische Ergänzungen (z.b. in SetName Gender nach Vornamen vorbelegen)... OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 25

26 2. Grundkonzepte der Objektorientierung Wiederverwendung Klassen verbergen die Realisierung und bieten zum Objekt passende Schnittstellen Klassen können in verschiedenen Kontexten eingesetzt werden Klassen fördern die (systematische) Wiederverwendung OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 26

27 2. Grundkonzepte der Objektorientierung Beziehungen (Assoziationen) Objekte (bzw. Klassen) ausführlich im Kapitel UML stehen oft untereinander in Beziehung (z.b. ein Haus wird von einer Person bewohnt) bestehen oft aus mehreren anderen Objekten "Aggregation" (ein Auto besteht aus Reifen, Karosserie,... ) Konkretisieren die Eigenschaften einer anderen Klasse Spezialisierung (bei Programmierung -> Vererbung ); invers: Generalisierung (Ein LKW ist ein spezielles Kfz; ein Kfz ist eine Verallgemeinerung von PKW und LKW) können als Hierarchie dargestellt werden Generalisierungshierarchie bzw. Vererbungshierarchie (Ein Cabrio ist ein spezieller Pkw und ein Pkw ist ein spezielles Kfz.) OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 27

28 2. Grundkonzepte der Objektorientierung Polymorphismus Vielgestaltigkeit kennen Sie evtl. von generischen Datenstrukturen (Stack, Vector, Queue, etc.) Konzept der Programmierung, das es erlaubt, einem Wert oder einer Variablen mehrere Datentypen zuzuordnen gleiche Operation anwendbar auf unterschiedliche Objekte innerhalb einer Vererbungshierarchie oder gleiche Operation anwendbar auf Objekte mit einem Datentyp, der als Parameter übergeben wird ("Template") Vorteile: Vermeidung von typbasierten Fallunterscheidungen bzw. Casts konkrete Umsetzung erfolgt über Compiler bzw. Linker erleichtert die Benutzung von Klassen OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 28

29 2. Grundkonzepte der Objektorientierung Prinzipien der Objektorientierung: Zusammenfassung Sie kennen jetzt Objekte Klassen Attribute Operationen / Methoden Abstraktion Kapselung Spezialisierung bzw. Generalisierung Polymorphismus OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 29

30 Hochschule Darmstadt Fachbereich Informatik Objektorientierte Analyse und Design 3. Objektorientierte Software-Entwicklung OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 30

31 3. Objektorientierte SW-Entwicklung Lernziele Sie sollen in diesem Kapitel verstehen, wie die objektorientierte Entwicklungsmethode mit den traditionellen Entwicklungsmethoden zusammenhängen welche Vorteile die neuen Entwicklungsmethoden bieten welche Nachteile dadurch überwunden werden wie es zur Entstehung der UML kam und was sie beinhaltet welche Unterstützung Werkzeuge bei der objektorientierten SW-Entwicklung bieten Hinterher ahnen Sie, warum man in professionellen Projekten so entwickelt! OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 31

32 3. Objektorientierte SW-Entwicklung: Einleitung Klassen wie Sie es bisher kennen Sie kennen C++-Klassen aus Programmieren 1 mit C++ Header: class CTaschenrechner { private: CSpeicher m_cspeicher; }; private: CEinAusgabe m_ceinausgabe; private: CProzessor m_cprozessor; public: CTaschenrechner(void); public: void benutze(); class CSpeicher { private: double mstack[255]; }; public: CSpeicher(void); public: void push(double p); public: bool pop(double &p); public: void clear(); public: double readtop(); public: void dump(); OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 32

33 3. Objektorientierte SW-Entwicklung: Einleitung Bewertung der C++ Darstellung (I) Nachteile Verweise auf andere Klassen sind als Pointer oder Klassenobjekte in der Klassendefinition zwischen lokalen Variablen etc. "versteckt" viele Details sind im Code (.cpp) versteckt bei komplexen Aufgaben geht der Überblick schnell verloren Einarbeitung in fremden Code ist schwierig Idee Stelle die Inhalte übersichtlich dar Trenne in der Darstellung die Beziehungen zwischen Klassen von lokalen Daten Umsetzung UML bietet solche Darstellungsmöglichkeiten OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 33

34 3. Objektorientierte SW-Entwicklung: Einleitung Klassen etwas anders (C++ DesignKlassendiagramm) realisieren Beziehungen "besteht aus" "kennt" OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 34

35 3. Objektorientierte SW-Entwicklung: Einleitung Bewertung der Darstellung als C++ DesignKlassendiagramm Vorteile übersichtliche Darstellung Beziehung sind explizit dargestellt Nachteile Idee Darstellung hängt von der Syntax der Programmiersprache ab Darstellung hängt von den Features der Programmiersprache ab Immer noch viele Details definiere und verwende eine allgemeine Sprache mit mächtigen Features und bilde diese später auf die jeweilige Programmiersprache ab (so gut es eben geht) abstrahiere von Details (z.b. von Methoden) um die Übersichtlichkeit zu erhöhen Umsetzung UML bietet solche Darstellungsmöglichkeiten Abbildung der UML-Konstrukte auf Programmiersprachen erfolgt automatisch durch CASE-Tools OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 35

36 3. Objektorientierte SW-Entwicklung: Einleitung Klassen noch mal anders (AnalyseKlassendiagramm) keine Methoden verallgemeinerte Datentypen UML-Syntax für Attribute attributname [ : attributtyp [ = initialwert ] ] UML-Syntax für Methoden methodenname [( parametername [ : parametertyp] [,...] )] [ : rückgabetyp] OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 36

37 3. Objektorientierte SW-Entwicklung: Einleitung Bewertung der Darstellung als UML-AnalyseKlassendiagramm Vorteile übersichtliche Darstellung leicht verständlich unabhängig von der Programmiersprache...wenn man sich dran gewöhnt hat Modellierung auf hoher Abstraktionsebene auch mit Konstrukten, welche die Zielsprache evtl. nicht bietet Nachteile Syntax der UML muss erlernt werden Code-Rahmen müssen aus der UML-Darstellung generiert werden für Anfänger oft verwirrend Umsetzung UML bietet diese und noch viele weitere - Darstellungsmöglichkeiten CASE-Tools unterstützen die UML und das üben wir im Praktikum OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 37

38 3. Objektorientierte SW-Entwicklung: Einleitung Und nun das Ganze andersrum Es gibt viele Projekte, in denen das prinzipielle Vorgehen vom Code hin zum Analyse-Modell geht (Aufarbeitung von Altanwendung) Die Anforderungen und Modelle werden aus dem Code rekonstruiert Der Übergang vom Design- zum Analysemodell erfolgt manuell In einem "normalen" Projekt werden aber zuerst die Anforderungen erarbeitet und darauf basierend der Entwurf und der Code erstellt Analyse-Modell Konkretisierung Design-Modell Round-trip Engineering Code OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 38

39 Hochschule Darmstadt Fachbereich Informatik Objektorientierte Analyse und Design 3.1 Objektorientierte SW-Entwicklung: UML OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 39

40 3.1 Objektorientierte SW-Entwicklung: UML Die Entstehungsgeschichte der UML OML Firesmith, Henderson- Sellers, Page-Jones; 1998 Unified Method Booch, Rumbaugh; 1995 Unified Modeling Language v1.0 Booch, Jacobson, Rumbaugh; 1997 Catalysis D Souza, Willes; 1996 MOSES Henderson-Sellers; 1994 SOMA Graham; 1994 Fusion Coleman, et. al.; 1994 OBA Rubin; 1992 BON Nerson; 1992 OOA Coad, Yourdan; 1991 SCOOP Cherry; 1990 OOA&D Martin, Odell; 1992 HOOD ESA; 1990 OMT Rumbaugh, et. al.; 1991 Quelle und Literaturhinweis: OOD Booch; 1992 OBA Bailin; 1989 OOSE Jacobson; 1992 OSA Embley; 1991 RDD Wirfs-Brock; 1990 State Charts Harel; 1987 OOAD&I Henderson-Sellers, Macrone; 1992 OOSA Shlear, Mellor; 1991 OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 40

41 3.1 Objektorientierte SW-Entwicklung: UML UML als Vorgehensmodell? Es existier(t)en verschiedene objektorientierte Methoden Am bekanntesten: OMT: Object Modelling Technique (James Rumbaugh) OMT: Object Modelling Technique v. Rumbaugh,... OOD: Object Oriented Design v. Booch OOSE: Object Oriented Software-Eng. v. Jacobson OSA: Object Oriented System Analysis v. Shlaer/Mellor OOA: Object Oriented Analysis v. Coach/Yourdon Rumbaugh, Booch, Jacobson, Firma Rational. Standardisierungsvorschlag bei OMG eingereicht: 1997 Kein Vorgehensmodell! "Nur" Sammlung von Beschreibungsmitteln. OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 41

42 3.1 Objektorientierte SW-Entwicklung: UML UML Inhalte Die UML eignet sich zur durchgängigen (OO)-Modellierung vom Entwurf bis zur Implementierung: Statische Aspekte Struktur-Diagramme 1. Klassendiagramm 2. Objektdiagramm 3. Komponentendiagramm 4. Paketdiagramm 5. Verteilungsdiagramm 6. Kompositionsstrukturdiagramm 7. Profildiagramm Dynamische Aspekte Verhaltens-Diagramme 8. Use-Case-Diagramm 9. Zustandsautomat 10. Aktivitätsdiagramm Interaktionsdiagramme 11. Sequenzdiagramm 12. Kommunikationsdiagramm 13. Zeitverlaufsdiagramm 14. Interaktionsübersichtsdiagramm OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 42

43 3.1 Objektorientierte SW-Entwicklung: UML Quellen zur UML OOSE: Übersetzungstabelle Deutsch English UML-Notationsübersicht Glossar und vieles mehr OMG (Object Management Group): Offizielle Spezifikation und vieles mehr... OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 43

44 Hochschule Darmstadt Fachbereich Informatik Objektorientierte Analyse und Design 3.2 Werkzeuge zur objektorientierten SW-Entwicklung OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 44

45 3.2 Objektorientierte SW-Entwicklung: Werkzeuge Werkzeuge für die objektorientierte Entwicklung Leider meist proprietär! kein echter Im- / Export lange Zeit nur Werkzeuge für spezifische Teile der Entwicklung verfügbar Editoren Programmierumgebungen Analysetools Designtools Heute zunehmend CASE-Tools, die den gesamten SW-Lebenszyklus unterstützen z.b. Innovator, Eclipse, Rational Rose, Visual Studio.Net Generieren Designmodell aus Code ( Reverse Engineering ) Generieren Code(rahmen) aus Desingmodell ( Forward Engineering ) Zusammen Round-Trip-Engineering Unterstützen die UML Unterstützen Arbeit in großen Projekten und Teams OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 45

46 3.2 Objektorientierte SW-Entwicklung: Werkzeuge Warum sind diese Tools so kompliziert? Entwicklung in mehreren Teams an mehreren Standorten Schutz gegen gleichzeitiges Ändern an einem Modul: "Sperren (Locking)" Sicherung von Zwischenständen: "Versionsverwaltung" Verbergen von Zwischenständen vor anderen: "Freigabe"-Mechanismen Ergänzen von "Namespaces" zum Schutz vor gleichen Variablennamen Auslieferung von mehreren Releases Wiederherstellung von Zwischenständen (Releases) z.b. zum Bug-Tracking: erfordert Anbindung an "Konfigurationsmanagement" Pflege der Abhängigkeiten zwischen Modellen und Code Änderungen werden automatisch nachgezogen: "Round-Trip-Engineering" Arbeit mit sehr vielen Informationen Darstellung ausgewählter Teilinformationen: "Sichten und verschiedene Diagramme" Viele Dinge sind in großen Projekten einfach kompliziert und deshalb auch die Verwendung dieser Tools! OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 46

47 3.2 Objektorientierte SW-Entwicklung: Werkzeuge Überblick Objektorientierte Programmiersprachen C++ Bjarne Stroustrup (1986) Ziel: Erweiterung von C um Objektorientierung Viele Bibliotheken und Klassen verfügbar Pointer Speicherplatzverwaltung in Eigen-Regie Performanz statt Entwicklungskomfort OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 47

48 3.2 Objektorientierte SW-Entwicklung: Werkzeuge Überblick Objektorientierte Programmiersprachen Java SUN Microsystems (1995) Ziel: Plattformunabhängigkeit (Java Virtual Machine) Keine (fehlerträchtigen) Pointer Komponententechnik integriert Viele Bibliotheken und Klassen verfügbar Einsatz im Web-Umfeld Automatische Speicherverwaltung Rechnerleistung wird vorausgesetzt Entwicklungskomfort statt Performanz OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 48

49 3.2 Objektorientierte SW-Entwicklung: Werkzeuge Überblick Objektorientierte Programmiersprachen C# Microsoft (2001?) Ziel: Kombination der Vorteile von C++ & Java keine Header, keine Makros Compilierung des Codes in eine Zwischensprache Ausführung in der proprietären.net-laufzeitumgebung Entwicklungskomfort und Performanz (?) OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 49

50 3. Objektorientierte SW-Entwicklung Kontrollfragen Warum verwendet man in der UML eine spezielle Syntax zum spezifizieren von Attributen und Methoden? Wodurch unterscheidet sich das Analysemodell vom Designmodell? Was ist Polymorphismus? Was ist Kapselung? Ist jedes C++ - Programm auch objektorientiert? Kann man auch in Assembler objektorientiert entwickeln? In welchem Zusammenhang stehen Code und Designmodell? Warum kam es zur Entstehung der UML? Ist die UML ein Vorgehensmodell? Ahnen Sie jetzt, warum man in großen Projekten so entwickelt? OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 50

51 Hochschule Darmstadt Fachbereich Informatik Objektorientierte Analyse und Design 4. Objektorientierte Analyse OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 51

52 4. Objektorientierte Analyse Zur Erinnerung: Abstraktionsebenen gedankliche Ebene Reale Welt Abstraktion logische Ebene (Modell) OOA-Ebene OOD-Ebene Implementierungskonzepte Codierung physische Ebene (Implementierungsebene) Programm Arzt.cpp Abstraktionsebenen der objektorientierten Systementwicklung (4-Schichten-Modell) OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 52

53 4. Objektorientierte Analyse Anforderungsanalyse Typische Situation: Der Kunde oder Auftraggeber kommt und erklärt was er haben will... d.h. er beschreibt mehr oder weniger präzise seine Anforderungen In seiner eigenen Sprache mit Hinweisen auf Vorgängersysteme mit Lösungsideen Anforderungen können sein funktionale Anforderungen: - Gesamtablauf (Workflow): Beschreibt auch interne Abläufe - Anwendungsfälle: Beschreiben das Verhalten eines "Systems" an der Systemgrenze nicht funktionale Anforderungen: - Qualitäten des zukünftigen Systems: z.b. Performance, Ausfallsicherheit, Benutzerfreundlichkeit, Robustheit,... - Fertigstellungstermin, HW, SW Aber wie schreibt man das auf? OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 53

54 4. Objektorientierte Analyse Lernziele Sie sollen in diesem Kapitel verstehen, Wie die Ergebnisse der Anforderungsanalyse dokumentiert werden Was zur Dokumentation einer Anforderung gehört Welche Möglichkeiten Use Cases bieten Wie man Use Cases in Textform aufschreibt Wie man Use Cases in UML darstellt Wie man ein gesamtes System mit Use Cases beschreibt Welche alternativen Beschreibungsmöglichkeiten es gibt Hinterher wissen Sie wie man die Ergebnisse einer objektorientierten Analyse dokumentiert! OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 54

55 Hochschule Darmstadt Fachbereich Informatik Objektorientierte Analyse und Design 4.1 Textuelle Beschreibung von Use Cases OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 55

56 4.1 Textuelle Beschreibung von Use Cases Beispiel: Kundenanforderungen Geldautomat (ATM) Verbale Beschreibung eines (ungewöhnlich präzisen) Kunden: "Geld abheben" Nachdem der Kunde die Karte eingeschoben und die PIN und den Betrag eingegeben hat, wird der Betrag vom Konto abgebucht und die Karte und das Geld ausgegeben. Falls die PIN das 1. oder 2. Mal falsch eingegeben wurde, wird der Kunde benachrichtigt und die PIN wird erneut eingegeben. Falls die PIN ein 3. Mal falsch eingegeben wurde, protokolliert das System den Versuch, zieht die Karte ein und bricht die Kommunikation ab. Falls die Karte nicht gültig ist, wird dies dem Kunden mitgeteilt und die Karte wieder ausgegeben. Welche Teile müssen sequentiell ablaufen, was darf oder soll parallel laufen? Ist bei "oder" eventuell "entweder-oder" gemeint? Natürliche Sprachen sind oft nicht eindeutig genug für eine exakte Beschreibung! OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 56

57 4.1 Textuelle Beschreibung von Use Cases Notation am Beispiel: Geldautomat Exakte Beschreibung: "Geld abheben" 1. Kunde schiebt Karte ein. 2. Das System stellt fest, dass die Karte gültig ist. 3. Kunde gibt PIN ein. 4. Das System stellt fest, dass die PIN die richtige PIN zur Karte ist. 5. Kunde gibt gewünschten Betrag ein. 6. System bucht Betrag vom Konto ab. 7. System gibt Karte aus. 8. System gibt Geld aus. Ziel ("Goal") Ablauf ("Basic Course") "Aktionen" ("Action-Steps") Verwenden Sie einfache und klare Sätze! Aktive Formulierungen mit Subjekt, Prädikat, Objekt! OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 57

58 4.1 Textuelle Beschreibung von Use Cases Ergebnis eines Anwendungsfalls (Use Case) Der Benutzer des Systems erwartet ein bestimmtes Ergebnis, wenn der Anwendungsfall erfolgreich verläuft Success Guarantees oder Use Case-Business-Result Sind Bedingungen, die im Erfolgsfall erfüllt werden Der Use Case wurde bis zum Ende durchgeführt und nicht abgebrochen Beispiele für Success Guarantees - "Das Geld wurde vom Automat ausgegeben und vom Konto abgebucht" - "Die Karte wurde vom Automat ausgegeben" Minimal Guarantees Bedingungen, die immer d.h. im Erfolgsfall und auch bei Abbruch erfüllt sind Beispiele für Minimal Guarantees - "Alle Fehler und Transaktionsdaten wurden protokolliert." - "Das System ist wieder bereit für den nächsten Kunden" Aber was passiert, wenn der Use Case nicht erfolgreich abläuft? OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 58

59 4.1 Textuelle Beschreibung von Use Cases Alternativer Ablauf eines Use Cases Bedingung Alternative Course: 4a. Das System erkennt, dass die PIN das 1. oder 2. Mal falsch eingegeben wurde: 4a1. Das System protokolliert den Fehlversuch. 4a2. Das System benachrichtigt den Kunden. 4a3. Rückkehr nach 3. Bezug zum Basic Course Alternative Course: 4b. Das System erkennt, dass die PIN das 3. Mal falsch eingegeben wurde: 4b1. Das System protokolliert den Versuch. 4b2. Das System zieht endgültig die Karte ein. 4b3. Das System benachrichtigt den Kunden. 4b4. Use Case wird abgebrochen. "Alternative Course" "Aktionen" ("Action-Steps") OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 59

60 4.1 Textuelle Beschreibung von Use Cases Alternative Course: Übung Es wird eine ungültige Karte in den Geldautomaten eingeschoben (z.b. die Mensakarte). Beschreiben Sie den alternativen Ablauf! Alternative Course: 2a. Das System erkennt, dass die Karte nicht gültig ist: 2a1. Das System protokolliert den Versuch. 2a2. Das System benachrichtigt den Kunden 2a3. Das System gibt die Karte aus. 2a4. Der Use Case wird abgebrochen. OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 60

61 4.1 Textuelle Beschreibung von Use Cases Auslösung eines Use Cases Ein Use Case wird durch ein bestimmtes Ereignis gestartet ein Kunde ruft an um 19:00 Uhr startet die Datensicherung das System stellt einen Fehler fest Der "Trigger" ist die erste Aktion, die mit unserem System interagiert Der "Primary Actor" ist derjenige, der die erste Aktion des Use Case anstößt, um ein Ziel zu erreichen Das muss nicht derjenige sein, der selbst direkt mit dem System kommuniziert, sondern evtl. auch der Anrufer, der die Erfassung eines Auftrags durch einen Sachbearbeiter anstößt. Beispiel: Ein Kunde ruft an und will einen Auftrag vergeben. Die erste Aktion (mit unserem Auftragserfassungssystem) ist dann: Der Sachbearbeiter ruft das Auftragserfassungsprogramm auf "Trigger" "Primary Actor" "Actor" OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 61

62 4.1 Textuelle Beschreibung von Use Cases Wer definiert Use Cases? Alle Personen, die ein berechtigtes Interesse an einem bestimmten Verhalten des Systems haben nicht nur die Akteure, sondern auch: Besitzer des zukünftigen Systems, der Abteilungsleiter, die interne Revisionsabteilung aber nicht der Einbrecher für eine Alarmanlage Die Akteure sind oft für die Definition der Use Cases gar nicht so wichtig Die Interessen der Stakeholder äußern sich in den Action-Steps z. B. Interesse des Kunden / der Bank: "keine unberechtigte Abhebung": - Einschieben EC-Karte, PIN-Überprüfung "Stakeholders" & "Interests" ist zwar Actor, aber kein Stakeholder! Interesse des Kunden: "Falls Karte / Geld nach Ausgabe nicht entnommen wird, soll dem Kunde kein Schaden entstehen": - Wieder-Einziehen der Karte / des Geldes und späteres Abholen der Karte am Schalter / Gutschrift des Gelds aufs Konto OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 62

63 4.1 Textuelle Beschreibung von Use Cases Muster für Use Case-Spezifikation (I) Use Case Name Primary Actor Further Actors <name = Use Case-Goal> <a role name for the primary actor or description> <Role Name for further actors or description> Stakeholders and their Interests Success Guarantees Minimal Guarantees Trigger <list of stakeholders and their key interests in the use case> <the state of the world if goal succeeds> <how the interests are protected under all exits> <what starts the Use Case (may be a time event)> OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 63

64 4.1 Textuelle Beschreibung von Use Cases Muster für Use Case-Spezifikation (II) Basic Course (Main Success Scenario) Alternative Course <put here the steps of the scenario from trigger to goal delivery and any cleanup after> <step#> <action description> <step#> <action description> <step# with reference to step in Basic Course (same step-number with following a. or b...., e.g. 2a.)> <Condition> <step# of the Alternative Course, e.g. 2a1.> <action description>... (Return point is specified in the action description in step(s) in the alternative Course) Es gibt diverse ähnliche Templates für die Beschreibung! Häufig mit weiteren Rubriken (z.b. Vor- & Nachbedingungen oder Ausnahmen) OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 64

65 4.1 Textuelle Beschreibung von Use Cases Beispiel "Geld abheben": Use Case-Spezifikation (I) Use Case Name Primary Actor Further Actors Stakeholders and their Interests Success Guarantees Minimal Guarantees Trigger Geld abheben Kunde -- Bank: Schutz vor unberechtigtem Zugriff Kunde: Abbuchung nur nach Auszahlung Das Geld wurde vom Automat ausgegeben und vom Konto abgebucht Die Karte wurde vom Automat ausgegeben. Alle Fehler und Transaktionsdaten wurden protokolliert Das System ist bereit für den nächsten Kunden. Kunde schiebt Karte ein OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 65

66 4.1 Textuelle Beschreibung von Use Cases Beispiel "Geld abheben": Use Case-Spezifikation (II) Basic Course (Main Success Scenario) Alternative Course (2a) 1.Kunde schiebt Karte ein. 2.Das System stellt fest, dass die Karte gültig ist. 3.Kunde gibt PIN ein. 4.Das System stellt fest, dass die PIN die richtige PIN zur Karte ist. 5.Kunde gibt gewünschten Betrag ein. 6.System bucht Betrag vom Konto ab. 7.System gibt Karte aus. 8.System gibt Geld aus. 2a. System erkennt, dass die Karte nicht gültig ist: 2a1. Das System protokolliert den Versuch. 2a2. Das System benachrichtigt den Kunden 2a3. Das System gibt die Karte aus. 2a4. Use Case wird abgebrochen. OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 66

67 4.1 Textuelle Beschreibung von Use Cases Beispiel "Geld abheben": Use Case-Spezifikation (III) Alternative Course (4a) 4a. Das System erkennt, dass die PIN das 1. oder 2. Mal falsch eingegeben wurde: 4a1. Das System protokolliert den Versuch. 4a2. Das System benachrichtigt den Kunden. 4a3. Rückkehr nach 3. Alternative Course (4b) 4b. Das System erkennt, dass die PIN das 3. Mal falsch eingegeben wurde: 4b1. Das System protokolliert den Versuch. 4b2. System zieht die Karte endgültig ein. 4b3. Das System benachrichtigt den Kunden. 4b4. Use Case wird abgebrochen. (2a) und (4b) sind Exceptions, d. h. hier sind die Success Guarantees nicht erfüllt die Minimal Guarantees aber schon! OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 67

68 4.1 Textuelle Beschreibung von Use Cases Gedanken zu Use Cases Ein Use Case beschreibt eine Menge von Aktionsfolgen, einschließlich Varianten, die ein System ausführt, um ein erkennbares, für einen Aktor nützliches Ergebnis zu erarbeiten. Ein Use Case stellt eine funktionale Anforderung an das System als Ganzes dar Ein Use Case beschreibt nicht, wie das Verhalten implementiert wird Use Cases sind geeignet um das Verhalten eines Systems zu visualisieren, zu spezifizieren, und zu dokumentieren Use Cases bieten eine Basis für die Verständigung von Entwicklern, Endanwendern und Fachleuten für den Anwendungsbereich; für die Requirements, für die Überprüfung der Architektur, und für den Test Die Sammlung der Use Cases ergibt noch keine vollständige Sammlung der Requirements! OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 68

69 4.1 Textuelle Beschreibung von Use Cases Tipps für die Beschreibung des Ablaufs Benutze eine einfache Grammatik Zeige immer klar: Wer hat den Ball : System gibt Meldung... aus Kunde wählt am System... aus System führt... aus, bis... eintritt Schreibe aus der User- (bzw. Vogel)perspektive (keine System-Interna!) Vermeide Passiv und Konjunktiv ("Es sollte angezeigt werden") Zeige wie sich der Prozess fortbewegt Zeige was der Aktor will, nicht seine Bewegungen Benutze eine sinnvolle Menge von Aktionen Wähle exakte Begriffe und Wörter verwende z.b. validiere, und nicht überprüfe"! Das System validiert das Passwort und überprüft es nicht wenn sinnvoll, erwähne die Zeit OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 69

70 4.1 Textuelle Beschreibung von Use Cases Lange Use Cases Geld abheben 1. Kunde schiebt Karte ein. 2. Das System stellt fest, dass die Karte gültig ist. 3. PIN-Eingabe: Kunde gibt PIN ein. 4. PIN-Prüfung: Das System stellt fest, dass die PIN die richtige PIN zur Karte ist. 5. Kunde gibt gewünschten Betrag ein. 6. System bucht Betrag vom Konto ab. 7. System gibt Karte aus. 8. System gibt Geld aus. Annahmen In Schritt 5 können alternativ neue Schecks angefordert werden (mit Angabe der Anzahl) In Schritt 5 kann zusätzlich ein Kontoauszug gedruckt werden Nach der Eingabe des Betrags in Schritt 5 kann die Stückelung des Geldes (Große oder kleine Scheine) gewählt werden. Diese Schritte werden auch von anderen Use-Cases verwendet... Wie kann das dargestellt werden ohne alles mehrfach in verschiedenen Use Cases zu beschreiben? OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 70

71 4.1 Textuelle Beschreibung von Use Cases Auslagern von Teilen von Use Cases Aber bitte nicht zum "Programmieren" verwenden! Es gibt bei Use Cases zwei Mechanismen um Teile auszulagern Include Analog zu dem Include von C++ d.h. durch einen Include-Befehl im Hauptablauf wird der ausgelagerte Ablauf eingelesen und an dieser Stelle eingefügt Extend Ein Extend lagert einen Ablauf aus, der optional ist d.h. nicht immer ausgeführt wird. Ein Schritt im normalen Ablauf wird durch einer ausgelagerte Funktionalität ausgedehnt. Der Extend-Use Case verweist auf den zu erweiternden Schritt im Hauptablauf. Extend- und Include-Use Cases werden immer als vollständige Use Cases beschrieben! müssen eine Funktionalität aus Benutzersicht erbringen Unterschiedliche Verweis-Richtungen! Das bisherige Use Case Template muss um entsprechende Verweise erweitert werden! OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 71

72 4.1 Textuelle Beschreibung von Use Cases Extend und Include: Verknüpfung Use Case Name Primary Actor Further Actors Stakeholders and their Interests Success Guarantees Minimal Guarantees Trigger Extend Use Case for Base UC: Condition: Extension Point (in Base UC) Return Point (in Base UC): Basic Course (Main Success Scenario) <name = Use Case-Goal> <a role name for the primary actor or description> <Role Name for further actors or description> <list of stakeholders and their key interests in the use case> <the state of the world if goal succeeds> <how the interests are protected under all exits> <what starts the Use Case (may be a time event)> If the described Use Case is an Extend Use Case to one or more Base UCs: For each Base Use Case please specify: Name of Base Use Cases that are extended: Condition: <Condition> Extension Point <step# or label in Base UC> Return Point: <step# in Base Use Case > <step # Extend Label>... <step #>... <step #> Include: <Name of Included Use Case> Use Case Name Primary Actor Further Actors Stakeholders and their Interests Success Guarantees Minimal Guarantees Trigger <name = Use Case-Goal> Extend Use Case Extend Use Case for Base UC: Condition: Extension Point (in Base UC) Return Point (in Base UC): Basic Course (Main Success Scenario) Extend-Ablauf <a role name for the primary actor or description> <Role Name for further actors or description> <list of stakeholders and their key interests in the use case> <the state of the world if goal succeeds> <how the interests are protected under all exits> <what starts the Use Case (may be a time event)> If the described Use Case is an Extend Use Case to one or more Base UCs: For each Base Use Case please specify: Name of Base Use Cases that are extended: Condition: <Condition> Extension Point <step# or label in Base UC> Return Point: <step# in Base Use Case > Use Case Name <step #>... Primary Actor <step #> Include: <Name of Included Use Case> <step #>... Further Actors Stakeholders and their Interests <name = Use Case-Goal> <a role name for the primary actor or description> <Role Name for further actors or description> <list of stakeholders and their key interests in the use case> Success Guarantees <the state of the world if goal succeeds> Include Use Case Minimal Guarantees <how the interests are protected under all exits> Trigger Extend Use Case for Base UC: Condition: Extension Point (in Base UC) Verweis auf Include-Ablauf Return Point (in Base UC): <what starts the Use Case (may be a time event)> If the described Use Case is an Extend Use Case to one or more Base UCs: For each Base Use Case please specify: Name of Base Use Cases that are extended: Condition: <Condition> Extension Point <step# or label in Base UC> Return Point: <step# in Base Use Case > Basic Course (Main Success Scenario) <step #>... <step #> Include: <Name of Included Use Case> <step #>... OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 72

73 4.1 Textuelle Beschreibung von Use Cases Erweitertes Muster für Use Case-Spezifikation (mit Extend & Include) Extend Use Case for Base UC: Condition: Extension Point (in Base UC) Return Point (in Base UC): Basic Course (Main Success Scenario) If the described Use Case is an Extend Use Case to one or more Base UCs: For each Base Use Case please specify: Name of Base Use Cases that are extended: Condition: <Condition> Extension Point <step# or label in Base UC> Return Point: <step# in Base Use Case > or "abort" <step # Extend Label>... <step #>... <step #> Include: <Name of Included Use Case> OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 73

74 4.1 Textuelle Beschreibung von Use Cases Beispiel: Der bisherige Use Case "Geld abheben" Basic Course Alternative Course (2a) 1. Kunde schiebt Karte ein. 2. Das System stellt fest, dass die Karte gültig ist. 3. Kunde gibt PIN ein. 4. Das System stellt fest, dass die PIN die richtige PIN zur Karte ist. 5. Kunde gibt gewünschten Betrag ein. 6. System bucht Betrag vom Konto ab. 7. System gibt Karte aus. 8. System gibt Geld aus. 2a. Das System erkennt, dass die Karte nicht gültig ist: 2a1. Das System protokolliert den Versuch. 2a2. Das System benachrichtigt den Kunden 2a3. Das System gibt die Karte aus. 2a4. Use Case wird abgebrochen. Modelliere den Alternative Course 2a als eigenständigen Extend Use Case "Auf ungültige Karte reagieren Grund: Auf ungültige Karte reagieren wird auch von anderen Use-Cases verwendet OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 74

75 4.1 Textuelle Beschreibung von Use Cases Beispiel: Extend - Use Case "Auf ungültige Karte reagieren" Use Case Name Primary Actor Further Actors Stakeholders & Interests Success Guarantees Minimal Guarantees Trigger Auf ungültige Karte reagieren Kunde -- Bank: Schutz vor unberechtigtem Zugriff Die Karte wurde vom Automat ausgegeben. Alle Fehler und Transaktionsdaten wurden protokolliert Der Automat hat kein Geld ausgegeben und auch kein Geld abgebucht Das System ist bereit für den nächsten Kunden. Das System erkennt, dass die Karte nicht gültig ist OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 75

76 4.1 Textuelle Beschreibung von Use Cases Beispiel: Extend - Use Case "Auf ungültige Karte reagieren" (II) Extend Use Case for Base UC: Condition: Extension Point (in Base UC) Return Point (in Base UC): Basic Course (Main Success Scenario) Geld abheben Das System erkennt, dass die Karte nicht gültig ist 2. bzw. <Karten-Prüfung> (ein Label ist besser) abort 1. Das System protokolliert den Versuch 2. Das System benachrichtigt den Kunden 3. Das System gibt die Karte aus 4. Use Case wird beendet Für jeden UC, der damit erweitert wird An der Zeilennummer bei Extension Point und Return Point erkennt man, ob es sich um einen Vorwärts- oder Rückwärtssprung handelt! OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 76

77 4.1 Textuelle Beschreibung von Use Cases Beispiel: "Geld abheben" - Änderungen wegen Extend (I) Use Case Name Primary Actor Further Actors Stakeholders and their Interests Success Guarantees Minimal Guarantees Trigger Geld abheben Kunde -- Bank: Schutz vor unberechtigtem Zugriff Kunde: Abbuchung nur nach Auszahlung Das Geld wurde vom Automat ausgegeben und vom Konto abgebucht Die Karte wurde vom Automat ausgegeben. Unverändert Alle Fehler und Transaktionsdaten wurden protokolliert Das System ist bereit für den nächsten Kunden. Kunde schiebt Karte ein OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 77

78 4.1 Textuelle Beschreibung von Use Cases Beispiel: "Geld abheben" - Änderungen wegen Extend (II) Extend Use Case for Base UC: Condition: Extension Point Return Point: Basic Course (Main Success Scenario) -- wird nicht als Extend-UC eingesetzt 1. Kunde schiebt Karte ein. 2. <Karten-Prüfung> Das System stellt fest, dass die Karte gültig ist. 3. Kunde gibt PIN ein. 4. Das System stellt fest, dass die PIN die richtige PIN zur Karte ist. 5. Kunde gibt gewünschten Betrag ein. 6. System bucht Betrag vom Konto ab. 7. System gibt Karte aus. 8. System gibt Geld aus. Label für Extend eingefügt OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 78

79 4.1 Textuelle Beschreibung von Use Cases Beispiel: "Geld abheben" - Änderungen wegen Extend (III) Alternative Course (4a) Alternative Course (4b) 4a. Das System erkennt, dass die PIN das 1. oder 2. Mal falsch eingegeben wurde: 4a1. Das System protokolliert den Versuch. 4a2. Das System benachrichtigt den Kunden. 4a3. Rückkehr nach 3. 4b. Das System erkennt, dass die PIN das 3. Mal falsch eingegeben wurde: 4b1. Das System protokolliert den Versuch. 4b2. Das System zieht endgültig die Karte ein. bisheriger Alternative Course 2a fehlt, sonst unverändert 4b3. Das System benachrichtigt den Kunden. 4b4. Use Case wird abgebrochen. OOAD, Prof. Dr. Ralf Hahn, Prof. Dr. Wolfgang Weber SS2011, h_da, Fachbereich Informatik 79

Objektorientierte Analyse und Design

Objektorientierte Analyse und Design Hochschule Darmstadt Fachbereich Informatik Objektorientierte Analyse und Design 4. Objektorientierte Analyse OOAD, Prof. Dr. Ralf Hahn, SS2008, h_da, Fachbereich Informatik 51 4. Objektorientierte Analyse

Mehr

09.01.14. Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML)

09.01.14. Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML) Vorlesung Programmieren Unified Modeling Language (UML) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Unified Modeling Language (UML)

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren Unified Modeling Language (UML) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Unified Modeling Language (UML)

Mehr

Kapitelübersicht. Was ist So#waretechnik? Historische Entwicklung der So9waretechnik Prinzipien, Methoden, Werkzeuge. Was bedeutet Objektorien+erung?

Kapitelübersicht. Was ist So#waretechnik? Historische Entwicklung der So9waretechnik Prinzipien, Methoden, Werkzeuge. Was bedeutet Objektorien+erung? Kapitelübersicht Was ist So#waretechnik? Historische Entwicklung der So9waretechnik Prinzipien, Methoden, Werkzeuge Was bedeutet Objektorien+erung? ObjektorienCerte Analyse und Design die Objektmodellierung

Mehr

Use Cases. Use Cases

Use Cases. Use Cases Use Cases Eigenschaften: Ein Use Case beschreibt einen Teil des Verhaltens eines Systems aus externer Sicht (Formuliert in der der Fachsprache der Anwendung) Dies geschieht, indem ein Systemdialog beschrieben

Mehr

Guido de Melo 5.2.2007 Fachvortrag, Uni Ulm UML 2.0. Für den Einsatz in der Praxis

Guido de Melo 5.2.2007 Fachvortrag, Uni Ulm UML 2.0. Für den Einsatz in der Praxis Guido de Melo 5.2.2007 Fachvortrag, Uni Ulm UML 2.0 Für den Einsatz in der Praxis Seite 2 Überblick 1. Ziele 2. Warum das alles? 3. Was ist UML 4. Diagrammarten 5. Umfeld Seite 3 1. Ziele 1. Ziele dieses

Mehr

Softwaretechnik (Allgemeine Informatik) Überblick

Softwaretechnik (Allgemeine Informatik) Überblick Softwaretechnik (Allgemeine Informatik) Überblick 1 Einführung und Überblick 2 Abstraktion 3 Objektorientiertes Vorgehensmodell 4 Methoden der Anforderungs- und Problembereichsanalyse 5 UML-Diagramme 6

Mehr

SEP 114. Design by Contract

SEP 114. Design by Contract Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit

Mehr

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel.

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel. EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel.de/~mtr FRAGEN / ANMERKUNGEN Vorlesung Neue Übungsaufgaben MODELLIERUNG

Mehr

Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht

Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur UML-Klassendiagramme als Werkzeug im Unterricht Blitzlicht? In welcher Programmiersprache(n) unterrichten Sie?? In welchem Umfang unterrichten Sie Objektorientierung??

Mehr

Hochschule Darmstadt Fachbereich Informatik. Softwaretechnik II. 4.1 Darstellung der Architektur

Hochschule Darmstadt Fachbereich Informatik. Softwaretechnik II. 4.1 Darstellung der Architektur Hochschule Darmstadt Fachbereich Informatik Softwaretechnik II 4.1 Darstellung der Architektur Darstellung der Architektur Was macht ein Architekt? Viele Pläne! Endkunde Elektro Bauarbeiter Sanitär Softwaretechnik

Mehr

Objektorientierte Programmierung OOP

Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte

Mehr

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,

Mehr

Kapitel 2: Der Software-Entwicklungsprozess

Kapitel 2: Der Software-Entwicklungsprozess Wie konstruiert man Software? Kapitel 2: Der Software-Entwicklungsprozess SoPra 2008 Kap. 2: Der Software-Entwicklungsprozess (1/10) Der Software-Entwicklungs-Prozess Historisches 1960JJ adhoc Techniken

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

UML Klassendiagramm. Igor Karlinskiy, Mikhail Gavrish

UML Klassendiagramm. Igor Karlinskiy, Mikhail Gavrish UML Klassendiagramm Igor Karlinskiy, Mikhail Gavrish Agenda Wichtigste Eigenschaften Syntaktische Elemente mit entsprechendem C++ Code Analysemodell Designmodell Quellen 2 Klassendiagramm gibt die Möglichkeit,

Mehr

Softwaretechnologie Wintersemester 2009/2010 Dr. Günter Kniesel, Pascal Bihler

Softwaretechnologie Wintersemester 2009/2010 Dr. Günter Kniesel, Pascal Bihler Übungen zur Vorlesung Softwaretechnologie Wintersemester 2009/2010 Dr. Günter Kniesel, Pascal Bihler Übungsblatt 4 Lösungshilfe. Aufgabe 1. Zustandsdiagramm (8 Punkte) Geben Sie ein Zustandsdiagramm für

Mehr

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum C A R L V O N O S S I E T Z K Y Agile Vorgehensmodelle in der Softwareentwicklung: Scrum Johannes Diemke Vortrag im Rahmen der Projektgruppe Oldenburger Robot Soccer Team im Wintersemester 2009/2010 Was

Mehr

Software Engineering Interaktionsdiagramme

Software Engineering Interaktionsdiagramme Software Engineering Interaktionsdiagramme Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Nachrichtenaustausch Welche Nachrichten werden ausgetauscht? (Methodenaufrufe)

Mehr

Software Engineering in der Praxis

Software Engineering in der Praxis Inhalt Nachlese Aufgaben Literatur Software Engineering in der Praxis Praktische Übungen Inhalt Nachlese Aufgaben Literatur Marc Spisländer Dirk Wischermann Lehrstuhl für Software Engineering Friedrich-Alexander-Universität

Mehr

Unified Modeling Language (UML)

Unified Modeling Language (UML) Kirsten Berkenkötter Was ist ein Modell? Warum Modellieren? Warum UML? Viele, viele Diagramme UML am Beispiel Was ist ein Modell? Ein Modell: ist eine abstrakte Repräsentation eines Systems, bzw. ist eine

Mehr

RUP Analyse und Design: Überblick

RUP Analyse und Design: Überblick Inhaltsverzeichnis Übersicht [, 2, 8] 3. Vorgehensweise............................... 5 2 Planungsmethoden 37 2. Definitionsphase.............................. 6 3 Rational Unified Process [5, 6] und

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

Daniel Warneke warneke@upb.de 08.05.2006. Ein Vortrag im Rahmen des Proseminars Software Pioneers

Daniel Warneke warneke@upb.de 08.05.2006. Ein Vortrag im Rahmen des Proseminars Software Pioneers Design Patterns Daniel Warneke warneke@upb.de 08.05.2006 Ein Vortrag im Rahmen des Proseminars Software Pioneers Design Patterns 1/23 Übersicht Einleitung / Motivation Design Patterns Beispiele Rolle des

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

Software-Engineering

Software-Engineering FH Wedel Prof. Dr. Sebastian Iwanowski SWE2 Folie 1 Software-Engineering Sebastian Iwanowski FH Wedel Kapitel 2: Grundbegriffe und Prinzipien FH Wedel Prof. Dr. Sebastian Iwanowski SWE2 Folie 2 Grundbegriffe

Mehr

Software Engineering. 3. Anforderungsanalyse. Franz-Josef Elmer, Universität Basel, WS 2006/07

Software Engineering. 3. Anforderungsanalyse. Franz-Josef Elmer, Universität Basel, WS 2006/07 Software Engineering 3. Anforderungsanalyse Franz-Josef Elmer, Universität Basel, WS 2006/07 Software Engineering: 3. Anforderungsanalyse 2 Definitionen Anforderungen (Requirements): Beschreibung aller

Mehr

Software Engineering in der Praxis

Software Engineering in der Praxis Software Engineering in der Praxis Praktische Übungen Meitner, Spisländer FAU Erlangen-Nürnberg Objektorientiertes Design 1 / 16 Objektorientiertes Design Matthias Meitner Marc Spisländer Lehrstuhl für

Mehr

Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015

Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015 Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015 CODESYS a trademark of 3S-Smart Software Solutions GmbH Agenda 1 Warum

Mehr

SWE5 Übungen zu Software-Engineering

SWE5 Übungen zu Software-Engineering 1 Übungen zu Software-Engineering 1) Klassen und Objekte 2) Telefonanlage 3) Objekt- und Klassendiagramme 4) Assoziationen 5) Telefonanlage (Erweiterung) 6) Fahrzeuge 7) Familien 2 Aufgabe 1: Klassen und

Mehr

Informationswirtschaft II Rational Unified Process (RUP)

Informationswirtschaft II Rational Unified Process (RUP) Informationswirtschaft II Rational Unified Process (RUP) Wolfgang H. Janko, Michael Hahsler und Stefan Koch Inhalt Historische Entwicklung Kennzeichen von RUP Lebenszyklus und Phasen Arbeitsabläufe Das

Mehr

Informationswirtschaft II

Informationswirtschaft II Rational Unified Process (RUP) Informationswirtschaft II Wolfgang H. Janko, Michael Hahsler und Stefan Koch Seite 1 Inhalt Historische Entwicklung Kennzeichen von RUP Lebenszyklus und Phasen Arbeitsabläufe

Mehr

How to do? Projekte - Zeiterfassung

How to do? Projekte - Zeiterfassung How to do? Projekte - Zeiterfassung Stand: Version 4.0.1, 18.03.2009 1. EINLEITUNG...3 2. PROJEKTE UND STAMMDATEN...4 2.1 Projekte... 4 2.2 Projektmitarbeiter... 5 2.3 Tätigkeiten... 6 2.4 Unterprojekte...

Mehr

Klausur Software Engineering für WI (EuI)

Klausur Software Engineering für WI (EuI) Autor: Prof. Dr. Bernhard Humm, FB Informatik, FH Darmstadt Datum: 14. Februar 2006 Klausur Software Engineering für WI (EuI) Ihr Name: Ihre Matrikelnummer Erreichte Punkte (von insgesamt 57 Punkten):

Mehr

Vorlesung "Software-Engineering"

Vorlesung Software-Engineering Vorlesung "Software-Engineering" Rainer Marrone, TUHH, Arbeitsbereich STS Vorige Vorlesung Pflichtenheft (requirements specification document) Charakterisierung von Software-Qualität Detaillierte Anforderungsanalyse

Mehr

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007 Fachhochschule Bonn-Rhein-Sieg University of Applied Sciences Fachbereich Informatik Prof. Dr. Peter Becker Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Mehr

Übung 4. Musterlösungen

Übung 4. Musterlösungen Informatik für Ökonomen II HS 2010 Übung 4 Ausgabe: 18.11.2010 Abgabe: 25.11.2010 Musterlösungen Schreiben Sie Ihre Namen und Ihre Matrikelnummern in die vorgesehenen Felder auf dem Deckblatt. Formen Sie

Mehr

Requirements Engineering I

Requirements Engineering I Norbert Seyff Requirements Engineering I UML Unified Modeling Language! 2006-2012 Martin Glinz und Norbert Seyff. Alle Rechte vorbehalten. Speicherung und Wiedergabe für den persönlichen, nicht kommerziellen

Mehr

Klassendiagramm. (class diagram)

Klassendiagramm. (class diagram) : Klassendiagramm http:///topic95.html Klassendiagramm (class diagram) Klassendiagramm Objektdiagramm Komponentendiagramm Kompositionsstrukturdiagramm Verteilungsdiagramm Einstieg Paketdiagramm Aufbau

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22 Kapitel 19 Vererbung, UML Seite 1 von 22 Vererbung - Neben der Datenabstraktion und der Datenkapselung ist die Vererbung ein weiteres Merkmal der OOP. - Durch Vererbung werden die Methoden und die Eigenschaften

Mehr

Use Cases. Die Sicht des Nutzers. Fortgeschrittenenpraktikum SS 2004

Use Cases. Die Sicht des Nutzers. Fortgeschrittenenpraktikum SS 2004 Use Cases Die Sicht des Nutzers Fortgeschrittenenpraktikum SS 2004 Gunar Fiedler Lehrstuhl für Technologie der Informationssysteme Kontakt: fiedler@is.informatik.uni-kiel.de Use Cases 2 Was ist ein Use

Mehr

Objektorientierte Analyse und Design

Objektorientierte Analyse und Design Hochschule Darmstadt Fachbereich Informatik Objektorientierte Analyse und Design 1. Motivation SS 2014 Einige Folien dieser Vorlesung entstammen Präsentationen von A. del Pino, U. Andelfinger, B. Humm,

Mehr

Prüfung Software Engineering I (IB)

Prüfung Software Engineering I (IB) Hochschule für angewandte Wissenschaften München Fakultät für Informatik und Mathematik Studiengruppe IB 3 A Wintersemester 2014/15 Prüfung Software Engineering I (IB) Datum : 21.01.2015, 14:30 Uhr Bearbeitungszeit

Mehr

Objektbasierte Entwicklung

Objektbasierte Entwicklung Embedded Software Objektbasierte Entwicklung Objektorientierung in C? Prof. Dr. Nikolaus Wulff Objektbasiert entwickeln Ohne C++ wird meist C im alten Stil programmiert. => Ein endlose while-schleife mit

Mehr

Übungsklausur vom 7. Dez. 2007

Übungsklausur vom 7. Dez. 2007 Übungsklausur vom 7. Dez. 2007 Ein Lösungsmuster Teilbereiche der Softwaretechnik Software Anforderungen Software Entwurf Software Konstruktion Software Test Software Wartung Software Konfigurationsmanagement

Mehr

Unsere Kunden erzählen keine Geschichten. Ursula Meseberg microtool GmbH Berlin

Unsere Kunden erzählen keine Geschichten. Ursula Meseberg microtool GmbH Berlin Unsere Kunden erzählen keine Geschichten Ursula Meseberg microtool GmbH Berlin Unsere Kunden erzählen keine Geschichten Ein modellbasierter Prozess für die Anforderungsanalyse im Vorfeld agiler Produktentwicklung

Mehr

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am 14.08.08

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am 14.08.08 Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements von Stephanie Wilke am 14.08.08 Überblick Einleitung Was ist ITIL? Gegenüberstellung der Prozesse Neuer

Mehr

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005 Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der

Mehr

3.4 Unified Process. 1999 Ivar Jacobson, Grady Booch, James Rumbaugh: The Unified Software Development Process.

3.4 Unified Process. 1999 Ivar Jacobson, Grady Booch, James Rumbaugh: The Unified Software Development Process. 1999 Ivar Jacobson, Grady Booch, James Rumbaugh: The Unified Software Development Process. 1996 Philippe Kruchten: Rational Unified Process Produkt der Firma Seit 2002 Teil des IBM Konzerns Objektorientiertes

Mehr

Anforderungen an die HIS

Anforderungen an die HIS Anforderungen an die HIS Zusammengefasst aus den auf IBM Software basierenden Identity Management Projekten in NRW Michael Uebel uebel@de.ibm.com Anforderung 1 IBM Software Group / Tivoli Ein Feld zum

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

Übungen zur Softwaretechnik

Übungen zur Softwaretechnik Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 9 17. Dezember 2002 www4.in.tum.de/~rumpe/se

Mehr

Softwaretechnologie -Wintersemester 2013/2014 - Dr. Günter Kniesel

Softwaretechnologie -Wintersemester 2013/2014 - Dr. Günter Kniesel Übungen zur Vorlesung Softwaretechnologie -Wintersemester 2013/2014 - Dr. Günter Kniesel Übungsblatt 3 - Lösungshilfe Aufgabe 1. Klassendiagramme (9 Punkte) Sie haben den Auftrag, eine Online-Videothek

Mehr

Software Engineering Analyse und Analysemuster

Software Engineering Analyse und Analysemuster Software Engineering Analyse und Analysemuster Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Klassendiagramme in der Analyse Im Rahmen der Anforderungsanalyse

Mehr

Projektmodell Softwareentwicklung: Unified Software Development Process / Unified Process (Teil I)

Projektmodell Softwareentwicklung: Unified Software Development Process / Unified Process (Teil I) Projektmodell Softwareentwicklung: Unified Software Development Process / Unified Process (Teil I) Historisch Kulturelle Informationsverarbeitung Hauptseminar: KLIPS 2.0 Dozent: Prof. Dr. Thaller Referent:

Mehr

Client-Server-Beziehungen

Client-Server-Beziehungen Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server

Mehr

16 Architekturentwurf Einführung und Überblick

16 Architekturentwurf Einführung und Überblick Teil III: Software-Architekturentwurf 16 Architekturentwurf Einführung und Überblick 16.1 Software entwerfen Warum? Beim Arbeiten im Kleinen nicht oder nur ansatzweise (Detailentwurf) Größere Software

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup. 04.06.2005 Conrad Kobsch

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup. 04.06.2005 Conrad Kobsch Ein Blick voraus des Autors von C++: Bjarne Stroustrup 04.06.2005 Conrad Kobsch Inhalt Einleitung Rückblick Nur eine Übergangslösung? Was würde C++ effektiver machen? Quelle 2 Einleitung Wo steht C++,

Mehr

Es war einmal... "StudyING: Welten bewegen - Welten gestalten"

Es war einmal... StudyING: Welten bewegen - Welten gestalten Computer, generiere! Christian Schröder Fachbereich Elektrotechnik und Informationstechnik Fachhochschule Bielefeld christian.schroeder@fh-bielefeld.de Es war einmal... Es war einmal... ein Bauvorhaben!

Mehr

Grundlagen Software Engineering

Grundlagen Software Engineering Grundlagen Software Engineering Rational Unified Process () GSE: Prof. Dr. Liggesmeyer, 1 Rational Unified Process () Software Entwicklungsprozess Anpassbares und erweiterbares Grundgerüst Sprache der

Mehr

Klausur Software-Engineering SS 2005 Iwanowski 23.08.2005

Klausur Software-Engineering SS 2005 Iwanowski 23.08.2005 Klausur Software-Engineering SS 2005 Iwanowski 23.08.2005 Hinweise: Bearbeitungszeit: 90 Minuten Erlaubte Hilfsmittel: im Anhang, sonst keine Bitte notieren Sie Ihre Antworten ausschließlich auf dem Aufgabenblatt!

Mehr

Abschnitt 16: Objektorientiertes Design

Abschnitt 16: Objektorientiertes Design Abschnitt 16: Objektorientiertes Design 16. Objektorientiertes Design 16 Objektorientiertes Design Informatik 2 (SS 07) 610 Software-Entwicklung Zur Software-Entwicklung existiert eine Vielfalt von Vorgehensweisen

Mehr

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2 EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0 EDV Kurs 13/2 Inhaltsverzeichnis 1 Objekte... 1 2 Klassen... 3 2.1 Beziehungen zwischen Klassen... 4 2.1.1 Vererbung... 4 2.1.2

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Vortrag von: Ilias Agorakis & Robert Roginer

Vortrag von: Ilias Agorakis & Robert Roginer MDA Model Driven Architecture Vortrag von: Ilias Agorakis & Robert Roginer Anwendungen der SWT - WS 08/09 Inhalt Was ist MDA? Object Management Group (OMG) Ziele Konzepte der MDA Werkzeuge Vor- und Nachteile

Mehr

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java Objektorientierte Programmierung mit Java Eine praxisnahe Einführung mit BlueJ Klassenentwurf Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? 1.0 Zentrale Konzepte

Mehr

Softwaretechnologie - Wintersemester 2011/12 - Dr. Günter Kniesel

Softwaretechnologie - Wintersemester 2011/12 - Dr. Günter Kniesel Übungen zur Vorlesung Softwaretechnologie - Wintersemester 2011/12 - Dr. Günter Kniesel Übungsblatt 4 - Lösungshilfe Aufgabe 1. Zustandsdiagramm (6 Punkte) Geben Sie ein Zustandsdiagramm für den Lebenszyklus

Mehr

Die Softwareentwicklungsphasen!

Die Softwareentwicklungsphasen! Softwareentwicklung Die Softwareentwicklungsphasen! Die Bezeichnungen der Phasen sind keine speziellen Begriffe der Informatik, sondern den allgemeinen Prinzipien zur Produktion integrierter Systeme entliehen.

Mehr

Prinzipien Objektorientierter Programmierung

Prinzipien Objektorientierter Programmierung Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................

Mehr

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger Software Engineering (Übungsblatt 2) Sommersemester 2012, Dr. Andreas Metzger Übungsblatt-Themen: Prinzip, Technik, Methode und Werkzeug; Arten von Wartung; Modularität (Kohäsion/ Kopplung); Inkrementelle

Mehr

Systemdenken und Gestaltungsmethodik System-Modellierung

Systemdenken und Gestaltungsmethodik System-Modellierung Systemdenken und Gestaltungsmethodik System-Modellierung Prof. Dr.-Ing. Stefan Brunthaler TFH Wildau 2008ff Master Telematik Ausgangsbasis Es liegt ein kosten-nutzen-optimales Lösungskonzept vor. Die Architektur

Mehr

Klassendiagramm. Kurzer Überblick über UML - Stand 2006. BlaBla

Klassendiagramm. Kurzer Überblick über UML - Stand 2006. BlaBla BlaBla Diese Kennzeichnungen sind nur Erläuterungen und nicht Bestandteil des Diagramms Quelle: P.Grässle, H.Baumann, P.Baumann, UML projektorientiert, Galileo Verlag, 2003 21 Primäre Begriffe Kapselung

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr

Selbstbestimmtes Lernen. Proinformatik III Objektorientierte Programmierung. Format. Inhalt. Buzzwords

Selbstbestimmtes Lernen. Proinformatik III Objektorientierte Programmierung. Format. Inhalt. Buzzwords 4.0 Proinformatik III Objektorientierte Programmierung Michael Kölling University of Kent Canterbury, UK Selbstbestimmtes Lernen Vorlesung Tutorium Übungen Buch Web-Seite Üben, üben, üben! Format Vorlesung:

Mehr

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008 Konzeption und Implementierung einer automatisierten Testumgebung, 10. Dezember 2008 1 Gliederung Einleitung Softwaretests Beispiel Konzeption Zusammenfassung 2 Einleitung Komplexität von Softwaresystemen

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

Mehr

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH MORE Profile Pass- und Lizenzverwaltungssystem erstellt von: Thorsten Schumann erreichbar unter: thorsten.schumann@more-projects.de Stand: MORE Projects GmbH Einführung Die in More Profile integrierte

Mehr

Vgl. Kapitel 5 aus Systematisches Requirements Engineering, Christoph Ebert https://www.sws.bfh.ch/studium/cas/swe-fs13/protected/re/re_buch.

Vgl. Kapitel 5 aus Systematisches Requirements Engineering, Christoph Ebert https://www.sws.bfh.ch/studium/cas/swe-fs13/protected/re/re_buch. Vgl. Kapitel 5 aus Systematisches Requirements Engineering, Christoph Ebert https://www.sws.bfh.ch/studium/cas/swe-fs13/protected/re/re_buch.pdf 2 Nach derbefragung aller Stakeholder und der Dokumentation

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Vermeiden Sie es sich bei einer deutlich erfahreneren Person dranzuhängen, Sie sind persönlich verantwortlich für Ihren Lernerfolg. 1 2 3 4 Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg. Gerade beim Einstig in der Programmierung muss kontinuierlich

Mehr

Einführung und Motivation

Einführung und Motivation Einführung und Motivation iks-thementag: Requirements Engineering 16.11.2010 Autor Carsten Schädel Motto Definiere oder Du wirst definiert. Seite 3 / 51 These Im Privatleben definiert jeder (seine) Anforderungen.

Mehr

lohmeyer White Paper Use Cases II UX+Prozessanalyse

lohmeyer White Paper Use Cases II UX+Prozessanalyse White Paper Use Cases II Use Cases begleiten uns in der IT seit mehr als 15 Jahren. Nichtsdestotrotz ist es nicht so einfach, Use Cases einfach und verständlich zu schreiben. Dieses White Paper spricht

Mehr

Konsolidierung und Neuimplementierung von VIT. Aufgabenbeschreibung für das Software Engineering Praktikum an der TU Darmstadt

Konsolidierung und Neuimplementierung von VIT. Aufgabenbeschreibung für das Software Engineering Praktikum an der TU Darmstadt Konsolidierung und Neuimplementierung von VIT Aufgabenbeschreibung für das Software Engineering Praktikum an der TU Darmstadt Inhaltsverzeichnis 1 Was ist der Kontext?... 1 2 VIT: Ein sehr erfolgreiches

Mehr

Online Banking System

Online Banking System Online Banking System Pflichtenheft im Rahmen des WI-Praktikum bei Thomas M. Lange Fachhochschule Giessen-Friedberg Fachbereich MNI Studiengang Informatik Erstellt von: Eugen Riske Yueksel Korkmaz Alper

Mehr

OOD. Objektorientiertes Design. Peter Coad und Edward Yourdon. Prentice Hall Verlag

OOD. Objektorientiertes Design. Peter Coad und Edward Yourdon. Prentice Hall Verlag OOD Objektorientiertes Design Peter Coad und Edward Yourdon Prentice Hall Verlag New York, London, Toronto, Sidney, Tokio, Singapur, München, Mexiko Vorwort 9 Vorwort der Übersetzer 11 Danksagungen 13

Mehr

4. AuD Tafelübung T-C3

4. AuD Tafelübung T-C3 4. AuD Tafelübung T-C3 Simon Ruderich 17. November 2010 Arrays Unregelmäßige Arrays i n t [ ] [ ] x = new i n t [ 3 ] [ 4 ] ; x [ 2 ] = new i n t [ 2 ] ; for ( i n t i = 0; i < x. l e n g t h ; i ++) {

Mehr

SWT MN Vorlesung 19.04.2006 2. Übungsblatt Hausaufgaben und Hörsaalübungen zum Themenbereich UML-Modellierung mit Rollen und OOA-Muster

SWT MN Vorlesung 19.04.2006 2. Übungsblatt Hausaufgaben und Hörsaalübungen zum Themenbereich UML-Modellierung mit Rollen und OOA-Muster SWT MN Vorlesung 19.04.2006 2. Übungsblatt Hausaufgaben und Hörsaalübungen zum Themenbereich UML-Modellierung mit Rollen und OOA-Muster Aufgabe 1 analytische Aufgabe Die Eigenschaften und Einsatzbereiche

Mehr

Grundzüge der Programmierung. Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN

Grundzüge der Programmierung. Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN Grundzüge der Programmierung Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN Inhalt dieser Einheit JAVA ist objektorientiert! Grundbegriffe der objektorientierten Programmierung:

Mehr

Kapitalerhöhung - Verbuchung

Kapitalerhöhung - Verbuchung Kapitalerhöhung - Verbuchung Beschreibung Eine Kapitalerhöhung ist eine Erhöhung des Aktienkapitals einer Aktiengesellschaft durch Emission von en Aktien. Es gibt unterschiedliche Formen von Kapitalerhöhung.

Mehr

Arbeiten mit UMLed und Delphi

Arbeiten mit UMLed und Delphi Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf

Mehr

C++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang

C++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang Einleitung Dieses Buch wendet sich an jeden Leser, der die Programmiersprache C++ neu lernen oder vertiefen möchte, egal ob Anfänger oder fortgeschrittener C++-Programmierer. C++ ist eine weitgehend plattformunabhängige

Mehr

Objektorientierter Software-Entwurf Grundlagen 1 1. Analyse Design Implementierung. Frühe Phasen durch Informationssystemanalyse abgedeckt

Objektorientierter Software-Entwurf Grundlagen 1 1. Analyse Design Implementierung. Frühe Phasen durch Informationssystemanalyse abgedeckt Objektorientierter Software-Entwurf Grundlagen 1 1 Einordnung der Veranstaltung Analyse Design Implementierung Slide 1 Informationssystemanalyse Objektorientierter Software-Entwurf Frühe Phasen durch Informationssystemanalyse

Mehr

Systemanalyse. - Seminar für AI/DM 3 im Wintersemester 2004/05 -

Systemanalyse. - Seminar für AI/DM 3 im Wintersemester 2004/05 - Systemanalyse - Seminar für AI/DM 3 im Wintersemester 2004/05 - Prof. Dr. Hans-Jürgen Steffens (by courtesy of Prof. Dr. Thomas Allweyer) Fachbereich Informatik und Mikrosystemtechnik Fachhochschule Kaiserslautern,

Mehr

TTS - TinyTimeSystem. Unterrichtsprojekt BIBI

TTS - TinyTimeSystem. Unterrichtsprojekt BIBI TTS - TinyTimeSystem Unterrichtsprojekt BIBI Mathias Metzler, Philipp Winder, Viktor Sohm 28.01.2008 TinyTimeSystem Inhaltsverzeichnis Problemstellung... 2 Lösungsvorschlag... 2 Punkte die unser Tool erfüllen

Mehr