Zusammenfassung der Ressource
07. Eng de Software: Processo Evolucionário: Modelo: Concorrente
- Pressman (2010), o modelo de
desenvolvimento concorrente,
também chamado de engenharia
concorrente, pode ser
representado, esquematicamente,
como uma série de atividades de
arcabouço, ações e tarefas da
engenharia de software e seus
estados associados.
- Um exemplo do uso
desse modelo pode ver
visto na Figura, que traz a
atividade “modelagem” do
modelo Espiral, espelhada
no modelo concorrente.
- No modelo concorrente,
uma atividade pode estar em
qualquer um dos estados
apresentados na
Figura, definindo uma série de
eventos que vão disparar
transições de um estado
para outro, para cada uma
das atividades, ações ou
tarefas da engenharia de
software.
- Prática
- Durante os estágios da etapa de projeto,
descobre-se uma inconsistência no
modelo de análise. Isso geraria o evento
“correção no modelo de análise”, que, por
sua vez, implicaria na passagem da
atividade de análise do estado “pronto”
para o estado “aguardando modificações”.
- O software moderno é caracterizado por modificações
contínuas, prazos muito curtos e por uma necessidade
premente de satisfazer o usuário ou cliente. Os modelos
evolucionários de processo foram criados com o objetivo
de resolver esses problemas; contudo, também têm suas
fragilidades. Uma delas é que a prototipagem pode trazer
problemas para o planejamento do projeto, em função do
número impreciso de ciclos necessários para se concluir
o produto. Outra dificuldade se refere ao foco dado à
flexibilidade e extensibilidade, em vez da alta qualidade.
Se o foco for centrado na qualidade, o projeto pode
resultar em atraso, o que pode comprometer a
competitividade do empreendimento.
- Principais
características:
- Todas as atividades
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 a estado, para
cada uma das atividades.
- Em vez de usar uma
sequência como o
modelo em cascata,
ele define uma rede
de atividades.
- Eventos gerados dentro de
certa atividade — ou em algum
outro lugar da rede de atividades
— disparam transições entre
estados de uma atividade.
- Pode ser aplicado a todo
tipo de desenvolvimento
de software e fornece
uma visão exata de como
está o estado do projeto.
- Em vários projetos pode
existir uma simultaneidade
(concorrência) entre as
várias atividades de
desenvolvimento e de
gestão de projetos.
- É representado como uma série de
grandes atividades técnicas,
tarefas e seus estados associados
(fornece um panorama preciso do
estado atual do projeto).