WikiDer > Rationaler einheitlicher Prozess
Rationaler einheitlicher Prozess oder RUP ist ein iterativSoftwareentwicklungsprozess. Dieser Prozess ist eine umfangreiche Weiterentwicklung des generischen Unified Process (UP) und wurde entwickelt von Rational Software Corporation das ist jetzt eine Teilung von IBM.
Allgemeines
Der Rational Unified Process (RUP) hat seinen Ursprung im ursprünglichen Spiralmodell von Barry Böhm. Ken Hartman, einer der wichtigsten RUP-Schöpfer, hat sich auf Basis von Praxis- und Literaturrecherchen mit Boehm zusammengetan. Der Rational Approach wurde ursprünglich in den 80er und 90er Jahren von der Firma Rational Software entwickelt.Der Rational Unified Process ist aus einer Fusion des Produkts Rational Approach (von Rational Software) und Objectory Process (von Objectory AB, entwickelt vom Gründer) entstanden Ivar Jacobson). Die erste Version von Rational Unified Process V5 wurde 1998 veröffentlicht.
Schaffung
Die Macher und Entwickler von RUP haben sich auf die Analyse der Merkmale konzentriert, die Projekte zum Scheitern bringen. So konnten sie die Hauptprobleme identifizieren, die häufig zum Scheitern von Projekten führen. Diese Liste enthält zum Beispiel:
- Ad hoc Anforderungen
- Vage, mehrdeutige und unklare Anforderungen
- Übermäßige Komplexität
- Unzureichende Tests
Das Ergebnis ihrer Recherchen war eine Sammlung von empfohlene Vorgehensweise die sie aus den erfolgreichen Projekten abgeleitet hatten. Diese Best Practices zusammenzufassen heißt jetzt: Rational Unified Process.
Philosophie hinter RUP
RUP basiert auf einer Reihe von Prinzipien und Best Practices (Version 6), wie zum Beispiel:
Software inkrementell/iterativ entwickeln
Angesichts der Zeit, die für den Aufbau großer Softwaresysteme benötigt wird, ist es nicht möglich, ein komplettes System auf einmal zu erstellen. Bedarf können sich im Laufe des Projekts aufgrund technischer Einschränkungen, sich ändernder Anforderungen/Wünsche oder eines besseren Verständnisses der tatsächlichen Problemstellung ändern. Die inkrementelle Entwicklung ermöglicht es Ihnen, das Projekt in mehrere Teilprodukte aufzuteilen und diese getrennt voneinander auszuliefern. Dadurch wird das Risiko reduziert, dass das Endprodukt nicht den Wünschen des Kunden entspricht und der Kunde nun zu jedem Unterprodukt Feedback geben kann, das Sie in die Entwicklung des nächsten Unterprodukts einbeziehen können.
Verwaltung von Softwareanforderungen
Anforderungsmanagement beschäftigt sich mit der Identifizierung, Erfassung und Verwaltung von Kundenbedürfnissen. Dazu gehören folgende Tätigkeiten:
- Analysieren Sie das Problem
- Definieren Sie, was der Kunde will
- Definieren Sie das zu liefernde System
- Verwalten Sie die Randbedingungen des Systems
- Verfeinern Sie die Systemanforderungen/Systembeschreibungen
- Verwalten Sie die Veränderungen Anforderungen
Nutzen Sie die Vorteile der komponentenbasierten Architektur
Systeme mit einer komponentenbasierten Architektur sind leicht erweiterbar, aufschlussreich, verständlich und fördern die Wiederverwendung bestimmter Codeteile. Je größer die Systeme werden, desto wichtiger wird eine gute Architektur. RUP zielt darauf ab, die Grundarchitektur frühzeitig zu bestimmen und mit dem Wachstum des Systems wird die Architektur weiter ausgebaut. Bei der iterativen Entwicklung ist es möglich, die Komponenten nach und nach abzubilden, um sie anschließend zu entwickeln, zu kaufen oder wiederzuverwenden.
Prototypen erstellen
Durch die grafische Darstellung des Produkts (Prototyping) für den Anwender wird die Ausfallwahrscheinlichkeit des Projekts reduziert. Eine globale, grafische Lösung des Problems ist für den Benutzer leichter zu verstehen als Seiten voller Quellcode. Es ist eine Vereinfachung der Komplexität. Neben Prototypen umfasst diese Phase auch Anwendungsfälle, Anwendungsfalldiagramme, Klassendiagramme und andere Objekte.
Testen Sie das System
Die Bestimmung der Qualität eines Systems basiert auf Tests. Dies ist einer der Bereiche, in denen Softwareprojekte oft scheitern, da Tests oft am Ende des Projekts durchgeführt werden, manchmal gar nicht und manchmal von anderen Teams. RUP geht dieses Problem an, indem es Tests während des gesamten Prozesses einschließt, einschließlich aller Beteiligten (Interessengruppen) (sowohl Programmierer als auch Kunden). RUP geht davon aus, dass jeder Stakeholder während des gesamten Projekts für die Qualität verantwortlich ist.
Nutzen Sie die Versionskontrolle während der Softwareentwicklung
Wie bei allen Softwareprojekten sind Softwareänderungen unvermeidlich. RUP beschreibt eine Reihe von Methoden, um diese Änderungen zu kontrollieren und genau zu überwachen. RUP beschreibt auch sichere Arbeitsbereiche und besagt beispielsweise, dass das System eines Programmierers nicht von Änderungen in einem anderen System beeinflusst werden soll.
Phasenverschiebung
Das RUP sieht eine Aufteilung jedes Projekts in vier Hauptphasen vor:
- Inception-Phase (Start) - Die Machbarkeit des Projekts, die Inhalte (Umfang) und die Grenzen werden bestimmt. In der Gründungsphase wird die ursprüngliche Idee in eine Produktvision umgewandelt (Vision). Die Geschäftstreiber werden ausgewertet, um sie zu verdeutlichen. Die Gesamtkosten und der erwartete Nutzen des Projekts werden geschätzt. Die wesentlichen Risiken werden identifiziert und eingeschätzt. Das ultimative Ziel dieser Phase ist ein Machbarkeitsstudie (Geschäftsfall) für das Projekt, also ein GO/NOGO für das Projekt.
- Ausarbeitungsphase (Detaillierung) – Die meisten funktionale Anforderungen (Anwendungsfälle) spezifiziert und die Systemarchitektur entworfen. Im Vordergrund steht die technische Machbarkeit des Projekts. Das ultimative Ziel dieser Phase ist ein Projektplan, die den detaillierten Inhalt (Umfang), zeitliche Koordinierung (Zeitplan) und Kostenvoranschlag (Schätzungen) sind für das Projekt enthalten.
- Bauphase (Building) – Das Produkt wird von der Architektur zu einem System entwickelt, das vollständig genug zum Testen ist.
- Übergangsphase – Durch Tests wird das Produkt von den Stakeholdern validiert. Weitere Aktivitäten in dieser Phase sind: Vorbereitung und Inbetriebnahme (Einsatz), Nachsorge und Übertragung von Verantwortlichkeiten. Diese Phase wird mit einer Bestandsaufnahme der gesammelten Erfahrungen abgeschlossen (gewonnene Erkenntnisse) für Folgeprojekte.
Disziplinen
Es gibt neun Disziplinen, die während der Dauer eines Projekts stattfinden. Die Intensität, mit der eine bestimmte Disziplin durchgeführt wird, hängt vor allem von der Phase ab, in der sich das Projekt befindet. Die neun Disziplinen sind in zwei Hauptgruppen unterteilt: Entwicklung und Support. Die Entwicklungsdisziplinen sind: Business Modeling, Requirements Engineering, Analyse und Design, Implementierung, Test und Bereitstellung. Die unterstützenden Disziplinen sind: Projektmanagement, Umgebungs- und Konfigurations- und Änderungsmanagement.
Geschäftsmodellierung
Organisationen sind zunehmend von IT-Systemen abhängig. Daher ist es zwingend erforderlich, dass Informationsanalysten wissen, wie Anwendungen in Organisationen passen. Unternehmen investieren nur in IT, wenn sie den Nutzen sehen und wissen, was der Mehrwert sein wird. Ziel von Business Modeling ist es in erster Linie, das gegenseitige Verständnis und die Kommunikation zwischen Business und IT zu verbessern. Nur wenn das Projektteam Kenntnisse über das Geschäft, die Struktur und Ziele der betroffenen Organisation, die Probleme innerhalb der Organisation und mögliche Verbesserungen hat, ist es in der Lage, eine Organisation abzubilden. Das Geschäftsmodell beschreibt die Vision der Organisation, in der das System platziert wird; wie diese Vision als Gliederung für den Prozess, die Rollen und Verantwortlichkeiten verwendet wird.Artefakte können hier sein: Leitbild, Ziel-Problem-Diagramm und SWOT-Matrix.
Requirements Engineering
Der Zweck von Requirements Engineering, Lokalisieren und Dokumentieren der Anforderungen, ist zu bestimmen, was das System tun muss. Die Anforderungen werden auf der Grundlage der von den Stakeholdern erhaltenen Informationen festgelegt. Anschließend werden sie strukturiert und dokumentiert und daraus notwendige Funktionalitäten und Geschäftsregeln destilliert. Abschließend werden die Anforderungen vom Kunden validiert, bevor der nächste Prozessschritt beginnt.
Zwischenprodukte, die in dieser Phase entstehen, sind:
- Anwendungsfälle
- Zusätzliche funktionale und technische Spezifikationen wie Reaktionszeiten, erwartete Volumina, Qualitäts- und Verfügbarkeitsanforderungen, Benutzerfreundlichkeit, ...
- Glossar (Glossar)
- Storyboards; als Basis für die User Interface Prototypen
Diese Unterprodukte bilden zusammen einen SRS: die Softwareanforderungen.
Requirements Engineering beginnt in der Inception-Phase, ist die Hauptaktivität während der Ausarbeitungsphase und wird während der Konstruktionsphase abgeschlossen. Die Anforderungen fließen weiter in die Analyse und das Design der neuen Anwendung ein.
Analyse & Design
Der Zweck der Analyse- und Designaktivitäten (Design), um festzulegen, wie die Anforderungen in einer neuen oder geänderten Anwendung umgesetzt werden. Dabei muss sichergestellt sein, dass die Software:
- den im Anwendungsfall und in der Funktionsbeschreibung beschriebenen Aufgaben und Funktionen entspricht,
- erfüllt alle technischen Anforderungen,
- ist einfach anzupassen, wenn sich die funktionalen Anforderungen ändern.
Diese Phase führt zu a Designmodell und wenn möglich auch a Analysemodell. Das Designmodell dient als Abstraktion des Quellcode; es ist ein (detaillierter) Plan, wie der Quellcode strukturiert und geschrieben ist. Das Designmodell besteht aus Klassen, strukturiert in Module und Subsysteme, mit klar beschriebenen Schnittstellen. Es enthält auch die Beschreibung, wie diese Klassen miteinander interagieren.
Analyse und Design beginnen in der Regel in der Ausarbeitungsphase und setzen sich in der Konstruktionsphase fort. Seine Ergebnisse fließen in die Implementierung ein.
Implementierung
Während der Umsetzungsaktivitäten (auch genannt: Gebäude) komm vor:
- Festlegung der Organisation der Quellcode, in Bezug auf die Implementierung von Subsystemen
- Erfassen Klassen und Objekte
- Testen der entwickelten Komponenten (Unit-Tests)
- Integration der Ergebnisse von Einzelpersonen in ein System
Systeme werden durch Implementierung realisiert Komponenten. Der Implementierungsprozess beschreibt, wie vorhandene Komponenten wiederverwendet werden können und wie neue wiederverwendbare Komponenten erstellt werden können, um das System wartungsfreundlicher zu machen.
Die Umsetzung erfolgt hauptsächlich in der Bauphase. Anschließend wird die gelieferte Software getestet.
Testen
Zu testen meint:
- Steuerung der Interaktion zwischen verschiedenen Objekten
- Überprüfung der Integration verschiedener Komponenten
- Überprüfung des Systems, ob alle Anforderungen korrekt umgesetzt wurden
- Zuordnung und Priorisierung Mängel
RUP ist ein iterativer Prozess, was bedeutet, dass Tests in verschiedenen Phasen des Projekts stattfinden können. Dadurch können Fehler in einem frühen Projektstadium erkannt und die Reparaturkosten so gering wie möglich gehalten werden. Je später ein Fehler entdeckt wird, desto höher sind die Wiederherstellungskosten.
Die meisten Tests finden grundsätzlich in der Bauphase statt.
Einsatz
Im Produkt Deployment (auch bekannt als Put-in-Production)Veröffentlichungen vorbereitet und die Software an den Endbenutzer ausgeliefert. Im Vordergrund stehende Tätigkeiten sind:
- Erstellung von Drittanbieter-Releases der Software
- Verpacken der Software
- Verteilen der Software
- Installieren der Software
- Bieten Sie Benutzern Hilfe und Unterstützung an
- Fehler nach der Lieferung beheben
- Übertragung der Verantwortung aus der Software
Grundsätzlich erfolgt der Einsatz während der Übergangsphase.
Projektmanagement
Die Planung eines Projekts in RUP erfolgt auf zwei Ebenen. Es gibt einen Phasenplan, der das gesamte Projekt beschreibt, und eine Liste von Iterationsplänen, die die Iterationen beschreiben. Dieser Teil konzentriert sich hauptsächlich auf die wichtigen Teile eines iterativen Entwicklungsprozesses:
- Risiken aufrechterhalten
- Planung eines iterativen Projekts während der Projektdurchführung und für eine bestimmte Iteration
- Den Fortschritt eines iterativen Projekts verfolgen
Dieser Teil von Rational Unified Process (RUP) deckt jedoch nicht alle Teile der Verwaltung eines Projekts ab. Zum Beispiel deckt es nicht Dinge ab wie:
- Mitarbeiter pflegen: einstellen, schulen und coachen
- Haushaltsführung: Aufstellung und Zuteilung
- Pflege von Verträgen mit Lieferanten und Kunden
Das Projektmanagement enthält eine Reihe von Plänen und Komponenten, um das Projekt zu steuern und seinen Fortschritt aufrechtzuerhalten, wie zum Beispiel:
- Der Phasenplan
- Der Iterationsplan
Umgebung
Dieser Abschnitt befasst sich mit den notwendigen Aktionen, um den Fortschritt eines Projekts anzupassen. Es beschreibt, welche Maßnahmen erforderlich sind, um Leitlinien zu entwickeln, die das Projekt unterstützen. Ziel dieser Aktivitäten ist es, den Softwareentwicklungsorganisationen eine Softwareentwicklungsumgebung zur Unterstützung des Entwicklungsteams zur Verfügung zu stellen.Die Umgebungskomponente gliedert sich in drei Hauptbereiche:
Vorbereitung der Umgebung für das Projekt
Eine Entwicklungsumgebung für ein Projekt vorzubereiten bedeutet, den zugrundeliegenden Entwicklungsprozess an einen akzeptablen projektspezifischen Entwicklungsprozess anzupassen. Hier ist, wonach Sie suchen müssen:
- Geben Sie an, wie das Projekt den modifizierten Entwicklungsprozess verwenden wird
- Entwicklung eines Entwicklungsberichts, der die Abweichungen vom zugrunde liegenden Prozess beschreibt
- Qualifizieren der Teileauswahl nach zeitlichen und formalen Anforderungen
- Erstellung projektspezifischer Bausteine wie Richtlinien und Vorlagen auf Basis eines Entwicklungsberichts
- Erstellen einer Liste möglicher Anwendungen für die Entwicklung
Vorbereiten einer Entwicklungsumgebung für eine Iteration
Der Zweck der Zuordnung dieser Details besteht darin, sicherzustellen, dass die Projektumgebung für die nächste Iteration bereit ist. Dabei werden Prozesse und Anwendungen genutzt, die sich hauptsächlich auf Folgendes konzentrieren:
- Fertigstellung des Entwicklungsberichts, um für die Iteration bereit zu sein
- Bereiten Sie Anwendungen vor und passen Sie sie gegebenenfalls an, um sie innerhalb der Iteration zu verwenden
- Stellen Sie sicher, dass die Anwendungen ordnungsgemäß geändert und installiert wurden
- Erstellung einer Reihe projektspezifischer Vorlagen und Richtlinien zur Unterstützung der Entwicklung von Projektkomponenten in der Iteration
- Sicherstellen, dass alle Änderungen in der Projektumgebung korrekt an die Projektmitglieder kommuniziert werden
Unterstützung der Entwicklungsumgebung während der Iteration
Unterstützt Entwickler bei der Nutzung der Anwendungen und Prozesse während einer Iteration. Dazu gehört die Installation der erforderlichen Software, die Sicherstellung, dass die Hardware ordnungsgemäß funktioniert und potenzielle Netzwerkprobleme ohne Verzögerungen behoben werden.
Konfigurations- und Änderungsmanagement
Das Konfigurations- und Änderungsmanagement in RUP überlappt drei Teile:
- Konfigurationsmanagement
- Verwaltung von Änderungsanträgen
- Status- und Messwertverwaltung
Konfigurationsmanagement
Das Konfigurationsmanagement ist für den systematischen Aufbau der Produkte verantwortlich. Alle angelegten Teile eines Projekts, wie Dokumente und Modelle, müssen über die Versionsverwaltung gepflegt werden, wobei alle Änderungen rückgängig gemacht werden können. Außerdem sollte diese Lösung die Beziehungen zwischen den Dateien berücksichtigen und sie korrekt aktualisieren, wenn sich etwas ändert.
Verwaltung von Änderungsanträgen
Während des Entwicklungsprozesses gibt es viele Dateien mit unterschiedlichen Versionen. CRM verfolgt alle Änderungswünsche.
Status- und Messwertverwaltung
Jeder Änderungsantrag hat seinen eigenen Status. Sie kann beispielsweise neu, protokolliert, genehmigt, zugewiesen oder abgeschlossen sein. Eine solche Anfrage hat auch Attribute wie Herkunft, Original, Priorität usw. Diese Status und Attribute werden in einer Datenbank gespeichert, damit alle nützlichen Informationen über den Fortschritt des Projekts angezeigt werden können. Rational verfügt auch über Software, um diese Änderungsanträge zu verwalten. Dieses Programm heißt ClearQuest.