einzelnen Funktionen nach Form, Art und Häufigkeit der Kommunikation zwischen den einzelnen Funktionseinheiten) - Beleganalyse (Erhebung aller Formulare die genutzt werden) - Datenanalyse (Darstellung von Umfang und Art der zu verarbeitenden Daten) - Ablaufanalyse (Analyse der Reihenfolge, in der die einzelnen Funktionen ausgeführt werden müssen, und des Datenflusses zwischen den Funktionen) - Schwachstellenanalyse Systembeschreibung Ziel der Systembeschreibung ist, die bei der Systemabgrenzung und bei der Systemerhebung ermittelten Ergebnisse zu ordnen und so zu strukturieren und mit erklärenden Worten zu versehen, dass sie eine in sich geschlossene und vollständige Systembeschreibung darstellen. Sollkonzept: Das Sollkonzept besteht aus der Problemdefinition, den Projektziele, der Beschreibung der Umgebung, einem Benutzerprofil (welche Vorkentnisse), Lösungsstrategien und den Akzeptanzkriterien (minimale Anforderungen durch den Auftraggeber)
Anforderungsdefinition Die Anforderungsdefinition ist die Vereinbarung zwischen Auftraggeber und Softwarehersteller. Sie muss daher von beiden verstanden und als vollständig und widerspruchsfrei akzeptiert werden. Die Elemente der Anforderungsdefinition sind: Ausgangssituation und Zielsetzung (bzgl. Systemerhebung und Systembeschreibung) funktionale / nichtfunktionale Anforderungen (nichtfunktionalen Anforderungen sind z.B. Ausfallsicherheit, Zuverlässigkeitsanforderungen, Portabilitätsanforderungen, gewünschte Antwort- und Verarbeitungszeiten) Benutzerschnittstellen (die gewünschten/angebotenen Schnittstellen zur Visualisierung und Bedienung) Fehlerverhalten Dokumentationsanforderungen Abnahmekriterien (bzgl. der funktionalen und nicht-funktionalen Anforderungen) wichtig: technische und ökonomische Realisierbarkeit Eine Durchführbarkeitsstudie soll klären, ob die Beschreibung vollständig und korrekt ist und ob die vereinbarten Anforderungen technisch und ökonomisch umsetzbar sind.
Entwurf Ziel des Entwurfs ist, die Architektur eines Softwaresystems zu projizieren, um eine möglichst wirtschaftliche Implementierung zu erreichen. Der Entwurf soll die in der Anforderungsdefinition erstellten Bedingungen konkretisieren und als Vorlage zur Implementation der gewünschten Software dienen. Eine wesentliche Aufgabe ist dabei, eine Zerlegung des Systems in handhabbare Bausteine (Module) herauszuarbeiten (was auch als Modularisierung bezeichnet wird) und die Bausteine bzgl. ihrer Funktionen und Schnittstellen zu beschreiben. Die Modularisierung eines Systems, d.h. seine Zerlegung in Komponenten und Module, sollte einer Reihe von Kriterien genügen. Sie sollen die verschiedenen Qualitätsmerkmale wie Wiederverwendbarkeit und Wartbarkeit unterstützen und beziehen sich teils auf die Eigenschaften von Modulen, teils auf die Zerlegung eines Systems. Geht man nach der top-down Vorgehensweise vor, so werden zunächst Bausteine herausgearbeitet, danach erfolgt der Entwurf der einzelnen Bausteine. Die Gestaltung der Systemeinheiten soll vor allem unter der Prämisse geschehen, wartbare und wiederverwendbare Systemkomponenten zu definieren. Wenn möglich sollte man darauf achten, vorgefertigte Komponenten zu verwenden, bzw. Komponenten zu schaffen, die selbst wiederverwendet werden können. Dabei handelt es sich um o anwendungsneutrale Klassenbibliotheken, z.B. für allgemeine Datenstrukturen o anwendungsspezifische Klassenbibliotheken, z.B. für Benutzungsoberflächen. Am Ende des Entwurfsprozesses hat man dann: o Beschreibung der Systemarchitektur o Definition von Modulen (Klassen) o Definition von Schnittstellen für einzelne Objekte und Gruppen von Objekten
Implementierung Unter der Implementierung versteht man die Transformation der Entwurfsergebnisse in ein Programm, in dem Sinne, dass es genau das leistet, was in Anforderungsdefinition und Entwurf festgelegt wurde. Wichtige Aufgaben der Implementierung stellen dar: Auswahl der Sprache nach logischen (Anwendungsgebiet, Projektgröße, Einfachheit, Programm-/ Kontrollstrukturen, Datenstrukturen, …) und pragmatischen Kriterien (Anforderungen des Auftraggebers, Compilerverfügbarkeit, Standardisierungsgrad der Sprache, Ausbildung der Programmierer, frühere Projekte, Werkzeugverfügbarkeit.) Realisierung der Schnittstellen und des Programmrumpfes. Übertrag des im Entwurf festgelegten Realisierungskonzeptes in die Programmiersprache.
Integration / Test In dieser Phase müssen die implementierten Bausteine zum Gesamtsystem zusammengefügt und getestet werden. zusammenfügen der Komponenten (zielorientiert, vorgehensorientiert, inkrementell, nicht-inkrementell) Zuerst erfolgt die Integration, d.h. die Zusammenführung der einzelnen Module und Komponenten. Hierbei kann nach verschiedenen Methoden vorgegangen werden, z.B. analog zum Programmaufbau oder anhand konkreter Testfälle. System-Tests (Valdierung, Effizienztests, Benutzerfreundlichkeit) Ist das System vollständig integriert, so muss ein Systemtest durchgeführt werden, der die geforderte Funktionalität des Systems aus der Sicht der Entwickler bzw. der Tester beim Auftragnehmer überprüft. Abnahme-Tests Beim Abnahmetest entscheiden Auftraggeber / zukünftige Anwender ob das vorliegende Programm die von Ihnen akzeptierten Spezifikation der Anforderungsdefinition erfüllt.
Wartung Die Wartung von Softwareprodukten umfasst alle Änderungen, die nach Abschluss der Entwicklungsarbeiten an einem Softwaresystem vorgenommen werden. Normalerweise gelingt es nicht, ein Softwareprodukt zu entwickeln, das keine Wartung erfordert. Viele Fehler werden erst beim tatsächlichen Einsatz erkannt und können daher erst nach den Entwicklungsphasen beseitigt werden. Häufig kommen auch während des Betriebs neue Benutzeranforderungen dazu, die ebenfalls Systemänderungen nach sich ziehen. Softwarewartung umfasst: o Verbesserungen der Benutzungsoberfläche o Optimierung von Laufzeitverhalten und Speicherbedarf o Korrektur von Fehlern, die beim Testen nicht entdeckt worden sind o Änderungen infolge neuer Benutzeranforderungen Der praktische Einsatz eines Softwareprodukts zeigt, wie vollständig seine Anforderungsdefinition war und welche zusätzlichen Funktionen notwendig sind.
Das Projektmanagement Die Aufgaben des Projektmanagements können zusammenfassend durch die Fragestellungen: Was ist wann von wem mit welchen Hilfsmitteln zu tun; welche Ergebnisse sind gefordert und welche Rahmenbedingungen gelten. Man kann die Aufgaben in grob in die drei Bereiche Planung, Organisation (Durchführung) und Kontrolle unterteilen. Außerdem ist das Projektmanagement für die Aufstellung des Projektplans verantwortlich. Planung Ziel der Planung ist es, Angaben über Termine, Kosten, Personaleinsatz und Maßnahmen zur Qualitätssicherung des zu entwickelnden Softwareprodukts festzulegen. Das Ergebnis der Planung zeigt sich u.a. in: - Organistions- und Personaleinsatzplan - Terminplan für die einzelnen Phasen des Softwarelebenszyklus - Kostenplan - Dokumentationsplan - Testplan Durchführung / Organisation Aufgabe der Organisation ist die Schaffung geeigneter Rahmenbedingungen. Typische Tätigkeiten im Rahmen der Projektorganisation sind: o Verteilung der Phasen des Software-Entwicklungsprozesses auf Teams oder einzelne Personen, o Zusammenstellung von Teams (Mitglieder, Organisationsform und Leitung), o Festlegung der Aufgaben, Rechte und Pflichten aller am Projekt beteiligten Personen, o Vorgabe von Projektstandards, der anzuwendenden Methoden und die Bereitstellung von Software-Werkzeugen, o Auswahl von Werkzeugen und Sprachen, o Auswahl von Testhilfsmitteln, o Regelung der Kommunikation, o Bereitstellung von Betriebsmitteln Kontrolle Kontrolle bezieht sich auf das zu erstellende Produkt, auf den Projektablauf und die beteiligten Personen. - Kontrolle des Produkts - Kontrolle des Projektablaufs - Kontrolle der Mitarbeiter Aufstellen des Projektplans
Modellierungstechniken / Muster Referenzmodelle Referenzmodelle (die erworben werden oder aus der eigenen Arbeit stammen) beschreiben eine Problemstellung möglichst allgemeingültig und abstrakt und dienen als Basis zur Modellierung. Sie sollen eine Problemstellung nicht "instanziieren" sondern möglichst als Vorlage für alle möglichen sinnvollen Instanzen einer Problem / Modellierungslösung dienen. Referenzmodelle dienen als Grundlage zur Wiederverwendbarkeit von Lösungen. Implementierungsmodelle, Informationsmodelle Implementierungsmodelle beschreiben die "genaue" Programmiertechnische Lösung oder Herangehensweise zur Lösung eines Problems. Im Gegensatz zu Referenzmodellen bilden sie ein Modell für ein bestimmtes, real existierendes Modell. Informationsmodelle bieten Vorlagen um abzubildende System in Form von Daten zu modellieren. gemeinsamer "Überbau": Metamodelle Metamodelle bestimmen die Syntax und Semantik von Referenz-/ Programmier- und Informationsmodellen. Sie legen die Struktur eines spezifischen Modells fest und besitzen somit ein höheres Abstraktionsniveau.
Modellierungstechniken / Muster Erläuterung des Musterbegriffs: Es soll vermieden werden, jedes Problem von Grund auf anzugehen. Statt dessen sollen Lösungen wieder verwendet werden, die zuvor erfolgreich eingesetzt wurden. Muster entstehen durch das Abstrahieren von konkreten Problem/Lösungs- Paaren und der Herausziehung von Gemeinsamkeiten. Entwurfsmuster beschreiben ein bestimmtes, wiederkehrendes Entwurfsproblem, welches in einem gegebenen Kontext auftritt, sowie ein Schema von Objekten und deren Beziehung zur Lösung dieses Problems. Aufbau eines Musters: Einem Muster unterliegt einem dreiteiligem Schema: - Kontext (die Situation, in der ein Problem auftritt) - Problem (das in dem Kontext häufig auftretende Problem) - Lösung (eine erprobte Lösung des Problems) Architekturmuster: Ein Architekturmuster spiegelt ein grundsätzliches Strukturierungsprinzip von Software-Systemen wieder. Es beschreibt eine Menge vordefinierter Subsysteme, spezifiziert deren jeweiligen Zuständigkeitsbereich und enthält Regeln zur Organisation der Beziehungen zwischen den Subsystemen. Architekturmuster sind Schablonen für konkrete Software-Architekturen. Entwurfsmuster: Entwurfsmuster beschreiben Expertenwissen auf dem Gebiet des Softwareentwurfs. Sie verbessern die systemtechnische Dokumentation von Objektorientierten Systemen und schaffen eine höhere Abstraktion. Entwurfsmuster sind unabhängig von einer konkreten Programmiersprache. Sie adressieren Aspekte wie Strukturierung von Oberflächen oder die Kommunikation zwischen verteilten Komponenten.
Idiome:
Bei Idiomen geht es um die Implementierung von speziellen Entwurfsproblemen.
Ein Idiom ist ein für eine bestimmte Programmiersprache spezifisches Muster auf einer niedrigen Abstraktionsebene. Es beschreibt wie man spezielle Aspekte von Komponenten oder den Beziehung zwischen Ihnen mit den Mitteln der Programmiersprache implementieren kann.
back
Home
reload