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

Upload: gevehard-henggeler

Post on 05-Apr-2015

112 views

Category:

Documents


3 download

TRANSCRIPT

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