Anlise
Implementao Implantao
Implementao Implantao
Tempo
Implementao Implantao
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 rpido obtido usando uma abordagem de
construo baseada em componentes.
Os requisitos devem ser bem entendidos e o alcance do projeto
restrito;
O modelo RAD usado principalmente para aplicaes de sistema de
informao ;
Cada funo principal pode ser direcionada para uma equipe RAD
separada e ento integrada para formar o todo.
10
Modelos de Processos de Software
O Modelo RAD
Equipe #3
Equipe #1 Equipe #2 Modelagem
do Negcio
Modelagem Modelagem Modelagem
do Negcio do Negcio dos Dados
Modelagem Modelagem
Modelagem dos Dados do Processo
dos Dados Modelagem Gerao da
Aplicao
do Processo
Modelagem Teste e
Gerao da
do Processo Aplicao
Modificao
Gerao da Teste e
Aplicao Modificao
Teste e
60 a 90 dias Modificao
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-rpido a fim de
terminar o projeto num prazo curto;
Nem todos os tipos de aplicao so apropriadas para o RAD:
Deve ser possvel a modularizao efetiva da aplicao;
se alto desempenho uma caracterstica e o desempenho
obtido sintonizando as interfaces dos componentes do
sistema, a abordagem RAD pode no funcionar;
13
Exerccio
Em sala de aula:
Vamos definir um projeto.
Elabore um esboo 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 representao para apresentar como ele seria
desenvolvido se seguisse as estratgias do Cascata,
Incremental, RAD.
Modelos de Processos de Software
Modelo de Processo de Software: Evolutivo
Prototipagem
Baseado no paradigma de Interao Homem
Computador; 2) Planejamento
Estimativa
Cronogramao
Monitorao
3) Modelagem
Anlise
Projeto
1) Comunicao
Iniciao do projeto
Levantamento de requisitos
4) Construo do Prottipo
Codificao
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
Definio dos objetivos
Especificao dos objetivos especficos desta fase.
Anlise dos riscos
Identificao e soluo dos principais riscos
Desenvolvimento e validao
Planejamento
O projeto revisto e se define planos para a prxima
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 inovao
A medida que se passa pelo centro da espiral, todas as
fases anteriores so revisadas e atualizadas;
Adequado para o gerenciamento de riscos e mudanas.
Modelos de Processos de Software
Modelo de Processo de Software: Mtodos
Formais
Mtodos formais permitem ao engenheiro de software
especificar, desenvolver e verificar um sistema aplicando
uma rigorosa notao matemtica.
Elimina muitos problemas encontrados nos outros
modelos: ambiguidade, incompletude, inconsistncia.
Servem de base para a verificao de programas,
oferecendo a promessa de um software livre de defeitos.
Apropriado para softwares crticos (por exemplo, de
aeronaves e dispositivos mdicos).
Modelos de Processos de Software
Modelo de Processo de Software: Mtodos
Formais
O desenvolvimento de modelos formais
atualmente muito lento e dispendioso.
Exige treinamento extensivo para dar aos
desenvolvedores o preparo necessrio.
difcil usar os modelos como um mecanismo de
comunicao com a maioria dos clientes.
Modelos de Processos de Software
Modelo de Processo de Software:
Desenvolvimento Concorrente
As atividades ocorrem em paralelo mas esto em
diferentes estados.
O modelo define uma srie de eventos que vo disparar
transies de estado para estado, para cada uma das
atividades.
Em vez de usar uma sequncia como o modelo cascata, ele
define uma rede de atividades.
Pode ser aplicado a todo tipo de desenvolvimento de
software e fornece uma viso exata de como est o estado
do projeto.
Modelos de Processos de Software
Modelo de Processo de Software:
Desenvolvimento Concorrente
Exemplo:
Entrevista x
Construo do Prottipo
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
Compe aplicaes a partir de componentes de software
previamente preparados.
Seguem os seguintes passos implantados com uma
abordagem evolucionria:
1. Pesquisa e avaliao de componentes disponveis para o domnio
em questo.
2. Consideraes sobre a integrao de componentes.
3. Projeto de arquitetura de software.
4. Integrao 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 consequncias:
Reduo significativa do prazo de desenvolvimento.
Reduo significativa no custo do projeto.
Aumento do ndice de produtividade.
Em que situaes o desenvolvimento baseado em
componentes no adequado?
Aquelas em que no existam componentes padro disponveis ou em
que no 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 relao ao planejado e melhorar a
qualidade dos produtos produzidos;
Foca no como e no no qu;
Focado no indivduo e no na equipe;
Oferece mtricas e anlise de mtricas (ex: tamanho do
programa, tempo da reviso, qtde de defeitos encontrados na reviso 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 prprio;
Foca a descoberta de erros precocemente;
Define cinco atividades estruturais:
Planejamento (isola requisitos, estimativa de recursos, planeja mtricas)
Projeto de alto nvel (escopo preliminar)
Reviso de projeto de alto nvel (projeto detalhado)
Desenvolvimento (construo e testes)
Autpsia (verifica qualidade, eficincia)
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 prprio;
Foco na equipe;
Objetivos do TSP:
Equipes autodirigveis de alto desempenho
Orientada a motivao e capacitao de equipes
Normalmente segue o CMMI nvel 5
Fornece a organizao orientao para melhorias com elevado padro de
maturidade
Modelos de Processos de Software
Modelos de Processos Pessoal e de Equipe
Processo de Software em Equipe (TSP)
Utiliza scripts ou roteiros, formulrios e padres;
Atividades metodolgicas:
Lanamento do projeto
Projeto de alto nvel
Implementao
Integrao e testes
Autpsia
Modelos de Processos de Software
Modelos de Processos Pessoal e de Equipe
Processo de Software em Equipe (TSP)
So quatro as lies 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 extraordinrios
3. Um trabalho em equipe efetivo requer oito coisas:
1. Metas da equipe com que todos concordam
2. Papis estabelecidos
3. Um ambiente de trabalho adequado
4. Um processo de trabalho comum
5. Um plano para o trabalho
6. O compromisso mtuo com as metas, papis e o plano
7. Comunicao aberta entre todos os membros do time
8. Respeito mtuo e suporte de todos os membros do grupo
4. Quando times encontram essas condies, produzem um trabalho superior,
so 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 caractersticas
dos modelos convencionais.
Reconhece a importncia da comunicao com o cliente e dos
casos de uso para descrever a viso do cliente.
Utiliza a UML (Unified Modeling Language) como a notao para
modelagem e anlise de projeto.
Sugere um fluxo de processo que iterativo e incremental.
Tambm 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:
Papis ou perfis de trabalho, que definem quem responsvel 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 execuo das atividades, definindo
quando esta deve ocorrer.
Modelos de Processos de Software
Modelo de Processo de Software: PROCESSO
UNIFICADO
Prticas do RUP :
Desenvolver Software Iterativamente: os usurios recebem as liberaes
de verso de cada iterao, 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
Prticas do RUP :
Gerenciar os Requisitos: consiste em elicitar, organizar e documentar a
funcionalidade e as restries requeridas pelo sistema; avaliar mudanas
nesses requisitos e estimar seu impacto; e registrar e documentar
decises.
Codificao
Programao em pares
Modelos de Processos de Software
Desenvolvimento gil: Extreme Programming (XP):
Estria so escritas pelo usurio (cliente) e colocada em um
carto. O cliente atribui um valor (prioridade) para a Estria .
O custo estabelecido com base no esforo para implementao
da Estria .
Clientes e desenvolvedores organizam quais Estria sero
implementadas na prxima verso (incremento).
Programao em pares: cada uma possui um papel diferente
(uma codifica, outra observa diretrizes de desenvolvimento e
realiza as integraes, por exemplo);
Testes de aceitao acontecem aps a finalizao dos testes
unitrios e testes de integrao.
Modelos de Processos de Software
Desenvolvimento gil: Extreme Programming (XP):
(continuao)
Aps a entrega do primeiro incremento, calcula-se a
velocidade do projeto (quantidade de Estrias
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.
Papis no SCRUM
Os times de SCRUM tm pelo menos trs papis:
Modelos de Processos de Software
Papis no SCRUM
O Scrum Master : a pessoa responsvel 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 comunicao ente
equipe e o Producto Owner;
Papis no SCRUM
O Product Owner : o dono do
produto. Ele possui a viso do
retorno que o projeto trar para a
empresa e para os envolvidos,
logo sua misso cuidar do
Product Backlog (lista de
requisitos), planejar releases,
priorizar requisitos e passar ao
time uma viso clara dos objetivos
do projeto pronto.
Modelos de Processos de Software
Artefatos:
User Story
Product Backlog
Tasks
Sprint Backlog
Task Board
Burn-down chart (grfico)
Story Points
Modelos de Processos de Software
Artefatos:
User Story
So descries simples que representam uma
funcionalidade.
Product Backlog
basicamente uma lista de requisitos priorizadas, que
podem incluir de tudo: de aspectos do negocio a
tecnologias, questes tcnicas e correes de bugs.
Modelos de Processos de Software
Artefatos:
Task:
Cada story dever ser quebrada em tarefas
Idealmente, tarefas correspondem a 1 dia de trabalho
So a menor unidade de diviso
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, reviso
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 esforo 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 esforo de implementao
Associado a cada story
Valores concretos ou relativos?
Pode ser associado a uma referncia concreta: homem-dia-
trabalho
Podeser simplesmente um valor relativo: escolhe-se a story
mais simples e pontua com valor 2.
Usa-se uma srie 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
Cerimnias (Meetings):
Sprint
Sprint Planning (Planejamento do Sprint)
Daily Sprint (Reunio dirias)
Reviso do Sprint
Retrospectiva do Sprint
Modelos de Processos de Software
Cerimnias (Meetings):
Sprint
Representa um Time box dentro do qual um conjunto
de atividades deve ser executado.
As Sprints so compostas por uma reunio de
planejamento da Sprint, reunies dirias, o trabalho de
desenvolvimento, uma reviso da Sprint e a
retrospectiva da Sprint.
Modelos de Processos de Software
Cerimnias (Meetings):
Planejamento do Sprint
Reunio de planejamento da Sprint possui um time-box
com no mximo oito horas para uma Sprint de um ms
de durao. Para Sprints menores, este evento
usualmente menor. O Scrum Master garante que o
evento ocorra e que os participantes entendam seu
propsito. O Scrum Master ensina o Time Scrum a
manter-se dentro dos limites do time-box.
Modelos de Processos de Software
Cerimnias (Meetings):
Reunio dirias
Reunio de planejamento da Sprint possui um time-box
com no mximo oito horas para uma Sprint de um ms
de durao. Para Sprints menores, este evento
usualmente menor. O Scrum Master garante que o
evento ocorra e que os participantes entendam seu
propsito. O Scrum Master ensina o Time Scrum a
manter-se dentro dos limites do time-box.
Modelos de Processos de Software
Cerimnias (Meetings):
Reunio dirias
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 obstculo que impea a mim ou o Time
de Desenvolvimento no atendimento da meta da
Sprint?
Modelos de Processos de Software
Cerimnias (Meetings):
Reviso do Sprint
A Reviso da Sprint executada no final da Sprint para
inspecionar o incremento e adaptar o Backlog do
Produto se necessrio. Durante a reunio de Reviso da
Sprint o Time Scrum e as partes interessadas colaboram
sobre o que foi feito na Sprint. Com base nisso e em
qualquer mudana no Backlog do Produto durante a
Sprint, os participantes colaboram nas prximas coisas
que podem ser feitas para otimizar valor.
Modelos de Processos de Software
Cerimnias (Meetings):
Retrospectiva do Sprint
A Retrospectiva da Sprint ocorre depois da Reviso da
Sprint e antes da reunio de planejamento da prxima
Sprint. Esta uma reunio time-boxed de trs horas
para uma Sprint de um ms. Para Sprint menores, este
evento usualmente menor.
Modelos de Processos de Software
Cerimnias (Meetings):
Retrospectiva do Sprint
INVENTRIO
Equipamento
<<aspecto>> Depsito <<aspecto>>
Segurana Localizao disponibilidade
Plataforma
Log
<<aspecto>>
Pedido
Modelos de Processos de Software
Modelo de Processo de Software:
Desenvolvimento Orientado a Aspectos
(continuao)
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
Reflexes
Principais produtos do processo de
desenvolvimento de software:
Operao e
Projeto Testes Manuteno
Produtos solicitados Produto sendo
Prottipo utilizado no dia a dia.
testados pelo cliente.
Modelo do BD Novas demandas e
Documento de Termo de Aceite
Def. Arquiteturas bugs aparecem.
especificao de
Requisitos.
Implementao Implantao
Bibliografias consultadas
PRESSMAN, Roger S. Engenharia de Software.
So Paulo: Makron Books, 1995. 1056p.
PICHLER, Roman. Gesto de Produtos com
Scrum. So Paulo: Ed. Campus, 2011.
MACHADO, Felipe N. Anlise e gesto de
Requisitos de Software. So Paulo:rica, 2011.