Die Skriptsprache Python im Kontext des Softwareentwicklungsprozesses Konzepte und praktische...

17
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

Transcript of Die Skriptsprache Python im Kontext des Softwareentwicklungsprozesses Konzepte und praktische...

Page 1: Die Skriptsprache Python im Kontext des Softwareentwicklungsprozesses Konzepte und praktische Arbeiten zur Diplomarbeit: Eignet sich die Skriptsprache.

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

Page 2: Die Skriptsprache Python im Kontext des Softwareentwicklungsprozesses Konzepte und praktische Arbeiten zur Diplomarbeit: Eignet sich die Skriptsprache.

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

Page 3: Die Skriptsprache Python im Kontext des Softwareentwicklungsprozesses Konzepte und praktische Arbeiten zur Diplomarbeit: Eignet sich die Skriptsprache.

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.

Page 4: Die Skriptsprache Python im Kontext des Softwareentwicklungsprozesses Konzepte und praktische Arbeiten zur Diplomarbeit: Eignet sich die Skriptsprache.

Die Skriptsprache Python im Kontext

des Softwareentwicklungsprozesses

Beispiel...[PyNassi.py]

Page 5: Die Skriptsprache Python im Kontext des Softwareentwicklungsprozesses Konzepte und praktische Arbeiten zur Diplomarbeit: Eignet sich die Skriptsprache.

Die Skriptsprache Python im Kontext

des Softwareentwicklungsprozesses

1.2 Von Stiften und Mäusen

Page 6: Die Skriptsprache Python im Kontext des Softwareentwicklungsprozesses Konzepte und praktische Arbeiten zur Diplomarbeit: Eignet sich die Skriptsprache.

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()

Page 7: Die Skriptsprache Python im Kontext des Softwareentwicklungsprozesses Konzepte und praktische Arbeiten zur Diplomarbeit: Eignet sich die Skriptsprache.

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

Page 8: Die Skriptsprache Python im Kontext des Softwareentwicklungsprozesses Konzepte und praktische Arbeiten zur Diplomarbeit: Eignet sich die Skriptsprache.

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

Page 9: Die Skriptsprache Python im Kontext des Softwareentwicklungsprozesses Konzepte und praktische Arbeiten zur Diplomarbeit: Eignet sich die Skriptsprache.

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

Page 10: Die Skriptsprache Python im Kontext des Softwareentwicklungsprozesses Konzepte und praktische Arbeiten zur Diplomarbeit: Eignet sich die Skriptsprache.

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

Page 11: Die Skriptsprache Python im Kontext des Softwareentwicklungsprozesses Konzepte und praktische Arbeiten zur Diplomarbeit: Eignet sich die Skriptsprache.

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…

Page 12: Die Skriptsprache Python im Kontext des Softwareentwicklungsprozesses Konzepte und praktische Arbeiten zur Diplomarbeit: Eignet sich die Skriptsprache.

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

Page 13: Die Skriptsprache Python im Kontext des Softwareentwicklungsprozesses Konzepte und praktische Arbeiten zur Diplomarbeit: Eignet sich die Skriptsprache.

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

Page 14: Die Skriptsprache Python im Kontext des Softwareentwicklungsprozesses Konzepte und praktische Arbeiten zur Diplomarbeit: Eignet sich die Skriptsprache.

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

Page 15: Die Skriptsprache Python im Kontext des Softwareentwicklungsprozesses Konzepte und praktische Arbeiten zur Diplomarbeit: Eignet sich die Skriptsprache.

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

Page 16: Die Skriptsprache Python im Kontext des Softwareentwicklungsprozesses Konzepte und praktische Arbeiten zur Diplomarbeit: Eignet sich die Skriptsprache.

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:

Page 17: Die Skriptsprache Python im Kontext des Softwareentwicklungsprozesses Konzepte und praktische Arbeiten zur Diplomarbeit: Eignet sich die Skriptsprache.

Die Skriptsprache Python im Kontext

des Softwareentwicklungsprozesses

Diskussion

Ingo Linkweiler,

[email protected]

www.ingo-linkweiler.de/diplom