Software Engineering und Projektmanagement



Ähnliche Dokumente
EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick

Informationswirtschaft II Rational Unified Process (RUP)

Informationswirtschaft II

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek

Vgl. Kapitel 5 aus Systematisches Requirements Engineering, Christoph Ebert

Software-Engineering

Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML)

Vorlesung Programmieren

Kapitelübersicht. Was ist So#waretechnik? Historische Entwicklung der So9waretechnik Prinzipien, Methoden, Werkzeuge. Was bedeutet Objektorien+erung?

Grundlagen Software Engineering

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

Sind Prozessmanagement-Systeme auch für eingebettete Systeme einsetzbar?

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

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

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

Was ist Software-Architektur?

BPMN. Suzana Milovanovic

RUP Analyse und Design: Überblick

Software Engineering

Softwareentwicklungspraktikum Sommersemester Grobentwurf

Software Engineering in der Praxis

Software Engineering in der Praxis

Guido de Melo Fachvortrag, Uni Ulm UML 2.0. Für den Einsatz in der Praxis

Requirements Engineering für IT Systeme

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

SDD System Design Document

Übungsklausur vom 7. Dez. 2007

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich. Softwaretechnik I

Software Engineering. Fakultät Elektrotechnik Bachelor-Studiengänge, 4. Semester Prof. Dr.-Ing. Dagmar Meyer

Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun. Java Projekt. Schiffe Versenken mit GUI

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail:

Requirements Engineering I

Übung 6: Feinentwurf. Prof. Dr. Dr. h.c. Manfred Broy Dr. Herbert Ehler, Martin Feilkas 6. Juli 2006 Bernd Spanfelner, Sebastian Winter

Bundeskanzlei BK Programm GEVER Bund. als Basis für GEVER. 29. November 2012

Softwareentwicklungspraktikum Sommersemester Feinentwurf

Softwaretechnik (Allgemeine Informatik) Überblick

Software-Architektur. Spektrum k_/takademischht VERLAG

Objektorientiertes Software-Engineering

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2

Vortrag von: Ilias Agorakis & Robert Roginer

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

Unified Modeling Language (UML)

Über den Unterschied zwischen Business Analysis und Requirements Engineering & Management

Hochschule Darmstadt Fachbereich Informatik. Softwaretechnik II. 4.1 Darstellung der Architektur

Softwaretechnik. Fomuso Ekellem WS 2011/12

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

Übungen zu Softwaretechnik

BPM im Kontext von Unternehmensarchitekturen. Konstantin Gress

Objektorientierte Programmierung OOP

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

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

Übungen zur Softwaretechnik

Kapitel 2: Der Software-Entwicklungsprozess

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing

Referent: Alessandro Arrigo AAM1. Professor: Prof. Dr. Heindl. Furtwangen,

Übersetzung von UML-Software-Spezifikationen in Simulationsmodelle

8 Design Patterns. Events

16 Architekturentwurf Einführung und Überblick

Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht

Dreibeinige Stühle kippeln nicht Fachbereich und IT als gemeinsames Projekt-Team

4. AuD Tafelübung T-C3

Klassendiagramm. (class diagram)

Modellierungstechniken im Softwaredesign. Praxisprojekt [ai] Control WS 2011/2012 Lara Baschour und Anne Heiting

Abschnitt 16: Objektorientiertes Design

Grundlagen der Softwaretechnik

Vorlesung Donnerstags, bis Uhr, HS12 Übung Dienstags, bis Uhr 4-5 ÜbungsbläMer (Programmieraufgaben)

Die Softwareentwicklungsphasen!

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0

<thema> Projektdokumentation zum Softwareentwicklungsprojekt. (Entwicklerdokumentation) 28. Mai 2015

Model Driven SOA Modellgetriebene Entwicklung von SOA Anwendungen. OOP München,

Service. Was ist eine Enterprise Service Architecture und wie reagiert SAP. Warum Monitoring in ZENOS, was monitort die XI?

Java Enterprise Architekturen Willkommen in der Realität

Software Engineering. Bibliographisches Institut & F. A. Brockhaus AG, Mannheim; Spektrum Akademischer Verlag GmbH, Heidelberg, 2003

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

Software Engineering. 3. Anforderungsanalyse. Franz-Josef Elmer, Universität Basel, WS 2006/07

EPK Ereignisgesteuerte Prozesskette

SWT II Projekt. Chat - Anwendung. Pflichtenheft 2000 SWT

Inhalt. Fragestellungen. ...we make the invisible visible... Analysen und deren Anwendung Erfahrungen

Themen. Web Services und SOA. Stefan Szalowski Daten- und Online-Kommunikation Web Services

7. Analyse-Phase: Datenmodellierung Software Engineering

Sof o t f waretechn h o n l o og o i g en n f ü f r ü v e v rteilte S yst s eme Übung

Beschreibung des MAP-Tools

Enterprise Architecture Management (EAM)

BIF/SWE - Übungsbeispiel

ZENITY - Die Software für Ihre Unternehmens-Releaseplanung

Klausur Software Engineering für WI (EuI)

SEQUENZDIAGRAMM. Christoph Süsens

Softwarearchitekturen I Softwareentwicklung mit Komponenten

1 Mathematische Grundlagen

FUTURE NETWORK REQUIREMENTS ENGINEERING

Horus ISO QM Plug-In. Nachhaltige Unternehmensentwicklung auf Basis internationaler Standards. Warum ISO Qualitätsmanagement?

Praktikum Grundlagen der Programmierung. Dokumentation. Dr. Karsten Tolle

Klassendiagramm. Kurzer Überblick über UML - Stand BlaBla

Transparente Hausverwaltung Marketingschmäh oder doch: eine neue Dimension der Dienstleistung?

Some Software Engineering Principles

Softwareanforderungsanalyse

Transkript:

Software Engineering und Projektmanagement Motivation! Fachliche Sicht trifft auf technische Realisierung Entwurf 2009W - 5. November 2009 Andreas Mauczka Email: andreas.mauczka@inso.tuwien.ac.at Web: http://www.inso.tuwien.ac.at/lectures/! Abbildung der Anforderungen (Funktional und nicht- Funktional)! Ausgangspunkt meistens Pflichtenheft! Liefert Bauplan für Gesamt-System! Spezifiziert Struktur und Verhalten der Software und ihrer Komponenten! Entwurf ist ein Prozess zur Lösung von Problemen und dem Planen einer Software Lösung! Definition: wikipedia.org INSO - Industrial Software Institut für Rechnergestützte Automation Fakultät für Informatik Technische Universität Wien 2 Übersicht Stellenwert des Entwurfs und der Architektur! Erläuterung der unterschiedlichen Aspekte von Architekturen! Welche Sichtweisen von Architekturen gibt es?! Transformation der Anforderungen in eine Architektur! Entwicklung der Architektur! Wie hat sich die Softwarearchitektur mit der Zeit verändert?! Objektorientierter Entwurf und Service-orientierter Entwurf! Wie modelliere ich entsprechend?! Übersicht über Patterns! Was ist die Motivation hinter Patterns, wo könnten Patterns in Projekten eingesetzt werden?! Ziele und Aufgabe des Entwurfs! Entwurf eines Systems, das die Anforderungen des Kunden optimal beschreibt! Sorgt für Umsetzung der nicht-funktionalen und funktionalen Anforderungen! Beschreibung des Systems auf technischer Ebene! Ausgangspunkt für Implementierung! Festlegung auf Architektur des Systems! Auf Bausteinebene! Auf Gesamtsystemebene! Kommunikationsmittel zwischen den Projekt-Stakeholdern! Aufteilung des Systems in funktional getrennte Blöcke! Notwendig um Anforderungen an Skalierbarkeit und Wartbarkeit zu erfüllen 3 4

Beispiele für den Entwurf aus Vorgehensmodellen Beispiele für den Entwurf aus Vorgehensmodellen! V-Modell! Rational Unified Process! Analysis & Design! Liefert Bauplan für Software! Analysis model! Architectural model! Design model! Iteratives Vorgehensmodell! Phasen (Analyse, Entwurf, Implementierung) werden wiederholt durchlaufen!! Quelle:! http://www.cio.bund.de/cln_094/de/it-methoden/v-modell_xt/v-modell_xt_node.html Quelle: ibm.com 5 6 Beispiele für den Entwurf aus Vorgehensmodellen Grundlagen der Softwarearchitekturen! Unbenanntes Vorgehensmodell! Leitet Pflichtenheft (Software Requirements Specification) in Grob- und Feinspezifikation über! Tasks:! Erstellen Architekturmodell! Erstellen Datenmodell! Erstellen Grob- und Feinspezifikation! Entwurf der einzelnen Komponenten! Definition Architektur! Eine Architektur ist eine Beschreibung von System-Strukturen (Datenströme, Modulare Strukturen, Prozess Strukturen usw.) [Bass et al. (1998)]! Eine Architektur ist das erste Artefakt zur Analyse der Einhaltung von Qualitätseigenschaften [Bass et al. (1998)]! Eine Architektur ist eine Beschreibung der Beziehung von Komponenten und Verbindungen [Bass et al. (1998)]! Eine Architektur ist die fundamentale Organisation eines Systems, verkörpert durch seine Komponenten, deren Beziehungen und deren Umwelt, sowie die Prinzipien hinter dem Design und der Evolution des Systems [IEEE Standard 1471 (2000)] 7 8

Grundlagen der Softwarearchitekturen Grundlagen der Softwarearchitekturen! Strategischer Entwurf! Architektur im Großen! Entwurf auf Systemebene! Entscheidungen über Technologie, Gesamtaufbau des Systems, etc.! Taktischer Entwurf! Architektur im Kleinen! Entwurf im klassischen Software Engineering Sinne (auf Bausteinebene, nicht auf Systemebene)! Entscheidungen über Aufbau der einzelnen Bausteine (z.b. Entwurf der Klassen, usw.)! Von der Anforderung zur Architektur! Architektur ist der Hauptträger der Qualitäten eines Systems diese sind:! Performanz! Veränderbarkeit! Sicherheit! Ziel des Entwurfs: Abbildung eines Systems, das Anforderungen optimal beschreibt! Zwei Arten von Anforderungen (funktional und nicht-funktional)! Nicht-funktionale Anforderungen (z.b. Zuverlässigkeit, Benutzbarkeit, etc.) sind Faktoren hinter strategischem Entwurf! Funktionale Anforderungen (z.b. Verarbeitung von Eingaben, Erstellen von Ausgaben, etc.) sind Faktoren hinter taktischem Entwurf! Voraussetzungen um Anforderungen in Architektur umzusetzen! Erfahrung des Softwarearchitekten! Unterstützung durch Auftraggeber 9 10 Entwicklung der Softwarearchitektur Entwicklung der Softwarearchitektur! Faktoren zur Weiterentwicklung von Softwarearchitektur! Prozedural zu objektorientierten Programmiersprachen! Vom Großcomputer zu Heimcomputer! Durch objektorientierte Programmiersprachen Trend von monolithischen Applikationen zu modularen Systemen! In den 80er, 90er und frühen 2000er Jahren " hauptsächlich Rich-Client-Applikationen! Durch PHP, Java Server Pages und ASP.net " Trend zu Webapplikationen! Heutzutage Service Oriented Architecture (SOA) Beispiele für Softwarearchitekturen: 2-Tier Architektur Service-orientierte Architektur! Historische Softwarearchitekturen! 2-Tier Architekturen! 3-Tier Architekturen! Service-orientierte Architekturen 3-Tier Architektur 11 12

State-of-the-Art Architektur State-of-the-Art Architektur! Service-orientierte Architektur! Geschäftsprozess-orientiert! Anwendungen werden durch mehrere Services gelöst! Services in einer Anwendung sollen auch aus anderen Anwendungen heraus aufgerufen werden können! Reuse! Modularisierung! Zusammenstellung von Services in bestimmten Abläufen zur Umsetzung von Geschäftsprozessen (Orchestrierung)! Services existieren auf mehreren Abstraktionsebenen (Business Service, Component Service, technisches Service, usw.)! Beschreibt eine Architektur, keine Technologie (z.b. können Webservices verwendet werden zur Realisierung einer SOA aber auch z.b. CORBA)! Paradigmen der Service-orientierten Architektur! Loose Coupling! Niedrige Kopplung der Services ermöglicht hohen Reuse und Flexibilität! Abstraktion! Reduktion von Neuentwicklungen Spannungsfeld Abstraktion vs. Technische Anforderungen (z.b. KÖNNEN manche technische Services einfach nicht abstrakt gelöst werden)! Standardisierung! Standardisierung erlaubt die Zusammenarbeit von Services! Composable! Standardisierte Services können zu Komponenten zusammengefasst werden 13 14 BPM und SOA BPM und SOA! Im Service-orientierten Entwurf wird ein Schritt in einem Geschäftsprozess extrahiert und gekapselt! dabei handelt es sich um ein sog. Business Service! Anmerkung: Business Services können auch Geschäftsziele oder KPI (Key Performance Indicator) realisieren und müssen keinen Schritt im Geschäftsprozess darstellen z.b. Kostenreduktion einen Report zu generieren kann auch dazu dienen ein Business Service zu definieren! Zusammenhang von Business Process Modelling (BPM) und einer SOA! Geschäftsprozess A und B greifen auf das gleiche Business Service Update Report zu! Update Report wird in Form von zwei technischen Services gelöst! Service-orientierte Architekturen sind business driven, d.h. sie sind an Geschäftsprozesse angelehnt! Business Process Modelling (BPM) und SOA sind eng miteinander verknüpft Anwendungen werden maßgeblich von der Geschäftsprozess-Modellierung beeinflusst 15 16

! Objektorientiertes Design! Erweiterung der Diagramme und Modelle aus der objektorientierten Analyse! Möglichst genaue Abbildung des später zu implementierenden Systems! Kein Anspruch auf Vollständigkeit! Verwendet folgende Diagramme:! Klassendiagramme Festlegung der Struktur! Zustands- und Sequenzdiagramme Verhalten des Systems! Komponentendiagramme Abbildung der Systemkomponenten und deren Zusammenhang! Klassendiagramm im Mittelpunkt! Als Notation wird UML verwendet! Vorgehensweise im objektorientierten Entwurf (nach [Booch (1994)])! Klassen und Objekte auf jeder Abstraktionsebene identifizieren! Semantiken zwischen Klassen und Objekten festlegen! Beziehungen der Klassen und Objekten identifizieren! Schnittstellen und Implementationen der Klassen spezifizieren! Aufgeführte Schritte teilweise schon in der Phase Analyse durchgeführt! Folgende zwei Punkte sollen erfüllt sein! Festlegen einer Architektur für die Implementierung (logische und physikalische Architektur)! Policies festlegen für die Systemkomponenten 17 18! Unified Modeling Language (UML) zur Unterstützung des objekt-orientierten Entwurfs! Modellierungssprache der OMG für komplexe und große Systeme! Basiert auf objekt-orientierter Entwicklung und Design! Sinnvolle Nutzung der UML " gute Dokumentationsbasis! Zwei Arten von Modellen! Verhaltensmodelle beschreiben dynamisches Verhalten, z.b. Aktivitätsdiagramme, Zustandsdiagramme, Sequenzdiagramme! Strukturmodelle beschreiben statische Teile des Systems, z.b. Klassendiagramm, Komponentendiagramm, Verteilungsdiagramm! Beispiel für statisches Diagramm! Klassendiagramm! Beschreibt die Struktur eines Systems in Form von Klassen! Eine Klasse ist eine Zusammenfassung gleicher Objekte in Bezug auf Eigenschaften und Fähigkeiten 19 20

! Beispiel für dynamisches Diagramm! Zustandsdiagramm! Beschreibt mögliche Systemzustände und bildet Zustandsänderungen sowie auslösende Ereignisse ab! Abbildung in Form eines endlichen Zustandsautomaten! Kontrollfluss am Beispiel Stair vs. Fork! Fork Zentrales Objekt übernimmt Kontrolle! Stair Kapselung in den Schritten Fork Stair 21 22! Serviceorientiertes Design! Umspannt mehrere Abstraktionsebenen! Service Layer! Component Layer! Class Layer! Unterschiedliche Notationen je Layer! Z.B. BPMN (Service Layer), Komponentendiagramme (Component Layer), UML (Class Layer)! Mapping der Business Services auf Software Services! Aufteilung der Software Services in Komponenten! Aufteilung der Komponenten in Klassen 23 24

Patterns allgemein Architekturmuster! Patterns stellen allgemeine Lösungsstrategien für widerkehrende Probleme der Softwareentwicklung dar! Abstrakt! Weitest-gehend technologie-unabhängig! Wesentlicher Input in Entwurfsentscheidungen! Zwei Arten von Patterns nach Abstraktionsebene! Architekturpatterns! Muster auf architektonischer Ebene (Makroarchitektur-Ebene)! Designpatterns! Muster auf Klassen-Ebene (Mikroarchitektur)! Pattern Language! Sammlung von Entwurfsmustern! Schaffung einer einheitlichen Sprache für Probleme und Lösungen! Architektur-Patterns! Schablonen für konkrete Softwarearchitekturen! Spezifizieren systemweite, strukturelle Eigenschaften einer Anwendung! Großer Einfluss auf die Architektur der eigenen Subsysteme! Fundamentale Designentscheidung! Literaturhinweis: Pattern-oriented Software Architecture Buschmann et al. (1996)! Bekannte Architekturmuster! Model-View-Controller! Pipes and Filters! Layered Architecture 25 26 Architekturmuster Architekturmuster! Model View Controller! Szenario: Interaktive Anwendungen mit einer flexiblen Schnittstelle zwischen Mensch und Computer! Problem: GUI wird oft geändert! Lösung: Aufteilung in Verarbeitung, Output und Input! Model kapselt Daten und Funktion! View stellt Informationen dar! Controller empfängt Events! Layered Architecture! Funktionell getrennte Ebenen! Eine Ebene kommuniziert nur mit der darunter liegenden Ebene! Eine Ebene kommuniziert nicht mit der darüber liegenden Ebene! Eine Ebene hat keine Abhängigkeiten auf die darüber liegenden Ebene! Kommunikation der Ebenen mittels Interfaces! Exceptions werden nach Ebene gekapselt 27 28

Architekturmuster Zusammenfassung! Designpatterns! Beschreiben wiederholt auftretende Struktur von miteinander kommunizierenden Komponenten! Dienen dazu ein allgemein definiertes Problem innerhalb eines bestimmten Kontexts zu lösen! Patterns auf Abstraktionsebene unter Architekturpatterns! Ein Beispiel zu Designpatterns in Einheit Implementierung! Historische Entwicklung des Entwurfs von Softwaresystemen! 2-Tier " 3-Tier " Service-orientierte Architektur! Im Entwurf werden Entscheidungen zur Mikro- und Makroarchitektur getroffen (taktisch vs. strategischer Entwurf)! Mehrere Sichten und Abstraktionsebenen einer Architektur, je nach betrachtender Rolle! Anforderungen aus der Analysephase müssen in einen Entwurf transformiert werden! Architekturpatterns sollen den Entwurf vereinfachen und bekannte Probleme effizient lösen 29 30