Grundlagen der Programm- und Systementwicklung
|
|
- Kajetan Kruse
- vor 8 Jahren
- Abrufe
Transkript
1 Grundlagen der Programm- und Systementwicklung Technische Universität München Institut für Informatik Software & Systems Engineering Prof. Dr. Dr. h.c. Manfred Broy Unter Mitarbeit von Dr. Alexander Malkis, Diego Marmsoler, Veronika Bauer 1
2 Vorlesungsplanung (siehe Webseite) Einführung Grundbegriffe und Definitionen, Bedeutung und Stellenwert Kernaufgaben, Aktueller Stand der Forschung und Praxis Themen Daten und Rechenstrukturen Konzepte Spezifikation Verifikation von Eigenschaften Funktionale Programme Konzepte Spezifikation Verifikation von Eigenschaften Anweisungs- und objektorientierte Programme Spezifikation Verifikation von Eigenschaften Referenzen und Zeiger 2
3 Grundlegende Begriffe 3
4 Ein C Programm aus dem Web Fragen: Spezifikation: Wie genau beschreiben, was das Programm leistet Analyse und Verifikation: Wie analysieren, was ein Programm leistet? Wie eindeutig zeigen, dass das das Programm leistet? Terminiert das Programm? Wie zeigt man das? Konzepte: Welche Konzepte nutzt das Programm: Datenstrukturen Ablaufstrukturen 4
5 Wissenschaftliche Grundlagen Konzepte, Modelle, Strukturen von Software Beschreibungsmittel Notationen, Formalismen Tabellen, Diagramme Spezifikationssprachen und algorithmische formale Sprachen (Programmiersprachen) Theorien Regeln Kalküle, Logiken, Methoden Entwicklungsprozesse für Datenstrukturen, Programme und Systeme... 5
6 Programmierung vs. Programmentwicklung Programme Beschreibungen von Daten und Algorithmen (+ Interaktion mit der Umgebung ) formale Syntax (Sprache) Programmierung Prozess der Erstellung von Programmen Programmentwicklung Prozess der Erstellung von Programmen (= Programmierung) Dazu anfallenden Tätigkeiten (die über die reine Erstellung des Programmtextes hinausgehen) 6
7 Software Softwaresystem besteht aus der Gesamtheit von Programmen und Daten, die eine ausführbare Einheit auf einem Rechensystem zur Lösung einer Aufgabe bilden. Datenmodellierung: Beschreibung von Daten und Operationen darauf Rechenstrukturen Modellierung von Rechenvorschriften und Algorithmen: Funktionale Programmstrukturen Prozedurale Programmstrukturen Objektorientierte Programmstrukturen 7
8 IT-Systeme IT-Systeme Rechnerhardware + Software weitere elektronische oder elektromechanische Bestandteile (Übertragungseinheiten, Sensoren, Aktuatoren) Peripherie Nutzerschnittstelle / umgebende organisatorische Prozesse 8
9 Theoretische/Methodische Aspekte Syntax und Semantik von Datenstrukturen Berechenbarkeit, Komplexität, effiziente Algorithmen formale Spezifikation Theoretische von Daten- und Themen Rechenstrukturen logische Verifikation... Programmiernotationen und -sprachen Datenstrukturen und ihre logischen Eigenschaften Schnittstellenbildung, Schnittstellenbeschreibung, Modularität, Modellbildung in der Programmentwicklung Methodische Themen Verbergen von Implementierungsinformation (Information Hiding) Abstraktionsebenen Schrittweise Verfeinerung, Top-Down-Entwicklung... 9
10 Themen- und Aufgabenkomplexe Aufbau von kleineren Softwarebausteinen Datenstrukturen, Module und Komponenten Entwicklung der Algorithmen Implementierungen für Datenstrukturen Im Vordergrund : Ablauf- und Kontrollstrukturen Struktur der Daten und der charakteristischen Funktionen Entwickeln und Programmieren im Kleinen Erfassung aller Anforderungen (Requirements Engineering) Aufbau großer Softwaresysteme (Softwarearchitektur) Fragen der Vereinheitlichung der Struktur und der Modularisierung (Datenmodellierung, Entwickeln und Schnittstellen), Programmieren im Großen Qualitätssicherung (Validierung, Verifikation, Test), Wiederverwendung (Produktlinie)... 10
11 Praxis und Theorie Spezifikation: Beschreibung der Effekte von Datenstrukturen und den Operationen darauf sowie von Programmen Theorie: Formeln Praxis: Verbale Beschreibung Korrektheitsnachweis: Nachweis, dass Programm die Spezifikation erfüllt Theorie: Formaler Nachweis durch logisches Ableitungssystem Praxis: Test, Manuelle Inspektion 11
12 Praxis - Anforderungsspezifikation? Es geht nicht nur darum, die Anforderungen präzise unmissverständlich zu formulieren es geht insbesondere darum die validen Anforderungen zu finden Stichwort: Validierung! Formalisierung kann hier helfen Konzeptualisierung Erarbeitung Modelle der Informatik (formaler Modelle) für die betrachteten Zusammenhänge Beispiel: Operationen auf einem Konto Auffinden von Unvollständigkeiten oder Widersprüchen in den Anforderungen Validierung ist aber keine formale Aufgabe Siehe Vorlesung Requirements Engineering 12
13 Praxis? Missverständnisse zwischen den Stakeholdern! 13
14 Software Engineering Software Engineering bezeichnet das ingenieurmäßige Vorgehen bei der Entwicklung von Softwaresystemen Zentrale Themen Entwickeln im Großen Vorgehensmodell (Prozess, Artefakte, Organisation) Projektorganisation und management Anforderungen (fachlich, technisch) Architektur Implementierung Integration und Verifikation Evolution und Wartung 14
15 Praxis: V-Modell 15
16 Qualitätssicherung Validierung: Sicherstellung und Überprüfung der Angemessenheit der formalen Modellierung und Anforderungsspezifikation in Bezug auf die informelle Problemstellung Verifikation: Nachweis, dass das Ergebnis eines Programmentwicklungsschritts der vorgegebenen formalen Spezifikation entspricht Dies betrifft gleichermaßen funktionale und nicht-funktionale Anforderungen Die Vorlesung beschränkt sich auf funktionale Eigenschaften von Programmen, Daten- und Rechenstrukturen 16
17 Vorgehensmodell Methodischer Rahmen für die systematische Entwicklung von Programmen Entwicklungsregeln zur Durchführung von Entwicklungsschritten Konzept, das die Schritte im Programmentwicklungsprozess in eine sinnvolle Reihenfolge bringt Top-Down Anfang: Umfassende, abstrakte Problemstellung Prozess: Zerlegung der Aufgabe in Teilaufgaben Ende: Einzelaufgaben, die für sich gelöst werden können. Bottom-Up Anfang: Vorgegebene oder erarbeitete Lösungen für kleine Einzelaufgaben Prozess: Schrittweise Zusammensetzung Ende: Lösung für die Gesamtaufgabe. Zwei Vorgehensweisen: Top Down Bottom Up 17
18 Top-Down Qualitätssicherungsschritte 18
19 Im Zentrum der Vorlesung: Fundierte Methodik Modellierung Formal Spezifikation Verfeinerung Eigenschaften Formal Verifikation Korrektheit Terminierung Daten- und Rechenstrukturen Programme Funktional Prozedural Objektorientiert 19
20 Grundprinzipien der Software- und Systementwicklung Die wesentlichen Grundprinzipien der Software- und Systementwicklung umfassen folgende Konzepte und Prinzipien: systematisches Vorgehen strukturiert durch Meilensteine, Trennung von Problem und Lösung, von Spezifikation und Realisierung (Abstraktion und Schnittstellenbildung), Dekomposition von Problemen in Teilprobleme (Divide-and-Conquer), Verstecken von Realisierungsdetails (Information Hiding), Schrittweise Verfeinerung (Stepwise Refinement), Strukturiertes Programmieren (Structured Programming), Qualitätssicherung durch Verifikation des Entwicklungsergebnisses (Formal Verification). 20
21 Strukturierung und Abstraktion Strukturierung Gliederung der Aufgabenstellung und der Erarbeitung der Lösung Strukturierung der Vorgehensweise (dem Vorgehensmodell) Strukturierung der Ergebnisse / Modelle / Beschreibungen / Programme Abstraktion Elimination unwesentlicher Details Konzentration auf die Kerneigenschaften Beispiel: Buch: Gliederung Abstraktionsebenen Ebenen unterschiedlichen Detaillierungsgrads Verfeinerung 21
22 Black/White Box View Schnittstellensicht (Nutzungssicht, Zugriffssicht, funktionale Sicht, engl. Black Box View) zeigt das Programm oder System als eine funktionale Einheit (ohne Berücksichtigung seines strukturellen Aufbaus) in seiner Wirkung nach außen Implementierungssicht (Realisierungssicht, engl. Glass Box View, White Box View), berücksichtigt die innere Gliederung und den Aufbau eines Programms oder Systems (etwa seine Gliederung in Anweisungen oder seine Unterteilung in Komponenten und die Vernetzung der Komponenten) Abstraktion Information Hiding 22
23 Schnittstelle (nach DIN 44300) Eine Schnittstelle ist der gedachte oder tatsächliche Übergang an der Grenze zwischen zwei Funktionseinheiten mit den vereinbarten Regeln für die Übergabe von Daten oder Signalen. Syntaktische Schnittstelle syntaktisch fehlerfreie Benutzung der Einheit Semantische Schnittstelle (Verhaltensschnittstelle, Nutzungsschnittstelle) Verhalten der Einheit (für den sinnvollen und korrekten Gebrauch) Schnittstellenabstraktion Kapselung/Verbergen der für die Nutzung nicht relevanten Information 23
24 Modellbildung Modell: Vereinfachtes Abbild eines Ausschnitts der realen oder gedachten Welt Domänenmodell Abbild eines Ausschnitts der realen oder gedachten Welt des Anwendungsgebiets als Grundlage für die Problemspezifikation oder die Problemlösung Systemmodell (Programmiermodell, Datenmodell) Modellierung des Softwaresystems, seiner Struktur und seines Verhaltens als Grundlage für die Strukturierung und Formulierung der Lösung einer Entwicklungsaufgabe in Form eines Softwaresystems oder dessen Analyse 24
25 Zu Modellen Beschreibung des Modells Syntax (Text, Graphik, Formeln) Modellierungskonzept Formalisierungsgrad Durch das Modell beschriebene Eigenschaften Validität Gibt das Modell die Eigenschaften des modellierten Gegenstands korrekt wieder Komponierbarkeit Lassen sich Modelle/Modellteile zu größeren zusammensetzen Handhabbarkeit Verständlichkeit Aufwand bei der Erstellung Änderbarkeit Automatisierbarkeit 25
26 Modellbildung: Wofür? Modellbildung als Teil der Problemlösung: Beispiel Quizsendung: 3 gegebene Tore (A, B, C) Gewinn: ein Auto Der Kandidat kann ein Auto gewinnen, wenn er von drei gegeben verschlossenen Toren A, B und C dasjenige Tor errät, hinter welchem sich das Auto befindet. Um den Ablauf spannender zu machen, läuft diese Auswahl wie folgt ab: Zuerst darf sich der Kandidat für eines der drei Tore entscheiden. Der Quizmaster öffnet darauf von den verbleibenden zwei Toren eines, hinter dem sich das Auto nicht befindet. Es verbleiben also noch zwei verschlossene Tore, hinter einem von denen das Auto steht. Nun erhält der Kandidat erneut die Möglichkeit, unter den verbleibenden zwei Toren zu wählen. 26
27 Modellbildung: Wofür? Mögliche Strategien 1. Spieler wählt eingangs ein Tor und revidiert diese Wahl später nicht. 2. Spieler wählt eingangs ein Tor und wählt dann frei unter den verbleibenden Toren. 3. Spieler wählt eingangs ein Tor und revidiert später seine Wahl und wählt somit das andere verbleibende Tor. 27
28 Modellbildung: Wofür? Strategie 1 A B C 1/3 Strategie 2 A B C 1/2 Strategie 3 A B C 2/3 28
29 Abschließende Bemerkungen Historie Denotationelle Semantik mathematische Modelle zur Repräsentation von Semantik Zusicherungslogik Anreicherung von Programmen um logische Formeln Strukturierte Programmierung Abstrakte Datentypen Funktionale Programmiersprachen Modellierungssprachen 29
Grundlagen der Programm- und Systementwicklung
Grundlagen der Programm- und Systementwicklung Technische Universität München Institut für Informatik Software & Systems Engineering Prof. Dr. Dr. h.c. Manfred Broy Unter Mitarbeit von Dr. Maria Spichkova
MehrModellierung verteilter Systeme Grundlagen der Programm und Systementwicklung
Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung Wintersemester 2009/10 Prof. Dr. Dr. h.c. Manfred Broy Unter Mitarbeit von Dr. K. Spies, Dr. M. Spichkova, L. Heinemann, P.
MehrSoftwaretechnik (Allgemeine Informatik) Überblick
Softwaretechnik (Allgemeine Informatik) Überblick 1 Einführung und Überblick 2 Abstraktion 3 Objektorientiertes Vorgehensmodell 4 Methoden der Anforderungs- und Problembereichsanalyse 5 UML-Diagramme 6
MehrProgrammieren Formulierung eines Algorithmus in einer Programmiersprache
Zum Titel der Vorlesung: Programmieren Formulierung eines in einer Programmiersprache Beschreibung einer Vorgehensweise, wie man zu jedem aus einer Klasse gleichartiger Probleme eine Lösung findet Beispiel:
MehrSoftwaretechnik. Fomuso Ekellem WS 2011/12
WS 2011/12 Inhalt Projektvorstellung Übung 1 Wiederholung zusammengefasst Planungsphase Lernziele Ziele und Inhalt der Planungsphase Anlass und Aufgabestellung(Was ist dabei erförderlich) Requirement Engineering
MehrSoftware-Engineering
SWE5 Slide 1 Software-Engineering Sebastian Iwanowski FH Wedel Kapitel 5: Systementwurf SWE5 Slide 2 Systemanalyse vs. Softwareentwurf Systemanalyse beschreibt das System der Anwendung, für das eine Aufgabe
MehrWintersemester 2010/2011 Rüdiger Westermann Institut für Informatik Technische Universität München
Informatik 1 Wintersemester 2010/2011 Rüdiger Westermann Institut für Informatik Technische Universität München 1 0 Allgemeines Zielgruppen Siehe Modulbeschreibung Studierende anderer (nicht Informatik)
MehrDie Softwareentwicklungsphasen!
Softwareentwicklung Die Softwareentwicklungsphasen! Die Bezeichnungen der Phasen sind keine speziellen Begriffe der Informatik, sondern den allgemeinen Prinzipien zur Produktion integrierter Systeme entliehen.
MehrSoftware Engineering
Literatur Gliederung Software Engineering Herbert Kuchen Universität Münster Di+Fr 14:15-15:45, M2 Wintersemester 2009/2010 1 Literatur Gliederung Basis-Literatur H. Balzert: Lehrbuch der Software-Technik,
Mehr16 Architekturentwurf Einführung und Überblick
Teil III: Software-Architekturentwurf 16 Architekturentwurf Einführung und Überblick 16.1 Software entwerfen Warum? Beim Arbeiten im Kleinen nicht oder nur ansatzweise (Detailentwurf) Größere Software
MehrÜbungsklausur vom 7. Dez. 2007
Übungsklausur vom 7. Dez. 2007 Ein Lösungsmuster Teilbereiche der Softwaretechnik Software Anforderungen Software Entwurf Software Konstruktion Software Test Software Wartung Software Konfigurationsmanagement
MehrDiplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008
Konzeption und Implementierung einer automatisierten Testumgebung, 10. Dezember 2008 1 Gliederung Einleitung Softwaretests Beispiel Konzeption Zusammenfassung 2 Einleitung Komplexität von Softwaresystemen
MehrEinführung und Motivation
Einführung und Motivation iks-thementag: Requirements Engineering 16.11.2010 Autor Carsten Schädel Motto Definiere oder Du wirst definiert. Seite 3 / 51 These Im Privatleben definiert jeder (seine) Anforderungen.
MehrEin Blick voraus. des Autors von C++: Bjarne Stroustrup. 04.06.2005 Conrad Kobsch
Ein Blick voraus des Autors von C++: Bjarne Stroustrup 04.06.2005 Conrad Kobsch Inhalt Einleitung Rückblick Nur eine Übergangslösung? Was würde C++ effektiver machen? Quelle 2 Einleitung Wo steht C++,
MehrDas Pflichtenheft. Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth Ains A-Systemhaus GmbH Berlin
Fragestellungen: Warum reicht das Lastenheft nicht aus? Was kann ich mit dem Lastenheft machen? Was unterscheidet das Pflichtenheft vom Lastenheft? Was gehört zum Auftragsumfang einer Individualsoftware?
MehrSemantik von Formeln und Sequenzen
Semantik von Formeln und Sequenzen 33 Grundidee der Verwendung von Logik im Software Entwurf Syntax: Menge von Formeln = Axiome Ax K ist beweisbar Formel ϕ beschreiben Korrektkeit Vollständigkeit beschreibt
MehrInformatik und Informationstechnik (IT)
Informatik und Informationstechnik (IT) Abgrenzung Zusammenspiel Übersicht Informatik als akademische Disziplin Informations- und Softwaretechnik Das Berufsbild des Informatikers in der Bibliothekswelt
MehrObjektorientierter Software-Entwurf Grundlagen 1 1. Analyse Design Implementierung. Frühe Phasen durch Informationssystemanalyse abgedeckt
Objektorientierter Software-Entwurf Grundlagen 1 1 Einordnung der Veranstaltung Analyse Design Implementierung Slide 1 Informationssystemanalyse Objektorientierter Software-Entwurf Frühe Phasen durch Informationssystemanalyse
MehrDas System sollte den Benutzer immer auf dem Laufenden halten, indem es angemessenes Feedback in einer angemessenen Zeit liefert.
Usability Heuristiken Karima Tefifha Proseminar: "Software Engineering Kernkonzepte: Usability" 28.06.2012 Prof. Dr. Kurt Schneider Leibniz Universität Hannover Die ProSeminar-Ausarbeitung beschäftigt
MehrRequirements Engineering
Seite 1 Requirements Engineering Seite 2 Zielsetzung Systematischer Ansatz, Anforderungen zu Ermitteln Analysieren Organisieren Dokumentieren Mittel, um gemeinsame Basis zwischen Kunde und Entwickler zu
MehrProbeklausur. Lenz Belzner. January 26, 2015. Lenz Belzner Probeklausur January 26, 2015 1 / 16
Probeklausur Lenz Belzner January 26, 2015 Lenz Belzner Probeklausur January 26, 2015 1 / 16 Definieren Sie Software Engineering in Abgrenzung zu Individual Programming. Ingenieursdisziplin professionelle
MehrKapitel 2: Der Software-Entwicklungsprozess
Wie konstruiert man Software? Kapitel 2: Der Software-Entwicklungsprozess SoPra 2008 Kap. 2: Der Software-Entwicklungsprozess (1/10) Der Software-Entwicklungs-Prozess Historisches 1960JJ adhoc Techniken
MehrSeamless Model-based Engineering of a Reactive System
Seamless Model-based Engineering of a Reactive System Seminar im Wintersemester 2013/2014 Andreas Vogelsang, Sebastian Eder, Georg Hackenberg, Maximilian Junker http://www4.in.tum.de/lehre/seminare/ws1314/seamless/
MehrSoftware-Engineering
FH Wedel Prof. Dr. Sebastian Iwanowski SWE2 Folie 1 Software-Engineering Sebastian Iwanowski FH Wedel Kapitel 2: Grundbegriffe und Prinzipien FH Wedel Prof. Dr. Sebastian Iwanowski SWE2 Folie 2 Grundbegriffe
MehrAbschnitt 16: Objektorientiertes Design
Abschnitt 16: Objektorientiertes Design 16. Objektorientiertes Design 16 Objektorientiertes Design Informatik 2 (SS 07) 610 Software-Entwicklung Zur Software-Entwicklung existiert eine Vielfalt von Vorgehensweisen
MehrRequirements Engineering für IT Systeme
Requirements Engineering für IT Systeme Warum Systemanforderungen mit Unternehmenszielen anfangen Holger Dexel Webinar, 24.06.2013 Agenda Anforderungsdefinitionen Von der Herausforderung zur Lösung - ein
MehrQualitätsmanagement. Grundlagen
Grundlagen Historie: Mit industriellen Massenproduktion erforderlich geworden (Automobilindustrie, Anfang des letzten Jahrhunderts); Qualitätsmanagement zunächst nur in der Fertigung Mitte des letzten
MehrAnforderungen an Informatikabsolventen Beitrag zum Workshop "Bachelor / Master im Informatikstudium und im Beruf" 26.-27. März 2003, HAW Hamburg
Innovative Anwendungssysteme GmbH Anforderungen an Informatikabsolventen "Bachelor / Master im Informatikstudium und im Beruf" 26.-27. März 2003, HAW Hamburg 21. Februar 2003 Inhaltsverzeichnis 1 Firmenprofil
MehrSchulcurriculum Informationstechnische Grundkenntnisse und Informatik Stand: 18.09.2011
Bezug zu den Leitideen der Bildungsstandards und den Kompetenzen, Inhalte Bemerkungen welche die Schülerinnen und Schüler erwerben Klasse 11 Informatik 4-stündig Einführung in die objektorientierte Modellierung
MehrMulticheck Schülerumfrage 2013
Multicheck Schülerumfrage 2013 Die gemeinsame Studie von Multicheck und Forschungsinstitut gfs-zürich Sonderauswertung ICT Berufsbildung Schweiz Auswertung der Fragen der ICT Berufsbildung Schweiz Wir
Mehr2. Vorlesung. Slide 40
2. Vorlesung Slide 40 Knobelaufgabe Was tut dieses Programm? Informell Formal Wie stellt man dies sicher? knobel(a,b) { Wenn a = 0 dann return b sonst { solange b 0 wenn a > b dann { a := a - b sonst b
MehrVgl. Kapitel 4 aus Systematisches Requirements Engineering, Christoph Ebert https://www.sws.bfh.ch/studium/cas/swe-fs13/protected/re/re_buch.
Vgl. Kapitel 4 aus Systematisches Requirements Engineering, Christoph Ebert https://www.sws.bfh.ch/studium/cas/swe-fs13/protected/re/re_buch.pdf Nachdem die Projekt-Vision und die Stakeholder bekannt sind,
Mehr1 Mathematische Grundlagen
Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.
MehrObjektorientierte Programmierung für Anfänger am Beispiel PHP
Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten
MehrModulhandbuch für das BA Kombinationsfach Angewandte Informatik Multimedia
Modulhandbuch für das BA Kombinationsfach Angewandte Informatik Multimedia Kenntnisse im Programmieren für das World Wide Web mit der Programmiersprache JAVA werden vermittelt, ebenso das Erstellen von
MehrRequirements Engineering I
Norbert Seyff Requirements Engineering I UML Unified Modeling Language! 2006-2012 Martin Glinz und Norbert Seyff. Alle Rechte vorbehalten. Speicherung und Wiedergabe für den persönlichen, nicht kommerziellen
MehrProlog basiert auf Prädikatenlogik
Software-Technologie Software-Systeme sind sehr komplex. Im Idealfall erfolgt die Programmierung problemorientiert, während die notwendige Übertragung in ausführbare Programme automatisch erfolgt. Prolog-Philosophie:
MehrVBA-Programmierung: Zusammenfassung
VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung
MehrTheoretische Grundlagen des Software Engineering
Theoretische Grundlagen des Software Engineering 11: Abstrakte Reduktionssysteme schulz@eprover.org Reduktionssysteme Definition: Reduktionssystem Ein Reduktionssystem ist ein Tupel (A, ) Dabei gilt: A
MehrSome Software Engineering Principles
David L. Parnas: Some Software Engineering Principles Marco Oppel 30.06.2004 Seminar Software-Architektur Institut für Informatik Humboldt Universität zu Berlin 1 Problemstellung Software Engineering Multi-Personen
MehrBEISPIELKLAUSUR Softwareentwicklung:
Prof. Dr. Andreas Fink Institut für Informatik Fakultät für Wirtschafts- und Sozialwissenschaften Helmut-Schmidt-Universität / Universität der Bundeswehr Hamburg BEISPIELKLAUSUR Softwareentwicklung: Objektorientierte
Mehr17 Architekturentwurf Vorgehen und Dokumentation
17 Architekturentwurf Vorgehen und Dokumentation 17.1 Einbettung Aber Erster Schritt der Lösung Wenn Anforderungsspezifikation vorliegt Vorgabe für Codierung Hierarchische Verzahnung von Anforderungen
MehrVgl. Kapitel 5 aus Systematisches Requirements Engineering, Christoph Ebert https://www.sws.bfh.ch/studium/cas/swe-fs13/protected/re/re_buch.
Vgl. Kapitel 5 aus Systematisches Requirements Engineering, Christoph Ebert https://www.sws.bfh.ch/studium/cas/swe-fs13/protected/re/re_buch.pdf 2 Nach derbefragung aller Stakeholder und der Dokumentation
MehrVermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.
1 2 3 4 Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg. Gerade beim Einstig in der Programmierung muss kontinuierlich
MehrDr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht
Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur UML-Klassendiagramme als Werkzeug im Unterricht Blitzlicht? In welcher Programmiersprache(n) unterrichten Sie?? In welchem Umfang unterrichten Sie Objektorientierung??
MehrKlausur zu den Teilgebieten Software-Management und Software-Qualitätsmanagement
Klausur zu den Teilgebieten Software-Management und Software-Qualitätsmanagement Prof. K.-P. Fähnrich, Prof. H.-G. Gräbe, T. Riechert Institut für Informatik Sommersemester 2012 Allgemeine Bemerkungen
MehrProfessionelle Seminare im Bereich MS-Office
Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion
MehrEs war einmal... "StudyING: Welten bewegen - Welten gestalten"
Computer, generiere! Christian Schröder Fachbereich Elektrotechnik und Informationstechnik Fachhochschule Bielefeld christian.schroeder@fh-bielefeld.de Es war einmal... Es war einmal... ein Bauvorhaben!
MehrEberhard Lehmann: Projekte im Informatik-Unterricht Software Engineering, Ferd. Dümmlers Verlag, Bonn 1995. Inhaltsverzeichnis.
3 Eberhard Lehmann: Projekte im Informatik-Unterricht Software Engineering, Ferd. Dümmlers Verlag, Bonn 1995 Inhaltsverzeichnis Vorwort 5 1. Komplexe Software - Projekte - Software-Engineering 7 1.1 Komplexe
MehrObjektorientierte Programmierung OOP
Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte
MehrSoftwareentwicklungspraktikum Sommersemester 2007. Grobentwurf
Softwareentwicklungspraktikum Sommersemester 2007 Grobentwurf Auftraggeber Technische Universität Braunschweig
MehrMenü auf zwei Module verteilt (Joomla 3.4.0)
Menü auf zwei Module verteilt (Joomla 3.4.0) Oft wird bei Joomla das Menü in einem Modul dargestellt, wenn Sie aber z.b. ein horizontales Hauptmenü mit einem vertikalen Untermenü machen möchten, dann finden
MehrInformationssystemanalyse Lebenszyklusmodelle 3 1. Lebenszyklusmodelle sollen hauptsächlich drei Aufgaben erfüllen:
Informationssystemanalyse Lebenszyklusmodelle 3 1 Aufgaben von Lebenszyklusmodellen Lebenszyklusmodelle sollen hauptsächlich drei Aufgaben erfüllen: Definition der Tätigkeiten im Entwicklungsprojekt Zusicherung
MehrFragebogen ISONORM 9241/110-S
Fragebogen ISONORM 9241/110-S Beurteilung von Software auf Grundlage der Internationalen Ergonomie-Norm DIN EN ISO 9241-110 von Prof. Dr. Jochen Prümper www.seikumu.de Fragebogen ISONORM 9241/110-S Seite
MehrWirtschaftsinformatik 2 Modellierung betrieblicher Informationssysteme - MobIS
Wirtschaftsinformatik 2 Modellierung betrieblicher Informationssysteme - MobIS (theoretische Aspekte der Informationsmodellierung) 3. Vorlesung 23.04.2007 Informationsmodelle Phasen der Softwareentwicklung:
MehrKlausur Software Engineering für WI (EuI)
Autor: Prof. Dr. Bernhard Humm, FB Informatik, FH Darmstadt Datum: 14. Februar 2006 Klausur Software Engineering für WI (EuI) Ihr Name: Ihre Matrikelnummer Erreichte Punkte (von insgesamt 57 Punkten):
MehrUniversität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Virtuelle Forschungsumgebungen Dozent: Prof. Dr. phil.
Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Virtuelle Forschungsumgebungen Dozent: Prof. Dr. phil. Manfred Thaller WS 2010/11 Referentin: Sanja Wiechmann
MehrSoftware Engineering. Bibliographisches Institut & F. A. Brockhaus AG, Mannheim; Spektrum Akademischer Verlag GmbH, Heidelberg, 2003
Software Engineering Softwaretechnik Softwaretechnologie, Software Engineering (engl.) das, -, Teilgebiet der Informatik, das sich mit Methoden und Werkzeugen für das ingenieurmäßige Entwerfen, Herstellen
MehrReaktive Programmierung Vorlesung 16 vom 14.07.2015: Theorie der Nebenläufigkeit
18:13:55 2015-07-14 1 [16] Reaktive Programmierung Vorlesung 16 vom 14.07.2015: Theorie der Nebenläufigkeit Christoph Lüth & Martin Ring Universität Bremen Sommersemester 2015 2 [16] Organisatorisches
MehrIndividuelles Bachelorstudium. Software Engineering for Physics
Individuelles Bachelorstudium Software Engineering for Physics 1 Qualifikationsprofil Das individuelle Bachelorstudium Software Engineering for Physics vermittelt eine breite, praktische und theoretische
MehrTesten Prinzipien und Methoden
Testen Prinzipien und Methoden ALP 2 SS2002 4.7.2002 Natalie Ardet Definition Im folgenden gilt: Software = Programm + Daten + Dokumentation Motivation Software wird immer mehr in Bereichen eingesetzt,
MehrOutsourcing und Offshoring. Comelio und Offshoring/Outsourcing
Outsourcing und Offshoring Comelio und Offshoring/Outsourcing INHALT Outsourcing und Offshoring... 3 Comelio und Offshoring/Outsourcing... 4 Beauftragungsmodelle... 4 Projektleitung vor Ort und Software-Entwicklung
MehrFUTURE NETWORK 20.11.2013 REQUIREMENTS ENGINEERING
18/11/13 Requirements Engineering 21 November 2013 DIE GRUNDFRAGEN Wie erhält der Kunde den größten Nutzen? Wie kann der Kunde am besten spezifizieren, was er haben will? Welchen Detailierungsgrad braucht
MehrA Domain Specific Language for Project Execution Models
A Domain Specific Language for Project Execution Models Eugen Wachtel, Marco Kuhrmann, Georg Kalus Institut für Informatik Software & Systems Engineering Inhalt Einführung und Hintergrund Problembereiche
MehrHTML5. Wie funktioniert HTML5? Tags: Attribute:
HTML5 HTML bedeutet Hypertext Markup Language und liegt aktuell in der fünften Fassung, also HTML5 vor. HTML5 ist eine Auszeichnungssprache mit der Webseiten geschrieben werden. In HTML5 wird festgelegt,
MehrÜbung 6: Feinentwurf. Prof. Dr. Dr. h.c. Manfred Broy Dr. Herbert Ehler, Martin Feilkas 6. Juli 2006 Bernd Spanfelner, Sebastian Winter
Prof. Dr. Dr. h.c. Manfred Broy Sommersemester Dr. Herbert Ehler, Martin Feilkas 6. Juli 2006 Bernd Spanfelner, Sebastian Winter Einführung in die Softwaretechnik Übung 6: Feinentwurf Aufgabe 17: Entwurfsmuster
MehrIT-Basics 2. DI Gerhard Fließ
IT-Basics 2 DI Gerhard Fließ Wer bin ich? DI Gerhard Fließ Telematik Studium an der TU Graz Softwareentwickler XiTrust www.xitrust.com www.tugraz.at Worum geht es? Objektorientierte Programmierung Konzepte
Mehr1. Grundbegriffe des Software-Engineering
1. Grundbegriffe Software Engineering 1 1. Grundbegriffe des Software-Engineering Was ist Software-Engineering? (deutsch: Software-Technik) Teilgebiet der Informatik, das sich mit Methoden und Werkzeugen
MehrThe B Method. B ist eine Methode zur Spezifikation zum Entwurf zur Implementierung von Software Systemen. Bücher zur B-Methode
The B Method B ist eine Methode zur Spezifikation zum Entwurf zur Implementierung von Software Systemen. Bücher zur B-Methode P. Schmitt: Formal Specification and Verification of Software p.1 The B Method
MehrGrundbegriffe der Informatik
Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen
MehrSoftwareentwicklung Schrittweise Verfeinerung, Programmieren üben: Tic-Tac-Toe in Raten
Mag. iur. Dr. techn. Michael Sonntag Softwareentwicklung Schrittweise Verfeinerung, Programmieren üben: Tic-Tac-Toe in Raten E-Mail: sonntag@fim.uni-linz.ac.at http://www.fim.uni-linz.ac.at/staff/sonntag.htm
MehrVorlesung Embedded Software-Engineering im Bereich Automotive
Vorlesung Embedded Software-Engineering im Bereich Automotive Technische Universität Dresden, Fakultät Informatik, Professur Softwaretechnologie WS 2008/2009 Dr. rer. nat. Bernhard Hohlfeld bernhard.hohlfeld@daad-alumni.de
MehrRobot Karol für Delphi
Robot Karol für Delphi Reinhard Nitzsche, OSZ Handel I Version 0.1 vom 24. Januar 2003 Zusammenfassung Nach der Einführung in die (variablenfreie) Programmierung mit Robot Karol von Freiberger und Krško
MehrInformationstechnologie (ITE)
Wahlpflichtfachentscheidung Informationstechnologie (ITE) Der Empfehlung der Fachdidaktischen Kommission Informationstechnologie folgend werden die im Unterricht des Wahlpflichtfachs zu vermittelnden Inhalte
MehrInformationsblatt Induktionsbeweis
Sommer 015 Informationsblatt Induktionsbeweis 31. März 015 Motivation Die vollständige Induktion ist ein wichtiges Beweisverfahren in der Informatik. Sie wird häufig dazu gebraucht, um mathematische Formeln
MehrGrundlagen Software Engineering
Grundlagen Software Engineering Rational Unified Process () GSE: Prof. Dr. Liggesmeyer, 1 Rational Unified Process () Software Entwicklungsprozess Anpassbares und erweiterbares Grundgerüst Sprache der
MehrUniversität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich. Softwaretechnik I
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Softwaretechnik I Wintersemester 2015 / 2016 www.ias.uni-stuttgart.de/st1 st1@ias.uni-stuttgart.de
MehrIshikawa-Diagramm. 1 Fallbeispiel 2. 2 Was ist ein Ishikawa-Diagramm 2. 3 Vorgehen bei der Erstellung eines Ishikawa-Diagramms 2.
Ishikawa-Diagramm 1 Fallbeispiel 2 2 Was ist ein Ishikawa-Diagramm 2 3 Vorgehen bei der Erstellung eines Ishikawa-Diagramms 2 4 Vorteile 5 5 Nachteile 5 6 Fazit 5 7 Literaturverzeichnis 6 1 Fallbeispiel
MehrProjektmanagement. Vorlesung von Thomas Patzelt 9. Vorlesung
Projektmanagement Vorlesung von Thomas Patzelt 9. Vorlesung 1 Pläne Kein Plan überlebt die erste Feindberührung - Feldmarschall Helmuth von Moltke Prognosen sind schwierig, besonders wenn sie die Zukunft
MehrRequirements Engineering Die Dinge von Anfang an richtig machen
Requirements Engineering Die Dinge von Anfang an richtig machen Martin Glinz www.ifi.uzh.ch/~glinz Erstes Requirements Engineering Forum Zürich, 13. November 2008 Universität Zürich Institut für Informatik
MehrGenerative Prozessmodelle Patrick Otto MDD Konferenz 22.03.2009
Generative Prozessmodelle Patrick Otto MDD Konferenz 22.03.2009 Gliederung 1. Generative Programmierung 2. Möglichkeiten und Einsatzgebiet 3. Prozess / Tools 4. Zusammenfassung 19.03.2009 GENERATIVE PROGRAMMIERUNG
MehrWas ist Sozial-Raum-Orientierung?
Was ist Sozial-Raum-Orientierung? Dr. Wolfgang Hinte Universität Duisburg-Essen Institut für Stadt-Entwicklung und Sozial-Raum-Orientierte Arbeit Das ist eine Zusammen-Fassung des Vortrages: Sozialräume
MehrSemantic Web Technologies I! Lehrveranstaltung im WS10/11! Dr. Andreas Harth! Dr. Sebastian Rudolph!
Semantic Web Technologies I! Lehrveranstaltung im WS10/11! Dr. Andreas Harth! Dr. Sebastian Rudolph! www.semantic-web-grundlagen.de Ontology Engineering! Dr. Sebastian Rudolph! Semantic Web Architecture
MehrSoftware Engineering. 3. Anforderungsanalyse. Franz-Josef Elmer, Universität Basel, WS 2006/07
Software Engineering 3. Anforderungsanalyse Franz-Josef Elmer, Universität Basel, WS 2006/07 Software Engineering: 3. Anforderungsanalyse 2 Definitionen Anforderungen (Requirements): Beschreibung aller
MehrSoftware Engineering. 3. Analyse und Anforderungsmanagement
Software Engineering 3. Analyse und Anforderungsmanagement Gliederung Vorlesung Einführung V-Modell XT Analyse und Anforderungsmanagement Benutzungsoberflächen Architektur Entwurf Entwurfsmuster Persistenz
MehrSoftware Engineering. Fakultät Elektrotechnik Bachelor-Studiengänge, 4. Semester Prof. Dr.-Ing. Dagmar Meyer
Fakultät Elektrotechnik Bachelor-Studiengänge, 4. Semester Vorausgesetzte Kenntnisse Allgemeine Kenntnisse aus dem Bereich der Softwareentwicklung - Programmierkenntnisse (Java, C) - Beherrschung der notwendigen
MehrWir 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
Was bedeutet es, ein Redaktionssystem einzuführen? Vorgehensmodell für die Einführung eines Redaktionssystems Die Bedeutung Fast alle Arbeitsabläufe in der Abteilung werden sich verändern Die inhaltliche
MehrBabeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Modulare Programmierung
Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Modulare Programmierung Test Driven Development Refactoring Modular programmierung der
MehrOhne Fehler geht es nicht Doch wie viele Fehler sind erlaubt?
Ohne Fehler geht es nicht Doch wie viele Fehler sind erlaubt? Behandelte Fragestellungen Was besagt eine Fehlerquote? Welche Bezugsgröße ist geeignet? Welche Fehlerquote ist gerade noch zulässig? Wie stellt
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte
MehrBarrierefreie Webseiten erstellen mit TYPO3
Barrierefreie Webseiten erstellen mit TYPO3 Alternativtexte Für jedes Nicht-Text-Element ist ein äquivalenter Text bereitzustellen. Dies gilt insbesondere für Bilder. In der Liste der HTML 4-Attribute
MehrEinführung in. Logische Schaltungen
Einführung in Logische Schaltungen 1/7 Inhaltsverzeichnis 1. Einführung 1. Was sind logische Schaltungen 2. Grundlegende Elemente 3. Weitere Elemente 4. Beispiel einer logischen Schaltung 2. Notation von
MehrLEHRPLAN INFORMATIK. für das. ORG unter besonderer Berücksichtigung der Informatik
LEHRPLAN INFORMATIK für das ORG unter besonderer Berücksichtigung der Informatik 5. Klasse Inhalte Kompetenzen Hinausgehend über den Lehrplan Informatik neu, gültig ab 2004/2005: Einführung: Bildbearbeitung
MehrKlausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007
Fachhochschule Bonn-Rhein-Sieg University of Applied Sciences Fachbereich Informatik Prof. Dr. Peter Becker Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007
MehrEinen Wiederherstellungspunktes erstellen & Rechner mit Hilfe eines Wiederherstellungspunktes zu einem früheren Zeitpunkt wieder herstellen
Einen Wiederherstellungspunktes erstellen & Rechner mit Hilfe eines Wiederherstellungspunktes zu einem früheren Zeitpunkt wieder herstellen 1 Hier einige Links zu Dokumentationen im WEB Windows XP: http://www.verbraucher-sicher-online.de/node/18
MehrGrundbegriffe der Informatik
Grundbegriffe der Informatik Einheit 9: Speicher Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2009/2010 1/20 Überblick Speicher Bit und Byte Speicher als Tabellen
MehrInformationsblatt zu den Seminaren am Lehrstuhl. für Transportsysteme und -logistik
Informationsblatt zu den Seminaren am Lehrstuhl für Transportsysteme und -logistik Inhaltsverzeichnis ORGANISATORISCHES... 2 GROBER ABLAUF... 3 PRÄSENTATIONEN... 6 TEST... 7 1 Organisatorisches Jeder Student
MehrRobert Hartmann Public v1.0 (Feb 2015) Architektur & Agilität - Praxisbericht
Robert Hartmann Public v1.0 (Feb 2015) Architektur & Agilität - Praxisbericht 1 Agenda Vorstellung Architektur & Agilität Industriedomäne Praxisbeispiele Wie geht es weiter? 2/26/2015 2 Vorstellung Robert
MehrSoftware Systems Engineering
Software : SoSe 08 Prof. Dr. Klaus Schmid Software Produktlinien Ein neues Programm soll erstellt werden. Das habe ich doch schon mal programmiert, oder? Alter Code passt aber nicht ganz! Wird passend
MehrSchulinternes Curriculum für Informatik (Q2) Stand April 2015
Schulinternes Curriculum für Informatik (Q2) Stand April 2015 Unterrichtsvorhaben Q2-I Thema: Modellierung und Implementierung von Anwendungen mit dynamischen, nichtlinearen Datenstrukturen Modellieren
Mehr