Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Institut für Informatik eAQUA Workshop Einführung Software Engineering Gerhard Heyer Universität Leipzig

Ähnliche Präsentationen


Präsentation zum Thema: "Institut für Informatik eAQUA Workshop Einführung Software Engineering Gerhard Heyer Universität Leipzig"—  Präsentation transkript:

1 Institut für Informatik eAQUA Workshop Einführung Software Engineering Gerhard Heyer Universität Leipzig

2 Einführung Software Engineering 2 Prof. Dr. G. Heyer 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/).

3 Einführung Software Engineering 3 Prof. Dr. G. Heyer 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. Begriffsbestimmungen

4 Einführung Software Engineering 4 Prof. Dr. G. Heyer 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. Begriffsbestimmungen

5 Einführung Software Engineering 5 Prof. Dr. G. Heyer 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. Begriffsbestimmungen

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

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

8 Einführung Software Engineering 8 Prof. Dr. G. Heyer 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. Warum ist es schwierig gute Software zu entwickeln?

9 Einführung Software Engineering 9 Prof. Dr. G. Heyer 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). Software Technik

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

11 Einführung Software Engineering 11 Prof. Dr. G. Heyer 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! Voranalyse des Produkts

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

13 Einführung Software Engineering 13 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

14 Einführung Software Engineering 14 Prof. Dr. G. Heyer HierarchisierungZerlegung eines Problems in Teilprobleme, so daß eine Baumhierarchie entsteht. ModularisierungEntwicklung von Produkten oder Teil- Produkten, die nur über eine definierte Schnittstelle mit der Umwelt kommunizieren können und sonst kontextunabhängig sind. StrukturierungEntwurf von Programmen, so daß nur Sequenz, Auswahl und Wiederholung vorkommen. Grundprinzipien der SW Entwicklung

15 Einführung Software Engineering 15 Prof. Dr. G. Heyer Der Aufwand pro Phase verteilt sich folgendermaßen: - Definitionsphase:18% ± 10% - Entwurfsphase:19% ± 10% - Implementierungsphase:63% ± 10% davonCodierung34% ± 10% Test29% ± 10% Erfahrungssätze

16 Einführung Software Engineering 16 Prof. Dr. G. Heyer 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 (n 2 /2) Die optimale Anzahl von Mitarbeitern in einem SW-Projekt liegt bei ca. drei bis fünf Mitarbeiter pro Modul. Erfahrungssätze Entwicklungnszeit Anzahl Mitarbeiter kürzeste Entwicklungnszeit

17 Einführung Software Engineering 17 Prof. Dr. G. Heyer 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!


Herunterladen ppt "Institut für Informatik eAQUA Workshop Einführung Software Engineering Gerhard Heyer Universität Leipzig"

Ähnliche Präsentationen


Google-Anzeigen