Essa semana, estou compartilhando minhas anotações pessoais de um curso de UML que fiz há alguns meses atrás. Como ficou bem grande, dividi em dois artigos. Espero que gostem!
Fase de Desenvolvimento de um Sistema de UML
Análise de requisitos = é o primeiro levantamento das intenções e necessidades de dos usuários de um sistema. A partir dessa análise, serão elaboradas todas as demais necessidades do projeto, bem como os diagramas e os gráficos que permitirão uma análise detalhada do que cada processo ou ação vai executar.
Análise do sistema = é o passo seguinte, onde se inicia as classes, os objetos e os mecanismos que irão solucionar um método ou uma ação. Os diagramas de use cases são ideais para este detalhamento.
Design = nesta fase o projeto toma forma, onde são criadas as interligações com os vários sistemas.
Programação = nesta fase o projeto é convertido para alguma linguagem de programação orientada a objetos, é a fase de codificação das etapas anteriores.
Testes = é onde ocorre a validação do sistema, sendo comum que sejam executados três processos de teste: teste unitário, teste de integração e teste de homologação (aprovação).
Análise de Requisitos
Os principais elementos e entidades da análise de requisitos são os: atores (elementos que alimentam o sistema. Por exemplo: usuários e gerências), objetos (elementos para armazenamento de dados de sistema. Por exemplo: usuários e gerência) e atributos (informações relevantes que serão utilizadas pelo sistema. Por exemplo, situação: disponível/indisponível).
Exemplo: vamos criar um diagrama de caso de uso para um bibliotecário (auto avaliar os registros, permitir acesso ao acervo-usuário, disponibilizar status/situação, imprimir relatório-usuários, empréstimo, situação).
O desenvolvimento UML deve possuir também as visões, modelos de elementos, mecanismos gerais e diagramas.
Visão
As visões compostas nos diagramas possuem as estruturas dos elementos do sistema. Cada visão representa uma particularidades da especificação completa e mostra os diferentes aspectos do projetos. Elas são criadas com vários diagramas, que contém informações enfáticas sobre os aspectos particulares do projeto.
Modelo de elementos e mecanismos gerais
Modelos de Elementos são as definições utilizadas nos diagramas, determinadas de acordo com a sua representação, sem gerar dúvidas ou ambiguidade.
Classes: é a referência ou a representação de um objeto e corresponde à classificação do objeto segundo os critérios de atributos e métodos.
Objetos: é a referência ou a representação de um objeto e corresponde à classificação do objeto segundo os critérios de atributos e métodos. O nome representa a identificação do estado. Os atributos apresentam a variável do estado, suas características. As atividades relacionam as ações e os eventos, como entrar, sair, executar, etc.
Estados: os estados são os resultados das atividades alcançadas após o processamento de um objeto. Um estado é obtido por meio dos valores dos atributos do objeto e das ligações com outros objetos.
Diagramas de módulos ou pacotes: este diagrama descreve as partes de um sistema em agrupamentos lógicos. Além disso, o diagrama exibe as dependências entre esses agrupamentos. As formas de comunicação permitidas entre elas são identificadas por: dependência, refinamento ou generalização.
Diagrama de Módulos
O objetivo do diagrama de módulos é organizar os modelos dos elementos.
Componentes: são códigos em linguagem de programação ou códigos em linguagem de máquina (objeto ou executável). É utilizado para modelar o código-fonte e para destacar a função de cada módulo, facilitando a reutilização.
Diagrama de Componentes
O diagrama de componentes determina como as classes deverão estar organizadas, por meio dos componentes de trabalho. Desse modo, é possível apontar quais classes cada componente representa.
Os relacionamentos conectam classe ou objetos estabelecidos relações lógicas entre as próprias entidades, são divididos em:
Associação: é o relacionamento entre as classes e os objetos dessas classes. A função de associação é detalhar uma quantidade de conexões definidas entre os dois objetos relacionados.
Generalização: é um tipo de relacionamento entre o elemento globalizado com outro específico, que abrange somente informações complementares (mais detalhadas além da instância), permitindo sua utilização onde o elemento globalizado seja permitido.
Especialização: ocorre quando uma classe criada é herdada da generalização e detalha o processo definido na classe pai. Dessa forma, essa classe especializa a classe pai para um tipo específico.
Dependência: a dependência é a relação entre um elemento independente e um elemento dependente. Por conta desse relacionamento, qualquer modificação no elemento independente provoca alteração no elemento dependente.
Refinamento: o refinamento é um relacionamento em níveis distintos de concepção. Tal relacionamento envolve duas definições de uma mesma entidade.
Uma associação exibe a conexão de duas classes. Seus tipos mais usados são:
Associação Normal: é a forma mais comum de associação. De modo geral, a associação declara um nome de identificação e, normalmente, uma ação. A ação só pode ser declarada por um verbo ou um substantivo, quando um verbo não for recomendado.
Associação Recursiva: é um tipo de associação que permite a conexão de uma classe a ela mesma por ligação.
Associação Qualificada: são aplicadas às associações de um para vários (1 … ) ou de vários para vários (). O identificador da associação qualificada (qualificador) determina como um objeto é identificado no final da associação n.
Associação Exclusiva: uma associação é exclusiva quando um modelo apresenta restrições de duas ou mais associações. Desse modo, em um certo momento, a participação de objetos de uma classe deve ocorrer em uma das associações no máximo. É indicada por uma linha tracejada entre as associações, com a referência {ou} na linha tracejada.
Associação Ordenada: ocorre quando as relações entre objetos possuem uma ordem específica, também podem indicar uma ordenação oculta em alguns casos. A associação é indicada com a descrição “{ordenada}” próxima à linha de relacionamento de associação entre ambas as classes.
Associação Ternária: ocorre quando uma classe pode ser ligada a outras associações que já possui duas classes a ela relacionadas. Ela ocorre na própria linha da associação, para adicionar informações extras na associação anterior. Nesse sentido, a associação ternária reúne três classes e é representada por meio de um losango.
Associação Agregação: é utilizada quando uma das classes associadas é considerada parte de outra classe ou está inserida em outra classe. É identificada quando alguns termos são aplicados, como: é parte de; contém; consiste em. Elas são especificadas em:
o Agregação Compartilhada: ocorre quando uma das classes é parte de outra classe ou nela está inserida. Com isso, a classe pode repetir-se diversas vezes em um mesmo instante.
o Agregação Composta/Composição:ocorre quando uma classe está inserida em outra classe. Caso o objeto da classe principal seja eliminado, as classes que integram a classe principal também são eliminadas.
A generalização é um tipo de relacionamento definido pelo elemento principal classe pai e pelo elemento detalhado classe filho/herança. Essa generalização é dividida em dois tipos diferentes:
o Generalização Normal: a classe detalhada é conhecida como subclasse ou classe filha. A subclasse todos os atributos, os métodos e as associações da classe principal. A representação é visualizada por meio de uma linha que associa as duas classes relacionadas, superclasse é indicada pela seta da linha que representa a generalização.
o Generalização Restrita: detalha informações mais objetivas e concretas, abordando o processo e a forma como a generalização será aplicada e ampliada posteriormente. Ela pode ser dividida em generalização de sobreposição, disjuntiva, completa e incompleta.
Ao contrário da generalização, a especialização cria uma classe herdada na generalização. Com isso, o processo definido na classe é refinado. A especialização detalha a classe pai de acordo com as necessidades dos elementos da aplicação.
Dependência: A dependência é uma ligação estrutural entre dois tipos de elementos (um independente e outro dependente). A dependência gera cumplicidade entre os elementos, fazendo com que a classe que adquire um objeto de outra classe como parâmetro acessa o objeto principal dessa classe. Nesse sentido, qualquer alteração no elemento independente afetará também o elemento dependente.
Refinamento: é o relacionamento entre duas descrições de um mesmo elemento, porém, em camadas divergentes de abstração. Também pode ser utilizado para modelar implementações diversas de uma mesma função. Ex: relatório com visão geral e visão detalhada.
Mecanismo Gerais
A UML determinados recursos em seus diagramas para lidar com as informações complementares, denominados mecanismos. Há dois tipos de mecanismos gerais:
Ornamentais: os ornamentos são acrescentados aos modelos de elementos em diagramas para agregar informações ao elemento. A utilização do ornamento tem o objetivo de apontar determinado aspecto de um elemento, como a multiplicidade de relacionamentos
Notas: é utilizada quando a inclusão de informações em um modelo não puder ser indicada de outra maneira. Ela pode ser inserida em qualquer parte do diagrama e armazenar qualquer tipo de informação.
Diagramas
Os diagramas são divididos em: Diagramas Estruturais (Classe, Objetos, Componentes, Implantação, Pacotes ou Módulos, Estrutura) e em Diagramas Comportamentais (Caso de Uso, Máquina de Estados, Atividade, Interação).
Os Diagramas Estruturais representam estruturas estáticas ou modelos estáticos de um sistema, e são definidos como modelos para documentação dos aspectos estáticos de um ciclo de desenvolvimento de software.
Diagramas de Classe: funciona por meio de simbologia, define todas as classes necessárias no sistema. Com isso, esse diagrama serve de apoio para a elaboração de outros diagramas.
Diagramas de Objetos: é uma diversificação do Diagrama de Classe, no entanto, os elementos representados no diagrama são os objetos, justamente os que foram definidos como instâncias de classes.
Diagramas de Componentes: este diagrama mostra o sistema pelo lado funcional, e está relacionado à linguagem de programação, exibindo as associações entre os componentes e a distribuição dos módulos durante o processamento. Ex: código-fonte. A representação empregada em um componente UML é indicada por meio de um retângulo, com a identificação do componente escrita na parte inferior ou interior de seu símbolo. No lado esquerdo, são usados uma elipse e dois retângulos de menores dimensões.
Diagrama de Implantação, Execução e Instalação: o diagrama de implantação exibe a arquitetura física do hardware e a arquitetura do software do sistema.
Diagrama de Módulos ou Pacotes: descreve os pacotes ou as partes do sistema (são os subsistemas ou sub-módulos incorporados e distribuídos em agrupamentos lógicos). A finalidade desse diagrama é simbolizar um grupo de classes.
Diagrama de Estrutura Composta: este diagrama apresenta o detalhamento das páginas internas de uma estrutura. Esse detalhamento é realizado por meio da descrição dos relacionamentos entre os elementos e da colaboração interna das classes, interfaces, ou componentes e suas funcionalidades.
Top comments (0)