Cykl życia oprogramowania (SDLC) przechodzi przez różne fazy, takie jak planowanie, ocena wymagań, analiza, projektowanie, wykonanie, dokumentacja, testowanie itp. Każda faza jest dalej podzielona na zadania z odpowiednio zdefiniowanymi celami i rezultatami.
Analiza i projektowanie to etapy, w których ustalana jest rzeczywista architektura, model roboczy i proces realizacji tworzenia oprogramowania.
Dwa kluczowe etapy w tych fazach to projektowanie systemu wysokiego poziomu i projektowanie systemu niskiego poziomu.
Co to jest projektowanie systemu wysokiego poziomu?
Projekt wysokiego poziomu (HLD) zapewnia kompleksowy przegląd procesu tworzenia oprogramowania wraz z architekturę systemu, aplikacje, zarządzanie bazą danych oraz kompletny schemat blokowy systemu i nawigacja. Jest to plan, który konsoliduje różne kroki i moduły, ich cele, zmienne komponenty, wyniki, architekturę i harmonogram rozwoju oprogramowania. HLD przekłada biznesplan na oprogramowanie lub usługę.
Przykłady HLD w tworzeniu oprogramowania obejmują dokumenty architektury systemu, schematy blokowe tworzenia aplikacji itp.
Co to jest projektowanie systemów niskopoziomowych?
Projektowanie niskopoziomowe (LLD) zajmuje się planowaniem, kodowaniem i wykonywaniem różnych komponentów, modułów i kroków w HLD na poziomie indywidualnym. Każdy moduł w HLD ma unikalny dokument LLD, który zawiera szczegółowe informacje o tym, jak moduł będzie kodowany, wykonywany, testowany pod kątem jakości i integrowany z większym programem. LLD zapewnia wykonalne plany, rozkładając komponenty HLD na działające rozwiązania.
Przykłady LLD w tworzeniu oprogramowania obejmują integrację koszyka, testowanie bezpieczeństwa, projektowanie interfejsu użytkownika itp.
Różnice między HLD a LLD
HLD i LLD pełnią również różne funkcje i cele, takie jak języki programowania wysokiego poziomu oraz języki programowania niskiego poziomu.
Makro a Mikroarchitektura i projektowanie
HLD to projekt na poziomie makro, który zapewnia widok z lotu ptaka na proces tworzenia oprogramowania. Zawiera diagramy, schematy blokowe, szczegóły nawigacyjne i inne wymagania techniczne, które będą stanowić sedno procesu rozwoju.
Oprócz schematów blokowych, diagramów, informacji nawigacyjnych i wymagań technicznych, LLD zawiera również wyczerpujące informacje na temat wykonywania krok po kroku każdego komponentu HLD. Zajmuje się tworzeniem oprogramowania na poziomie mikro.
Każdy element HLD ma unikalny dokument LLD.
Chronologia rozwoju
HLD poprzedza fazę LLD. Po ustanowieniu HLD i zatwierdzeniu do realizacji można rozpocząć prace nad poszczególnymi LLD.
HLD rozpoczyna się po załatwieniu etapów planowania i wymagań i nie ma innych zależności.
Z drugiej strony, LLD musi być realizowane w określonej kolejności. Niektóre moduły muszą czekać na wykonanie, dopóki inne nie zostaną zakończone.
LLD wchodzi w fazę projektowania SDLC, podczas gdy HLD wchodzi w fazę analizy SDLC.
Zamiar
- Celem HLD jest zestawienie funkcjonalnych aspektów różnych modułów wraz z końcowym wynikiem.
- Celem LLD jest wyszczególnienie logiki i wykonania każdego modułu w HLD.
Interesariusze
Architekci rozwiązań są odpowiedzialni za stworzenie dokumentu HLD. Może mieć wewnętrznych i zewnętrznych interesariuszy, takich jak zespół przeglądowy, który bierze pod uwagę metryki oprogramowania, zespół projektowy, klienci i menedżerowie.
LLD jest obsługiwany przez programistów, administratorów stron internetowych, inżynierów bezpieczeństwa itp., którzy są częścią zespołów firmy lub dostawców. LLD są na ogół ograniczone do wewnętrznych interesariuszy.
Grupa docelowa
Dokumenty HLD są skierowane do menedżerów, klientów i zespołów programistycznych.
Inżynierowie oprogramowania, programiści, testerzy i programiści pracujący nad projektem są docelowymi odbiorcami dokumentów LLD.
Spodziewany rezultat
- Wynikiem HLD jest oprogramowanie lub usługa gotowe do wysłania do użytkownika końcowego.
- Wynikiem LLD jest ukończenie pojedynczego modułu HLD, takiego jak fazy kodowania lub testowania.
Zrozumienie dokumentów projektowych oprogramowania
Dokumenty projektowe oprogramowania przedstawiają strukturalne, funkcjonalne i logiczne aspekty opracowywania produkt lub usługa oprogramowania oprócz wymagań technicznych i innych implementacji Detale. Niezależnie od tego, czy projekt dotyczy wykonania na poziomie makro, czy mikro, programiści i inni interesariusze powinni znać i rozumieć zakres i różne etapy procesu tworzenia oprogramowania.