Escolar Documentos
Profissional Documentos
Cultura Documentos
Modelo de Ciclo de Vida PDF
Modelo de Ciclo de Vida PDF
Análise
Implementação Implantação
Implementação Implantação
Tempo
Implementação Implantação
Tempo
Modelos de Processos de Software
• Modelo de Processo de Software Incremental:
RAD
– RAD ( Rapid Application Development) é um modelo sequencial linear
que enfatiza um ciclo de desenvolvimento extremamente curto;
– O desenvolvimento rápido é obtido usando uma abordagem de
construção baseada em componentes.
– Os requisitos devem ser bem entendidos e o alcance do projeto
restrito;
– O modelo RAD é usado principalmente para aplicações de sistema de
informação ;
– Cada função principal pode ser direcionada para uma equipe RAD
separada e então integrada para formar o todo.
10
Modelos de Processos de Software
O Modelo RAD
Equipe #3
Equipe #1 Equipe #2 Modelagem
do Negócio
Modelagem Modelagem Modelagem
do Negócio do Negócio dos Dados
Modelagem Modelagem
Modelagem dos Dados do Processo
dos Dados Modelagem Geração da
Aplicação
do Processo
Modelagem Teste e
Geração da
do Processo Aplicação
Modificação
Geração da Teste e
Aplicação Modificação
Teste e
60 a 90 dias Modificação
11
Modelos de Processos de Software
12
Modelos de Processos de Software
• Modelo de Processo de Software
Incremental: RAD
– Desvantagens:
• Exige recursos humanos suficientes para todas as equipes;
• Exige que desenvolvedores e clientes estejam
comprometidos com as atividades de “fogo-rápido” a fim de
terminar o projeto num prazo curto;
– Nem todos os tipos de aplicação são apropriadas para o RAD:
• Deve ser possível a modularização efetiva da aplicação;
• se alto desempenho é uma característica e o desempenho é
obtido sintonizando as interfaces dos componentes do
sistema, a abordagem RAD pode não funcionar;
13
Exercício
Em sala de aula:
• Vamos definir um projeto.
– Elabore um esboço geral do que é o projeto.
– Em uma folha em branco represente visualmente
como o projeto será realizado considerando os
modelos de ciclo de vida estudados.
• Crie uma representação para apresentar como ele seria
desenvolvido se seguisse as estratégias do Cascata,
Incremental, RAD.
Modelos de Processos de Software
• Modelo de Processo de Software: Evolutivo
Prototipagem
– Baseado no paradigma de Interação Homem
Computador; 2) Planejamento
Estimativa
Cronogramação
Monitoração
3) Modelagem
Análise
Projeto
1) Comunicação
Iniciação do projeto
Levantamento de requisitos
4) Construção do Protótipo
Codificação
Testes
16
Modelos de Processos de Software
• Modelo de Processo de Software: Evolutivo
Espiral
Modelos de Processos de Software
• Modelo de Processo de Software: Evolutivo
Espiral
– Definição dos objetivos
• Especificação dos objetivos específicos desta fase.
– Análise dos riscos
• Identificação e solução dos principais riscos
– Desenvolvimento e validação
– Planejamento
• O projeto é revisto e se define planos para a próxima
“volta da espiral”
Modelos de Processos de Software
• Modelo de Processo de Software: Evolutivo
Espiral
– Ideal quando o projeto possui complexidade e o
escopo precisa ser melhor esclarecido.
• Ideal para projetos baseados em inovação
• A medida que se passa pelo centro da espiral, todas as
fases anteriores são revisadas e atualizadas;
• Adequado para o gerenciamento de riscos e mudanças.
Modelos de Processos de Software
• Modelo de Processo de Software: Métodos
Formais
– Métodos formais permitem ao engenheiro de software
especificar, desenvolver e verificar um sistema aplicando
uma rigorosa notação matemática.
– Elimina muitos problemas encontrados nos outros
modelos: ambiguidade, incompletude, inconsistência.
– Servem de base para a verificação de programas,
oferecendo a promessa de um software livre de defeitos.
– Apropriado para softwares críticos (por exemplo, de
aeronaves e dispositivos médicos).
Modelos de Processos de Software
• Modelo de Processo de Software: Métodos
Formais
– O desenvolvimento de modelos formais é
atualmente muito lento e dispendioso.
– Exige treinamento extensivo para dar aos
desenvolvedores o preparo necessário.
– É difícil usar os modelos como um mecanismo de
comunicação com a maioria dos clientes.
Modelos de Processos de Software
• Modelo de Processo de Software:
Desenvolvimento Concorrente
– 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 para estado, para cada uma das
atividades.
– Em vez de usar uma sequência como o modelo cascata, ele
define uma rede de atividades.
– Pode ser aplicado a todo tipo de desenvolvimento de
software e fornece uma visão exata de como está o estado
do projeto.
Modelos de Processos de Software
• Modelo de Processo de Software:
Desenvolvimento Concorrente
Exemplo:
Entrevista x
Construção do Protótipo
Modelos de Processos de Software
• Modelo de Processo de Software:
Desenvolvimento Concorrente
– Pode-se adiantar atividades.
– Pode-se utilizar componentes.
– Desvantagens:
• Exige recursos humanos suficientes para todas as equipes;
• Equipe deve ser bem treinada e organizada.
Modelos de Processos de Software
• Modelo de Processo de Software:
Desenvolvimento baseado em componentes
– Compõe aplicações a partir de componentes de software
previamente preparados.
– Seguem os seguintes passos implantados com uma
abordagem evolucionária:
1. Pesquisa e avaliação de componentes disponíveis para o domínio
em questão.
2. Considerações sobre a integração de componentes.
3. Projeto de arquitetura de software.
4. Integração dos componentes à arquitetura.
5. Testes para garantir a funcionalidade adequada.
Modelos de Processos de Software
• Modelo de Processo de Software:
Desenvolvimento baseado em componentes
– Leva ao reuso de software, que segundo estudos tem
como consequências:
• Redução significativa do prazo de desenvolvimento.
• Redução significativa no custo do projeto.
• Aumento do índice de produtividade.
– Em que situações o desenvolvimento baseado em
componentes não é adequado?
Aquelas em que não existam componentes padrão disponíveis ou em
que não se queira pagar pelos componentes.
26
Modelos de Processos de Software
• Modelo de Processo de Software:
Desenvolvimento baseado em componentes
27
Modelos de Processos de Software
• Modelos de Processos Pessoal e de
Equipe – Processo de Software Pessoal
(PSP)
– É um framework para auxiliar o desenvolvedor a
estimar e planejar suas tarefas, acompanhar sua
performance em relação ao planejado e melhorar a
qualidade dos produtos produzidos;
– Foca “no como” e não “no quê”;
– Focado no indivíduo e não na equipe;
– Oferece métricas e análise de métricas (ex: tamanho do
programa, tempo da revisão, qtde de defeitos encontrados na revisão e depois);
Modelos de Processos de Software
• Modelos de Processos Pessoal e de Equipe –
Processo de Software Pessoal (PSP)
– Processo pode mudar diariamente;
– Existe um processo;
– Pode ser desenvolvido um processo próprio;
– Foca a descoberta de erros precocemente;
– Define cinco atividades estruturais:
– Planejamento (isola requisitos, estimativa de recursos, planeja métricas)
– Projeto de alto nível (escopo preliminar)
– Revisão de projeto de alto nível (projeto detalhado)
– Desenvolvimento (construção e testes)
– Autópsia (verifica qualidade, eficiência)
Modelos de Processos de Software
• Modelos de Processos Pessoal e de Equipe –
Processo de Software em Equipe (TSP)
– Processo pode mudar diariamente;
– Existe um processo;
– Pode ser desenvolvido um processo próprio;
– Foco na equipe;
– Objetivos do TSP:
– Equipes autodirigíveis – de alto desempenho
– Orientada a motivação e capacitação de equipes
– Normalmente segue o CMMI – nível 5
– Fornece a organização orientação para melhorias com elevado padrão de
maturidade
Modelos de Processos de Software
• Modelos de Processos Pessoal e de Equipe –
Processo de Software em Equipe (TSP)
– Utiliza scripts ou roteiros, formulários e padrões;
– Atividades metodológicas:
• Lançamento do projeto
• Projeto de alto nível
• Implementação
• Integração e testes
• Autópsia
Modelos de Processos de Software
• Modelos de Processos Pessoal e de Equipe –
Processo de Software em Equipe (TSP)
São quatro as lições do TSP
1. A maior parte do desenvolvimento de software é e será feita por equipes
2. Equipes com as habilidades apropriadas e em que todos os membros
trabalham juntos cooperativamente e efetivamente podem produzir
resultados extraordinários
3. Um trabalho em equipe efetivo requer oito coisas:
1. Metas da equipe com que todos concordam
2. Papéis estabelecidos
3. Um ambiente de trabalho adequado
4. Um processo de trabalho comum
5. Um plano para o trabalho
6. O compromisso mútuo com as metas, papéis e o plano
7. Comunicação aberta entre todos os membros do time
8. Respeito mútuo e suporte de todos os membros do grupo
4. Quando times encontram essas condições, produzem um trabalho superior,
são mais produtivos e apreciam o seu trabalho
Modelos de Processos de Software
• Modelo de Processo de Software: PROCESSO
UNIFICADO
– É uma tentativa de unir os melhores recursos e características
dos modelos convencionais.
– Reconhece a importância da comunicação com o cliente e dos
casos de uso para descrever a visão do cliente.
– Utiliza a UML (Unified Modeling Language) como a notação para
modelagem e análise de projeto.
– Sugere um fluxo de processo que é iterativo e incremental.
– Também conhecido como RUP (de Rational Unified Process) – a
Rational construiu ferramentas de apoio ao processo unificado.
Modelos de Processos de Software
• Modelo de Processo de Software: PROCESSO
UNIFICADO
– O RUP descreve:
• Papéis ou perfis de trabalho, que definem quem é responsável por cada
tarefa.
• Artefatos, que representam os produtos do processo, o que será gerado
durante o processo de desenvolvimento.
• Atividades, executadas durante o processo de desenvolvimentos, que
descrevem como os representantes de cada papel trabalham para atingir
os objetivos do projeto e construir o sistema de software.
• Fluxos de atividades, que orientam a execução das atividades, definindo
quando esta deve ocorrer.
Modelos de Processos de Software
• Modelo de Processo de Software: PROCESSO
UNIFICADO
– Práticas do RUP :
• Desenvolver Software Iterativamente: os usuários recebem as liberações
de versão de cada iteração, o que facilita seu retorno sobre o software
produzido, apontando o que foi mal entendido e esclarecendo os demais
requisitos.
Modelos de Processos de Software
• Modelo de Processo de Software: PROCESSO
UNIFICADO
– Práticas do RUP :
• Gerenciar os Requisitos: consiste em elicitar, organizar e documentar a
funcionalidade e as restrições requeridas pelo sistema; avaliar mudanças
nesses requisitos e estimar seu impacto; e registrar e documentar
decisões.
Codificação
• Programação em pares
Modelos de Processos de Software
• Desenvolvimento ágil: Extreme Programming (XP):
– Estória são escritas pelo usuário (cliente) e colocada em um
cartão. O cliente atribui um valor (prioridade) para a Estória .
– O custo é estabelecido com base no esforço para implementação
da Estória .
– Clientes e desenvolvedores organizam quais Estória serão
implementadas na próxima versão (incremento).
– Programação em pares: cada uma possui um papel diferente
(uma codifica, outra observa diretrizes de desenvolvimento e
realiza as integrações, por exemplo);
– Testes de aceitação acontecem após a finalização dos testes
unitários e testes de integração.
Modelos de Processos de Software
• Desenvolvimento ágil: Extreme Programming (XP):
(continuação)
– Após a entrega do primeiro incremento, calcula-se a
velocidade do projeto (quantidade de Estórias
implementadas por incremento).
Modelos de Processos de Software
Modelos de Processos de Software
Modelos de Processos de Software
• SCRUM
• O SCRUM foi estabelecido por Ken Schwaber e Jeff Sutherland e está
baseado no manifesto ágil.
• Papéis no SCRUM
– Os times de SCRUM têm pelo menos três papéis:
Modelos de Processos de Software
• Papéis no SCRUM
– O Scrum Master : é a pessoa responsável por garantir que
o processo seja entendido e seguido. A responsabilidade
do ScrumMaster é manter o foco no processo, remover
impedimentos da equipe e auxiliar na comunicação ente
equipe e o Producto Owner;
• Papéis no SCRUM
– O Product Owner : é o dono do
produto. Ele possui a visão do
retorno que o projeto trará para a
empresa e para os envolvidos,
logo sua missão é cuidar do
Product Backlog (lista de
requisitos), planejar releases,
priorizar requisitos e passar ao
time uma visão clara dos objetivos
do projeto pronto.
Modelos de Processos de Software
• Artefatos:
– User Story
– Product Backlog
– Tasks
– Sprint Backlog
– Task Board
– Burn-down chart (gráfico)
– Story Points
Modelos de Processos de Software
• Artefatos:
– User Story
• São descrições simples que representam uma
funcionalidade.
– Product Backlog
• É basicamente uma lista de requisitos priorizadas, que
podem incluir de tudo: de aspectos do negocio a
tecnologias, questões técnicas e correções de bugs.
Modelos de Processos de Software
• Artefatos:
– Task:
• Cada story deverá ser quebrada em tarefas
• Idealmente, tarefas correspondem a 1 dia de trabalho
• São a menor unidade de divisão
• Cada tarefa vira um post-it
Modelos de Processos de Software
• Artefatos:
– Sprint Backlog:
• Conjunto de task (tarefas) de cada uma das stories da
sprint corrente.
• Lista de stories a serem realizadas durante a sprint
• Baseada nas maiores prioridades do product backlog
• De acordo com a capacidade da equipe em uma sprint
Modelos de Processos de Software
• Artefatos:
– Task Board
• To do (para fazer)
• Doing (fazendo)
• Done (Feito)
• Pode ter outras colunas:
– Burn-down chart, revisão
Modelos de Processos de Software
• Artefatos:
– Burn-down Chart
• Permite acompanhar e prever o progresso do projeto.
• Com base na velocidade dos sprints do passado, o
Release Burndown antecipa o futuro, de modo que a
equipe de Scrum possa adaptar o produto e o projeto
conforme a necessidade.
• Ele é baseado em dois fatores: o esforço restante no
Product Backlog e o tempo.
Modelos de Processos de Software
• Artefatos:
– Burn-down Chart
Modelos de Processos de Software
• Artefatos:
– Story Points
• Medida de esforço de implementação
• Associado a cada story
• Valores concretos ou relativos?
– Pode ser associado a uma referência concreta: homem-dia-
trabalho
– Podeser simplesmente um valor relativo: escolhe-se a story
mais simples e pontua com valor 2.
• Usa-se uma série adaptada de Fibonacci:
– 1, 2, 3, 5, 8, 13, 20, 40 e 100.
• Medida para determinar a VELOCITY da equipe
Modelos de Processos de Software
• Cerimônias (Meetings):
– Sprint
– Sprint Planning (Planejamento do Sprint)
– Daily Sprint (Reunião diárias)
– Revisão do Sprint
– Retrospectiva do Sprint
Modelos de Processos de Software
• Cerimônias (Meetings):
– Sprint
• Representa um Time box dentro do qual um conjunto
de atividades deve ser executado.
• As Sprints são compostas por uma reunião de
planejamento da Sprint, reuniões diárias, o trabalho de
desenvolvimento, uma revisão da Sprint e a
retrospectiva da Sprint.
Modelos de Processos de Software
• Cerimônias (Meetings):
– Planejamento do Sprint
• Reunião de planejamento da Sprint possui um time-box
com no máximo oito horas para uma Sprint de um mês
de duração. Para Sprints menores, este evento é
usualmente menor. O Scrum Master garante que o
evento ocorra e que os participantes entendam seu
propósito. O Scrum Master ensina o Time Scrum a
manter-se dentro dos limites do time-box.
Modelos de Processos de Software
• Cerimônias (Meetings):
– Reunião diárias
• Reunião de planejamento da Sprint possui um time-box
com no máximo oito horas para uma Sprint de um mês
de duração. Para Sprints menores, este evento é
usualmente menor. O Scrum Master garante que o
evento ocorra e que os participantes entendam seu
propósito. O Scrum Master ensina o Time Scrum a
manter-se dentro dos limites do time-box.
Modelos de Processos de Software
• Cerimônias (Meetings):
– Reunião diárias
• O que eu fiz ontem que ajudou o Time de
Desenvolvimento a atender a meta da Sprint?
• O que eu farei hoje para ajudar o Time de
Desenvolvimento atender a meta da Sprint?
• Eu vejo algum obstáculo que impeça a mim ou o Time
de Desenvolvimento no atendimento da meta da
Sprint?
Modelos de Processos de Software
• Cerimônias (Meetings):
– Revisão do Sprint
• A Revisão da Sprint é executada no final da Sprint para
inspecionar o incremento e adaptar o Backlog do
Produto se necessário. Durante a reunião de Revisão da
Sprint o Time Scrum e as partes interessadas colaboram
sobre o que foi feito na Sprint. Com base nisso e em
qualquer mudança no Backlog do Produto durante a
Sprint, os participantes colaboram nas próximas coisas
que podem ser feitas para otimizar valor.
Modelos de Processos de Software
• Cerimônias (Meetings):
– Retrospectiva do Sprint
• A Retrospectiva da Sprint ocorre depois da Revisão da
Sprint e antes da reunião de planejamento da próxima
Sprint. Esta é uma reunião time-boxed de três horas
para uma Sprint de um mês. Para Sprint menores, este
evento é usualmente menor.
Modelos de Processos de Software
• Cerimônias (Meetings):
– Retrospectiva do Sprint
INVENTÁRIO
Equipamento
<<aspecto>> Depósito <<aspecto>>
Segurança Localização disponibilidade
Plataforma
Log
<<aspecto>>
Pedido
Modelos de Processos de Software
• Modelo de Processo de Software:
Desenvolvimento Orientado a Aspectos
(continuação)
– Visitar site: http://www.din.uem.br/arquivos/pos-
graduacao/mestrado-em-ciencia-da-
computacao/dissertacoes/A%20Engenharia%20de%20Req
uisitos%20Orientada%20a%20Aspectos%20-
%20A%20Abordagem%20DAORE%20%28Luciana%20de%2
0Paiva%20Silva%29.pdf
Reflexões
• Principais produtos do processo de
desenvolvimento de software:
Operação e
Projeto Testes Manutenção
•Produtos solicitados •Produto sendo
•Protótipo utilizado no dia a dia.
testados pelo cliente.
•Modelo do BD • Novas demandas e
• Documento de • Termo de Aceite
•Def. Arquiteturas bugs aparecem.
especificação de
Requisitos.
Implementação Implantação
Bibliografias consultadas
• PRESSMAN, Roger S. Engenharia de Software.
São Paulo: Makron Books, 1995. 1056p.
• PICHLER, Roman. Gestão de Produtos com
Scrum. São Paulo: Ed. Campus, 2011.
• MACHADO, Felipe N. Análise e gestão de
Requisitos de Software. São Paulo:Érica, 2011.