zt univ.-lektor dipl.-ing. dr. markus schranz staatlich befugter und beeideter ingenieurkonsulent...
TRANSCRIPT
![Page 1: ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/23.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/24.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/25.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/26.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/27.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/28.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/29.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/30.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/31.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/32.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/33.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/34.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/35.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/36.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/37.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/38.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/39.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/40.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/41.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/42.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/43.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/44.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/45.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/46.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/47.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/48.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/49.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/50.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/51.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/52.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/53.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/54.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/55.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/56.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/57.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/58.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/59.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/60.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/61.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/62.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/63.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/64.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/65.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/66.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/67.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/68.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/69.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/70.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/71.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062312/55204d8249795902118d697e/html5/thumbnails/72.jpg)
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