Die Skriptsprache Python im Kont

Document Sample
Die Skriptsprache Python im Kont Powered By Docstoc
					       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 *                           # Funktion einlesen
                                            print "Funktion eingeben:"
# Objekte erzeugen
                                            funktion = raw_input("f(x)=")
bild = Bildschirm()
stift = Stift(bild)
                                            # Funktion zeichnen
# Mit Stift ein Diagramm zeichnen
                                            for x in range(-20, 20):
stift.bewegeBis(10,10)
stift.schreibe("Funktionsplotter")
                                              y = eval(funktion)
stift.zeichneLinie(0,200, 639,200)
                                              print "f(" , x, ")=" ,y
stift.zeichneLinie(320,0, 320,399)
                                              stift.bewegeBis( x*10+320,200-y*10)
for x in range(-20,20):
                                              stift.runter()
  stift.zeichneLinie( x*10+320,198,
                      x*10+320,202)
                                            bild.GibFrei()
for y in range(-20,20):
  stift.zeichneLinie(318,y*10+200,
                       322,y*10+200)
              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
             Vorstellung von Python:
Grundlagen
             • Objektorientierte Skriptsprache
Kriterien
             • Historische Einordnung
Analyse RP
             • Open Source
Analyse FD
             • Quellen: www.python.org
Praxis
                     Die Skriptsprache Python im Kontext
                     des Softwareentwicklungsprozesses


Einleitung
             Konzepte der schnellen Softwareentwicklung
Grundlagen                               Evolutionäres Prototyping
             • (Rapid) Prototyping
Kriterien    • Code & Fix
                                                    Anforderungen



Analyse RP   • Extreme Programming                 Prototyp erstellen

                                                     Rapid Prototyping
Analyse FD   • Pair Programming                       Validierung
                                            Anforderungen
                                                  durch den Anwender


Praxis
             Eigenschaften von Skriptsprachen
                                   Prototyp erstellen
                                              Prototyp OK?
                                                                                        Modifikation der Anforderungen
                                                                                        Änderungen / Erweiterungen
                                                                                 Nein   des Prototyps

             • Interpreter                                     Ja
                                            Prototyp OK?
                                                   Fertiger Prototyp
             • Fehlertoleranz, einfacher Test
                                                                               Verwerfen, Neudesign
                                                    ungeeignet
             • Leicht erlernbar                                         Konzept übernehmen,
                                                    geeignet            Realisieren z.B. nach Wasserfallmodell

                                                                         Weiterentwicklung zum Endprodukt
                                                    geeignet
              Die Skriptsprache Python im Kontext
              des Softwareentwicklungsprozesses


Einleitung      Schnelle Softwareentwicklung
Grundlagen                  Interessen
Kriterien     professioneller                        Schüler,
Analyse RP
                Entwickler                           Ausbilder

Analyse FD   GUI-Entwurf
                                     Portabilität
                                     Teamarbeit         Grundlagen
             Rapid Prototyping        Lesbarkeit        Erlernbarkeit
Praxis       Generatoren
             Bibliotheken
                                    Fehlertoleranz
                                          …
                                                        Algorithmen
                                                        Leichte Syntax
             Dokumentation                              Orthogonalität
             Wiederverwendung                           …
             …


                                      ?
                        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 ++
             • GUI-Entwurf ++ und Werkzeuge +
Analyse RP   • Automatische Quelltexterzeugung + und Modellierungs-Werkzeuge +

Analyse FD   • Syntax und Semantik ++
             • Wiederverwertbarkeit ++
Praxis       • Dokumentation ++
             • Softwaretest ++
             • Fehlersuche ++
             • Bibliotheken ++
             • Datenbanken +
             • Besonderheiten (pickling)
                      Die Skriptsprache Python im Kontext
                       des Softwareentwicklungsprozesses


Einleitung   Beispiele aus der Syntax
Grundlagen   Viele interne Basisdatentypen: Listen, Tupel, Hashes
             liste=[1,2,3,4]
Kriterien    print liste[2:4]
             Blockbildung durch Einrücken: gut lesbar, keine Anweisungen nötig
Analyse RP   if x<0:

Analyse FD     print “negativ“
             else:
Praxis         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
             Python aus fachdidaktischer Sicht
Grundlagen
Kriterien    • Ziel: Lernen der Modellierung und Problemlösung
               Paradigmen und Lösungsansätze:
Analyse RP     prozedural und obj.-orientiert ++, funktional +, logisch -
             • Analyse der Lesbarkeit (statistisch, Umfragen) ++
Analyse FD
             • Eingabewerkzeuge und integrierte Entwicklungsumgebungen ++
Praxis       • 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
             Python im praktischen Einsatz
Grundlagen
             Umfrage & Statistik
Kriterien    Meinungen von Entwicklern und Ausbildern,
             die Python einsetzen oder erproben:
Analyse RP
             • Überwiegend sehr positives Feedback
Analyse FD
             • 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:
 SMALLTALK:                                                                    ADA:
                                                                               APL:
    SCHEME:
                                                                               BETA:
        SML:
                                                                               C++:
     PYTHON:                                                                   COBOL:
    PROLOG:                                                                    DELPHI:
       PERL:                                                                   EIFFEL:
                                                                               FORTH:
     PASCAL:
                                                                               FORTRAN:
    MODULA:                                                                    JAVA:
        LISP:                                                                  LISP:
       JAVA:                                                                   MODULA:
                                                                               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,
           i.linkweiler@gmx.de
       www.ingo-linkweiler.de/diplom

				
DOCUMENT INFO
Shared By:
Categories:
Stats:
views:20
posted:6/27/2010
language:German
pages:17