Softwarepraktikum. Gernot A. Fink SS 2005



Ähnliche Dokumente
Software Systems Engineering

Softwaretechnik. Fomuso Ekellem WS 2011/12

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


Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Software Engineering

Kapitel 2: Der Software-Entwicklungsprozess

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

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

.. für Ihre Business-Lösung

Informationswirtschaft II Rational Unified Process (RUP)

Informationswirtschaft II

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

IKP Uni Bonn Medienpraxis EDV II Internet Projekt

Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Virtuelle Forschungsumgebungen Dozent: Prof. Dr. phil.

Einführung und Motivation

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

1. Grundbegriffe des Software-Engineering

Agile Software Entwicklung. Agile Software Entwicklung, DHBW Karlsruhe, SS-2009 Collin Rogowski

Softwareentwicklungsprozess im Praktikum. 23. April 2015

16 Architekturentwurf Einführung und Überblick

Agile Software Development

Übungsaufgaben zum Software Engineering: Management

GPP Projekte gemeinsam zum Erfolg führen

Integrierte IT Portfolioplanung

Informationssystemanalyse Grundlagen 1 1

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

Fragebogen: Abschlussbefragung

Wir beraten Sie. Wir unterstützen Sie. Wir schaffen Lösungen. Wir bringen Qualität. Wir beraten Sie. Wir unterstützen Sie. Wir schaffen Lösungen

Kompetenzfeld Software- und Automatisierungstechnik

Übungsklausur vom 7. Dez. 2007

Vgl. Kapitel 5 aus Systematisches Requirements Engineering, Christoph Ebert

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

9.6 Korrekturmaßnahmen, Qualitätsverbesserung

Software-Entwicklungsprozesse zertifizieren

Am Beispiel Pair-Programming

Content Management System mit INTREXX 2002.

Realisierung der Anbindung an den Handelsplatz Koeln.de Leitfaden zur Projektplanung bei Lieferanten

ÜBUNG. Einführung in das IT- Projektmanagement WS 2012/13. Dr. The Anh Vuong

Agile Softwareentwicklung

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

Systemdenken und Gestaltungsmethodik Einführung und Grundlagen II

Prozess-Modelle für die Softwareentwicklung

Projektstart für Auftraggeber und Entscheider. Bern, 27. August 2013

Regulatorische Anforderungen an die Entwicklung von Medizinprodukten

Einführung in die Informatik

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

PRÜFUNG FÜR ELEKTROINGENIEURE. Softwaretechnik I. Musterlösung SS Ohne Gewähr -

Software Engineering Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien, Methoden und Werkzeugen

Softwaretechnik (Allgemeine Informatik) Überblick

Software- Entwicklungsaktivitäten und Vorgehensmodelle. Lebenszyklusmodell

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

ZuuL - Entwicklung eines Adventures

[Customer Service by KCS.net] KEEPING CUSTOMERS SUCCESSFUL

ecambria experts IT-Projekte in der Krise Ursachen und Vermeidungsstrategien aus Sicht eines Gerichtssachverständigen

StuPro-Seminar Dokumentation in der Software-Wartung. StuPro-Seminar Probleme und Schwierigkeiten in der Software-Wartung.

Das Wasserfallmodell - Überblick

Fragebogen zur Anforderungsanalyse

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

WSR Softwarewartung und Prozessmodelle in Theorie und Praxis. Urs Kuhlmann Andreas Winter

Eberhard Lehmann: Projekte im Informatik-Unterricht Software Engineering, Ferd. Dümmlers Verlag, Bonn Inhaltsverzeichnis.

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

Gesundheitsförderliche Mitarbeitergespräche (smag) Quelle: GeFüGe-Projekt, bearbeitet durch Karsten Lessing, TBS NRW

WollCo Wolfgang Kohl Consulting. Nachhaltige Projektumsetzung nicht nur in der Verantwortung von Geschäftsführen / Unternehmern

Projekt- Management. Landesverband der Mütterzentren NRW. oder warum Horst bei uns Helga heißt

Erfahrungen mit Hartz IV- Empfängern

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

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

Wann ist eine Software in Medizinprodukte- Aufbereitungsabteilungen ein Medizinprodukt?

Übungen zur Softwaretechnik

Software Engineering. Dokumentation! Kapitel 21

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Requirements Engineering für IT Systeme

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

IHRE ZIELE SIND UNSERE HERAUSFORDERUNG FÜR INDIVIDUELLE LEISTUNGEN UND PERFEKTE LÖSUNGEN!

Das chronische Problem der Anforderungsanalyse und die Frage: Fehler vermeiden oder früh entdecken? Oral Avcı ZU KÖLN

Software Engineering. 3. Analyse und Anforderungsmanagement

Studieren- Erklärungen und Tipps

Klausur Software Engineering für WI (EuI)

Wirtschaftsingenieurwesen (Informationstechnik) Modulname. Programmierung II / Software Engineering II Modulnummer

Klausur Software-Engineering SS 2005 Iwanowski

Projektarbeit Eberhard Neef Nee Seite 1

SWE12 Übungen Software-Engineering

Typisierung des Replikationsplan Wirries, Denis Datenbankspezialist

Wir erledigen alles sofort. Warum Qualität, Risikomanagement, Gebrauchstauglichkeit und Dokumentation nach jeder Iteration fertig sind.

Formularsammlung. zum methodischen Leitfaden. für eine effiziente Projektarbeit in. virtuellen Teams mit teamspace

Softwareentwicklung aus Sicht des Gehirns

Projektmanagementsoftware: Standard vs. Individual

Checkliste: Projektphasen

Die Softwareentwicklungsphasen!

Generatives Programmieren

Qualitätsmanagement im Projekt

Fragebogen ISONORM 9241/110-S

Einführung in. Logische Schaltungen

Microsoft SharePoint 2013 Designer

Forschungsprämie. Ing. Mag. Dr. Herbert Braunsperger

Einkaufsführer Hausverwaltung Was Sie bei Suche und Auswahl Ihres passenden Verwalters beachten sollten

Leseauszug DGQ-Band 14-26

IT OUTSOURCING. Wie die IT durch Transparenz zum internen Dienstleister wird. Herford, , Steffen Müter

Maintenance & Re-Zertifizierung

Transkript:

Softwarepraktikum Gernot A. Fink SS 2005 Einführung Wichtige Grundbegriffe Was ist Softwareengineering? Software- und Projektentwicklung Anfordernugen and Softwareentwicklung Softwareprozesse und Vorgehensmodelle Themenüberblick

Software... Engineering? Software = Computer Programm(e)? Gernot A. Fink > 1

Software... Engineering? Software = Computer Programm(e)? Nein: Umfaßt Dokumentation als integralen Bestandteil! Gernot A. Fink > 1

Software... Engineering? Software = Computer Programm(e)? Nein: Umfaßt Dokumentation als integralen Bestandteil! Ist Programmieren nicht eigentlich eher Kunst? Gernot A. Fink > 1

Software... Engineering? Software = Computer Programm(e)? Nein: Umfaßt Dokumentation als integralen Bestandteil! Ist Programmieren nicht eigentlich eher Kunst? Teilweise, aber Softwareentwicklung [im Team] ist ingenieurmäßige Leistung! Softwareengineering Gernot A. Fink > 1

Software... Engineering? Software = Computer Programm(e)? Nein: Umfaßt Dokumentation als integralen Bestandteil! Ist Programmieren nicht eigentlich eher Kunst? Teilweise, aber Softwareentwicklung [im Team] ist ingenieurmäßige Leistung! Softwareengineering Ist Softwareentwicklung sich selbst genug? Gernot A. Fink > 1

Software... Engineering? Software = Computer Programm(e)? Nein: Umfaßt Dokumentation als integralen Bestandteil! Ist Programmieren nicht eigentlich eher Kunst? Teilweise, aber Softwareentwicklung [im Team] ist ingenieurmäßige Leistung! Softwareengineering Ist Softwareentwicklung sich selbst genug? Nein: Ist eingebettet in Systementwicklung. (z.b. Gepäckabfertigung am Flughafen: Nur Teil ist Software) Gernot A. Fink > 1

Software... Engineering? Software = Computer Programm(e)? Nein: Umfaßt Dokumentation als integralen Bestandteil! Ist Programmieren nicht eigentlich eher Kunst? Teilweise, aber Softwareentwicklung [im Team] ist ingenieurmäßige Leistung! Softwareengineering Ist Softwareentwicklung sich selbst genug? Nein: Ist eingebettet in Systementwicklung. (z.b. Gepäckabfertigung am Flughafen: Nur Teil ist Software) Findet im Rahmen eines Projekts statt! Projekt definiert organisatorische Rahmenbedingungen Gernot A. Fink > 1

Softwareengineering Definitionsvorschläge (1): The practical application of scientific knowledge in the design an construction of computer programs and the associated documentation required to develop, operate, and maintain them. [B. Boehm, 1979] Gernot A. Fink < > 2

Softwareengineering Definitionsvorschläge (1): The practical application of scientific knowledge in the design an construction of computer programs and the associated documentation required to develop, operate, and maintain them. [B. Boehm, 1979] Wissenstransfer in Richtung Praxis Software ist nicht nur Computer-Programme, sondern auch Dokumentation! Lebenszyklus von Software Gernot A. Fink < > 2

Softwareengineering II Definitionsvorschläge (2): Softwaretechnik: Zielorientierte Bereitstellung und systematische Verwendung von Methoden, Konzepten, Notationen und Werkzeugen für die arbeitsteilige, ingenieurmäßige Entwicklung und Anwendung von umfangreichen Softwaresystemen. Zielorientiert bedeutet dies die Berücksichtigung von Kosten, Zeit, Qualität [H. Balzert, 1998] Gernot A. Fink < > 3

Softwareengineering II Definitionsvorschläge (2): Softwaretechnik: Zielorientierte Bereitstellung und systematische Verwendung von Methoden, Konzepten, Notationen und Werkzeugen für die arbeitsteilige, ingenieurmäßige Entwicklung und Anwendung von umfangreichen Softwaresystemen. Zielorientiert bedeutet dies die Berücksichtigung von Kosten, Zeit, Qualität [H. Balzert, 1998] Softwaretechnik ˆ= Software Engineering SE bedient sich konkreter Methoden und Werkzeuge SE erfolgt i.d.r. im Team SE ist zielorientiert SE findet unter Randbedingungen statt (Kosten etc.) definiert durch Projektkontext Gernot A. Fink < > 3

Softwareengineering III Definitionsvorschläge (3): The application of a systematic, disciplined, quantifiable approach to the development, operation, maintainance of software. [IEEE, 1990] IEEE = The Institute of Electrical and Electronics Engineers (Berufsverband) Gernot A. Fink < > 4

Softwareengineering III Definitionsvorschläge (3): The application of a systematic, disciplined, quantifiable approach to the development, operation, maintainance of software. [IEEE, 1990] Erfolg von SE muss messbar sein SE setzt berufliche und ethische Verantwortung der Softwareentwickler voraus! Code of Ethics von IEEE/ACM IEEE = The Institute of Electrical and Electronics Engineers (Berufsverband) Gernot A. Fink < > 4

Der Projektbegriff Projekt = innovatives, komplexes Vorhaben mit definierten Randbedingungen innovativ: keine reine Wiederholung früherer Arbeiten, ggf. müssen unbekannte und neuartige Probleme gelöst werden komplex: wird i.d.r. im Team durchgeführt, ggf. mit Beteiligung von Fachleuten aus unterschiedlichen Disziplinen definierte Rahmenbedingungen: Projektziel, Dauer, Kosten, Ressourcen Projekt hat klar definiertes Ziel Vorhaben ist zeitlich begrenzt Projekte haben eigenes Budget Zur Behandlung der Komplexität kommen bestimmte Methoden zum Einsatz. Projekte sind mit einem besonderen Risiko verbunden. (wegen Einmaligkeit ) Gernot A. Fink < > 5

Spannungsfeld von Projekten Unterschiedliche Sichten auf Projekte: betriebswirtschaftlich Projekt soll im Gleichgewicht gehalten werden zwischen: verfügbarem Kostenrahmen vorgegebener Zeit und zu erzielender Qualität des Produkts. technisch Lösung hat guten Anwendungsbezug ist flexibel und wartbar. Realisierung entspricht dem Stand der Technik soziologisch Wie kann erforderliche Leistung mit einem Team erreicht werden? (Balance zwischen Teamgeist und Selbstverwirklichung ) Gernot A. Fink < > 6

Größenordnungen von Projekten Größe = Gesamtaufwand in Personenmonaten zur Umsetzung der Anforderungen Größe Beschreibung Beispiel Klein Mittel Groß wenige Personen für einen/wenige Anwender ein Team für einen Kunden und einige Anwender(-gruppen) viele Personen für sehr viele sehr verschiedene Anwender kleiner Web-Auftritt (z.b. eigene Home-Page), Terminverwaltung (für einzelnen Benutzer) e-shop, Terminverwaltung für ein Team (vernetzt!) Internationale Standardapplikationen, konzernweite Softwarepakete Gernot A. Fink < > 7

Größenordnungen von Projekten II Programming-in-the-Large vs. Programming-in-the-Small Klein Programme bis wenige hundert Zeilen Für den Eigengebrauch Vage Zielsetzung, Produkt ist Spezifikation Groß Längere Programme Für den Gebrauch durch Dritte Genaue Zielbestimmung d.h. Spezifikation erforderlich 1 Schritt: Lösung wird direkt programmiert Mehrere Schritte erforderlich Validierung am Endprodukt Validierung jedes Einzelschritts erforderlich Ein Entwickler kein Koordinationsaufwand Koordination und Kommunikation im Team erforderlich Komplexität klein Strukturierung einfach Komplexität groß Maßnahmen zur Strukturierung und Modularisierung des Problems erforderlich I.d.R. keine Dokumentation Dokumentation dringend erforderlich für Betrieb/Wartung Keine Planung bzw. Projektorganisation Planung und Projektorganisation zwingend erforderlich für zielgerichtete, wirtschaftliche Entwicklung Gernot A. Fink < > 8

Projektentwicklungszyklus Initialisierung / Projektanbahnung Angebotslegung und Auftragserteilung Vorprojekt (Pilotstudie) Abschätzung der Machbarkeit, des Aufwands Produkterstellung Basisprodukt Gliederung des Projektablaufs, Meilensteintechnik Adaptierung und Optimierung Eingehen auf Erweiterungs-/Änderungswünsche ausgehend vom Basisprodukt Nutzung Integration in Organisationsstruktur des Kunden, Schulung, Wartung Lebensdauer von Software: 10-15 Jahre (von Hardware < 5 Jahre) Gernot A. Fink < > 9

Softwareanforderungen Ziel von SE ist es, gewisse Anforderungen durch das entwickelte Softwareprodukt zu erfüllen. Werden auf abstrakter Ebene durch den Kunden vorgegeben...... und im Prozess der Anforderungsanalyse konkretisiert. Man unterscheidet: Funktionale Anforderungen Nicht-funktionale Anforderungen Problembereichsanforderungen (Unterscheidung/Einteilung nicht notwendigerweise eindeutig!) Gernot A. Fink < > 10

Softwareanforderungen II Funktionale Anforderungen Aussagen über Leistungen bzw. Verhalten des Systems Auch: Was das System nicht tun soll! Nicht-funktionale Anforderungen Beschränkungen der durch das System angebotenen Funktionalität Produktanforderungen, z.b. Reaktionszeit, Zuverlässigkeit, Benutzerfreundlichkeit Unternehmensanforderungen, z.b. Entwicklungsvorschriften Externe Anforderungen, z.b. zum Datenschutz Problembereichsanforderungen ergeben sich aus der konkreten Anwendung und nicht primär aus der Verwendung des Systems (funktional oder nicht-funktional) Gernot A. Fink < > 11

Softwareprozesse und Vorgehensmodelle Softwareprozess: Satz von Aktivitäten, zugehörigen Methoden und ihrem Ablauf mit dem Ziel der Erstellung oder Weiterentwicklung von Software Softwareprozesse umfassen immer folgende grundlegenden Abläufe: 1. Softwarespezifikation: Definiert Funktion und Beschränkung von Software 2. Softwareentwurf und -implementierung: Umsetzung der Spezifikation in ein konkretes Softwaresystem 3. Softwarevalidierung: Überprüfung, ob Anforderungen (des Kunden) erfüllt sind 4. Weiterentwicklung: Anpassung an veränderte Bedürfnisse (des Kunden) E Automatisierung der Softwareerstellung scheitert, da Softwareentwicklung Kreativität (im Entwerfen) erfordert! E Es gibt keinen idealen Softwareprozess! Gernot A. Fink < > 12

Vorgehensmodelle Vorgehensmodell: bestimmt die Abfolge der einzelnen Phasen in einem Softwareprozess Beispiele für Vorgehensmodelle (1): Build-and-Fix-Cycle einfachstmögliches Vorgehen einzelner Programmierer realisiert Software nach eigener Idee System wird entwickelt bis es eigenen Ansprüchen genügt E Keine Dokumentation, kein strukturiertes Vorgehen, keine Einteilung in Arbeitsschritte E nur bei begrenztem Softwareumfang, Wartung durch Außenstehende praktisch unmöglich! Gernot A. Fink < > 13

Vorgehensmodelle II Grundlegende Idee hinter Vorgehensmodellen: Software-Life-Cycle Idee Bewertung Betrieb Beginn Abnahme Definition Produktion Entwurf mindestens einmalige Durchführung der Arbeitsschritte E keine Möglichkeit für Schritte zurück Gernot A. Fink < > 14

Vorgehensmodelle III Beispiele für Vorgehensmodelle (2): Wasserfallmodell einzelne Rückwärtsschritte innerhalb der Phasen möglich weit verbreitetes Modell Analyse Entwurf Implementierung gut geeignet, wenn Arbeitsschritte eines Projekts klar voneinander getrennt werden können Test Betrieb Gernot A. Fink < > 15

extreme Programming (XP) Softwareprozess ( leight weight ), hauptsächlich von Kent Beck entwickelt Grundidee: Anerkannte Vorgehensweisen/Methoden ins Extreme übersteigern XP definiert Werte, grundlegende Aktivitäten und Methoden Werte: Kommunikation, Einfache Lösungen, Feedback, Mut(sic!) Aktivitäten: Coding, Testing, Listening, Designing Methoden, u.a: Pair-Programming Collective Code-Ownership Refactoring On-Site Customer 40-Hour Week zur Bezugnahme im Rahmen dieser Veranstaltung Gernot A. Fink < > 16

Themenüberblick Zielerhebung und Anforderungsanalyse (Anwendungsfälle ˆ= Use-Cases) Softwareentwurf (Architektur, Entwurfsmuster) Planung (insbes. Zeitplanung) Qualitätssicherung, Testen Organisationsformen, Projektgruppen Rückblick extreme Programming (XP) Gernot A. Fink < 17