Kapitel 9: Software Engineering

Slides:



Advertisements
Ähnliche Präsentationen
1 Referenzmodelle für HISinOne Dr. Uwe Hübner, 02. Juli 2009.
Advertisements

Integrations- und Funktionstests im Rahmen des V-Modelles
Vorgehensmodell & Wasserfallmodell in der Programmierung
Phasen und ihre Workflows
Vorgehensmodell - Wasserfallmodell
Die Softwarelebenszyklen
Das „Vorgehensmodell“
V-Modell XT - Ein Überblick
IT-Projektmanagement
WS 04/05 wiss. Übung: Systemanalyse und Softwaredesign
Katharina Hojenski Projektgruppe „Verteilte Multimediasysteme“ SS03
Anwendungsfalldiagramm
Anwendungsfalldiagramm
Software-Lebenszyklus
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.
Schulung der Mitarbeiter
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Beispiel 2: Iterative-Inkrementelle Vorgehensmodelle Annahmen: Anforderungen sind unvollständig.
Prozessmodelle als Teil des Management-Prozesses
Beispiel: Wasserfallmodell als einfaches Phasenmodell
Rational Unified Process (RUP) - Definitionen
Software Risk Evaluation Method (SRE)
Referat: Projektmanagement
eXtreme Programming (XP)
Einführung von Groupware
Datenbankentwurfsprozess
Die Bank von morgen - eine neue Welt für IT und Kunden? 23. Oktober 2001.
UML Begleitdokumentation des Projekts
Vorgehensmodelle: Schwergewichtige Modelle
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.
12. Vorlesung: Aktivitätsdiagramme
Unified Modeling Language Repetition / Einführung zu UML
Die Planungsphase Durchführbarkeitsuntersuchung: fachlich, personell und wirtschaftlich Lastenheft (grobes Pflichtenheft) Glossar Projektkalkulation Projektplan.
Entwicklung der Programmiersprachen
UML WS 09/10: Datenbanken vs MarkUp Dozent: Prof. Dr. Manfred Thaller
IT-Projektmanagement SS 2013 Prof. Dr. Herrad Schmidt
Software-Technik „Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien, Methoden und Werkzeugen für die arbeitsteilige, ingenieurmäßige.
UML-Kurzüberblick Peter Brusten.
Wasserfallmodell und Einzelbegriffe
Paradigmenwechsel in der Unternehmensmodellierung Prof. Dr. Wolfgang Voigt Dipl.-Ing. Päd. Alexander Huwaldt UML Extrakt UML Seminar, Chemnitz
Projektmanagement Ziel und Umfang eines Softwareprojektes definieren
Rational Unified Process
Software Engineering Grundlagen
Testvorbereitungen, Unit Test
Unified Process Historisch-Kulturwissenschaftliche Informationsverarbeitung Übung: Planung von Softwareprojekten Dozent: Christoph Stollwerk WS 2014/2015.
´zielgerichtete Vorbereitung von in der Zukunft liegenden Aktivitäten iterativer Prozess von Projektanfang bis -ende muss ständig überprüft und angepasst.
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Entwurf Dr. Wolfgang Wörndl
© Till Hänisch, 2002 BA Heidenheim Methoden zur Aufwandsabschätzung Allgemein: –Reduktion der Komplexität –Vergleich mit Erfahrungswerten Probleme: –Erfassen.
Seminar Softwareproduktlinien Domänenspezifische Sprachen Sascha Draffehn von.
Willkommen zur Schulung
Project SachzielKostenzielTerminziel Gesetze Patentrechte Personelle BedingungenUmweltbestimmungen Nebenziele mit Konfliktpotential.
Einführung in AspectJ ● Inhalt: 1)Überblick 2)Elemente des crosscuttings in AspectJ 3)„Hello World“ in AspectJ 4)Wie Aspekte in Java verwoben werden 5)Join.
SE: Systementwurf, © Till Hänisch 2003 Systemarchitektur nach Sommerville, Software Engineering, Addison Wesley.
IM STRATEGISCHEN MANAGEMENT
Informationswirtschaft Wirtschaftsinformatik (Bachelor, 6. Semester)
Kapitel 5: Betriebliche Anwendungssysteme
Hochleistungsorganisation
Kontrollfragen zu Kapitel 12
Prozessmodell
Referat Projektmanagement - Stefan Kortmann
Kapitel 6: Datenbanksysteme
Ziel ist ein effizientes Ersatzteilmanagement Standard durch Einkauf und alle angeschlossenen Abteilungen Management und technischer Einkauf schaffen Standards.
Schätzmethoden: CoCoMo und FPA
CoCoMo&FPA Nils Reiners Matrknr
Devops David Jaroš
Die Wasserfallmethode Projektmanagement SS19 Friedemann Lieberenz 17
 Präsentation transkript:

Kapitel 9: Software Engineering Basiswissen Wirtschaftsinformatik 3. Auflage Peter Weber / Roland Gabriel / Thomas Lux Copyright 2018: Weber / Gabriel / Lux - Basiswissen Wirtschaftsinformatik

Inhalt 9.1 Gegenstand & Ziele 9.2 Gestaltungsprozess 9.3 Ziele bei der Softwareentwicklung 9.4 Programmiersprachen im Überblick 9.5 Objektorientierte Softwareentwicklung 9.6 Aufwandsschätzung 9.7 Projektmanagement 9.8 Beispiel zum CPM-Netzplan Copyright 2018: Weber / Gabriel / Lux - Basiswissen Wirtschaftsinformatik

9.1 Gegenstand & Ziele Gestaltung bzw. Erstellung eines Softwaresystems. Entwicklung bzw. Programmierung eines Softwaresystems mit der Hilfe von Programmiersprachen. Beschaffung eines Softwaresystems bzw. Produktes am Softwaremarkt und seine Anpassung bzw. Integration in eine Unternehmung. Copyright 2018: Weber / Gabriel / Lux - Basiswissen Wirtschaftsinformatik

9.2 Gestaltungsprozess 3 Phasen bei der Gestaltung von Software (Lebenszyklus) t₀ = Entstehung der Idee t₁ + t₂ = Planungsphase t₃ = nach einer Positiven Entscheidung der Planungsphase beginnt die Entwicklung t₄ = Abschluss der Entwicklungsphase t₅ = Software wird im Betrieb eingesetzt und muss gepflegt und gewartet werden Copyright 2018: Weber / Gabriel / Lux - Basiswissen Wirtschaftsinformatik

9.2 Gestaltungsprozess Software Engineering Copyright 2018: Weber / Gabriel / Lux - Basiswissen Wirtschaftsinformatik

9.2 Gestaltungsprozess Vorgehensmodelle Vorgehensmodelle sind Abstraktionen zur Vorgehensbeschreibung im Software Engineering. Beispiele sind das Spiralmodell, das Phasenmodell, Extreme Programming und Scrum. Spiralmodell Beschreibung der Rahmenbedingungen und Festlegung der Ziele. Evaluierung der Lösungsalternativen und Entwicklung von Strategien zur Minderung bzw. Vermeidung von Risiken. Das Zwischenprodukt wird umgesetzt und reflektiert. Planung der nächsten Iteration. Copyright 2018: Weber / Gabriel / Lux - Basiswissen Wirtschaftsinformatik

9.2 Gestaltungsprozess Exkurs: Lasten- und Pflichtenheft Aufgaben und Fragen: Was ist der Zweck eines Lastenhefts/eines Pflichtenhefts? Welche Bestandteile hat ein Lastenheft/Pflichtenheft? Was sind die Unterschiede zwischen Lastenheft und Pflichtenheft? Welche Vorteile bietet die Erstellung eines Lastenhefts/Pflichtenhefts? Copyright 2018: Weber / Gabriel / Lux - Basiswissen Wirtschaftsinformatik

9.2 Gestaltungsprozess Phasenmodell Phase 1: Detaillierte Planungen des Projektablaufs und Umfangs sowie eine Einschätzung des Nutzens und der Kosten der Software. Phase 2: Eine Anforderungsanalyse bei Neusystemen oder eine Schwachstellenanalyse bei bereits eingesetzten Systemen wird durchgeführt und ein Sollkonzept wird erstellt. Phase 3: Entwurf der späteren Systemarchitektur. Phase 4: Implementierung bzw. Programmierung. Phase 5: Übergabe und Freigabe des Softwaresystems und die Einführung im Einsatzbereich. Phase 6: Einsatzphase beginnt, wobei Fehler behoben werden und neue Anforderungen umgesetzt werden. Copyright 2018: Weber / Gabriel / Lux - Basiswissen Wirtschaftsinformatik

9.2 Gestaltungsprozess Phasenmodell [Balz08, S. 51 ff.] Copyright 2018: Weber / Gabriel / Lux - Basiswissen Wirtschaftsinformatik

9.2 Gestaltungsprozess Agile Vorgehensmodelle Flexiblerer Projektablauf als bei den klassischen Ansätzen. Beginnen frühzeitig mit der Umsetzung und Entwicklung von prototypischen Ergebnissen. Prototypische Ergebnisse werden durch regelmäßige Test reflektiert und weiterentwickelt. Beispiel: Extreme Programming Flexibler Projektablauf mit regelmäßigen Projektänderungen und einem iterativ ausgestaltetem Ansatz. Bekannte Merkmale sind die ständige Kommunikation und Einbindung des Kunden, einfache Funktionalität und vordergründige Teamarbeit Copyright 2018: Weber / Gabriel / Lux - Basiswissen Wirtschaftsinformatik

9.2 Gestaltungsprozess Scrum Framework [ScWe17] Copyright 2018: Weber / Gabriel / Lux - Basiswissen Wirtschaftsinformatik

9.2 Gestaltung Einflussfaktoren Die Auswahl des Vorgehensmodells und der endgültige Ablauf des Projektes hängt von verschiedenen Faktoren ab: Die Komplexität der Problemstellung Bestimmt durch den Umfang der gegebenen Daten, der vorhanden Struktur und des relevanten Umfangs. Der Wissens- und Erfahrungsstand Beteiligte Personen einschließlich IT-Spezialisten, Softwareentwickler, Planer, Manager und Endbenutzer. Informationstechniken Programmiersprachen, Entwicklungssoftware, Hardware- und Betriebssystemplattformen Strategische (IT-) Ziele Copyright 2018: Weber / Gabriel / Lux - Basiswissen Wirtschaftsinformatik

9.3 Ziele bei der Softwareentwicklung Wirtschaftlichkeit Das wichtigste Ziel bei der Softwareentwicklung aus Sicht des Managements. Der Ertrag soll gesteigert und die Kosten gesenkt werden. Performance Das Hauptziel der IT-Fachleute. Das System soll die fachlichen Anforderungen erfüllen und möglichst leistungsfähig sein (z.B. hinsichtlich der Verarbeitungsgeschwindigkeit und Robustheit). Arbeitsqualität Wichtig für die Endbenutzer des Systems. Vorteile der Software müssen für die Endbenutzer erkennbar und umsetzbar sein. Benutzerfreundlichkeit Der Ablauf der Software muss transparent und Datensicherheit und Datenschutz müssen gewährleistet sein. Copyright 2018: Weber / Gabriel / Lux - Basiswissen Wirtschaftsinformatik

9.4 Programmiersprachen Die Programmierung eines Programms erfolgt immer in einer Programmiersprache Programmiersprachen werden aufgrund ihrer historischen Entwicklung in Generationen eingeteilt: 1. Generation: Maschinensprachen 2. Generation: Assemblersprachen 3. Generation: Höherer Programmiersprachen 4. Generation: 4GL-Sprachen und alternative Programmiersprachen Copyright 2018: Weber / Gabriel / Lux - Basiswissen Wirtschaftsinformatik

9.4 Programmiersprachen 1. Generation / 2. Generation Maschinensprachen und Assemblersprachen sind maschinenorientierte Sprachen. Ein Prozessor kann nur Maschinensprache verarbeiten. Maschinensprachen Alle Befehle und Operatoren sind binär (in 0 oder 1) codiert. Müssen sich an der jeweiligen Architektur des Prozessors orientieren. Sind unübersichtlich und fehleranfällig. Assemblersprachen Ermöglichten die Formulierung der Anweisungen in mnemotechnischen Abkürzungen. Der Assembler übersetzt die Anweisungen in Maschinensprache. Müssen sich auch an die Architektur des Prozessors anpassen. Copyright 2018: Weber / Gabriel / Lux - Basiswissen Wirtschaftsinformatik

9.4 Programmiersprachen: Assembler- und Maschinensprache Copyright 2018: Weber / Gabriel / Lux - Basiswissen Wirtschaftsinformatik

9.4 Programmiersprachen Höhere Programmiersprachen Höhere Programmiersprachen sind maschinenunabhängige und problemorientierte Programmiersprachen, die abstrakte Anweisungen ausführen können. Die Übersetzung in eine Maschinensprache erfolgt durch einen Übersetzer wie z. B. einen Compiler. Copyright 2018: Weber / Gabriel / Lux - Basiswissen Wirtschaftsinformatik

9.4 Programmiersprachen 4GL-Sprachen Ermöglichen das Programmieren mit weniger Programmcode und Programmierkenntnisse Die Datenbanksprache SQL (Structured Query Language) ist ein bekanntes Beispiel SQL kann sehr viel Programmcode durch eine einzelne Anweisung ersetzen Beispiel: SELECT Befehl (siehe Kapitel „Datenbanksysteme“) Alternative Programmiersprachen Spezialisiert auf bestimmte Anwendungsbereiche wie Künstliche Intelligenz (KI-Sprachen), Visuelle Sprachen, usw. Copyright 2018: Weber / Gabriel / Lux - Basiswissen Wirtschaftsinformatik

9.4 Programmiersprachen Programmierumgebungen IDEs (Integrated Development Environments) Bieten vielfältige Funktionen an, die dem Programmierer die Verwendung komplexer Programmiersprachen erleichtert. Fokus liegt auf der Programmiertätigkeit. CASE-Tools Eine Sammlung von Werkzeugen, die den gesamten Software-Entwicklungsprozess unterstützt. z. B. Tools zur Modellierung von Prozessen als Teil der Ist-Analyse. CASE-Tools werden in der Objektorientierten Software-Entwicklung verwendet. Copyright 2018: Weber / Gabriel / Lux - Basiswissen Wirtschaftsinformatik

9.4 Programmiersprachen Eclipse als Beispiel eines IDEs Copyright 2018: Weber / Gabriel / Lux - Basiswissen Wirtschaftsinformatik

9.5 Objektorientierte Software-Entwicklung Basiert auf den Grundlagen der Objektorientierung Die Programmiersprachen werden stärker an menschliche Denkmuster angepasst, im Gegensatz zu den Programmiersprachen der 3. Generation. Das Objekt steht im Mittelpunkt der Objektorientierung und verfügt über Attribute, die den Zustand des Objektes beschreiben. Methoden ermöglichen es den Zustand des Objektes zu verändern oder Informationen zwischen dem Objekt und der Umwelt auszutauschen. Klassen definieren gleichartige Objekte zusammen und beschreiben die Attribute und Methoden des Objektes. Klassen werden in Klassendiagrammen dargestellt mit der UML (Unified Modeling Language) Notation. Copyright 2018: Weber / Gabriel / Lux - Basiswissen Wirtschaftsinformatik

9.5 Objektorientierte Software-Entwicklung Klassendiagramme Copyright 2018: Weber / Gabriel / Lux - Basiswissen Wirtschaftsinformatik

9.5 Objektorientierte Softwareentwicklung Phasen Objektorientierte Analyse (OOA) Planung des Projektes und Definition der Anforderungen. Objektorientiertes Design (OOD) Entwurf der Systemkomponenten. Objektorientierte Implementierung (OOI) Implementierung des Systems. Der Entwicklungsprozess wird durch verschiedene Modelle der UML unterstützt. Copyright 2018: Weber / Gabriel / Lux - Basiswissen Wirtschaftsinformatik

9.5 Objektorientierte Software-Entwicklung Struktur und Verhaltensdiagramme Strukturdiagramme stellen die statischen Aspekte des Systems dar Verhaltensdiagramme stellen die dynamischen Aspekte dar Copyright 2018: Weber / Gabriel / Lux - Basiswissen Wirtschaftsinformatik

9.6 Aufwandsschätzung Der Aufwand einer zu erbringenden Leistung wird meist in Geldeinheiten, Materialverbrauch oder Arbeitsstunden ausgedrückt. Bei einem IT-Entwicklungsprojekt wird der Aufwand in Mitarbeitermonaten gemessen, da die Ressource Mitarbeiter mit dem Kostenfaktor Zeit den meisten Aufwand darstellt. Aufwandsschätzungen versuchen den entstehenden Aufwand vorzeitig zu bewerten. Die Genauigkeit der Aufwandsschätzung wird durch Grundprobleme und Einflussfaktoren beeinträchtigt Copyright 2018: Weber / Gabriel / Lux - Basiswissen Wirtschaftsinformatik

9.6 Aufwandsschätzung Grundprobleme Schätzgenauigkeit: Aufwandsschätzung beruht auf unsicheren Daten Schätzobjekt Schätzgenauigkeit hängt von den Informationen über das zu schätzende Objekt ab Genaue Informationen sind kostenaufwendig Aufwandschätzung findet in der Planungsphase statt (i.d.R. wenig Informationen) Dokumentation: Zu geringe Dokumentation erschwert die Nutzung von Erfahrungen Altdaten Mangelnde Vergleichsdaten können zur Fehlkalkulation bei der Aufwandsschätzung führen Einstellungen der Projektbeteiligten Projektbeteiligten empfinden Aufwandsschätzungen oft als unwichtig Copyright 2018: Weber / Gabriel / Lux - Basiswissen Wirtschaftsinformatik

9.6 Aufwandsschätzung Einflussfaktoren Kosten Alle Faktoren, die die Entwicklung finanziell beeinflussen, z. B. Anzahl der Projektbeteiligten. Quantität Faktoren bezüglich Größe, Umfang und Komplexität des Projektes. Qualität Die Qualitätsmerkmale von Software. Zeit Die Projektdauer, die von der Mitarbeiter Anzahl abhängt. Copyright 2018: Weber / Gabriel / Lux - Basiswissen Wirtschaftsinformatik

9.6 Aufwandsschätzung Teufelsquadrat von Sneed Die vier Einflussfaktoren stehen in einer Wechselbeziehung zueinander und konkurrieren miteinander. Die Produktivität wird durch die Fläche des inneren Rechtecks dargestellt. Eine positive Veränderung einer der Einflussfaktoren würde sich negative auf einer der anderen Einflussfaktoren auswirken. Copyright 2018: Weber / Gabriel / Lux - Basiswissen Wirtschaftsinformatik

9.6 Aufwandsschätzung Methoden zur Aufwandsschätzung Analogiemethode Vergleiche mit ähnlichen Projekten, z.B hinsichtlich Anwendungsgebiet, Produktumfang und Programmiersprache. Relationsmethode Vergleiche mit den Werten vergangener Entwicklungen. Faktoren werden unterschiedlich gewichtet. Multiplikatormethode Softwaresystem wird in Teilprodukte und Kategorien untergegliedert. Aufwand der Teilprodukte werden aus alten Projekten abgeleitet und gewichtet. Copyright 2018: Weber / Gabriel / Lux - Basiswissen Wirtschaftsinformatik

9.6 Aufwandsschätzung Methoden zur Aufwandsschätzung Gewichtungsmethode Festgelegte Einflussfaktoren werden mit mathematischen Formeln bewertet. Prozentsatzmethode Aufgrund einer abgeschlossenen Phase des Software Engineering-Prozesses wird der Aufwand der weiteren Phasen geschätzt. Methode der parametrischen Gleichungen Ermittelt den Korrelationsfaktor zwischen den Einflussgrößen und dem Entwicklungsaufwand. Stellt eine Gleichung auf mit den Einflussgrößen, die die höchste Korrelation nachweisen. Copyright 2018: Weber / Gabriel / Lux - Basiswissen Wirtschaftsinformatik

9.6 Aufwandsschätzung Verfahren zur Aufwandsschätzung COCOMO-Verfahren Mithilfe der Regressionsanalyse wird eine funktionale Relation zwischen der Systemgröße in LOC (Lines of Code) und dem Aufwand der Erstellung hergeleitet. Zielkonflikt zwischen dem Zeitpunkt der Schätzung (möglichst früh) und der Genauigkeit der Ergebnisse. Function-Point-Verfahren Annahme: Der Aufwand für die Erstellung von Software hängt maßgeblich vom Umfang und dem Schwierigkeitsgrad der Produktumsetzung ab. Aufwand wird hier also nicht aus der Systemgröße abgeleitet, sondern aus den Produktanforderungen, welche aus der Funktionalität des Systems aus Anwendersicht ermittelt werden. Copyright 2018: Weber / Gabriel / Lux - Basiswissen Wirtschaftsinformatik

9.6 Aufwandsschätzung Function Point-Verfahren Copyright 2018: Weber / Gabriel / Lux - Basiswissen Wirtschaftsinformatik

9.7 Projektmanagement Projekt Eine einmalige, spezielle Aufgabe, die nicht Routine bzw. Standardarbeit einer Unternehmung darstellt. Hohe Komplexität und klares Ziel. Zeitlich durch Starttermin und Projektendtermin begrenzt. Festgelegtes Projektbudget und Überwachung durch Projekt-Controlling. Durchgeführt von einem Projektteam mit einer geeigneten Projektorganisation und einem Projektleiter. Copyright 2018: Weber / Gabriel / Lux - Basiswissen Wirtschaftsinformatik

9.7 Projektmanagement Netzplantechnik Critical Path Method (CPM) Eine Methode, die die Aktivitäten eines Projektes und ihre logischen Abhängigkeiten in einem Strukturplan grafische darstellt. Kann mithilfe der Zeiten der einzelnen Aktivitäten den Pfad mit der höchsten Zeitdauer (der kritische Pfad) bestimmen. Copyright 2018: Weber / Gabriel / Lux - Basiswissen Wirtschaftsinformatik

9.8 Beispiel zum CPM-Netzplan Planungsschritt 1: Strukturplan Aktivitätentabelle CPM-Netzplan Copyright 2018: Weber / Gabriel / Lux - Basiswissen Wirtschaftsinformatik

9.8 Beispiel zum CPM-Netzplan Planungsschritt 2: Zeitplanung CPM-Netzplan (früheste Zeiten) CPM-Netzplan (späteste Zeiten) Copyright 2018: Weber / Gabriel / Lux - Basiswissen Wirtschaftsinformatik