Ich mag die Antwort von William Pietri sehr (+1), aber ich glaube, dass sie ergänzt werden muss. Selbst wenn man davon ausgeht, dass das, was Sie unter Systemen verstehen, ausschließlich aus Software besteht.
Aber bevor ich darauf eingehe, kenne ich kein Buch, das mir helfen könnte. Alles, was folgt, habe ich aus Erfahrung gelernt (dh die drei Punkte, die William gemacht hat).
Was Sie sprechen, umfasst mindestens vier große Rollen. Manchmal kann eine Person alle diese Rollen für kleine bis mittlere Projekte ausfüllen, aber wenn Sie mit großen Projekten beginnen, müssen Sie diese Rollen zumindest etwas voneinander trennen. Es ist schwierig für irgendjemanden, in irgendeiner sinnvollen Weise Experte für sie alle zu sein.
Business Analyst
Das ist die Person, die mit dem Kunden spricht und seine Anforderungen in etwas übersetzt, das ein Architekt verstehen kann. Grundsätzlich eine Liste der richtig formulierten Anforderungen. Dies umfasst die offensichtlichen funktionalen Anforderungen (was muss dieses System bieten?), Aber auch nicht funktionale Anforderungen (welche allgemeinen Merkmale muss das System erfüllen? Dies kann Sicherheit, Zuverlässigkeit, Verfügbarkeit, Ausfallsicherheit, Kapazität, Leistung, Robustheit und Sicherheit umfassen andere solche Anforderungen aus Anwendersicht).
Dies ist der erste Durchgang zu dem, was das System tun muss, der Beginn ernsthaften Denkens.
System Architekt
Diese Person erstellt den technischen Rahmen auf hoher Ebene, in dem sie arbeiten kann. Sie geben den Umriss-Match-Plan. Die allgemeinen Werkzeuge, Techniken, Konstrukte. Sie zerlegen das gesamte System in kleinere Komponenten, wie sie zueinander passen, wie sie zur Außenwelt passen ...
Dies hilft in vielerlei Hinsicht zu verfeinern, worüber nachgedacht werden muss. In diesem Stadium werden sehr oft Probleme mit den Anforderungen des Geschäftsanalysten festgestellt. Zurück zu ihnen für einige Iterationen, um ihr Verständnis für das, was sie wollen und ihren Ausdruck davon zu verbessern.
Systemdesigner
In dieser Rolle geht es darum, wie alles funktioniert. Dies könnte mehr Teamarbeit sein als eine Ein-Mann-Show. Es gibt jedoch wahrscheinlich einen leitenden Designer, der das gesamte Systemdesign überwacht. Diese Person muss sich mit den Details befassen und sicherstellen, dass die Ansicht des Architekten tatsächlich erstellt werden kann.
Erwarten Sie eine weitere Verfeinerung der Architektur des Systems und damit möglicherweise der Geschäftsanalyse.
Testmanager
Diese Rolle wird sehr oft vergessen. Aber am Ende des Tages, wenn Sie es nicht testen können, wie können Sie beweisen, dass Sie es bauen können? Die Ergebnisse aller Phasen müssen überprüft werden: Geschäftsanalyse, Architektur und Design durch eine Testperson, die in der Lage ist, Mängel aufzuzeigen und daher frühzeitige Korrekturen zu ermöglichen, lange bevor Code geschrieben wird.
Das ist eine kurze Zusammenfassung.
Diese Jungs / Mädels sind nur die allgemeinen Leute in der Kette, die darüber nachdenken, woran man denken muss.
Für komplexe Projekte wie große Bank- oder Raumfahrtanwendungen, um nur zwei Beispiele zu nennen (denken Sie an viele hundert bis viele tausend Manntage), gibt es viele Fachexperten, wie wir sie nennen, um Projekte in jeder Phase zu überprüfen und zu unterstützen. Diese Rollen umfassen Sicherheitsanalyse, Systemgröße, Kapazität, Leistung, Datenbanken, Clustering und viele andere derart enge Fachgebiete, einschließlich präziser Geschäftsbereiche. Die Vielfalt der Rollen hängt von der Größe und Komplexität der Systeme ab.
All das, um zu sagen, dass Sie nicht versuchen sollten, alles zu wissen, werden Sie nicht. Sie können sich jedoch ein Bild vom Gesamtbild machen und bei kleinen Projekten viel mehr als bei großen Projekten, einfach weil die Komplexität es Ihnen ermöglicht, runder zu sein.
Wenn Sie wissen möchten, wie man Systeme entwirft, müssen Sie anfangen, Fragen zu stellen, indem Sie über den Tellerrand hinaus denken. Versetzen Sie sich genug in die Lage des Kunden und überlegen Sie, was schief gehen könnte und was getestet werden muss. Treffen Sie sich dann mit einem echten Kunden und fordern Sie ihn auf, die Ausmaße und Grenzen des Systems zu erläutern, das er sich vorstellt. Und wenn ich "Kunde" sage, müssen Sie verstehen, dass dies mehrere sehr unterschiedliche Personen umfasst. Es gibt die Person, die das System Tag für Tag für das verwendet, wofür es entwickelt wurde. Es gibt den Betreiber, den technischen Support, den Manager, der den einen oder anderen Bericht benötigt, den Prüfer, das Infrastruktur-Team, den Stakeholder, der dafür bezahlt hat, den Qualitätsmanager, der Mittel zum Testen Ihres Systems benötigt ... Fragen Sie alle (und ob) sie sind eine Person, Bitten Sie sie, alle diese Hüte einzeln aufzusetzen. Fragen Sie sie also alle, was sie benötigen, und Sie haben einen guten Einstieg in die Kenntnis Ihrer Systemanforderungen. Von dort können Sie die Architektur und von dort das Design ableiten.
Für komplexe Systeme (ob nur Software oder zur Integration in Hardware im allgemeinsten Sinne) reicht nicht nur eine Person für jede der vier oben aufgeführten Rollen aus, sondern Sie müssen auch die Definition des Systems projektverwalten tun, geschweige denn die anderen Phasen.
HPH, asm.