Softwaretechnik. Wesentliche Inhalte der Vorlesung



Ähnliche Dokumente
1. Einführung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi

Software Engineering

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

Programmiersprachen und Programmierkonzepte

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

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

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

Grundlagen der Informatik

Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015

Modulhandbuch für das BA Kombinationsfach Angewandte Informatik Multimedia

Algorithmik II. SS 2003 Prof. Dr. H. Stoyan Lehrstuhl für Informatik 8 ( Künstliche Intelligenz) stoyan@informatik.uni-erlangen.

Anforderungen an Informatikabsolventen Beitrag zum Workshop "Bachelor / Master im Informatikstudium und im Beruf" März 2003, HAW Hamburg

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

Kapitel 2: Der Software-Entwicklungsprozess

C++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang

In den weiterführenden Vorlesungen

OOD. Objektorientiertes Design. Peter Coad und Edward Yourdon. Prentice Hall Verlag

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

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

Abschnitt 16: Objektorientiertes Design

Liste Programmieren - Java

Übungen zur Softwaretechnik

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

Some Software Engineering Principles

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Softwaretechnik. Fomuso Ekellem WS 2011/12

Objektorientierte Programmierung

Software Systems Engineering

Übungsaufgaben zum Software Engineering: Management

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

Übungsklausur vom 7. Dez. 2007

Erfahrungen mit Hartz IV- Empfängern

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

Informatik 12 Datenbanken SQL-Einführung

Kapiteltests zum Leitprogramm Binäre Suchbäume

Java Enterprise Architekturen Willkommen in der Realität

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

Einführung in die Informatik

Kontrollstrukturen - Universität Köln

SDD System Design Document

Informatik Java-Programmierkurs im Rahmen der Berufs- u. Studienorientierung für Schüler. Joliot-Curie-Gymnasium GR 2010 Nico Steinbach

Die Softwareentwicklungsphasen!

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

Informationswirtschaft II Rational Unified Process (RUP)

VBA-Programmierung: Zusammenfassung

Informationswirtschaft II

Programmieren Formulierung eines Algorithmus in einer Programmiersprache

Was versteht man unter Softwaredokumentation?

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

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

Wir helfen Ihnen, sich auf Ihre Kompetenzen zu konzentrieren.

16 Architekturentwurf Einführung und Überblick

Wintersemester 2010/2011 Rüdiger Westermann Institut für Informatik Technische Universität München

Programmieren in Haskell Einführung

Es war einmal... "StudyING: Welten bewegen - Welten gestalten"

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

PHP Kurs Online Kurs Analysten Programmierer Web PHP

Robot Karol für Delphi

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

Grundbegriffe der Informatik

3.2,,Eichung von Function Points (Berichtigte Angabe)

FACHHOCHSCHULE MANNHEIM

Grundlagen Software Engineering

IKP Uni Bonn Medienpraxis EDV II Internet Projekt

6. Programmentwicklung

SharePoint Demonstration

Softwaretechnik (Allgemeine Informatik) Überblick

7HVWHQYRQ6$3$QZHQGXQJHQPLWGHP([WHQGHG &RPSXWHU$LGHG7HVW7RROH&$77

Institut für Telematik Universität zu Lübeck. Programmieren. Kapitel 0: Organisatorisches. Wintersemester 2008/2009. Prof. Dr.

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.

WI EDI Solution. Stand

Modellierung und Programmierung 1

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

Software Projekt 2 / Gruppe Knauth Lernziele:

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

Proseminar: Website-Managment-System. NetObjects Fusion. von Christoph Feller

ERP-Evaluation systematisch und sicher zum optimalen ERP-System

Einführung in die Informatik

Fragebogen zur Anforderungsanalyse

TISIS - Industrie 4.0. Ereignis, Ort, Datum

n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen - 1 -

Einführung in die Informatik

TTS - TinyTimeSystem. Unterrichtsprojekt BIBI

1. Grundbegriffe des Software-Engineering

Einführung in die Informatik II

Klausur Software Engineering für WI (EuI)

Objektorientierte Programmierung OOP

Was versteht man unter Softwarequalität?

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

Prolog basiert auf Prädikatenlogik

Praktikant / Abschlussarbeit im Bereich Softwareentwicklung / Mechatronik (m/w)

UpToNet DMS Posteingang

32 Bachelorstudiengang Allgemeine Informatik

BSV Ludwigsburg Erstellung einer neuen Internetseite

Planung. Visualisierung. Programmierung

Vom Finden und Suchen Büroorganisation und KitaPlusQM

Einführung in Eclipse und Java

Handbuch ECDL 2003 Basic Modul 6: Präsentation Diagramm auf einer Folie erstellen

Transkript:

Softwaretechnik Prof. Dr. Bernhard Schiefer schiefer@informatik.fh-kl.de http://www.informatik.fh-kl.de/~schiefer Prof. Dr. Bernhard Schiefer 1-1 Wesentliche Inhalte der Vorlesung Phasen der Software-Entwicklung Einführung: Programmieren mit C++ (i.w. beschränkt auf ANSI C) Software-Entwicklungswerkzeuge Software-Entwicklungsumgebungen Prof. Dr. Bernhard Schiefer 1-2

Inhalt von Softwaretechnik II Objektorientierte Software-Entwicklung Analyse und Entwurf Implementierung mit C++ Typtheorie Entwurfsmuster 2. objektorientierte Sprache: Java Prof. Dr. Bernhard Schiefer 1-3 Literatur P. Prinz, U. Kirch-Prinz: Objektorientiert programmieren mit ANSI C++, Prentice Hall, 1999. I. Pohl: Object-Oriented Programming Using C++, Addison-Wesley, 1997. H. Balzert: Lehrbuch der Software-Technik : Software- Entwicklung, Spektrum Akad. Verl., 1996. S. Harbison, G. Steele: C - A Reference Manual, Prentice Hall, 1995.... Prof. Dr. Bernhard Schiefer 1-4

Übungen Praktische Übungen am PC begleitend zur Vorlesung. elementar wichtig für das Verständnis des Stoffes. und damit auch für das Bestehen der Klausur! Organisatorisches Einteilung in Gruppen. Listen liegen aus. Prof. Dr. Bernhard Schiefer 1-5 Softwaretechnik Motivation Prof. Dr. Bernhard Schiefer 1-6

Begriffe Software Programmieren / Implementieren Software Engineering Informatik Softwaretechnik Prof. Dr. Bernhard Schiefer 1-7 Ziel des Software Engineering Produktion von Qualitätssoftware Probleme: Programme tun nicht das was sie sollen. Programme kommen bei großen Datenmengen zu keinem Ende. Die Programme können nicht mit ungewöhnlichen Situationen umgehen. Programme sind schwer änderbar. Die Entwicklung muß häufig immer wieder bei Null anfangen. Programme können nicht gut miteinander arbeiten. Prof. Dr. Bernhard Schiefer 1-8

Qualitätsfaktoren (1) Effizienz ökonomische Nutzung von Ressourcen Portabilität Übertragbarkeit auf verschiedene Hard- und Software- Umgebungen Integrität Schutz gegen unberechtigte Veränderungen Benutzerfreundlichkeit Leichtigkeit der Bedienung Prof. Dr. Bernhard Schiefer 1-9 Qualitätsfaktoren (2) Korrektheit Die Fähigkeit von Softwareprodukten ihre Aufgaben exakt so zu erfüllen, wie sie durch Anforderung und Spezifikation definiert sind. Primäre Qualität! Robustheit Die Fähigkeit von Softwaresystemen auch unter außergewöhnlichen Bedingungen zu funktionieren. Verhalten für Fälle, die in der Spezifikation nicht ausführlich beschrieben sind. Prof. Dr. Bernhard Schiefer 1-10

Qualitätsfaktoren (3) Erweiterbarkeit Die Leichtigkeit mit der Softwareprodukte an Änderungen in der Spezifikation angepaßt werden können. Strategien: Einfachheit des Entwurfs Dezentralisierung: Architektur autonomer SW-Moduln Prof. Dr. Bernhard Schiefer 1-11 Qualitätsfaktoren (4) Wiederverwendbarkeit Die Eigenschaft ganz oder teilweise für neue Anwendungen wiederverwendet werden zu können. Beeinflußt alle anderen Qualitäten mit! Kompatibilität Das Maß der Leichtigkeit, mit der Softwareprodukte mit anderen verbunden werden können. Ansätze: Standardisierte Formate, Schnittstellen, Formate, Protokolle. Prof. Dr. Bernhard Schiefer 1-12

Was beeinflußt die Qualitätsfaktoren? Fähigkeiten des Programmierers Analyse Kommunikation Strukturierung Umsetzung Teamfähigkeit Dokumentation Zur Verfügung stehende Zeit Projektplanung Programmiersprache Prof. Dr. Bernhard Schiefer 1-13 Phasenmodell Produktspezifikation Design der Architektur Projektplanung Detaildesign Implementierung Fehlersuche Test- und Abnahme Wartung- und Pflege Prof. Dr. Bernhard Schiefer 1-14

Produktspezifikation Was tut das Produkt - und wer wird es benutzen? Wie sieht die Hard- und Software-Umgebung aus? Schnittstellen zu anderen Produkten? Welche speziellen Operationen werden realisiert? Wie sehen die Antwortzeiten dafür aus? Anforderung bezüglich der Sicherheit? Geplante Erweiterungen? Prof. Dr. Bernhard Schiefer 1-15 Design Einsatz von Methoden aus der Systemanalyse SA/SD OOA/OOD Ziele: Bildung von handhabbaren Modulen. Formale Beschreibung von diesen. Prof. Dr. Bernhard Schiefer 1-16

Projektplanung Optimaler Einsatz der vorhandenen Ressourcen Ermittlung der benötigten Ressourcen Brooks's Law: Adding more people to a late software project makes it later. Auswahl von Werkzeugen (CASE-Tools) Prof. Dr. Bernhard Schiefer 1-17 Implementierungsphase Umsetzen des Entwurfes in eine Programmiersprache. Probleme hier führen nicht selten zu Rückwirkungen bis zur Designphase! Prof. Dr. Bernhard Schiefer 1-18

Testphase Funktionale Tests positiv / negativ Test alpha / beta Test Performance Analysen Versionskontrolle erforderlich Prof. Dr. Bernhard Schiefer 1-19 Softwarewartung Anteil der Wartung an Gesamtkosten: > 70% Aufteilung der Kosten der SW-Wartung: 42% Änderungen der Anforderungen 17% Änderungen in Dateiformaten 12% Notfallrettungsaktionen 9% "normale" Fehlerbehebung 6% Hardware-Änderungen 6% Korrektur der Dokumentation 4% Effizienzverbesserung 4% Sonstiges Prof. Dr. Bernhard Schiefer 1-20

Softwaretechnik Programmiersprachen Prof. Dr. Bernhard Schiefer 1-21 Klassifikation von Programmiersprachen Programmierparadigmen Generationen Ursprüngen Prof. Dr. Bernhard Schiefer 1-22

Klassifikation nach Generationen X GL = X Generation Language Deutsch: Sprache der X ten Generation. Sehr grobe Einteilung der Programmiersprachen. Kennzeichnet i.w. die Entwicklung der letzten Jahrzehnte. Prof. Dr. Bernhard Schiefer 1-23 1GL: Sprachen der ersten Generation Maschinensprache Direkt von einem Computer abarbeitbar Binäre Darstellung der Anweisungen praktisch von Menschen nicht lesbar Heute nur noch zu finden in: Mikroprozessorsteuerungen ROM-BIOS Bootblock Prof. Dr. Bernhard Schiefer 1-24

2GL: Sprachen der zweiten Generation Assemblersprachen. Entsprechen von der Struktur her den Maschinenbefehlen. Jedoch werden Bezeichnernamen für Variablen und Befehle verwendet. Lesbar! Einsatz nur noch in sehr systemnahen Bereichen. Prof. Dr. Bernhard Schiefer 1-25 3GL: Sprachen der dritten Generation Prozedurale (problemorientierte) Sprachen. Abstraktion von der Realisierung auf der Maschine. Konzentration auf möglichst direkte Umsetzung von Algorithmen. Beispiele: FORTRAN, COBOL, ALGOL PL/1, PASCAL, C, ADA, C++, OBERON Prof. Dr. Bernhard Schiefer 1-26

4GL: Sprachen der vierten Generation Integration von Datenbankzugriffen Datenbankabfragesprachen Programmiersprache mit integriertem Datenbanktypkonzept Merkmale: Einheitliche Sprache zur Bearbeitung von Daten im Programm und in der Datenbank. Mengenorientierte Verarbeitung möglich. IdR Tabellen als Programmiersprachentyp. Oft: Integrierte Möglichkeiten zur grafischen Darstellung. Prof. Dr. Bernhard Schiefer 1-27 4 GL Sprachen / Systeme Natural (Software AG) ABAP/4 (SAP AG) Gupta SQL PowerBuilder... Prof. Dr. Bernhard Schiefer 1-28

5GL: Sprachen der fünften Generation Deklarative Sprachen logische und funktionale Programmierung Konzentration auf Beschreibung des gesuchten Ergebnisses Keine (direkte) Beschreibung des Algorithmus Beispiele: Prolog, LISP, ML, Miranda,... Prof. Dr. Bernhard Schiefer 1-29 Klassifikation nach dem Programmierparadigma Funktionale Programmierung Logische (prädikative) Programmierung Strukturierte Programmierung objektorientierte Programmierung Prof. Dr. Bernhard Schiefer 1-30

Funktionale Programmierung Kennzeichen: nur Funktionen als Anweisungen Programmiersprachen: LISP LOGO ML Miranda... Prof. Dr. Bernhard Schiefer 1-31 Logische Programmierung Kennzeichen: keine Beschreibung von Abläufen Beschreibung von Aussagen Programmiersprachen: PROLOG Prof. Dr. Bernhard Schiefer 1-32

Strukturierte Programmierung Kennzeichen: Konzepte für Unterroutinen Steueranweisungen (Schleifen, Bedingungen,...) Programmiersprachen: ALGOL PL/1 MODULA PASCAL C... Prof. Dr. Bernhard Schiefer 1-33 Objektorientierte Programmierung Kennzeichen: Objekte und Klassen Kapselung Vererbung Programmiersprachen: SMALLTALK EIFFEL C++ JAVA OBERON... Prof. Dr. Bernhard Schiefer 1-34

Ursprünge - Stammbaum ALGOL 1957 FORTRAN 1954 COBOL 1957 PL/1 1960 BASIC 1963 PASCAL 1968 C 1972 SIMULA 1967 LISP 1962 ML MODULA 1975/82 ADA 1975/95 C++ 1980 EIFFEL SMALLTALK 1988 1983 PROLOG 197? LOOPS OBERON 1988 JAVA 1995 Prof. Dr. Bernhard Schiefer 1-35