SWE12 Slide 1. Software-Engineering. Vorlesung 12 vom 17.01.2005 Sebastian Iwanowski FH Wedel



Ähnliche Dokumente
Software-Engineering

Klausur Software-Engineering SS 2005 Iwanowski

Informationswirtschaft II Rational Unified Process (RUP)

Informationswirtschaft II

Grundlagen Software Engineering

Software-Engineering

Projektmodell Softwareentwicklung: Unified Software Development Process / Unified Process (Teil I)

Requirements Management mit RequisitePro. Rational in der IBM Software Group. Der Rational Unified Process als Basis für die Projektarbeit


Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Projektmanagement. Dokument V 1.1. Oliver Lietz - Projektmanagement. Wie kommt es zu einem Projektauftrag? Ausführung

IT-Projekt-Management

Software-Engineering

3.4 Unified Process Ivar Jacobson, Grady Booch, James Rumbaugh: The Unified Software Development Process.

Der Design-Workflow im Software-Entwicklungs-Prozess

Praktikum Grundlagen der Programmierung. Diverse Grundlagen. Dr. Karsten Tolle

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Informationssystemanalyse Lebenszyklusmodelle 3 1. Lebenszyklusmodelle sollen hauptsächlich drei Aufgaben erfüllen:

Phasen. Gliederung. Rational Unified Process

Gliederung. Einführung Phasen Ten Essentials Werkzeugunterstützung Aktivitäten, Rollen, Artefakte Werkzeug zur patternorientierten Softwareentwicklung

Was ist Sozial-Raum-Orientierung?

Das Pflichtenheft. Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth Ains A-Systemhaus GmbH Berlin

Kapitel 2: Der Software-Entwicklungsprozess

RUP Analyse und Design: Überblick

Studieren- Erklärungen und Tipps

Softwareentwicklungsprozess im Praktikum. 23. April 2015

Projektmanagement PPSAP WS 03/04. Inhaltsverzeichnis : 1. Projektmanagement

Vgl. Kapitel 5 aus Systematisches Requirements Engineering, Christoph Ebert

Software-Lebenszyklus

Lösungen zum Test objektorientierter Software

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick

Softwaretechnik. Fomuso Ekellem WS 2011/12

Erfahrungen mit Hartz IV- Empfängern

Softwaretechnik (Allgemeine Informatik) Überblick

Agile Software Development

Probeklausur. Lenz Belzner. January 26, Lenz Belzner Probeklausur January 26, / 16

Software Systems Engineering

Free your work. Free your work. Wir wollen Ihnen die Freiheit geben, sich auf Ihr Geschäft zu konzentrieren.

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Einführung und Motivation

Informationssystemanalyse Problemstellung 2 1. Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse:

Professionelle Seminare im Bereich MS-Office

3. Vorgehensmodelle Software Engineering. Prof. Dr. Bernhard Humm Hochschule Darmstadt, 23. Oktober 2006

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Agile Softwareprozess-Modelle

Abschnitt 16: Objektorientiertes Design

Deutsches Rotes Kreuz. Kopfschmerztagebuch von:

Use Cases. Use Cases

Projektmanagement. Vorlesung von Thomas Patzelt 8. Vorlesung

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Objektorientierter Software-Entwurf Grundlagen 1 1. Analyse Design Implementierung. Frühe Phasen durch Informationssystemanalyse abgedeckt

Updatehinweise für die Version forma 5.5.5

1 Mathematische Grundlagen

Anleitung über den Umgang mit Schildern

Installation der SAS Foundation Software auf Windows

Wie man großartige Banking IT Services baut

Arbeiten mit UMLed und Delphi

Wichtig ist die Originalsatzung. Nur was in der Originalsatzung steht, gilt. Denn nur die Originalsatzung wurde vom Gericht geprüft.

Stellvertretenden Genehmiger verwalten. Tipps & Tricks

Formwerk AG. Die Sicherstellung konsistenter Nutzungserlebnisse über den gesamten SW-Produktlebenszyklus durch Human Centered Design.

Testen mit JUnit. Motivation

Erfolgreiche Realisierung von grossen Softwareprojekten

SharePoint Demonstration

Outsourcing und Offshoring. Comelio und Offshoring/Outsourcing

Komponententest. Testen von Software Systemen. Übung 02 SS 2009 Version:

Unsere These: Meilensteindefinitionen sind wichtig für die Projektplanung und die Bewertung des Projektstatus.

Was ist das Budget für Arbeit?

Simulation LIF5000. Abbildung 1

SWE5 Slide 1. Software-Engineering. Vorlesung 5 vom Sebastian Iwanowski FH Wedel

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

SJ OFFICE - Update 3.0

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Auswahl alter Klausuraufgaben aus einer ähnlichen Vorlesung Maßgeblich für die Prüfung sind die Vorlesungsinhalte!

Softwareentwicklungsprozesse. 18. Oktober 2012

Die Softwareentwicklungsphasen!

Das Leitbild vom Verein WIR

Informationssicherheit als Outsourcing Kandidat

ZfP-Sonderpreis der DGZfP beim Regionalwettbewerb Jugend forscht BREMERHAVEN. Der Zauberwürfel-Roboter. Paul Giese. Schule: Wilhelm-Raabe-Schule

GEVITAS Farben-Reaktionstest

Agile Softwareentwicklung. Referat von Kristina Schrickel Praxisprojekt Ruby Leitung : Ralf Berger

Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit

Hilfe-Blatt: Ausgabenkontrolle

3. GI-Workshop EPK 2004 Geschäftsprozessmanagement mit Ereignisgesteuerten Prozessketten Luxemburg. ARIS meets RUP

Speicher in der Cloud

Prozess-Modelle für die Softwareentwicklung

DAS PARETO PRINZIP DER SCHLÜSSEL ZUM ERFOLG

Herzlich Willkommen beim Webinar: Was verkaufen wir eigentlich?

Wirtschaftsinformatik 2 Modellierung betrieblicher Informationssysteme - MobIS

DATENSCHUTZ UND AGILE SOFTWAREENTWICKLUNG. Erfahrungen und Vorgehen in der Praxis

Agile Programmierung: Case Studies

16 Architekturentwurf Einführung und Überblick

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am

Multicheck Schülerumfrage 2013

Softwareentwicklung Schrittweise Verfeinerung, Programmieren üben: Tic-Tac-Toe in Raten

Das Persönliche Budget in verständlicher Sprache

Statuten in leichter Sprache

Universität Zürich Informatikdienste. SpamAssassin. Spam Assassin Go Koordinatorenmeeting 27. April

Ideation-Day Fit für Innovation

Transkript:

SWE12 Slide 1 Software-Engineering Vorlesung 12 vom 17.01.2005 Sebastian Iwanowski FH Wedel

SWE12 Slide 2 Projektmanagement Zeitliche Organisation des Projektablaufs Wasserfallmodell Prototyping Spiralmodell RUP: Rational Unified Process XP: extreme Programming Grobe Zeitplanung für das Gesamtprojekt Detaillierte Zeitplanung für Teilphasen mit Forderungen an Personalorganisation

RUP: Rational Unified Process Historie OO OO Prozesse Prozesse der der Tres Tres Amigos Amigos...... Und Und als als sie sie miteinander miteinander sprachen... sprachen... OMT [Rumbaugh] OOA/OOD [Coad/Yourdon] UseCaseDriven [Jacobson] Rational Unified Process (RUP) [Rumbaugh/Booch/Jacobson] ObjectOriented Design [Booch] RUP ist eine Anleitung, wie man UML in der Projektorganisation bestmöglich einsetzt. SWE12 Slide 3

RUP: Rational Unified Process Aufteilung der Arbeitsschritte in bestimmte Phasen Workflow Phase Inception Elaboration Construction Transition Requirements Analysis Design Implementation Test It.1 It.2 Iteration It.n SWE12 Slide 4

RUP: Rational Unified Process Zeitliche Einordnung in Breiten-/Tiefenraster Funktionale Breite Lieber Projektleiter, T T I I E F F E Analyse Design Code UI BL DA das ist DEIN Problem, wir glauben nicht an eine allgemeingültige Lösung. Wenn Du aber verschiedene Schwerpunkte setzt - Risikominimierung, Analyse, Architektur, Code, Test, etc - helfen wir Dir gerne: Die Workflows sagen Dir, was Du planst (welche Ergebnisse Du produzierst). Test Die Phasenbeschreibung sagt Dir, wie Du planst (worauf Du achten mußt). SWE12 Slide 5

RUP: Rational Unified Process Wesentliche Bausteine und Prinzipien Use-Casegetrieben Use cases bilden die Basis für alle Phasen incl. Test Die Planung erfolgt nach Use-Case-Paketen und Fertigungstiefe Inkrementell Das System wird in Iterationen errichtet Jede Iteration kann etwas mehr als die Vorgängeriteration Architektur Basiert Für kritische Use Cases wird eine Musterlösung erstellt Diese Lösung dient als Schema F für die weiteren Use Cases Diese Lösung heißt Architektur SWE12 Slide 6

Requirements Workflow RUP: Rational Unified Process Domain Model Feature List Supplementary Requirements System System Analyst Analyst Find Actors and Use Cases UC Model (outlined) Glossary Structure UC Model UC Model (structured) Architekt Architekt Prioritize UseCases Architecture Description UC UC Specifier Specifier Detail a Use Case Detailed Use Case UI UI Designer Designer Prototype User Inter face UI Prototype SWE12 Slide 7

Analysis Workflow RUP: Rational Unified Process UC Model Supplementary Requirements Architecture Description Architect Architect Architectural Analysis Analysis Package Analysis Class (outlined) Architectural Description UC UC Engineer Engineer Analyse a Use Case UC Realization Analysis Class (outlined) Component Component Engineer Engineer Analyse a Class Analysis Class (complete) Analyze a Package Analysis Package (complete) SWE12 Slide 8

Design Workflow RUP: Rational Unified Process Architect Architect UC UC Engineer Engineer UC Model Supplementary Requirements Architecture Description Analysis Model Architectural Design Subsystem (outlined) Interface (outlined) Design Class (outlined) Deployment Model (outlined) Architecture Description Design a UseCase UC Realization (Design) Design Class (outlined) Subsystem (outlined) Interface (outlined) Component Component Engineer Engineer Design a Class Design Class (complete) Design a Subsystem Subsystem (complete) Interface (complete) SWE12 Slide 9

RUP: Rational Unified Process Implementation Workflow Desing Model Deployment Model Architecture Description Outlined Component Architect Architect Architectural Implementation System System Integrator Integrator Integrate System Integration Build Plan Implementation Model (subsequent builds) Component Component Engineer Engineer Implement Subsystem Implement Class Implemented Component (for a build) Perform Unit Test Unit Tested Component (for a build) Implemented Subsystem (for a build) Implemented Interface (for a build) SWE12 Slide 10

Test Workflow RUP: Rational Unified Process Supplementary Requirements UC/Analysis/Design/Implementation Model Architectural Description Iterated Test Evaluation Test Test Engineer Engineer Plan Test Design Test Test Case Test Procedure Evaluate Test Integration Integration Tester Tester Test Plan Perform Integration Test Defect System System Tester Tester Perform System Test Defect Component Component Engineer Engineer Implement Test Test Component SWE12 Slide 11

XP: extreme Programming Historie propagiert durch Kent Beck (Smalltalk-Softwareentwickler) 1999 weitere Weggefährten: Martin Fowler, Erich Gamma, Ralph Johnson Wesentliche Prinzipien XP stellt die Programmierung in den Vordergrund der Code ist das, wofür bezahlt wird XP nimmt Moving Targets als den Normalfall an. Änderungen werden nicht bekämpft, sondern übernommen: embrace change Bei XP steht im Verhältnis Auftraggeber und Auftragnehmer Vertrauen im Vordergrund... SWE12 Slide 12

Bestandteile von XP Code Reviews sind gut: XP: extreme Programming Also werden Sie dauernd gemacht. Pair Programming Es gibt informelle Coding Standards Permanentes Testen ist gut: Also werden die Testfälle ständig auf dem Stand gehalten und ausgeführt. Use Cases dienen auch als Testscripts für Unit Testing. Testfälle werden gebaut, bevor codiert wird. Integrationstests sind wichtig: Deshalb wird permanent integriert und wieder getestet: Continuous Integration SWE12 Slide 13

Bestandteile von XP XP: extreme Programming Einfachheit ist gut: Do the simplest thing that might possibly work Design ist wichtig: Wird deshalb während des Codierens durch Refactoring ständig verbessert Kurze Iterationen sind wichtig: Also werden die Iterationen extrem kurz gemacht 10 Tage, dann wieder Planning Game Feedback durch den Kunden ist wichtig: Also ist der Kunden im selben Raum: On site customer SWE12 Slide 14

Beispiel für Refactoring XP: extreme Programming SWE12 Slide 15 Quelle: Martin Fowler

Voraussetzungen für XP: XP: extreme Programming kleines Entwicklungsteam (2-10) gute Leute, die nicht anfangen zu hacken geringe Änderungskosten: Grundlage Refactoring eine Software-Entwicklungsumgebung, die permanente Tests erlaubt einfaches Design keine gigantischen Frameworks SWE12 Slide 16

XP: extreme Programming Achtung! Manche benutzen XP als Ausrede um nicht zu dokumentieren.. Im Chrysler C3 Projekt wurde nicht dokumentiert Das hat später durch Wechsel von Teammitgliedern zu Problemen geführt. Außerdem wurde das Projekt inzwischen abgebrochen - angeblich aus politschen Gründen. Manche sagen, sie machen XP: Nur leider ist der Kunden nicht greifbar Damit kann es nicht mehr funktionieren und bleibt dann lediglich eine Ausrede für schlechte Architektur und mangelnde Dokumentation SWE12 Slide 17

RUP XP RUP versus XP oder RUP kombiniert mit XP? siehe http://www.netobjectdays.org/pdf/00/slides/barchfeld.pdf Einiges spricht für die Kombination: Use cases helfen der Verständigung mit dem Kunden und erzeugen das notwendige fachliche Verständnis für die Programmierer. Kleine Inkremente erhöhen die Planungssicherheit und schaffen Möglichkeiten zu einer adaptiven Vorgehensweise. Code-Unit-Tests sind das Wesentliche, um feststellen zu können, ob Inkremente wirklich Inkremente sind, d.h. nachweisbare Resultate aufweisen. auch hier: Dogmatik schadet! SWE12 Slide 18

SWE12 Slide 19 Am Anfang eines Projekts: Personalorganisation Zusammenstellung von Teams Bereitstellung von benötigten Ressourcen Aufbau einer Organisationsstruktur Zuordnung von Teilaufgaben/Phasen zu Teams oder einzelnen Personen Genaue Festlegung der Aufgaben, Rechte und Pflichten aller am Projekt beteiligten Personen (Zuständigkeiten) Typen von Organisationsstrukturen Klassische hierarchische Struktur Chef-Programmierer-System

SWE12 Slide 20 Personalorganisation Klassische hierarchische Struktur

SWE12 Slide 21 Personalorganisation Klassische hierarchische Struktur Probleme: Projektleiter zu weit von Programmierung entfernt Mehrstufigkeit behindert Kommunikation Aufstieg in Hierarchie bis zur Inkompetenz

SWE12 Slide 22 Chef-Programmierer-System Personalorganisation Verzicht auf Projektleiter, der nicht an Systementwicklung beteiligt ist Einsatz von sehr guten Spezialisten, die mit hoher Eigenverantwortung arbeiten Beschränkung der Teamgröße Zusammensetzung der Teams: Chef-Programmierer Projektassistent Projektsekretär Spezialisten (Systemanalytiker, Programmierer, Testspezialisten)

SWE12 Slide 23 Chef-Programmierer-System Personalorganisation

SWE12 Slide 24 Chef-Programmierer-System Vorteile Personalorganisation Chefprogrammierer kann durch direkte Einbindung Kontrollfunktion besser wahrnehmen Geringere Kommunikationsschwierigkeiten Kleinere (Spezialisten-)Teams sind produktiver Nachteile Beschränkung auf kleine Teams Anforderungen an Chefprogrammierer nahezu unerfüllbar Stellung des Projektsekretärs problematisch

SWE12 Slide 25 2 2 3 3 4 5 Zusammenfassung Software-Engineering Grundlegende Begriffe und Prinzipien Systeme und Modelle, Prinzipien der Abstraktion, Zerlegung und Perspektivenbildung Softwareplanung Lastenheft und Pflichtenheft: Zweck, wesentliche Merkmale, Unterschiede Systemanalyse Prozessorientierte Modellierungsmethoden: Funktionsbaum, Datenflussdiagramm, Entscheidungstabelle/-baum, Abgrenzung zu Kontrollflussdiagrammen Datenflussorientierte Modellierungsmethoden: Entity-Relationship- Modellierung, Objektorientierte Modellierung (UML), wesentliche Begriffe und Prinzipien, Unterschiede, Interpretierung und Modellierung einfacher Beispiele in einer der beiden Modellierungstechniken, Konversionen zwischen diesen Techniken 5 6 Softwareentwurf Abgrenzung zur Systemanalyse, Entwurfsmethoden top-down und bottomup, Leitlinien für die Modularisierung

SWE12 Slide 26 6 7 8 Zusammenfassung Software-Engineering CASE-Tools UML: Unterschiede zwischen Systemanalyse und Softwareentwurf, Klassendiagramme, Use-Case-Diagramme, Sequenzdiagramme, Zustandsübergangsdiagramme, Aktivitätsdiagramme, Interpretation und Modellierung kleiner Beispiele Aris: Aris-Haus mit den wesentlichen Sichten, EPKs (mit Erweiterung), Zusammenspiel von EPKs mit UML-Bausteinen in Aris Eignung von UML und Aris für die verschiedenen Entwicklungsphasen von Software 8 9 Aufwandsabschätzung Zusammenhang von Kosten und Zeit bei Software, verschiedene Messgrößen Basismethoden: Gewichtungsmethode, parametrische Gleichungen, Multiplikatormethode, Analogiemethode, Relationsmethode, Kennzahlenverfahren, Prozentsatzverfahren (mit Einordnung in übergeordnete Ziele) Allgemeine Schätzverfahren: Function-Point-Methode (mit Kenntnis des allgemeinen Verfahrens, Anwendungsmöglichkeiten, Vorteilen und Nachteilen), COCOMO (nur grundsätzliches Prinzip, Bewertung dieser Methode)

SWE12 Slide 27 9 10 11 Zusammenfassung Software-Engineering Qualitätsmanagement Qualität im Wettbewerb mit anderen Entwicklungskriterien, Klassifizierung der verschiedenen Qualitätskriterien für Software: Unterschiede und gegenseitige Widersprüche, statische und dynamische Qualitätssicherungsverfahren Dynamische Verfahren im Detail: Blackbox und Whitebox-Tests, Unterschiede Whitebox-Tests im Detail: Kontrollflussbezogene Verfahren, Überdeckungskriterien, datenflussbezogene Verfahren (defs/uses) Blackbox-Test-Typen: Definitionen und die wesentlichen Vor- und Nachteile 11 12 Projektmanagement Wasserfallmodell, Prototyping, Spiralmodell: Definitionen und die wesentlichen Vor- und Nachteile RUP, XP: Wesentliche Prinzipien, Unterschiede Vorteile vom Chefprogrammiererorganisation zur streng hierarchischen Organisation

SWE12 Slide 28 Das war die Vorlesung Software-Engineering: Reaktion auf die Kritik und Anregungen