suche Bücher zur Softwareentwicklung

S

Scared

Guest
Hallo Forum,

ich möchte gerne eine etwas größere Software schreiben, leider habe ich mich zwar viel mit Programmiersprachen beschäftigt, aber nie mit dem "drum herum" in der Softwareentwicklung.

Ich möchte nicht einfach "drauf los" programmieren wie ich das bei kleineres Tools abgesehen von ein paar Stichpunkten mache und suche daher eine Art Leitpfaden, wie denn in der Praxis so ein Projekt geplant werden kann und was es da für Möglichkeiten gibt.

Zur Softwareentwicklung:

  • Softwareentwicklung kompakt und verständlich: Wie Softwaresysteme entstehen von Hans Brandt-Pook
  • Softwareentwicklung von Kopf bis Fuß: Ein Buch zum Mitmachen und Verstehen
  • Agile Softwareentwicklung von Henning Wolf

zu Entwurfsmustern:

  • Patterns kompakt: Entwurfsmuster für effektive Software-Entwicklung
  • Entwurfsmuster von Kopf bis Fuß von Eric Freeman

Hat jemand diese Bücher gelesen und sind davon welche empfehlenswert? Oder hat jemand vielleicht eine andere Buchempfehlung? ... bzw. sind das überhaupt die "Themen" die ich benötige?

Ich habe keine Ahnung, wie ich anfangen soll. Mein Informatik Studium beginnt erst Ende des Jahres... solange will ich aber nicht warten.

Viele Grüße
 
Agile Softwareentwicklung von Henning Wolf habe ich gelesen und kann es nur weiterempfehlen. Bezüglich Entwurfsmustern kenne ich deine Vorschläge nicht, ich könnte aber die absolute Standardlektüre auf dem Gebiet, Entwurfsmuster der Gang of Four, nur empfehlen. Zudem sehr gut in Erinnerung geblieben ist mir Clean Code von Robert C. Martin.

mfg benediktibk
 
Ich empfehle Code Complete 2 von Steve McConnel und The Pragmatic Programmer. Zu den Entwurfsmustern: Besorg dir lieber das englische Buch Design Patterns von Gamma & Co.. Generell habe ich den Eindruck, dass das lesen deutscher Bücher über Softwareentwicklung einem nicht das Vokabluar vermittelt, das man später braucht.
 
Wall of Text

Das Problem bei Softwaretechnik ist, dass du keinerlei
Ansatz hast, der immer aufgeht. Dadurch das Menschen beteiligt sind,
ist ein schwieriges und schwammiges Unterfangen. Zahlreiche Faktoren,
manchmal implizit und manchmal explizit beeinflussen ein Projekt.
Das resultiert darin, dass man nicht einfach ueberall agile Entwicklung raufklatscht und
ploetzlich ist alles toll( analog natuerlich mit jeder anderen Methode...).
Gewissermassen determiniert der Kontext in seiner Gesamtheit die Art und Weise der Softwareentwicklung. Ob man nun
agile Methoden(Kanban, Scrum,...), "klassische" Methoden(Wasserfall) oder gar Exoten(Cleanroom Engineering...) praktiziert,
spielt praktisch kaum eine Rolle. Am Ende zaehlt es ein Produkt puenktlich abzuliefern und die Kundenwuensche bestmoeglich zu erfuellen.
Da gibt es kein "one-size fits all" oder/und einen Masterplan.
Genau genommen ist es vermutlich ein Wunder, das ueberhaupt Software entsteht :wink:.

Meiner Meinung nach ist es genau dieser Punkt, der vernachlaessigt wird; Vor allem zu Zeiten gehypter agiler Methoden und Designpatterns. Mehr als einmal habe ich gesehen, wie vollkommen triviale Probleme kuenstlich aufgeblaeht werden und anschliessend mittels Designpatterns "geloest" werden. Das Resultat sind dann ein "paar" Zeilen Code mehr.... (und ja sie koennen auch praktisch sein, wenn sie dem Problem angemessen sind).

Um jetzt den Bogen zu deiner "etwas groeszeren" Software zu schlagen:

Wenn du alleine entwickelst, kann man sich komplexe Softwareprozesse vollkommen aussparen. Wichtig ist, dass du dir vorher genau ueberlegst, was das zu loesende Problem ist und wie man es in Teilprobleme zerlegt. Entweder kannst du diese Teilprobleme loesen oder du musst analog weiter zerlegen(Bottom-up- bzw. Top-Downmethode). Wie viel "Bookkeeping"(Doku, Kommentare, Skizzen, etc) gemacht wird, haengt groesstenteils von dir und deinen Beduerfnissen ab.

Ich sehe wenig Bedarf an Buechern zu Anfang, stattdessen empfehle ich die Folien einer der Veranstaltungen, welche ich zu Softwaretechnik und Entwicklung gehoert habe, da sie recht viel abdeckt(und agiles auslaesst) und zunaechst einen guten Ueberblick verschafft( Kann aber ohne audiovisuelle Komponente schwierig sein) : VorlesungSoftwaretechnik2012 - SE - TWiki . Ausgehend davon kannst du dir die Teile rauspicken, welche dich interessieren und dann wesentlich gezielter weitersuchen.

Zusaetzlich lohnt es sich noch Test-Driven-Development anzusehen,
da man dadurch(sogar alleine!) besseren Code schreibt, da viele Sachen wesentlich klarer werden.
Das Suchen dafuer ueberlasse ich aber dir, da es dazu viel Material gibt.

tl;dr Software Engineering is hard.

mfg
 
Die beiden Bücher aus der "Von Kopf bis Fuß" Reihe sind auch sehr empfehlenswert. Die verfolgen keinen so ganz konventionellen Ansatz sondern erläutern vieles immer am Beispiel ausgehend von einer Problemstellung. Lohnt sich auf jeden Fall mal da rein zu schauen.

Für den Anfang bietet sich jedenfalls Java (fürs Studium eh relevant) an. Da sind alle wichtigen Libraries schon enthalten und du kannst gleich loslegen.
 
Zurück
Oben