O Ciclo de Vida de Desenvolvimento de Software (SDLC) passa por várias fases como planejamento, avaliação de requisitos, análise, projeto, execução, documentação, testes, etc. Cada fase é dividida em tarefas com objetivos e resultados devidamente definidos.
Análise e Design são fases nas quais a arquitetura real, o modelo de trabalho e o processo de execução da construção de um produto de software são estabelecidos.
Duas etapas cruciais nestas fases são o projeto de sistema de alto nível e o projeto de sistema de baixo nível.
O que é projeto de sistema de alto nível?
O design de alto nível (HLD) fornece uma visão abrangente do processo de desenvolvimento de software, juntamente com a arquitetura do sistema, aplicativos, gerenciamento de banco de dados e fluxograma completo do sistema e navegação. É um blueprint que consolida as várias etapas e módulos, seus objetivos, componentes variáveis, resultados, arquitetura e cronograma para desenvolver o software. O HLD traduz um plano de negócios em um produto ou serviço de software.
Exemplos de HLD no desenvolvimento de software incluem documentos de arquitetura do sistema, fluxogramas de desenvolvimento de aplicativos, etc.
O que é projeto de sistema de baixo nível?
Projeto de baixo nível (LLD) lida com o planejamento, codificação e execução dos vários componentes, módulos e etapas no HLD, em um nível individual. Cada módulo em um HLD possui um documento LLD exclusivo que fornece detalhes abrangentes sobre como o módulo será codificado, executado, testado quanto à qualidade e integrado ao programa maior. O LLD fornece planos acionáveis ao desconstruir os componentes do HLD em soluções funcionais.
Exemplos de LLD no desenvolvimento de software incluem integração de carrinho, teste de segurança, design de interface de usuário, etc.
Diferenças entre HLD e LLD
HLD e LLD também atendem a diferentes funções e propósitos, como linguagens de programação de alto nível e linguagens de programação de baixo nível.
Macro vs. Microarquitetura e design
HLD é um projeto de nível macro que fornece uma visão panorâmica do processo de desenvolvimento de software. Inclui diagramas, fluxogramas, detalhes de navegação e outros requisitos técnicos que formarão o cerne do processo de desenvolvimento.
Além de fluxogramas, diagramas, informações de navegação e requisitos técnicos, o LLD também possui informações abrangentes sobre a execução passo a passo de cada componente do HLD. Ele lida com o desenvolvimento de software no nível micro.
Cada componente de um HLD possui um documento LLD exclusivo.
Cronologia de Desenvolvimento
HLD precede a fase LLD. Uma vez que o HLD esteja em vigor e aprovado para execução, o trabalho nos LLDs individuais pode começar.
O HLD começa assim que as etapas de planejamento e requisitos são tratadas e não tem outras dependências.
Por outro lado, o LLD precisa ser executado em uma ordem específica. Alguns módulos devem aguardar a execução até que outros sejam concluídos.
O LLD se enquadra na fase de design do SDLC, enquanto o HLD se enquadra na fase de análise do SDLC.
Propósito
- O objetivo de um HLD é listar os aspectos funcionais dos vários módulos juntamente com o resultado final.
- A finalidade de um LLD é detalhar a lógica e a execução de cada módulo em um HLD.
Partes interessadas
Os arquitetos de soluções são responsáveis por criar um documento HLD. Pode ter partes interessadas internas e externas, como a equipe de revisão, que toma conhecimento do métricas de software, a equipe de design, clientes e gerentes.
O LLD é tratado por desenvolvedores de software, administradores da web, engenheiros de segurança, etc., que fazem parte das equipes da empresa ou do fornecedor. Os LLDs geralmente são restritos a partes interessadas internas.
Público-alvo
Os documentos HLD têm como público-alvo gestores, clientes e equipes de desenvolvimento de software.
Engenheiros de software, codificadores, testadores e desenvolvedores que trabalham no projeto são o público-alvo dos documentos LLD.
Resultado esperado
- O resultado de um HLD é um produto ou serviço de software pronto para ser enviado ao usuário final.
- O resultado de um LLD é a conclusão de um único módulo do HLD, como as fases de codificação ou teste.
Noções básicas sobre documentos de design de software
Os documentos de projeto de software descrevem os aspectos estruturais, funcionais e lógicos do desenvolvimento de um produto ou serviço de software, além dos requisitos técnicos e outras implementações detalhes. Quer o projeto trate de execução em nível macro ou micro, os programadores e outras partes interessadas devem conhecer e entender o escopo e as várias etapas do processo de desenvolvimento de software.