72
ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Grundlagen der Softwaretechnologie Programmiertechnische Grundlagen 1 Programmiertechnische Grundlagen 1 P1: Konzepte und Programmiersprachen, Perl, Interaktive Programme, Web Anwendungen

ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

Embed Size (px)

Citation preview

Page 1: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

ZT Univ.-LektorDipl.-Ing. Dr. Markus Schranz

staatlich befugter und beeideter Ingenieurkonsulent für Informatik

Grundlagen der SoftwaretechnologieGrundlagen der SoftwaretechnologieProgrammiertechnische Grundlagen 1Programmiertechnische Grundlagen 1

P1: Konzepte und Programmiersprachen, Perl, Interaktive Programme, Web Anwendungen

Page 2: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

2ZT Schranz Informationstechnologie KEG

Entwicklung Interaktiver Software– Grundlegende Konzepte der Programmentwicklung

– Komponenten der Programmierung

– Programmiersprachen und Konzepte Compiler und SW-Architekturen Moderne Anwendungsmöglichkeiten Objektorientierte Programmierung

– SW für kommerzielle Applikationen Web-Entwicklungen Exemplarische Vertiefung in Perl und Java

– Softwaretest und -wartung

Themenüberblick GdST 1-3Themenüberblick GdST 1-3

Page 3: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

3ZT Schranz Informationstechnologie KEG

Grundlagen der Applikationsentwicklung– Entwicklung Interaktiver Software

Konzepte, Anwendungsbereiche, Sprachen, Werkzeuge, Daten

Software-Technologie (Programmiertechn. Grundlagen)– Konzepte der Programmentwicklung, Sprachdetails,

Software-Architekturen, OO, Test/Wartung, prakt. Beispiele

IKT-Vertiefung– Datenmanagement und -haltung; Moderne Datenbanken und

angewandte Standards

SW-Projektmanagement– Beteiligte, Prozesse, Regeln, Kontrolle

Abgrenzung Themenbereiche im Abgrenzung Themenbereiche im Msc. Interactive Media ManagementMsc. Interactive Media Management

Page 4: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

4ZT Schranz Informationstechnologie KEG

Programmiertechnische Grundlagen– Konzepte der Programmentwicklung

– Grundprinzipien und moderne Programmierkonzepte (XP)

– Konkreten Beispielen (Perl Literaturvorgabe)

Entwicklung von interaktiver Software– Web-Applikationsentwicklung

– Programmgestaltung in verteilten Umgebungen

– Interaktive Programme mit Perl

– Hausarbeit

AgendaAgenda

Page 5: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

ZT Univ.-LektorDipl.-Ing. Dr. Markus Schranz

staatlich befugter und beeideter Ingenieurkonsulent für Informatik

Grundlagen der SoftwaretechnologieGrundlagen der Softwaretechnologie

P1: Interaktive Software, Konzepte, Perl, Web2.0

Page 6: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

6ZT Schranz Informationstechnologie KEG

Eckpunkte der Anwendungsentwicklung– Projektspezifika

Anforderungen, Entwürfe, Partner, Resourcen

– Anwendungsumgebung Anwendungsdomäne, Branche, Charakteristiken, Medien

– Werkzeuge Programmiersprache, Entwicklungsumgebung (IDE)

– Akteure Auftraggeber, Umsetzer Kompetenzen

– Steuerung / Kontrolle ?

Entwicklung Interaktiver SoftwareEntwicklung Interaktiver Software

Page 7: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

7ZT Schranz Informationstechnologie KEG

Besonderheiten bei interaktiven / modernen Anwendungen– Involvierung des (meist noch) anonymen Kunden in die

Applikation (Produkt- bzw. Leistungspräsentation) neue Medien / Internet / WWW bieten hierfür

hervorragende Voraussetzungen (siehe -> Web Applikation)

– Herausforderungen ans Applikationsdesign besondere Aspekte der Interaktion Kommunikationsdetails, Wissensgewinn,

Informationsaustausch

– Dezentrale Datenmanipulation wo liegen die während der Interaktion

verwendeten Daten?

Entwicklung Entwicklung InteraktiverInteraktiver Software Software

Page 8: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

8ZT Schranz Informationstechnologie KEG

Die Softwareerstellung an sich– Konzepte und Werkzeuge moderner SE

Moderne Programmiersprachen wie Java, Perl Werkzeuge, Hilfsmittel, Libraries, Archive (CPAN) Entwicklungsumgebungen (Eclipse,JBuilder,*Studio,vi)

– Konzepte im Software-Entwicklungsprozess Objekt-Orientierung Komponent-based SE, Reuse MVC-Architekturen

– Paradigmenwechsel in der interaktiven SE Web 2.0, AJAX

Entwicklung Interaktiver Entwicklung Interaktiver SoftwareSoftware

Page 9: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

9ZT Schranz Informationstechnologie KEG

Kunde Kulturveranstaltungsmanagement

Page 10: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

10ZT Schranz Informationstechnologie KEG

Kunde Kulturveranstaltungsmanagement

Page 11: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

11

Software EngineeringSoftware Engineering

Fundamentals of Software

Engineering

Ghezzi, Jazayeri, and Mandrioli

Prentice Hall, 2003.

Grundsätzliche Konzepte zum SWE finden sich in

Page 12: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

12

Software EngineeringSoftware Engineering

Das Vorgehens-Modell (V-Modell)

Quelle: http://www.v-modell.iabg.de/ Das Vorgehensmodell ist ein Prozeßmodell, mit dessen

Hilfe Projekte gemäß der Norm ISO 9001 abgewickelt

werden können.

Das Vorgehensmodell beschreibt die Aktivitäten

(Tätigkeiten) und Produkte (Ergebnisse), die während

der Entwicklung von Software durchzuführen bzw. zu

erstellen sind.

Page 13: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

13

Software EngineeringSoftware Engineering

Das Vorgehens-Modell (V-Modell) Notwendigkeit der Standardisierung in der Softwareentwicklung

ist unbestritten „Ingenieurmäßige SW-Entwicklung“ Zielsetzungen

– Eindämmung der SW-Kosten über den Lebenszyklus– Verbesserung und Gewährleistung der SW-Qualität– Verbesserung der Kommunikation zwischen Auftraggeber und

Auftragnehmer. Standarisierung der Zielsetzungen durch Regelungen auf drei

Ebenen– Vorgehensweise („Was“)– anzuwendende Methoden („Wie“)– funktionale Anforderungen an einzusetzende Werkzeuge („Womit“)

Page 14: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

14

Software Engineering – V-ModellSoftware Engineering – V-Modell

Einsatzbereich des V-Modells

– Vertragsgrundlage definiert Lieferumfang der Software

Vollständigkeit der Softwaredokumentation.

– Arbeitsanleitung dient bei Softwareentwicklung als Leitfaden und konkrete

Arbeitsanleitung

– Kommunikationsbasis Entwicklungsdokumente, Glossar dienen als Basis

wechselseitigen Verständnisses zwischen Auftraggeber, Nutzer,

Auftragnehmer und Entwicklern.

Page 15: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

15ZT Schranz Informationstechnologie KEG

Extreme Programming (XP)Extreme Programming (XP)

Einsatz von Agilem Software Engineering im WWW

Page 16: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

16ZT Schranz Informationstechnologie KEG

Extreme Programming (XP)Extreme Programming (XP)

Einsatz von Agilem Software Engineering im WWW

Page 17: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

17ZT Schranz Informationstechnologie KEG

Extreme Programming (XP)Extreme Programming (XP)

Kundenrechtsproklamation

Page 18: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

18ZT Schranz Informationstechnologie KEG

Extreme Programming (XP)Extreme Programming (XP)

Entwicklerrechtsproklamation

Page 19: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

19ZT Schranz Informationstechnologie KEG

Extreme Programming (XP)Extreme Programming (XP)

Agiler Entwicklungsprozess

Page 20: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

20ZT Schranz Informationstechnologie KEG

Extreme Programming (XP)Extreme Programming (XP)

Page 21: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

21ZT Schranz Informationstechnologie KEG

Extreme Programming (XP)Extreme Programming (XP)

Grundkonzepte KISS und YAGNI

Page 22: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

22ZT Schranz Informationstechnologie KEG

Extreme Programming (XP)Extreme Programming (XP)

Viele kleinere Iterationen, mehrere Releases

Page 23: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

23ZT Schranz Informationstechnologie KEG

Extreme Programming (XP)Extreme Programming (XP)

Vier Variablen im Entwicklungsprozess

Page 24: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

24ZT Schranz Informationstechnologie KEG

Extreme Programming (XP)Extreme Programming (XP)

Grundprinzipien und Konzepte

Page 25: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

25ZT Schranz Informationstechnologie KEG

Extreme Programming (XP)Extreme Programming (XP)

Grundprinzipien und Konzepte

Page 26: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

26ZT Schranz Informationstechnologie KEG

Extreme Programming (XP)Extreme Programming (XP)

Grundprinzipien und Konzepte

Page 27: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

27ZT Schranz Informationstechnologie KEG

Extreme Programming (XP)Extreme Programming (XP)

Begriffe, Techniken und Werkzeuge

Page 28: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

ZT Univ.-LektorDipl.-Ing. Dr. Markus Schranz

staatlich befugter und beeideter Ingenieurkonsulent für Informatik

Grundlagen der SoftwaretechnologieGrundlagen der Softwaretechnologie

Konkrete Werkzeuge der Softwareentwicklung - Programmiersprachen

Page 29: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

29ZT Schranz Informationstechnologie KEG

Programmiersprachen– Sprachengenerationen

Werkzeuge der Applikationsentwicklung– Metakonzepte (Architekturen, OO, Komp., Protokolle)

– Sprachspezifika, Musterbeispiel Perl

Umsetzung der sprachspezifischen Konzepte– Eingabe -> Verarbeitung -> Ausgabe (EVA-Prinzip)

– Objekte -> Attribute -> Methoden

– Pattern Matching

Konkrete Werkzeuge der Software-Konkrete Werkzeuge der Software-EntwicklungEntwicklung

Page 30: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

30ZT Schranz Informationstechnologie KEG

Natürliche und künstliche Sprachen– Konzepte von Programmiersprachen– Sprachelemente

Einzelelemente vs. Pluralitäten

Komplexität in der Anwendungsentwicklung– Abbildung in Sprachelemente (Objekte)

– Anweisungen (Verben)

– TMTOWTDI („tim-toady“) Werkzeuge & Applikationsumgebungen

– Filehandles, Operatoren, Kontrollstrukturen– Regular Expressions & Pattern Matching– Reference-Cards und praktische Demo1...

Dynamische Softwareentwicklung - Dynamische Softwareentwicklung - Literaturvorgabe PERLLiteraturvorgabe PERL

Page 31: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

31ZT Schranz Informationstechnologie KEG

Sprachkonzepte– Konventionen und Zeitgeist

was ist in der Praxis für bestimmte Anwendungsfelder am geeignetsten

– OO – Objektorientierung Ein Begriff der Computersprachen der dritten Generation (siehe Perl-Buch Kap. 11 & 12)

– Komponententorientierung Applikationsteile (besonders Oberflächen) werden

komponentenorientiert zusammengebaut

– Architekturen – MVC Model, View und Control als Paradigma

Dynamische Dynamische Softwareentwicklung - PERLSoftwareentwicklung - PERL

Page 32: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

32ZT Schranz Informationstechnologie KEG

MVC ist ein Architekturmuster zur Aufteilung von Softwaresystemen in drei Einheiten– Datenmodell (Model)

enthält Daten (DB) und evtl. Geschftslogik

– Präsentation (View) Darstellung der Daten und Entgegennahme

der Benutzerinteraktionen am „Frontend“

– Programmsteuerung (Control) Verwaltet die unterschiedlichen Sichten, nimmt Aufrufe der View entgegen

und entscheidet, welche Daten im Modell geändert werden müssen. Sie enthlt Mechanismen, um die Benutzerinteraktion der Präsentation bzw. der Datenmanipulation im Modell einzuschränken bzw. gezielt zu steuern

Ziel ist es, die Flexibilität des Programmentwurfes so zu erhöhen, dass spätere Änderungen und eine evtl. Wieder-verwendung von erarbeiteten Komponenten ermöglicht bzw. erleichtert werden

Architekturmuster - MVCArchitekturmuster - MVC

View Model

Controller

Page 33: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

33ZT Schranz Informationstechnologie KEG

Quellen und Erweiterungen– Libraries

sind Sammlungen von nutzbaren Ergebnissen, vordefinierten Funktionalitäten und Methoden in einer bestimmten Programmiersprache (meist sprachabhängig)

– Archiveerlauben die Recherche und Erweiterung von Programmiersprachen und Programmteilen mittels sorgfältig strukturierter Aufbewahrung

CPAN demo

Dynamische Dynamische Softwareentwicklung - PERLSoftwareentwicklung - PERL

Page 34: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

34ZT Schranz Informationstechnologie KEG

Die Programmiersprache PERL– Entwickelt von Larry Wall (1987)

– Unterstützt von Tom Christiansen und Randal L. Schwartz

– PERL ist die „Practical Extraction and Report Language“

PERL ProgrammingPERL Programming

Page 35: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

35ZT Schranz Informationstechnologie KEG

Warum PERL lernen?– Systemadministration mit einer Allzwecksprache

– Unix-Anwendungen optimieren

– CGI-Programme fürs WWW entwerfen

– Prototypen für Programme entwerfen

– Keine Entwicklungsumgebung notwendig

– Bequem portierbar

– Leistungsfähig

– TMTOWTDI

PERL GrundlagenPERL Grundlagen

Page 36: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

36ZT Schranz Informationstechnologie KEG

Grundlagen rund um PERL

– PERL ist eine interpretierte Programmiersprache

– Basiert auf C, unix tools (awk, sed)

– Prozedural oder objektorientiert anwendbar

– Grundsprache oder Bibliotheken (pm)

– Open community unterstützt PERL

– CPAN als riesige PERL-Ressource www.cpan.org

– Manpages rund um perl Man perl, perldoc perlfaq, perldoc <Modulname>

PERL GrundlagenPERL Grundlagen

Page 37: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

37ZT Schranz Informationstechnologie KEG

Hello World in PERL– Dokument hello.pl editieren:

#!/usr/bin/perl –w

print “Hello World!\n“;

Programm ausführbar setzenChmod +x hello.pl

Programm ausführen #> hello.pl

PERL GrundlagenPERL Grundlagen

Page 38: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

38ZT Schranz Informationstechnologie KEG

Einführungskurs in PERL– Perl Datentypen

Skalare ($scalar) Arrays (@array) Hashes (%hash)

–Beispiele als Demo

– Perl Operationen Arithmetische (+,-,*,/,**,%) Comparative (==, !=, <, >,<=, >=, <=>, cmp) Logische (&&, ||, ! Bzw. AND, OR, NOT)

PERL GrundlagenPERL Grundlagen

Page 39: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

39ZT Schranz Informationstechnologie KEG

Einführungskurs in PERL– Perl Operationen (2)

Zuweisungen ( $lvalue = $rvalue ) Inkrement/Dekrement ( $i++, $i--, ++$i, --$i ) Zuweisungsoperatoren

–Variabler Inkrement (+=, -=)

*=, /=, %=, **=

Stringverkettung, -wiederholung ( . x)

Rangfolge und Assoziativität

PERL GrundlagenPERL Grundlagen

Page 40: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

40ZT Schranz Informationstechnologie KEG

Ein- und Ausgabe in PERL– Dateihandles

– Standardein-/-ausgabe

STDIN, STDOUT, STDERR

FILEH

$zeile = <STDIN>;

Print STDOUT „hello“;

PERL GrundlagenPERL Grundlagen

Page 41: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

41ZT Schranz Informationstechnologie KEG

Einsatz der Datentypen– Skalare

Skalare werden verwendet um Strings und Zahlen zu bearbeiten.

$zahl = 24;

$text = “das ist ein testtext“;

$zahl++;

$text .= “\n“;

Kontextsensitive Umwandlung in PERL

PERL Datentypen und -strukturenPERL Datentypen und -strukturen

Page 42: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

42ZT Schranz Informationstechnologie KEG

Einsatz der Datentypen

– ArraysIn Arrays werden Listeninhalte verwaltet.

@liste = (´das´,´ist´,´eine´,´liste´);

@zahlen = (1..1000);

@nichts = ();

@zahlen = (@zahlen, 1001, 1002, 1003);

($a, $b) = (1,2);

($x, $y) = ($y, $x);

print $zahlen[3];

$#zahlen, scalar(@zahlen)

PERL Datentypen und -strukturenPERL Datentypen und -strukturen

Page 43: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

43ZT Schranz Informationstechnologie KEG

Einsatz der Datentypen

– Arrays bearbeiten Sortieren

@geordnete_zahlen = sort { $a <=> $b } @zahlen;

Durchlaufen

foreach $x (@liste) { ... }

Listen einlesen, ausgeben

chop, @zeilen = <STDIN>, print @zeilen;

Elemente hinzufügen/entfernen

push, pop, shift, unshift, splice

PERL Datentypen und -strukturenPERL Datentypen und -strukturen

Page 44: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

44ZT Schranz Informationstechnologie KEG

Einsatz der DatentypenMit Hashes arbeiten

– Hashes sind wie Arrays eine Sammlung von Daten (komplexe Datenstruktur)

– Hashes sind assoziative arraysbestehen aus ungeordneten Paaren von Schlüsseln und Werten

– Hashes können als Listen definiert werden(schlüssel1, wert1, schlüssel2, wert2,...)

PERL Datentypen und -strukturenPERL Datentypen und -strukturen

Page 45: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

45ZT Schranz Informationstechnologie KEG

Einsatz der DatentypenMit Hashes arbeiten

%paare = (´rot´, 255, ´grün´,150,´blau´,100);

%paare = (rot => 255, gruen => 150, blau => 100);

%leer = ();

$paare{schwarz} = 50;

$rot_wert = $paare{rot};

PERL Datentypen und -strukturenPERL Datentypen und -strukturen

Page 46: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

46ZT Schranz Informationstechnologie KEG

Einsatz der Datentypen

Auf Hashelemente zugreifen

Alle Werte

@werte = values(%paare);

@schluessel = keys(%paare);

Löschen: $geloeschter_wert = delete $paare{rot};

Durch-Iterieren: foreach $stadt (sort keys %paare) {...}

PERL Datentypen und -strukturenPERL Datentypen und -strukturen

Page 47: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

47ZT Schranz Informationstechnologie KEG

Einsatz der Datentypen

Komplexere Datentypen

Durch die Kombination der angewandten Datentypen lassen sich komplexeste Datenstrukturen erstellen. Allerdings können in den Datenstrukturen nur Skalare verschachtelt werden.

Über Referenzen können Skalare auf andere Datenstrukturen erzeugt werden:

$arrayref = \@werte;

$hashref = \%paare;

$komplex_list = ($arrayref, $hashref, 27, ´text´);

PERL Datentypen und -strukturenPERL Datentypen und -strukturen

Page 48: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

48ZT Schranz Informationstechnologie KEG

Blöcke

Anweisungen werden mit ; abgeschlossen

Eine Gruppen von Anweisungen kann mit { und } zu einem Block zusammengefasst werden:

{

$a = 1;

$b = 2;

}

Blöcke können als bare blocks definiert werden oder im Rahmen der Flusssteuerung (Bedingungen, Schleifen) verwendet werden.

PERL FlusssteuerungPERL Flusssteuerung

Page 49: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

49ZT Schranz Informationstechnologie KEG

Bedingungen

if, else, elsif, unless

if ($a < 0) {

$a = 1;

} else {

$a = -1;

}

Der Bedingungsoperator ?:

$a = ($a < 0)?1:-1; # können auch expressions sein

PERL FlusssteuerungPERL Flusssteuerung

Page 50: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

50ZT Schranz Informationstechnologie KEG

Schleifen

While-Schleifen Until-Schleifen

while ($a > 0) { #solange wahr / falsch

print $a--;

next if ($a == 100);

last if ($a == 99);

}

Do-Schleifen

Do { ... } while ($a>0); # do { ... } until ($a == 0);

PERL FlusssteuerungPERL Flusssteuerung

Page 51: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

51ZT Schranz Informationstechnologie KEG

Schleifen

for-Schleifen

# for (Startwert; Bedingungsausdruck; Aenderung) {...}

for ($i = 1; $i < 10; $i++) {

print $i;

}

foreach ist eine Spezialform, wo die Anzahl der Durchläufe auf die Anzahl der Elemente des angegebenen arrays beschränkt ist.

PERL FlusssteuerungPERL Flusssteuerung

Page 52: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

52ZT Schranz Informationstechnologie KEG

Bisher Diskutiertes bildet die Basis vieler anderer Programmiersprachen

Pattern Matching bildet in PERL den leistungsfähigsten und flexibelsten Aspekt– Was sind regular expressions (patterns)

– Wie werden diese angewandt

– Wozu dient pattern matching?

PERL Pattern MatchingPERL Pattern Matching

Page 53: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

53ZT Schranz Informationstechnologie KEG

Pattern Matching Operatoren und Ausdrücke– Operator =~

if ($string =~ m/muster/) { ... }

– Einfache Muster:/foo//dies oder das//GrOsSklEineGAl/i

– Sonderzeichen in Patterns:^, $, ., +, ?, *, {, }, (, ), \, /, |, [, ] # müssen „escaped“ werden

– Klassen von Muster:\d, \D, \w, \W, \s, \S

PERL Pattern MatchingPERL Pattern Matching

Page 54: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

54ZT Schranz Informationstechnologie KEG

Pattern Matching Spezialfälle– Mehrfaches Erkennen

/.../g;

– Negative Patterns!~ /.../;

– Gruppierung und Alternativen/(H|M|S|Br)aus/

– Prioritäten (lookahead)/abc(?=de)/, /abc(?!de)/

PERL Pattern MatchingPERL Pattern Matching

Page 55: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

55ZT Schranz Informationstechnologie KEG

Suchen und Ersetzen– Teile isolieren und speichern

/abc(\w+)xyz/

– Der Operator s///$text =~ s/abc(\w+)xyz/ABC$1XYZ/;

– Pattern Matching über mehrere Zeilens///s, s///m

– Ersetzen durch einen PERL-Ausdrucks/abc(\w+)xyz/“ABC“.uc($1).“XYZ“/e;

PERL Pattern MatchingPERL Pattern Matching

Page 56: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

56ZT Schranz Informationstechnologie KEG

Subroutinen erstellen und verwenden– Subroutinenaufruf

$ergebnis = &addiere(2,3);

– Werteübergabe, lokale Variable und Ergebnisrückgabesub addiere { my ($a, $b) = @_; return $a+$b;}

PERL Sub-RoutinenPERL Sub-Routinen

Page 57: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

57ZT Schranz Informationstechnologie KEG

PERL Module verwenden

– use CGI;

Argumente übergeben, Umgebungsvariablen

– Die Variablen @ARGV, %ENV

Optionen auswerten

– use Getopt::Std;

– getopts(´hf:d´);

CGI Methoden verwenden, CGI-Programme schreiben

AusblickAusblick

Page 58: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

58ZT Schranz Informationstechnologie KEG

PERL Programme auf wae.culturall.com

– lokale Programmentwicklung Berechnungen, etwa Sparbuchzinsen nach N Jahren

– verteilte Services Rückblick auf fahrenheit.pl vom 29.3.2008

– Wie funktioniert perl?

– was macht die Applikation zur Web-Applikation?

– Arbeiten mit Linux

– Textbasierter Editor

Praktische AnwendungPraktische Anwendung

Page 59: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

ZT Univ.-LektorDipl.-Ing. Dr. Markus Schranz

staatlich befugter und beeideter Ingenieurkonsulent für Informatik

Grundlagen der SoftwaretechnologieGrundlagen der Softwaretechnologie

Interaktive Softwareentwicklung am Beispiel von Web-Applikationen

Page 60: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

60ZT Schranz Informationstechnologie KEG

Web Service ArchitekturenWeb Service Architekturen

Client/Server ModellAnbieter vs. Nachfrager, Protokoll

Browser-Funktionalitätengrafisch vs. textorientiert, HTML, Internet Service Integration

Server-KonfigurationVirtuelle Server, Server Extensions, Redirects,...

Site of IntelligenceScript execution am Server oder am Browser …

Page 61: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

61ZT Schranz Informationstechnologie KEG

HTTPHTTP

Das Hypertext Transfer Protokoll

Einfaches und schnelles Protokoll, geeignet für ein verteiltes Hypermedia-Informationssystem

Client/Server Ansatz Zustandslos (stateless) Meta-Information

Page 62: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

62

Def.: Eine Web-Anwendung ist ein Softwaresystem, das auf Spezifikationen des World Wide Web Consortium (W3C) beruht und Web-spezifische Ressourcen wie Inhalte und Dienste bereitstellt, die über eine Benutzerschnittstelle, den Web-Browser, verwendet werden.

– Software-Aspekt–d.h. statische Seiten alleine stellen keine

Web-Anwendung dar

– Benutzerschnittstellen-Aspekt –d.h. Web Services alleine

stellen keine Web-Anwendung dar

MotivationMotivation

Page 63: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

63

Integration und Umsetzung Integration und Umsetzung dynamischer Inhaltedynamischer Inhalte

Umsetzung von Informationen, die zur Zugriffszeit generiert werden– Aktuelle Informationsdienste (Wetterbericht,

Verkehrsaufkommen, Tagesgeschehen, Börsenkurse,…)

– Dynamische Informationsquellen (Datenbanken, Programme)

Integration der bestehenden Anwendungen über Schnittstellen an den WWW Server– Script-Editoren

– Programmiersprachen

– Template-Systeme

– Redaktionssysteme

Page 64: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

64

Integration und Umsetzung Integration und Umsetzung dynamischer Inhaltedynamischer Inhalte

“Dynamische” Inhalte aus Legacy Applications– Eine Applikation, die relevante Informationen liefert, welche

als solche in das WWW eingebunden werden soll (Lagerbestandssystem, Katalog, Bibliothekssystem, Telefonbuch,…)

– Moderne DatenbankenDie Organisation besitzt bereits eine Datenbank und will deren Inhalte über das Web anbinden

– ManagementsystemeTeure Systeme, die die Steuerung eines ganzen Großbetriebes übernehmen sollen direkt über WWW erreichbar sein (SAP)

Anbindung über vorhandene oder zu programmierende Schnittstellen

Page 65: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

65

Integration und Umsetzung Integration und Umsetzung dynamischer Inhaltedynamischer Inhalte

Lösungen haben eine 3-tier Architecture

Browser Server Legacy Application

Page 66: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

66

HTML Formulare CGI vs Server API Submit mit POST oder GET

– application/x-www-form-urlencoded

Umgebungsvariablen

Das Common Gateway Interface ist eine Schnittstellendefinition, die eine Datenkommunikation zwischen Browser und Server zur dynamischen Dokumenterstellung ermöglicht.

CGI - Common Gateway InterfaceCGI - Common Gateway Interface

Page 67: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

67

CGI OutputCGI Output

print "Content-type: text/html\n\n";

print "<HTML><BODY>....</HTML>";

print "Content-Length: 12345\n";

Das folgende PERL Beispiel erzeugt on-the-fly ein HTML Dokument. Der Inhalt kann durch übergebene Parameter eines Formulars bestimmt sein.

Page 68: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

68

CGI ZuständeCGI Zustände

in URLs abspeichern in HIDDEN FIELDS abspeichern Cookies verwenden http://wae.culturall.com/duk/imm/test.pl

Das HTTP Protokoll ist zustandslos, d.h. der Server sieht verschiedene Zugriffe auf ihn als vollkommen unabhängig an. Mit CGI können Zustände festgehalten werden.

Page 69: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

69

CGI SoftwareCGI Software

Perl– CGI.pm– use CGI;$query = new CGI;...print $query->header;$query->param(feldname)

– Perl Web Application Demo2...

C– Uniform Library of Common Code (CERN)

Java– Servlet, JSP, Struts,...

Page 70: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

70ZT Schranz Informationstechnologie KEG

Entwerfen Sie eine webbasierte gesicherte Applikation, mit der personalisiert N Lottotipps generiert und persistent aufbewahrt werden können

Verwenden Sie hierzu– Perl CGI Programmierung (use CGI;)– Zur Personalisierung Cookies (siehe CGI.pm)– Zur Authentifizierung Passwörter (erstmals

erfassen, danach abfragen)– Zur Sicherung SSL (https-Aufrufe)

Übungsangabe LottoÜbungsangabe Lotto

Page 71: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

71ZT Schranz Informationstechnologie KEG

Die Seite soll in Form eines Formulars erfasst werden. Das CGI-Programm erzeugt dabei das Formular und die Ergebnisse abhängig von den erkannten Eingaben

Der Status soll per Cookie erkannt werden (Test, ob auch Browser-Restarts möglich sind)

Das Formular soll eine Fehlermeldung bringen, wenn kein SSL verwendet wird

Übungsangabe Lotto DetailsÜbungsangabe Lotto Details

Page 72: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische

72ZT Schranz Informationstechnologie KEG

Entwerfen Sie eine interaktive Webapplikation, die folgende Anforderungen erfüllt:

Interaktive Benutzerdatenerfassung

– Der Benutzer soll über Web-Eingabemöglichkeiten Daten erfassen können

– ein mehrstufiger Prozess soll ihn bei der Erledigung seiner Aufgabe begleiten

Serverseitige Berechnungen bzw. Datenmanipulationen sind gefragt

– Die erfassten Daten sollen (persistent) gesammelt und ausgewertet werden

– Die Daten sollen personalisiert behandelt werden, d.h. jeder Benutzer sieht individuelle Daten

Die Applikation soll

– einen mehrseitige Fragebogen oder

– ein mehrstufiges Registrierungsscript oder

– ein interaktives Quiz oder

– eine Spiel/Wett/Lotto-Annahmestelle darstellen und die Daten individuell bearbeiten bzw. anzeigen.

Verwenden Sie hierzu die trainierten Konzepte von Perl, inklusive CGI-handing, Cookie Management, persistente Datenverwaltung mit Files und Kontrolle der Datentypen

Das Ergebnis umfasst Programmdokumentation (Funktionalität, Programmbeschreibung), Programmcode und lauffähige Software

Arbeitsaufgabe Arbeitsaufgabe

Applikationsentwicklungskonzept bis zur GdST-2