Escolar Documentos
Profissional Documentos
Cultura Documentos
1. Processos de Software.
2. Modelos de Processo de Software
o Modelo em cascata
o Prototipação
o RAD
o Desenvolvimento evolucionário
o Engenharia de Software baseada em componentes.
o Processo Unificado (RUP)
Metodos Ageis
o Programação Extrema (XP).
o Scrum Elaborado por MSc. Luis Jorge Nhacanhaca
Conceitos fundamentais
Processo de Software e Modelos de Processo de Software:
Processo de Negócio:
• Um grupo de actividades relacionadas de forma lógica que usa os
recursos da organização para fornecer resultados definidos em apoio
aos objetivos da organização. Foco nos objectivos estratégicos da
organização.
Processo de Desenvolvimento:
• Um conjunto de passos ordenados e executados com o objectivo de
alcançar uma meta. No caso de desenvolvimento de software, a meta
consiste em criar um software ou desenvolver um já existente. Pode
ser visto como um processo de negócio aplicado a objectivos
específicos
Elaborado por MSc. Luis Jorge Nhacanhaca
Conceitos fundamentais
Processo de Software:
Actividades de Processo de Desenvolvimento:
• Processos permitem
• organizar
• instrumentar
• planear
• acompanhar projectos
• treinar equipes Elaborado por MSc. Luis Jorge Nhacanhaca
Conceitos fundamentais
Processo de Software:
Processo de Desenvolvimento:
Artefato
é um resultado de uma actividade, exemplos documento
revisto e aceito
• módulo implementado, testado e aceito
• construto integrado, testado e aceito
• framework documentado, implementado, testado e
aceito
quando entregue ao usuário (cliente) o artefato é um
produto
Insumo
• elemento necessário para a realização de uma tarefa ou
actividade
• pode ser um elemento de saída de outras actividades ou
tarefas
Tarefa
é uma ação desempenhada por alguma pessoa visando a
realização ou monitoramento do projecto
não representa uma evidência de progresso no
desenvolvimento
• ter trabalhado 20 horas não implica ter produzido um
artefato de qualidade, mesmo que se tenha estimado
serem necessárias 20 horas para o seu desenvolvimento
Actividade
Ferramentas e equipamentos
Papel
• descreve como as pessoas se comportam no processo
e quais são as responsabilidades que elas têm
• requer habilidades específicas necessárias
• papéis não são pessoas
pessoas executam papéis
Descrição
A partir do escopo preliminar do projeto, detalhar as
atividades necessárias a sua realização, as estimativas de
consumo de recursos, os prazos e orçamentos.
• Papel:
Gerente de Projecto
• Artefatos de Entrada:
Escopo do projecto; Plano do projecto; Acordo de serviço;
Estrutura analítica do projeto (EAP)
• Artefatos de Saída:
Estimativas de custo da actividades; Estimativa de esforço das
actividades, Cronograma e Plano do projecto actualizados
• Tarefas:
Detalhar actividades e recursos; Detalhar cronograma; Detalhar
estimativa de custo das actividades;
Detalhar orçamento do projecto
Elaborado por MSc. Luis Jorge Nhacanhaca
Conceitos fundamentais
Processo de Software:
Actividades de Processo de Desenvolvimento:
Conceitos Basicos
• Definem
• As actividades para o desenvolvimento do
software
• Especificam os produtos de cada actividade
• Indicam os papéis das pessoas envolvidas
Elaborado por MSc. Luis Jorge Nhacanhaca
Elaborado por MSc. Luis Jorge Nhacanhaca
Conceitos fundamentais
Modelos de Processo de Software:
Tambem é chamado de ciclo de vida de processos.
Outras vantagens
• Padronização dos artefatos
• Melhor comunicação da equipe
• Menos treinamento de pessoal
Elaborado por MSc. Luis Jorge Nhacanhaca
Conceitos fundamentais
Modelos de Processo de Software:
Vantagens
• Maior percepção por parte do cliente referente ao
valor total do projecto;
• Entrega do produto em sua totalidade;
• Maior enfoque na etapa de planeamento, com o
objectivo de eliminar os riscos;
• Projectos são realizados de forma mais rápida.
Desvantagens
• Planeamento rígido, com pouca flexibilidade de trabalho;
• Não é interessante para clientes que querem sempre
inovar e adicionar melhorias no seu produto.
• Todo o processo é centralizado no gerente de projetos.
Modelos de Processo de Software
Metodologias Ágil
Vantagens
• Se você busca alcançar a famosa transformação digital, esse é
o caminho. O mundo digital está em constante metamorfose,
escolher metodologias rígidas como as tradicionais irá apenas
atrasar seu negócio.
• Maior liberdade no planeamento do projeto e em cada etapa de
trabalho;
• Projetos são discutidos e flexibilizados em conjunto;
• Equipe trabalha mais unida e a divisão do trabalho é realizada
de acordo com as habilidades de cada membro do time;
• Existe uma participação mais ativa do cliente em todas as
etapas do projeto, através de feedbacks.
Elaborado por MSc. Luis Jorge Nhacanhaca
Modelos de Processo de Software
Metodologias Ágil
Desvantagens
• O produto é entregue por partes, o que pode não
ser vantajoso para o cliente que precisa de um
projeto 100% pronto;
• Planeamento extenso, que exige várias análises em
cada etapa do projeto;
• Pode ter um custo mais volátil do que um projeto
realizado com metodologias tradicionais.
• Modelo em cascata
• Prototipação
• RAD
• Desenvolvimento evolucionário
• Engenharia de Software baseada em componentes.
• Processo Unificado (RUP)
• Programação Extrema (XP).
• Scrum
• FDD
Elaborado por MSc. Luis Jorge Nhacanhaca
Conceitos fundamentais
Modelos de Processo de Software:
Modelo em Cascata:
Modelo em Cascata:
Modelo em Cascata:
Modelo em Cascata:
• Implementação ou Codificação
Modelo em Cascata:
Teste (integração):
• Concentra-se:
• nos aspectos lógicos internos do software,
garantindo que todas as instruções tenham sido
testadas
• nos aspectos funcionais externos, para descobrir
erros e garantir que a entrada definida produza
resultados que concordem com os esperados.
Elaborado por MSc. Luis Jorge Nhacanhaca
Conceitos fundamentais
Modelos de Processo de Software:
Modelo em Cascata:
• Manutenção (operação):
Modelo em Cascata:
Vantagem:
• Maior capacidade de organização do projecto, visto
que uma etapa só inicia após a anterior.
Desvantagem:
• Modificações poderão causar confusões.
• Dificilmente o cliente expõe todos os requisitos de
uma só vez.
• Só teremos uma versão executável após o término do
projecto.
Elaborado por MSc. Luis Jorge Nhacanhaca
Conceitos fundamentais
Modelos de Processo de Software:
Modelo em Cascata:
Modelo em Prototipação:
Solução:
• Definir as regras do jogo no começo.
Elaborado por MSc. Luis Jorge Nhacanhaca
Conceitos fundamentais
Modelos de Processo de Software:
Modelo em Prototipação:
Modelo RAD:
Modelo RAD:
Problemas:
Modelos Evolucionários:
Iterativo X Incremental
Modelos Evolucionários:
Modelo Incremental:
• Combina omodelo seqüencial linearcom a filosofia interativa
da prototipagem.
• O primeiro incremento é chamado de núcleo do produto.
Elaborado por MSc. Luis Jorge Nhacanhaca
Conceitos fundamentais
Modelos de Processo de Software:
Modelos Evolucionários:
Modelo Incremental:
• Desenvolve-se um plano para cada incremento de forma que o
núcleo do produto seja modificado para melhor satisfazer às
necessidades do cliente e a elaboração de características e
funcionalidades adicionais.
• Útil quando não há mão de obra disponível para uma
implementação completa, dentro do prazo comercial de
entrega.
Elaborado por MSc. Luis Jorge Nhacanhaca
Conceitos fundamentais
Modelos de Processo de Software:
Modelos Evolucionários:
Modelo Incremental:
Modelo Incremental:
Modelos Evolucionários:
Modelo Espiral:
• Combina a natureza interativa da prototipação com os aspectos controlados e
sistemáticos do modelo seqüencial linear(cascata).
• Desenvolve o software em um série de versões incrementais.
• Na última iteração sãoproduzidas versões cada vez mais completas.
• Divide-se em regiões de tarefas compostas por seus respectivos conjuntos de
tarefas.
• Pode ser adaptado para a aplicação ao longo do seu ciclo de vida.
Modelos Evolucionários:
Modelo Espiral:
Modelos Evolucionários:
Modelo Espiral:
Características de um componente:
• Padronizado.
• Independente.
• Passível de composição.
• Implantável.
• Documentado.
Interfaces de um componente:
• Requires: quais serviços devem ser fornecidos por outros componentes do
sistema.
• Provides: serviço fornecido pelo componente.
Componentes VS OO
Modelos de componentes:
• COM+.
• EJB.
• CORBA.
• Cada faze pode ser realizada de forma iterativa, com resultados desenvolvidos
incrementalmente.
• O conjunto total de fases pode ser realizada de forma incremental.
Métodos Ágeis:
Métodos Ágeis:
Métodos Ágeis:
Existem várias opções para aplicar o conceito de ágil em seu projecto. Entre os
métodos mundialmente mais conhecidos, destacam-se:
• Crystal
• FDD (Feature Drive Development)
• DSDM (Dynamic System Development Method)
• XP (eXtreme Programming)
• AUP (Agile Unified Process)
• Scrum e Kanban
Vantagens:
• Entrega acelerada dos serviços ao cliente.
• Engajamento do usuário com o sistema (envolvimento).
Problemas na implantação:
• Problemas de gerenciamento (mudanças rápidas, documentação, tecnologias
não conhecidas).
• Problemas de contracto (preço fixo?).
• Problemas de validação (TDD - Test Driven Development ).
• Problemas de manutenção.
Elaborado por MSc. Luis Jorge Nhacanhaca
Conceitos fundamentais
Modelos de Processo de Software:
• Feedback rápido
• Presumir simplicidade
• Mudanças incrementais
• Abraçar mudanças
• Trabalho de alta qualidade.
• Comunicação.
• Simplicidade.
• Feedback.
• Coragem.
• Respeito.
• Jogo de planeamento.
• Planeamento incremental.
• Pequenas versões (menores ainda que no RUP).
• Metáfora.
• Projecto Simples (não confundir com projecto fácil).
• Time/equipe coeso(pessoas engajadas e multidisciplinar).
• Testes de aceitação/Cliente on-site.
Elaborado por MSc. Luis Jorge Nhacanhaca
Conceitos fundamentais
Modelos de Processo de Software:
• Integração contínua.
Elaborado por MSc. Luis Jorge Nhacanhaca
Conceitos fundamentais
Modelos de Processo de Software:
Características:
• O uso de ferramentas de teste automatizadas: teste escrito como
um componente executável antes do código. Deve possibilitar a
entrada e verificar se a saída atende.
Não.
• É um processo iterativo e incremental para o desenvolvimento
de produtos e gerenciamento de projectos.
• Está mais para framework do que para uma metodologia.
• Ele não te dirá o que fazer , apenas te dará transparência para
enfrentar os desafios do dia a dia, a decisão é tua.
Características