SOFTWARETECHNIK. Wintersemester 2005/06. Version 1 : Stand: Version 2 : Stand: Version 3: Stand:

Größe: px
Ab Seite anzeigen:

Download "SOFTWARETECHNIK. Wintersemester 2005/06. Version 1 : Stand: 27.05.04 Version 2 : Stand: 27.11.04 Version 3: Stand: 10.11.05"

Transkript

1 SOFTWARETECHNIK Wintersemester 2005/06 Version 1 : Stand: Version 2 : Stand: Version 3: Stand: Urs Andelfinger, Frank Bühler, Michael Guist, Stephan Karczewski, Gerhard Raffius, Inge Schestag, Wolfgang Weber, Gerhard Winkler 1 * * 1 * * 1

2 Vorwort Stand Sehr geehrter Leser, sehr geehrte Leserin, mit dieser Veröffentlichung lesen Sie ein Hochschulskript, das für die Studierenden am Fachbereich Informatik erstellt wurde. Dementsprechend handelt es sich weder um ein Lehrbuch noch um ein Fachbuch zur Softwaretechnik. Hinweise auf Lehr- und Fachbücher finden Sie im Literaturverzeichnis. Die Autoren dieses Skriptes empfehlen Ihnen dringend neben dem Besuch der Vorlesung auch in diesen Quellen nachzulesen und damit zu arbeiten. Die aktuellen Studien- und Prüfungsordnungen sehen vor, dass die Studierenden im Studiengang Informatik die Lehrveranstaltung Softwaretechnik im 2. und 3. Studiensemester besuchen. Neben der Vorlesung mit insgesamt 4 Semesterwochenstunden ist zusätzlich ein Praktikum mit insgesamt 3 Semesterwochenstunden verpflichtend vorgesehen. Beide Teile sind nach Meinung des Fachbereichs dringend nötig, um die Lehr- und Lerninhalte kennen zu lernen, zu verstehen, anwenden zu können und somit zu beherrschen. Vorlesung und Praktikum sind als integrierte Lehrveranstaltung konzipiert, d.h. auch, dass es aus Sicht der Lehrenden keinen Sinn macht, nur einen der beiden Teile zu absolvieren. Wenn dies aus besonderen Gründen (z.b. Nichtbestehen der Prüfung) einmal nötig werden sollte, wird diese Situation zwar akzeptiert, sie ist aber weder empfehlenswert noch etwas, was Sie anstreben sollten. Abgeschlossen werden soll die Lehrveranstaltung mit den Prüfungsleistungen Softwaretechnik I und Softwaretechnik II nach dem 2. und 3. Semester. Dieses Skript ist aber "nur" zur Unterstützung der Lehrveranstaltung Softwaretechnik entwickelt worden, zur Vorbereitung der Prüfungen also keinesfalls 2

3 ausreichend. Die Autoren weisen ausdrücklich darauf hin, dass dieses Skript konzipiert und entwickelt wurde, um Ihnen den Besuch der Lehrveranstaltung und die Bearbeitung der Inhalte zu erleichtern und nicht zu ersetzen. Neben den Abbildungen von in der Vorlesung verwendeten Schaubildern und Folien enthält das Skript in knapper Form die wichtigsten Aussagen und Lehrinhalte. Beispiele, Fragen und Musterlösungen runden den Inhalt ab und sollen Ihnen Anregungen für eigenes Arbeiten und Nachdenken liefern. 3

4 Inhaltsverzeichnis 1 Einführung Was ist ein gutes Softwaresystem? Was ist Softwaretechnik? Geschichtliche Entwicklung Softwarequalität Software-Qualitätseigenschaften Phasen der Softwareentwicklung Überblick über den Aufbau des SWT-Skriptes Objektorientierung Einführung Prinzipien der Objektorientierung Abstraktion Kapselung Wiederverwendung Beziehungen Polymorphismus Überblick Objektorientierte Programmiersprachen C JAVA C# Werkzeuge für die objektorientierte Entwicklung Weiterführende Literatur UML Unified Modeling Language Was ist die UML? Entstehung der UML Diagramme der UML Klassendiagramm Class Diagram Zweck Notation Anwendungsbereich Zusammenhang Hinweise für die Praxis Beispiel Objektdiagramm - Object Diagram Zweck Notation

5 Beispiel Komponentendiagramm - Component Diagram Zweck Notation Anwendungsbereich Zusammenhang Hinweise für die Praxis Beispiel Paketdiagramm - Package Diagram Zweck Notation Anwendungsbereich Zusammenhang Beispiel Anwendungsfalldiagramm - Use Case Diagram Zweck Notation Anwendungsbereich Zusammenhang Hinweise für die Praxis Beispiel Sequenzdiagramm - Sequence Diagram Zweck Notation Anwendungsbereich Zusammenhang Hinweis für die Praxis Beispiel Kommunikationsdiagramm - Communication Diagram Zweck Notation Anwendungsbereich Zusammenhang Hinweise für die Praxis Beispiel Zeitverlaufsdiagramm - Timing-Diagram Zweck Notation Anwendungsbereich

6 Zusammenhang Hinweis für die Praxis Beispiel Interaktionsübersicht Diagramm - Interaction Overview Diagram Zweck Anwendungsbereich Zusammenhang Hinweis für die Praxis Beispiel Zustandsautomat-State Machine Diagram Zweck Notation Anwendungsbereich Zusammenhang Hinweis für die Praxis Beispiel Aktivitätsdiagramm - Activity Diagram Zweck Notation Anwendungsbereich Zusammenhang Hinweise für die Praxis Beispiel Verteilungsdiagramm - Deployment-Diagram Zweck Notation Beispiel Kompositionsstrukturdiagramm - Composite Structure Diagram Zweck Notation Anwendungsbereich Neu in UML Object Constraint Language Model Driven Architecture Was ist MDA? Motivation Wie funktioniert MDA? UML Profile Vorgehens- und Prozessmodelle

7 4.1 Überblick (Motivation, Begriffe) Das objektorientierte Projekt Wasserfallmodell, Evolutionäres Modell, Iteratives Modell Prototyping Das V-Modell Struktur des Standardisierungskonzeptes Eigenschaften des V-Modells Produktzustände und Übergänge Erzeugnisstruktur Struktur und Inhalt des V-Modells Aktivitäten und Produkte Aktivitätenzerlegung Produktfluss und Abwicklung Die Submodelle Zusammenspiel der Submodelle Submodell "Softwareerstellung" (SWE) Systemanforderungsanalyse und -entwurf (SWE 1) Systemanforderungsanalyse und -entwurf (SWE 1) DV-Anforderungsanalyse und -entwurf (SWE 2) DV-Anforderungsanalyse und -entwurf (SWE 2) SW-Anforderungsanalyse (SWE 3) Grobentwurf (SWE 4) Feinentwurf (SWE 5) Implementierung (SWE 6) SW-Integration (SWE 7) DV-Integration (SWE 8) Produkte im Submodell SWE Submodell"Qualitätssicherung" Aktivitäten im Submodell QS Aktivitäten im Submodell KM Submodell "Projektmanagement" (PM) Aktivitäten im Submodell PM Rollen im V-Modell Tailoring Zusammenfassung RUP RUP-Phase "Inception" RUP-Phase "Elaboration" RUP-Phase "Construction"

8 4.6.4 RUP-Phase "Transition" extreme Programming (XP) Warum XP? Die zwölf Praktiken Der XP Prozess Die Umsetzung Weiterführende Literatur Literatur Prozessorientiertes Software-Qualitätsmanagement Überblick Das ISO / ISO (SPICE) Prozessmodell Die Kunden Lieferanten Kategorie (CUS) Die Engineering Kategorie Die unterstützenden Prozesse Die Management Prozess Kategorie Die Organisations Prozeß Kategorie Prozeß Tailoring Das ISO / ISO Reifegradmodell Stufe 0 - Unvollständiger Prozess (Incomplete) Stufe 1 - Durchgeführter Prozess (Performed) Stufe 2 - Gelenkter Prozess (Managed) Stufe 3 - Etablierter Prozess (Established) Stufe 4 - Quantitativ steuerbarer und vorhersagbarer Prozess (Predictable) Stufe 5 - Optimierender Prozess (Optimizing) Anwendungsbeispiel der ISO 15504/12207: Reifegradstufen im Projektmanagement Risikomanagement gemäß ISO / ISO Assessments gemäß ISO / ISO Das CMMI-Modell Literatur Requirements Engineering Textuelle Beschreibung von Anwendungsfällen Der Qualitätsbegriff und die Qualitätskriterien für Software Die Qualitätseigenschaften beim fertigen Produkt: Wichtige Kriterien aus Benutzersicht Wichtige Kriterien aus Entwicklersicht Qualitätsmanagement Methoden und Werkzeuge des Qualitätsmanagements

9 6.2.2 Die Bedeutung von Qualitätsstandards Die Problematik von Standards in der Softwareentwicklung Die Dokumentation von Software Die statische Kontrolle der Qualität und anderer Softwareeigenschaften Softwaremaße-Softwaremessung Die Function-Point Methode Halstead-Maße Das Mc Cabe-Maß Fan-in---Fan-out Reviews Die Entwurfsinspektion Die Codeinspektion Formale Verifikation Baumförmige Darstellung der Verifikationsregeln Beweis der Endlichkeit von Algorithmen Testen Testverfahren - Wie wird getestet? Wie findet man Testdaten Wer testet? Testen von objektorientierter Software Teststrategie Testwerkzeuge xunit, JUnit Konfigurationsmanagement Warum Konfigurationsmanagement (KM)? Was ist (Software-)Konfigurationsmanagement (SKM)? Einsatz von Software-Konfigurationsmanagement in Projekten Weiterführende Literatur Petri-Netze Zustände und Ereignisse Dynamik in Petri-Netzen Regeln in Petri-Netzen Komplexe Situationen in Petri-Netzen Kontakt- und Konfliktsituation Gabel und Zusammenführung Beispiele von Petri-Netzen Varianten von Petri-Netzen Bedingungs-/Ereignis-Netze Stellen-/Transitions-Netze

10 10 Entscheidungstabellen Grundlagen ET-Typen Anwendung von Entscheidungstabellen Entscheidungsbaum Weiterführende Literatur

11 1 Einführung Ziel der Softwaretechnik ist es gute d. h. qualitativ hochwertige Softwaresysteme erstellen zu können. 1.1 Was ist ein gutes Softwaresystem? Letztendlich ist nach [StP 00] ein gutes System eines, das den Bedürfnissen des Anwenders gerecht wird. Das System muss deshalb... nützlich und nutzbar sein. Es muss dem Anwender das Leben möglichst stark erleichtern. zuverlässig sein. Es soll möglichst wenig Fehler enthalten. flexibel sein. Das System muss leicht an geänderte Anforderungen des Benutzers anpassbar sein. Die Fehler müssen leicht zu beheben sein. kostengünstig sein, nicht nur in der Anschaffung, sondern auch im Unterhalt. verfügbar sein. Das System muss auf jetzigen und zukünftigen Zielplattformen (Hardware, Betriebssystemen etc.) lauffähig bzw. leicht adaptierbar sein. Zur Verfügbarkeit gehört natürlich auch, dass das Softwareprodukt überhaupt existiert und zwar zu dem Zeitpunkt, zu dem es zum Einsatz kommen soll. Frage: Kennen Sie Projekte mit großen Softwareanteil, die gescheitert sind? Warum sind diese Projekte gescheitert? 11

12 1.2 Was ist Softwaretechnik? In dieser Vorlesung sollen Sie lernen, wie man gute Softwaresysteme erstellt, d. h. es sollen Methoden und Techniken vermittelt werden, um Software in einem gegebenen Zeitrahmen mit den oben angegebenen Eigenschaften zu realisieren. Das Fach Softwaretechnik bietet Methoden für die konstruktiven Phasen der Software Entwicklung (Analyse, Entwurf, Implementierung), die verwendet werden, um die Arbeitsergebnisse dieser Phasen zu strukturieren. Softwaretechnik stellt aber auch Modelle zur Definition von Qualität zur Verfügung (Qualitätseigenschaften, Qualitätsmodelle) und entsprechende Methoden zur Überprüfung der Phasenergebnisse (Test, Verifikation, Qualitätssicherung). Zur zeitlichen Strukturierung von Softwareprojekten sind Projektmodelle (Phasenmodelle) definiert, die eine zeitliche Gliederung eines Projektes in verschiedene Entwicklungsphasen ermöglichen. Softwaretechnik beschäftigt sich folglich mit Methoden für das "Pragrammieren im Großen". Unter Programmieren im versteht man die Abwicklung großer Softwareprojekte. Ein großes Softwareprojekt ist gekennzeichnet durch den Einsatz eines Entwicklerteams. Ein Team von mehreren Entwicklern entwickelt gemeinsam ein Softwareprodukt. Es werden in der Regel mehrere Versionen der Software erzeugt. Die Software wird weiterentwickelt und erweitert; veraltete Softwareversionen werden durch verbesserte ersetzt. Ein großes Softwareprojekt hat eine lange Entwicklungszeit. Große Systeme werden über mehrere Monate oder Jahre entwickelt. Das erfordert eine zeitliche Projektplanung und Terminüberwachung. Software hat eine lange Lebensdauer, während der das Produkt Software an neue Anforderungen angepasst werden muss. Diese Probleme bei der Software Entwicklung im Großen erfordern andere Vorgehensweisen als das Programmieren einer kleinen Anwendung (z. B. in einem Programmierpraktikum). Die Methode VHIT (Vom Hirn Ins Terminal) ist zur Entwicklung komplexer Systeme nicht geeignet. Dazu benötigt ein Entwicklerteam Prinzipien und Methoden des Software Engineering. 12

13 1.3 Geschichtliche Entwicklung In der "Steinzeit" der Software Entwicklung, in den 50er und 60er Jahren des 20. Jahrhunderts wurden Computer und die dafür notwendige Software fast ausschließlich im naturwissenschaftlichen Bereich eingesetzt. Die eingesetzten Programme dienten hauptsächlich der effizienten Lösung von mathematischen Problemen. Die Hardware war sehr teuer, die Software war sehr preisgünstig oder wurde von den Anwendern selbst geschrieben. Durch sinkende Hardwarepreise wurden Computer für eine größere Zielgruppe erschwinglich. Dadurch veränderten sich aber auch die Anforderungen an die Software. Es wurde Software für die verschiedensten Bereiche gebraucht. Der Umfang der Software wurde immer größer. Ihre Komplexität war mit den bis zu diesem Zeitpunkt bekannten Vorgehensweisen für das "Programmieren im Kleinen " nicht mehr zu beherrschen. Ausgelieferte Programme waren fehlerhaft und unzuverlässig. Software Projekte wurden nicht termingerecht fertig gestellt. Die zur Entwicklung eingeplanten Budgets wurden überschritten. Dieser Zustand der Software Industrie wurde mit dem Begriff der Softwarekrise charakterisiert. Wissenschaft und Forschung entwickelten als Reaktion darauf strukturierte Programmiersprachen und Entwicklungsmethoden zur Lösung der Probleme, die zur Softwarekrise führten. Der Begriff Software Engineering wurde zuerst auf einer Software-Engineering-Konferenz der NATO, die 1968 in Garmisch veranstaltet wurde, geprägt. Diese Konferenz gilt allgemein als Geburtsstunde der Softwaretechnik. Nachfolgend sind die Entwicklungsschritte der Softwaretechnik in Stichworten aufgeführt: (angelehnt an [Sch 90]) 1. Erster Ansatz zur Entwicklung übersichtlicher Programme (1968) Dijkstra schlägt die "strukturierte Programmierung" vor (Vermeidung von GOTO-Anweisungen). 2. Entwicklung von Software-Engineering-Prinzipien ( ) Es werden die theoretischen Grundlagen (Prinzipien) erarbeitet, die der strukturierten Entwicklung von Programmen zugrundeliegen: strukturierte Programmierung, schrittweise Verfeinerung, Geheimnis-Prinzip, Programmodularisierung, Software-Lifecycle, Entity-Relationship-Modell, Software-Ergonomie 3. Entwicklung von phasenspezifischen Software-Engineering-Methoden ( ) Umsetzen der Software-Engineering-Prinzipien in Entwurfsmethoden: HIPO, Jackson, Constantine-Methode, erste Version von Smalltalk 4. Entwicklung von phasenspezifischen Werkzeuge ( ): Der Einsatz von SE-Methoden mit maschineller Unterstützung (z.b. Programminversion, Batchwerkzeuge) 13

14 5. Entwicklung von phasenübergreifenden (integrierten) Software-EngineeringMethoden (ab 1980) Es sollen die Ergebnisse einer Phase des Software-Lifecycles automatisch an die nächste Phase weitergegeben werden: Methodenverbund 6. Entwicklung von phasenübergreifenden (integrierten) Werkzeuge (ab 1980) Einsatz einer Datenbank als automatischer Schnittstelle zwischen den einzelnen Phasen des Software-Lifecycles. Interaktiver Programmaufruf durch CASWerkzeuge (Computer Aided Softwaredesign) 7. Definition verschiedener, konkurrierender objektorientierter Methoden (ab 1990) Es entstanden parallel verschiedene Objektorientierte Analyse- und Entwurfsmethoden (Booch, Jacobson, Rumbaugh, Shlaer/Mellor, Coad/Yourdon u. a.). Die Methoden wurden in CASE Tools (Computer Aided Software Engineering) realisiert. 8. Integration der OO-Methoden zur UML Unified Modeling Language (ab 1995) Jacobson, Booch und Rumbaugh schließen sich zusammen und entwickeln die UML. In der UML sollen die Schwächen der frühen OO-Methoden beseitigt werden und ein weltweit gültiger, einheitlicher Standard geschaffen werden. Die UML 1.0 wurde 1997 verabschiedet. 9. UML 2.0 Nachdem die UML 1.0 bis zur Version UML 1.5 erweitert wurde, erschien 2004 die UML 2.0. In dieser Version wurde die Sprachelemente der UML an aktuelle Technologien angepasst; es wurden Redundanzen und Inkonsistenzen in der Sprachdefinition beseitigt. 1.4 Softwarequalität Das Produkt Software soll nach seiner Fertigstellung den Anforderungen der Benutzer entsprechen. (Es muss nicht eine "möglichst hohe" Qualität haben, sondern die vom Benutzer verlangte Qualität!) Dazu ist es notwendig die Qualitätsanforderungen der Benutzer zu definieren, für die Entwicklung Methoden und Hand- 14

15 lungsanweisungen zum Erreichen der geforderten Qualität zu definieren und am fertigen Produkt die entwickelte Qualität zu überprüfen. Zur Definition von Softwarequalität entstand eine Vielzahl von Begriffen, die sogenannten Qualitätseigenschaften, die verschiedene Dimensionen der Qualität beschreiben. Außer den im Folgenden beschriebenen Eigenschaften existiert eine Vielzahl weiterer Qualitätseigenschaften, die nicht einheitlich definiert sind. Nachfolgend werden, als in die Problematik einführendes Beispiel, Qualitätseigenschaften mit Hilfe eines Modells nach Raasch [Ra 92] erläutert. 1.5 Software-Qualitätseigenschaften Raasch benutzt die in Abbildung beschriebene Hierarchie von Qualitätseigenschaften, die Qualität aus Benutzersicht und Qualität aus Entwicklersicht unterscheidet. Er geht davon aus, dass für diese beiden Gruppen unterschiedliche Qualitätseigenschaften wichtig sind. Der Benutzer verwendet Software, folglich sind für ihn Eigenschaften wie Funktionserfüllung, Zuverlässigkeit usw. von Bedeutung. Für den Entwickler sind Eigenschaften wie Wartbarkeit, Erweiterbarkeit usw. von Bedeutung. Qualitätseigenschaften können in einer Hierarchie verfeinert werden. Funktionserfüllung Effizienz Qualitätsmerkmale aus Benutzer sicht Qualitätsmerkmale aus Entwicklersicht Zuverlässigkeit HW-Effizienz SW-Effizienz(Performance) Benutzbarkeit Robustheit Sicherheit Fehlertoleranz Erweiterbarkeit Änderbarkeit Wartbarkeit Verständlichkeit Übertragbarkeit Testbarkeit Wiederverwendbarkeit Abbildung Software - Qualitätseigenschaften 15

16 Funktionserfüllung: ist ein Maß für die Übereinstimmung zwischen geplantem und tatsächlich realisiertem Funktionsumfang. Je mehr ein System kann, desto vielseitiger ist es einsetzbar. Man kann mit Software jede beliebige Funktion verwirklichen, aber man sollte keine Systeme planen, die alle beliebigen Funktionen enthalten. Effizienz: ist das Ausmaß der Inanspruchnahme von Betriebsmitteln (HW) durch das Software-Produkt bei gegebenem Funktionsumfang. Die Hardware soll bei gegebenem Funktionsumfang eines Produktes möglichst sparsam benutzt werden (hohe Ablaufgeschwindigkeit, geringer Speicherbedarf). Effizienz war lange Zeit aufgrund hoher Hardwarekosten das beherrschende Qualitätsmerkmal, verliert aber bei ständig sinkenden Hardwarepreisen immer mehr an Bedeutung. Heute spielt Effizienz z. B. bei Realzeitsystemen eine große Rolle. Zuverlässigkeit: (siehe [So 01]) Man kann Zuverlässigkeit von Software durch eine Funktion R(t) beschreiben. Sei fw(t) die Wahrscheinlichkeit, dass im Zeitraum von 0 t ein Fehler auftritt, so gilt: R(t) = 1 fw(t) (Zuverlässigkeitsfunktion) Geht R(t) auch für große t gegen 1, dann nennt man ein Softwareprodukt zuverlässig. Falls R(t) bereits für kleine t nahe bei 0 liegt, ist das Produkt unzuverlässig. Robustheit: Robustheit ist der Grad, in dem ein Produkt eine vernünftige Reaktion bei nicht vorgesehener Verwendung erbringt und seine Funktionsfähigkeit bewahrt. Man setzt voraus, dass Hardware- und Eingabefehler vorkommen können und verlangt, dass dadurch keine Katastrophe geschehen soll. Benutzbarkeit: Benutzbarkeit (auch Benutzungskomfort oder Benutzerfreundlichkeit) umfasst alle Software-Eigenschaften, die dem Anwender ein einfaches, angenehmes, effizientes und fehlerarmes Arbeiten mit dem Software-Produkt gestatten. Dabei sind auch viele ergonomische Kriterien zu berücksichtigen wie: Lernaufwand, Installationsaufwand, einfache und einheitliche Benutzeroberfläche, Robustheit usw. ( Benutzerschnittstelle, Software Ergonomie. Fehlertoleranz: 16

17 Das System muss im Falle eines erkannten Fehlers den Benutzer situationsgerecht informieren. Das System muss immer bedienbar bleiben, d. h. alle auftretenden Fehlerbedingungen müssen abgefangen werden. Sicherheit: unter dem Begriff sind alle System-Eigenschaften zusammengefasst: die verhindern, dass ein technisches System in einen gefährlichen Zustand gerät, die verhindern, dass Software-Systeme unbefugt benutzt werden, die verhindern, dass Daten oder Programme unbeabsichtigt oder mutwillig zerstört oder verfälscht werden, und die dafür sorgen, dass eine ordnungsgemäße und revisionsfähige Verarbeitung im Sinne geltender Normen und Gesetze sichergestellt wird. Erweiterbarkeit: Wie einfach ist es auch noch nach Fertigstellung den Leistungsumfang des Software-Produktes durch Einbau zusätzlicher Funktionen zu verändern und dabei einer speziellen Anwendungssituation anzupassen. Änderbarkeit: Grad, in dem ein Produkt die Veränderung (Anpassung) seiner Eigenschaften durch den Benutzer zulässt. Die Änderung erfolgt über definierte Schnittstellen, nicht durch Veränderung des Quellcodes. Wartbarkeit: Die Wartbarkeit eines Systems wird nach der Zeitdauer beurteilt, die im produktiven Einsatz nach Auftreten und Meldung eines Fehlers erforderlich ist, um diesen zu lokalisieren und zu beheben. Diese Qualitätseigenschaft wird beeinflusst von der Änderbarkeit, Verständlichkeit und Testbarkeit. Verständlichkeit: Bezieht sich auf die Lesbarkeit des Codes, den Aufbau des Systems, seine Architektur, die Modularisierung der Komponenten. Je übersichtlicher ein System gegliedert (verfeinert) ist um so größer ist seine Verständlichkeit Testbarkeit Je übersichtlicher und verständlicher ein System gegliedert ist, umso einfacher ist es zu testen. Korrektur von Fehlern in der Wartung beseitigen Fehler, sie können aber neue Fehler in das System einschleusen. Testbarkeit bezeichnet den Aufwand, der zum Testen einer Anwendung nötig ist. Übertragbarkeit: 17

18 ein System ist portabel, wenn es leicht in neue oder andere Hardware- und Software-Umgebung überführt werden kann. Wiederverwendbarkeit: ist die Verwendung von bereits entwickelten Software-Komponenten in anderen Umgebungen, für die sie ursprünglich nicht geplant waren. Wiederverwendbarkeit ist nicht nachträglich zu erreichen. Ein System muss so konzipiert werden, dass die entwickelten Komponenten wiederverwendbar sind. Abhängigkeiten zwischen Qualitätseigenschaften Die Qualitätseigenschaften sind nicht unabhängig voneinander. Werden Maßnahmen zur Verbesserung einer Qualitätseigenschaft getroffen, so wirken sich diese möglicherweise auf andere Eigenschaften aus. Wird die Effizienz eines Systems verbessert, so kann dies ein unzuverlässigeres System bewirken; die Robustheit kann sinken, das System kann schwerer änderbar sein (weil z. B. die Effizienzsteigerung durch Assemblerprogramme erreicht wurde). Hardwarenahe Programmiersprachen wirken sich natürlich auch auf die Wartbarkeit und Übertragbarkeit aus. Maße für Qualität Wie oben beschrieben, muss schon bei der Spezifikation die Qualität der zu erstellenden Software definiert werden, so dass nach der Fertigstellung nachgeprüft werden kann, ob die Software den Qualitätsanforderungen genügt. Zum Beispiel kann die Qualitätseigenschaft Funktionserfüllung geprüft werden, indem getestet wird, ob die Software so funktioniert wie vereinbart, d.h. ob die Software das tut, was in der vom Auftraggeber abgezeichneten Spezifikation steht. Die Effizienz kann durch Angabe von maximalen Antwortzeiten spezifiziert werden, die Zuverlässigkeit durch einen Wert für R(t). Andere Maße, wie die z. B. Erweiterbarkeit oder Wartbarkeit sind schwieriger zu definieren, wir werden im Kapitel 7 Softwaremetriken näher auf mögliche Maße eingehen. 18

19 1.6 Phasen der Softwareentwicklung Um qualitativ hochwertige Software zu produzieren muss das Produkt modular aufgebaut werden. Zusätzlich ist es nötig auch den Produktionsprozess nach Prinzipien zu strukturieren, die auch in anderen Ingenieursdisziplinen üblich sind. Man spricht in diesem Zusammenhang von ingenieurmäßigem Vorgehen bei der Softwareentwicklung. Ein Softwareprojekt muss, wie jeder andere industrielle Fertigungsprozess auch, in mehrere Phasen eingeteilt werden. Frick beschreibt in [Frick95] die Merkmale eines industriellen Fertigungsprozesses: 1. Der Prozess läuft in Phasen ab. 2. Jede Phase liefert Ergebnisse, die die Grundlage für die Folgephase darstellen. 3. Es findet eine Überprüfung der Phasenergebnisse statt, bevor die Folgephase anläuft (wobei es notwendig werden kann, die gleiche Phase noch einmal durchzuführen). 4. In jeder Phase entsteht eine abstrakte Darstellung des Produktes, je fortgeschrittener die Phase, desto konkreter wird die Darstellung. Diese allgemeinen Anforderungen an einen Fertigungsprozess gelten auch für die Softwareerstellung. Durch den Einsatz von Phasenmodellen wird ein Softwareprojekt zeitlich strukturiert. Es wird festgelegt: welche Arbeiten in den einzelnen Phasen zu erledigen sind, welche Arbeitsergebnisse in den Phasen erzeugt werden müssen, welche Personen die Ergebnisse zu erarbeiten haben, wie die Ergebnisse dokumentiert werden sollen, welche Termine eingehalten werden müssen, einzuhaltende Standards und Richtlinien. Phasenmodelle regeln auch die Zusammenarbeit zwischen den am Softwareerstellungsprozess beteiligten Rollen und Personen.[Kimm79]. Es existieren verschiedene Phasenmodelle für die Softwareentwicklung. Das "Ur-Modell" ist das so genannte Wasserfallmodell, das ein rein sequentielles Durchlaufen der Phasen vorsah. Die Arbeiten einer Phase mussten abgeschlossen sein, bevor die Folgephase beginnen konnte. Dieses Vorgehen erwies sich in der 19

20 Praxis als undurchführbar. Es wurde so erweitert, dass Rücksprünge in zeitlich früher liegende Phasen möglich wurden. Am Ende jeder Phase werden die Ergebnisse überprüft und an die Folgephase weitergegeben. Wird dort während der Erarbeitung der eigenen Phasenergebnisse, ein Fehler in den Vorgaben festgestellt, so werden die Vorgaben an die vorhergehende Phase zurückgeführt. In den letzten Jahren hat sich eine Vielzahl von weiteren Prozessmodellen herausgebildet, die dieses Modell variieren, z. B. durch ein mehrmaliges Durchlaufen der Phasen des Wasserfallmodells in mehreren Zyklen, wobei am Ende jedes Zyklus eine weitere Ausbaustufe des Systems entsteht. Prototyping-Ansätze wurden in das Wasserfallmodell integriert. Ob wir nun in mehreren Zyklen entwickeln, d. h. erst ein Basissystem und in den Folgezyklen dieses Basissystem immer wieder durch weitere Teilsysteme ergänzen oder ob wir das Gesamtsystem als ganzes entwickeln, wir durchlaufen während des Softwareentwicklungsprozesses immer verschiedene aufeinander aufbauende Phasen: Implementierung und Test Diese zentrale Phase des Softwareentwickungsprozesses kennen wir schon aus der Lehrveranstaltung Programmieren. (Zumindest kleine Programme wurden von Ihnen bereits implementiert und getestet.) Bei großen Systemen können wir das System nicht als Ganzes implementieren und testen, sondern wir implementieren und testen zuerst die einzelnen Komponenten (Komponententest). Anschließend werden diese ausgetesteten Komponenten schrittweise zusammenmontiert und ausgetestet (Integrationstest). Vor Beginn der eigentlichen Codierung ist die Implementierungsstrategie festzulegen. Es wird entschieden, in welcher Reihenfolge die Komponenten implementiert und zusammengebaut werden (Top-Down- oder Bottom-Up-Vorgehensweise). Die einzusetzenden Bibliotheken sind festzulegen. Detaillierte Testpläne für die einzelnen Komponenten, für die Teilsysteme und das Gesamtsystem sind, falls nicht schon in vorhergehenden Phasen geschehen, zu erstellen. Abnahme Auch diese Phase kennen wir vom Programmierpraktikum. In dieser Phase wird geprüft, ob die Leistungen des Systems mit den in der Spezifikation vereinbarten Leistungen übereinstimmen (im Programmierpraktikum: mit 20

21 den in der Aufgabenstellung geforderten Leistungen). Ist ein externer Auftraggeber vorhanden, überprüft dieser oft die Systemfunktionen mit einem eigenen Prüfkatalog. Im Programmierpraktikum bekamen Sie dann Ihre Abnahme und der Sinn der Implementierung war erfüllt. Sie sind wieder einen Schritt in Ihrem Studium vorangekommen. Bei der kommerziellen Softwareentwicklung soll die Software nach der Implementierung natürlich auch zum Einsatz kommen. Es kommt eine weitere Phase, der eigentliche Einsatz, d. h. der Betrieb des Systems. Betrieb Bezogen auf die Lebensdauer eines Softwareproduktes ist die Betriebsphase eines Produktes die längste aller Phasen. Das erstellte Produkt wird in dieser Phase benutzt. Hier fallen mit ca. 80% der weitaus größte Teil der Kosten aller Phasen der Softwareentwicklung an, d. h. der Aufwand für die Erstellung übersichtlich entworfene und gut ausgetesteter Programme mit guter Dokumentation rentiert sich an dieser Stelle auf jeden Fall. Während des Betriebs eines Softwareproduktes werden zusätzliche Fehler und Unzulänglichkeiten am Produkt entdeckt. Diese werden dem Hersteller zur Korrektur gemeldet und verursachen Rücksprünge in zeitlich frühere Phasen. Während der Betriebszeit eines Softwareproduktes ändert sich der Einsatzzweck eines Produktes; die betrieblichen Abläufe, die von der Software unterstützt werden, ändern sich und die Software muss entsprechend angepasst oder verändert werden. Diese Aktivitäten werden häufig auch den Wartungsaktivitäten zugeordnet, bezeichnen aber eigentlich Arbeiten zur Weiterentwicklung der Software. Weitere Phasen bei der Softwareentwicklung Im Praktikum Programmieren wurde immer eine Aufgabe gestellt, d. h. die Definition war vorgegeben. Sie als Studierender mussten sich jetzt noch, falls nicht auch in der Aufgabenstellung vorgegeben, einige Gedanken über den Aufbau des Systems machen, und los ging es mit der Implementierung. Statt z. B. die Klassenstruktur inkl. der Beziehungen zwischen den Klassen graphisch darzustellen, konnten Sie, wegen der Übersichtlichkeit Ihrer kleinen Softwaresysteme, die Klassenstruktur meistens direkt als Header-File in C++ hinschreiben. Bei der Entwicklung von großen Systemen wird vor der eigentlichen Implementierung des Systems erst einmal eine Analyse durchgeführt, um zu wissen, ob und in welchem Umfang ein System erstellt werden sollte und ob eine Erstellung unter Kostengesichtspunkten ratsam und mit den Möglichkeiten der Firma 21

Software Engineering

Software Engineering Literatur Gliederung Software Engineering Herbert Kuchen Universität Münster Di+Fr 14:15-15:45, M2 Wintersemester 2009/2010 1 Literatur Gliederung Basis-Literatur H. Balzert: Lehrbuch der Software-Technik,

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

Softwaretechnik. Fomuso Ekellem WS 2011/12

Softwaretechnik. Fomuso Ekellem WS 2011/12 WS 2011/12 Inhalt Wiederholung Weitere Begriffe Programmierung im Großem (Programmierung von Software als Ganzes) Prozess-Modelle 2 Wiederholung: Prozesse Prozesse sind hierarchische Gruppierungen von

Mehr

Was versteht man unter einem Softwareentwicklungsmodell?

Was versteht man unter einem Softwareentwicklungsmodell? Softwareentwicklung Was versteht man unter einem Softwareentwicklungsmodell? Ein Softwareentwicklungsmodell ist ein für die Softwareentwicklung angepasstes Vorgehensmodell bei der professionellen ( ingenieursmäßigen

Mehr

Softwareentwicklungsprozesse. 18. Oktober 2012

Softwareentwicklungsprozesse. 18. Oktober 2012 Softwareentwicklungsprozesse 18. Oktober 2012 Überblick Was soll ein Softwareentwicklungsprozess leisten? Überblick über Softwareentwicklungsprozesse Welche gibt es? Warum gibt es mehrere? Diskussion:

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 1 17. Oktober 2002 www4.in.tum.de/~rumpe/se

Mehr

Einführung in die SWE

Einführung in die SWE Einführung in die SWE Inhalte der Vorlesung Allgemeine Ziele der Lehrveranstaltung Entwickeln einer kleinen Applikation nach professionellem Vorgehensmodell Erlernen des objektorientierten Herangehens

Mehr

1. Grundbegriffe des Software-Engineering

1. Grundbegriffe des Software-Engineering 1. Grundbegriffe Software Engineering 1 1. Grundbegriffe des Software-Engineering Was ist Software-Engineering? (deutsch: Software-Technik) Teilgebiet der Informatik, das sich mit Methoden und Werkzeugen

Mehr

Einführung in die Informatik

Einführung in die Informatik Einführung in die Informatik Softwareentwicklung Probleme bei großer Software Life-Cycle-Modelle Teilphasen eines Software-Projekts Methoden und Werkzeuge 01101101 01011001 11010011 10011000 00000011 00011100

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

Softwaretechnik. Vertretung von Prof. Dr. Blume Fomuso Ekellem WS 2011/12

Softwaretechnik. Vertretung von Prof. Dr. Blume Fomuso Ekellem WS 2011/12 Vertretung von Prof. Dr. Blume WS 2011/12 Inhalt Test, Abnahme und Einführung Wartung- und Pflegephase gp Vorlesung Zusammenfassung Produkte und Recht (Folien von Prof. Blume) 2 , Abnahme und Einführung

Mehr

Block R (Rahmen): SE Aktivitäten 21.10.04 2. Vorlesung Methoden des Software Engineering. Block R Rahmen Aktivitäten der Software-Entwicklung

Block R (Rahmen): SE Aktivitäten 21.10.04 2. Vorlesung Methoden des Software Engineering. Block R Rahmen Aktivitäten der Software-Entwicklung Block R (Rahmen): SE Aktivitäten 21.10.04 1 Vorlesung Methoden des Software Engineering Block R Rahmen Aktivitäten der Software-Entwicklung Martin Wirsing Einheit R.2, 21.10.2004 Block R (Rahmen): SE Aktivitäten

Mehr

Software-Entwicklung

Software-Entwicklung Software-Entwicklung SEP 96 Geschichte der Programmierung Aufgaben von, Anforderungen an Programme mit der Zeit verändert 1 Programmierung über Lochkarten z.b. für Rechenaufgaben 2 maschinennahe Programmierung

Mehr

Objektorientierte Software-Entwicklung

Objektorientierte Software-Entwicklung Objektorientierte Software-Entwicklung Priv.- Doz Dr. Rolf Hennicker 04.10.2002 Kapitel 1 Software Engineering: Überblick Kapitel 1 Software Engineering: Überblick 2 Ziele Verstehen, womit sich die Disziplin

Mehr

SOFTWARETECHNIK. Kapitel 7 Vorgehensmodelle. Vorlesung im Wintersemester 2012/13 FG System- und Software-Engineering Prof. Dr.-Ing.

SOFTWARETECHNIK. Kapitel 7 Vorgehensmodelle. Vorlesung im Wintersemester 2012/13 FG System- und Software-Engineering Prof. Dr.-Ing. SOFTWARETECHNIK Kapitel 7 Vorgehensmodelle Vorlesung im Wintersemester 2012/13 FG System- und Software-Engineering Prof. Dr.-Ing. Armin Zimmermann Inhalt Vorgehensmodelle Sequenzielle Modelle Iterative

Mehr

Software-Lebenszyklus

Software-Lebenszyklus Software-Lebenszyklus Inhalt Vorgehensmodell/Phasenplan Wasserfallmodell WAS-Beschreibung WIE-Beschreibung Weitere Phasenmodelle: Spiral-Modell, V-Modell, RUP Extreme Programming SW-Qualitätssicherung

Mehr

Einführung in die Informationsverarbeitung Teil Thaller. Stunde VII: Planen und Realisieren

Einführung in die Informationsverarbeitung Teil Thaller. Stunde VII: Planen und Realisieren Einführung in die Informationsverarbeitung Teil Thaller Stunde VII: Planen und Realisieren Manfred Thaller, Universität zu Köln Köln 18. Dezember 2014 Rekapitulation Der Gang der Argumentation 1. Der Rohstoff:

Mehr

3. Vorgehensmodelle Software Engineering. Prof. Dr. Bernhard Humm Hochschule Darmstadt, 23. Oktober 2006

3. Vorgehensmodelle Software Engineering. Prof. Dr. Bernhard Humm Hochschule Darmstadt, 23. Oktober 2006 3. Vorgehensmodelle Software Engineering Prof. Dr. Bernhard Humm Hochschule Darmstadt, 23. Oktober 2006 Agenda Agenda Übersicht V-Modell Rational Unified Process Extreme Programming Fazit, Literatur, Kontrollfragen

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

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. Fomuso Ekellem WS 2011/12

Softwaretechnik. Fomuso Ekellem WS 2011/12 WS 2011/12 Inhalt Projektvorstellung Übung 1 Wiederholung zusammengefasst Planungsphase Lernziele Ziele und Inhalt der Planungsphase Anlass und Aufgabestellung(Was ist dabei erförderlich) Requirement Engineering

Mehr

Softwaretechnik (Medieninformatik) Überblick

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

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

Softwaretechnikpraktikum SS 2004. Qualitätsmanagement I. 1. Überblick. Qualität. Qualitätsmerkmal

Softwaretechnikpraktikum SS 2004. Qualitätsmanagement I. 1. Überblick. Qualität. Qualitätsmerkmal Softwaretechnikpraktikum SS 2004 Qualitätsmanagement I 5. Vorlesung 1. Überblick Planungsphase Definitionsphase Entwurfsphase Implem.- phase Fragen Was ist Qualität? Wie kann man Qualität messen? Wie kann

Mehr

Übungen Softwaretechnik I

Übungen Softwaretechnik I Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Übungen Softwaretechnik I Übung 2: Vorgehensmodelle IAS-Vorgehensmodell Motivation Probleme Die

Mehr

Fachhochschule Wiesbaden, FB Design Informatik Medien Studiengang Allgemeine Informatik Vorlesung im SS 2007

Fachhochschule Wiesbaden, FB Design Informatik Medien Studiengang Allgemeine Informatik Vorlesung im SS 2007 Softwaretechnik Fachhochschule Wiesbaden, FB Design Informatik Medien Studiengang Allgemeine Informatik Vorlesung im SS 2007 1 Ziele Die Analyse einer softwaretechnischen Problemstellung nach objektorientierten

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

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

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

6. Modellierung von Informationssystemen. 6.1 Einleitung 6.2 Konzeptuelles Modell 6.3 OASIS Spezifikation 6.4 Execution Model 6.

6. Modellierung von Informationssystemen. 6.1 Einleitung 6.2 Konzeptuelles Modell 6.3 OASIS Spezifikation 6.4 Execution Model 6. 6. Modellierung von Informationssystemen Spezialseminar Matr. FS 2000 1/10 Volker Dobrowolny FIN- ITI Quellen: Oscar Pastor, Jaime Gomez, Emilio Insfran, Vicente Pelechano The OO-Method approach for information

Mehr

Einführung in Generatives Programmieren. Bastian Molkenthin

Einführung in Generatives Programmieren. Bastian Molkenthin Einführung in Generatives Programmieren Bastian Molkenthin Motivation Industrielle Entwicklung *!!*,(% % - #$% #!" + '( & )!* Softwareentwicklung Rückblick auf Objektorientierung Objektorientierte Softwareentwicklung

Mehr

Der Projektmanager (nach GPM / IPMA) Fragen zur Selbsteinschätzung und für die Prüfungsvorbereitung. Kapitel B Vorgehensmodelle

Der Projektmanager (nach GPM / IPMA) Fragen zur Selbsteinschätzung und für die Prüfungsvorbereitung. Kapitel B Vorgehensmodelle Der Projektmanager (nach GPM / IPMA) Fragen zur Selbsteinschätzung und für die Prüfungsvorbereitung Kapitel B Vorgehensmodelle Inhaltsverzeichnis 1 B Vorgehensmodell... 3 1.1 Welche Vorgehensmodelle sind

Mehr

Informationssystemanalyse Use Cases 11 1

Informationssystemanalyse Use Cases 11 1 Informationssystemanalyse Use Cases 11 1 Use Cases Slide 1 Als ein populäres Mittel um Anforderungen zu erfassen und Systeme zu beschreiben, werden Use Cases benutzt. Sie bilden die Basis für eine umfassendere

Mehr

Software-Engineering 2. Software-Engineering 2. Entwicklungsumgebungen (IDE) IT works. Klaus Mairon www.mairon-online.de 22.03.

Software-Engineering 2. Software-Engineering 2. Entwicklungsumgebungen (IDE) IT works. Klaus Mairon www.mairon-online.de 22.03. Software-Engineering 2 Entwicklungsumgebungen (IDE) IT works. Klaus Mairon www.mairon-online.de 22.03.2009 1 Entwicklungsumgebungen, CASE-Tools, CASE-Werkzeuge unterstützen den Software-Entwicklungsprozess

Mehr

Software Engineering. Bibliographisches Institut & F. A. Brockhaus AG, Mannheim; Spektrum Akademischer Verlag GmbH, Heidelberg, 2003

Software Engineering. Bibliographisches Institut & F. A. Brockhaus AG, Mannheim; Spektrum Akademischer Verlag GmbH, Heidelberg, 2003 Software Engineering Softwaretechnik Softwaretechnologie, Software Engineering (engl.) das, -, Teilgebiet der Informatik, das sich mit Methoden und Werkzeugen für das ingenieurmäßige Entwerfen, Herstellen

Mehr

12. Vorgehensmodelle Softwaretechnik (CNAM)

12. Vorgehensmodelle Softwaretechnik (CNAM) 12. Vorgehensmodelle Softwaretechnik (CNAM) Wintersemester 2011 / 2012 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 1 Einordnung in den gesamten Kurs 1. Einführung 2. Analyse: Anforderungen

Mehr

Übungsaufgaben zum Software Engineering: Management

Übungsaufgaben zum Software Engineering: Management Übungsaufgaben zum Software Engineering: Management Grundbegriffe: Aufgabe 1: Aus welchen Disziplinen setzt sich das Software Engineering zusammen? a. Informatik b. Physik c. Psychologie d. Chemie e. Geologie

Mehr

Projektmanagement. Dokument V 1.1. Oliver Lietz - Projektmanagement. Wie kommt es zu einem Projektauftrag? Ausführung

Projektmanagement. Dokument V 1.1. Oliver Lietz - Projektmanagement. Wie kommt es zu einem Projektauftrag? Ausführung Projektmanagement Management- und Phasen-Modelle Vom Wasserfall bis Extreme Programming / Scrum Dokument V 1.1 Wie kommt es zu einem Projektauftrag? Auftraggeber Projekt-Idee / Ziele [Anforderungen/Spezifikation/

Mehr

Der Unified Process ist ein generischer Prozeß zur objektorientierten Software- Erstellung

Der Unified Process ist ein generischer Prozeß zur objektorientierten Software- Erstellung Unified Process Eine Einführung von Hannes Fischer Fischer Software Elfenstr. 64 70567 Stuttgart Deutschland Copyright 2000 Hannes Fischer Unified Process Wie wird heute gearbeitet? Der Unified Process

Mehr

Orientierte Modellierung mit der Unified Modeling Language

Orientierte Modellierung mit der Unified Modeling Language UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler Ziel dieses Seminars Verständnis von Objekt-Orientierung Was sind Klassen? Was ist Vererbung?

Mehr

Software-Qualität im Rahmen modellgetriebener Softwareentwicklung

Software-Qualität im Rahmen modellgetriebener Softwareentwicklung Software-Qualität im Rahmen modellgetriebener Softwareentwicklung OFFIS Technologiecluster Enterprise Application Integration niels.streekmann@offis.de 09.07.2008 Seite 1 / 13 Software-Qualität: Unterschiedliche

Mehr

1. Java ist... 2. Stammbaum der Programmiersprachen 3. Die "Softwarekrise"

1. Java ist... 2. Stammbaum der Programmiersprachen 3. Die Softwarekrise im Überblick im Überblick Inhalt 1. Java ist... 2. Stammbaum der Programmiersprachen 3. Die Softwarekrise 1. Merkmale von Software 2. Fortlaufende Veränderungen 3. Erschwerte Rahmenbedingungen bei der

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

Gliederung des Vortrages

Gliederung des Vortrages Gliederung des Vortrages Unified Modeling Language Rational Rose Sergej Schwenk Oktober 1999 0. Einführung 1. Historie 2. Der Entwicklungsprozeß 3. UML 3.1 Anwendungsfalldiagramme 3.2 Klassendiagramme

Mehr

Architektur und Qualität. Tjard Köbberling

Architektur und Qualität. Tjard Köbberling Architektur und Qualität Tjard Köbberling Gliederung Überblick Architektur und Qualität? Architekturentwurf Anforderungsanalyse Strukturierung Architekturbeschreibungen - Sichten Fallbeispiel 2 Architektur

Mehr

2. Vorgehensmodelle Softwaretechnik (CNAM) Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

2. Vorgehensmodelle Softwaretechnik (CNAM) Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 2. Vorgehensmodelle Softwaretechnik (CNAM) Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik

Mehr

Softwaretechnik WS 2013/14. Fomuso Ekellem

Softwaretechnik WS 2013/14. Fomuso Ekellem WS 2013/14 Organisatorisches Dozentin : Ango (Raum 2.250) Fragen und Übungen: mathe_ekellem@yahoo.com (Nur hier, sonst wird nicht bewertet) Folien: http://www.gm.fh-koeln.de/~afomusoe/softwaretechnik.html

Mehr

The Rational Unified Process. Eine Einführung von T. Langer und A. Nitert

The Rational Unified Process. Eine Einführung von T. Langer und A. Nitert The Rational Unified Process Eine Einführung von T. Langer und A. Nitert Übersicht Einleitung Probleme der SW-Entwicklung, Best Practices, Aufgaben Was ist der Rational Unified Process? Struktur des Prozesses

Mehr

Software- und Systementwicklung

Software- und Systementwicklung Software- und Systementwicklung Seminar: Designing for Privacy 11.11.2009 Moritz Vossenberg Inhalt Vorgehensmodelle Wasserfallmodell V-Modell Phasen (Pflichtenheft) UML Klassendiagramm Sequenzdiagramm

Mehr

Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme. Tillmann Schall, anaptecs GmbH

Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme. Tillmann Schall, anaptecs GmbH Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme Tillmann Schall, anaptecs GmbH : Agenda Grundlagen modellgetriebener Entwicklungsprozesse Schritte zur Einführung Erfahrungen

Mehr

Objektorientierte Analyse und Design

Objektorientierte Analyse und Design Folien basieren auf folgendem Buch: Objektorientierte Analyse und Design Kernziele: Strukturen für erfolgreichen SW-Entwicklungsprozess kennen lernen Realisierung: Von der Anforderung zur Implementierung

Mehr

Das Wasserfallmodell - Überblick

Das Wasserfallmodell - Überblick Das Wasserfallmodell - Überblick Das Wasserfallmodell - Beschreibung Merkmale des Wasserfallmodells: Erweiterung des Phasenmodells Rückkopplungen zwischen den (benachbarten) Phasen sind möglich Ziel: Verminderung

Mehr

IT-Projekt-Management

IT-Projekt-Management IT-Projekt-Management email: vuongtheanh@netscape.net http: www.dr-vuong.de 2005 by, Bielefeld Seite 1 Vorgehensmodell 2005 by, Bielefeld Seite 2 Was ist ein Vorgehensmodell? Strukturbeschreibung über

Mehr

Programmierung, Algorithmen und Techniken. von Thomas Ohlhauser

Programmierung, Algorithmen und Techniken. von Thomas Ohlhauser Programmierung, Algorithmen und Techniken von Thomas Ohlhauser 1. Begriff Programmierung Entwicklung von Programmen inklusive der dabei verwendeten Methoden und Denkweisen. Ein Programm ist eine eine Zusammensetzung

Mehr

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich. Softwaretechnik I

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich. Softwaretechnik I Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Softwaretechnik I Wintersemester 2015 / 2016 www.ias.uni-stuttgart.de/st1 st1@ias.uni-stuttgart.de

Mehr

Softwaretechnik. Fomuso Ekellem WS 2011/12

Softwaretechnik. Fomuso Ekellem WS 2011/12 WS 2011/12 Weiteren Verlauf der Vorlesung 31.10.2011(2 Std) OO Vorgehensmodelle, UML, Teamarbeit, Gruppenbildung,. 07.11.2011(2,5Std) Projektvorstellung, Planungsphase 14.11.2011(2 Std) Angebotspräsentation,

Mehr

Softwaretechnik. Wesentliche Inhalte der Vorlesung

Softwaretechnik. Wesentliche Inhalte der Vorlesung Softwaretechnik Prof. Dr. Bernhard Schiefer schiefer@informatik.fh-kl.de http://www.informatik.fh-kl.de/~schiefer Prof. Dr. Bernhard Schiefer 1-1 Wesentliche Inhalte der Vorlesung Phasen der Software-Entwicklung

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

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

Objektorientierte Analyse

Objektorientierte Analyse Objektorientierte Analyse 1) Systemanalyse Einführung Prof. Dr. rer. nat. habil. Uwe Aßmann Institut für Software- und Multimediatechnik Lehrstuhl Softwaretechnologie Fakultät für Informatik TU Dresden

Mehr

Vorlesung Software-Engineering I

Vorlesung Software-Engineering I Vorlesung Software-Engineering I im 3. und 4. Semester 05. Basiskonzepte Sichten auf das Produkt PD-TES/Hoyer, Frank-Michael SWE1: 05. Basiskonzepte - Sichten 16. Juli 2010 geändert: 4. Oktober 2013 SW-Architektur

Mehr

Software Engineering Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien, Methoden und Werkzeugen

Software Engineering Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien, Methoden und Werkzeugen White Paper Software Engineering Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien, Methoden und Werkzeugen Die arbeitsteilige, ingenieurmäßige Entwicklung und Anwendung von umfangreichen

Mehr

Objektorientierter Software-Entwurf Die Unified Modeling Language 4 1

Objektorientierter Software-Entwurf Die Unified Modeling Language 4 1 Objektorientierter Software-Entwurf Die Unified Modeling Language 4 1 Die Unified Modeling Language Die UML (hier in der Version 0.9) ist ein Satz von Notationen zur Beschreibung objektorientierter Softwaresysteme.

Mehr

Inhaltsverzeichnis. Vorwort...XIII. Aufbau des Buches...

Inhaltsverzeichnis. Vorwort...XIII. Aufbau des Buches... Inhaltsverzeichnis Vorwort...XIII Aufbau des Buches............................................... XV 1 Von der Idee zur Software..................................... 1 1.1 Beispielanwendung... 1 1.2 Schritte

Mehr

Vorlesung Objektorientierte Softwareentwicklung. Kapitel 0. Java-Überblick

Vorlesung Objektorientierte Softwareentwicklung. Kapitel 0. Java-Überblick Vorlesung Objektorientierte Softwareentwicklung Sommersemester este 2008 Kapitel 0. Java-Überblick Was sind die Ziele? Warum Java? Komplexe Anwendungen e-business verteilt zuverlässig sicher mobil persistent

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

Probeklausur. Lenz Belzner. January 26, 2015. Lenz Belzner Probeklausur January 26, 2015 1 / 16

Probeklausur. Lenz Belzner. January 26, 2015. Lenz Belzner Probeklausur January 26, 2015 1 / 16 Probeklausur Lenz Belzner January 26, 2015 Lenz Belzner Probeklausur January 26, 2015 1 / 16 Definieren Sie Software Engineering in Abgrenzung zu Individual Programming. Ingenieursdisziplin professionelle

Mehr

Professionelles Projektmanagement in der Praxis. Veranstaltung 7 Teil 1 (30.06.2003):

Professionelles Projektmanagement in der Praxis. Veranstaltung 7 Teil 1 (30.06.2003): Professionelles Projekt-Management in der Praxis Veranstaltung 7 Teil 1 (30.06.2003): Prof. Dr. Phuoc Tran-Gia, FB Informatik, Prof. Dr. Margit Meyer, FB Wirtschaftswissenschaften, Dr. Harald Wehnes, AOK

Mehr

6. Programmentwicklung

6. Programmentwicklung 6. Programmentwicklung Fertigungsprozess Qualitativ hochwertige Software ist ein Industrieprodukt -> Methoden der Industrie übertragen auf der Herstellprozess -> Herstellprozess gliedert sich in Phasen

Mehr

Model Driven Architecture (MDA)

Model Driven Architecture (MDA) Model Driven Architecture (MDA) Vortrag im Fach Software Engineering II BA Mannheim / Fachrichtung Angewandte Informatik Torsten Hopp Gliederung Einleitung Motivation Grundzüge der MDA Ziele & Potenziale

Mehr

Liste Programmieren - Java

Liste Programmieren - Java Liste Programmieren - Java Fachhochschule Wiesbaden, FB Informatik Studiengang Allgemeine Informatik Vorlesung im WS 2004/2005 Kapitel 1-9 1 Ziele Ausbau der bisherigen Fertigkeiten und Techniken des objektorientierten

Mehr

Methodische objektorientierte Softwareentwicklung

Methodische objektorientierte Softwareentwicklung Methodische objektorientierte Softwareentwicklung Eine Integration klassischer und moderner Entwicklungskonzepte von Mario Winter 1. Auflage Methodische objektorientierte Softwareentwicklung Winter schnell

Mehr

13 Anhang A: Erfüllung der Norm ISO 9000 durch HERMES

13 Anhang A: Erfüllung der Norm ISO 9000 durch HERMES 13 Anhang A: Erfüllung der Norm ISO 9000 durch Hinweis Einleitung Eine der wesentlichsten Grundlagen für die Qualitätssicherung in einem Unternehmen ist die Normenserie «ISO 9000», insbesondere ISO 9001:1994

Mehr

Grundlagen der Programm- und Systementwicklung

Grundlagen der Programm- und Systementwicklung Grundlagen der Programm- und Systementwicklung Technische Universität München Institut für Informatik Software & Systems Engineering Prof. Dr. Dr. h.c. Manfred Broy Unter Mitarbeit von Dr. Maria Spichkova

Mehr

Softwaretechnik Überblick

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

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

Modellierungstechniken im Softwaredesign. Praxisprojekt [ai] Control WS 2011/2012 Lara Baschour und Anne Heiting

Modellierungstechniken im Softwaredesign. Praxisprojekt [ai] Control WS 2011/2012 Lara Baschour und Anne Heiting Modellierungstechniken im Softwaredesign Praxisprojekt [ai] Control WS 2011/2012 Lara Baschour und Anne Heiting Was ist Modellierung? Modell = Ein Modell ist eine Repräsentation eines Systems von Objekten,

Mehr

VL2: Softwareprojekt - Anforderungsanalyse. Inhalt. 1. Struktur eines Softwareprojektes

VL2: Softwareprojekt - Anforderungsanalyse. Inhalt. 1. Struktur eines Softwareprojektes Dozent: G.Döben-Henisch (Version vom 16.April 2005) PPmP VL2 VL2: Softwareprojekt - Anforderungsanalyse Inhalt 1. Struktur eines Softwareprojektes 2. Anforderungsanalyse 1. Struktur eines Softwareprojektes

Mehr

Programmieren in Java

Programmieren in Java FG TECHNISCHE INFORMATIK V JV A00 00 TH 0 Programmieren in Java Anhang A A. Modellierung von OOP-Programmen A.. Klassenkategorien A.2. Klassembeziehungen A.3. Klassendiagramm und Sequenzdiagramm der UML

Mehr

SEA. Modellgetriebene Softwareentwicklung in der BA

SEA. Modellgetriebene Softwareentwicklung in der BA SEA Modellgetriebene Softwareentwicklung in der BA MDA bei der BA Ziele/Vorteile: für die Fachabteilung für die Systementwicklung für den Betrieb Wie wird MDA in der BA umgesetzt? Seite 2 MDA bei der BA

Mehr

0. Einführung. C und C++ (CPP)

0. Einführung. C und C++ (CPP) C und C++ (CPP) 0. Einführung Prof. Dr. Marc Rennhard Institut für angewandte Informationstechnologie InIT ZHAW Zürcher Hochschule für Angewandte Wissenschaften marc.rennhard@zhaw.ch Marc Rennhard, 05.01.2010,

Mehr

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014 Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung Klaus Kusche, September 2014 Inhalt Ziel & Voraussetzungen Was sind abstrakte Datentypen? Was kann man damit grundsätzlich?

Mehr

Praktikum Grundlagen der Programmierung. Diverse Grundlagen. Dr. Karsten Tolle

Praktikum Grundlagen der Programmierung. Diverse Grundlagen. Dr. Karsten Tolle Diverse Grundlagen Dr. Karsten Tolle Vorgehensmodelle im Software Engineering Wasserfallmodell Rapid Prototyping Spiralmodell V-Modell Rational Unified Process extrem Programming Test Driven Development

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

Client/Server-Systeme

Client/Server-Systeme Fachbereich Informatik Projektgruppe KOSI Kooperative Spiele im Internet Client/Server-Systeme Vortragender Jan-Ole Janssen 26. November 2000 Übersicht Teil 1 Das Client/Server-Konzept Teil 2 Client/Server-Architekturen

Mehr

Teil VII. Software Engineering

Teil VII. Software Engineering Teil VII Software Engineering Überblick 1 Einführung 2 Der Softwareentwicklungsprozess 3 Methoden und Werkzeuge Eike Schallehn Grundlagen der Informatik für Ingenieure 2008/2009 7 1 Einführung Die Softwarekrise

Mehr

Objektorientierter Softwareentwurf mit UML. Ricardo Hernández Garcia, Joachim Palmer 1. Ausgabe, Januar 2010. Grundlagen. Neubearbeitung 2010

Objektorientierter Softwareentwurf mit UML. Ricardo Hernández Garcia, Joachim Palmer 1. Ausgabe, Januar 2010. Grundlagen. Neubearbeitung 2010 Ricardo Hernández Garcia, Joachim Palmer 1. Ausgabe, Januar 2010 Objektorientierter Softwareentwurf mit UML Grundlagen Neubearbeitung 2010 PGOS2010 I Objektorientierter Softwareentwurf mit UML - Grundlagen

Mehr

Praktikum Software Engineering: Verfahren und Werkzeuge

Praktikum Software Engineering: Verfahren und Werkzeuge Praktikum Software Engineering: Verfahren und Werkzeuge Lehrstuhl für Software Engineering (Informatik 11) Verfahren und Werkzeuge Seite 1 Software Engineering Absichten, Aufgaben Systemnutzung Anforderungsspezifikation

Mehr

Qualitätsmanagement. Grundlagen

Qualitätsmanagement. Grundlagen Grundlagen Historie: Mit industriellen Massenproduktion erforderlich geworden (Automobilindustrie, Anfang des letzten Jahrhunderts); Qualitätsmanagement zunächst nur in der Fertigung Mitte des letzten

Mehr

Einführung in die Softwareentwicklung

Einführung in die Softwareentwicklung Einführung in die Softwareentwicklung Thorsten Lemburg Universität Hamburg Seminar: Softwareentwicklung in der Wissenschaft 1 / 53 Einführung in die Softwareentwicklung - Thorsten Lemburg Gliederung 1.

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

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

Teil IX. Software Engineering

Teil IX. Software Engineering Teil IX Software Engineering Überblick 1 Einführung 2 Der Softwareentwicklungsprozess 3 Methoden und Werkzeuge Eike Schallehn, FIN/ITI Grundlagen der Informatik für Ingenieure 636/666 Die Softwarekrise

Mehr

Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten

Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten Objekt Objekt kapselt Variablen und Routinen Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten Eigenschaften jedes Objekts: Identität (identisch = mehrere

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

J.2 Objektorientiertes Modellieren mit UML

J.2 Objektorientiertes Modellieren mit UML Modellieren mit UML Objektorientiertes Modellieren mit UML 2002 Prof. Dr. Rainer Manthey Informatik II 1 UML: Übersicht in den 1980er Jahren: Entstehen einer Vielzahl objektorientierter Entwurfsmethoden

Mehr

Software - Testung ETIS SS05

Software - Testung ETIS SS05 Software - Testung ETIS SS05 Gliederung Motivation Was ist gute Software? Vorurteile gegenüber Testen Testen (Guidelines + Prinzipien) Testarten Unit Tests Automatisierte Tests Anforderungen an Testframeworks

Mehr

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0 Jens Kohlmeyer 05. März 2007 Institut für Programmiermethodik und Compilerbau ActiveCharts Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0 Seite 2 Übersicht

Mehr