Hallo Forum,
wollte mal wissen wie Ihr vorgeht wenn es was zu proggen gibt (Projekt etc.)
Sprich:
Ich persönlich male mir erstmal einen sehr sehr groben PAP/ UMl- Plan
(manchmal auch ein Hybrid aus beiden 😉 ). Dann schau ich wie man das ganze in ein Sinnvolles ganze bringen könnte das den OO Grundsätzen entspricht (Wiederverwendbarkeit etc.)
Evtl. schreib ich die Überlegungen die ich zu einem Projekt habe auch in eine Dok.- Datei um später nachschlagen zu können.
Allgemein benutze ich viel Papier wenn ich Entwickle, was jedoch meist immer nur Schmierblätter sind (also nicht wirklich gut strukturiert).
Würde mich mal interessieren wie Ihr das so mach.
mfg Hulk
Hi,
Wenn bei uns ein neues Projekt ansteht, legt die Aquisition erst mal das Analysedokument vor (meistens ziemlich unbrauchbar 🙁 ).
Ein oder zwei Tage später folgt die erste Besprechung, mit der gesamten Abteilung und der Aquisition. Dabei werden die Anforderungen aufgelistet und die Architektur des Gesamtsystems grob festgelegt (Server, Rechner, Datenbanken, Applikationen, ...).
Nach der ersten Besprechung entwirft das Designteam (Meistens mein Kollege und ich) das gesamte System. Dazu nehmen wir UML, wobei wir die Diagramme immer nur dann Zeichnen, wenn die anforderungen "zu" komplex sind. Dabei hohlen wir aber auch immer die Meinung der jeweiligen "Fach"-Entwikler ein (d.h. für Datenbanken, UIs, Web-UIs, usw.).
Wenn das Design (ein detailiertes Klassendiagramm und eine textuelle Beschreibung) von allen Beteiligten verstanden und als "OK" Bewertet wurde, wird mit der Implementation angefangen (Anlegen von Repositorys, *.sln, *.proj, ...). Aufgabenverteilung erfolgt durch den Projektleiter und nur Grob, falls es zu Änderungen kommt. Wir streben sowieso an, dass jeder Entwickler mit dem gesamten Code zurecht kommen.
Gruß
Juy Juka
Also ich entwickle ja bis jetzt nur Privat. Von daher lege ich nicht ganz so viel Wert auf die Planung. Manchmal sprudelt's mir eben aussem Kopf und ich fang eben gleich an zu programmieren. In der Regel plane ich jedoch schon ungefähr die GUI und das Klassendesign, weil es sonst am Ende nur ein rumgewurschtel ist.
Gruß
Hallo,
bei umfangreicheren Projekten zerlege ich das zu lösende Problem in Teilprobleme welche ich in natürlicher Sprache nummeriert aufschreibe. Bei grösseren Projekten kommt dann noch eine "Architekturskizze" hinzu, welche aber nur im entferntesten an UML erinnert.
Alles enthält sehr viel natürliche Sprache und Pseudocode. Konkrete Signaturen für Methoden,Interfaces und Eigenschaften überlege ich mir beim programmieren. Anders ist es natürlich wenn ich im Team arbeite, da sind die Schnittstellen ja vorgegeben oder werden in der Gruppe erarbeitet. Dann wird meistens ein UML-Diagramm im Visual-Studio Klassendesigner oder in Visio erstellt, welches dann widerrum Stubs generiert die nur noch mit Code befüllt werden müssen.
In Fällen in denen es darum geht aus einer Datenbank Business-Klassen zu implementieren oder Abstraktionsschichten zu schreiben habe ich mir jedoch angewöhnt UML-Diagramme zu erstellen, weil Fehler in dieser Phase erst spät auffallen. Das habe ich aus einem früheren Projekt gelernt in dem ein Designfehler in einer Abstraktionsklasse erst aufgefallen ist als ein Kollege gemerkt hat das er an bestimmte Daten entweder garnicht oder nur durch eine Verletzung der Objektorientierung rankommt. Daraufhin musste das gesamte Interface nochmal überarbeitet werden und sehr viel Anwendungscode der darauf aufbaute neu geschrieben werden.
Gruss
tscherno
Hallo
Leider fange ich oft ohne Planung an und das endet mit schrecklichem Code. Das ist mit c# aber noch besser als mit c++ und mfc. Man sollte sich wirklich vorher einen Plan machen.
chrische
bei mir kommt es erlich gesagt drauf an ob
in der schule ging es so: aufgabe -> schreiben und nach 50% der zeitvorgabe alles fertig
oo nur wen es gefordert war^^
private kommt es wiederrum auf die sprache an
bei c# mach ich meistens drauf los. überlege mir zwar vorher ein grobe klassenstrucktur und erweitere die nur wen es während der programierarbeit merke das etwas fehlt
pei php einfach drauf los
bei php mit mysql überleg ich mir vorher zumindest eine genaua datenbanklstrucktur (hab da heime nen nettes freewartool für privatentwikler. sehr nett erstelt auch gleich eine sql.install datei)
und auf arbeit wird alles vorher durchgesprochen detailiertes klassendiagram (fehlt trozdem immer mal etwas)
unittest's und teilweise auch PAP mit eingeschlossen
demzufolge würde ich sagen es kommt sowohl auf das projekt als auch auf den umfang drauf an wie ich es machen
MfG Paul
Bei uns ist es in etwa so, das fasst jeder sein eigenes größeres/großes Projekt hat. Ich für meinen Teil, mache mir höchstens selbst ein paar Bleistiftnotizen der Rest findet alles im Kopf statt.
Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...
Hallo,
da ich mehr oder weniger immer noch in der Lernphase bin, ist es bei mir ja eigentlich nur privater Natur... aber hab mir natürlich auch schon Gedanken gemacht.
Klar hab ich auch das mit den Lasten - und Pflichtenheft gelernt... und ich schätze mal in einem Job der bezahlt wird ist das auch ein Muss... sonst ist man selbst der Dumme am Ende.
Aber wenn ich das mal aussen vorlasse... das macht dann eine andere Abteilung 😉... geh ich sowas folgendermassen an:
Ich mach das so, weil das Wichtigste an einem Anwenderprogramm ist, wie der Name schon sagt der Anwender und dem muss es gefallen... und es ist unsere leidliche Aufgabe das zu erreichen, deswegen fange ich auch mit der GUI an und sehe zu wie ich den Rest dazu bekomme.
Gruß
HD
Man lernt auch im Alter nie aus
Mit 37 Fachinformatiker
Mit 38 (im August) Programmierer
Hallo
Planst du die GUI vorher am Papier? Ich ahbe nämlich oft die EeFahrung gemacht, dass einem dabei immer noch viel einfällt.
chrische
ich finde es manchmal ehr sinvoller erst ein program auf consolenbasis zu schreiben und dan die klassen einfach in ein windowsanwendung zu übernehmen und die onlicks sollen dan die klassen füttern
versteh ihr was ich meine? je beser das auf anhieb klapt umso beser deine klassen^^
MfG Paul
nichts geht über prototyping,
arbeite ja so gesehen schon ne ganze weile an dem projekt, dass mich auch wahrscheinlich noch einige jahre quälen wird.
eine solide dynamische grundstruktur, dann kannste immer weiter entwickeln.
wenns mal zu komplizierten schritten kommt, muss meine schreibunterlage hinhalten.
doku erfolgt auf notizblöcken, die dann irgendwann mal nachgetippt werden.
"Arbeit ist die altmodische Form der Vermögensbildung in Arbeitnehmerhand."
Wolfram Weidner (*1925), dt. Journalist
Also bei mir ist es privat und beruflich eher unterschiedlich.
Man sollte annehmen das es im Betrieb eher geordneter mit Klassendiagrammen etc zugehen sollte, dem ist aber nicht so, leider 😠 Wir haben zwar Projektleiter die aber vom Programmieren überhaupt keine Ahnung haben, so bekommen wir eine Liste mit den Funktionalitäten und den Daten die im späteren System behandelt werden soll. So hab ich mir recht schnell angewöhnt mir mein klassendiagramm im kopf zusammenzubauen um so eine Struktur zu haben was ich alles zu tun habe, dann lege ich erstmal die leeren Klassen an, mit den erforderlichen Methoden und Attributen und in jeden methodenrumpf kommt ein Comment mit // TODO: ... Wenn das steht gehts eigentlich schon ans implementieren, doch trotz meinem Hang zum perfektionierten OO-Design kommt es immerwieder vor das ich so ziemlich am Ende des Projektes merke wo noch was fehlt, da hätte ien vorher richtiges Klassendiagramm und vllt auch ein Sequenzdiagramm das verhindern können, naja Zeit ist Geld im heutigen Geschäftsleben 🙁
Privat läuft es dann schon geordneter zu. Da ich des öfteren Projekte habe die auch eine lange Benutzung mit sich ziehen gehört es einfach dazu. So ist es das ich zuerst ein ERD(bei Verwendung von Datenbanken oder XML) erstelle um alle Abhängigkeiten und m:m Beziehungen in die richtigen Tabellen zu zuordnen. Dann setze ich mich mit dem Auftraggeber zusammen und bespreche das, erkläre ihm grob wie das ERD zu verstehen ist und ob die Beziehungen untereinander auch so stimmen. Wenn das stimmt mache ich ein Klassendiagramm und lege das Projekt an, für eventuelle spätere Pflegbarkeit trenne ich GUI von der Logik und der Datenschicht, richtig wer aufgepasst hat erkennt das MVC-Prinzip 🙂 Joa und dann wird implementiert. Ich muss sagen das ich damit immer recht gut verfahre und es mich bisher vor größeren Problemen verschont hat.
GUI Designs entwerfe ich ebenfalls mit einem Toll was funktioniert wie ein GUI-Builder aber mitdem kann mann nur die Gui zusammenklicken und mehr nicht, aber so kann man eine GUI entwerfen welche auch am späteren Endprodukt fast 1:1 angelehnt ist, natürlich bekommt vor der Implementierung der Kunde diesen Entwurf zu Gesicht. Auch das erspart ein nachträgliches ändern der GUI ungemein, nichts ist schlimmer als am Ende des Projektes vom kunden gesagt bekommen das der Umgang mit der GUI nicht schön ist und man die komplette GUI neumachen muss, das wird ein gewurstel ^^
Ich weiß das klingt alles nach Streber und einem Buch der Softwareentwicklung aber es ist wirklich so, ich bin sonst kein peniepler Mensch aber nichts geht über ordentlich pflegbaren Code 🙂
Gut Schuß
VuuRWerK 😉
Edit: Weil ich es gerade lese, natürlich ist Prototyping eine sehr effektive Methode funktionalitäten zu testen. Das mach ich gern bei Algorithmen die ich bisher noch nicht entwickelt habe oder welche die recht kompliziert sind. Die speicher ich dann in einem Extra Projekt und kann so später immer wieder darauf zugreifen wenn ich diesen oder ähnlichen Algo brauch.
Original von VuuRWerK
GUI Designs entwerfe ich ebenfalls mit einem Toll was funktioniert wie ein GUI-Builder aber mitdem kann mann nur die Gui zusammenklicken und mehr nicht, aber so kann man eine GUI entwerfen welche auch am späteren Endprodukt fast 1:1 angelehnt ist,
Welches Tool verwendust Du hierfür??
Wir nutzen derzeit Visio, aber ne (bessere) Alternative wäre klasse...
Was einmal war, wird nie wieder sein...
Ich denk mir Klassendesign und Lösungen zu Architekturfragen beim Fahrradfahren aus und setze sie dann später um 🙂, entwickle momentan noch ausreichend wenig, dass das ausreicht...
Hallo Tokka,
das Tool ist ein Eclipse PlugIn und nennt sich "Visual Paradigm" Link zu Screenshots Je höher die Edition um so teurer, aber ich finde es lohnt sich echt, hab bisher auch nur Visio gekannt aber nachdem ich das mal als Werkstudent in meinem Praktikumsbetrieb hab testen können war ich begeistert.
Gut Schuß
VuuRWerK 😉
Hallo,
Visual Paradigm kann ich nur empfehlen - gibts eine Community Edition davon die für die private Benutzung frei ist (hat halt nicht den kompletten Umfang der "großen" Versionen).
Kann auch Standalone betrieben werden (ohne IDE Integration)
Grüsse,
Egon
egrath's Blog: http://egonrath.eg.funpic.de/wordpress
Also bei mir läufts meistens so ab:
->Besprechung, was soll gemacht werden
->Überlegungen, Heftchen schreiben, UMLs malen, auf Papier schmieren
->Nach den Überlegungen "Was brauch ich und wie" anfangen
->Meistens ändert sich dann noch einiges beim Entwickeln und man muss halt anpassen
(sei es weil die eigene Planung nicht stimmt oder das Projekt geändert wird, bei mir meistens ersteres 😜 )
Da ich zur Zeit nur privat programmiere, kann ich mir das aussuchen was für mich am besten passt.
Nach der Planungsphase brösel ich das Projekt evtl. erst einmal in kleinere Recherche-Projekte auf, wenn ich mit bestimmten Technologien noch nicht so vertraut bin.