High-Level-Systemdesign vs. Low-Level-Systemdesign in der Softwareentwicklung
Der Softwareentwicklungszyklus durchläuft viele Prozesse, und HLSD und LLSD sind nur zwei Teile.
Der Software Development Life Cycle (SDLC) durchläuft verschiedene Phasen wie Planung, Anforderungsbewertung, Analyse, Design, Ausführung, Dokumentation, Tests usw. Jede Phase ist weiter in Aufgaben mit genau definierten Zielen und Ergebnissen unterteilt.
Analyse und Design sind Phasen, in denen die tatsächliche Architektur, das Arbeitsmodell und der Ausführungsprozess für die Erstellung eines Softwareprodukts festgelegt werden.
Zwei entscheidende Schritte in diesen Phasen sind High-Level-Systemdesign und Low-Level-Systemdesign.
Was ist High-Level-Systemdesign?
High-Level Design (HLD) bietet einen umfassenden Überblick über den Softwareentwicklungsprozess sowie die Systemarchitektur, Anwendungen, Datenbankverwaltung und ein vollständiges Flussdiagramm des Systems und der Navigation. Es handelt sich um einen Entwurf, der die verschiedenen Schritte und Module, ihre Ziele, variablen Komponenten, Ergebnisse, Architektur und den Zeitplan für die Entwicklung der Software konsolidiert. HLD übersetzt einen Geschäftsplan in ein Softwareprodukt oder eine Dienstleistung.
Beispiele für HLD in der Softwareentwicklung sind Systemarchitekturdokumente, Flussdiagramme für die App-Entwicklung usw.
Was ist Low-Level-Systemdesign?
Low-Level-Design (LLD) befasst sich mit der Planung, Codierung und Ausführung der verschiedenen Komponenten, Module und Schritte im HLD auf individueller Ebene. Jedes Modul in einem HLD verfügt über ein einzigartiges LLD-Dokument, das umfassende Details darüber enthält, wie das Modul codiert, ausgeführt, auf Qualität getestet und in das größere Programm integriert wird. LLD liefert umsetzbare Pläne, indem es HLD-Komponenten in funktionierende Lösungen zerlegt.
Beispiele für LLD in der Softwareentwicklung sind die Integration von Einkaufswagen, Sicherheitstests, das Design von Benutzeroberflächen usw.
Unterschiede zwischen HLD und LLD
HLD und LLD erfüllen auch unterschiedliche Funktionen und Zwecke, z. B. Programmiersprachen auf hoher Ebene und Programmiersprachen auf niedriger Ebene.
Makro- vs. Mikroarchitektur und Design
HLD ist ein Design auf Makroebene, das eine Vogelperspektive auf den Softwareentwicklungsprozess bietet. Es umfasst Diagramme, Flussdiagramme, Navigationsdetails und andere technische Anforderungen, die den Kern des Entwicklungsprozesses bilden.
Neben Flussdiagrammen, Diagrammen, Navigationsinformationen und technischen Anforderungen verfügt LLD auch über umfassende Informationen zur schrittweisen Ausführung jeder Komponente des HLD. Es befasst sich mit der Softwareentwicklung auf der Mikroebene.
Jede Komponente eines HLD verfügt über ein eindeutiges LLD-Dokument.
Entwicklungschronologie
HLD geht der LLD-Phase voraus. Sobald das HLD vorliegt und zur Ausführung genehmigt wurde, kann mit der Arbeit an den einzelnen LLDs begonnen werden.
HLD beginnt, sobald die Planungs- und Anforderungsphase abgeschlossen ist, und weist keine weiteren Abhängigkeiten auf.
Andererseits muss LLD in einer bestimmten Reihenfolge ausgeführt werden. Einige Module müssen auf ihre Ausführung warten, bis andere abgeschlossen sind.
LLD fällt in die Entwurfsphase des SDLC, während HLD in die Analysephase des SDLC fällt.
Zweck
- Der Zweck eines HLD besteht darin, die funktionalen Aspekte der verschiedenen Module zusammen mit dem Endergebnis aufzulisten.
- Der Zweck eines LLD besteht darin, die Logik und Ausführung jedes Moduls in einem HLD detailliert darzustellen.
Stakeholder
Lösungsarchitekten sind für die Erstellung eines HLD-Dokuments verantwortlich. Es kann interne und externe Stakeholder wie das Prüfteam, das die Softwaremetriken zur Kenntnis nimmt, das Designteam, Kunden und Manager haben.
LLD wird von Softwareentwicklern, Webadministratoren, Sicherheitsingenieuren usw. verwaltet, die Teil des Unternehmens- oder Anbieterteams sind. LLDs sind im Allgemeinen auf interne Stakeholder beschränkt.
Zielgruppe
HLD-Dokumente richten sich an Manager, Kunden und Softwareentwicklungsteams.
Die Zielgruppe für LLD-Dokumente sind Softwareentwickler, Programmierer, Tester und Entwickler, die am Projekt arbeiten.
Erwartetes Ergebnis
- Das Ergebnis eines HLD ist ein Softwareprodukt oder eine Dienstleistung, die zum Versand an den Endbenutzer bereit ist.
- Das Ergebnis eines LLD ist der Abschluss eines einzelnen Moduls des HLD, beispielsweise der Codierungs- oder Testphase.
Software-Designdokumente verstehen
Software-Designdokumente beschreiben die strukturellen, funktionalen und logischen Aspekte der Entwicklung eines Softwareprodukts oder einer Softwaredienstleistung zusätzlich zu den technischen Anforderungen und anderen Implementierungsdetails. Unabhängig davon, ob sich der Entwurf mit der Ausführung auf Makro- oder Mikroebene befasst, sollten Programmierer und andere Beteiligten den Umfang und die verschiedenen Schritte des Softwareentwicklungsprozesses kennen und verstehen.