MODELOS DE PROCESSO Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com
Objetivo Apresentar os modelos de processos de desenvolvimento de software Permitir uma melhor compreensão do processo de desenvolvimento de software, através dos modelos existentes
Contexto Ordena o caos na área existente na área de desenvolvimento do software Histórico e contribuição dos modelos, porém a crise permanece Controlar o processo de desenvolvimento de software
Ciclo de Vida do Projeto Objetiva oferecer um melhor controle gerencial Não há melhor maneira para se definir as fases (modelos diferentes para setores ou áreas de aplicação) É formado pelas fases de um determinado projeto
Exemplo Ciclo de Vida Projeto de Construção Civil Fase 1 Avaliação Fase 2 Desenho Fase 3 Construção Fase 4 Entrega
Quesitos do Ciclo de Vida Trabalho a ser desenvolvido e concluído em cada fase Envolvidos com as atividades em cada fase Disponibilização das entregas (ou produtos) de cada fase
Ciclo de Vida Clássico Projeto de Desenvolvimento de Software Fase 1 Requisitos Fase 2 Modelagem Fase 3 Programação Fase 4 Testes Fase 5 Manutenção
Modelos de Processo de Software Existência de vários de modelos de processo de software Tentativa de colocar ordem em uma atividade inerentemente caótica
Modelos de Processo de Software Modelo em Cascata (Ciclo clássico de vida) O Modelo de Prototipação O Modelo RAD (Rapid Application Development) Modelos Evolutivos de Processo de Software O Modelo Incremental O Modelo Espiral O Modelo de Montagem de Componentes Processo Unificado
Modelo em Cascata Conhecido como o modelo clássico Abordagem sequencial e sistemática Modelo mais antigo e o mais amplamente utilizado Modelado em função do ciclo da engenharia convencional Requer uma abordagem sistemática, sequencial ao desenvolvimento de software O resultado de uma fase se constitui na entrada de outra Fase 1 Requisitos Fase 2 Projeto Fase 3 Programação Fase 4 Testes Fase 5 Manutenção
Modelo de Prototipação Visa facilitar o entendimento dos requisitos do usuário de forma a obter uma melhor definição dos requisitos do sistema É elaborado um modelo (protótipo) do software que deve ser construído Apropriado para quando o cliente não definiu detalhadamente os requisitos. Obter Requisitos Elaborar Projeto Rápido Construir Protótipo Avaliar Protótipo Refinamento do Projeto
Modelo RAD Modelo sequencial linear que enfatiza um ciclo de desenvolvimento extremamente curto O desenvolvimento rápido é obtido usando abordagem de construção baseada em componentes Desenvolvidas de formas separadas e integradas para formar o todo Fase 3 Modelagem Fase 4 Construção Fase 1 Comunicação Fase 2 Planejamento Fase 3 Modelagem Fase 4 Construção Fase 5 Integração e Planejamento Fase 3 Modelagem Fase 4 Construção
Modelos Evolutivos Descrever um processo onde o software deve ser desenvolvido de forma a evoluir a partir de protótipos iniciais Caracteriza-se por ser cíclico ou interativo Design e desenvolvimento de um protótipo Apresentação e avaliação pelos usuários Requisitos são definidos e alterações e incrementos são realizados nos protótipos Repetição do ciclo com foco no produto final
Modelo Incremental Criado como solução aos problemas encontrados no modelo de cascata Iniciado com um subconjunto simples de requisitos de software e iterativamente alcança evoluções subsequentes das versões até o sistema todo estar implementado
Modelo Espiral Modelo em cascata onde cada fase é precedida por uma análise de risco e sua execução é feita de maneira evolucionaria (ou incremental). Evolução através de vários ciclos completos de especificação, projeto e desenvolvimento Combina elementos de projeto de prototipação em etapas Combina as vantagens dos conceitos Top-down Bottom-up Acrescenta a análise de risco
Processo Unificado Modelo de desenvolvimento de software interativo, evolutivo e ágil Permite produzir um sistema de grande porte em vários pequenos sistemas, de forma a diminuir o risco do projeto Combina ciclos interativo e incremental para a construção de software Considera que o avanço de um projeto deve estar baseado na construção de artefatos de software, e não documentação Desenvolvido visando a construção de sistemas OO
Referências Bibliografias CRAIG, Larman. Utilizando UML e Padrões SOMMERVILLE, I. Engenharia de Software. São Paulo: Addison Wesley, 2003. Capitulo 3. ISBN: 85-88639-07-6. PRESSMAN, R.S. Engenharia de Software. São Paulo: Makron Books, 1995. Capitulo 2. ISBN: 85-346-0237-9. FOWLER, Martin. UML Essencial. 3 ed. Porto Alegre: Bookman, 2005. Unified Modeling Language www.uml.org