Upload
gevehard-henggeler
View
117
Download
3
Embed Size (px)
Citation preview
Die Skriptsprache Python im Kontext des Softwareentwicklungsprozesses
Konzepte und praktische Arbeiten
zur Diplomarbeit:
„Eignet sich die Skriptsprache Python
für schnelle Entwicklungen
im Softwareentwicklungsprozess?“
Die Skriptsprache Python im Kontext
des Softwareentwicklungsprozesses
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äusenfrom sum import *
# Objekte erzeugenbild = Bildschirm()stift = Stift(bild)
# Mit Stift ein Diagramm zeichnenstift.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
Beispiel: Funktionsplotter
SuM erweitert um:
• Sprites
• Konzeptfehler gefunden: Beziehung zwischen Stift+Bildschirm hergestellt
Von Stiften und Mäusen
Die Skriptsprache Python im Kontext
des Softwareentwicklungsprozesses
Konzept der Diplomarbeit
Ziel:
Untersuchung der Programmiersprache Pythonauf 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
Praxis
Konzepte der schnellen Softwareentwicklung
• (Rapid) Prototyping
• Code & Fix
• Extreme Programming
• Pair Programming
Anforderungen
Prototyp erste llen
Valid ierungdurch den Anwender
Prototyp O K?
Fertiger P rototyp
M odifikation der AnforderungenÄnderungen / E rw eiterungendes Prototyps
Ja
Nein
Evolutionäres P rototyp ing
Eigenschaften von Skriptsprachen
• Interpreter
• Fehlertoleranz, einfacher Test
• Leicht erlernbar
Anforderungen
Prototyp erste llen
Prototyp O K?
R apid P rototyping
ungeeignet
geeignet
geeignet
Verw erfen, N eudesign
Konzept übernehm en,Realis ieren z.B . nach W asserfa llm odell
W eiterentw icklung zum Endprodukt
Die Skriptsprache Python im Kontext
des Softwareentwicklungsprozesses
Einleitung
Grundlagen
Kriterien
Analyse RP
Analyse FD
Praxis
professionellerEntw ickler
Schüler,Ausbilder
G rundlagenErlernbarke itA lgorithm enLeichte SyntaxO rthogonalitä t…
G U I-Entw urfR apid P rototyp ingG eneratorenB ib lio theken
W iederverw endung…
D okum entation
?
In teressen
G em einsam keiten?Konflikte?
Schnelle Softw areentw icklung
Portab ilitä tTeam arbeitLesbarkeit
Fehlerto leranz…
Die Skriptsprache Python im Kontext
des Softwareentwicklungsprozesses
Einleitung
Grundlagen
Kriterien
Analyse RP
Analyse FD
Praxis
• Komplexität (weniger Code schnellere Entwicklung) ++
• Portabilität ++
• GUI-Entwurf ++ und Werkzeuge +
• Automatische Quelltexterzeugung + und Modellierungs-Werkzeuge +
• Syntax und Semantik ++
• Wiederverwertbarkeit ++
• Dokumentation ++
• Softwaretest ++
• Fehlersuche ++
• Bibliotheken ++
• Datenbanken +
• Besonderheiten (pickling)
Zu untersuchen bezüglich schneller Softwareentwicklung
Die Skriptsprache Python im Kontext
des Softwareentwicklungsprozesses
Einleitung
Grundlagen
Kriterien
Analyse RP
Analyse FD
Praxis
Beispiele aus der SyntaxViele 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
Integrierte Speicherverwaltung und Gargabe Collection , Keine Pointer
Python.exe
Die Skriptsprache Python im Kontext
des Softwareentwicklungsprozesses
Einleitung
Grundlagen
Kriterien
Analyse RP
Analyse FD
Praxis
• 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 ++
Python aus fachdidaktischer Sicht
Die Skriptsprache Python im Kontext
des Softwareentwicklungsprozesses
Einleitung
Grundlagen
Kriterien
Analyse RP
Analyse FD
Praxis
Umfrage & StatistikMeinungen von Entwicklern und Ausbildern,die Python einsetzen oder erproben:
• Überwiegend sehr positives Feedback
• Probleme allenfalls im Detail
Fazit:
• Positiver Eindruck auch in der Praxis vielfach bestätigt
• Python ist gut lesbar und schnell erlernbar
• Bestens geeignet für schnelle Softwareentwicklung
Python im praktischen Einsatz
Die Skriptsprache Python im Kontext
des Softwareentwicklungsprozesses
Umfrage: „Lesbarkeit“ des Quelltextes
0,00 1,00 2,00 3,00 4,00 5,00 6,00
ADA:
APL:
BETA:
C++:
COBOL:
DELPHI:
EIFFEL:
FORTH:
FORTRAN:
JAVA:
LISP:
MODULA:
PASCAL:
PERL:
PROLOG:
PYTHON:
SML:
SCHEME:
SMALLTALK:
TCL:
VISUAL BASIC:
ADA:
APL:
BETA:
C++:
COBOL:
DELPHI:
EIFFEL:
FORTH:
FORTRAN:
JAVA:
LISP:
MODULA:
PASCAL:
PERL:
PROLOG:
PYTHON:
SML:
SCHEME:
SMALLTALK:
TCL:
VISUAL BASIC:
Die Skriptsprache Python im Kontext
des Softwareentwicklungsprozesses
Diskussion
Ingo Linkweiler,
www.ingo-linkweiler.de/diplom