Softwaretechnik Überblick



Ähnliche Dokumente
Softwaretechnik (Medieninformatik) Überblick

Objektorientierte Analyse und Design

Kapitel 2: Der Software-Entwicklungsprozess

Softwaretechnik (Allgemeine Informatik) Überblick

IT-Projekt-Management

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

Software Engineering

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Wirtschaftsingenieurwesen (Informationstechnik) Modulname. Programmierung II / Software Engineering II Modulnummer

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

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

Abschnitt 16: Objektorientiertes Design

Grundlagen Software Engineering

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

Das Wasserfallmodell - Überblick

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

Informationswirtschaft II Rational Unified Process (RUP)

Informationswirtschaft II

Software-Engineering

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

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

Übungen zur Softwaretechnik

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

Übungen zur Softwaretechnik

Software- Entwicklungsaktivitäten und Vorgehensmodelle. Lebenszyklusmodell

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

Prozess-Modelle für die Softwareentwicklung

Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun. Java Projekt. Schiffe Versenken mit GUI

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

Liste Programmieren - Java

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Präsentation Von Laura Baake und Janina Schwemer

Wirtschaftsinformatik I Teil 2. Sommersemester Übung

Übungsaufgaben zum Software Engineering: Management

Systemdenken und Gestaltungsmethodik Einführung und Grundlagen II

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

Softwaretechnik (Allgemeine Informatik) Überblick

Einführung und Motivation

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

Das Pflichtenheft. Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth Ains A-Systemhaus GmbH Berlin

Vgl. Kapitel 5 aus Systematisches Requirements Engineering, Christoph Ebert

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

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail:

Referent: Mathias Notheis Kontakt:

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

Evaluation of Database Design and Reverse Engineering Tools for a Large Software System

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

Requirements Management mit RequisitePro. Rational in der IBM Software Group. Der Rational Unified Process als Basis für die Projektarbeit

Wann ist eine Software in Medizinprodukte- Aufbereitungsabteilungen ein Medizinprodukt?

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

Arbeiten mit UMLed und Delphi

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

Some Software Engineering Principles

Wir erledigen alles sofort. Warum Qualität, Risikomanagement, Gebrauchstauglichkeit und Dokumentation nach jeder Iteration fertig sind.

Einführung in Eclipse und Java

Entwicklung und Dokumentation eines Klausurorganisationssystems mit Microsoft Access

Grundbegriffe der Informatik

StuPro-Seminar Dokumentation in der Software-Wartung. StuPro-Seminar Probleme und Schwierigkeiten in der Software-Wartung.

Softwaretechnik. Fomuso Ekellem WS 2011/12

Softwaretechnik. Fomuso Ekellem WS 2011/12

Fragebogen ISONORM 9241/110-S

Gründe für fehlende Vorsorgemaßnahmen gegen Krankheit

1 Mathematische Grundlagen

Informationssystemanalyse Problemstellung 2 1. Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse:

Erfahrungen mit Hartz IV- Empfängern

Fragebogen: Abschlussbefragung

Das System sollte den Benutzer immer auf dem Laufenden halten, indem es angemessenes Feedback in einer angemessenen Zeit liefert.

Software-Entwicklung

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

Free your work. Free your work. Wir wollen Ihnen die Freiheit geben, sich auf Ihr Geschäft zu konzentrieren.

Fotos in Tobii Communicator verwenden

Klausur Software-Engineering SS 2005 Iwanowski

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Robot Karol für Delphi

Konzepte der Informatik

Internet Explorer Version 6

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 22

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Übungsklausur vom 7. Dez. 2007

Professionelle Seminare im Bereich MS-Office

SCHULUNG MIT SYSTEM: E-LEARNING VON RAUM21

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

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

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

Software-Engineering Grundlagen des Software-Engineering

Softwareentwicklungsprozess im Praktikum. 23. April 2015

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

Agile Software Development

Informationssystemanalyse Lebenszyklusmodelle 3 1. Lebenszyklusmodelle sollen hauptsächlich drei Aufgaben erfüllen:

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Einführung in die Informatik

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing

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

Idimager ein Bildverwaltungsprogramm-DAM Software

Urlaubsregel in David

Wirtschaftsinformatik 2 Modellierung betrieblicher Informationssysteme - MobIS

Empirische Softwaretechnik Kosten und Nutzen von UML in der Wartung Dr. Victor Pankratius Andreas Höfer Wintersemester 2009/2010

Transkript:

Softwaretechnik Überblick 1 Einführung und Überblick 2 Abstraktion 3 Objektorientiertes Vorgehensmodell 4 Methoden der Anforderungs- und Problembereichsanalyse 5 UML-Diagramme 6 Objektorientiertes Design 7 Test 8 Dokumentation und Wartung 9 Projektmanagement und -organisation Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 17 Softwaretechnik Überblick: Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 18

Was ist Softwaretechnik? Bisher behandelten wir die sog. Programmierung im Kleinen Die Softwaretechnik, auch Software Engineering genannt, befasst sich mit der Programmierung im Großen Was sind die Unterschiede? Codelänge Programmierung im Kleinen 50 - einige Tausend Zeilen Programmierung im Großen 10 000 Zeilen aufwärts Zweck Anzahl Entwickler Anwender Kosten Lebenserwartung Zuverlässigkeit/Qualität Lösung eines begrenzten Problems 1 bis wenige oft der Entwickler unbedeutend meist kurz mäßig wichtig, leicht erreichbar Komplexes Anwendungssystem 5 bis 100 oder mehr meist EDV-Unerfahrene sehr hoch 10-20 Jahre oft überlebenswichtig (für Anwender und Entwickler), schwer erreichbar Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 19 Definition Softwaretechnik Softwaretechnik ist die ingenieurmäßige Entwicklung von Softwaresystemen mit entsprechenden Methoden und Werkzeugen Definition in Pomberger/Blaschek: Softwaretechnik... behandelt die Herstellung großer Programmsysteme erforscht die dazu erforderlichen wissenschaftlichen Methoden entwickelt Werkzeuge zur Unterstützung der Herstellung, Dokumentation und Wartung großer Programmsysteme Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 20

Definition in Pomberger/Blaschek (fortgesetzt) Softwareentwicklung ist eine anspruchsvolle Tätigkeit. Der gesunde Programmiererverstand reicht nicht aus Notwendig sind Beherrschung technischer Fähigkeiten und methodisches Vorgehen Zusammenfassende Definition: Software Engineering ist die praktische Anwendung wissenschaftlicher Erkenntnisse für die wirtschaftliche Herstellung und den wirtschaftlichen Einsatz qualitativ hochwertiger Software Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 21 Vergleich mit Architekt und Bauingenieur oder Maschinenbauer Pläne, Konstruktionszeichnungen, Bau bzw. Fertigung nur nach genau spezifizierenden Plänen Dadurch sind ganz unterschiedliche Entwicklungstechniken bei der Programmierung im Kleinen oder Großen notwendig... Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 22

Programmieren im Kleinen vs. im Großen Entwicklungstechniken Vorplanung Programmierung im Kleinen oft überflüssig, Entwicklung am Bildschirm (trial and error) Programmierung im Großen wesentlicher Teil der Entwicklungsarbeit Koordination und Kommunikation Dokumentation unnötig wenig reicht mit wachsender Teamgrößen zunehmend schwieriger. Kommunikation mit Auftraggeber ausführlich, auf verschiedenen Ebenen (Anforderungen, technisches Handbuch, Benutzerhandbuch, etc.) Benutzeroberfläche einfache Oberfläche für EDV-Profi bedienungssicher und verständlich für EDV-Laien Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 23 Programmieren im Kleinen vs. im Großen Entwicklungstechniken (fortgesetzt) Test Wartung Portabilität Programmierung im Kleinen meist einfach durch Hinsehen kaum nötig, einfach meist Nutzung auf nur einem Rechner Programmierung im Gro-ßen verschiedene Verfahren (Codeinspektion, Läufe mit Testdaten), Testbarkeit muss schon bei Implementierung berücksichtigt werden wegen großer Lebensdauer sehr wichtig, wegen umfangreicher Programme sehr schwierig wichtig bei verschiedenen Rechnerplattformen. Entwicklungsund Zielrechner können unterschiedlich sein. Hardware kann veralten Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 24

Softwaretechnik (Allgemeine Informatik) Überblick: Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 25 Wie bei den anderen Ingenieurs-Disziplinen wird auch die Softwareentwicklung in verschiedenen Phasen durchgeführt. Altes heute überholtes Wasserfall-Modell (1970er Jahre): Voruntersuchung Analyse Design Implement., Test Abnahme & Einf. Betrieb & Wartung Am Ende der 3 ersten Phasen stehen entsprechende Validierungen bevor es weiter geht Die 4. und 5. Phase schließen mit Komponenten-, Integrationsund Systemtests Während des Betriebs unterliegt das System einer ständigen Re- Validierung Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 26

Wasserfall-Modell Nachteile: Voruntersuchung Analyse Design Implement., Test Abnahme & Einf. Betrieb & Wartung Monolithisch: Das ganze System wird auf einmal konstruiert Auftraggeber nur zu Anfang involviert Großer Zeitunterschied zwischen Projektbeginn und Auslieferung Auftraggeber ist erst wieder beim Testen beteiligt Kein Feedback während der Konstruktion Keine Aufteilung, um Komplexität zu vermindern Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 27 Wirtschaftliche Aspekte Die letzte Phase gehört nicht mehr zur eigentlichen Software- Entwicklung. Der Aufwand für Wartung und Pflege übertrifft jedoch meistens den für die eigentliche Entwicklung erheblich. Hierbei bedeutet Wartung die Beseitigung von Fehlern, Pflege die Hinzufügung von Erweiterungen oder Änderungen. Eisbergeffekt Analyse Design Implementierung Test und Einführung Sytementwicklung Wartung und Pflege Systemnutzung Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 28

Wirtschaftliche Aspekte (fortgesetzt) Fehlerentdeckung und behebung Relativer Aufwand zur Behebung des Fehlers 1000 100 10 1 Phase der Fehlerentdeckung Analyse Design Codierung Integration Einführung Wartung 64% aller Fehler werden in den Analyse- und Designphasen gemacht, der Rest bei der Implementierung (Codierung). Dennoch hat immer noch die Codierung eine zu hohe Aufmerksamkeit bei Softwareentwicklern. Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 29 Software-Lebenszyklus Das Ganze nennt man den Software-Lebenszyklus (software life cycle) Hinzu kommen noch Managementtechniken (Personalführung, Terminplanung, Kostenkontrolle) Für jede dieser Phasen gibt es bestimmte Methoden, die zur Erreichung der Phasenziele eingesetzt werden können Einige der Methoden haben sich mittlerweile als de-facto Standards etabliert und durchgesetzt. Die gängigsten sollen in dieser Vorlesung vorgestellt werden Für diese gängigsten Methoden gibt es mittlerweile Werkzeugunterstützung Computergestützte Systeme, um diese Methoden anzuwenden, die Ergebnisse darzustellen und zu dokumentieren Integrierte Software-Engineering Werkzeuge reichen die Ergebnisse einer Phase an die nächste weiter und erlauben somit ein einheitliches und ganzheitliches Vorgehen: CASE-Tools Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 30

Andere Software-Lebenszyklus Modelle Das Boehm sche Spiralmodell Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 31 Das Boehm sche Spiralmodell (1988) 4 Phasen (Quadranten) Im Zuge einer evolutionären Softwareentwicklung mehrfach durchlaufen Pro Umlauf werden nur bestimmte Produkte entwickelt Bauen auf Produkten voriger Umläufe auf Jeder Umlauf eine Teil des Prozesses Machbarkeit Systemanforderungen Systementwurf Implementierung und Test Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 32

Das Boehm sche Spiralmodell (1988) Jede Windung hat 4 Segmente (Phasen) Ziele aufstellen Ziele dieses Durchlaufs Alternativen, Restrisiken Risiken einschätzen und verringern Bewertung, Lösungsstrategien Prototyp, Simulation, Benutzer befragen Entwicklung und Validierung Erstellung der geplanten Produkte Planung der nächsten Phase Aufgrund der Ergebnisse der Reviews Kunden-Evaluierung Hat bereits den Charakter eines iterativen Modells Letzter Umlauf ist eigentliche Erstellung des Systems Nach Beseitigung aller Risiken Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 33 Andere Modelle Das V-Modell Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 34

Das V-Modell Enge Verknüpfung zwischen Entwicklung und Testen Konstruktionsphasen und Teststufen Links Konstruktiver Teil der Anwendungsentwicklung Verifikation gegen vorherige Aktivität Rechts Integrativer Teil Ergebnisse der Programmierung werden schrittweise zu dem Gesamtsystem integriert Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 35 Softwaretechnik (Allgemeine Informatik) Überblick: Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 36

Ende 60er Bedarf für Softwaretechnik neben der reinen Programmierung erstmals voll erkannt Vorher sind zahlreiche große Programmentwicklungen (möglich durch verbesserte Hardwareeigenschaften) gescheitert Arbeiten von Dijkstra 1968 (u.a. gegen Verwendung von GOTO) und Royce 1970 (Software-Lebenszyklus), Top-Down-Entwurf, graphische Veranschaulichungen (Nassi- Shneiderman Diagramme) Mitte 70er Top-Down-Entwurf für große Programme nicht ausreichend, zusätzlich Modularisierung erforderlich Entwicklung der Begriffe Abstrakter Datentyp, Datenkapselung und Information Hiding Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 37 Ende 70er Bedarf für präzise Definition der Anforderungen an ein Softwaresystem: Structured Analysis Design Technique (SADT) von Ross/Schoman, graphische Darstellung Structured Analysis (SA) von De Marco/Constantine: Datenflussdiagramme Entity Relationship Model (ERM) von Chen Structured Design (SD) von Yourdon/Constantine Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 38

80er Jahre Vom Compiler zur Entwicklungsumgebung (Editor, Compiler, Linker, symbolischer Debugger, Source Code Control Systems) Tools zur Unterstützung mehrerer Phasen des Software-Lebenszyklus, auf PCs und Workstations Weiterentwicklung der Modularisierung und der Datenkapselung zur objektorientierten Programmierung Kopplung von Daten und Methoden, einheitliche Behandlung als Objekte, die miteinander kommunizieren, Vererbung von Eigenschaften Sprachen Smalltalk, Eiffel, C++, Turbo-Pascal ab Version 5.5 Real-Time System Specification (RT) von Hatley/Pirbhai Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 39 90er Jahre Objektorientierte Programmierung nimmt zu (wieder ausgehend von der Implementierung) Neue Programmiersprache Java. Anwendungs-Rahmenwerke (Application Frameworks) zur Vereinfachung von Design und vor allem Programmierung. Geeignete Analyse- und Entwurfsmethoden entstehen (Coad/Yourdon, Rumbaugh, Booch, Jacobson und andere) Standard ausgehend von OMT von Rumbaugh mit Weiterentwicklung von Booch und Jacobson entwickelt sich... Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 40

1995... zunächst als Unified Method (UM) von Booch und Rumbaugh, dann kommt Jacobson hinzu (Use Cases). 3 Amigos definieren die Unified Modeling Language (UML) als Quasi- Standard. 1997 UML in der Version 1.1 bei der OMG zur Standardisierung eingereicht und angenommen Pflege der UML durch die OMG Revision Task Force (RTF). Im Herbst 1998 wurde UML 1.3 freigegeben. UML ist jedoch keine Entwicklungmethode (Phasenmodell), nur eine Beschreibungssprache 1999 Entwicklungsmethode: Unified Process (UP) und Rational Unified Process (RUP) Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 41 Heute CASE-Methoden und Tools orientieren sich an der UML Aktueller Stand 2006: UML 2.1 Aufbauend auf Analyse und Design erzeugen Codegeneratoren Programmgerüste Haupttätigkeiten bei Softwareentwicklung sind Analyse und Design, vieles andere versucht man zu automatisieren (?) Der klassische Programmierer : Bald überflüssig?! Nein!!! Algorithmen und Geschäftsprozesse muss man immer noch programmieren Tools können aber viele Routinearbeiten abnehmen Reverse Engineering Round Trip Engineering Prof. Dr. Björn Dreher Softwaretechnik (Allgemeine Informatik) 42