Documentando sistemas da informação com UML (parte 2)

danieldantasdev
4 min readSep 3, 2023

--

Uml (Unified Modeling Language)

Documentando sistemas da informação com UML (parte 2)

Nesta segunda parte do artigo, serão mostradas as principais fases do ciclo de vida útil de um software, explorando como a UML desempenha um papel fundamental na documentação e no entendimento dessas fases.

Além disso, discutiremos a modelagem de domínio, que constitui uma parte crucial das fases iniciais do ciclo de vida do software. Vamos explorar os diferentes níveis de abstração presentes na camada de domínio e entender como cada um deles contribui para a construção de sistemas robustos e bem projetados.

Metodologia Tradicional (Waterfall) vs. Metodologia Ágil (Scrum)

Figura 1.1 cascata vs ágil [Agilers]

Antes de entrarmos nos detalhes da modelagem de domínio, é importante ter uma visão geral das principais fases do ciclo de vida do software. Duas das abordagens mais comuns são a metodologia tradicional, conhecida como Waterfall, e a abordagem ágil, em particular o Scrum. Vamos dar uma olhada nessas abordagens e como a UML se encaixa em cada uma delas.

Certamente, aqui estão as fases do ciclo de vida do software que as metodologias Waterfall e Scrum abordam:

Metodologia Tradicional (Waterfall):

  1. Levantamento de Requisitos: Identificação e documentação dos requisitos do software a partir das necessidades dos stakeholders.
  2. Análise: Análise detalhada dos requisitos para determinar a funcionalidade e características do sistema.
  3. Design: Criação da arquitetura e design do sistema, incluindo o layout de telas e a estrutura do banco de dados.
  4. Implementação: Codificação do software com base no design especificado.
  5. Testes: Realização de testes para verificar se o software atende aos requisitos e funciona corretamente.
  6. Implantação: Lançamento do software para uso pelos usuários finais.
  7. Manutenção: Atualizações, correções de bugs e melhorias contínuas após a implantação.

Metodologia Ágil (Scrum):

  1. Planejamento: Definição dos objetivos e escopo do projeto, bem como a criação de uma lista de tarefas (backlog).
  2. Sprint de Planejamento: Seleção das tarefas a serem executadas na sprint atual (período de tempo fixo).
  3. Desenvolvimento: Implementação das funcionalidades planejadas para a sprint.
  4. Revisão da Sprint: Demonstrar e revisar o trabalho concluído durante a sprint com os stakeholders.
  5. Retrospectiva da Sprint: Reflexão sobre a sprint concluída para identificar melhorias para as próximas sprints.
  6. Sprint subsequente: Iniciar uma nova sprint com base nas lições aprendidas e no feedback dos stakeholders.
  7. Entrega Contínua: Entregar incrementos de software funcional no final de cada sprint.

Essas são as fases gerais abordadas pelas metodologias Waterfall e Scrum. Cada metodologia possui uma abordagem única para lidar com essas fases e enfatiza diferentes aspectos do desenvolvimento de software. A UML pode ser aplicada em várias dessas fases para auxiliar na comunicação, visualização e documentação dos processos e artefatos do projeto.

Modelagem de Domínio

A modelagem de domínio é uma etapa crucial no desenvolvimento de software, que acontece geralmente nas fases iniciais do ciclo de vida. Ela visa entender e representar visualmente o ambiente no qual o software irá operar. Vamos explorar os diferentes níveis de abstração que compõem a modelagem de domínio, destacando como cada um deles contribui para a criação de um sistema coeso e bem projetado.

Diagrama Conceitual / Análise de Negócio

Descrever as entidades do domínio (do negócio) e suas inter-relações:

  • Independentemente de SISTEMA, PARADIGMA E TECNOLOGIA
Figura 1.2 Diagrama Conceitual / Análise de Negócio

Diagrama Conceitual / Análise de Sistema

Descrever as entidades do domínio (do sistema) e suas inter-relações:

  • Independentemente de PARADIGMA E TECNOLOGIA
  • Preso ao SISTEMA
Figura 1.3 Diagrama Conceitual / Análise de Sistema
Figura 1.4 Diagrama Conceitual / Análise de Sistema

Diagrama Lógico / Design

Descrever as entidades do domínio (do sistema) e suas inter-relações:

  1. Preso a um PARADIGMA (ex: relacional, orientado a objetos)
  2. Independentemente de TECNOLOGIA
  • Preso ao paradigma: relacional
Figura 1.5 Diagrama Lógico / Design preso ao Relacional
  • Preso ao paradigma: orientado a objetos
Figura 1.6 Diagrama Lógico / Design preso a POO

Diagrama Físico ou de Implementação

Descrever as entidades do domínio (do sistema) e suas inter-relações:

  1. Preso a um PARADIGMA (ex: relacional, orientado a objetos)
  2. Preso a uma TECNOLOGIA (ex: C#, Java)
  • Preso ao paradigma: orientado a objetos
  • Preso à tecnologia: C#
public class Produto {

private Integer Id { get; private set; };

private String Descricao { get; private set; };

private Double Preco { get; private set; };

public Produto(int id, string descricao, double preco) {
Id = id;
Descricao = descricao;
Preco = preco;
}
}
  • Preso ao paradigma: relacional
  • Preso à tecnologia: MySQL (dialeto SQL)
CREATE TABLE `produto` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`descricao` varchar(255) DEFAULT NULL,
`preco` float DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Referências

HTTPS://AGILERS.COM.BR/CASCATA-X-AGIL/. [S. l.], 28 ago. 2023.

Fowler, Martin. UML Essencial: um breve guia para linguagem padrão. Bookman editora, 2014.

Lavagno, Luciano, Grant Martin, and Bran Selic. UML for Real. Kluwer Academic Publishers, 2003.

Martin, Grant, and Wolfgang Müller, eds. UML for SoC design. Springer Science & Business Media, 2006.

--

--