Die Skriptsprache Python im Kontext
des Softwareentwicklungsprozesses
Die Skriptsprache Python im Kontext
des Softwareentwicklungsprozesses
Konzepte und praktische Arbeiten
zur Diplomarbeit:
„Eignet sich die Skriptsprache Python
für schnelle Entwicklungen
im Softwareentwicklungsprozess?“
Ingo Linkweiler, 26. Juni 2002
Die Skriptsprache Python im Kontext
des Softwareentwicklungsprozesses
Inhalt:
1.) Vorstellung praktischer Arbeiten:
• Struktogrammeditor „PyNassi“
• Umsetzung der Einführung „Von Stiften & Mäusen“
2.) Konzepte der geplanten Diplomarbeit:
• Python für schnelle Softwareentwicklung
• Einsatz in der Ausbildung
Die Skriptsprache Python im Kontext
des Softwareentwicklungsprozesses
Projekt 1: Struktogrammeditor PyNassi
Pynassi ermöglicht...
• grafische Erstellung von
Struktogrammen.
(Nassi-Shneiderman)
• direkte Eingabe von
Python-Anweisungen.
• Python-Quelltext
aus dem Struktogramm erzeugen.
• den Ablauf am Struktogramm
und Quelltext zu beobachten.
Die Skriptsprache Python im Kontext
des Softwareentwicklungsprozesses
Beispiel...[PyNassi.py]
Die Skriptsprache Python im Kontext
des Softwareentwicklungsprozesses
1.2 Von Stiften und Mäusen
Die Skriptsprache Python im Kontext
des Softwareentwicklungsprozesses
Von Stiften und Mäusen
from sum import *
# Objekte erzeugen
bild = Bildschirm()
stift = Stift(bild)
# Mit Stift ein Diagramm zeichnen
stift.bewegeBis(10,10)
stift.schreibe("Funktionsplotter")
stift.zeichneLinie(0,200, 639,200)
stift.zeichneLinie(320,0, 320,399)
for x in range(-20,20):
stift.zeichneLinie( x*10+320,198,
x*10+320,202)
for y in range(-20,20):
stift.zeichneLinie(318,y*10+200,
322,y*10+200)
# Funktion einlesen
print "Funktion eingeben:"
funktion = raw_input("f(x)=")
# Funktion zeichnen
for x in range(-20, 20):
y = eval(funktion)
print "f(" , x, ")=" ,y
stift.bewegeBis( x*10+320,200-y*10)
stift.runter()
bild.GibFrei()
Die Skriptsprache Python im Kontext
des Softwareentwicklungsprozesses
Von Stiften und Mäusen
SuM erweitert um:
• Sprites
• Konzeptfehler gefunden:
Beziehung zwischen
Stift+Bildschirm hergestellt
Beispiel: Funktionsplotter
Die Skriptsprache Python im Kontext
des Softwareentwicklungsprozesses
Konzept der Diplomarbeit
Ziel:
Untersuchung der Programmiersprache Python
auf Eignung für:
• Schnelle Softwareentwicklung (Rapid Prototyping)
• Einsatz als Programmiersprache in der Ausbildung
Die Skriptsprache Python im Kontext
des Softwareentwicklungsprozesses
Einleitung
Grundlagen
Kriterien
Analyse RP
Analyse FD
Praxis
Vorstellung von Python:
• Objektorientierte Skriptsprache
• Historische Einordnung
• Open Source
• Quellen: www.python.org
Die Skriptsprache Python im Kontext
des Softwareentwicklungsprozesses
Einleitung
Grundlagen
Kriterien
Analyse RP
Analyse FD
Konzepte der schnellen Softwareentwicklung
Evolutionäres Prototyping
• (Rapid) Prototyping
• Code & Fix
• Extreme Programming
• Pair Programming
Anforderungen
Prototyp erstellen
Rapid Prototyping
Validierung
Anforderungen
durch den Anwender
Praxis
Prototyp erstellen
Eigenschaften von Skriptsprachen
Prototyp OK?
• Interpreter
Nein
Modifikation der Anforderungen
Änderungen / Erweiterungen
des Prototyps
Ja
Prototyp OK?
Fertiger Prototyp
• Fehlertoleranz, einfacher Test
• Leicht erlernbar
ungeeignet
geeignet
geeignet
Verwerfen, Neudesign
Konzept übernehmen,
Realisieren z.B. nach Wasserfallmodell
Weiterentwicklung zum Endprodukt
Die Skriptsprache Python im Kontext
des Softwareentwicklungsprozesses
Einleitung
Grundlagen
Kriterien
Analyse RP
Analyse FD
Praxis
Schnelle Softwareentwicklung
Interessen
professioneller
Entwickler
GUI-Entwurf
Rapid Prototyping
Generatoren
Bibliotheken
Dokumentation
Wiederverwendung
…
Portabilität
Teamarbeit
Lesbarkeit
Fehlertoleranz
…
?
Schüler,
Ausbilder
Grundlagen
Erlernbarkeit
Algorithmen
Leichte Syntax
Orthogonalität
…
Gemeinsamkeiten?
Konflikte?
Die Skriptsprache Python im Kontext
des Softwareentwicklungsprozesses
Einleitung
Zu untersuchen bezüglich schneller Softwareentwicklung
Grundlagen
• Komplexität (weniger Code  schnellere Entwicklung) ++
Kriterien
• Portabilität ++
Analyse RP
Analyse FD
Praxis
• GUI-Entwurf ++ und Werkzeuge +
• Automatische Quelltexterzeugung + und Modellierungs-Werkzeuge +
• Syntax und Semantik ++
• Wiederverwertbarkeit ++
• Dokumentation ++
• Softwaretest ++
• Fehlersuche ++
• Bibliotheken ++
• Datenbanken +
• Besonderheiten (pickling)
Die Skriptsprache Python im Kontext
des Softwareentwicklungsprozesses
Einleitung
Grundlagen
Kriterien
Analyse RP
Analyse FD
Praxis
Beispiele aus der Syntax
Viele interne Basisdatentypen: Listen, Tupel, Hashes
liste=[1,2,3,4]
print liste[2:4]
Blockbildung durch Einrücken: gut lesbar, keine Anweisungen nötig
if x<0:
print “negativ“
else:
print “positiv“
Standard-Parameter, offene und benannte Parameterlisten
def erhoehe_um(a,b=1):
return a+b
Dynamische Typisierung, volle Polymorphie
Python.exe
Integrierte Speicherverwaltung und Gargabe Collection , Keine Pointer
Die Skriptsprache Python im Kontext
des Softwareentwicklungsprozesses
Einleitung
Grundlagen
Kriterien
Analyse RP
Analyse FD
Praxis
Python aus fachdidaktischer Sicht
• Ziel: Lernen der Modellierung und Problemlösung
Paradigmen und Lösungsansätze:
prozedural und obj.-orientiert ++, funktional +, logisch • Analyse der Lesbarkeit (statistisch, Umfragen) ++
• Eingabewerkzeuge und integrierte Entwicklungsumgebungen ++
• Verzicht auf Unnötiges ++
• Orthogonalität: Frei von Widersprüchen +
• Konzepte und Lernziele (in Arbeit)
• Tutorials und Lernhilfen ++
Die Skriptsprache Python im Kontext
des Softwareentwicklungsprozesses
Einleitung
Grundlagen
Kriterien
Analyse RP
Analyse FD
Python im praktischen Einsatz
Umfrage & Statistik
Meinungen von Entwicklern und Ausbildern,
die Python einsetzen oder erproben:
• Überwiegend sehr positives Feedback
• Probleme allenfalls im Detail
Praxis
Fazit:
• Positiver Eindruck auch in der Praxis vielfach bestätigt
• Python ist gut lesbar und schnell erlernbar
• Bestens geeignet für schnelle Softwareentwicklung
Die Skriptsprache Python im Kontext
des Softwareentwicklungsprozesses
Umfrage: „Lesbarkeit“ des Quelltextes
VISUAL BASIC:
TCL:
ADA:
SMALLTALK:
APL:
SCHEME:
BETA:
SML:
C++:
PYTHON:
COBOL:
PROLOG:
DELPHI:
PERL:
EIFFEL:
FORTH:
PASCAL:
FORTRAN:
MODULA:
JAVA:
LISP:
LISP:
MODULA:
JAVA:
PASCAL:
FORTRAN:
PERL:
FORTH:
PROLOG:
EIFFEL:
PYTHON:
DELPHI:
SML:
SCHEME:
COBOL:
SMALLTALK:
C++:
TCL:
BETA:
VISUAL BASIC:
APL:
ADA:
0,00
1,00
2,00
3,00
4,00
5,00
6,00
Die Skriptsprache Python im Kontext
des Softwareentwicklungsprozesses
Diskussion
Ingo Linkweiler,
[email protected]
www.ingo-linkweiler.de/diplom