Software Engineering I - PowerPoint PPT Presentation

About This Presentation
Title:

Software Engineering I

Description:

Software Engineering I Einf hrung – PowerPoint PPT presentation

Number of Views:76
Avg rating:3.0/5.0
Slides: 42
Provided by: MXR01012
Category:

less

Transcript and Presenter's Notes

Title: Software Engineering I


1
Software Engineering I
  • Einführung

2
Agenda
  • Vorlesung Organisatorisches
  • Persönliche Motivation
  • Relevanz von Software
  • Problem Software-Krise
  • Lösung Software-Engineering
  • Vorlesung Ziele und Inhalte

3
Vorlesung SWE I
  • Organisatorisches

4
Moduldetails SWE I
  • Modulname Software Engineering I
  • Modulnummer T2INF2003
  • ECTS Creditpoints 9
  • Dauer 3. 4. Semester
  • Workload Präsenz (h) 96 h 24h
  • Workload Selbststudium (h) 174 h
  • Qualifikationsziele und Kompetenzen
  • Sachkompetenz Die Studierenden kennen die
    Grundlagen des Softwareerstellungsprozesses. Sie
    können eine vorgegebene Problemstellung
    analysieren und rechnergestützt Lösungen
    entwerfen, umsetzen und Dokumentieren. Sie kennen
    die Methoden der jeweiligen Phasen und können sie
    anwenden. Sie können Lösungsvorschläge für ein
    gegebenes Problem konkurrierend bewerten und
    korrigierende Anpassungen vornehmen.
  • Selbstkompetenz Die Studierenden können sich mit
    Fachvertretern über Problemanalysen und
    Lösungsvorschläge, sowie über die Zusammenhänge
    der einzelnen Phasen austauschen. Sie können
    einfache Softwareprojekte autonom entwickeln oder
    bei komplexen Projekten effektiv in einem Team
    mitwirken. Sie können ihre Entwürfe und Lösungen
    präsentieren und begründen. In der Diskussion im
    Team können sie sich kritisch mit verschiedenen
    Sichtweisen auseinandersetzen und diese
    erläutern.
  • Sozial-ethische Kompetenz Sie bewerten die
    eingesetzten Technologien und schätzen ihre
    Folgen ab.
  • Übergreifende Handlungskompetenz Die
    Studierenden können sich selbsständig in
    Werkzeuge einarbeiten. Sie verbinden den
    Softwareentwicklungsprozess mit Techniken des
    Projektmanagement und beachten während des
    Projekts Zeit- und Kostenfaktoren.
  • Lerneinheiten und Inhalte
  • - Vorgehensmodelle
  • - Phasen des SW-Engineering und deren
    Zusammenhänge
  • - Analyse Lastenheft
  • - Spezifikation Pflichtenheft, Anwendungsfälle
  • - Methoden zur Repräsentation von Algorithmen,
    Datenmodellen, Funktionsweisen, Zustands- und
    Regelabhängigkeiten

5
Projektarbeit SWE I
  • Die vorlesungsbegleitende Projektarbeit wird im
    3.Semester in der Selbststudiumzeit und im
    4.Semester auch in den Präsenzzeiten
    durchgeführt!
  • Aktueller Vorlesungsplan, Themen für Ihre
    Projektarbeiten und andere Informationen hier
  • http//wwwlehre.dhbw-stuttgart.de/rentschler/TI
    NF11D
  • Organisation in Projektteams von 5-7 Leuten und
    Auswahl eines der ausgeschriebenen Projektthemen
    bis nächste Woche. Benennung eines
    Projektleiters.

6
Themen für Projektarbeit
  1. Vorlesungsunterlagen SWE I
  2. Salome-TMF 3.x Usability-Verbesserung
  3. Salome 4.0 Neuentwicklung SDLC-Tool
  4. MultiCastor 3.0
  5. Generic Assessment Tool 2.0

7
Persönliche Motivation
  • Sie werden nicht dafür bezahlt,
  • - dass Sie einen Hochschulabschluss haben
  • - dass Sie etwas wissen
  • - dass Sie etwas tun
  • - dass Sie irgendwelche Probleme lösen
  • Sondern dafür
  • dass Sie solche Probleme lösen, bei denen der
    Nutzen der Lösung höher ist als die Kosten der
    Lösung (am besten sogar viel höher!)
  • dass Sie mit ihrer Arbeitskraft einen Mehrwert
    erschaffen.
  • Also lernen Sie bitte
  • Probleme und ihre Wichtigkeit verstehen
  • Probleme lösen
  • Kosten und Nutzen von Technologien und Methoden
    abschätzen
  • Ihre eigene Produktivität einzuschätzen

8
Lösungsorientierung
Version 14.08.2015
Software Engineering I VE 1 Einführung
9
Vorlesung SWE I
  • Ziele und Inhalte

10
Ziele der Vorlesung
  • Vermittlung von Grundwissen in Software
    Engineering (Softwaretechnik)
  • Das beinhaltet
  • Inhalt und Wichtigkeit der Softwaretechnik
    verstehen.
  • Verstehen, was Requirements Engineering ist.
  • Den Softwareentwicklungsprozess und
    unterschiedliche Vorgehensmodelle verstehen und
    beschreiben können.
  • Die Phasen der Softwareentwicklung wie Analyse,
    Entwurf, Implementierung und
    Qualitätssicherung beherrschen.
  • Wissen, was man unter Qualitätssicherung versteht
    und welche Verfahren hierzu existieren.
  • Wissen, wie man Softwareprojekte leitet und
    durchführt.
  • Den Zweck und den Inhalt unterschiedlicher
    Dokumentationsarten kennen.

11
Ziele der Vorlesung
  • Kenntnisvermittlung über Methoden und Prozesse
    zur wirtschaftlichen Herstellung und Pflege
    großer Softwaresysteme in hoher Qualität.
  • Auf dieser Grundlage sollen Sie dann in der Lage
    sein
  • den Stellenwert von Software Engineering zu
    beurteilen
  • erworbenes Wissen über Software-Entwicklung
    systematisch einzuordnen
  • die Ursachen für Schwierigkeiten und Probleme in
    Software-Projekten zu erkennen
  • als Software-Entwickler erfolgreich mit Anwendern
    und Managern zusammenzuarbeiten
  • als Software-Architekt systematisch ein großes
    Softwaresystem zu entwerfen
  • als Software-Projektleiter systematisch und
    zielgerichtet ein großes Softwareprojekt zu
    planen, initiieren und zu leiten

12
Gliederung des Vorlesungsstoffes
Wie modelliere bzw. beschreibe ich Software?
Wie gehe ich vor bei der Software Entwicklung?
Wie führe ich ein Software Projekt?
Wie können Werkzeuge unterstützen?
SWE 1
13
Aktivitäten des SW-Lebenszyklus
Was muss verbessert werden?
Wie tun?
Was tun?
Wurde es richtig getan?
Realisiere es!
Wird benutzt
Problemraum
Lösungsraum
14
Vorlesung SWE I
  • Relevanz von Software
  • Software-Krise
  • Software Engineering

15
Relevanz von Software
  • Die Wirtschaft aller industrialisierten Länder
    hängt von Software ab.
  • Immer mehr Systeme werden durch Software
    gesteuert.
  • Ohne Software geht heute nichts mehr.
  • Die Aufwendungen für Software repräsentieren
    einen enormen Faktor im Bruttosozialprodukt aller
    Länder.
  • Software-Kosten dominieren die Kosten von
    informationstechnischen Systemen.

? Gute Softwareentwicklung ist wichtig
16
Problem Software-Krise
  • Die Software-Krise bezeichnet ein in der Mitte
    der 1960er Jahre verstärkt auftretendes Phänomen
    Erstmals überstiegen die Kosten für die Software
    die Kosten für die Hardware. In der Folge kam es
    zu den ersten großen gescheiterten
    Software-Projekten.

17
Problem Software-Krise
  • 1960 - 1970
  • Menge und Leistungsfähigkeit der Hardware wachsen
    dramatisch
  • Informationsverarbeitung im großen Stil wird
    möglich
  • Ad hoc Verfahren (Code and Fix), Kunsthandwerk
    sowie primitive Programmiersprachen in der
    Software-Entwicklung versagen bei großen
    Systemen.
  • Die Software-Krise geht im Kern auf das Problem
    zurück, dass selbst einfache Programme derart
    komplex aufgebaut sein können, dass sie
    mathematisch schwer beschreibbar und aufgrund der
    hohen Zahl von Permutationen (der Vielzahl von
    internen Software-Zuständen) nicht vollständig
    testbar sind.

? Die Software-Krise ist da
18
Symptome der Software-Krise
  • Softwareprojekte überschreiten geplante Zeit- und
    Budgetgrenzen.
  • Softwareprojekte werden vorzeitig abgebrochen.
  • Softwareprodukte beinhalten nicht die gewünschte
    Funktionalität.
  • Softwareprodukte sind fehlerbehaftet.

19
Lösung Software Engineering
  • Software Engineering als Antwort auf die
    Software-Krise
  • formuliert 1968 auf einer NATO-Konferenz in
    Garmisch-Partenkirchen
  • Software Engineering Die Anwendung eines
    systematischen, disziplinierten und
    quantifizierbaren Ansatzes auf die Entwicklung,
    den Betrieb und die Wartung von Software, das
    heißt, die Anwendung der Prinzipien des
    Ingenieurwesens auf Software.
  • (IEEE 610.12)
  • Im deutschen Sprachraum auch Softwaretechnik
    genannt.

20
Definition Software Engineering
  • Zielorientierte Bereitstellung und systematische
    Verwendung von Prinzipien, Methoden, Konzepten,
    Notationen und Werkzeugen für die arbeitsteilige,
    ingenieurmäßige Entwicklung und Anwendung von
    umfangreichen Software-Systemen
  • zur
  • Steigerung der Produktivität,
  • Verbesserung der Qualität und
  • Erleichterung der Führbarkeit von
    Software-Projekten.
  • siehe Balzert, Lehrbuch der
    Softwaretechnik

21
Einordnung in die Informatik
Version 14.08.2015
Software Engineering I VE 1 Einführung
22
SWE -Übersicht
Version 14.08.2015
Software Engineering I VE 1 Einführung
23
Arten von Software
  • Individualsoftware Einzelanfertigung gemäß
    Kundenauftrag (von klein bis sehr groß).
  • Standardsoftware Serienprodukt sie kann
    anwendungs- oder produktorientiert sein,
    unterliegt meist inkrementeller
    Weiterentwicklung.

Version 14.08.2015
Software Engineering I VE 1 Einführung
24
Vielfalt von Software
  • Stand-Alone Anwendungen
  • Applikationen, welche auf einem lokalen Computer
    ausgeführt werden (z.B. auf einem PC). Sie
    beinhalten alle notwendigen Funktionalitäten und
    benötigen keine Verbindung zu einem Netzwerk.
  • Interaktive, transaktionsbasierte Anwendungen
  • Applikationen, die auf einem entfernten Computer
    ausgeführt werden und auf die von lokalen PCs
    oder Terminals über ein Netzwerk zugegriffen
    wird. Das beinhaltet Web-Anwendungen wie z.B.
    eCommerce, Bankensoftware, .

Version 14.08.2015
Software Engineering I VE 1 Einführung
25
Vielfalt von Software
  • Stapelverarbeitungssysteme
  • Geschäftsanwendungen, welche große Mengen an
    Eingabedaten verarbeiten können.
  • Unterhaltungssysteme
  • Systeme, welche primär dem persönlichen Gebrauch
    und zu Unterhaltungszwecken dienen.
  • Modellierungs- und Simulationssysteme
  • Systeme für wissenschaftliche Zwecke, z.B. um
    komplexe naturwissenschaftliche Prozesse oder
    Systeme nachzubilden.

Version 14.08.2015
Software Engineering I VE 1 Einführung
26
Vielfalt von Software
  • Datenermittlungssysteme
  • Systeme, welche mit Hilfe von Sensoren Daten aus
    ihrer Umgebung sammeln und diese Daten an andere
    Systeme zur Weiterverarbeitung weiterleiten.
  • Systeme aus Systemen
  • Systeme, die aus einer Anzahl anderer
    Softwaresysteme zusammengestellt wurden.
  • Eingebettete Softwaresysteme
  • Hierbei handelt es sich um Softwaresysteme zum
    Steuern und Kontrollieren von Hardwaregeräten.
  • Diese eingebetteten Systeme (embedded systems)
    sind zahlenmäßig die meist verbreiteten
    Softwaresysteme.
  • Hierzu gehört alles von der Haussteuerung bis zur
    Eieruhr.

Version 05.09.2011
Software Engineering I VE 1 Einführung
27
Vielfalt von Software
  • Zusammenfassung
  • Es gibt viele verschiedene Arten von
    Softwaresystemen und es gibt keine universelle
    Entwicklungsmethode für alle diese Arten.
  • Die zu verwendenden Methoden und Werkzeuge hängen
    ab von
  • der Art der zu entwickelnden Anwendung,
  • den Kundenanforderungen und
  • dem fachlichen Hintergrund des Entwicklungsteams.

Version 14.08.2015
Software Engineering I VE 1 Einführung
28
Charakteristika von Software
Version 14.08.2015
Software Engineering I VE 1 Einführung
29
Software-Krise aktuell
  • Die Software-Krise kann auch heute nicht als
    beendet betrachtet werden. Die Komplexität der
    Software-Systeme steigt weiter und damit die
    Probleme, auch wenn es in der Modernisierung und
    Strukturierung des Software-Entwicklungsprozesses
    große Fortschritte gab.
  • Software Engineering ist im Mittel schwieriger
    als das Engineering klassischer Systeme und
    Produkte
  • Beständiger Verbesserungsprozess nötig!

Version 14.08.2015
Software Engineering I VE 1 Einführung
30
Abgrenzung
  • Software Engineering ! Programmieren
  • Sondern Problemlösung
  • Problem bzw. Anforderungen analysieren
  • Lösung erarbeiten
  • System entwickeln
  • Angewendete Techniken
  • Modellierung
  • Wissensbeschaffung
  • Entscheidungsfindung

31
  • Begriffsdefinitonen

32
Begriffsdefinition Engineering
  • Systematisches Herangehen
  • Genaue Problemdefinition
  • Wiederholende Muster erkennen
  • Techniken entwickeln, um Klassen von Problemen zu
    lösen
  • Bestehende Lösungen wiederverwenden
  • Definieren von formalen Modellen zur Förderung
    von Automatisierung
  • Anwendung von Standard-Werkzeugen

33
Begriffsdefinition Prinzipien
  • Prinzipien sind Grundsätze, die man seinem
    Handeln zugrunde legt. Sie sind allgemeingültig,
    abstrakt und bilden eine theoretische Grundlage.
    Sie enthalten keine Aussage darüber, wie das
    Prinzip erreicht werden kann.
  • Prinzipien der Softwaretechnik
  • Abstraktion ?? Konkretisierung
  • Perspektivenbildung
  • Strukturierung
  • Bindung (Kohäsion) und Kopplung
  • Hierarchisierung
  • Modularisierung
  • Standardisierung
  • Kapselung
  • Lokalität

34
Begriffsdefinition Methoden
  • Methoden sind planmäßige, begründete
    Vorgehensweisen zur Erreichung von festgelegten
    Zielen. Zu Methoden gehören eine Notation,
    systematische Handlungsanweisungen und Regeln zur
    Überprüfung der Ergebnisse.
  • Anwendung von Prinzipien
  • Nicht auf Intuition basierend
  • Lehrbar
  • Einfach und leicht zu verstehen

35
Begriffsdefinition Werkzeuge
  • Werkzeuge (Tools) dienen der automatisierten
    Unterstützung von Methoden und Notationen zur
    Steigerung von Effektivität und Effizienz.
  • Charakteristika
  • Erzwingen der Einhaltung von Methoden, Standards,
    Notationen
  • Erhöhung der Produktivität
  • Beispiel
  • Editor, Interpreter, Compiler, Debugger
  • CASE-Werkzeuge (Computer Aided Software
    Engineering)
  • Testsysteme

36
Teilaspekte des Software Engineerings
  • Entwicklungsmethodik
  • zur Modellierung und Dokumentation
  • zur Anforderungserfassung und -analyse
  • zum Systementwurf
  • zur Implementierung (? Programmiermethoden)
  • Projektmanagement
  • zur wirtschaftlichen und koordinierten
    Bearbeitung der Arbeitspakete
  • Qualitätssicherung
  • zur Herstellung und Überwachung einer
    hinreichenden Produktqualität

37
  • Testfragen

38
Fragen und Übungen
  • Warum ist Software so schwer zu entwickeln?
  • ?? Man kann Software nicht anfassen und nicht
    sehen.
  • ?? Softwaresysteme werden immer komplexer.
  • ?? Man muss zunehmend mit Einschränkungen aus
    Altlasten umgehen.
  • ?? Software kann nur schwer geändert werden.

39
Fragen und Übungen
  • Welchen Aussagen stimmen Sie zu?
  • ?? Software beeinflusst unser tägliches Leben.
  • ?? Softwaretechnik beinhaltet Theorien und
    Methoden zur Entwicklung von Software.
  • ?? Die Informationsflut und Komplexität bei der
    Softwareerstellung überfordert eine einzelne
    Person.
  • ?? Die Entwicklung der Software ist wesentlich
    aufwändiger als deren Wartung.

40
Fragen und Übungen
  • Welchen Aussagen stimmen Sie zu?
  • ?? Ein Softwareprodukt besteht nur aus dem
    Programmcode.
  • ?? Softwaretechnik befasst sich nur mit der
    Herstellung von Software.
  • ?? Ein Vorgehensmodell ist die vereinfachte
    Beschreibung eines Softwareentwicklungsprozesses.
  • ?? Die Wartung von Software ist teurer als die
    Erstellung von Software.
  • ?? Neue Anforderungen erhöhen die Fehlerzahl von
    großen Softwaresystemen.

41
  • Vielen Dank für Ihre Aufmerksamkeit
  • Fragen ?
Write a Comment
User Comments (0)
About PowerShow.com