Softwaretechnik (Medieninformatik) Überblick



Ähnliche Dokumente
Softwaretechnik Überblick

Objektorientierte Analyse und Design

Kapitel 2: Der Software-Entwicklungsprozess

Softwaretechnik (Allgemeine Informatik) Überblick

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

Software Engineering

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

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

IT-Projekt-Management

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

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

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

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

Abschnitt 16: Objektorientiertes Design

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

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

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

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

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

Software-Engineering

Softwaretechnik (Allgemeine Informatik) Überblick

Liste Programmieren - Java

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Präsentation Von Laura Baake und Janina Schwemer

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

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.

Referent: Mathias Notheis Kontakt:

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

Informationswirtschaft II Rational Unified Process (RUP)

Informationswirtschaft II

Grundlagen Software Engineering

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

SCHULUNG MIT SYSTEM: E-LEARNING VON RAUM21

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

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

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

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

Wann ist eine Software in Medizinprodukte- Aufbereitungsabteilungen ein Medizinprodukt?

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

Vgl. Kapitel 5 aus Systematisches Requirements Engineering, Christoph Ebert

Software- Entwicklungsaktivitäten und Vorgehensmodelle. Lebenszyklusmodell

Software-Engineering Grundlagen des Software-Engineering

Übungen zur Softwaretechnik

Fotos in Tobii Communicator verwenden

Professionelle Seminare im Bereich MS-Office

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

Objektorientierte Programmierung OOP

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

Arbeiten mit UMLed und Delphi

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

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

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

Generative Prozessmodelle Patrick Otto MDD Konferenz

Einführung und Motivation

Die Design-Dimension: Strukturierung, Aufbau, Gestaltung und Präsentation von Berichten

Internet Explorer Version 6

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

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

1 Mathematische Grundlagen

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

Was meinen die Leute eigentlich mit: Grexit?

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

Software-Entwicklung

FUTURE NETWORK REQUIREMENTS ENGINEERING

Fragebogen ISONORM 9241/110-S

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

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

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

Einführung in Eclipse und Java

Wirtschaftsinformatik 2 Modellierung betrieblicher Informationssysteme - MobIS

Konzepte der Informatik

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Klausur Software-Engineering SS 2005 Iwanowski

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

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

Idimager ein Bildverwaltungsprogramm-DAM Software

1. Grundbegriffe des Software-Engineering

Robot Karol für Delphi

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Grundbegriffe der Informatik

Bildquelle:

Benötigen wir einen Certified Maintainer?

Online Newsletter III

Einführung in die Informatik

Urlaubsregel in David

Requirements Engineering I

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Einen Wiederherstellungspunktes erstellen & Rechner mit Hilfe eines Wiederherstellungspunktes zu einem früheren Zeitpunkt wieder herstellen

Übungsklausur vom 7. Dez. 2007

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

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

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

SWE12 Übungen Software-Engineering

Java Entwicklung für Embedded Devices Best & Worst Practices!

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

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

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

Transkript:

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

Was ist Softwaretechnik? Bisher behandelten wir die sog. Kleinen Die Softwaretechnik, auch Software Engineering genannt, befasst sich mit der Großen Was sind die Unterschiede? Codelänge Zweck Anzahl Entwickler Anwender Kosten Lebenserwartung Zuverlässigkeit/Qualität Kleinen 50 - einige Tausend Zeilen Lösung eines begrenzten Problems 1 bis wenige oft der Entwickler unbedeutend meist kurz mäßig wichtig, leicht erreichbar 10 000 Zeilen aufwärts Komplexes Anwendungssystem 5 bis 100 oder mehr meist EDV-Unerfahrene sehr hoch 10-20 Jahre Großen oft überlebenswichtig (für Anwender und Entwickler), schwer erreichbar Prof. Dr. Björn Dreher Softwaretechnik (Medieninformatik) 13 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 (Medieninformatik) 14

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 (Medieninformatik) 15 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 Kleinen oder Großen notwendig... Prof. Dr. Björn Dreher Softwaretechnik (Medieninformatik) 16

Programmieren im Kleinen vs. im Großen Entwicklungstechniken Vorplanung Koordination und Kommunikation Dokumentation Benutzeroberfläche Kleinen oft überflüssig, Entwicklung am Bildschirm (trial and error) unnötig wenig reicht einfache Oberfläche für EDV-Profi Großen wesentlicher Teil der Entwicklungsarbeit mit wachsender Teamgrößen zunehmend schwieriger. Kommunikation mit Auftraggeber ausführlich, auf verschiedenen Ebenen (technisches Handbuch, Benutzerhandbuch, etc.) bedienungssicher und verständlich für EDV-Laien Prof. Dr. Björn Dreher Softwaretechnik (Medieninformatik) 17 Programmieren im Kleinen vs. im Großen Entwicklungstechniken (fortgesetzt) Test Wartung Portabilität Kleinen meist einfach durch Hinsehen kaum nötig, einfach meist Nutzung auf nur einem Rechner 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. Entwicklungs- und Zielrechner können unterschiedlich sein. Hardware kann veralten Prof. Dr. Björn Dreher Softwaretechnik (Medieninformatik) 18

Softwaretechnik (Medieninformatik) Überblick: Prof. Dr. Björn Dreher Softwaretechnik (Medieninformatik) 19 Wie bei den anderen Ingenieurs-Disziplinen wird auch die Softwareentwicklung in verschiedenen Phasen durchgeführt. Altes heute überholtes Wasserfall-Modell: 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 (Medieninformatik) 20

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 (Medieninformatik) 21 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 (Medieninformatik) 22

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 (Medieninformatik) 23 Softwaretechnik (Medieninformatik) Überblick: Prof. Dr. Björn Dreher Softwaretechnik (Medieninformatik) 24

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 (Medieninformatik) 25 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 (Medieninformatik) 26

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 (Medieninformatik) 27 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 (Medieninformatik) 28

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 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, nur eine Beschreibungssprache 1999 Entwicklungsmethode: Unified Process (UP) und Rational Unified Process (RUP) Prof. Dr. Björn Dreher Softwaretechnik (Medieninformatik) 29 Heute CASE-Methoden und Tools orientieren sich an der UML Aufbauend auf Analyse und Design erzeugen Codegeneratoren Programmgerüste Haupttätigkeiten bei Softwareentwicklung sind Analyse und Design, alles 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 (Medieninformatik) 30