Kategorien
Software Engineering

AUSWIRKUNGEN VON SOFTWARE-PROZESSMODELLEN AUF DIE KONZERNSOFTWAREENTWICKLUNG: Eine vergleichende Studie von RUP, UML und XP

Der Zweck dieses Beitrags ist es, drei teamorientierte Softwareentwicklungsprozessmodelle zu vergleichen und gegenüberzustellen: Unified Modeling Language (UML), Extreme Programming (XP) und Rational Unified Process (RUP)) hinsichtlich ihrer Auswirkungen auf die Gruppensoftwareentwicklung.

EINFÜHRUNG

Jedes Jahr belaufen sich die Gesamtkosten von Softwareentwicklungsprojekten in den USA auf rund 275 Milliarden US-Dollar, und leider erfüllen 70 % dieser Projekte ihre vertraglichen Vereinbarungen nicht. Die häufigsten Faktoren, die die Softwareentwicklung beeinträchtigen, sind ungenaue Kundenspezifikationen, unzureichende Planung und Analyse, schlechtes Projektmanagement, sich ständig verschiebende Zielpfosten, unrealistisch kurze Zeitpläne, schwache Qualitätssicherung, unterschätzte Ressourcen, ein unpassender Zeitplan und Verpflichtungen zum Umfang. Diese Faktoren heben zwei Quellen der Komplexität in Softwareentwicklungsprojekten hervor: soziale und technische Komplexität.

Ein Softwareentwicklungsprojekt ist eine komplexe soziotechnische Aktivität. Zu den sozialen Aspekten eines solchen Projekts, die mit der Komplexität der Entwicklungsaktivitäten verbunden sind, gehört, wie die Entwickler und ihre Kunden interagieren, sich verhalten und organisieren. Beispielsweise erstellen und modifizieren Entwickler die Software mit der erforderlichen Koordination, um Konflikte zu vermeiden und die Leistung und Effektivität des Teams zu verbessern. Im Gegensatz dazu umfassen technische Aspekte und ihre inhärente Komplexität das angemessene Design und die Verwendung von Algorithmen, Architektur, Entwicklungstechniken und Computertechnologien.

Es wurden verschiedene Softwareentwicklungsmethoden entwickelt, um den Softwareentwicklungsprozess zu leiten und seine Komplexität zu reduzieren. Einige der Entwicklungsmethoden sind agile Methoden, iterative Prozesse, Wasserfallprozesse und formale Methoden. Jedes dieser Modelle stellt Softwareentwicklern 1) Methoden und Werkzeuge zum Verstehen, Interpretieren und Manipulieren des Softwareartefakts und 2) computerunterstützte kooperative Methoden und Werkzeuge wie Konfigurationssoftwareverwaltung und andere prozessbasierte Softwareentwicklungssysteme bereit.

Die Ziele dieser soziotechnischen Systeme bestehen darin, die Anforderungen von Standards wie ISO 9000, SPICE, BOOTSTRAP, SEPRM, Reifegradmodell der Fähigkeiten, Personal Software Process und Total Quality Management zu erfüllen. Der Zweck dieses Beitrags ist es, drei teamorientierte Softwareentwicklungsprozessmodelle zu vergleichen und gegenüberzustellen: Unified Modeling Language (UML), Extreme Programming (XP) und Rational Unified Process (RUP) hinsichtlich ihrer Auswirkungen auf die Gruppensoftwareentwicklung.

Softwareentwicklungspraktiken in XP, UML und RUP

XP, UML und RUP sind die am häufigsten und am häufigsten verwendeten Modelle in der gesamten Softwareentwicklungsbranche. XP, UML und RUP haben die Branche in einer Weise stark beeinflusst, dass proprietäre Modelle, beispielsweise Microsoft-Betriebs- und Lösungs-Frameworks (MOF und MSF), ihre Praktiken und Werte übernommen haben.

Unterstützung der Gruppensoftwareentwicklung in XP

XP ist der bekannteste Ansatz zur agilen Softwareentwicklung im Vergleich zu den anderen Methoden wie Adaptive Softwareentwicklung, Lean Development, Crystal, Dynamic Systems Development Method, Feature Driven Development und SCRUM. Diese Methodik wurde 1996 von Beck entwickelt, um viele der Hauptprobleme zu lösen, die zu Komplikationen bei Softwareprojekten führten. Der XP-Lebenszyklus besteht aus sechs Phasen, die Exploration, Produktion, Planung, erste Release-Iterationen, Wartung und Tod umfassen.

Als rigoroser Ansatz für den Gruppen-Softwareentwicklungssupport zeichnet sich XP durch eine enge Kunde-Entwickler-Schleife aus, die sicherstellt, dass Missverständnisse zwischen dem Entwickler und dem Kunden früh im Entwicklungslebenszyklus korrigiert werden. XP zeichnet sich auch durch Pair Programming aus, eine seiner 12 Kernpraktiken. Die anderen Praktiken sind Paarprogrammierung, Planungsspiel, kleine Releases, Metapher, kontinuierliche Integration, Refactoring, kollektives Eigentum, einfaches Design, Testen, Vor-Ort-Kunden, Codierungsstandards und 40-Stunden-Woche. XP teilt die gleichen Werte (Kommunikation, Mut, Feedback und Einfachheit) wie im Agilen Manifest beschrieben, das die höchste Priorität der Interaktionen auf das Entwicklungsteam, die Entwickler und ihre Kunden legt. Aus der Perspektive der Gruppensoftwareentwicklung kann man den Mangel an Praktiken von XP feststellen, um die Kommunikation und Diskussion von Abstraktionen, die Trennung von Analyse- und Entwicklungsrollen, die Bereitstellung von Komponentenschnittstellen und Entwurfsmustern zu erleichtern. Diese Funktionalitäten sind in UML verfügbar.

Group Software Development Support in UML

UML wurde seit der Annahme ihrer ersten Version (UML 1.0) im Jahr 1997 und den nachfolgenden Überarbeitungen (von UML 1.2 im Jahr 1998 bis UML 2.0 im Jahr 2002) durch die Object Management Group erfolgreich auf verschiedene Bereiche angewendet. Dieses Modell wurde von verschiedenen Sprachen beeinflusst, die in objektorientierten Methoden verwendet werden. Wie RUP kombinierte UML die Konzepte von Object Oriented Design (OOD) von Booch, Object Oriented Software Engineering (OOSE)-Modell von Jacobson und Object Modeling Techniques (OMT) von Rumbaugh. Viele Wissenschaftler betrachten UML als De-facto-Standard für den Entwurf und die Architektur von Softwaresystemen und für die objektorientierte Modellierung.

Das UML-Metamodell ist in Fundament-, Verhaltenselemente- und Modellverwaltungspakete unterteilt. Diese Pakete und die strenge Spezifikation der UML-Diagramme erleichtern die Kommunikation und das Verständnis zwischen Kunden und Entwicklern. Obwohl verschiedene Autoren die UML-Kommunikationsfähigkeit aufgrund der technischen Aspekte der Diagramme in Frage gestellt haben, bleibt die UML das branchenweit am nächsten kommende Modell, das eine solche Kommunikation erleichtert.

Group Software Development Support in RUP

Die drei Hauptentwickler von UML (Booch, Jacobson und Rumbaug) haben RUP 1998 entwickelt. RUP ist anwendungsfallgesteuert, iterativ und inkrementell mit einem vierphasigen Entwicklungszyklus. Ähnlich wie bei XP ist jede Phase in Iterationen unterteilt, die aus neun Disziplinen bestehen, die zu einer funktionierenden Software führen. Für jede Disziplin werden den Entwicklern bestimmte Artefakte, Aktivitäten und Verantwortlichkeiten zugewiesen. Die Vorteile von RUP, wie denen von XP, sind schnelle Entwicklung, Kundenzufriedenheit und niedrige Kosten.

Einige Wissenschaftler und Praktiker stellten jedoch fest, dass es an geeigneten Werten fehlt, um über die Entwicklungspraktiken in RUP hinauszugehen, obwohl Leitprinzipien wie „Iteratives Entwickeln“ bereitgestellt werden. Einer der häufigsten Kritikpunkte an RUP ist, dass es in Bezug auf Verfahren und Papierkram übermäßig aufwändig ist. Viele Entwickler argumentierten, dass, obwohl RUP eine Reihe von Ähnlichkeiten aufweist, die vor allem Iterationen und Disziplinen hervorheben, die funktionierende, lieferbare Software produzieren, die Methode nicht die agilen Prinzipien teilt, die XP auszeichneten.

Gemeinsame Softwareentwicklungspraktiken für Gruppen finden

Der Kriterienkatalog basiert auf der Bewertung der Praktiken, Werte und Prinzipien von RUP, UML und XP. Ein Merkmal wird basierend auf seiner Fähigkeit ausgewählt, eine Gruppensoftwareentwicklung zu unterstützen. In diesem Papier wurden sieben Kriterien ausgewählt: Kundenanforderungen und Verständnis zwischen den Beteiligten, Dokumentation, Gruppengedächtnis, Paarprogrammierung, Softwarekonfigurationsmanagementprozess, Gruppenbewusstsein und kontinuierliche Qualitätsprüfung. Frühere Untersuchungen haben ähnliche Kriterien identifiziert, darunter die Unterstützung für die gemeinsame Nutzung von Code, die Schaffung von Bewusstsein, Einfachheit und Schnittstellendesign als wichtige Elemente in Softwaregruppenprojekten. UML und RUP scheinen in Bezug auf die Unterstützung der Gruppensoftwareentwicklung weiter fortgeschritten zu sein als XP. XP fehlt es an nützlichen Unterstützungsverfahren für die Entwicklung von Gruppensoftware, wie z. B. Gruppenspeicher und Dokumentation. Die Praxis der Paarprogrammierung in XP scheint jedoch erheblich zu einer hohen Softwarequalität beizutragen.

2 antwortet auf „AUSWIRKUNGEN VON SOFTWARE-PROZESSMODELLEN AUF DIE KONZERN-SOFTWAREENTWICKLUNG: Eine vergleichende Studie von RUP, UML und XP“

Gute Einblicke! RUP und XP schreiben als änderungsgetriebene Prozesse sowohl Interventionen als auch Best Practices vor, die sich positiv auf die Bemühungen eines Projektteams bei der Bewältigung von Geschäfts- und Kundenanliegen auswirken. UML wäre jedoch wahrscheinlich nicht als Prozess geeignet, sondern eher als Werkzeug, das Prozesse ergänzt, dh RUP, DSDM, sogar XP.

Hinterlassen Sie uns einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind mit * gekennzeichnet