Schulungsmaterial copyright by Dipl.-Inf. Göran Sonnemann www ...
Schulungsmaterial copyright by Dipl.-Inf. Göran Sonnemann www ...
Schulungsmaterial copyright by Dipl.-Inf. Göran Sonnemann www ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
<strong>Schulungsmaterial</strong> <strong>copyright</strong> <strong>by</strong> <strong>Dipl</strong>.-<strong>Inf</strong>. <strong>Göran</strong> <strong>Sonnemann</strong><br />
<strong>www</strong>.computer-wissen.net<br />
Software-Engineering<br />
Software Engineering<br />
Grundlagen<br />
26.08.2005 SWE - <strong>Dipl</strong>.-<strong>Inf</strong>. G.<strong>Sonnemann</strong> 1<br />
<strong>www</strong>.computer-wissen.net<br />
<strong>Schulungsmaterial</strong> <strong>copyright</strong> <strong>by</strong> <strong>Dipl</strong>.-<strong>Inf</strong>. <strong>Göran</strong> <strong>Sonnemann</strong><br />
Softwareklassifikation<br />
Systemsoftware<br />
Steuerprogramme<br />
Speichermanager, Treiber ...<br />
Übersetzerprogramme<br />
Anwendungssoftware<br />
Interpreter, Compiler, Linker ... Buchhaltung, Handwerker ...<br />
Dienstprogramme<br />
Druckerspooler, Debugger,<br />
COPY, FORMAT ...<br />
Spezielle Web-Präsenz,<br />
Spez. Logistik-Software ...<br />
26.08.2005 SWE - <strong>Dipl</strong>.-<strong>Inf</strong>. G.<strong>Sonnemann</strong><br />
<strong>www</strong>.computer-wissen.net<br />
Ü 0-1<br />
3<br />
<strong>Schulungsmaterial</strong> <strong>copyright</strong> <strong>by</strong> <strong>Dipl</strong>.-<strong>Inf</strong>. <strong>Göran</strong> <strong>Sonnemann</strong><br />
Programme<br />
Standard-Software<br />
Office-, Grafik-Software ...<br />
Branchen-Software<br />
Individual-Software<br />
• Ansammlung von Befehlen in einer<br />
bestimmten Programmiersprache<br />
• Reihenfolge der Ausführung: Algorithmus<br />
• unterschiedliche Herangehensweisen bzw.<br />
Programmierstile:<br />
• Prozedurale Programmierung<br />
• Objektorientierte Programmierung<br />
• Funktionale Programmierung<br />
• Logische Programmierung<br />
26.08.2005 SWE - <strong>Dipl</strong>.-<strong>Inf</strong>. G.<strong>Sonnemann</strong><br />
<strong>www</strong>.computer-wissen.net<br />
Ü 0-2<br />
5<br />
26.08.2005<br />
1. Begriffe<br />
• EDV / IT<br />
• Hardware / Software<br />
• Softwaretechnik (SWT)<br />
Softwareentwicklung<br />
Softwareengineering (SWE)<br />
• Programme ...<br />
• Daten ...<br />
26.08.2005 SWE - <strong>Dipl</strong>.-<strong>Inf</strong>. G.<strong>Sonnemann</strong> 2<br />
<strong>www</strong>.computer-wissen.net<br />
Daten<br />
• einfache Datentypen<br />
– Text (Namen, Adressen ...)<br />
– Zahl (Alter, Gehalt ...)<br />
– Logisch (verheiratet, bezahlt ...)<br />
• Datenstrukturen<br />
– Arrays (Status einer 7-Segment-Anzeige, Damespiel ...)<br />
– Datensatz (Angaben zu einer Person, Gästebucheintrag)<br />
• Datei<br />
– unstrukturiert (TXT, DOC)<br />
– sequentieller Zugriff<br />
• Datenbank<br />
– strukturiert (Access-Datenbank, mySQL-DB)<br />
– direkter Zugriff (indexsequentiell)<br />
Fach DB<br />
26.08.2005 SWE - <strong>Dipl</strong>.-<strong>Inf</strong>. G.<strong>Sonnemann</strong> 4<br />
<strong>www</strong>.computer-wissen.net<br />
2. Programmentwicklung<br />
Werkzeug<br />
[CASE-Tools]<br />
Editor, Gen.<br />
Compiler<br />
Linker<br />
Debugger<br />
Schritt<br />
entwerfen<br />
Ergebnis<br />
Algorithmus<br />
kodieren Quellcode<br />
übersetzen<br />
Module verb.<br />
testen<br />
Maschinencode<br />
Programm/<br />
Bibliothek ...<br />
fehlerfreies<br />
Programm<br />
Beispiel<br />
Grafik/<br />
Umgspr.<br />
VB*<br />
CPP<br />
OBJ<br />
EXE<br />
DLL<br />
26.08.2005 SWE - <strong>Dipl</strong>.-<strong>Inf</strong>. G.<strong>Sonnemann</strong> 6<br />
<strong>www</strong>.computer-wissen.net
<strong>Schulungsmaterial</strong> <strong>copyright</strong> <strong>by</strong> <strong>Dipl</strong>.-<strong>Inf</strong>. <strong>Göran</strong> <strong>Sonnemann</strong><br />
<strong>www</strong>.computer-wissen.net<br />
3. Software-Projekte<br />
Software Projekte<br />
Projekt-Definition (lt. DIN 69 901)<br />
• Vorhaben, das im Wesentlichen durch die<br />
Einmaligkeit der Bedingungen in ihrer<br />
Gesamtheit gekennzeichnet ist:<br />
– einmalige Aufgabenstellung / Zielvorgabe<br />
– zeitliche Befristung<br />
– Kostenbegrenzung lt. Budget<br />
– Unsicherheiten / Risiken<br />
Hausbau<br />
Ausstattung eines Bildungsunternehmens<br />
mit IT-System (Hardware, Software, Vernetzung)<br />
Entwicklung spezieller Software<br />
26.08.2005 SWE - <strong>Dipl</strong>.-<strong>Inf</strong>. G.<strong>Sonnemann</strong> 7<br />
<strong>www</strong>.computer-wissen.net<br />
<strong>Schulungsmaterial</strong> <strong>copyright</strong> <strong>by</strong> <strong>Dipl</strong>.-<strong>Inf</strong>. <strong>Göran</strong> <strong>Sonnemann</strong><br />
Projekt-Vorstudie<br />
Projekt Vorstudie<br />
• Prüfung, ob Projekt realisierbar ist:<br />
– aus organisatorischer, wirtschaftlicher, IT-Sicht<br />
Eigenentwicklung<br />
make<br />
Fremdentwicklung<br />
buy<br />
Anpassung vorhd./<br />
Standard-Software<br />
1. Problemanalyse<br />
2. Zielbeschreibung<br />
3. Lösungsalternativen<br />
Projektantrag<br />
4. Zeit- und Personalplanung<br />
5. Wirtschaftlichkeitsbetrachtung (Kosten/Nutzen)<br />
26.08.2005 SWE - <strong>Dipl</strong>.-<strong>Inf</strong>. G.<strong>Sonnemann</strong><br />
<strong>www</strong>.computer-wissen.net<br />
Ü 0-3<br />
9<br />
<strong>Schulungsmaterial</strong> <strong>copyright</strong> <strong>by</strong> <strong>Dipl</strong>.-<strong>Inf</strong>. <strong>Göran</strong> <strong>Sonnemann</strong><br />
Software-Engineering<br />
Software Engineering<br />
• ingenieurmäßige Entwerfen und<br />
Implementieren von Software<br />
• Erfüllung bestimmter Anforderungen<br />
• Berücksichtigung bestimmter Prinzipien<br />
• Verwendung standardisierter Methoden<br />
und Werkzeuge zu deren Umsetzung<br />
• Qualitätsmanagement<br />
• Dokumentation<br />
26.08.2005 SWE - <strong>Dipl</strong>.-<strong>Inf</strong>. G.<strong>Sonnemann</strong> 11<br />
<strong>www</strong>.computer-wissen.net<br />
26.08.2005<br />
Projekt-Management Projekt Management (lt. DIN 69901)<br />
Gesamtheit von Führungsaufgaben, -techniken<br />
und -mitteln für die Abwicklung eines Projektes:<br />
• Organisation und Leitung<br />
• Planung, Lenkung, Kontrolle<br />
– Termine, Kosten, Ergebnisse<br />
• Bereitstellung/Einsatz von<br />
– Methoden<br />
– Software-Werkzeugen (Tools)<br />
• Projektdokumentation<br />
• Personalführung<br />
• Risikoanalyse und Konfliktmanagement<br />
Fach SWP<br />
26.08.2005 SWE - <strong>Dipl</strong>.-<strong>Inf</strong>. G.<strong>Sonnemann</strong> 8<br />
<strong>www</strong>.computer-wissen.net<br />
4. Problematik – Software/SWE<br />
Softwarekrise(n)<br />
• SWE individuell (Künstler vs. Ingenieur)<br />
• SWE komplex, schwer kalkulierbar<br />
• SW immer bedeutsamer …<br />
Lösungsansätze<br />
• Ingenieurmäßige Planung/Entwicklung,<br />
Strukturierung und Zerlegung in Teilaufgaben<br />
RÜ Softwarekrise<br />
Murphis Law<br />
• Things are more complex than they seem to be<br />
• Things take longer than expected<br />
• Things cost more than expected<br />
• If something can go wrong it will<br />
Remark: Murphy was an optimist<br />
26.08.2005 SWE - <strong>Dipl</strong>.-<strong>Inf</strong>. G.<strong>Sonnemann</strong> 10<br />
<strong>www</strong>.computer-wissen.net<br />
Anforderungen an Software<br />
• Funktionstreue<br />
– Übereinstimmung von Produktanford. und Endprodukt<br />
(Programm macht was es soll)<br />
• Qualitätstreue<br />
– Funktion in vereinbarter Genauigkeit, Geschwindigkeit ...<br />
• Termintreue<br />
– Einhaltung geplanter Fertigstellungs-/Übergabetermine<br />
– in Praxis selten erreicht z.B. Windows 95 ...<br />
• Kostentreue<br />
– Einhaltung des geplanten Budgets<br />
26.08.2005 SWE - <strong>Dipl</strong>.-<strong>Inf</strong>. G.<strong>Sonnemann</strong> 12<br />
<strong>www</strong>.computer-wissen.net
<strong>Schulungsmaterial</strong> <strong>copyright</strong> <strong>by</strong> <strong>Dipl</strong>.-<strong>Inf</strong>. <strong>Göran</strong> <strong>Sonnemann</strong><br />
<strong>www</strong>.computer-wissen.net<br />
Prinzipien des SWE<br />
• Strukturierung<br />
– Aufgliedern in einzelne Bestandteile/Beziehungen<br />
– Ziel: weniger komplex, transparenter<br />
• Modularisierung<br />
– Gesamtsystem aus in sich abgeschl. Teilsysteme (Module),<br />
Zerlegung in Teilprobleme (Teamentwicklung)<br />
– Ziel: Einzelmodule leicht erstellbar, austauschbar ...<br />
• Mehrfachverwendung<br />
– wiederholte Nutzung einmal erstellter Module<br />
– Ziel: verkürzen der Entwicklungszeit/-kosten<br />
• Standardisierung<br />
– Einhaltung von Normen, Regeln, Richtlinien...<br />
– Ziel: verbesserte Akzeptanz, Wartbarkeit, Nachvollziehbarkeit ...<br />
26.08.2005 SWE - <strong>Dipl</strong>.-<strong>Inf</strong>. G.<strong>Sonnemann</strong> 13<br />
<strong>www</strong>.computer-wissen.net<br />
<strong>Schulungsmaterial</strong> <strong>copyright</strong> <strong>by</strong> <strong>Dipl</strong>.-<strong>Inf</strong>. <strong>Göran</strong> <strong>Sonnemann</strong><br />
Analyse<br />
Definition<br />
Entwurf<br />
Kodierung<br />
Testen<br />
Einführung<br />
Wartung/Pflege<br />
Phasenmodell der SWE<br />
Analyse<br />
Entwurf<br />
Realisierung<br />
Nutzung<br />
26.08.2005 SWE - <strong>Dipl</strong>.-<strong>Inf</strong>. G.<strong>Sonnemann</strong> 15<br />
<strong>www</strong>.computer-wissen.net<br />
<strong>Schulungsmaterial</strong> <strong>copyright</strong> <strong>by</strong> <strong>Dipl</strong>.-<strong>Inf</strong>. <strong>Göran</strong> <strong>Sonnemann</strong><br />
Alternative Modelle<br />
V-Modell Modell Spiral-Modell<br />
Spiral Modell<br />
26.08.2005 SWE - <strong>Dipl</strong>.-<strong>Inf</strong>. G.<strong>Sonnemann</strong> 17<br />
<strong>www</strong>.computer-wissen.net<br />
26.08.2005<br />
Methoden des SWE<br />
• Top-Down-Entwurf<br />
– Gesamtaufgabe schrittweise in Teilaufgaben zerlegt<br />
– Reihenfolge ...<br />
• Bottom-Up-Entwurf<br />
– einige Einzelaufgaben zuerst<br />
– Verknüpfen von Teilergebnissen zum Gesamtprogramm<br />
• Prototyping<br />
– schnelle Entwicklung eines Prototyps ohne kompl. Funktion<br />
z.B. Fenster-/Menüstruktur ohne Funktion (VB-Generatoren)<br />
– Weiterentwicklung anhand der Kundenwünsche<br />
• Simultanentwicklung<br />
– zeitlich überlappende Entwicklungsphasen<br />
– Einsatz bei Zeitknappheit<br />
26.08.2005 SWE - <strong>Dipl</strong>.-<strong>Inf</strong>. G.<strong>Sonnemann</strong> 14<br />
<strong>www</strong>.computer-wissen.net<br />
Analyse<br />
Wasserfallmodell<br />
Entwurf<br />
Kodierung<br />
Testen<br />
Nutzung<br />
26.08.2005 SWE - <strong>Dipl</strong>.-<strong>Inf</strong>. G.<strong>Sonnemann</strong> 16<br />
<strong>www</strong>.computer-wissen.net<br />
AB 0-4<br />
0<br />
funktionsorientiert<br />
Hauptfunktion<br />
1<br />
Teilfunktion<br />
1.1<br />
Teilfunktion 1.2<br />
Teilfunktion<br />
1.3<br />
Gesamt<br />
funktion<br />
Hauptfunktion<br />
2<br />
Teilfunktion<br />
2.1<br />
Teilfunktion<br />
2.2<br />
Entwurfsvarianten (ÜS)<br />
Hauptfunktion<br />
3<br />
Teilfunktion<br />
3.1<br />
Teilfunktion<br />
3.2<br />
Teilfunktion<br />
3.3<br />
SADT<br />
PAP/Struktogramme<br />
datenorientiert<br />
n<br />
m<br />
1 n<br />
Datenbank<br />
ERD<br />
Relationenentw.<br />
Kunde<br />
+name<br />
+geschlecht<br />
-geboren<br />
-rabatt<br />
-kreditlimit<br />
+kaufen()<br />
+mahnen()<br />
objektorientiert<br />
Person<br />
+name<br />
+geschlecht<br />
-geburtstag<br />
+betreut<br />
0..1 1..*<br />
Mitarbeiter<br />
+name<br />
-geschlecht<br />
-geboren<br />
-gehalt<br />
-urlaub<br />
+urlaubMachen()<br />
+antragStellen()<br />
Klassen/Objekte<br />
UML<br />
26.08.2005 SWE - <strong>Dipl</strong>.-<strong>Inf</strong>. G.<strong>Sonnemann</strong> 18<br />
<strong>www</strong>.computer-wissen.net
<strong>Schulungsmaterial</strong> <strong>copyright</strong> <strong>by</strong> <strong>Dipl</strong>.-<strong>Inf</strong>. <strong>Göran</strong> <strong>Sonnemann</strong><br />
<strong>www</strong>.computer-wissen.net<br />
Entwurfsvarianten (klassisch)<br />
funktionsorientiert<br />
• im Vordergrund stehen die<br />
Funktionen/Algorithmen<br />
• strikte Trennung von den<br />
Daten<br />
• Strukturierte<br />
Programmierung<br />
(Sequenz, Selektion,<br />
Iteration)<br />
☺ Systematik / Übersicht<br />
Daten separat/isoliert entw.<br />
Windows-Anwendg. in C++<br />
HTML-Projekt für’s Internet<br />
datenorientiert<br />
• im Vordergrund stehen die<br />
Daten eines Systems<br />
• zentrale Verwaltung in einem<br />
Datenbanksysteme<br />
• Funktionalität über 4GL,<br />
Abfragesprachen als<br />
„Nebensache“<br />
Access-Datenbank<br />
Webshop (mySQL)<br />
26.08.2005 SWE - <strong>Dipl</strong>.-<strong>Inf</strong>. G.<strong>Sonnemann</strong> 19<br />
<strong>www</strong>.computer-wissen.net<br />
<strong>Schulungsmaterial</strong> <strong>copyright</strong> <strong>by</strong> <strong>Dipl</strong>.-<strong>Inf</strong>. <strong>Göran</strong> <strong>Sonnemann</strong><br />
Überblick ü.d.g. SWE-Prozess<br />
SWE Prozess<br />
• Überblick über den gesamten<br />
Softwareentwicklungsprozesses<br />
– Einteilung lt. Entwurfsvarianten<br />
– Zeitanteil<br />
– Ziel und Ergebnis<br />
– Methoden, Modelle, Verfahren,<br />
Darstellungsmöglichkeiten ...<br />
AB 0-5<br />
0<br />
26.08.2005 SWE - <strong>Dipl</strong>.-<strong>Inf</strong>. G.<strong>Sonnemann</strong> 21<br />
<strong>www</strong>.computer-wissen.net<br />
<strong>Schulungsmaterial</strong> <strong>copyright</strong> <strong>by</strong> <strong>Dipl</strong>.-<strong>Inf</strong>. <strong>Göran</strong> <strong>Sonnemann</strong><br />
26.08.2005<br />
Entwurfsvarianten (aktuell)<br />
objektorientierte Entwicklung<br />
gleichzeitige Entwicklung von:<br />
• Funktionen/Algorithmen<br />
Methoden und<br />
• Daten eines Systems<br />
Attribute (Eigenschaften)<br />
☺ praxisnah, schnell ...<br />
ziemlich komplex schwieriger<br />
Windows-Objekte in VB ...<br />
Ü 0-4<br />
26.08.2005 SWE - <strong>Dipl</strong>.-<strong>Inf</strong>. G.<strong>Sonnemann</strong> 20<br />
<strong>www</strong>.computer-wissen.net