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
72
Embed
ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent für Informatik Grundlagen der Softwaretechnologie Programmiertechnische.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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
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
3ZT Schranz Informationstechnologie KEG
Grundlagen der Applikationsentwicklung– Entwicklung Interaktiver Software
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
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
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
PERL Datentypen und -strukturenPERL Datentypen und -strukturen
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:
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
63
Integration und Umsetzung Integration und Umsetzung dynamischer Inhaltedynamischer Inhalte
Umsetzung von Informationen, die zur Zugriffszeit generiert werden– Aktuelle Informationsdienste (Wetterbericht,
Integration der bestehenden Anwendungen über Schnittstellen an den WWW Server– Script-Editoren
– Programmiersprachen
– Template-Systeme
– Redaktionssysteme
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
65
Integration und Umsetzung Integration und Umsetzung dynamischer Inhaltedynamischer Inhalte
Lösungen haben eine 3-tier Architecture
Browser Server Legacy Application
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
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.
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.
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,...
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
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
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