FIAE - Python Projektantrag

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
de_master
User
Beiträge: 72
Registriert: Samstag 15. Januar 2005, 15:19

Hi @ all,
ich bin im Moment Azubi zum Fachinformatiker - Anwendungsentwicklung. Ich möchte euch bitten, meinen kurzen Antrag durchzulesen und mir gegebenenfals auch ein paar Anmerungen zu geben.

Ich möchte das Projekt mit einer Oracle DB programmieren. Wie sind mit Oracle die Erfahrungswerte? Gibt es irgendwelche Probleme?

Hier der Projektantrag:

Kurze Projektbeschreibung:
Ist- Zustand:
Testpläne und Testergebnisse werden in Excel erstellt und auf einem Fileserver abgelegt. In diesen Dateien sind die Testergebnisse in einem vorgegebenen Testplan gespeichert. Diese sind mit aufwendigen Formatierungen versehen. Das daraus resultierende Ergebnis sind viele Excel Dateien die viel Speicherplatz in Anspruch nehmen. Des weiteren ist die Übersichtlichkeit und ge-naue Analysen aller Testfälle nur mit hohem Zeitaufwand darstellbar.

Soll- Zustand/ Ziele:
Es soll ein Programm entwickelt werden, welches die bisherigen Testpläne in eine Datenbank importiert. Dabei soll der Testplan flexibel und für die Zukunft jederzeit erweiterbar sein. Jeder Benutzer soll die Möglichkeit erhalten, sich über das Programm den Testplan anzeigen zu lassen. Zusätzlich wird dem Benutzer ermöglicht, Statistiken in grafischer Form (Diagramme und Tabellen) anzusehen.

Um die Mehruserfähigkeit zu gewährleisten wird eine Oracle Datenbank eingesetzt. Alle Funktio-nen des Clients werden ausschließlich mit der Scriptsprache Python programmiert. Dies gewähr-leistet einen multifunktionalen Einsatz auf den 3 wichtigsten Platformen Linux, OSX und Windows. Als Frontend (GUI) wird das Modul wxPython eingesetzt.

Projektphasen mit Zeitplanung:
Planungsphase (8 Stunden)
- Erfassung des Ist Zustandes (1 Stunde)
- Pflichtenheft (7 Stunden)
Konzeptphase (23 Stunden)
- Ermittlung der Excel Export / Import Möglichkeiten + Statistikanalyse (2 Stunden)
- Ermitlung der Anzeigemöglichkeiten "Frontend" (2 Stunden)
- Erstellen eines Export / Import Konzeptes + Statistikanalyse (14 Stunden)
- Erstellen eines Datenbankmodell's (5 Stunden)
Realisierungsphase (22 Stunden)
- Realisieren des Datenbankkonzepts (2 Stunde)
- Realisieren des Export/-Import-konzepts + Statistikanalyse (10 Stunden)
- Realisieren des Frontendkonzept (10 Stunden)
Abschlussphase (17 Stunden)
- Erstellen der Konfigurationsdokumentation (5 Stunden)
- Erstellen der Projektdokumentation (12 Stunden)



Thx & Gruss Michael
Zuletzt geändert von de_master am Montag 12. Februar 2007, 14:30, insgesamt 2-mal geändert.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Warum gerade Oracle?

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
sape
User
Beiträge: 1157
Registriert: Sonntag 3. September 2006, 12:52

de_master hat geschrieben:Da-teien
ge-naue
Tabel-len
gewähr-leistet
:lol:

SCNR ;)
de_master
User
Beiträge: 72
Registriert: Samstag 15. Januar 2005, 15:19

sape hat geschrieben:
de_master hat geschrieben:Da-teien
ge-naue
Tabel-len
gewähr-leistet
:lol:

SCNR ;)
Hab ich aus der IHK Antragsvorlage, Wörd rauskopiert. Sagt wohl alles :).
jens hat geschrieben: Warum gerade Oracle?
Das will mein Ausbildungsbetrieb.
BlackJack

de_master hat geschrieben:
jens hat geschrieben: Warum gerade Oracle?
Das will mein Ausbildungsbetrieb.
Autsch. :-)

Oracle ist teuer und ressourcenhungrig. Bei der Veranstaltung “Einführung in Datenbanksysteme” gab's bei uns kostenlose Oracle (8i oder 9i) Versionen für Studis auf CD. In den Anforderungen stand “mindestens 2 GB freier Plattenplatz”. Meine Projektgruppe hat dann PostgreSQL benutzt. :-)

Versuch am besten möglichst nahe am SQL-Standard zu bleiben, oder schau mal, ob Du ein [wiki=Module#BindungenFrRelationaleDatenbanken]ORM[/wiki] benutzen kannst, dass auch mit Oracle kann.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Ich meine von Oracle gibt es nun, wie auch von MS, eine kostenlose Version.

Ich würde wohl direkt SQLAlchemy nutzten ;)

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
de_master
User
Beiträge: 72
Registriert: Samstag 15. Januar 2005, 15:19

jens hat geschrieben:Ich meine von Oracle gibt es nun, wie auch von MS, eine kostenlose Version.

Ich würde wohl direkt SQLAlchemy nutzten ;)
Jop, diese gibt es.
Benutzeravatar
sunmountain
User
Beiträge: 89
Registriert: Montag 13. März 2006, 17:18

de_master hat geschrieben: Planungsphase (8 Stunden)
- Erfassung des Ist Zustandes (1 Stunde)
- Pflichtenheft (7 Stunden)
Konzeptphase (23 Stunden)
- Ermittlung der Excel Export / Import Möglichkeiten + Statistikanalyse (2 Stunden)
- Ermitlung der Anzeigemöglichkeiten "Frontend" (2 Stunden)
- Erstellen eines Export / Import Konzeptes + Statistikanalyse (14 Stunden)
- Erstellen eines Datenbankmodell's (5 Stunden)
Realisierungsphase (22 Stunden)
- Realisieren des Datenbankkonzepts (2 Stunde)
- Realisieren des Export/-Import-konzepts + Statistikanalyse (10 Stunden)
- Realisieren des Frontendkonzept (10 Stunden)
Abschlussphase (17 Stunden)
- Erstellen der Konfigurationsdokumentation (5 Stunden)
- Erstellen der Projektdokumentation (12 Stunden)

Deine Zeitplanung ist ein klassischer Deathmarch Kandidat.
Vollkommen unrealistisch.
Ich komme beim Mitrechnen auf ca. 17 MT.
Ich denke realistisch wäre das Doppelte, mindestens.

Du willst ne Menge Komponenten testen, die
a) komplex (wxPython)
b) in Kombination selten (Excel + Python)
c) eigene Fallstricke haben (Oracle)
d) hohe Anforderungen stellen (Erweiterbarkeit, Statistik, Analyse)

Ich will ja nicht schwarz malen, aber aus Erfahrung kann ich Dir
nur den Tip geben, Deine Feinziele zu überdenken.

Ich behaupte, sie sind nicht zu schaffen - in der Zeit.
BlackJack

sunmountain hat geschrieben:b) in Kombination selten (Excel + Python)
Die Kombination ist nicht so selten. Fragen danach tauchen recht häufig in der englischsprachigen Newsgroup auf. Neben Anbindung per COM (Windows only) gibts noch xlrd zum Lesen und pyExcelerator zum schreiben von Excel-Dateien.
Benutzeravatar
sunmountain
User
Beiträge: 89
Registriert: Montag 13. März 2006, 17:18

Ich wäre bei Excel geblieben.
Die drunterliegenden Spreadsheets einfach durch Queries
austauschen, ein bischen VBA, und die Grafiken sind auch
schon fast fertig.

Man muss immer mal sehen, wieviel Aufwand es ist,
die Architektur komplett umzukrempeln.
de_master
User
Beiträge: 72
Registriert: Samstag 15. Januar 2005, 15:19

sunmountain hat geschrieben:Deine Zeitplanung ist ein klassischer Deathmarch Kandidat.
Vollkommen unrealistisch.
Ich komme beim Mitrechnen auf ca. 17 MT.
Ich denke realistisch wäre das Doppelte, mindestens.

Du willst ne Menge Komponenten testen, die
a) komplex (wxPython)
b) in Kombination selten (Excel + Python)
c) eigene Fallstricke haben (Oracle)
d) hohe Anforderungen stellen (Erweiterbarkeit, Statistik, Analyse)

Ich will ja nicht schwarz malen, aber aus Erfahrung kann ich Dir
nur den Tip geben, Deine Feinziele zu überdenken.

Ich behaupte, sie sind nicht zu schaffen - in der Zeit.
Zu a)
Das sing genau 3 Fenster. Auswahl, Testplan anzeigen und Statistik Anzeige. Das soll natürlich nicht aufwendig dargestellt werden. Hauptaufgabe ist der import in die Datenbank.
Zu b)
Ich exportiere das Dukument als .htm. Dann parse ich die Datei dementsprechend und stopf das in die Datenbank. Parser ist zu 40% vorhanden.
Zu c)
Oracle is mit Python neuland. Bin ich noch am überlegen ob ich nicht MySQL nehmen soll.
Zu d)
Das ist kein großer Aufwand. Da werden nur in einer Tabellen in der Datenbank gespeichert die man dann aus dem Dokument ausliest. Passiert nach dem Parsen beim Eintrag in die Datenbank.

Der Zeitplan sollte schon hinkommen. Habs mit Cheffe auch durchgesprochen :).

Gruss Michael
de_master
User
Beiträge: 72
Registriert: Samstag 15. Januar 2005, 15:19

BlackJack hat geschrieben:
sunmountain hat geschrieben:b) in Kombination selten (Excel + Python)
Die Kombination ist nicht so selten. Fragen danach tauchen recht häufig in der englischsprachigen Newsgroup auf. Neben Anbindung per COM (Windows only) gibts noch xlrd zum Lesen und pyExcelerator zum schreiben von Excel-Dateien.
Weist du ob ich über diese 2 Module auch an die Grupierungen herankomme? Leider Exportiert Excel keine Grupierung in eine .xml Datei. Desshalb muss ich die .htm Datei parsen was etwas aufwendiger ist.
BlackJack

de_master hat geschrieben:
BlackJack hat geschrieben:Neben Anbindung per COM (Windows only) gibts noch xlrd zum Lesen und pyExcelerator zum schreiben von Excel-Dateien.
Weist du ob ich über diese 2 Module auch an die Grupierungen herankomme?
Ich glaube nicht. Wirst Du wohl beim HTML bleiben müssen.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

de_master hat geschrieben:Oracle is mit Python neuland. Bin ich noch am überlegen ob ich nicht MySQL nehmen soll.
Hallo Michael!

PostgreSQL kommt Oracle näher als MySQL. Außerdem gibt es eine wirklich gute Schnittstelle zu PostgreSQL --> psycopg2

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
de_master
User
Beiträge: 72
Registriert: Samstag 15. Januar 2005, 15:19

gerold hat geschrieben:
de_master hat geschrieben:Oracle is mit Python neuland. Bin ich noch am überlegen ob ich nicht MySQL nehmen soll.
Hallo Michael!

PostgreSQL kommt Oracle näher als MySQL. Außerdem gibt es eine wirklich gute Schnittstelle zu PostgreSQL --> psycopg2

mfg
Gerold
:-)
Hallo Gerold,
was habe ich denn bei PostgreSQL für Vorteile? Hab das zwar mal installiert, glaube beim OpenExchange Server. Da hats aber nicht wirklich geklappt.

Mein letztes Programm habe ich schon mit Python und MySQL programmiert. Das hat super geklappt ohne Probleme.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

de_master hat geschrieben:was habe ich denn bei PostgreSQL für Vorteile?
Hi Michael!

Die meisten Unterschiede kommen erst bei größeren Anwendungen zum Tragen. Das fängt damit an, dass die Unicode-Unterstützung bei psycopg2 spitzenmäßig funktioniert und das schon seit mehreren Versionen. Die Lizenz bei PostgreSQL ist einfach und durchschaubar. Bei MySQL weiß ich immer noch nicht, ab wann ich Lizenzgebühren an MySQL-AB zahlen muss. PostgreSQL kann schon lange mit Transaktionen, Triggern, Prozeduren, Views und Foreign Keys umgehen. Bei MySQL wurden einige dieser Dinge erst viel später und das auch nicht zu jedem Tabellentyp hinzuprogrammiert.

PostgreSQL beherrscht die eingebaute Sprache PL/PGSQL, was der Sprache von Oracle ziemlich nahe kommt. Es gibt sogar Projekte, die sich erfolgreich zum Ziel gesetzt haben, PostgreSQL so umzuprogrammieren, dass es sich nach ausen wie Oracle anfühlt.

Es gibt von psycopg2 auch ein officielles Release für Windows und Python 2.5: http://www.stickpeople.com/projects/pyt ... index.html

Sinnvolle Erweiterungen gibt es bei psycopg2 auch: http://www.initd.org/tracker/psycopg/wi ... umentation

Dann sollte man nicht vergessen, dass der PostgreSQL-Server, verbundene Clients über Ereignisse benachrichtigen kann. Auch das wurde in psycopg2 umgesetzt, auch wenn ich es noch nie eingesetzt habe.

Wenn man ORMs einsetzt, dann kann man von vielen dieser Features wahrscheinlich nicht profitieren. Dann ist es auch ziemlich egal, welches Datenbanksystem man verwendet.

Und zum Abschluss noch ein Auszug aus Wikipedia:
PostgreSQL ist eines der ältesten und am weitesten fortgeschrittenen objektrelationalen Datenbanksysteme (ORDBMS) im Bereich der freien Software.

PostgreSQL ist weitgehend konform mit dem SQL92/SQL99/SQL2003-Standard, d. h. alle in dem Standard geforderten Funktionen stehen zur Verfügung und verhalten sich so wie vom Standard gefordert; dies ist bei manchen kommerziellen sowie nichtkommerziellen SQL-Datenbanken bisweilen nicht gegeben.
mfg
Gerold
:-)

PS: Nein, ich wollte eigentlich nicht so viel dazu schreiben. :-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
de_master
User
Beiträge: 72
Registriert: Samstag 15. Januar 2005, 15:19

Ich schau mir das ganze mal an :).
Jedoch werd ich wohl entweder Oracle under MySQL benutzen. Im geschäft habe ich genügend Oracle u. MySQL Profis :). Für das Abschlussprojekt reicht eigentlich eine MySQL Datenbank.

Gruss Michael
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Also ich würde einfach SQLAlchemy nutzten und somit unabhängig von der DB bleiben.

IMHO muss man eine Anwendung nur dann gezielt auf der DB zuscheiden wenn sie sehr groß ist und damit die Performances eine große Rolle spielt.

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

jens hat geschrieben:IMHO muss man eine Anwendung nur dann gezielt auf der DB zuscheiden wenn sie sehr groß ist und damit die Performances eine große Rolle spielt.
Meist muss man eine Applikation auf eine Datenbank zuschneiden, wenn eine Datenbank etwas bietet, was ORMs nicht tun. Und PostgreSQL bietet viele Sachen, die ORMs nicht unterstützen.
Ist nur die Frage - braucht mans?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Leonidas hat geschrieben:Ist nur die Frage - braucht mans?
Genau das meine ich. IMHO braucht man all diese tollen Features nur dann, wenn man die Performance steigern möchte. Das braucht man aber eigentlich erst dann zu machen, wenn diese nicht ausreicht.

Im Grunde ist es das selbe wie [wiki]Python Performance[/wiki]

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten