Você está na página 1de 17

 Pressman, Roger S.

Software
Engineering: A Practiotioner’s
Approach. Editora: McGraw-Hill.
 Sommerville, Ian. Software
Engineering. Editora: Addison Wesley.
Modelos de Ciclo de Vida, Métodos Ágeis, Ferramentas CASE
Fernando Pedrosa – fpedrosa@gmail.com

Fernando Pedrosa Lopes 2

 Disciplina de engenharia preocupada com  Obter software de qualidade


todos os aspectos sobre a produção de  Com produtividade no seu
software, incluindo:
desenvolvimento, operação e
 Processos
◦ Racionalizam o desenvolvimento de Software
manutenção
 Métodos  Dentro de custos, prazos e níveis de
◦ Conhecimento técnico; “Como” fazer qualidade controlados
 Ferramentas  Com o melhor custo-benefício entre
◦ Suporte automatizado para processos e métodos Qualidade e Produtividade

Desenvolver software não é só programar!

Fernando Pedrosa Lopes 3 Fernando Pedrosa Lopes 4

(TRE/BA – CESPE 2010)

 Engenharia de Sistemas é algo maior: [61] A engenharia de software está relacionada com todos os
aspectos da produção de software, desde os estágios iniciais de
preocupa-se com todos os aspectos de especificação do sistema até sua manutenção, depois que este
sistemas baseados em computador entrar em operação. A engenharia de sistemas diz respeito aos
aspectos do desenvolvimento e da evolução de sistemas complexos,
◦ Software nos quais o software desempenha um papel importante.
◦ Hardware
◦ Processos
◦ Pessoas e outros sistemas, etc.
 Engenharia de Software é apenas parte
deste processo

Fernando Pedrosa Lopes 5 Fernando Pedrosa Lopes 6

1
(IBGE – CONSULPLAN 2009) D) Métodos envolvem um amplo conjunto de tarefas que incluem:
[12] Segundo Pressman (1995), Engenharia de Software é o estabelecimento e planejamento e estimativa de projeto, análise de requisitos de software e
sistemas, projeto de estrutura de dados, arquitetura de programa e
uso de sólidos princípios de engenharia para que se possa obter
algoritmo de processamento, codificação, teste e manutenção.
economicamente um software que seja confiável e que funcione
E) Ferramentas são roteiros para o desenvolvimento de software
eficientemente em máquinas reais, abrangendo um conjunto de três elementos
fundamentais (métodos, ferramentas e procedimentos).

Assinale a alternativa INCORRETA:

A) Métodos de Engenharia de Software proporcionam os detalhes de “como


fazer” para construir o software.
B) As ferramentas proporcionam apoio automatizado ou semi-automatizado
aos métodos.
C) Procedimentos constituem o elo de ligação dos métodos e das ferramentas
e possibilitam o desenvolvimento racional e oportuno de software.

Fernando Pedrosa Lopes 7 Fernando Pedrosa Lopes 8

 Década de 60: a chamada “Crise do


Software”
 Desenvolvimento fora de controle
 Iniciou como um problema de Custo e
Produtividade.
 Mais importante: era um problema de
Qualidade
 Década de 70
◦ Programação Estruturada
◦ Projeto Estruturado

Fernando Pedrosa Lopes 9 Fernando Pedrosa Lopes 10

 Década de 80  Anos 2000


 Análise Estruturada (DFDs, Dicionário de ◦ Metodologias Ágeis
Dados, Diagrama ER, de Estados, etc.)
◦ Novos paradigmas: SOA, Aspectos,
Ferramentas CASE
Model-Driven Architecture, etc.

 Década de 90 ◦ Cloud Computing


◦ Análise e Projeto OO.
◦ Java
◦ UML
◦ Processo Unificado

Fernando Pedrosa Lopes 11 Fernando Pedrosa Lopes 12

2
Software Processo
 Uma série conectada de ações, com a
 Programa de computador e
documentação associada intenção de satisfazer um objetivo
 Define quem está fazendo o quê,
 Produtos de software podem ser
desenvolvidos para um cliente quando e como para atingir um certo
particular ou podem ser desenvolvidos objetivo
para um mercado geral
Processo
 Novos softwares podem ser criados Entrada (atividades e sub- Saída
processos)
desenvolvendo-se novos programas
ou reusando softwares existentes
Fernando Pedrosa Lopes 13 Fernando Pedrosa Lopes 14

Processo de Software
 Um conjunto estruturado de
atividades para desenvolver um
sistema de software
◦ Especificação
◦ Projeto
◦ Validação
◦ Evolução

Fernando Pedrosa Lopes 15 Fernando Pedrosa Lopes 16

 “São uma representação abstrata e  Cascata ou Clássico


simplificada do processo de  Prototipagem
desenvolvimento software, apresentada  Métodos formais
a partir de uma perspectiva específica”  Espiral
 Tipicamente contêm:
 Incremental
◦ “Esqueleto do processo”
◦ Ordem de precedência das atividades
◦ Principais artefatos e produtos gerados

Fernando Pedrosa Lopes 17 Fernando Pedrosa Lopes 18

3
 Modelo “Clássico”, teve origem na Comunicação
indústria de manufatura e construção - Iniciação do projeto
 Sua estrutura é composta por várias - Levantamento de Requisitos
Planejamento

etapas que são executadas de forma


sistemática e seqüencial
- Estimativas
- Cronograma Modelagem
- Monitoramento
 Na falta de uma abordagem - Análise

estruturada, foi a primeira tentativa de


- Projeto Construção

formalizar uma metodologia de - Codificação

desenvolvimento de software - Teste Implantação

- Entrega
- Manutenção
- Feedback

Fernando Pedrosa Lopes 19 Fernando Pedrosa Lopes 20

 Minimiza o planejamento, organiza as


Definição de atividades em uma sequência com
entregas bem definidas
Requisitos

 Funciona bem para requisitos estáveis


Projeto de
SW e Sistema

Codificação e e bem compreendidos


◦ O modelo pressupõe que os requisitos
testes
unitários

Integração e ficarão estáveis ao longo do projeto


É facilmente aplicável em equipes
testes de sistema

Operação e
Manutenção
inexperientes
Porém, atrasa a redução de riscos!
Fernando Pedrosa Lopes 21 Fernando Pedrosa Lopes 22

(TST - CESPE 2008)


[93] No modelo de desenvolvimento seqüencial linear, a fase de
Atividades: requisitos – projeto – codificação – integração - testes codificação é a que gera erros de maior custo de correção.

(SERPRO – CESPE 2008)


Início da integração
[63] O modelo em cascata consiste de fases e atividades que devem
ser realizadas em seqüência, de forma que uma atividade é
Desenvolvimento

Falha tardia requisito da outra.


(% codificado)
Progresso de

de projeto
(INMETRO - CESPE 2009)
[85] Em um processo de desenvolvimento em cascata, os testes de
software são realizados todos em um mesmo estágio, que acontece
Data (deadline) de
entrega original após a finalização da fase de implementação.

Cronograma do Projeto

Fernando Pedrosa Lopes 23 Fernando Pedrosa Lopes 24

4
[86] Em uma empresa que tenha adotado um processo de
desenvolvimento de software em cascata, falhas no levantamento de
 Planejamento
requisitos têm maior possibilidade de gerar grandes prejuízos do ◦ Esboçar escopo e requisitos
que naquelas que tenham adotado desenvolvimento evolucionário.
◦ Fazer estimativas razoáveis sobre
recursos, custos e prazos
(SAD/PE - CESPE 2010 - adaptada)
[58] O gerente geral de projetos da empresa decidiu, junto a um
cliente, realizar algumas modificações nos requisitos de um produto  Análise e Especificação de Requisitos
de software que já se encontrava na fase de testes e comprometeu-
se a incluir tais requisitos na próxima liberação do produto. Essa
◦ Refinar requisitos e escopo
decisão permite inferir que o modelo de desenvolvimento de ◦ Entender o domínio do problema, com
software empregado não é do tipo cascata.
comportamento e funcionalidades
esperados

Fernando Pedrosa Lopes 25 Fernando Pedrosa Lopes 26

 Projeto  Testes
 Incorporar requisitos tecnológicos aos ◦ Realizar diversos níveis de teste, de forma
requisitos essenciais do sistema a fazer a verificação do software.
 Projetar a arquitetura do sistema
 Implantação, Operação e Manutenção
 Implementação ◦ Colocar o software em produção
 Traduzir o projeto em uma forma passível ◦ Treinar pessoas
de execução pela máquina ◦ Manter o software
 Codificação ◦ Gerenciar os serviços

Fernando Pedrosa Lopes 27 Fernando Pedrosa Lopes 28

 O objetivo é trabalhar junto aos clientes Problemas


para evoluir o sistema a partir de uma  Falta de visibilidade do progresso
especificação inicial resumida ◦ O sistema está sempre evoluindo, nunca
◦ Entregar resultado o mais rápido possível está “terminado”
 Deve começar com requisitos mais bem  Os sistemas acabam tornando-se
compreendidos pobremente estruturados
 Novas funcionalidades são adicionadas  A documentação pode ser esquecida
à medida que o cliente as propõem  Os padrões de qualidade podem ser
 Aplicável em sistemas pequenos ou “relaxados”
médios com curto tempo de vida
Fernando Pedrosa Lopes 29 Fernando Pedrosa Lopes 30

5
 Assim como na prototipagem  É útil para sistemas grandes e
evolucionária, pequenas versões complicados, e quando o cliente não
prototípicas são disponibilizadas ao sabe exatamente o que quer
clientes para avaliação  Protótipos descartáveis podem ser
 Porém, o objetivo aqui é entender e aplicados no contexto de qualquer
clarificar os requisitos do sistema modelo de processo
 Deve-se começar com os requisitos ◦ Cascata
mais difíceis e menos compreendidos ◦ Espiral
 Ao final, descarta-se o protótipo e a
◦ Iterativo/Incremental, etc.
implementação do software continua
Fernando Pedrosa Lopes 31 Fernando Pedrosa Lopes 32

(TRE/MT - CESPE 2010 - adaptada)


[41] A metodologia de prototipagem evolutiva é uma abordagem
que visualiza o desenvolvimento de concepções do sistema
conforme o andamento do projeto, por meio de protótipos visuais.

(UNIPAMPA – CESPE 2009)


[73] No modelo de desenvolvimento prototipagem, um protótipo é
desenvolvido para ajudar no entendimento dos requisitos do
sistema.

(TJDFT – CESPE 2008)


[70] O modelo de desenvolvimento por prototipação é caracterizado
pela ausência de métricas de controle, dada a natureza
experimental do desenvolvimento e do produto obtido.

Fernando Pedrosa Lopes 33 Fernando Pedrosa Lopes 34

 Modelo baseado em técnicas  O próprio processo de


matemáticas para especificar, desenvolvimento garante que o
desenvolver e verificar software programa faz exatamente o que foi
 O software é especificado usando especificado
técnicas formais (matemáticas), e após  É possível gerar programas corretos e
a “prova” da especificação é completos por construção
transformado em código  Têm sido aplicados apenas ao
desenvolvimento de sistemas críticos
(por questões de segurança!)
esp. 1 esp. 2 implement.

Fernando Pedrosa Lopes 35 Fernando Pedrosa Lopes 36

6
(SERPRO – CESPE 2008)
[65] Para a especificação de software e verificação de sistemas, uma
 Motivação: requisitos de sistema
alternativa que se fundamenta na matemática discreta e na lógica é sempre evoluem durante o projeto
o modelo incremental.
 Deve-se dividir para conquistar
 Duas abordagens
◦ Desenvolvimento Incremental
◦ Desenvolvimento Espiral

Fernando Pedrosa Lopes 37 Fernando Pedrosa Lopes 38

Desenvolvimento Incremental Desenvolvimento Incremental


 A idéia é de desenvolver e entregar o  Um “mini projeto em cascata” é executado
software em incrementos, com cada em cada iteração, progredindo até a
incremento entregando parte da entrega final do produto
funcionalidade requerida
 Requisitos são definidos antes do
desenvolvimento do incremento,
sendo os mais críticos priorizados

Fernando Pedrosa Lopes 39 Fernando Pedrosa Lopes 40

 Incremental: são adicionados “pedaços completos” Desenvolvimento Incremental


 Vantagens
◦ O cliente pode receber e avaliar as
entregas do produto mais cedo
◦ Os incrementos são avaliados e os desvios
 Iterativo: esboços ou pedaços incompletos do identificados, sendo possível replanejar as
produto são adicionados a cada iteração
próximas iterações de acordo
◦ O risco geral do projeto fracassar diminui

Fernando Pedrosa Lopes 41 Fernando Pedrosa Lopes 42

7
Desenvolvimento em Espiral
Perfil do projeto  O processo é representado como uma
espiral em vez de uma seqüência de
Tradicional
Perfil do projeto
Iterativo atividades
Desenvolvimento

 Cada volta na espiral representa uma


(% codificado)
Progresso de

Falha tardia

fase no processo
de projeto

Data (deadline) de  Não há fases fixas, como Especificação,


entrega original
Projeto, etc.
Cronograma do Projeto
• Os loops na espiral são escolhidos
dependendo do que for necessário

Fernando Pedrosa Lopes 43 Fernando Pedrosa Lopes 44

Desenvolvimento em Espiral Desenvolvimento em Espiral [Boehm]


 Acrescenta aspectos gerenciais ao
desenvolvimento de software
• Planejamento, tomada de decisão
• Análise de Riscos

Porém, é complexo e requer experiência


na avaliação de riscos!

Fernando Pedrosa Lopes 45 Fernando Pedrosa Lopes 46

Desenvolvimento em Espiral [Pressman] (TST - CESPE 2008)


[94] O modelo de desenvolvimento em espiral permite repensar o
Planejamento
planejamento diversas vezes durante o desenrolar do projeto.
Análise de risco
Comunicação (SERPRO – CESPE 2008)
[64] O modelo iterativo e o modelo em espiral possuem
Eixo de características semelhantes: ambos permitem que as atividades do
ponto de processo sejam planejadas e avaliadas ao longo do ciclo de vida.
entrada Engenharia

(IJSN – CESPE 2010)


Avaliação [56] Uma vantagem do ciclo de desenvolvimento iterativo em
do cliente Construção relação ao ciclo clássico está na receptividade às mudanças
e release
inerentes ao desenvolvimento de software.
Projeto de manutenção
Projeto de melhoria
Projeto de desenvolvimento de produto
Projeto de desenvolvimento de conceito

Fernando Pedrosa Lopes 47 Fernando Pedrosa Lopes 48

8
(SAD/PE - CESPE 2010 - adaptada)
[58] Imediatamente após ter testado um protótipo evolucionário, um
dos colegas da empresa iniciou a produção de uma lista de riscos
aos quais o projeto está sujeito. Dessa forma, a empresa não utiliza
um modelo de ciclo de vida embasado no espiral.

(SERPRO - CESPE 2010)


[69] O modelo espiral do ciclo de vida de software é iterativo e
incremental, uma vez que a mesma sequência de atividades
relacionadas à produção de software é realizada a cada ciclo da
espiral.

Fernando Pedrosa Lopes 49 Fernando Pedrosa Lopes 50

 Beck, Kent. Extreme Programming  Motivação: insatisfação com os


Explained – Embrace Change. Editora: excessos dos métodos tradicionais,
Addison-Wesley. considerados “pesados”
 Schwaber, Ken. Scrum Guide.
 Métodos ágeis buscam flexibilizar o
Disponível em: www.scrum.org
desenvolvimento de software
◦ Focam no código, e não no projeto
◦ São baseados em abordagens iterativas
◦ Têm o objetivo de entregar software
funcionando o mais rápido possível

Fernando Pedrosa Lopes 2 Fernando Pedrosa Lopes 52

“Estamos evidenciando maneiras melhores de desenvolver software


fazendo-o nós mesmos e ajudando outros a fazê-lo. Através desse
trabalho, passamos a entender que:
 Indivíduos e interações são mais importantes que processos e
ferramentas.
 Software funcionando é mais importante do que
documentação completa e detalhada.
 Colaboração com o cliente é mais importante do que
negociação de contratos.
 Adaptação a mudanças é mais importante do que seguir o
plano inicial. Errado - Metodologia Ágil não é o caos!
Ou seja, mesmo tendo valor os itens à direita, valorizamos mais os
itens à esquerda. “

Fernando Pedrosa Lopes 53 Fernando Pedrosa Lopes 54

9
 Métodos ágeis, hoje, são considerados Surgimento
uma “família”  Em meados de 1990, Kent Beck,
• eXtreme Programming procurou formas mais simples e
• Scrum eficientes de desenvolver Software.
• FDD  Em Março de 1996, ele iniciou um
• Lean Software Development projeto com novos conceitos que
• Crystal Family
resultaram na metodologia XP -
• (...)
eXtreme Programming

Fernando Pedrosa Lopes 55 Fernando Pedrosa Lopes 56

“Trata-se de uma metodologia ágil para  Levar todas as boas práticas ao extremo
equipes pequenas e médias desenvolvendo ◦ Se revisar código é bom, vamos revisá-lo toda
software com requisitos vagos e em hora (pair programming )
constante mudança” – Kent Beck ◦ Se testar é bom, vamos testar toda hora (testes
funcionais)
◦ Se projetar é bom, vamos fazer disso parte do
trabalho diário de cada pessoa (refactoring )
◦ Se integrar é bom, vamos integrar a maior
quantidade de vezes possível (integração
contínua)
◦ Se simplicidade é bom, vamos deixar o sistema
na forma mais simples possível (projeto simples)

Fernando Pedrosa Lopes 57 Fernando Pedrosa Lopes 58

 Metáfora  Refatoração
◦ Uma história que todos – programadores, clientes ◦ O código deve ser constantemente melhorado,
e gerentes – podem contar acerca de como tornando-o mais simples e mais genérico,
funciona o sistema removendo redundâncias e duplicidades
◦ Facilita a comunicação entre os interessados  Programação em pares
 Projeto simples ◦ Os programadores trabalham em pares, checando
◦ O código está, a qualquer momento, na forma (validando) mutuamente o trabalho feito
mais simples que passe todos os testes ◦ Mesma máquina, mesmo mouse, mesmo monitor
 Pequenas versões  Propriedade coletiva do código
◦ As entregas são feitas através de pequenos ◦ Todos são responsáveis por todo o código e
releases (pedaços) de software funcionando qualquer pessoa está autorizada a realizar
◦ Dá confiança ao cliente sobre o progresso geral mudanças nele

Fernando Pedrosa Lopes 59 Fernando Pedrosa Lopes 60

10
 Padrão de codificação  Desenvolvimento Orientado a Testes
◦ Todo código é desenvolvido de acordo com um ◦ Uma estrutura de testes unitários automatizada é
estilo e formato consistentes (padrão) criada e os testes são escritos antes mesmo das
 Ritmo sustentável funcionalidades serem implementadas
◦ Cada programador trabalha 40 horas por semana,  Integração Contínua
no máximo ◦ Os diversos módulos do software são integrados o
 Reuniões em pé mais cedo possível, para evitar problemas de
◦ Reuniões rápidas e diárias com a equipe, para integração no futuro
discutir apenas o essencial  Planejamento Incremental
 Cliente sempre presente ◦ Requisitos são registrados como Estórias dos
◦ O cliente, com conhecimento sobre o negócio, deve Usuários e priorizados para serem incluídos em
estar disponível em tempo integral para a equipe uma determinada iteração

Fernando Pedrosa Lopes 61 Fernando Pedrosa Lopes 62

 Comunicação (TRE/BA - CESPE 2010)


[109] Em XP, a prática denominada programação em pares (pair
◦ Métodos para rapidamente construir e disseminar
programming) é realizada por um desenvolvedor em dois
conhecimento
computadores, com o objetivo de aumentar a produtividade.
 Simplicidade
◦ XP encoraja que você comece, sempre, pela (SERPRO – CESPE 2010)
solução mais simples que funcione [70] Metodologias ágeis como a XP enfatizam a documentação de
software no próprio código, que deve ser escrito por meio de
 Feedback ferramentas CASE voltadas ao desenvolvimento rápido de aplicações
◦ Do cliente, do sistema e da equipe
 Coragem (ANAC - CESPE 2009)
◦ Design simples, refatoração… [115] A técnica conhecida como refactoring é constantemente
aplicada no desenvolvimento baseado no método ágil
 Respeito extreme programming.
◦ Respeito da Equipe, do Cliente, dos Usuários…

Fernando Pedrosa Lopes 63 Fernando Pedrosa Lopes 64

(ANAC – CESPE 2009) (BNDES – CESGRANRIO 2009)


[116] No modelo extreme programming, os testes de software só [47] Determinado projeto de software utiliza XP (eXtreme
são realizados na etapa, final de desenvolvimento do Programming) como metodologia de desenvolvimento. A esse
software e, somente nessa etapa, os programadores respeito, é INCORRETO afirmar que
trabalham, obrigatoriamente, em pares, utilizando cada um
o próprio computador. a) o cliente participa ativamente e acompanha os passos dos
desenvolvedores diariamente.
b) os integrantes da equipe se reúnem rapidamente no início do
dia, de preferência em pé.
c) a equipe de desenvolvimento concentra esforços naquilo que
gera maior valor para o cliente.
d) a programação em pares dispensa o desenvolvimento orientado
a testes no projeto.
e) as funcionalidades do software são descritas em histórias, da
forma mais simples possível

Fernando Pedrosa Lopes 65 Fernando Pedrosa Lopes 66

11
 O nome é derivado de uma atividade que  As equipes se auto-organizam para
acontece em um jogo de Rugby maximizar a comunicação e diminuir a
supervisão
 É um framework de processo dentro do
qual podem ser empregados processos e  O produto evolui em uma série de “sprints”
técnicas variadas  Os requisitos (funcionalidades dos clientes)
são listados em um “product backlog”
 É possível adicionar papeis, artefatos, atividades
e “cerimônias” de acordo com a sua necessidade  Não há prática de engenharia prescrita
(Scrum se adapta a todas elas)
 Scrum pode ser aplicado em qualquer
 Scrum é um processo essencialmente
contexto no qual um grupo de pessoas gerencial
trabalhe junto para atingir algum objetivo

Fernando Pedrosa Lopes 67 Fernando Pedrosa Lopes 68

O que você fez ontem?


Reuniões
O que você fará hoje?
Há algum obstáculo no seu caminho?
Product Backlog
Diárias
(Daily  Uma lista ordenada de tudo o que é
Scrums)
necessário no produto
 Idealmente, cada item deve ter seu
Product 24 horas
Backlog Incremento

Sprint
do produto
peso (prioridade) de acordo com a
Backlog 2-4 Semanas vontade do cliente
 É replanejado (repriorizado) no início
de cada Sprint

Fernando Pedrosa Lopes 69 Fernando Pedrosa Lopes 70

Sprint Backlog Product Owner


 Uma lista de tarefas que a equipe se  Define as funcionalidades do produto
compromete a completar dentro de uma
 Decide as datas de lançamento e
determinada Sprint
 Os itens são derivados a partir do
conteúdo
Product Backlog  Prioriza as funcionalidades de acordo
 São considerados com o valor para a empresa
◦ A prioridade que o cliente deu aos itens  Aceita ou rejeita os resultados dos
◦ O tempo e esforço estimados pela equipe
para completar os vários itens
trabalhos

Fernando Pedrosa Lopes 71 Fernando Pedrosa Lopes 72

12
Team Scrum Master
 Contém tipicamente entre 5 e 9 pessoas  Responsável pela aplicação dos
 Multi-funcional valores e práticas Scrum
◦ Programadores, testadores, desenvolvedores  Remove obstáculos, facilita resultados
de interfaces, etc.
 Garante a plena funcionalidade e
 Dedicação integral
◦ Raras Exceções (ex: DBA)
produtividade da equipe
 Escudo para interferência externas
 Auto-organizável (sem títulos)
 Trocas só na mudança de Sprints

Fernando Pedrosa Lopes 73 Fernando Pedrosa Lopes 74

Scrum Master  Planejamento da Sprint


◦ Selecionam-se itens do Product Backlog, e as
 Obstáculos a serem removidos
tarefas são identificadas e estimadas
◦ “O meu ___ quebrou e eu preciso de um novo” ◦ De forma colaborativa, não apenas feito pelo
◦ “Eu preciso para debugar um problema no ___” Scrum Master
◦ “Eu preciso de ajuda para aprender ___”  Reuniões Diárias (Daily Scrums)
◦ “O cliente ___ não teve tempo de se reunir ◦ Apenas os membros da equipe, todos os dias,
conosco no planejamento e por isto estou em pé, durante 15 minutos
parado”
 Revisão do Sprint
◦ “O presidente da empresa pediu para eu resolver
um problema para ele em outro projeto, por um
◦ Apresentação dos resultados obtidos
dia ou dois…” ◦ Todo o time participa, informalmente, 2
horas de preparação, no máximo, sem slides

Fernando Pedrosa Lopes 75 Fernando Pedrosa Lopes 76

 Retrospectiva da Sprint (BASA - CESPE 2010)


[78] O Scrum é utilizado, como função primária, para o
◦ Ocorre após a revisão da sprint e antes da gerenciamento de projetos de desenvolvimento de software,
próxima reunião de planejamento mas também tem sido usado como extreme programming e outras
metodologias de desenvolvimento. Teoricamente, o Scrum pode ser
◦ Inspeciona como foi a última Sprint em aplicado em qualquer contexto no qual um grupo de pessoas
termos de: necessite trabalhar juntas para atingir um objetivo comum.

 Pessoas e Relações (SERPRO - CESPE 2010)


 Processos e Ferramentas [54] Para que o plano do projeto de um processo seja efetivo, uma
das premissas é que o product backlog esteja completo.
◦ Enquanto a revisão da sprint analisa o
produto, a retrospectiva analisa o
processo

Fernando Pedrosa Lopes 77 Fernando Pedrosa Lopes 78

13
(TRE/BA - CESPE 2010)
[68] Um princípio chave do Scrum é o reconhecimento de que
 Início: Jeff de Luca e Peter Coad em 1997
desafios fundamentalmente empíricos não podem ser resolvidos – projeto para um banco de Singapura
 A FDD é focada na entrega regular de
com sucesso utilizando-se uma abordagem tradicional de controle.
O Scrum adota uma abordagem empírica, aceitando que o problema
não pode ser totalmente entendido ou definido, focando na funcionalidades valiosas para o cliente
maximização da habilidade da equipe de responder de forma ágil
 Tem mais estrutura do que o XP
aos desafios emergentes.
◦ As equipes podem variar de 10 a 250
[101] A metodologia Scrum é facilitada por um scrum master, que programadores (aproximadamente)
atua como um mediador entre a equipe e qualquer influência
desestabilizadora, além de assegurar que a equipe esteja  Porém é mais enxuto do que o RUP
utilizando corretamente as práticas de Scrum, motivando e ◦ Não necessita de tanta documentação, nem é
mantendo o foco na meta da sprint.
tão detalhado

Fernando Pedrosa Lopes 79 Fernando Pedrosa Lopes 80

Papéis Papéis
 Project Manager  Development Manager

◦ O líder administrativo do projeto ◦ Lidera as atividades diárias de


desenvolvimento
◦ Planeja orçamento, elabora relatórios e
◦ Lidera a equipe de desenvolvimento
protege a equipe de distrações externas
através de desafios técnicos
 Chief Architect  Chief Programmers
◦ Responsável pelo projeto geral do sistema ◦ Desenvolvedores experientes
◦ Tem a palavra técnica final sobre o ◦ Lideram pequenas equipes de
software e sua arquitetura desenvolvedores individuais

Fernando Pedrosa Lopes 81 Fernando Pedrosa Lopes 82

Papéis Entendimento
Funcionalidades
que podem ser
Quem implementará
do domínio e a funcionalidade?
 Class Owners
implementadas
estabelecimento Qual é a sequência
em até 2 semanas
do escopo de implementação?
◦ São os desenvolvedores individuais
◦ Projetam, codificam, testam e documentam
as funcionalidades
 Domain Experts
◦ Usuários, clientes, patrocinadores, etc.
◦ A base de conhecimento para os
desenvolvedores
Projeto e Codificação (tarefas
de engenharia)
Fernando Pedrosa Lopes 83 Fernando Pedrosa Lopes 84

14
(DPE/SP - FCC 2010) (TRF4 - FCC 2010)
[64] Na engenharia de software, um processo iterativo denominado [61] A Feature Driven Development (FDD) é uma metodologia ágil de
sprint, que segue o ciclo PDCA para entregar, num período de 30 desenvolvimento de software, sobre a qual é correto afirmar:
dias aproximadamente, um incremento do software pronto,
caracteriza a metodologia ágil a) Não pode ser combinada a outras técnicas para a produção de
sistemas.
(A) SCRUM. b) Possui cinco processos: Desenvolver um Modelo Abrangente,
(B) DSDM. Construir a Lista de Funcionalidades, Planejar por Funcionalidade,
(C) Crystal. Detalhar por Funcionalidade e Implementar por Funcionalidade.
(D) FDD. c) Divide os papéis em dois grupos: papéis chave e papéis de apoio.
(E) XP. Dentro de cada categoria, os papéis são atribuídos a um único
participante que assume a responsabilidade pelo papel.
d) Mantém seu foco apenas na fase de modelagem.
e) Mantém seu foco apenas na fase de implementação.

Fernando Pedrosa Lopes 85 Fernando Pedrosa Lopes 86

(TJ/PE - FCC 2007)


[36] Considere:
I. Desenvolvimento de um modelo geral.
II. Construção da lista de funcionalidades.
III. Plano de liberações com base nas funcionalidades a implementar.
IV. Projetar com base nas funcionalidades.
V. Implementar com base nas funcionalidades.

São fases de projetos que seguem o processo projetado por Peter


Coad, Erich Lefebvre e Jeff De Luca chamado de

(A) MDA
(B) XP
(C) FDD
(D) RUP
(E) MVC

Fernando Pedrosa Lopes 87 Fernando Pedrosa Lopes 88

 Antes da década de 90 – “casa de  O que são?


ferreiro, espeto de pau” ◦ São ferramentas que auxiliam o
 Hoje em dia as ferramentas CASE engenheiro de SW em cada atividade
ainda não são tão variadas nem associada ao desenvolvimento de SW
fornecem tudo aquilo que os  Quem usa?
desenvolvedores queriam, mas são ◦ Gerentes de projeto e engenheiros de SW
um aparato essencial para o  Por que são importantes?
engenheiro de software ◦ Reduzem o esforço necessário para
produzir artefatos e alcançar metas
◦ Aumentam a qualidade do software

Fernando Pedrosa Lopes 89 Fernando Pedrosa Lopes 90

15
 Quais são os passos?  Como são usadas?
◦ Ferramentas CASE são usadas em ◦ Como complemento às boas práticas de
conjunto com o modelo de processo Engenharia de Software. Ferramentas
adotado. Se for escolhida uma ferramenta CASE não substituem uma metodologia de
completa, pode passar por quase todos os desenvolvimento de software sólida
passos do desenvolvimento de SW
“Um tolo com ferramentas, ainda é apenas
um tolo”

Fernando Pedrosa Lopes 91 Fernando Pedrosa Lopes 92

 Horizontais  Como não há um padrão para categorizar


◦ São utilizados durante todo o processo de ferramentas CASE, a seguinte proposta foi
desenvolvimento de software feita:
 Verticais ◦ Front-end ou Upper CASE
◦ São específicas para uma disciplina de software  apóiam as etapas iniciais da criação dos
sistemas: as fases de planejamento, análise e
 Por funções [Pressman] projeto da aplicação
◦ Processos de negócio, Planejamento de ◦ Back-end ou Lower CASE
projeto, Análise de Riscos, Rastreamento  dão apoio à parte física, i.e, código, testes e
de Requisitos, IDEs, Gerenciamento de manutenção
BDs, Análise Estática, Análise Dinâmica, ... ◦ I-CASE ou Integrated CASE
 cobrem todo o ciclo de vida, do início ao fim

Fernando Pedrosa Lopes 93 Fernando Pedrosa Lopes 94

(TRT5 - CESPE 2009)


[76] As ferramentas CASE podem ser verticais ou horizontais. As
 [0] 61 C, 12 E
primeiras oferecem serviços utilizados durante todo o processo de  [1] 93 E, 63 C, 85 E, 86 C, 58 C
software, enquanto as segundas são utilizadas em fases específicas
do processo de software.  [2] 41 C, 73 C, 70 E
(TJ/CE - CESPE 2008)
[53] Uma ferramenta CASE pode ser utilizada durante todo o projeto  [3] 65 E
de um software ou apenas em fases específicas do projeto.  [4] 94 C, 64 C, 56 C, 58 E, 69 E
(MDS - CESPE 2009)
[118] Uma ferramenta CASE (computer-aided software/system  [5] 109 E, 70 E, 115 C, 116 E, 47 D
engineering) integrada, também chamada de I-CASE,permite a
transferência de informação, como modelos, programas e  [6] 78 C, 54 E, 68 C, 101 C
 [7] 64 A, 61 B, 36 C
documentos, de uma ferramenta para outra. Entretanto, uma I-CASE
não permite a mudança de um estágio do processo de engenharia
de software para outro.  [8] 76 E, 53 C, 118 E

Fernando Pedrosa Lopes 95 Fernando Pedrosa Lopes 96

16
Fernando Pedrosa Lopes 97

17

Você também pode gostar