Conceito: Modelagem Visual
Este conceito apresenta o uso de notações gráficas e textuais semanticamente ricas para capturar o design do software.
Relacionamentos
Descrição Principal

visual modelling

A modelagem visual aumenta o nivel de abstração

A modelagem visual usa notações gráficas e textuais semanticamente ricas para capturar o design do software. Uma notação, tal como a UML, permite que o nível de abstração seja aumentado, mantendo rigorosamente a sintaxe e a semântica. Desta forma, ela melhora a comunicação da equipe a medida que o design é construído e revisto, permitindo que o leitor raciocine sobre o design, forneçendo uma base inequívoca para a implementação.

Como os modelos visuais ajudam

Um modelo é uma visão simplificada de um sistema. Mostra a essência do sistema de uma perspectiva particular e esconde os detalhes não-essenciais. Os modelos visuais ajudam a:

  • Aumentar o entendimento sobre sistemas complexos
  • Explorar e comparar alternativas de design a um baixo custo
  • Construir uma fundação para a implementação
  • Capturar requisitos de forma precisa
  • Comunicar decisões de forma inequívoca

Aumentar o entendimento sobre sistemas complexos

A importância dos modelos aumenta a medida que os sistemas se tornam mais complexos. Por exemplo, você pode construir uma casa de cachorro sem nenhuma planta de engenharia. Entretanto, a medida que você vai progredindo para construção de apartamentos e arranha-céus, sua necessidade de possuir plantas de engenharia torna-se inevitável.

Similarmente, uma pequena aplicação construída por uma pessoa em alguns dias pode facilmente ser compreendida em sua totalidade. Entretanto, um sistema de comércio eletrônico com dezenas de milhares de linhas de código fonte (SLOCs) ou um sistema de controle de tráfego aéreo com centenas de milhares de SLOCs podem não ser facilmente compreendidos por uma pessoa. Construir modelos permite que um colaborador focalize numa macro imagem, compreenda como os componentes interagem, e identifique falhas fatais. 

Dentre os vários tipos de modelos temos os seguintes exemplos:

  • Casos de uso para especificar o comportamento de forma inequívoca
  • Diagramas de classe e diagramas de modelos de dados para capturar o design
  • Diagramas de transição de estado para modelar o comportamento dinâmico

A modelagem é importante porque ajuda a equipe a visualizar, construir e documentar a estrutura e o comportamento do sistema sem ficar perdida na complexidade.

Explorar e comparar alternativas de design a um baixo custo

Você pode criar e modificar modelos simples de forma barata para explorar alternativas de design. Novas idéias  podem ser capturadas e revisadas por outros desenvolvedores antes de se investir no desenvolvimento de um código caro. Quando acoplada com o desenvolvimento iterativo, a modelagem visual ajuda os desenvolvedores a avaliar as mudanças no design e a comunicar estas mudanças à toda a equipe de desenvolvimento.

Construir uma base para a implementação

Atualmente, muitos projetos empregam linguagens de programação orientadas a objeto para construir sistemas reutilizáveis, estáveis e tolerantes a mudanças. Para ter estes benefícios, é importantíssimo o uso da tecnologia de objeto no design.

A criação de modelos visuais, seja no papel; em um whiteboard; ou em uma ferramenta de modelagem, pode ajudar uma equipe a obter um acordo sobre os aspectos chaves do sistema antes de investir o tempo em provar suas idéias com código. Ter um modelo compartilhado do sistema promove a colaboração dentro da equipe, incentivando todos a trabalhar para o mesmo objetivo.

Com a ajuda de ferramentas apropriadas, você pode usar um modelo de design para gerar o código inicial da implementação. Isto é conhecido como engenharia direta or geração de código. Você pode também aprimorar modelos de design incluindo o máximo de informação necessária para a construção do sistema.

A engenharia reversa também pode ser usada para gerar modelos de design a partir de implementações existentes. Você pode usar este método para validar as implementações existentes.

A engenharia cíclica combina as técnicas das engenharias direta e reversa para garantir que o design e o código sejam consistentes. Combinado com um processo iterativo e com as ferramentas certas, a engenharia cíclica permite que você sincronize o design com o código durante cada iteração.

Capturar requisitos de forma precisa

Antes de construir um sistema, a captura dos requisitos é um ponto crítico. Especificar os requisitos usando um modelo preciso e inequívoco ajuda a assegurar que todos os stakeholders poderão compreender e concordar com os requisitos.

Um modelo que separe o comportamento externo do sistema de sua implementação ajuda a focalizar o uso desejado do sistema, sem ter que se aprofundar nos detalhes da implementação.

Comunicar decisões de forma inequívoca

A Linguagem de Modelagem Unificada (UML) é uma notação consistente que pode ser aplicada à engenharia de sistemas, bem como para a engenharia de negócios. De acordo com estes fragmentos extraídos da especificação da UML, uma notação padrão:

  • Serve como uma linguagem para comunicar as decisões que não são óbvias ou que não podem ser inferidas a partir do próprio código.

  • Fornece uma semântica rica o bastante para capturar todas as decisões estratégicas e táticas importantes.

  • Oferece uma forma concreta o bastantes para os seres humanos raciocinarem [sobre], e para as ferramentas manipularem.

A UML representa a convergência das melhores práticas de modelagem de software exercidas na indústria de tecnologia de objeto. Para mais informações sobre UML, veja [UML05].

Informações Adicionais