Compartilhar via


Estruturar a solução de modelagem

Para usar modelos de forma eficaz em um projeto de desenvolvimento, os membros da equipe devem ser capazes de trabalhar em modelos de diferentes partes do projeto ao mesmo tempo. Esse tópico sugere um esquema de modelagem para dividir o aplicativo em diferentes partes que correspondem às camadas de um diagrama geral de camadas.

Para começar rapidamente em um projeto ou subprojeto, é útil ter um modelo de projeto que siga a estrutura de projeto que você escolheu. Este tópico descreve como criar e usar esse modelo.

Este tópico pressupõe que você esteja trabalhando em um projeto grande o suficiente para exigir vários membros da equipe e que talvez tenha várias equipes. O código e os modelos do projeto são armazenados em um sistema de controle do código-fonte, como o Team Foundation Server. Pelo menos alguns membros da equipe usam o Visual Studio para desenvolver modelos e outros membros da equipe podem exibir os modelos usando outras versões do Visual Studio.

Para ver quais versões do Visual Studio dão suporte a cada ferramenta e recurso de modelagem, confira Suporte de versão para ferramentas de arquitetura e modelagem.

Estrutura da solução

Em um projeto de médio ou grande porte, a estrutura da equipe é baseada na estrutura do aplicativo. Cada equipe usa uma solução do Visual Studio.

Para dividir um aplicativo em camadas

  1. Baseie a estrutura de suas soluções na estrutura do aplicativo, como aplicativo Web, aplicativo de serviço ou aplicativo da área de trabalho. Uma variedade de arquiteturas comuns é discutida em Arquétipos de Aplicativo no Guia de Arquitetura de Aplicativo da Microsoft.

  2. Crie uma solução do Visual Studio, que chamaremos de solução de Arquitetura. Essa solução será usada para criar o design geral do sistema. Ela conterá modelos, mas nenhum código.

    Adicione um diagrama de dependência a esta solução. No diagrama de dependência, desenhe a arquitetura escolhida para seu aplicativo. Por exemplo, o diagrama pode mostrar essas camadas e as dependências entre elas: Apresentação, Lógica de negócios e Dados.

  3. Crie uma solução separada do Visual Studio para cada camada no diagrama de dependência de Arquitetura.

    Essas soluções serão usadas para desenvolver o código das camadas.

  4. Crie modelos que representem os designs das camadas e os conceitos que são comuns a todas as camadas. Organize os modelos para que todos eles possam ser vistos na solução de Arquitetura e os modelos relevantes possam ser vistos de cada camada.

    Você pode fazer isso usando qualquer um dos procedimentos a seguir. A primeira alternativa cria um projeto de modelagem separado para cada camada e a segunda cria um único projeto de modelagem que é compartilhado entre as camadas.

Usar um projeto de modelagem separado para cada camada

  1. Crie um projeto de modelagem em cada solução de camada.

    Esse modelo conterá diagramas que descrevem os requisitos e o design dessa camada. Ele também pode conter diagramas de dependência que mostram camadas aninhadas.

    Agora você tem um modelo para cada camada, além de um modelo para a arquitetura do aplicativo. Cada modelo está contido em sua própria solução. Isso permite que os membros da equipe trabalhem nas camadas de forma concomitante.

  2. Para a solução de Arquitetura, adicione o projeto de modelagem de cada solução de camada. Para fazer isso, abra a solução de Arquitetura. No Gerenciador de Soluções, clique com o botão direito do mouse na solução, aponte para Adicionar e clique em Projeto Existente. Navegue até o projeto de modelagem (.modelproj) em uma solução de camada.

    Os modelos agora estão visíveis em duas soluções: a solução "base" e a solução de Arquitetura.

  3. Para o projeto de modelagem de cada camada, adicione um diagrama de dependência. Comece com uma cópia do diagrama de dependência de Arquitetura. Você pode excluir as partes que não são dependências do diagrama de dependência.

    Você também pode adicionar diagramas de dependência que representam a estrutura detalhada dessa camada.

    Esses diagramas são usados para validar o código desenvolvido nessa camada.

  4. Na solução de Arquitetura, edite os requisitos e os modelos de design de todas as camadas usando o Visual Studio.

    Em cada solução de camada, desenvolva o código para essa camada, fazendo referência ao modelo. Se você tiver conteúdo para fazer o desenvolvimento sem usar o mesmo computador para atualizar o modelo, leia o modelo e desenvolva o código usando versões do Visual Studio que não podem criar modelos. Você também pode gerar código do modelo nessas versões.

    Esse método garante que não haja interferência por parte dos desenvolvedores que editam os modelos de camada ao mesmo tempo.

    No entanto, como os modelos são separados, é difícil fazer referência a conceitos comuns. Cada modelo deve ter sua própria cópia dos elementos nos quais ele depende de outras camadas e da arquitetura. O diagrama de dependência em cada camada deve estar sincronizado com o diagrama de dependência de Arquitetura. É difícil manter a sincronização quando esses elementos mudam, embora você possa desenvolver ferramentas para isso.

Usar um pacote separado para cada camada

  1. Na solução para cada camada, adicione o projeto Modelagem de arquitetura. No Gerenciador de Soluções, clique com o botão direito do mouse na solução, aponte para Adicionar e clique em Novo Projeto. O projeto de modelagem única agora pode ser acessado de todas as soluções: o projeto de Arquitetura e o projeto de desenvolvimento para cada camada.

  2. No modelo compartilhado, crie um pacote para cada camada: em Gerenciador de Soluções, selecione o projeto de modelagem. No Gerenciador de Modelos UML, clique com o botão direito do mouse no nó raiz do modelo, aponte para Adicionar e clique em Pacote.

    Cada pacote conterá diagramas que descrevem os requisitos e o design da camada correspondente.

  3. Se necessário, adicione diagramas de dependência local para a estrutura interna de cada camada.

    Esse método permite que os elementos de design de cada camada façam referência diretamente aos das camadas e à arquitetura comum das quais ele depende.

    Embora o trabalho simultâneo em pacotes diferentes possa causar alguns conflitos, é muito fácil gerenciá-los, pois os pacotes são armazenados em arquivos separados.

Criar modelos de arquitetura

Na prática, você não cria todas as suas soluções do Visual Studio ao mesmo tempo, mas as adiciona conforme o projeto progride. Você provavelmente também usará a mesma estrutura de solução em projetos futuros. Para ajudá-lo a criar soluções rapidamente, você pode criar uma solução ou um modelo de projeto. Você pode capturar o modelo em uma VSIX (Extensão de Integração do Visual Studio) para que a distribuição e instalação em outros computadores seja fácil.

Por exemplo, se você usa frequentemente soluções que têm camadas de Apresentação, Negócios e Dados, você pode configurar um modelo que criará novas soluções com essa estrutura.

Para criar um modelo de solução

  1. Baixe e instale o Assistente de Exportação de Modelo.

  2. Crie a estrutura de solução que você deseja usar como ponto de partida em projetos futuros.

  3. No menu Arquivo, clique em Exportar Modelo como VSIX.

    O Assistente para Exportar Modelo como VSIX é aberto.

  4. Seguindo as instruções no assistente, selecione os projetos que você deseja incluir no modelo, forneça um nome e uma descrição, e especifique um local de saída.