eAQUA Workshop Einführung Software Engineering

Slides:



Advertisements
Ähnliche Präsentationen
Migration von Feldbussen zu PROFINET
Advertisements

Business Engineering Philipp Osl, Alexander Schmidt
Eine Frage der Sichtweise
Prüfung objektorientierter Programme -1
Integrations- und Funktionstests im Rahmen des V-Modelles
Submodell Softwareentwicklung (SE)
Das V - Modell - Überblick
Phasen und ihre Workflows
Vorgehensmodell - Wasserfallmodell
Thema: Sicherheitsarchitektur für mobiles Arbeiten
Von David Keß, Heinrich Wölk, Daniel Hauck
Die Softwarelebenszyklen
Das „Vorgehensmodell“
Die Planungsphase -Anforderungsanalyse-
Definition: Software Software: (engl. eigentlich „weiche Ware“), Abk. SW, Sammelbezeichnung für Programme, die für den Betrieb von Rechensystemen zur.
19. Software-Lebenszyklus und Anforderungsanalyse
Kooperierende autonome Fahrzeuge
Katharina Hojenski Projektgruppe „Verteilte Multimediasysteme“ SS03
Objektorientierter Entwurf (OOD) Teil 3: Qualitätsmodell
Konzeption und Realisierung eines Software Configuration Management Systems Autor: Alex Rempel Referent: Prof. Dr. Elke Hergenröther Korreferent: Prof.
Konzeption und prototypische Implementierung eines zentralen Informationssystems für Systemmanagement Motivation Oft wird es schwierig, die benötigten.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme I nstitut für K ernenergetik und E nergiesysteme Rational Unified Process (RUP) - Definitionen.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Prüfung von Simulationsprogrammen – Integrations- und Funktionstests Inhalt Vom Einzeltest.
Risiken und Chancen Risiko Beurteilung: Dazu gehört die Identifikationen von Risiken, ihre Analyse und das Ordnen nach Prioritäten. Risiko Kontrolle: Dazu.
Schulung der Mitarbeiter
Was ist Qualität ? Qualität von Produkten oder Dienstleistungen ist das Gesamtergebnis aller Aktivitäten in jeder Phase des gesamten Leistungsprozesses.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Beispiel 2: Iterative-Inkrementelle Vorgehensmodelle Annahmen: Anforderungen sind unvollständig.
Beispiel: Wasserfallmodell als einfaches Phasenmodell
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Agile Software Entwicklung mit dem RUP Agile Softwareentwicklung Best Practice bei.
RUP-Elemente (Schlüsselkonzepte)
Das V - Modell - Überblick
Rational Unified Process (RUP) - Definitionen
Fehlerabdeckung/ Regressionstest1 Testen und Analysieren von Software Fehlerbehebung und Re-Engineering Fehlerabdeckung/ Regressionstest Vortragende:
Vortrag 11: Reengineering - Refactoring
1 Analyse von Software-statisch- Darmstadt,den Presentation: Sebastian Schikowski Steve Kenfack.
eXtreme Programming (XP)
Vorlesung 3: Verschiedenes Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Access 2000 Datenbanken.
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Workshop: Qualifizierung für Groupware 7. September 1999 Dortmund Herzlich willkommen zum.
Datenbankentwurfsprozess
Die Bank von morgen - eine neue Welt für IT und Kunden? 23. Oktober 2001.
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
Synergieeffekte durch softwaregestützte Prozessmodelle
Das Pflichtenheft Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth
Gliederung Einleitung eID-Infrastruktur und Komponenten
REQUIREMENTS ENGINEERING
Vorgehensmodell mit Scrum-Elementen
Definitionen der SWT (1)
Software-Technik „Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien, Methoden und Werkzeugen für die arbeitsteilige, ingenieurmäßige.
Wilhelm Klein, März 2010 Entwickeln mit Methode Projekt Manager Projektplanung Steuerung und Kontrolle Bereitstellung (Hardware und Software) Qualitätssicherung.
Wasserfallmodell und Einzelbegriffe
HFWI System Development Teil B Der Softwareentwicklungsprozess
Content Management System
Lehrplan Technik GOSt.
Software Engineering Grundlagen
Software Engineering Strukturierte Analyse
Requirements Engineering Universität zu Köln Medienkulturwissenschaften/Medieninformatik Kurzreferat in Planung von Softwareprojekten bei Herrn Christoph.
Kurze Rekapitulation aus der Einführungsvorlesung Stunde VII: Planen und Realisieren Manfred Thaller, Universität zu Köln Köln 20. Oktober 2011.
OOSE nach Jacobson Sebastian Pohl/ST7 Betreuer: Prof. Dr. Kahlbrandt.
Organisatorische Aspekte bei Software Produktlinien Benjamin Röhl
 Präsentation transkript:

eAQUA Workshop Einführung Software Engineering Gerhard Heyer Universität Leipzig heyer@informatik.uni-leipzig.de

Begriffsbestimmungen Software Computer programs, procedures, rules, and possibly associated documentation and data pertaining to the operation of a computer system (IEEE Standard Glossary of Software Engineering Terminology / ANSI 83 /). Menge von Programmen oder Daten zusammen mit begleitenden Dokumenten, die für ihre Anwendung notwendig oder hilfreich sind (Ein Begriffssystem für die Softwaretechnik / Hesse et al. 84/). Prof. Dr. G. Heyer

Begriffsbestimmungen Ein Produkt ist ein in sich abgeschlossenes, i. a. für einen Auftraggeber bestimmtes Ergebnis eines erfolgreich durchgeführten Projekts oder Herstellungsprozesses. Unter einen System wird eine Ausschnitt aus der realen oder gedanklichen Welt, bestehend aus Gegenständen (z. B. Menschen, Materialien, Maschinen oder anderen Produkten) und darauf vorhandenen Strukturen (z. B. deren Aufbau aus Teileinheiten oder Beziehungen untereinander) verstanden. (Hesse et al. 84). Ein Software-System ist dementsprechend ein System, dessen Systemkomponenten und Systemelemente aus Software bestehen. Prof. Dr. G. Heyer

Begriffsbestimmungen Anwendungssoftware (application software), auch Applikationssoftware genannt, ist Software, die Aufgaben des Anwenders mit Hilfe eines Computersystem löst. Anwendungssoftware setzt in der Regel auf der Systemsoftware der verwendeten Hardware auf bzw. benutzt sie zur Erfüllung der eigenen Aufgaben. Anwender werden alle Angehörigen einer Institution oder organisatorischen Einheit bezeichnet, die ein Computersystem zur Erfüllung ihrer fachlichen Aufgaben einsetzen. Sie benutzen die Ergebnisse der Anwendungssoftware oder liefern Daten, die die Anwendungssoftware benötigt. Prof. Dr. G. Heyer

Begriffsbestimmungen Benutzer sind nur diejenigen Personen, die ein Computersystem unmittelbar einsetzen und bedienen, oft auch Endbenutzer oder Endanwender genannt. Ein technisches System setzt sich aus dem Computersystem und sonstigen technischen Einrichtungen zusammen. Prof. Dr. G. Heyer

Rechnergestütztes Informationssystem / Anwendungssystem Organisatorisches System Technisches System DV-System SW Anwendungs-SW System-SW Benutzer Sonstige technische Einrichtungen Anwender Hardware Mitarbeiter Computersystem Systemkomponente bzw. Systemelement Prof. Dr. G. Heyer

System Aspekte von Software Daten ER (Entity Relationship) Funktionen Assoziations-Matrix Daten ER (Entity Relationship) DD (Data Dictionary) DFD (Datenfluß-Diagramm) Masken-Generator SA Funktionen Funktions- Baum DFD (Datenfluß-Diagramm) Benutzer Grafik-Editor Kontroll- Strukturen Regeln System OOA Dynamik Petri-Netz Zustandsautomat Kontroll-Strukturen Interaktions-Strukturen RT-Erweiterung von SA Prof. Dr. G. Heyer

Warum ist es schwierig gute Software zu entwickeln? Jede Produktentwicklung muss versuchen, folgende Anforderungen einzuhalten: a) Funktionstreue, d. h. die Übereinstimmung der definierten Produktanforderungen mit dem fertiggestellten Produkt. b) Qualitätstreue, d. h. die Übereinstimmung der definierten Qualitätsanforderungen mit dem fertiggestellten Produkt. c) Termintreue, d. h. die Einhaltung der im Entwicklungsplan festgelegten und dem Kunden bzw. dem Marketing zugesagten Fertigstellungstermine. d) Kostentreue, d. h. die Einhaltung des in der Wirtschaftlichkeits-Rechnung geplanten Personal- und Sachaufwandes für die Produkt-Erstellung und -Pflege. Prof. Dr. G. Heyer

Software Technik Software Engineering: The systematic approach to the development, operation, maintenance, and requirement of software (IEEE Standard Glossary of Software Engineering Terminology /ANSI 83/). Software-Engeneering: Das ist ingenieurmäßiges Entwerfen, Herstellen und Implementieren von Software sowie die ingenieurwissenschaftliche Disziplin, die sich mit Methoden und Verfahren zur Lösung der damit verbundenen Problemstellung befaßt. (Brockhaus-Enzyklopädie). Prof. Dr. G. Heyer

Die 7 häufigsten Fehler der SW Entwicklung Falsche oder fehlende Funktionalität Schlechte Bedienbarkeit Unübersichtliche Programmstruktur Unterschätzter Aufwand für Daten- und Systemintegration Ineffiziente oder inadäquate Algorithmen Ineffizientes Testen Unvollständige Programm- und Benutzerdokumentation Prof. Dr. G. Heyer

Voranalyse des Produkts Festlegen der Hauptanforderungen Festlegen der Hauptfunktionen Festlegen der Hauptdaten Festlegen der Hauptleistungen Festlegen der wichtigsten Aspekte der Benutzungsschnittstelle Festlegen der wichtigsten Qualitätsmerkmale Wichtig für eAQUA: AG Anforderungen! Prof. Dr. G. Heyer

Das klassische Entwicklungsmodell: Wasserfall FORDERUNGS- ANALYSE ARCHITEKTUR SYSTEM- SPEZIFIKATION WARTUNG / PFLEGE DETAILLIERTER ENTWURF QUELLTEXT SCHREIBEN UND FEHLER SUCHEN TESTEN DES MODULS DES SYSTEMS Entwurf: 40 % Implementierung: 20 % Testen und Dokumentation: 40 % Prof. Dr. G. Heyer

Voraussetzungen des Wasserfallmodells Klare Vorstellung des Produkts und seiner Nutzung Gemeinsames Verständnis der Anforderungen und Spezifikationen Gemeinsames Verständnis von Aufwand und Nutzen einzelner Software-Komponenten Muss in eAQUA erst noch erarbeitet werden! Die Erarbeitung eines gemeinsamen Verständnisses der Produkte sowie der Anforderungen und Spezifikationen ist ein iterativer Prozess und wesentlicher Bestandteil des Projekts. Daher abweichend vom Wasserfallmodell: Rapid Prototyping Prof. Dr. G. Heyer

Grundprinzipien der SW Entwicklung Hierarchisierung Zerlegung eines Problems in Teilprobleme, so daß eine Baumhierarchie entsteht. Modularisierung Entwicklung von Produkten oder Teil- Produkten, die nur über eine definierte Schnittstelle mit der Umwelt kommunizieren können und sonst kontextunabhängig sind. Strukturierung Entwurf von Programmen, so daß nur Sequenz, Auswahl und Wiederholung vorkommen. Prof. Dr. G. Heyer

Der Aufwand pro Phase verteilt sich folgendermaßen: Erfahrungssätze Der Aufwand pro Phase verteilt sich folgendermaßen: - Definitionsphase: 18% ± 10% - Entwurfsphase: 19% ± 10% - Implementierungsphase: 63% ± 10% davon Codierung 34% ± 10% Test 29% ± 10% Prof. Dr. G. Heyer

kürzeste Entwicklungnszeit Erfahrungssätze Entwicklungsaufwand t, Anzahl Mitarbeiter n Entwicklung ohne Kommunikation: t ~ 1/n Entwicklungsaufwand mit Kommunikationsaufwand k: T ~ 1/n + k[ (n * (n-1))/2 ] ~ 1/n + k (n2/2) Die optimale Anzahl von Mitarbeitern in einem SW-Projekt liegt bei ca. drei bis fünf Mitarbeiter pro Modul. Entwicklungnszeit kürzeste Entwicklungnszeit Anzahl Mitarbeiter Prof. Dr. G. Heyer

Die offene und ehrliche Kommunikation Erfahrungssätze Implementierung ohne hinreichende Spezifikation führt zu Misserfolg. Für die iterative Festlegung des Produkts muss genügend Zeit und Diskussion zur Verfügung stehen. Nachträgliche Änderungen sind teuer. Die Anzahl von Mitarbeitern in einem Teilprojekt zu erhöhen beschleunigt nur bedingt die Fertigstellung des Produkts. Die offene und ehrliche Kommunikation zwischen allen Projektbeteiligten ist entscheidend für den Erfolg des Produkts! Prof. Dr. G. Heyer