1 Vorlesung "Software-Engineering" zVoraussetzungen: yDiskrete Mathematik: xMengenlehre, Relationenbegriff, Funktionsbegriff xElementare Logik yProgrammiermethodik.

Slides:



Advertisements
Ähnliche Präsentationen
eAQUA Workshop Einführung Software Engineering
Advertisements

Business Engineering Philipp Osl, Alexander Schmidt
Submodell Softwareentwicklung (SE)
Das V - Modell - Überblick
Vorgehensmodell & Wasserfallmodell in der Programmierung
Programmieren im Großen von Markus Schmidt und Benno Kröger.
Vorgehensmodell - Wasserfallmodell
Prof. Dr. Liggesmeyer, 1 Software Engineering: Dependability Prof. Dr.-Ing. Peter Liggesmeyer.
Fach Ziele Vorgehen Rollen Ergebnisse Bewertung Erfahrungen
Von David Keß, Heinrich Wölk, Daniel Hauck
Designing Software for Ease of Extension and Contraction
Das „Vorgehensmodell“
Kapitel 4 Datenstrukturen
WS 04/05 wiss. Übung: Systemanalyse und Softwaredesign
Multidisciplinarity, interdisciplinarity and transdisciplinarity: lessons and perspectives learned from cybernetics and control Karl Heinz Kienitz.
Objektorientierter Entwurf (OOD) Teil 3: Qualitätsmodell
Systemanalyse In der Systemanalyse wird aus den fachspezifischen Anforderungen das Systemmodell erstellt; im Systemmodell ist spezifiziert, was das System.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme I nstitut für K ernenergetik und E nergiesysteme Rational Unified Process (RUP) - Definitionen.
Software „Unter Software versteht man die Gesamtheit oder auch einen Teil der Programme für Rechensysteme. Diese Programme ermöglichen zusammen mit den.
Schulung der Mitarbeiter
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Aufgaben des Testens Vergleich des Verhaltens einer Software mit den an sie gestellten.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Links Links sind im Text angegeben. Weitere Links werden kontinuierlich eingefügt.
Beispiel: Wasserfallmodell als einfaches Phasenmodell
Universität Stuttgart Institut für Kernenergetik und Energiesysteme LE P MuSofT Erkundungsumgebung Entwicklung eines komponentenbasierten Systems WS 03/04.
Das V - Modell - Überblick
Testen, Analysieren und Verifizieren von Software
Rational Unified Process (RUP) - Definitionen
Vortrag 11: Reengineering - Refactoring
Datenbankentwurfsprozess
Berliner Rahmenpläne Informatik für die Sekundarstufe I
Simulation komplexer technischer Anlagen
Vorgehensmodelle: Schwergewichtige Modelle
Software Engineering WS 2009
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
Spezifikation von Anforderungen
Das Wasserfallmodell - Überblick
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Weitere Vorgehensmodelle Der Rational Unified Process RUP –bei IBM.
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering WS 2006 / 2007Folie 1 Agile Vorgehensweisen Hintergrund –in den letzten Jahren hat.
Software Engineering SS 2009
Fünf-Fünf-Zwei der 3. Vorlesung/Übung Requirements Engineering WS 10/11 Marin Zec.
Folie 1Präsentation für IWWB im ASP-Betrieb Copyright 2002, Engine Software Solutions GmbH & Co. KG/InfoWeb Weiterbildung IWWB im ASP-Betrieb Nicht alle.
Das Pflichtenheft Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth
Die Planungsphase Durchführbarkeitsuntersuchung: fachlich, personell und wirtschaftlich Lastenheft (grobes Pflichtenheft) Glossar Projektkalkulation Projektplan.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Programmierung Wintersemester 2013/14 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
IT-Projektmanagement SS 2013 Prof. Dr. Herrad Schmidt
Definitionen der SWT (1)
Software-Technik „Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien, Methoden und Werkzeugen für die arbeitsteilige, ingenieurmäßige.
Wasserfallmodell und Einzelbegriffe
HFWI System Development Teil B Der Softwareentwicklungsprozess
Paradigmenwechsel in der Unternehmensmodellierung Prof. Dr. Wolfgang Voigt Dipl.-Ing. Päd. Alexander Huwaldt UML Extrakt UML Seminar, Chemnitz
5 Software-Qualität 5.1 Qualität 5.2 Taxonomie der Software-Qualitäten.
PRO:CONTROL Ziel des Moduls Arbeitspakete
Grundlagen wissenschaftlichen Arbeitens
Vienna University of Technology Pirker Simon 1. Überblick Definition Motivation Vorteile Entwurf von VP Pirker Simon 2.
Lehrplan Technik GOSt.
GIS Design: A Hermeneutic View (Michael D. Gould)
Software Engineering Grundlagen
Unified Process Historisch-Kulturwissenschaftliche Informationsverarbeitung Übung: Planung von Softwareprojekten Dozent: Christoph Stollwerk WS 2014/2015.
Kurze Rekapitulation aus der Einführungsvorlesung Stunde VII: Planen und Realisieren Manfred Thaller, Universität zu Köln Köln 20. Oktober 2011.
Seminar: Software-Architektur Einführender Vortrag
Qualitätsmanagement nach ISO 9001:2000 in der Zahnarztpraxis
LVA , SS021 Software Engineering Praktikum Software Engineering ist die praktische Anwendung wissenschaftlicher Erkenntnisse für die wirtschaftliche.
Präsentation Phasenmodelle.
Interoperabilität in Digitalen
Müller Christoph1 Projektmanagement und MS Project Pädagogisches Institut.
made by Aberer, Spiegel & Tschegg
Objektorientierte Programmierung Was ist das eigentlich ?
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Entwurf Dr. Wolfgang Wörndl
 Präsentation transkript:

1 Vorlesung "Software-Engineering" zVoraussetzungen: yDiskrete Mathematik: xMengenlehre, Relationenbegriff, Funktionsbegriff xElementare Logik yProgrammiermethodik yInformatik für Ingenieure I+II yDatenbanken und Informationssysteme Prof. Ralf Möller, TUHH, Arbeitsbereich STS Übung: Miguel Garcia

2 Organisatorisches zSprechstunde: n.V. zKlausur yWann? Am Ende des Semesters yWie lernt man für dieses Fach? xWiedergeben xAnwenden xÜbertragen zWeb-Seite: yhttp:// 04.html

3 Literatur, Details und Zusatzinformationen

4 Literatur (2)

5 Vorlesung "Software-Engineering" zLernziele der Vorlesung allgemein: yFundamente: Überblicke, Grundprinzipien über die systematische, ingenieurmäßige Softwareentwicklung yGrundlagen der Informatik: Techniken und Methoden der SW-Entwicklung zLernziele heute: yEinführung in das Gebiet "Software-Engineering" yGrundlagen und Probleme ySoftware-Qualität

6 Anfänge der Software-Entwicklung zGeringe Rechnerleistung zÜberschaubare Problemstellungen zBekannte Algorithmen (meist mathematisch/naturwissenschaftlich) zSoftware-Entwicklung = Programmierung zWenige Benutzerinteraktion ("Batch-Verarbeitung") zWenige Programmierfehler zForderung nach Effizienz zProgrammierer = Benutzer = Spezialisten zSeltener, isolierter Einsatz Software-Engineering nicht notwendig

7 Veränderung der Software-Entwicklung zStark wachsende Leistungsfähigkeit der Hardware zImmer komplexere Aufgabenstellungen zErarbeitung neuer, nicht-numerischer Algorithmen zDialogbetrieb, Interaktivität der Programme zStatt einzelner Programme große, verflochtene Programmsyst. zVerteilte Anwendungen, Client-Server-Architekturen, zMulti-Tier-Architekturen zZunehmende bewährte Altsysteme zZunehmende Abhängigkeit von DV-Systemen, sicherheitskritische Anwendungen Veränderung der Software-Entwicklung

8 Veränderung der Software-Entwicklung zNachträgliche Veränderung der Anforderungen und des Einsatzumfeldes zArbeitsteilige Systementwicklung zEngpass Software-Entwickler zEntwickler und Anwender (evtl. auch Auftraggeber) getrennte Personengruppen z"DV-Laien" als Anwender zSystementwicklung als kommerzielle Auftragsarbeit, Produktentwicklung zZunehmende wirtschaftliche Bedeutung SW-Entwicklung wird zum wichtigen Problem!

9 Wirschaftliche Bedeutung IT&T

10 Situation der Software-Entwicklung zSeit Mitte der sechziger Jahre: z(Zunehmende) Diskrepanz zwischen Hardware und Software hinsichtlich der Leistungsfähigkeit zIm Gegensatz zum "Hardware-Wunder" seit 1965 ein Begriff: zSoftware-Krise

11 Problembereiche der Software-Entwicklung zBeherrschung der Komplexität der Aufgabenstellung zVollständige Erfassung und korrekte Spezifikation der Anforderungen zZerlegung des Systems in Teilsysteme und Spezifikation der Schnittstellen zwischen diesen zKorrektheit und Zuverlässigkeit yFehlerhäufigkeit und Aufwand der Fehlerlokalisation und -beseitigung

12 Problembereiche der Software-Entwicklung zEffizienz der Programme zDokumentation und Wartbarkeit der Gesamtlösung zÄnderbarkeit und Erweiterbarkeit zÜbertragbarkeit auf verschiedene HW-Plattformen zPlanung und Durchführung von Projekten zKosten und Zeitbedarf der Software-Entwicklung zKommunikation zwischen den beteiligten Personen(-gruppen)

13 Mangelnde Zuverlässigkeit, Fehlerhäufigkeit zEin großes Software-Paket besteht aus mindestens Zeilen Programmcode zIn 1000 Zeilen Programmcode werden während der Entwicklung durchschnittlich zwischen 50 und 60 Fehler entdeckt zDie meisten Fehler entstehen bei Problemanalyse und Entwurf der Software zNach Auslieferung werden noch bis zu 4 Fehler pro 1000 Zeilen entdeckt zRelativer Aufwand der Fehlerbeseitigung je nach Phase der Fehlerentdeckung hoch

14 Zeitaufwand je nach Entwicklungsphase

15 Kosten zDramatisch zunehmender Kostenanteil der Software-Entwicklung an den Gesamtkosten von DV-Projekten zGeringe Produktivität: In großen Projekten pro Person im Durchschnitt weniger als 10 Zeilen ausführbares Programm am Tag zDerzeit hoher Anteil der Wartungskosten an den Gesamtkosten (ca. 2 Drittel) zZiel: Minimale Gesamtkosten

16 Zeitbedarf zDeutlich steigende Entwicklungsdauer für Software zNur 5% aller Projekte werden termingerecht fertig zMehr als 60% der Projekte sind >= 20% in Verzug zZykluszeiten für Anwendungssoftware sind wesentlich länger als für Systemsoftware und Hardware

17 Entstehung des Fachgebietes "SW-Engineering" zDer Begriff "Software-Engineering" wird Ende der sechziger Jahre geprägt, zunächst als Provokation zÜbertragen des erfolgreichen ingenieurmäßigen Vorgehens auf die Software-Entwicklung zWeg von der "Kunst" des Programmierens hin zur Ingenieurwissenschaft des Programmierens zMittlerweile als Begriff und Fachgebiet etabliert zGehört zu den besonders nachgefragten Kompetenzen von Informatikern zForschung und Entwicklung nicht abgeschlossen, dynamisches und heterogenes Gebiet, keine Standards

18 Was ist Software-Engineering? zDefinition nach Pomberger/Blaschek z"Software-Engineering ist die praktische Anwendung wissenschaftlicher Erkenntnisse für die wirtschaftliche Herstellung und den wirtschaftlichen Einsatz qualitativ hochwertiger Software"

19 Was ist Software-Engineering? zDefinition nach Balzert z"Software-Technik: Zielorientierte Bereit-stellung und systematische Verwendung von Prinzipien, Methoden, Konzepten, Notationen und Werkzeugen für die arbeitsteilige, ingenieurmäßige Entwicklung und Anwendung von umfangreichen Software- Systemen."

20 Was ist Software-Engineering? zDas Fachgebiet Software-Engineering bietet dem Software-Entwickler einen "methodischen Werkzeugkasten" zSoftware-Engineering bietet keine direkt anwendbaren "Kochrezepte" und "Bedienungsanleitungen" zur SW-Entwicklung zDie Auswahl geeigneter Mittel des Software- Engineering muß weitgehend auf Wissen und Erfahrung der Systementwickler beruhen

21 Grundbegriffe der Software-Entwicklung: Systeme zAllgemein: Ein System ist ein Ausschnitt aus der realen oder gedanklichen Welt, bestehend aus konkreten oder abstrakten Komponenten und deren Beziehungen untereinander zKonkreter: Ein System ist eine Menge von Elementen, die miteinander in Beziehung stehen: System S = (E, R), yE endliche nicht-leere Menge von Elementen yRelation R ist Teilmenge des Kreuzprodukts E x E, yd.h. potentiell kann jedes Element mit jedem in Beziehung stehen zEin System ist ein gerichteter Graph

22 Grundbegriffe der Software-Entwicklung: Systeme zSystemgrenze yFestlegung, was zum System gehört und was nicht, yInteressierender Ausschnitts der (realen) Welt zSystemstruktur yStellung der Systemelemente zueinander, die sich durch die Beziehungen ergibt zSystemhierarchie yElemente des Systems sind entweder atomar oder wiederum Systeme (Subsysteme)

23 Grundbegriffe der Software-Entwicklung: Systeme zSysteminteraktion yAustausch des Systems mit der Systemumgebung über die Schnittstelle durch Inputs und Outputs zKomplexität von Systemen yStrukturelles Merkmal, das die Anzahl der Verbindungen zwischen Systemelementen qualitativ beschreibt (teilweise quantitative Kennzahlen) zDynamik von Systemen yVeränderung des Systemzustands durch Einflüsse von außen und interne Reaktionen

24 Grundbegriffe der Software-Entwicklung: Systeme

25 Modelle... zsind Abbildungen / Beschreibungen von Systemen zkönnen abstrakt oder konkret sein zdienen der Reduzierung von Komplexität ztreten bei der Bearbeitung an die Stelle von Systemen zdienen einem bestimmten Zweck zkönnen Systeme auf unterschiedliche Weise abbilden

26 Modelle zModelle sind die Voraussetzung für die Entwicklung von Software zDie Fähigkeit zur Bildung und kompetenten Handhabung von Modellen ist die Anforderung an Informatiker

27 Software... zist eine Sammelbezeichnung für Programme, die für den Betrieb von Rechensystemen zur Verfügung stehen (einschließlich der zugehörigen Dokumentation) zist im Zusammenspiel mit bestimmter Hardware ausführbar und ermöglicht deren Nutzung zspezialisiert die zugrundeliegende universell programmierbare Hardware zmacht aus der konkreten Maschine eine neue Maschine (virtuelle Maschine) zwird in Schichten unterteilt (Konzept der abstrakten Maschine)

28 Softwareschichten als abstrakte Maschinen

29 Ziel der Vorlesung ist... z... Techniken zu erarbeiten, die es erlauben zu spezifizieren, was eine virtuelle Maschine tun soll. z... Schätzmethoden für den Entwicklungsaufwand anwenden zu können z... Qualitätsmerkmale aufzeigen zu können z... Organisationsformen für die Entwicklung von SW zu verstehen

30 Besonderheiten von Software zSoftware ist immateriell zSoftware unterliegt keinem Verschleiß zSoftware altert zSoftware ist "weich", daher schnell änderbar zDie Herstellung von Software beruht weniger auf allgemein akzeptierten Prinzipien zSoftware ist (häufig) komplex zSoftware ist schwer zu vermessen

31 Abgrenzung: Software - Programm zProgramm yAusführbare Formulierung eines bestimmten Algorithmus (kleine Lösung) zSoftware(-System) yGesamtheit aller Software-Bausteine (Moduln), die in einem Zusammenhang stehen (gemeinsamer Zweck) yWeist eine "Software-Architektur" auf

32 SW-Kategorien zWeitere SW-Kategorien: yTheorembeweiser yMathematik- Systeme y...

33 Neue Trends zInsbesondere für SW für Betriebswirtschaftliche Anwendunge: zSeit Mitte 1990 neue Sicht: SW-Entwicklung durch Anpassung/Konfigurierung von sog. "Referenzmodellen" (Beispiel SAP/R3)

34 Software-Qualität z"Qualität ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Tätigkeit, die sich auf die Eignung zur Erfüllung gegebener Erfordernisse beziehen" (nach DIN ) zSoftware-Qualität... yist mehr als Korrektheit yist kein exakt definierter Begriff yist nicht exakt meßbar ywird anhand von Qualitätsmerkmalen charakterisiert yhängt von der Perspektive ab

35 Software-Qualität: Merkmale Bedeutung der Begriffe unklar, nicht eindeutig abgrenzbar Benutzungsfreundlichkeit Effizienz Zuverlässigkeit Korrektheit Robustheit Erlernbarkeit Systemdokumentation Wieder- verwendbarkeit Benutzerdokumentation Wartbarkeit Portabilität Koppelbarkeit Adäquatheit Verfügbarkeit Lesbarkeit

36 Software- Betreuer Auftraggeber Anwender Software-Qualität: Perspektiven Benutzungsfreundlichkeit Effizienz Zuverlässigkeit Korrektheit Robustheit Erlernbarkeit Systemdokumentation Wieder- verwendbarkeit Benutzerdokumentation Wartbarkeit Portabilität Koppelbarkeit Adäquatheit Verfügbarkeit Lesbarkeit

37 Überblick über die Vorlesung zEinführung yBegriffsbestimmung, Systeme, Modelle, Qualitätskriterien zPhasen und Vorgehensmodelle yProjekttypen, Personen, Prozesse, Produkte und Leistungen zProblemanalyse und Planung: Lastenheft zAufwandsabschätzung zSpezifikation, Definition: Pflichtenheft zEntwurf und Implementierung yStrukturen, Zustände, Prozesse (e.g., ER, UML) yEntwurfsmuster (e.g., Gamma Design Patterns, Model-View-Controller,...) yComponents yModel-driven Architecture zVerifikation, Testen, Validierung zVersionsverwaltung, Konfiguration zProjektmanagement zQualitätssicherung  Installation, Weiterentwicklung