Trabalho de Engenharia de Software Modelo de Desenvolvimento Concorrente Universidade Federal do Paraná Professora: Letícia M. Peres Juliana Campos Franchi GRR20093224 Leonardo Ternes Santos GRR20093550
Softwares Modernos Necessitam de modificações contínuas. Possuem prazos muito curtos. Grande necessidade de satisfação do cliente/usuário. Se nós perdemos o nicho de mercado, o projeto de software em si pode passar a ser insignificante.
Modelo de Processo de Software Evolucionários Eles são iterativos e caracterizados de forma a permitir aos engenheiros de software desenvolver versões cada vez mais completas do software a cada iteração. Uma versão limitada pode ser introduzida para atender à competitividade e pressões do negócio. Os tipos de modelo evolucionário são: modelo incremental, modelo espiral, modelo espiral ganha-ganha e o modelo de desenvolvimento concorrente.
Modelo Gráfico / Fases do processo - Modelo de desenvolvimento concorrente
Modelo de Desenvolvimento Concorrente Também conhecido como engenharia concorrente (1994). Ele é representado esquematicamente por uma série de tarefas/ técnicas maiores e estados associados a elas. Frequentemente utilizado como um paradigma para o desenvolvimento de aplicações Cliente/Servidor. A progressão geral do desenvolvimento se dá pela necessidade do usuário, pela decisão gerencial e pelos resultados de revisão. Frequentemente mais adequado para projetos de engenharia de sistemas em que diferentes equipes estão envolvidas. As interações das fases se dão através de eventos que disparam transições, fazendo assim a mudança de uma fase para outra.
Modelo de Desenvolvimento Concorrente Exemplo: (Começo do projeto) A atividade de comunicação como cliente completou sua primeira iteração e esta no estado Aguardando Modificações. A atividade de modelagem passa então do estado Nenhum, para o estado Em Desenvolvimento. Se o cliente requerir mudanças nos requisitos, a modelagem passa de Em Desenvolvimento, para Aguardando Modificações e a comunicação passa de Aguardando Modificações para Em Revisão.
Modelo Gráfico - Modelo de desenvolvimento concorrente Atividade 1 (Comunicação) Atividade 2 (Modelagem) em desenvolvimento aguardando mudanças
Modelo Gráfico - Modelo de desenvolvimento concorrente Atividade 1 (Comunicação) Atividade 2 (Modelagem) aguardando modificações sob revisão
Modelo de Desenvolvimento Concorrente Outro Exemplo: (Durante atividade de modelagem) Uma inconsistência é descoberta no modelo de análise. Isto irá gerar o evento correção do modelo de análise. Que por sua vez produzirá a passagem da atividade de análise do estado Pronto para o estado Aguardando Modificações. Assim, o modelo de processo concorrente define uma série de eventos que vão disparar transições de estado para estado, para cada uma das atividades de engenharia de software.
Modelo de Desenvolvimento Concorrente Em resumo: Todas as atividades existem concorrentemente (ocorrem em paralelo) mas estão em diferentes estados. O modelo define uma série de eventos que vão disparar transições de estado para estado, para cada uma das atividades. Em vez de seguir uma sequência, como o modelo cascata, ele define uma rede de atividades, que transitarão de um estado ao outro.
Vantagens/Desvantagens Vantagens: Pode ser aplicado a todos os tipos de desenvolvimento do software (uso do modelo). Fornece uma imagem precisa do estado atual de um projeto. Desvantagens: Processos evolucionários em geral, não estabelecem a velocidade máxima da evolução do projeto.
Referências Bibliográficas [1] R. S. Pressman, Engenharia de Software, Sexta Edição, Mc Graw Hill [2] M. Ould, 1999, John Wiley and Sons, Managing Software quality and business risk [3] A. Tucker (ed.), 1997, CRC Press, Handbook os computer Science and engineering