Um Método Colaborativo de Análise e Projeto Rogério Trévia Nibon ([email protected]) Universidade Federal de Pernambuco - UFPE Março / 2007 KAIS T Roteiro Problemática / Justificativa Características do método Análise Projeto Conclusão Um Método Colaborativo de A & P 2 / 39 Problemática / Justificativa Problemática Os métodos atuais empenham-se em determinar disciplinas e conceitos que muitas vezes ofuscam o próprio processo de desenvolvimento. Equipes menores intimidam-se diante do grande overhead de reuniões, documentos, ferramentas e outros tipos de artefatos. Justificativa Não existe proposta conhecida de um método formal de A&P descentralizado, baseado em motivos individuais e colaboração. A comunidade Open Source tem demonstrado bons resultados na construção de softwares simples e complexos, sem a excessiva preocupação com acessórios de desenvolvimento de software. Um Método Colaborativo de A & P 3 / 39 Características do método Características do método Reuso Reutilização do código Reutilização de artefatos Reutilização de conhecimento Colaborativo Centrado no código Independência de interações presenciais Um Método Colaborativo de A & P 4 / 39 Estudo de caso Sistema de Vídeo Locadora Exemplo básico de desenvolvimento Sistema simples Exemplo de que mesmo sistemas simples, possuem investidas no mundo do Software Livre. Um Método Colaborativo de A & P 5 / 39 Fluxograma de análise Busca por análises semelhantes sim não achou? Adesão ao modelo de análise encontrado Criação de um modelo inédito de análise Incorporação de modelos de análise externo Representação unificada de alto nível (pacotes) acordo? não sim Geração do modelo detalhado do sistema em pacotes Identificação de classes e relacionamentos Votação do modelo de análise acordo? não sim Um Método Colaborativo de A & P 6 / 39 Unidades do fluxograma de análise Busca por análises semelhantes Atividades: Procurar problemas em projetos Softwares Livres semelhantes ao problema de interesse individual Compilar os elementos de modelo de análise que forem pertinentes ao interesse do problema individual Busca por análises semelhantes sim não achou? Criação de um modelo inédito de análise Adesão ao modelo de análise encontrado Artefatos: Modelos para reuso de análise Incorporação de Modelos de análise externo Representação unificada de alto nível (pacotes) não Repositório comum para o time acordo? sim Geração Modelo detalhado do sistema em pacotes Uso de ferramentas de comunicação Identificação de classes e relacionamentos síncronas e assíncronas Votação do modelo de análise não acordo? sim Um Método Colaborativo de A & P 7 / 39 Estudo de caso Exemplo Busca de semelhantes http://codigolivre.org.br http://sourceforge.com Opções: The ABC Car Rental Project Prololi Um Método Colaborativo de A & P 8 / 39 Unidades do fluxograma de análise Adesão ao modelo de análise encontrado Atividades: Integrar-se a um projeto Software Livre Discutir andamento do projeto Artefatos: Não possui artefatos Busca por análises semelhantes sim não achou? Criação de um modelo inédito de análise Adesão ao modelo de análise encontrado Incorporação de modelos de análise externo Representação unificada de alto nível (pacotes) não acordo? sim Geração modelo detalhado do sistema em pacotes Identificação de classes e relacionamentos Votação do modelo de análise não acordo? sim Um Método Colaborativo de A & P 9 / 39 Estudo de caso Adesão Não aderir Justificativa Projeto já encaminhado Arquitetura diferente da desejada Sem documentação de apoio Um Método Colaborativo de A & P 10 / 39 Unidades do fluxograma de análise Criação de um modelo inédito de análise Atividades: Iniciar processo de recrutamento Propor elementos do modelo de análise Artefatos: Busca por análises semelhantes sim Propostas de modelos de análise não achou? Criação de um modelo inédito de análise Adesão ao modelo de análise encontrado Incorporação de modelos de análise externo Representação unificada de alto nível (pacotes) não acordo? sim Geração modelo detalhado do sistema em pacotes Identificação de classes e relacionamentos Votação do modelo de análise não acordo? sim Um Método Colaborativo de A & P 11 / 39 Estudo de caso Diagrama de entidade e relacionamento Locação solicita aplicável a Cliente Taxa de Multa relacionada a Gênero Fita de Vídeo pertence a Filme Um Método Colaborativo de A & P possui 12 / 39 Unidades do fluxograma de análise Incorporação de modelos de análise externo Atividades: Estruturar todos os modelos para reuso de análise encontrados antes Artefatos: Busca por análises semelhantes Modelo de análise sim não achou? Criação de um modelo inédito de análise Adesão ao modelo de análise encontrado Interação com outros projetos Incorporação de modelos de análise externo Representação unificada de alto nível (pacotes) não acordo? sim Geração modelo detalhado do sistema em pacotes Identificação de classes e relacionamentos Votação do modelo de análise não acordo? sim Um Método Colaborativo de A & P 13 / 39 Unidades do fluxograma de análise Representação unificada de alto nível (pacotes) Atividades: Integrar todas as propostas de modelo de análise Artefatos: Modelo de análise Busca por análises semelhantes sim não achou? Criação de um modelo inédito de análise Adesão ao modelo de análise encontrado Votação Incorporação de modelos de análise externo Representação unificada de alto nível (pacotes) não acordo? sim Geração modelo detalhado do sistema em pacotes Identificação de classes e relacionamentos Votação do modelo de análise não acordo? sim Um Método Colaborativo de A & P 14 / 39 Estudo de caso Representação unificada de alto nível (pacotes) Rascunho do modelo de pacotes. Elementos Centrais Locações Acervo Um Método Colaborativo de A & P 15 / 39 Unidades do fluxograma de análise Geração do modelo detalhado do sistema em pacotes Atividades: Identificar das abstrações dos módulos do sistema Propor diagramas de pacotes Artefatos: Busca por análises semelhantes sim Diagrama de pacotes não achou? Criação de um modelo inédito de análise Adesão ao modelo de análise encontrado Incorporação de modelos de análise externo Representação unificada de alto nível (pacotes) não acordo? sim Geração modelo detalhado do sistema em pacotes Identificação de classes e relacionamentos Votação do modelo de análise não acordo? sim Um Método Colaborativo de A & P 16 / 39 Estudo de caso Elementos Centrais Locações Caixa Locadora possui Cliente Caixa Locação 1..* FitaDeVídeo Acervo FitaDeVídeo 0...* ListaDeFitas 1..* DetalhesDaFita Um Método Colaborativo de A & P 17 / 39 Unidades do fluxograma de análise Identificação de classes e relacionamentos Atividades: Identificar as classes de fronteiras, de entidade e controle Artefatos: Diagrama de classes e relacionamentos Busca por análises semelhantes sim não achou? Criação de um modelo inédito de análise Adesão ao modelo de análise encontrado Incorporação de modelos de análise externo Representação unificada de alto nível (pacotes) não acordo? sim Geração modelo detalhado do sistema em pacotes Identificação de classes e relacionamentos Votação do modelo de análise não acordo? sim Um Método Colaborativo de A & P 18 / 39 Estudo de caso Identificação de classes e relacionamentos Locação solicita aplicável a Cliente Taxa de Multa relacionada a Gênero Fita de Vídeo pertence a Filme Um Método Colaborativo de A & P possui 19 / 39 Estudo de caso Identificar as classes de fronteiras, de entidade e controle Tela Filmes Usuário Tela Inicial Filme Locação TaxaDeMulta Gênero Tela Clientes Cliente Um Método Colaborativo de A & P FitaDeVídeo 20 / 39 Unidades do fluxograma de análise Votação do modelo de análise Atividades: Integrar todos os modelos propostos Votar o sistema proposto Artefatos: Busca por análises semelhantes sim não achou? Diagrama de classes Diagrama de relacionamento Criação de um modelo inédito de análise Adesão ao modelo de análise encontrado Incorporação de modelos de análise externo Representação unificada de alto nível (pacotes) não acordo? sim Geração modelo detalhado do sistema em pacotes Identificação de classes e relacionamentos Votação do modelo de análise não acordo? sim Um Método Colaborativo de A & P 21 / 39 Fluxograma de projeto Modelo de análise Definição mais detalhada das classes (nomes, tipos e operações) Elaboração das interfaces (baseado no modelo de análise) Definição de componentes da arquitetura acordo? sim não Identificação dos reusos Busca dos componentes que serão utilizados achou? sim não Adaptação e adesão ao modelo de projeto Projeto dos componentes necessários Montagem da arquitetura Projeto de usabilidade Votação do modelo de projeto não acordo? não sim Um Método Colaborativo de A & P 22 / 39 Unidades do fluxograma de projeto Modelo de análise Atividades: Revisar o modelo de análise Artefatos: Modelo de análise Modelo de análise Definição mais detalhada das classes (nomes, tipos e operações) Elaboração das interfaces (baseado no modelo de análise) Definição de componentes da arquitetura sim não acordo? Identificação dos reusos Busca dos componentes que serão utilizados sim achou? Adaptação e adesão ao modelo de projeto não Projeto dos componentes necessários Montagem da arquitetura Projeto de usabilidade Votação do modelo de projeto não Um Método Colaborativo de A & P acordo? sim não 23 / 39 Unidades do fluxograma de projeto Definição mais detalhada das classes (nomes, tipos e operações) Atividades: Definir mais detalhadamente as classes Definir os relacionamentos existentes entre as classes Modelo de análise Definição mais detalhada das classes (nomes, tipos e operações) Artefatos: Diagrama de classes Elaboração das interfaces (baseado no modelo de análise) Definição de componentes da arquitetura sim não acordo? Identificação dos reusos Busca dos componentes que serão utilizados sim achou? Adaptação e adesão ao modelo de projeto não Projeto dos componentes necessários Montagem da arquitetura Projeto de usabilidade Votação do modelo de projeto não Um Método Colaborativo de A & P acordo? sim não 24 / 39 Diagrama de classe Cliente -código -nome -endereço -cidade -estado -telefone -documentoIdentificação -dataNascimento _____________________________ +incluir() +alterar() +remover() Locação solicita -númeroDaLocação -dataInicial -dataFinal -dataDeRetorno -taxaDeLocação -preço -total -desconto _____________________________ +incluir() +alterar() +remover() TaxaDeMulta aplicável a -númeroDiasAtraso -taxaMulta ____________________________ +incluir() +alterar() +calcularMulta() relacionada a Flime FitaDeVídeo Gênero -código _____________________________ +listarGenerosPreferidos() pertence a -códigoDeBarras -nomeDoFilme -atoresPrincipais -anoDoFilme -preçoDeLocação -diretor -legendado _____________________________ +incluir() +alterar() +remover() Um Método Colaborativo de A & P possui -número -localização -status _____________________________ +incluir() +alterar() +remover() 25 / 39 Unidades do fluxograma de projeto Elaboração das interfaces (baseado no modelo de análise) Atividades: Elaborar as interfaces consideradas necessárias para a resolução do problema individual Modelo de análise Artefatos: Definição mais detalhada das classes (nomes, tipos e operações) Diagrama de classe Elaboração das interfaces (baseado no modelo de análise) Modelo de interfaces Definição de componentes da arquitetura sim Contribuição de membros internos e externos não acordo? Identificação dos reusos Busca dos componentes que serão utilizados sim Análise de interfaces de sistemas achou? Adaptação e adesão ao modelo de projeto não Projeto dos componentes necessários Montagem da arquitetura semelhantes. Projeto de usabilidade Votação do modelo de projeto não Um Método Colaborativo de A & P acordo? sim não 26 / 39 Unidades do fluxograma de projeto Definição de componentes da arquitetura Atividades: Definir, baseado no entendimento total do problema, que componentes irão fazer parte da arquitetura Validar a escolha de tais componentes Modelo de análise Definição mais detalhada das classes (nomes, tipos e operações) Artefatos: Elaboração das interfaces (baseado no modelo de análise) Definição de componentes da arquitetura Diagrama de classes Diagrama de componentes sim não acordo? Identificação dos reusos Modelo da arquitetura Busca dos componentes que serão utilizados sim achou? Adaptação e adesão ao modelo de projeto não Projeto dos componentes necessários Montagem da arquitetura Projeto de usabilidade Votação do modelo de projeto não Um Método Colaborativo de A & P acordo? sim não 27 / 39 Unidades do fluxograma de projeto Identificação dos reusos Atividades: Avaliar o modelo da arquitetura a fim de identificar componentes que já possam existir Modelo de análise Artefatos: Definição mais detalhada das classes (nomes, tipos e operações) Modelo da arquitetura Relação de reusos Elaboração das interfaces (baseado no modelo de análise) Definição de componentes da arquitetura sim não acordo? Identificação dos reusos Busca dos componentes que serão utilizados sim achou? Adaptação e adesão ao modelo de projeto não Projeto dos componentes necessários Montagem da arquitetura Projeto de usabilidade Votação do modelo de projeto não Um Método Colaborativo de A & P acordo? sim não 28 / 39 Unidades do fluxograma de projeto Busca dos componentes que serão utilizados Atividades: Pesquisar, em projetos já existentes, os componentes listados na relação de reusos Modelo de análise Artefatos: Relação de reusos Definição mais detalhada das classes (nomes, tipos e operações) Elaboração das interfaces (baseado no modelo de análise) Definição de componentes da arquitetura sim não acordo? Identificação dos reusos Busca dos componentes que serão utilizados sim achou? Adaptação e adesão ao modelo de projeto não Projeto dos componentes necessários Montagem da arquitetura Projeto de usabilidade Votação do modelo de projeto não Um Método Colaborativo de A & P acordo? sim não 29 / 39 Estudo de caso Busca dos componentes que serão utilizados Lista de Reusos de Componentes: Projeto -> Componente Prololi -> Controle de Acervo The ABC Car Rental Project -> Controle de Clientes Um Método Colaborativo de A & P 30 / 39 Unidades do fluxograma de projeto Adaptação e adesão ao modelo de projeto Atividades: Avaliar os componentes encontrados, verificando se realmente satisfazem a necessidade do problema Modelo de análise Artefatos: Não possui artefatos Definição mais detalhada das classes (nomes, tipos e operações) Elaboração das interfaces (baseado no modelo de análise) Definição de componentes da arquitetura sim não acordo? Identificação dos reusos Busca dos componentes que serão utilizados sim achou? Adaptação e adesão ao modelo de projeto não Projeto dos componentes necessários Montagem da arquitetura Projeto de usabilidade Votação do modelo de projeto não Um Método Colaborativo de A & P acordo? sim não 31 / 39 Unidades do fluxograma de projeto Projeto dos componentes necessários Atividades: Projetar os componentes necessário e específicos do problema Artefatos: Modelo de análise Diagrama de componentes Definição mais detalhada das classes (nomes, tipos e operações) Elaboração das interfaces (baseado no modelo de análise) Definição de componentes da arquitetura sim não acordo? Identificação dos reusos Busca dos componentes que serão utilizados sim achou? Adaptação e adesão ao modelo de projeto não Projeto dos componentes necessários Montagem da arquitetura Projeto de usabilidade Votação do modelo de projeto não Um Método Colaborativo de A & P acordo? sim não 32 / 39 Unidades do fluxograma de projeto Montagem da arquitetura Atividades Propor modelos de uma possível arquitura do sistema Artefatos: Modelo de análise Definição mais detalhada das classes (nomes, tipos e operações) Diagrama de classes Diagrama de componentes Modelo da arquitetura Elaboração das interfaces (baseado no modelo de análise) Definição de componentes da arquitetura sim não acordo? Identificação dos reusos Busca dos componentes que serão utilizados sim achou? Adaptação e adesão ao modelo de projeto não Projeto dos componentes necessários Montagem da arquitetura Projeto de usabilidade Votação do modelo de projeto não Um Método Colaborativo de A & P acordo? sim não 33 / 39 Unidades do fluxograma de projeto Projeto de usabilidade Atividades: Estudar e propor as melhores formas de se apresentar o software para o usuário com algo conveniente e prático para uso Modelo de análise Artefatos: Definição mais detalhada das classes (nomes, tipos e operações) Modelo de projeto de interfaces Elaboração das interfaces (baseado no modelo de análise) Definição de componentes da arquitetura Testes de usabilidade sim executados pela comunidade não acordo? Identificação dos reusos Busca dos componentes que serão utilizados sim achou? Adaptação e adesão ao modelo de projeto não Projeto dos componentes necessários Montagem da arquitetura Projeto de usabilidade Votação do modelo de projeto não Um Método Colaborativo de A & P acordo? sim não 34 / 39 Estudo de caso Um Método Colaborativo de A & P 35 / 39 Unidades do fluxograma de projeto Votação do modelo de projeto Atividades: Integrar todos os modelos de projeto propostos Votar o sistema proposto Modelo de análise Definição mais detalhada das classes (nomes, tipos e operações) Artefatos: Modelo da arquitetura Elaboração das interfaces (baseado no modelo de análise) Definição de componentes da arquitetura sim não acordo? Identificação dos reusos Busca dos componentes que serão utilizados sim achou? Adaptação e adesão ao modelo de projeto não Projeto dos componentes necessários Montagem da arquitetura Projeto de usabilidade Votação do modelo de projeto não Um Método Colaborativo de A & P acordo? sim não 36 / 39 Conclusão Diferencial Indefinição de papéis Integração maior com outros projetos Pouco rigor documental Participação de todos os membros em várias atividades Um Método Colaborativo de A & P 37 / 39 Conclusão Conclusão Impor uma prática formal para A&P descentralizada não é trivial. O ponto chave são os motivos individuais. O Método apesar de incipiente é um proposta concreta de método de A&P descentralizado, baseado em motivos individuais que se inter-relacionam através da colaboração. Trabalhos Futuros Formalizar métodos para outras disciplinas. Realizar experimentos em casos concretos. Um Método Colaborativo de A & P 38 / 39 Referências Referências Booch, G. The Unified Modeling Language User Guide. Addilson-Wesley, 1999. Craig Larman, Utilizando UML e Padrões, 2ª edição. Augustine, L.; Dan, B.; and Smith, G. (2002); “Accelerating Software Development Through Collaboration”, in Proceeding of “International Conference on Software Engineering”, pp. 559-563, New York, USA SourceForge, http://www.sourceforge.org Código Livre, http://www.codigolivre.org.br Um Método Colaborativo de A & P 39 / 39