Software-Entwicklung



Ähnliche Dokumente
Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

SEP 114. Design by Contract

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

Erfahrungen mit Hartz IV- Empfängern

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

Studieren- Erklärungen und Tipps

Die Gesellschaftsformen

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

Softwareentwicklungsprozess im Praktikum. 23. April 2015

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

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

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

Die Softwareentwicklungsphasen!

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Alle gehören dazu. Vorwort

Was ist clevere Altersvorsorge?


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

Software Systems Engineering

Erfolgreiche Webseiten: Zur Notwendigkeit die eigene(n) Zielgruppe(n) zu kennen und zu verstehen!

Glaube an die Existenz von Regeln für Vergleiche und Kenntnis der Regeln

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

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

Umfrage. Didaktischer Kommentar. Lernplattform

Step by Step Webserver unter Windows Server von Christian Bartl

Taking RM Agile. Erfahrungen aus dem Übergang von traditioneller Entwicklung zu Scrum

Agile Prozessverbesserung. Im Sprint zu besseren Prozessen

Agile Software Development

teischl.com Software Design & Services e.u. office@teischl.com

Was ist Sozial-Raum-Orientierung?

Impulse Inklusion Selbst-bestimmtes Wohnen und Nachbarschaft

Teilnahme-Vertrag. Der Teilnahme-Vertrag gilt zwischen. dem Berufs-Bildungs-Werk. und Ihnen. Ihr Geburtsdatum: Ihre Telefon-Nummer:

Grundlagen für den erfolgreichen Einstieg in das Business Process Management SHD Professional Service

Outsourcing und Offshoring. Comelio und Offshoring/Outsourcing

Projektmanagement. Vorlesung von Thomas Patzelt 9. Vorlesung

Welche Bereiche gibt es auf der Internetseite vom Bundes-Aufsichtsamt für Flugsicherung?

Projektmanagement in der Spieleentwicklung

Agile Software-Entwicklung im Kontext der EN50128 Wege zum Erfolg

Testplan. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw,

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

Das Gewissen Sekundarstufe 1 2 Std.

Wichtige Forderungen für ein Bundes-Teilhabe-Gesetz

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

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

SCHRITT 1: Öffnen des Bildes und Auswahl der Option»Drucken«im Menü»Datei«...2. SCHRITT 2: Angeben des Papierformat im Dialog»Drucklayout«...

1 Mathematische Grundlagen

Anlegen eines DLRG Accounts

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

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

Was meinen die Leute eigentlich mit: Grexit?

Some Software Engineering Principles

Zur richtigen Zeit am richtigen Ort

Anti-Botnet-Beratungszentrum. Windows XP in fünf Schritten absichern

Bei der Focus Methode handelt es sich um eine Analyse-Methode die der Erkennung und Abstellung von Fehlerzuständen dient.

Präsentation: Google-Kalender. Walli Ruedi Knupp Urdorf

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

Tag des Datenschutzes

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

SharePoint Demonstration

Datensicherung. Beschreibung der Datensicherung

Leichte-Sprache-Bilder

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

GS-Programme 2015 Allgemeines Zentralupdate

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

6.2 Scan-Konvertierung (Scan Conversion)

Warum sich das Management nicht für agile Softwareentwicklung interessieren sollte - aber für Agilität

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

Kundenbefragung als Vehikel zur Optimierung des Customer Service Feedback des Kunden nutzen zur Verbesserung der eigenen Prozesse

Grundlagen der Theoretischen Informatik, SoSe 2008

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus:

Lichtbrechung an Linsen

Fallbeispiel. Auswahl und Evaluierung eines Software- Lokalisierungstools. Tekom Herbsttagung 2004 Angelika Zerfaß

40-Tage-Wunder- Kurs. Umarme, was Du nicht ändern kannst.

Lernwerkstatt 9 privat- Freischaltung

Konzentration auf das. Wesentliche.

Softwaretechnik. Fomuso Ekellem WS 2011/12

Kapitel 2: Der Software-Entwicklungsprozess

Dr. Guido Schwarz Forschung, Schulung, Beratung; A Wien, Edelhofgasse 31/8; Tel: Mobil:

Wie oft soll ich essen?

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

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

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger

Klausur Software-Engineering SS 2005 Iwanowski

4 Ideen zur Verbesserung des -Marketings!

Soft Skills als Erfolgsfaktoren im anforderungsorientierten, agilen Projektmanagement am Beispiel der IT- Softwareentwicklung

GRS SIGNUM Product-Lifecycle-Management

Nicht über uns ohne uns

Newsletter Immobilienrecht Nr. 10 September 2012

Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken?

Einen Wiederherstellungspunktes erstellen & Rechner mit Hilfe eines Wiederherstellungspunktes zu einem früheren Zeitpunkt wieder herstellen

AutoCAD Dienstprogramm zur Lizenzübertragung

Updatehinweise für die Version forma 5.5.5

Regeln für das Qualitäts-Siegel

iloq Privus Bedienungsanleitung Schließanlagen Programmierung Version 1 - Copyright 2013

Xesar. Die vielfältige Sicherheitslösung

Häufig wiederkehrende Fragen zur mündlichen Ergänzungsprüfung im Einzelnen:

WAS finde ich WO im Beipackzettel

Transkript:

Software-Entwicklung

SEP 96 Geschichte der Programmierung Aufgaben von, Anforderungen an Programme mit der Zeit verändert 1 Programmierung über Lochkarten z.b. für Rechenaufgaben 2 maschinennahe Programmierung auch wichtig wegen Geschwindigkeitsverlusts durch Compilation 3 höhere Programmiersprachen geeignet für größere Programme 4??? komplexe Software-Systeme

SEP 97 Die Software-Krise in den 1960er Jahren begannen Kosten für Software die Kosten für Hardware zu übersteigen davor: Computer nicht sehr leistungsfähig, keine großen Programme nötig ab dann: Computer leistungsfähig, Software muss mithalten Begriff Software-Engineering / Softwaretechnik wurde geprägt generelle Ziele der Software-Entwicklung: Korrektheit Effizienz Wartbarkeit Wiederverwertbarkeit

SEP 98 Softwaretechnik beschreibt Prozess des Herstellens von Software mehr als nur Erstellen eines Programms, sondern u.a. Planung Analyse Entwurf / Modellierung Programmierung Validierung Dokumentation

SEP 99 Planung Planung eines Softwareprojekts beinhaltet normalerweise u.a. Aufwandsschätzung Zeit Personal Budget... Planung der Vorgehensweise hier keine Modelle der Aufwandsschätzung, aber zeitliche Planung wird von Gruppen erwartet

SEP 100 Zeitliche Planung beachte zeitlichen Rahmen Endabnahme in der Woche vom 9.02.09 13.02.09 voll funktionsfähiges System, sinnvoll dokumentierter Quellcode, etc. Wettbewerb am 5.02.09 Testabnahme in der Woche 15.12.08 19.12.08 funktionsfähiges aber nicht unbedingt vollständiges System, sinnvoll dokumentierter Quellcode, etc. definiert zwei Phasen der Software-Entwicklung jede Gruppe legt Tutor sobald wie möglich Planung für verbleibenden Zeitraum vor (was wird wann gemacht?)

SEP 101 Vorgehensweisen werden in Vorgehensmodellen festgelegt Vorgehensmodelle machen in verschiedener Detailliertheit Vorgaben zum Ablauf der einzelnen Prozesse (wie, wann) verschiedene Typen von Vorgehensmodellen, z.b. eher Philosophie V-Modell Modellgetriebene Software-Entwicklung Agile Software-Entwicklung Design by Contract Prozessmodelle, z.b. Wasserfallmodell Spiralmodell

SEP 102 Vorgehensweisen im Praktikum nicht jedes Vorgehensmodell in jeder Situation anwendbar z.b. hier: Kunde nicht wirklich vorhanden (Aufgabensteller, Tutoren?) Teilnehmer sollen über Existenz von Vorgehensmodellen informiert sein Vorgehensmodelle im Detail mit Diskussion Vorlesung Softwaretechnik Gruppen sollen hier vermitteltes Wissen über Vorgehensmodelle einsetzen (z.b. Zerlegung des Entwicklungsprozesses in Teilprozesse)

SEP 103 Agile Software-Entwicklung kein einzelnes Prozessmodell, sondern Entwicklungsphilosophie hier nicht unbedingt Empfehlung, schon gar nicht Vorschrift Philosophie definiert drei aufeinander aufbauende Ebenen agile Werte was bei der Software-Entwicklung wichtig sein sollte agile Prinzipien generelle Vorschriften für alle Teilprozesse um die Werte zu respektieren agile Methoden Beschreibung der Ausführung von Teilprozessen nach den Prinzipien

SEP 104 Agile Werte Wichtiger als vordefinierte Prozesse und vorgefertigte Tools sind die beteiligten Individuen und deren Miteinander. Wichtiger als ausführliche Dokumentation ist eine funktionierende Software. Wichtiger als nach Vertrag zu arbeiten ist die Zusammenarbeit mit dem Kunden. Wichtiger als einem Plan zu folgen ist es, flexibel auf Änderungen reagieren können. allgemein: Verzicht auf starre Regeln

SEP 105 Agile Prinzipien 1 Kunde durch frühes und häufiges Liefern zufrieden stellen 2 sich ändernde Anforderungen sind willkommen 3 funktionierende Software häufig abliefern 4 tägliche Zusammenarbeit zwischen Entwicklern und Managern 5 Projekte von motivierten und zufriedenen Mitarbeitern durchführen lassen 6 Information durch Konversation übermitteln 7 Erfolg wird an funktionierender Software bemessen 8 nachhaltige Entwicklung 9 ständige Aufmerksamkeit auf technische Exzellenz und gutes Design 10 Einfachheit ist essentiell 11 selbst-organisierende Teams erbringen beste Designs, etc. 12 Selbstreflektion im Team in regelmäßigen Abständen mit anschließender Verbesserung

SEP 106 Agile Methoden Methoden sollen Prinzipien in Entwicklungsprozesse einbringen Aversion gegen starre Pläne, besser Fokussierung auf das, was gebraucht wird, statt dem, was geplant ist Beispiele für agile Methoden: Programmieren zu zweit testgetriebene Entwicklung Abschluss: agile Software-Entwicklung erfreut sich wachsender Beliebtheit und ist in vielen Fällen erfolgversprechend

SEP 107 Validierung Erinnerung: Korrektheit von Software ist eines der Ziele ihrer Entwicklung imminente Frage: wann ist ein Programm korrekt? offensichtliche Antwort: wenn es den Anforderungen genügt Antwort nicht sehr befriedigend ( wann genügt ein Programm seinen Anforderungen? ) Ansatz: formalisiere Anforderungen als Eigenschaften von Programmen

SEP 108 Der Satz von Rice Typ einer Eigenschaft ist lediglich Menge von Programmen (Eigenschaft E kodiert als Menge aller Programme, die E haben) Eigenschaft trivial: E = oder E = Menge aller Programme Satz: Sei E eine nicht-triviale Eigenschaft von Programmen. Dann gibt es keinen Algorithmus, der zu einem vorgegebenen Programm P entscheidet, ob P E gilt oder nicht. Konsequenz: Validierung von Programmen nicht automatisierbar

SEP 109 Validierung Validierung dennoch wichtig, denn z.b. Software soll fehlerfrei sein Kunde kauft nicht gerne Katze im Sack verschiedene Methoden zur Validierung von Software Validierung per Hand, z.b. Theorembeweisen proof carrying code automatische Validierung eingeschränkter Programme, z.b. durch Abstraktion Testen...

SEP 110 Testen Testen = exemplarische (also nicht vollständige) Validierung, nicht nur bzgl. Fehlerfreiheit, sondern auch bzgl. genereller Spezifikation Vorteil von Testen: nicht eingeschränkt durch Programmgröße Nachteil: kann nur Fehler aufdecken, aber keine Fehlerfreiheit garantieren in vielen Vorgehensmodellen: Validierung (z.b. durch Testen) nach Programmierung oder zeitlich unabhängig davon in testgetriebener Entwicklung: erst Tests definieren, dann Programmcode erzeugen vorliegende Tests können auch als Dokumentation gesehen werden

SEP 111 Testarten man unterscheidet drei Arten von Tests bzgl. Kenntnis des Codes: white-box test: Code ist bekannt (z.b. wegen Testen nach Programmieren) black-box test: Code ist unbekannt, stattdessen nur Spezifikation grey-box test: Code ist teilweise bekannt, z.b. weil noch nicht geschrieben man unterscheidet zwei Arten von Tests bzgl. Granularität: Systemtests unit tests: einzelne Komponenten werden getestet Annahme: Gesamtsystem korrekt, wenn alle Komponenten korrekt sind unit tests haben größere Chance, Fehler aufzudecken, erfordern aber detaillierte Spezifikation

SEP 112 Testgetriebene Entwicklung benutzt grey-box unit tests Codegenerierung erfolgt in Iteration von Phasen 1 identifiziere nächste zu integrierende Funktionalität 2 schreibe Tests dafür 3 solange diese Tests fehlschlagen: schreibe/repariere Code dafür 4 vereinfache Gesamtcode durch Abstraktion, Aufräumen, etc. 5 wiederhole Tests