Upload
sovann
View
34
Download
5
Embed Size (px)
DESCRIPTION
Entwicklung von A nwendungssystemen. G rundlagen der Wirtschafts- informatik. Marc Schwärzli SS 2011. Anwendungen. zB Integration von Arbeitsabläufen Schaffung organisatorischer Flexibilität Unabhängigkeit von Standorten oder Herstellern Schnelle Nutzung neuer Technologien - PowerPoint PPT Presentation
Citation preview
Grundlagen der
Wirtschafts-informatik
Entwicklung von Anwendungssystemen
Marc Schwärzli SS 2011
2
• zB Integration von Arbeitsabläufen• Schaffung organisatorischer Flexibilität• Unabhängigkeit von Standorten oder Herstellern• Schnelle Nutzung neuer Technologien• Sicherung von Kooperationsmöglichkeiten• Investitionsschutz neuer und alter Anwendungen• Skalierbarkeit• Vermeidung von Komplexität• Wirtschaftlichkeit.
◦Anwendungen
Eine Anwendung dient zur Lösung vorgegebener Anwendungsprobleme , die nach Modellierung durch Softwareprodukte realisiert wird.
3
• Anwendungen sollten vom Nutzer an jedem Ort, zu jedem beliebigen Zeitpunkt, in der gewünschten Form abgerufen werden können.
• Anwendungen werden häufig in offene betriebliche Informationssysteme eingebettet:– Portierbarkeit (Übertragbarkeit über Systemgrenzen)– Interoperabilität (Zusammenarbeit mit anderen
Anwendungen)– Einheitliche Benutzeroberfläche.
◦Anwendungen
4
• Individualsoftware:– Begrenzt Einsetzbar– Auf ein Unternehmen speziell zugeschnitten– Oder aus strategischen Überlegungen für ein Unternehmen
bestimmt• Standardsoftware:
– Werden Änderungen nicht mehr von allen Nutzern verwendet, spricht man bereits von Individualsoftware.
– Durch Parameter wird Software an spezielle Belange des Nutzer abgepasst. (Parametrisierung ohne Änderung des Programmcodes)
– Customizing ist die Anpassung an Kundenwünsche
◦Standard- und Individualsoftware
5
• Auch Make-or-Buy Entscheidung• Je nach Anforderung wird eine
Standardanwendung gesucht. Die Anpassungsfähigkeit an die Gegebenheiten sollte berücksichtigt werden.
• Findet sich keine Standardanwendung, kann eine individuelle Lösung gefunden werden, die sich auf wenige Anwendungsfälle beschränkt.
◦Standard- oder Individualsoftware?
6
pro Standardsoftware contra Standardsoftware
Günstige Kosten Anpassungsprobleme
Schnelle Einführung Verringerte Individualität
Erweiterungen am Markt erhältlich Übernahme unnützer Funktionen
Verringertes Einführungsrisiko Herstellerunabhängigkeit
Vorhandene Referenzen Verlust von eigenem Know-how
Vermindertes Entscheidungsrisiko Mangelnde Transparenz
Übernahme eines Organisationskonzeptes Geringerer Einfluss auf das Produkt
Anlehnung an Standards Übernahme fremder Organisationslösungen
Hoher Reifegrad Kaum eigene Optimierungsmöglichkeiten
Gesicherte Qualität Abhängigkeit von externen Dienstleistern
Standard- versus Individualsoftware
7
Beurteilungskriterien für Standardanwendungen• Kommt keine Neu- oder Anpassungsentwicklung in Frage muss die
Anwendung nach bestimmten Kriterien ausgewählt werden.
allgemein anwendungs-bezogen
hersteller-spezifisch
informations-technisch
Vertragswesen Funktionalität Referenzen Entwicklungs-umgebung
Wartung & Service
Leistungsfähigkeit Mitarbeiter-anzahl
Datenhaltung & Grafik
Installations-unterstützung
Eingabe & Ausgabe
Örtliche Nähe Modukarität & Offenheit
Datenschutz Benutzer-freundlichkeit
Branchenimage Portierbarkeit
Datensicherheit Dokumentation Evaluierung Architektur & Struktur
8
Allgemeine Eigenschaften
Aufbau von Informationssystemen
Betrieb von IS Nutzung von Informations-systemen
Organisator-isches Konzept
Prozess der System-entwicklung
Wirtschaftlich-keit
Funktion-alität
Effizienz Benutzer-freundlichkeit
Abgegrenzt-heit
Mehrfachverwendung
Produktivität Problem-adäquatheit
Änderungs-fähigkeit
Robust-heit
Schnitt-stellen-definition
Standards, Normen
Fehlerfreiheit Modularität Erweiterbarkeit
Selbst-erklärung
Eingebundenheit
Werkzeug-nutzung
Zuverlässigkeit Hierarch-isierung
Wartungs-freundlichkeit
Flexibilität Integration Projekt-management
Problem-adäquatheit
Transparenz Verwaltungsaufwand
Nutzerunter-stützung
Durch-dringung
Dokument-ation
Anforderungen an SoftwaresystemeSchwarze 1995
9
• Weitere Aspekte sind:– Parametrierbarkeit, Datenintegration– Mandantenfähigkeit, Mehrsprachigkeit,
Autorisierung– Backup, Recovery, Import- und Exportfunktion– Client-Server-Architektur, Programmumgebung,
Schulungsofferten, Weiterentwicklung, Zertifikate…
Beurteilungskriterien für Standardanwendungen
Nach der Überprüfung des eigenen Bedarfs und des Marktangebotes ist die Make-or-Buy-Entscheidung unter Umständen neu zu treffen.
10
• Individual- oder Standardanwendungsentwicklung• Neu-, Anpassungs- oder Weiterentwicklung
– Neuentwicklung: zumindest wesentliche Teile werden neu entwickelt.
– Anpassung: Eigene Lösungen aufbauend auf Standardanwendungen oder Modernisierung.
– Als Weiterentwicklung werden kleinere Korrekturen bezeichnet.
Entwicklung und Architektur von Anwendungen
Ein großer Teil der Softwarelösungen kommt erst nach erheblichen Änderungen zum Einsatz. Daher wurde „learning by doing“ durch eine wirtschaftliche Systemplanung ersetzt.
11
• Als Software-Engineering bezeichnet man die systematische und fundierte Anwendung von Methoden, Verfahren, Standards und Werkzeugen zur Planung, Entwicklung, Realisierung und Wartung der Anwendungen.
• Systematische Vorgehensweise:– Zeitliche und inhaltliche Strukturierung – Aufbau von Subsystemen und
Regelkreisen.– Beachtung der Ziele.– Sequentielles Vorgehen nach Plan.– Einbau von Regelkreisen zur Selbstorganisation und Qualitätssicherung.– Interdisziplinäre Teamarbeit mit Projektorganisation.– Anwendung geeigneter Techniken, Methoden und Werkzeuge im
Entwicklungs- und Anwendungsprozess.
Software-Engineering
12
• Präsentationsebene– Darstellung der Benutzeroberfläche auf verschiedenen Ausgabegeräten
• Dialogebene– geräteunabhängige Steuerung und Koordination der
Benutzeroberfläche und des Benutzerdialogs.• Anwendungsebene
– Steuerung- und Verwaltung• Daten- und Dienstebene
– Erledigung der Anforderungen und Aufträge• Datenzugriffsebene
– Zugriff auf die anwendungsunabhängigen Datenbanksysteme
Schichtenmodell als Architekturkonzept für Anwendungen
13
• Funktionssicht • Datensicht• Organisationssicht• Prozesssicht• Ressourcensicht (bestehende Systemplattform)• Produktsicht (materielles oder immaterielles Produkt)
Sichten des ARIS-Konzeptes
Anwendungen werden von der Funktionsschicht geprägt. Man unterscheidet nach Verwendungszweck: branchenneutrale bzw spezifische Administrations- und Dispositionssysteme, Führungs- und Querschnittssysteme.
14
Anwendungsarchitektur
Anwendungs-architektur wird
vomGesamtmodell desInformations- und Kommunikations-systems über die Architektur des Anwendungs-systems bis hin zurBetrieblichenAusprägungentwickelt.
15
• Zählen Sie drei wichtige Eigenschaften von Anwendungen auf?
• Nennen Sie Vor- und Nachteile von Standardsoftware?• Was ist mit „Customizing“ in Bezug auf
Standardsoftware gemeint?• Eine besondere Form der Standardsoftware ist die
Public Domain Software. Was versteht man darunter?• Nennen Sie die 5 Ebenen des allgemein gültigen
Architekturmodells?
◦Übungsfragen
16
• Portierbarkeit, Interoperabilität, einheitliche Benutzeroberfläche. • Vorteile: Gesicherte Qualität, hoher Reifegrad, Übernahme eines
Organisationskonzeptes, vermindertes Entscheidungsrisiko, günstig, schnelle Einführung, Erweiterungen am Markt erhältlich.
• Nachteile: Abhängigkeit vom Hersteller, Anpassungsprobleme, Übernahme unnützer Funktionen, Abhängigkeit von externen Dienstleistern, Verlust von eigenem Know-how, mangelnde Transparenz.
• Customizing: Anpassung von Standardsoftware an Kundenwünsche.• Public Domain Software: Software, die der Allgemeinheit zur Verfügung
stehet. Der Anbieter übernimmt keine Pflichten, die sich aus der Anwendung der Software ergeben.
• Präsentationsebene, Dialogebene, Anwendungsebene, Daten- und Dienstebene, Datenzugriffsebene.
Lösung
17
• Nach welchen Kriterien kann Standardsoftware beurteilt werden? Welche herstellerbezogene und welche anwendungsbezogene Kriterien können Sie nennen?
◦Übungsfragen II
18
• Herstellerbezogene Kriterien: Referenzen, Mitarbeiteranzahl, örtliche Nähe, Branchenimage, Evaluierung.
• Anwendungsbezogene Kriterien: Funktionalität, Leistungsfähigkeit, Ein- und Ausgabe, Benutzerfreundlichkeit, Dokumentation.
Lösung II
19
• Wie wird ein Projekt im Rahmen einer Anwendungsentwicklung gemanagt, ohne die Informatikverantwortlichen vom fachspezifischen Teil zu entlasten.
Projektmanagement der Anwendungsentwicklung
Charakteristika eines Projekts
Zeitlich begrenzt Mehrere beteiligte Personen
Zielgerichtet Leitung, Führung und Kontrolle
Zu planende Aktivitäten Einmaligkeit, umweltbezogen
Messbarer Erfolg Strukturiertheit
20
• Projekte in der Anwendungsentwicklung sind durch besondere Eigenschaften gekennzeichnet:– Erheblicher Ressourcenverbrauch, meist durch
Fachpersonal– Zeitraum von der Initialisierung bis zur
Inbetriebnahme über Monate und Jahre– Hohes Fehlerrisiko bei isolierter Behandlung anstelle
eines intergralen Ansatzes– Hohes Ergebnisrisiko bezüglich der Projektziele– Unsicherheit bezüglich geplanter Termine und Kosten
Projekte in der Anwendungsentwicklung
21
• Ableitung der Projektziele aus den Unternehmenszielen.• Bestimmung der Projektleitung und der Projektorganisation.• Formulierung des Projektauftrages und der Detailziele.• Definition der Projektphasesn und des Ressourcenverbrauches.• Festlegen der Projektprioritäten.
Projektvorbereitung
• Projektorganisationsformen:
• Organisation durch Stabsstellen• Aufstellen einer „Task Force“ bzw eines Teams• Matrix-Projektorganisation
22
• Fachkenntnisse– Informatikkenntnisse, Kenntnisse der Projektfachbereiche,
kaufmännische- und juristische Kenntnisse.• Sozialkompetenz
– Einfühlungsvermögen, Motivationsfähigkeit, Verhandlungsgeschick, Überzeugungskraft, Urteilsvermögen, Konfliktbewältigung, Kritikfähigkeit, Informations- und Koordinierungsgeschick, Frustrationstoleranz.
• Konzeptionelle und organisatorische Fähigkeiten– Analytisches- und systematische Denkweise, Organisations- und
Improvisationsgeschick, Delegation von Aufgaben und Verantwortungsbereichen.
Anforderungen an die Projektleitung
Humanressourcen gelten in der Anwendungsentwicklung als der Schlüssel zum Erfolg.
23
• Die Projektplanung verläuft vom Groben zum Feinen und sollte folgende Resultate aufweisen:– Ein Gesamtplan mit untersetzten Arbeitspaketen– Ein Personalplan für Qualifizierung, Zeiträume und
Aufgabenverteilung.– Eine Wirtschaftlichkeitsprognose– Plan für die Ressourcenbereitstellung – Räume,
Betriebsmittel, Hilfsmittel.
Projektplanung
24
• Einhaltung der Terminplanung, Erfassung des Arbeitsfortschrittes.
• Laufender Vergleich der realen Aufwände mit den geplanten aufwänden.
• Zweckmäßigkeit der Aufgabenabgrenzung und der festgelegten Prioritäten.
• Zweckmäßigkeit der geplanten organisatorischen Maßnahmen und der eingesetzten Mittel.
Elemente der Projektkontrolle
25
• Formulierung klarer Zielsetzungen• Festlegung einer Projektorganisation• Einbindung späterer Nutzer bereits in der frühen Phase.• Bereitstellung qualifizierten Personals sowie
Finanzmittel und Ressourcen. • Transparenz für alle Beteiligte.• Frühe Personalschulung.• Nachvollziehbarkeit• Gesamtkonzept mit klaren Zuordnungen von Terminen,
Verantwortlichkeiten und Prioritäten je einzelner Phase.
Erfolgsfaktoren für Projekte in der Anwendungsentwicklung
26
• Nennen Sie drei wichtige Merkmale eines Projektes?
• Was sind die besonderen Kennzeichen von Projekten?
• Was ist das Ergebnis der Projektplanung durch die Projektgruppe?
• Was sind die Erfolgsfaktoren für Projekte der Anwendungsentwicklung?
Übungsaufgaben
27
• Merkmale: Zeitlich begrenzt, zielgerichtet, zu planende Aktivitäten, messbarer Erfolg, mehrere beteiligte Personen, Leitung-Führung-Kontrolle, gewisse Einmaligkeit, abgestimmt auf Umfeld, Gliederung und Strukturierung.
• Kennzeichen: erheblicher Ressourcenverbrauch vor allem an Fachpersonal, Initialisierung bis Inbetriebnahme kann über Monate und Jahre erstrecken, hohes Fehlerrisiko bei isolierter statt integraler Betrachtung, hohes Ergebnisrisiko in Bezug auf das Projektziel, Unsicherheiten bezüglich Termine und Kosten.
• terminisierter Gesamtplan mit einzelnen Arbeitspaketen, ein Personalplan hinsichtlich der Zeiträume, der Qualifizierung und Aufgabenverteilung.
• Eine Wirtschaftlichkeitsprognose bezüglich Finanzierung und Kosten.• Ressourcenbereitstellungsplan für Räume, Betriebs- und Hilfsmittel.• Erfolgsfaktoren: Formulierung klarer Zielsetzungen, Festlegung einer
Projektorganisation, Einbindung späterer Nutzer bereits in der frühen Phase, Bereitstellung qualifizierten Personals sowie Finanzmittel und Ressourcen, Transparenz für alle Beteiligte, Frühe Personalschulung, Nachvollziehbarkeit, Gesamtkonzept mit klaren Zuordnungen von Terminen, Verantwortlichkeiten und Prioritäten je einzelner Phase.
Auflösung
28
• Vorgehensmodelle auch Prozessmodelle genannt beschreiben wie an eine Projektabwicklung von der Idee über die Einführung bis zur Wartung heranzugehen ist.
• In einem Vorgehensmodell werden Aktivitäten von Personen ausgeführt, die als Ergebnis ein Artefakt hervorbringen, welches einer Qualitätsprüfung zu unterziehen ist.
• Die vorher definierte Menge an Artefakten ergibt das Softwareprodukt.
Vorgehensmodelle
Vorgehen bei der Anwendungsentwicklung
• Vorgehensmodelle beruhen auf Phasen.
Verworn, Herstatt: (2007), S. 9
Phasen
Eine Phase ist eine zeitlich begrenzte Untermenge eines Projektablaufs, der Arbeitsaufgaben zugeordnet sind.
EntwicklungKonzeption,Produktplanung
Ideengenerierung und Bewertung
Test,Prototyp Produktion
Frühe Phasen
- Marktanalysen- Produktkonzept- Produktplanung- Produktspezifikation- Produktarchitektur
- Entwicklung- Design Reviews- Industrial Design- InterdisziplinäreProjektteams
- Ideengenerierung- Ideenbewertung
- Prototypenbau- Markttest- endgültiges Design- VorbereitungSerienfertigung
- Produktion- Markteinführung- Marktdurchdringung- Produktpflege
Beispiel:
• Für Neu- Anpassungs- und Weiterentwicklung.
Allgemeine Phaseneinteilung
Allgemein gilt: Kompromiss aus Standardisierung und Freiheitsgraden- - Nur soviele Phasen, Aktivitäten und Rollen wie nötig- - Beim Aufbau der Artefakte auf Standardisierung achten- - Optimale Werkzeugunterstützung- - Artefakte einer Qualitätssicherung unterziehen
• Entwicklungs- Nutzung- und Verwertungsphase werden in der Anwendungsentwicklung als Software-Lebenszyklus bezeichnet.
• Das Phasenmodell ist in den Software-Lebenszyklus eingebettet.
• Es wird in einem Zyklus mehrfach durchlaufen, Bei Entwicklung, Weiterentwicklung, Reengineering vollständig, bei Wartung und Anpassung nur teilweise.
Das Lebenszyklusmodell
• Wirtschaftlichkeit eins Standardproduktes:
• Methoden zur Abschätzung der Personalkosten:– Analogiemethode– Relationsmethode– Multiplikatormethode– Prozentsatzmethode– Methode der parametrischen Gleichung– Gewichtungsmethode
Aufwandschätzung bei Softwareprojekten
itragDeckungsbeDBgskostenEntwicklun einmalige-eAbsatzmeng geschätzte*DBGewinn
Kosten variablePreis)(
erangestrebtDB
• Analogiemethode:– Vergleich mit bereits abgeschlossenen Projekten. ZB gleiches
Anwendungsgebiet, ähnlicher Komplexitätsgrad.• Relationsmethode:
– Wie Analogiemethode, nur anhand von Faktorlisten (Art der Programmiersprache, Erfahrung der Programmierer, Art der Datenorganisation)
• Multiplikatormethode:– Aufwand pro Einheit, zerkleinern in Teilprodukte bis ein
feststehender Aufwand zugeordnet werden kann.
Abschätzung der Personalkosten
• Prozentsatzmethode:– Verhältnis Gesamtaufwand zu den einzelnen Phasen. ZB nach erster
Phase wird der Aufwand für die restlichen Phasen abgeschätzt.• Methode der parametrischen Gleichung:
– Entscheidend sind die Faktoren mit dem höchsten wertmäßigen Einfluss auf den Gesamtaufwand.
• Gewichtungsmethode:– Gesamtaufwand ergibt sich aus wertmäßig festgelegten Faktoren.
Subjektive Faktoren (Qualität des Personals) und objektive Faktoren (Programmiersprache) werden Werte zugeordnet aus denen sich der mathematische Gesamtaufwand errechnet.
Abschätzung der Personalkosten.
• Aufwandsermittlung mittels Gewichtung.• Besonders bei großen und mittleren Projekten.
– Produktanforderung wird einer Kategorie zugeordnet.• Eingabedaten, Abfragen, Ausgaben, Datenbestände, Referenzdaten.
– Klasseneinteilung in einfach, mittel, Komplex und die Vergabe von Function-Points nach Gewichtung. Man weiß wie viele Anforderungen in einer Kategorie sind und welche Klassen vertreten sind.
– Nach einem bestimmten Berechnungsschema ergeben sich Gesamtpunkte, die einem Aufwand in Mitarbeitermonaten, ablesbar in einer Tabelle, entsprechen.
• Vor- und Nachteile:– Eine größere Zahl an Projekten im gleichen Gebiet muss bereits durchgeführt worden
sein. – Es wird nur der Gesamtaufwand geschätzt, kein Teilaufwand.– Qualitätsanforderungen werden nicht berücksichtigt.– Methode neigt dazu zu geringe Aufwendungen auszugeben.
Function-Point-Methode
36
• Aufgrund der Inflexibilität der Anwendungsentwicklung entstanden modifizierte Methoden zur Anwendungsentwicklung.– Bessere Beherrschung des Entwicklungsprozesses– Einsatz moderner Methoden der
Informationsverarbeitung und angrenzender Disziplinen (Systemtheorie, Werkzeugentwicklung)
Prozessmodelle in der Praxis
Spezielle Methoden der Anwendungsentwicklung
37
• Rückkopplungsschleifen ermöglichen Überarbeitung auf einzelne Stufen zu begrenzen– Jede Aktivität muss in der Reihenfolge und in der
Breite durchgeführt werden.– Am Ende jeder Aktivität wird ein Dokument erstellt.– Top-down-Vorgehensweise, eine Aktivität muss
abgeschlossen sein bevor die nächste beginnt.– Einbindung künftiger Nutzer ist nur in der
Definitionsphase vorgesehen.
Das Wasserfallmodell
38
Das Wasserfallmodell
39
• Das V-Modell– Um die Aspekte der Qualitätssicherung erweitertes Wasserfallmodell– Aktivitäten und Produkte im Entwicklungsprozess werden festgelegt.
(Produkt ist der Bearbeitungsgegenstand einer Aktivität)• Das Lebenszyklusmodell
– Wird allerdings in engem Zusammenhang mit dem Phasenmodell gesehen.
• Prototyping• Evolutionäres Modell• Objektorientierung• Spiralmodell• Case-Tools
Weitere Alternativen zum Phasenmodell
• Voraussetzungen fürs Prototyping:– Zugang zu einem entsprechenden Computersystem– Entsprechende Entwicklungswerkzeuge– Eine Datenbasis zum Testen
Das Prototyping
Prototyping stellt ein verkürztes Verfahren dar mit dem Ziel den Nutzer früher in die Entwicklung einzubeziehen. An Hand des Prototypen legen Entwickler und Nutzer gemeinsam weitere Entwicklungsaufgaben fest. Dadurch soll mehr Transparenz in den Entwicklungsprozess gebracht werden.
iphone-Prototyp, apfelnews
• Vernachlässigt werden Effizienz, Sicherheit, Zuverlässigkeit und ausgefeilte Ergonomie.
• Nicht realisierte Funktionen werden durch Menüverweise angedeutet.
• Nutzer können schon während der Entwicklung des Prototypen eingebunden werden.
Das Prototyping
Urheber: Thomas doerfer
• Demonstrationsprototyp– Zur Entscheidungsvorbereitung und Projektorganisation
• Entwurfsprototyp– Teilweise realisiert sowohl in der Breite (Benutzeroberfläche) als
auch in der Tiefe (Funktionen)• Labormuster
– Realisierte Auszüge (Subsysteme) als Experimentalsysteme und für Machbarkeitsstudien
• Pilotsysteme– Ausgereifter Prototyp mit Nutzungsmöglichkeiten, der nach einer
Nutzungsperiode weiter ausgebaut werden kann.
Arten von Prototypen
• Rapid Prototyping– Ein Prototyp wird rasch als Vorlagemuster entwickelt,
jedoch nach der Bestätigung des Nutzers nicht mehr weiterentwickelt. Der Prototyp dient für die folgende Neuentwicklung nur mehr als Vorlage.
• Evolutionäres Prototyping– Der Prototyp wird beginnend mit der
Benutzeroberfläche schrittweise entwickelt, indem immer wieder auf bestehendem aufgebaut wird.
Arten des Prototyping
• Beim Wasserfall- und V-Modell wird unterstellt, dass alle Anforderungen des Auftraggebers zu Beginn herausgefunden werden können.
• Bei langer Entwicklungszeit können sich Anforderungen jedoch ändern, auch können Wünsche erst nach vollständiger Inbetriebnahme entstehen was zu weiteren Entwicklungszeit und –kosten führt.
• Diese Voraussetzungen haben zur evolutionären Software-Entwicklung geführt.
Das evolutionäre Modell als Alternative zum Phasenmodell
• Kennzeichen der Methode:– Stufenweise Entwicklung aufgrund von Erfahrungen des Auftraggebers.– Es entstehen Teilprodukte, die unabhängig voneinander lauffähig sind.– Pflegeaktivitäten führen zu einer neuen Programmversion.
• Nachteile:– Entstehen wenn in der Nullversion Kernanforderungen übersehen worden sind.– System kann zu unflexibel für neue Evolutionsstufe sein.
• Inkrementelles Modell als Ergänzung:– Teilprodukte werden erst eingefügt, nachdem die Anforderungen möglichst umfassend und
vollständig erfasst wurden. Dadurch soll die Nullversion möglichst alle Anforderungen enthalten.
Das evolutionäre Modell
• Aufgrund von Kernanforderungen wird eine Nullversion erstellt
• Auftraggeber testet Nullversion und gibt zusätzliche Anforderungen für eine neue Version weiter.
Objekt- und Komponentenorientierung
• Relevante Objekte stehen satt der Funktionen (Tätigkeiten) im Vordergrund.
• Erst nachdem Objekte erkannt und miteinander in Beziehung gebracht wurden, werden Funktionen zur Veränderung der Objekte miteinbezogen.
• Vorteil ist die leichtere Erkennbarkeit und die längere Lebensdauer von Objekten.
• Objektorientierung geht einher mit einer Modularisierung und führt zu einer komponentenbasierten Softwareentwicklung.
• Damit Softwaresysteme erweiterbar und flexibel bleiben, werden sie aus Komponenten zusammengesetzt.
Das Spiralmodell
• Schritt 1:– Identifikation der Ziele des Teilproduktes (Funktionalität, Modularität)– Prüfung alternativer Möglichkeiten, um das Teilprojekt zu realisieren– Auswirkungen der Alternativen hinsichtlich Zeit, Kosten, Schnittstellen
• 2. Schritt– Evaluierung aller Alternativen unter Berücksichtigung der Ziele und Auswirkungen– Verfolgung der kosteneffektivsten Strategie
• 3. Schritt– Festlegung des Prozessmodells (Wasserfall, Prototyping), für die Softwareentwicklung in Abhängigkeit
von Restrisiken.Eventuelle Kombination von Prozessmodellen zur weiteren Risikominimiereung.• 4. Schritt
– Planung des nächsten Zyklus (nächstes Teilprodukt): notwendige Ressourcen, Einteilung in unabhängig voneinander entwickelbare Komponenten.
– Erneutes durchlaufen der Schritte 1 bis 3 sowie Übereinkunft über den nächsten Zyklus.
Im Spiralmodell wird das Produkt in Teilprodukte zerlegt. Jedes Teilprodukt durchläuft 4 zyklische Schritte.
Nachteile:Hoher Managementaufwand,daher ungeeignet für kleinere und mittlere Projekte.Kenntnisse im Risikomanagement sind notwendig.Vorteile:Hohe Flexibilität, unterstützt Weiterentwicklung.
CASE-Computer Aided Software Engineering
• Für komplexe Aufgaben können AEU (Anwendungsentwicklungsumgebungen) eingesetzt werden.
• Sind selbst Anwendungen, mit eigenem Lebenszyklus, Schnittstellen…
Entwicklungswerkzeuge, die phasenweises Vorgehen, Prototyping, Objektorientierung und andere Aspekte unterstützen.
CASE-Computer Aided Software Engineering
• CASE umfaßt folgende Klassen von Entwicklungswerkzeugen:– Modellierungssysteme– Programmiersprachen mit gewisser Allgemeinverständlichkeit– Generierende Werkzeuge, die Programmteile in einer höheren Programmiersprache
erstellen– Datenbanksysteme– Editier- Formatier und Testhilfen (zB Debugger)– Künftig auch wissensbasierte, entscheidungsunterstützende Expertensysteme.
• Modifizierte Vorgehensmodelle:– Rapid Application Development (RAD)– Nutzer erhält frühzeitig ein in Teilbereichen nutzungsfertiges Produkt– RAD verfügt über Tools wie sie in einer AEU verfügbar sind– Phasen: Planung, Analyse, Entwicklung, Realisierung, Implementierung.
Eine AEU besteht aus den Hauptkomponenten Methode und em CASE-Tool (Entwicklungsinfrastruktur)
Übungsfragen
• Welche Verbesserungen werden mit dem Wasserfall- und dem V-Modell erreicht?
• Nennen Sie weitere Alternativen zu dem Phasenmodell und beschreiben Sie diese?
• Wie können Phasen allgemein eingeteilt werden?
• Welche Arten von Prototypen können Sie nennen?
Antworten
• Praxistauglichkeit• Prototyping, Evolutionäres/ inkrementelles Modell,
Objektorientierung, Spiralmodell, CASE-Tools.• Analysephase (Situationsstudie),
Definitionsphase(Produktdefinition), Entwurfsphase (Produktentwurf), Implementierungsphase (Programme), Abnahme- und Einführungsphase (Installiertes Produkt), Wartungsphase (gewartetes Produkt).
• Demonstrationsprototyp, Entwurfsprototyp, Labormuster, Pilotsysteme
Anforderungen an die Ergebnisse der Anwendungsentwicklung.
• Allgemeine Anforderungen• Einheitliche Nutzeroberfläche, Mehrfachnutzung, Portabilität, Offenheit der Lösung, …
• Anforderungen an die Kommunikation• Interoperabilität auf Anwendungsebene, unterschiedliche Kommunikationsmodi, …
• Anforderungen an die Benutzeroberfläche• Unterstützung unterschiedlicher Oberflächensysteme, Prototypingsupport, …
• Anforderung an die Datenhaltung• Konsistenz, Datensicherheit, Datenschutz, …
• Anforderungen an die Anwendungen• Autonomie der Anwendungen, Wiederverwendbarkeit der Services, Integration von
Arbeitsabläufen, …
• Anforderungen an die Administration• Zentrales wie dezentrales Monitoring, Online-Tuning, definiertes Fehlermanagement, …
• Anforderungen an die Konfiguration• Globale Sicht, Online-Änderungen der Konfiguration, Generierung von Installationsbeständen, …
• Anforderungen an die Migration/ Integration• Nutzung von Services existierender Anwendungen, Integration von Standardsoftware und –
diensten, …
Erfolgskontrolle der Anwendungsentwicklung
• Bewertungskriterien:• Wirtschaftliche Aspekte• Soziale/ personelle Aspekte• Betriebliche, organisatorische Aspekte• Konkurrenzfähigkeit, Kundendienste (externe Aspekte)• Image, Umweltverträglichkeit (politische Aspekte)• Zeitliche Aspekte (Verfügbarkeit von Informationen, ROI)
– Investitionsrechnung: einmalige und laufende Kosten.• Nutzen entsteht aus:
– Direkte Einsparungen, vermeidbare Kosten, Erhöhung der Einnahmen und Imponderabilien
– Imponderabilien: • nicht quantifizierbare Faktoren• Je mehr desto unsicherer die Kalkulation; nicht vorhersehbare Risken• zB Änderung der Gesetzeslage, Änderung der Hardware
55