 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Aeton Guest
|
Posted: Wed Feb 02, 2005 10:53 pm Post subject: Wie plant und setzt man ein projekt um |
|
|
Hallo zusammen,
ich lerne in der abendschule unteranderem C++. Nun jetzt steht ein Projekt
an und wir, eine Gruppe von 4 Leuten, haben uns dazu entschieden eine CRMS
System auf die Beine zustellen.
Als Datenbank wollen wir MySQL benutzen und haben diese soweit fertig
entwickelt.
Das Hauptproblem, vor welchen wir stehen, ist die Tatsache das wir nicht
wissen, wie wir das C++ Programm umsetzen sollen.
Wir haben uns schon ein Design ausgesucht, also das heißt die Optische
Darstellung steht.
Wie geht Ihr an die Sache ran?
mfg
Aeton
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Boris Glawe Guest
|
Posted: Thu Feb 03, 2005 2:42 am Post subject: Re: Wie plant und setzt man ein projekt um |
|
|
Aeton wrote:
| Quote: | Hallo zusammen,
ich lerne in der abendschule unteranderem C++. Nun jetzt steht ein Projekt
an und wir, eine Gruppe von 4 Leuten, haben uns dazu entschieden eine CRMS
System auf die Beine zustellen.
Als Datenbank wollen wir MySQL benutzen und haben diese soweit fertig
entwickelt.
Das Hauptproblem, vor welchen wir stehen, ist die Tatsache das wir nicht
wissen, wie wir das C++ Programm umsetzen sollen.
Wir haben uns schon ein Design ausgesucht, also das heißt die Optische
Darstellung steht.
Wie geht Ihr an die Sache ran?
|
Das grafische Design ist das letzte, worüber man sich Gedanken macht, auch wenn
es mit einer der wichtigsten Kapitel ist, wenn es um die Benutzerakzeptanz geht.
Hinter einer Anwendung steckt in der Regel weit mehr als das, was der Benutzer
an der grafischen Oberfläche zu sehen bekommt, von daher stellt man sich in der
Regel selbst ziemlich schnell ein Bein, wenn man die GUI als Ansatz nimmt.
Ich fange bei so etwas immer mit einem Blatt Papier und einem Bleistift an. Ich
male mir auf, was für Komponenten meine Software hat. Ein Komonente wäre z.B.
der Datenbankzugriff. Eine CRMS hat vermutlich etwas mit Kunden zu tun. Überlegt
euch, was euer System dem Kunden oder euch bringen soll. Eine Komponente erfasst
und speichert z.B. die Kundendaten, eine andere analysiert die Daten , eine
weitere Komponente ist für die Generierung der grafischen Oberfläche zuständig
(vielleicht greift diese Komponente auf die Analysierten Daten zurück) und und und.
Mit Komponente, meine ich keine Klasse, sondern eine Sammlung von Klassen, die
zusammen eine bestimmte Aufgabe lösen.
Versucht modular zu arbeiten. Typischer Anfängerfehler ist das Vorhaben "alles
ist eine Klasse". Je mehr Klassen, desto besser. Alles, was irgendwie ein Objekt
sein kann, kommt in eine eigene Klasse.
Es gibt verschiedene Ansätze, wie man Softwareprojekte durchführt. Die
Planungsphase muss gut überlegt sein. Investiert man zu viel in die Planung,
dann kann es vorkommen, dass man sich vor lauter Planung vollkommen
unrealistische Ziele setzt und bei der Planung viel Zeit verliert, in der man
schon sein halbes Projekt fertig haben könnte. Auch in großen
Softwareunternehmen scheitern viele Projekte, weil die Planung riesige
Killerapplikationen vorsieht, die aber in der Praxis nicht fertig werden (siehe
z.B. Hartz IV Software oder LKW-Maut).
Ich bin immer gut damit gefahren, einfach mal irgendwo anzufangen (z.B. mal die
Klasse "Kunde" schreiben) und hinterher alles zusammenzufügen, wie man es
braucht. Bei diesem Ansatz verliert man zwar viel Zeit, weil man seinen schon
geschriebenen Code häufig abändern muss, aber man hat schnell Ergebnisse, die
auch schon anwendbar sind. Man muss sich auch mal trauen, 5 Stunden Arbeit
wieder zu löschen, wenn man einen besseren Ansatz gefunden hat.
Ein guter Ansatz ist auch, featurebasiert vorzugehen: "Was soll das Programm
können". Immer ein Feature nach dem anderen hinzufügen. Niemals alles auf einmal
implementieren. Erst wenn das Feature funktioniert, das nächste Feature
einbauen. Damit bleibt die Software in der gesamten Entwicklungsphase
einsatzbereit und besteht niemals aus tausenden von Baustellen, die nicht fertig
werden. Besser ein Programm abliefern, das wenig kann aber dafür keine Fehler macht.
Lest euch in Sachen C++ auf jeden Fall die Kapitel über die Objektorientierung
durch. Begriffe wie "Klasse ableiten", "Polymorphismus", "Mehrfachvererbung",
"Methoden überschreiben", "Methoden überladen", "virtuelle Methode", "Interface"
, "namespace" etc sollten vollkommen klar sein. Auch sollte man sich schnell an
die kryptische Syntax gewöhnen, die C++ mit sich bringt, wenn man die Sprache
"voll ausnutzt"
Schreibt euch am besten auf, was das Programm alles können soll. Entscheidet
dann, welches dieser Feature grundlegend sind, welche eher unwichtig sind usw.
Fangt dann mit EINEM dieser Featuer an. Schafft die Klassen, die man dafür
braucht ("Kunde", "Datenbankzugriff", "Datenanalysierer", "AccoutManager", oder
was auch immer ihr braucht).
Wenn ihr etwas genauer beschreibt, wie eure Software aussehen soll, dann könnte
man noch mehr Tips geben. Der Teufel liegt bei Anfängern meistens im Detail
(Compiler zum kompilieren überreden, seitenweise unverständliche
Fehlermeldungen, Abstürze wegen Speicherschutzverletzung, etc.) Davon darf man
sich entmutigen lassen. Wenn man, wie oben beschrieben, kleine Schritte macht
und nicht tausende Baustellen gleichzeitig bearbeitet, ist es sehr viel
wahrscheinlicher, dass man einen Fehler schnell findet, weil man weiß, was man
zuletzt geändert hat.
Grüße Boris
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Daniel Albuschat Guest
|
Posted: Thu Feb 03, 2005 9:25 am Post subject: Re: Wie plant und setzt man ein projekt um |
|
|
Aeton wrote:
Hallo Herr Anonym. Ein Realname waere nett.
| Quote: | ich lerne in der abendschule unteranderem C++. Nun jetzt steht ein Projekt
an und wir, eine Gruppe von 4 Leuten, haben uns dazu entschieden eine CRMS
System auf die Beine zustellen.
|
Was ist ein CRMS System?
| Quote: | Das Hauptproblem, vor welchen wir stehen, ist die Tatsache das wir nicht
wissen, wie wir das C++ Programm umsetzen sollen.
|
Zuerst einmal muesst ihr wissen, *was* ihr umsetzen wollt. Ich weiss
nicht, ob euch das klar ist, mir ist es jedenfalls nach deinem Posting
nicht. Und dann wird sich schon ein konkretes Problem ergeben, an dem
ihr nicht weiter kommt. Ich glaube kaum, dass ihr nicht wisst, wie
ihr eine main() schreibt. Und wenn doch, ist das schließlich das
konkrete Problem.
| Quote: | Wir haben uns schon ein Design ausgesucht, also das heißt die Optische
Darstellung steht.
|
Uhm, das klingt nach HTML, oder?
Redest du von einem Content Management System?
Also ich weiss echt nicht, wo ihr haengt. In dem Falle bastelt ihr
eure HTML Seiten zusammen (habt ihr wohl schon) und fügt dort, wo
dynamische Inhalte sind, eure entsprechenden CGI-Aufrufe ein.
Mehr Informationen wären von Nützen.
MfG,
Daniel Albuschat
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Karl Heinz Buchegger Guest
|
Posted: Thu Feb 03, 2005 10:37 am Post subject: Re: Wie plant und setzt man ein projekt um |
|
|
Aeton wrote:
| Quote: |
Hallo zusammen,
ich lerne in der abendschule unteranderem C++. Nun jetzt steht ein Projekt
an und wir, eine Gruppe von 4 Leuten, haben uns dazu entschieden eine CRMS
System auf die Beine zustellen.
Als Datenbank wollen wir MySQL benutzen und haben diese soweit fertig
entwickelt.
Das Hauptproblem, vor welchen wir stehen, ist die Tatsache das wir nicht
wissen, wie wir das C++ Programm umsetzen sollen.
Wir haben uns schon ein Design ausgesucht, also das heißt die Optische
Darstellung steht.
Wie geht Ihr an die Sache ran?
|
Mit Papier und Bleistift.
Daruaf wird zunaechst mal festgehalten, was eigentlich
gefordert ist. Um dies rauszukriegen ist es oft notwendig mal
ein Paar Beispiele am Papier durchzuspielen. Im weiteren hat
dieses auch den Vorteil, dass das eigentliche Problem besser
verstanden wird. Ist dies soweit klar, dann heist es das Problem
mal in Teilprobleme zu zerlegen, also eine erste Strategie zu
entwickeln, was das 'unloesbare' Gesamtproblem in Teile aufgeteilt
werden kann, sodass die Gesamtheit der Teile das eigentliche Problem
loest. Bei diesen Teilen gibt es dann meist welche die sind trivial und
es gibt welche die sind sauschwer. Da beist sich dann die Katze in den Schwanz,
die sauschweren werden wieder in Teile aufgedroeselt, usw. solange bis
ein Kochrezept steht, dass es auch dem Duemmsten ermoeglicht, das eigentlich
'unloesbare' Problem zu loesen, einfach nur indem er sich an das Kochrezept
haelt. Dieses Kochrezepz wird dann am Papier fuer noch ein paar Beispiele
durchgespielt, meist ergeben sich dann noch ein paar Kleinigkeiten die
im 'Rezept' korigiert werden muessen aber im Grossen und Ganzen: Der
Algorithmus steht und dank der Beschaeftigung mit dem Thema ist jetzt
auch einiges in der Problemstellung wesentlich klarer als noch am Anfang
des Prozesses.
Danach wird das Ganze noch mal durchgesehen: Was braucht das Ding als Input
was kommt raus. Daraus wird dann das GUI zusammengezimmert, wobei auch mal
Alternativen durchdacht werden sollen.
Jetzt ist es an der Zeit den Rechner vorzuwaermen.
Manchmal ist es einfacher mit dem kompletten GUI zu beginnen, manchmal ist es
einfacher zunachst mal mit dem Algorithmus anzufangen und das GUI sozusagen
mitwachsen zu lassen (irgendwie muessen ja die Eingaben in den Algorithmus rein
und irgendwie muessen ja auch die Ergebnisse angezeigt werden). Auch kann es
manchmal sinnvoll sein, zunaechst mal eine 'Fleissaufgabe' zu machen: Debug-
Werkzeuge, die dazu dienen einen Blick in die Datenbasis zu werfen. Diese
Werkzeuge kommen aus der fertigen Applikation wieder raus, sind aber beim Debugen
eventuell aeusserst hilfreich.
Tja. Danach gibt es eigentlich nur noch einen Rat:
Schreib nicht zuviel auf einmal. Durch obige Zerlegung sind ja bereits kleine
Teile entstanden. Jeder dieser Teile kann einzeln implementiert werden und auch
meist einfach getestet werden ob er auch funktioniert. Weiters sollte man sich
ueberlegen, in welcher Reihenfolge die Teile implementiert werden. Im Idealfall
beginnt man mit Teilen die fuer sich alleine stehen. Als naechstes kommen dann
Teile, die bereits andere Teile als Voraussetzung benoetigen (was ja kein Problem
ist, die sind ja bereits getestet und funktionieren). Auch ist oft eine logisch
Reihenfolge sinnvoll: ZB. Datenbank. Es ist ja toll wenn aus einer Datenbank auch
Teile rausgeloescht werden kann, nur macht es keinen Sinn diese Funktion zu schreiben,
bevor noch die 'Hinzufuege' Operation geschrieben ist. Denn: Wie testest Du das Loeschen,
wenn Du nichts hinzufuegen kannst?
Also, in Kuerze
* gute Vorbereitung ist das halbe Leben
* Die Arbeit in kleine Teile aufteilen
* Nicht zuviel auf einmal implementieren und
zwischendurch immer wieder: testen, testen, testen.
--
Karl Heinz Buchegger
[email]kbuchegg (AT) gascad (DOT) at[/email]
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Daniel Albuschat Guest
|
Posted: Thu Feb 03, 2005 3:52 pm Post subject: Re: Wie plant und setzt man ein projekt um |
|
|
Karl Heinz Buchegger wrote:
| Quote: | Aeton wrote:
Wie geht Ihr an die Sache ran?
Mit Papier und Bleistift.
|
Ich mag vielleicht etwas unreif erscheinen, wenn ich das jetzt so sage,
aber meines Erachtens ist Papier und Bleistift in eher seltensten
Fällen gefragt. Das Problem am "Allumfassenden Plan der Gesamtheit" [tm]
ist einfach, dass 80% der Entscheidungen erst dann gefällt werden
sollten/können, wenn die Basis für die Entscheidung bereits steht
und auch angewendet wird. Kein Programmierer der Welt (außer vielleicht
welche, die Programmierer-Tools entwickeln) können nämlich zu 100%
sagen, was der Anwender braucht und was der Anwender gerne hätte.
Ein weiteres Problem ist, dass der Anwender das selbst nicht weiß.
Beispielsweise implementiert man eine Software und auf halber
Strecke, wo der Kunde/Anwender schon Ergebnisse sieht, fällt ihm
auf "Ach, das wäre aber wirklich praktisch, wenn ich $das_hier machen
könnte, weil es mir einiges an Arbeit sparen könnte.". Und um $das_hier
zu machen, muss man die Datenstrukturen inkompatibel zu denen im Plan
aufbauen. Dann ist der komplette restliche Plan für die Katz.
Wenn es um kleinere Features (Ich tippe mal 3-4k Zeilen) geht, braucht
man für die Implementation meistens genauso lange wie für die Definition
auf Papier. Und da fast alles, was man macht, beim zweiten Mal besser
wird, kann man das Feature doch lieber zwei mal Implementieren und dabei
Teile vom ersten Durchlauf benutzen, als vorher einen Plan zu erstellen,
unter dem sich der Anwender nichts vorstellen kann, weil er nichts vor
der Nase hat.
Das soll natürlich nicht heißen, dass man nach dem
"Mach du mal"-Prinzip arbeitet und nach 2 Wochen ist die
ganze Arbeit umsonst, weil nichts genau genug deklariert wurde und
alles falsch umgesetzt ist.
Wenn man selbst der Auftraggeber und Anwender ist, halte ich
ausgiebige Planung sowieso für überflüssig. Hier ist es viel
schneller, etwas zu implementieren und evtl. mal ein paar Stunden
arbeit wegzuschmeißen, weil einem bei der Implementation Fehler klar
wurden, die man nicht bedacht hatte (und nach meiner Erfahrung bei der
Planung leider auch übersieht), als vorher alles im Detail durchplanen
zu wollen.
Abgesehen davon habe ich bei den Zeitramen, die mir mein Chef steckt,
eh keine Zeit, großartig drüber nachzudenken. Bisher ist er allerdings
mit den Ergebnissen sehr zufrieden.
Für RAD braucht man kein RAD-Framework oder eine RAD-IDE. Für RAD
braucht man lediglich die richtige Einstellung.
MfG,
Daniel Albuschat
P.S.: Der OP scheint noch am Anfang seiner C++-Karriere zu stehen und
das Ganze eher als Übungsprojekt zu sehen. Hier halte ich es erst
Recht für kontraproduktiv, nicht einfach drauf los zu
programmieren. Schließlich *soll* er Probleme haben, die er dann
lösen kann, um mit der Programmiersprache vertraut zu werden.
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Matthias Guest
|
Posted: Thu Feb 03, 2005 4:46 pm Post subject: Re: Wie plant und setzt man ein projekt um |
|
|
Aeton wrote:
| Quote: | Hallo zusammen,
ich lerne in der abendschule unteranderem C++. Nun jetzt steht ein Projekt
an und wir, eine Gruppe von 4 Leuten, haben uns dazu entschieden eine CRMS
System auf die Beine zustellen.
Als Datenbank wollen wir MySQL benutzen und haben diese soweit fertig
entwickelt.
Das Hauptproblem, vor welchen wir stehen, ist die Tatsache das wir nicht
wissen, wie wir das C++ Programm umsetzen sollen.
Wir haben uns schon ein Design ausgesucht, also das heißt die Optische
Darstellung steht.
Wie geht Ihr an die Sache ran?
mfg
Aeton
|
Also zunächst, ich bin Student und kein professioneller Entwickler oder
so, daher die folgenden Sätze mit Vorbehalt :)
Was mir persönlich häufig hilft, ist mir einen groben Überblick zu
verschaffen, aus was für Komponenten mein System bestehen soll, was die
tun und wie sie interagieren. Dazu sind in erster Linie UML
Klassendiagramme sinnvoll, sowie vielleicht State-Chart und
Sequenzdiagramme um Abläufe zu modellieren (habe ich privat aber noch
nie benötigt). Solche Diagramme kannst du entweder mit Stift und Papier
machen oder mit einem Werkzeug.
Irgendwo hängt das aber natürlich auch von der Grösse des Projekts ab.
Also wenn ich irgendwas kleines programmiere mache ich mir vorher keine
UML Diagramme oder so. Sobald es aber zu Kommunikation zwischen vielen
verschiedenen Klassen kommt, ist sowas äusserst hilfreich und sinnvoll.
Das vielleicht mal so als Startanstoss. =)
--
Regards,
Matthias
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Karl Heinz Buchegger Guest
|
Posted: Thu Feb 03, 2005 4:49 pm Post subject: Re: Wie plant und setzt man ein projekt um |
|
|
Daniel Albuschat wrote:
| Quote: |
Karl Heinz Buchegger wrote:
Aeton wrote:
Wie geht Ihr an die Sache ran?
Mit Papier und Bleistift.
Ich mag vielleicht etwas unreif erscheinen, wenn ich das jetzt so sage,
aber meines Erachtens ist Papier und Bleistift in eher seltensten
Fällen gefragt. Das Problem am "Allumfassenden Plan der Gesamtheit" [tm]
ist einfach, dass 80% der Entscheidungen erst dann gefällt werden
sollten/können, wenn die Basis für die Entscheidung bereits steht
und auch angewendet wird. Kein Programmierer der Welt (außer vielleicht
welche, die Programmierer-Tools entwickeln) können nämlich zu 100%
sagen, was der Anwender braucht und was der Anwender gerne hätte.
Ein weiteres Problem ist, dass der Anwender das selbst nicht weiß.
|
Ich hab keine Ahnung in welchen Bereichen Du arbeitest, aber bei mir
ist es schon des oefteren wichtig zunaechst mal auf dem Papier ein
paar Beispiele durchzuspielen um mir zunaechst mal darueber klar zu
werden, wie den der Algorithmus ausschauen wird. Am besten macht
man das sogar mit dem Kunden gemeinsam, denn dan sagt der ploetzlich:
Moment, wo ist das jetzt hergekommen, das kann so nicht stimmen, das
muss so und so sein.
| Quote: |
P.S.: Der OP scheint noch am Anfang seiner C++-Karriere zu stehen und
das Ganze eher als Übungsprojekt zu sehen. Hier halte ich es erst
Recht für kontraproduktiv, nicht einfach drauf los zu
programmieren. Schließlich *soll* er Probleme haben, die er dann
lösen kann, um mit der Programmiersprache vertraut zu werden.
|
Der OP hat aber auch Datenbanken erwaehnt. Grade am Anfang ist es mehr
als ein Fehler mal eben ein paar Tabellen zusammenzuschustern und zu sehen
wie man damit klarkommt. Genau so sehen solche Datenbank naemlich hinterher
aus: reif fuer den Gully.
--
Karl Heinz Buchegger
[email]kbuchegg (AT) gascad (DOT) at[/email]
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Boris Glawe Guest
|
Posted: Thu Feb 03, 2005 5:30 pm Post subject: Re: Wie plant und setzt man ein projekt um |
|
|
| Quote: |
Was ist ein CRMS System?
|
Ein Customer Relation Management System, also Software, die ein Unternehmen
dabei unterstützt, die Kundenbeziehungen zu pflegen. Was aber genau an Features
in das oben genannte Projekt fließen sollen, das habe ich auch nicht verstanden.
Grüße Boris
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Rolf Magnus Guest
|
Posted: Thu Feb 03, 2005 5:36 pm Post subject: Re: Wie plant und setzt man ein projekt um |
|
|
Daniel Albuschat wrote:
| Quote: | Aeton wrote:
Hallo zusammen,
Hallo Herr Anonym. Ein Realname waere nett.
ich lerne in der abendschule unteranderem C++. Nun jetzt steht ein
Projekt an und wir, eine Gruppe von 4 Leuten, haben uns dazu entschieden
eine CRMS System auf die Beine zustellen.
Was ist ein CRMS System?
|
Tante Google schlägt Sachen vor wie:
Center for Remote Sensing and Mapping Science
Colorado Rocky Mountain School
Certified Residential Mortgage Specialist
Cedar Rapids Microwave Society
Comment Response Management System
Aber eigentlich glaube ich, daß eher ein "Customer Relationship Management
System" gemeint ist.
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Martin Winkler Guest
|
Posted: Thu Feb 03, 2005 5:57 pm Post subject: Re: Wie plant und setzt man ein projekt um |
|
|
Daniel Albuschat wrote:
| Quote: | Karl Heinz Buchegger wrote:
Aeton wrote:
Wie geht Ihr an die Sache ran?
Mit Papier und Bleistift.
|
Das finde ich den richtigen Ansatz.
| Quote: |
Ich mag vielleicht etwas unreif erscheinen, wenn ich das jetzt so sage,
aber meines Erachtens ist Papier und Bleistift in eher seltensten
Fällen gefragt. Das Problem am "Allumfassenden Plan der Gesamtheit" [tm]
ist einfach, dass 80% der Entscheidungen erst dann gefällt werden
sollten/können, wenn die Basis für die Entscheidung bereits steht
und auch angewendet wird. Kein Programmierer der Welt (außer vielleicht
welche, die Programmierer-Tools entwickeln) können nämlich zu 100%
sagen, was der Anwender braucht und was der Anwender gerne hätte.
Ein weiteres Problem ist, dass der Anwender das selbst nicht weiß.
|
Es ist zwar richtig, daß sich Anforderungen ab und zu ändern und der
Auftraggeber es sich ab und zu anders überlegt. Aber auch um mit solchen
Anforderungen umzugehen, ist ein gutes Design (und das beginnt mit Papier
und Bleistift) eine Hilfe. Ein durchdachtes Design hält auch geänderten
Anforderungen Stand und muß dann nur an wenigen Stellen modifiziert werden.
| Quote: | [...]
Das soll natürlich nicht heißen, dass man nach dem
"Mach du mal"-Prinzip arbeitet und nach 2 Wochen ist die
ganze Arbeit umsonst, weil nichts genau genug deklariert wurde und
alles falsch umgesetzt ist.
|
Ich habe mich einmal darauf eingelassen, eine "kleine" (Access-)
Datenbankanwendung quasi auf Zuruf zu entwickeln. Ich habe es absolut
bereut. Denn was immer ich gemacht habe, es war nachher anders gewollt und
"hier hätten wir auch noch gern einen Knopf", der die bisherige Anwendung
vergewaltigt hat. Was ich daraus gelernt habe: Unbedingt mit dem
Auftraggeber zusammen ein Konzept entwickeln, was das System können soll
und was rauskommen soll.
| Quote: |
Wenn man selbst der Auftraggeber und Anwender ist, halte ich
ausgiebige Planung sowieso für überflüssig. Hier ist es viel
schneller, etwas zu implementieren und evtl. mal ein paar Stunden
arbeit wegzuschmeißen, weil einem bei der Implementation Fehler klar
wurden, die man nicht bedacht hatte (und nach meiner Erfahrung bei der
Planung leider auch übersieht), als vorher alles im Detail durchplanen
zu wollen.
|
Bei kleinen Tools für den Eigenbedarf stimme ich dir zu. Sowas kann ruhig
wachsen.
| Quote: |
Abgesehen davon habe ich bei den Zeitramen, die mir mein Chef steckt,
eh keine Zeit, großartig drüber nachzudenken. Bisher ist er allerdings
mit den Ergebnissen sehr zufrieden.
|
Bei uns richtet sich die Projektplanung nach den Aufwandschätzungen für die
Aufgaben. Und die werden bei uns durch erfahrene Entwickler (zu denen ich
mich auch zähle) gemacht, die bereits schon ähnliche Aufgaben realisiert
haben und die in der Regel die betrachtete Aufgabe auch selbst mit
realisieren werden.
Ich arbeite momentan an einem Teil einer neuen Beratungsanwendung in einem
bestehenden Anwendungsframework. Diesen Teil habe ich selbst geschätzt und
werde ihn zusammen mit einem Kollegen umsetzen. Derzeit bin ich in der
Papierphase. Ich schreibe mein DV-Konzept, was ich hier für eine sinnvolle
Investition halte. Ich selber käme in diesem Fall zwar auch ohne klar, weil
ich sozusagen mein Konzept im Kopf habe, aber da ich die Aufgabe nicht
alleine fertigstellen werde, benutze ich auch das Papier. Da stehen dann
definierte Teilaufgaben drin, die man auch gut unter Kollegen aufteilen
kann. (Du machst dies, ich mache jenes.) Diese Aufgabe zu zweit _ohne_
Papier lösen zu wollen, würde wohl eher zu Doppelarbeit und nachträglichen
Anpassungen wegen doch nicht passender Schnittstellen führen.
| Quote: |
Für RAD braucht man kein RAD-Framework oder eine RAD-IDE. Für RAD
braucht man lediglich die richtige Einstellung.
|
Da will ich nicht widersprechen, allerdings sehe ich RAD nicht als die
Lösung aller Probleme.
| Quote: | P.S.: Der OP scheint noch am Anfang seiner C++-Karriere zu stehen und
das Ganze eher als Übungsprojekt zu sehen. Hier halte ich es erst
Recht für kontraproduktiv, nicht einfach drauf los zu
programmieren. Schließlich *soll* er Probleme haben, die er dann
lösen kann, um mit der Programmiersprache vertraut zu werden.
|
Der OP sprach aber auch von einer Gruppe von 4 Leuten. Da muß man sich erst
recht Gedanken machen, was man tut.
Und auf Probleme wird er auch mit dem Papieransatz stoßen, mach dir da keine
Sorgen. Er hat mit Papier und Bleistift aber, wie ich meine, das bessere
Werkzeug in der Hand, um mit seinen Mitstreitern zusammen nicht den
Überblick zu verlieren und gute Lösungen für die auftretenden Probleme zu
finden.
Gruß
Martin
--
PGP Key ID 0xD617AEFB available from http://pgp.mit.edu or
http://www.keyserver.net
Key fingerprint = 9853 C638 00AC A926 CC05 65E3 BD58 7020 D617 AEFB
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Karl Heinz Buchegger Guest
|
Posted: Thu Feb 03, 2005 8:13 pm Post subject: Re: Wie plant und setzt man ein projekt um |
|
|
Martin Winkler wrote:
| Quote: |
P.S.: Der OP scheint noch am Anfang seiner C++-Karriere zu stehen und
das Ganze eher als Übungsprojekt zu sehen. Hier halte ich es erst
Recht für kontraproduktiv, nicht einfach drauf los zu
programmieren. Schließlich *soll* er Probleme haben, die er dann
lösen kann, um mit der Programmiersprache vertraut zu werden.
Der OP sprach aber auch von einer Gruppe von 4 Leuten. Da muß man sich erst
recht Gedanken machen, was man tut.
Und auf Probleme wird er auch mit dem Papieransatz stoßen, mach dir da keine
Sorgen. Er hat mit Papier und Bleistift aber, wie ich meine, das bessere
Werkzeug in der Hand, um mit seinen Mitstreitern zusammen nicht den
Überblick zu verlieren und gute Lösungen für die auftretenden Probleme zu
finden.
|
Vor allem findet man Problemkreise noch bevor man tagelang in den Rechner
reingehackt hat. Am Papier kann ich meinen Ansatz ziemlich schnell veraendern
und neu durchtesten. Und alleine das ist schon viel wert.
--
Karl Heinz Buchegger
[email]kbuchegg (AT) gascad (DOT) at[/email]
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Daniel Albuschat Guest
|
Posted: Fri Feb 04, 2005 12:32 pm Post subject: Re: Wie plant und setzt man ein projekt um |
|
|
Rolf Magnus wrote:
| Quote: | Was ist ein CRMS System?
[...]
Aber eigentlich glaube ich, daß eher ein "Customer Relationship Management
System" gemeint ist.
|
Mag sein. Ich arbeite gerade sogar selbst an einem. Aber was ist dann
ein Customer Relationship Management System System?
Aber mal im Ernst, ist ein CRM nicht ein wenig unpassend als
"Uebungsaufgabe" fuer die Abendschule?
Oder habe ich den OP falsch verstanden?
Und wie kann ich den Satz
"Wir haben uns schon ein Design ausgesucht, also das heißt die Optische
Darstellung steht."
verstehen?
MfG,
Daniel Albuschat
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Johannes Totz Guest
|
Posted: Fri Feb 11, 2005 1:48 pm Post subject: Re: Wie plant und setzt man ein projekt um |
|
|
Martin Winkler wrote:
| Quote: | Was ich daraus gelernt habe: Unbedingt mit dem
Auftraggeber zusammen ein Konzept entwickeln, was das System können soll
und was rauskommen soll.
|
Vorallem auch mit dem Anwender!
Häufig ist nämlich Anwender != Auftraggeber. Und der Auftraggeber weiss
selten, was der Anwender denn nun genau arbeiten soll (leider).
MfG
Johannes
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|