SlideShare una empresa de Scribd logo
1 de 77
Descargar para leer sin conexión
Modelos de Processo de Software
Ricardo Argenton Ramos
ricargentonramos@gmail.com
Engenharia de Software I
2017.2
A Engenharia de Software
2
Uma Tecnologia em Camadas
Gerenciamento da Qualidade Total e filosofias similares
produzem uma mudança cultural que permite o
desenvolvimento crescente de abordagens mais maduras para
a Engenharia de Software
ENGENHARIA DE SOFTWARE
pode ser vista como uma abordagem dedesenvolvimento
de software elaborada com disciplina e métodos bem
definidos.
.....“a construção por múltiplas pessoas de um
software com múltiplas versões” [Parnas 1987]
3
fre
4
Donald D. Cowan
Fred Brooks, Jr.
Carlos Lucena
Roger Pressman
Ian Sommerville
Shari Lawrence Pfleeger
Barbara Kitchenham
5
6
7
Modelos de Processo de Software
• Existem vários modelos de processo de software (ou paradigmas de
engenharia de software)
• Cada um representa uma tentativa de colocar ordem em uma
atividade inerentemente caótica
8
Modelos de Processo de Software
Processo Unificado
O Modelo Seqüencial Linear
(também chamado Ciclo de Vida Clássico ou
Modelo Cascata)
O Paradigma de
Prototipação
O Modelo Espiral
O Modelo
Baseado em
Componentes
O Modelo Sequencial Linear
(também chamado Ciclo de Vida Clássico ou
Modelo Cascata)
10
O Modelo Cascata
• modelo mais antigo e o mais amplamente usado da
engenharia de software
• modelado em função do ciclo da engenharia convencional
• requer uma abordagem sistemática, seqüencial ao
desenvolvimento de software
• o resultado de uma fase se constitui na entrada da outra
11
O Modelo em Cascata
12
Exploração de
conceitos
Requisitos
Projeto
Implementação
Testes
Instalação e
liberação
Feedback
Evoluir
Manutenção e
operação
O quê
Como
Operação
Verificar Plano
Requisitos de V & V
Projeto de V & V
Sistema de V & V
Tarefas de V & V
Sistema
de V & V
Operação
de V & V
com o Modelo em Cascata
 Projetos reais raramente seguem o fluxo sequencial que o
modelo propõe;
 Logo no início é difícil estabelecer explicitamente todos os
requisitos. No começo dos projetos sempre existe uma
incerteza natural;
 O cliente deve ter paciência. Uma versão executável do
software só fica disponível numa etapa avançada do
desenvolvimento (na instalação); 13
14
Embora o Modelo em Cascata
tenha fragilidades, ele é
significativamente melhor do
que uma abordagem casual de
desenvolvimento de software.
O Modelo em Cascata
• O Modelo de processo em Cascata trouxe contribuições
importantes para o processo de desenvolvimento de
software:
• Imposição de disciplina, planejamento e gerenciamento
• a implementação do produto deve ser postergada até que os
objetivos tenham sido completamente entendidos;
• Permite gerência do baseline, que identifica um conjunto fixo de
documentos produzidos ao longo do processo de
desenvolvimento;
15
Prototipação
16
17
O Modelo de Prototipação
• o objetivo é entender os requisitos do usuário e, assim, obter uma
melhor definição dos requisitos do sistema.
• possibilita que o desenvolvedor crie um modelo (protótipo)do
software que deve ser construído
• apropriado para quando o cliente não definiu detalhadamente os
requisitos.
18
O Paradigma de Prototipação para obtenção dos
requisitos
19
Obter Requisitos
Elaborar Projeto Rápido
Construir Protótipo
Avaliar Protótipo
Refinamento do Protótipo
O Paradigma de Prototipação para obtenção dos
requisitos
20
Obter Requisitos
Elaborar Projeto Rápido
Construir Protótipo
Avaliar Protótipo
Refinamento do Protótipo
1- OBTENÇÃO DOS REQUISITOS:
desenvolvedor e cliente definem os
objetivos gerais do software,
identificam quais requisitos são
conhecidos e as áreas que necessitam
de definições adicionais.
O Paradigma de Prototipação para obtenção dos
requisitos
21
Obter Requisitos
Elaborar Projeto Rápido
Construir Protótipo
Avaliar Protótipo
Refinamento do Protótipo
2- PROJETO RÁPIDO:
representação dos aspectos do
software que são visíveis ao usuário
(abordagens de entrada e formatos
de saída)
O Paradigma de Prototipação para obtenção dos
requisitos
22
Obter Requisitos
Elaborar Projeto Rápido
Construir Protótipo
Avaliar Protótipo
Refinamento do Protótipo
3- CONSTRUÇÃO DO PROTÓTIPO:
implementação rápida do
projeto
O Paradigma de Prototipação para obtenção dos
requisitos
23
Obter Requisitos
Elaborar Projeto Rápido
Construir Protótipo
Avaliar Protótipo
Refinamento do Protótipo
4- AVALIAÇÃO DO PROTÓTIPO: cliente e
desenvolvedor avaliam o protótipo
O Paradigma de Prototipação para obtenção dos
requisitos
24
Obter Requisitos
Elaborar Projeto Rápido
Construir Protótipo
Avaliar Protótipo
Refinamento do Protótipo
5- REFINAMENTO DO PROTÓTIPO: cliente e
desenvolvedor refinam os requisitos do
software a ser desenvolvido.
O Paradigma de Prototipação para obtenção dos
requisitos
25
Obter Requisitos
Elaborar Projeto Rápido
Construir Protótipo
Avaliar Protótipo
Refinamento do Protótipo
CONSTRUÇÃO
DO PRODUTO
O Paradigma de Prototipação para obtenção dos
requisitos
26
Obter Requisitos
Elaborar Projeto Rápido
Construir Protótipo
Avaliar Protótipo
Refinamento do Protótipo
CONSTRUÇÃO
DO PRODUTO
6- CONSTRUÇÃO PRODUTO:
identificados os requisitos, o
protótipo deve ser descartado e a
versão de produção deve ser
construída considerando os
critérios de qualidade.
Problemas com a Prototipação
• cliente não sabe que o software que ele vê não considerou,
durante o desenvolvimento, a qualidade global e a
mantenabilidade a longo prazo;
• desenvolvedor frequentemente faz uma implementação
comprometida (utilizando o que está disponível) com o
objetivo de produzir rapidamente um protótipo.
27
Comentários sobre o Paradigma de Prototipação
• ainda que possam ocorrer problemas, a prototipação é um
ciclo de vida eficiente.
• a chave é definir as regras do jogo logo no começo.
• o cliente e o desenvolvedor devem ambos concordar que o
protótipo seja construído para servir como um mecanismo
para definir os requisitos
28
Ferramentas
• https://marvelapp.com/
29
Exercício
• Vamos refazer o exercício da primeira aula, agora utilizando a
Prototipação para construir o Projeto.
30
Obter Requisitos
Elaborar Projeto
Rápido
Construir Protótipo
Avaliar Protótipo
Refinamento do
Protótipo
O Modelo Espiral
31
O Modelo Espiral
• O modelo espiral acopla a natureza iterativa da
prototipação com os aspectos controlados e sistemáticos
do modelo cascata.
• O modelo espiral é dividido em uma série de atividades de
trabalho ou regiões de tarefa.
• Existem tipicamente de 3 a 6 regiões de tarefa.
• Combina as características positivas da gerência baseline
(documentos associados ao processo);
32
(Boehm, 1986)
O Modelo Espiral
• engloba as melhores características do ciclo de vida
Clássico e da Prototipação, adicionando um novo
elemento: a Análise de Risco
• segue a abordagem de passos sistemáticos do Ciclo de
Vida Clássico incorporando-os numa estrutura iterativa
que reflete mais realisticamente o mundo real
• usa a Prototipação em todas as etapas da evolução do
produto, como mecanismo de redução de riscos
33
Comentários sobre o Ciclo de Vida em Espiral
• usa uma abordagem que capacita o desenvolvedor e o cliente a
entender e reagir aos riscos em cada etapa evolutiva
• pode ser difícil convencer os clientes que uma abordagem
"evolutiva" é controlável
34
Comentários sobre o Ciclo de Vida em Espiral
• exige considerável experiência na determinação de riscos e
depende dessa experiência para ter sucesso
• o modelo é relativamente novo e não tem sido amplamente
usado. Demorará muitos anos até que a eficácia desse
modelo possa ser determinada com certeza absoluta
35
O Modelo Espiral
• adiciona um novo elemento: a Análise de Risco
• usa a Prototipação, em qualquer etapa da evolução do
produto, como mecanismo de redução de riscos
• exige considerável experiência na determinação de riscos e
depende dessa experiência para ter sucesso
36
O Modelo BASEADO EM
Componentes
37
O Modelo Baseado em Componentes
• Utiliza tecnologias orientadas a objeto
• Quando projetadas e implementadas apropriadamente as classes
orientadas a objeto são reutilizáveis em diferentes aplicações e
arquiteturas de sistema
• O modelo de montagem de componentes incorpora muitas das
características do modelo espiral.
38
O Modelo de Montagem de Componentes
39
Planejamento
Análise de Riscos
Avaliação do Cliente
Comunicação
com Cliente
Engenharia
Construção e Liberação
O Modelo de Montagem de Componentes
40
Planejamento
Análise de Riscos
Avaliação do Cliente
Comunicação
com Cliente
Engenharia
Construção e Liberação
identificar
componentes
candidatas
procurar
componentes
na biblioteca
extrair
componentes
se disponíveis
construir os
componentes
não
disponíveis
colocar os
novos
componentes
na biblioteca
Construir a na
iteração do
sistema
O Modelo Baseado em Componentes
• O modelo baseado em componentes conduz ao reuso do
software
• a reusabilidade fornece uma série de benefícios:
• redução de até 70% no tempo de desenvolvimento
• redução de até 84% no custo do projeto
• índice de produtividade de até 26.2 (normal da indústria é de 16.9)
• esses resultados dependem da robustez da biblioteca de
componentes
41
Processo Unificado da
Rational
42
O que é o RUP?
• O nome é uma abreviação de Rational Unified Process
• mas na verdade é
• Processo + Métodos + Linguagem (UML)
• e os autores argumentam que é
• Framework para gerar processos
O que é o RUP?
• Conjunto de atividades
• bem definidas
• com responsáveis
• com artefatos de entrada e saída
• com dependências entre as mesmas e ordem de execução
• com modelo de ciclo de vida
• descrição sistemática de como devem ser realizadas
• guias (de ferramentas ou não), templates
• utilizando diagramas de UML
Características Principais do RUP
• O desenvolvimento de sistemas seguindo o RUP é
• Iterativo e incremental
• Guiado por casos de uso (use cases)
• Baseado na arquitetura do sistema
O RUP é iterativo e incremental
• O ciclo de vida de um sistema consiste de quatro fases:
Concepção (define o escopo do projeto)
Elaboração (detalha os requisitos e a arquitetura)
Construção (desenvolve o sistema)
Transição (implanta o sistema)
tempo
concepção elaboração construção transição
O RUP é iterativo e incremental
• Cada fase é dividida em iterações:
Minor Milestones: Releases
Inception Elaboration Construction Transition
Transition
iteration
Preliminary
iteration
Architect.
iteration
Architect.
iteration
Devel..
iteration
Devel..
iteration
Devel..
iteration
Transition
iteration
O RUP é iterativo e incremental
• Cada iteração
• é planejada
• realiza uma seqüência de atividades (de elicitação de requisitos, análise e
projeto, implementação, etc.) distintas
• geralmente resulta em uma versão executável do sistema
• é avaliada segundo critérios de sucesso previamente definidos
O RUP é iterativo e incremental
Iteração e Workflow
Core Workflows
Requisito
Análise
Desenho
Implemen-
tação
Teste
Fases
iter.
# 1
iter.
# 2
iter.
# n
iter.
#n+1
ite r.
# n +2
iter.
#m
iter.
#m +1
Iteração
Preliminar
Uma iteração na
fase de Elaboração
Concepção Elaboração Transição
Construção
Passos dentro de
uma iteração
O RUP é guiado por casos de uso
• Os casos de uso não servem apenas para definir os requisitos do
sistema
• Várias atividades do RUP são guiadas pelos casos de uso:
•planejamento das iterações
•criação e validação do modelo de projeto
•planejamento da integração do sistema
•definição dos casos de teste
O RUP é baseado na arquitetura do sistema
• Arquitetura
• visão geral do sistema em termos dos seus subsistemas e como estes se
relacionam
• A arquitetura é prototipada e definida logo nas primeiras iterações
• O desenvolvimento consiste em complementar a arquitetura
• A arquitetura serve para definir a organização da equipe de
desenvolvimento e identificar oportunidades de reuso
Organização do RUP
• Fluxos de atividades
• Atividades
• passos
• entradas e saídas
• guias (de ferramentas ou não), templates
• Responsáveis (papel e perfil, não pessoa)
• Artefatos
Exemplo de Fluxo: Planejamento e
Gerenciamento
Gerente de
projeto
Arquiteto
Contratante
Iniciar
Projeto
Aprovar
Projeto
Estudar
Viabilidade
Atestar
Conclusão
do Projeto
Identificar
Riscos
Desenvolve
r Plano de
Projeto
Desenvolve
r Plano de
Iteração
Executar
Plano de
Iteração
Avaliar
Iteração
Finalizar
Projeto
Reavaliar
Riscos
Priorizar
Casos de
Uso
Resumo
• O RUP é:
• iterativo e incremental
• guiado por casos de uso
• baseado na arquitetura do sistema
• organizado em fases, iterações, fluxos, atividades e passos
Vamos Navegar pelo RUP
• Entre no site:
http://www.funpar.ufpr.br:8080/rup/process/ovu_proc.htm
56
Métodos Ágeis
57
Novos ventos no mundo do Desenvolvimento de
Software
• Sociedade demanda
• grande quantidade de sistemas/aplicações
• software complexo, sistemas distribuídos, heterogêneos
• requisitos mutantes (todo ano, todo mês, todo dia)
• Mas, infelizmente,
• não há gente suficiente para
desenvolver tanto software com qualidade.
Problemas
• Com metodologias de desenvolvimento
• Supõem que é possível prever o futuro
• Pouca interação com os clientes
• Ênfase em burocracias (documentos, formulários, processos, controles rígidos,
etc.)
• Avaliação do progresso baseado na evolução da burocracia e não do código
• Com software
• Grande quantidade de erros
• Falta de flexibilidade
Como resolver esse impasse?
• Melhores Tecnologias
• Padrões de Projeto (reutilização de idéias)
• Componentes (reutilização de código)
• Middleware (aumenta a abstração)
• Melhores Metodologias
• Métodos Ágeis
• outras... (RUP, relacionadas a CMM, etc.)
Métodos Ágeis de
Desenvolvimento de Software
•Movimento iniciado por programadores experientes
e consultores em desenvolvimento de software.
•Questionam e se opõe a uma série de
mitos/práticas adotadas em abordagens
tradicionais de Engenharia de Software e Gerência
de Projetos.
•Manifesto Ágil:
•Assinado por 17 desenvolvedores em Utah em
fevereiro/2001.
O Manifesto do
Desenvolvimento Ágil de Software
1. Indivíduos e interações são mais importantes que processos e
ferramentas.
2. Software funcionando é mais importante do que documentação completa
e detalhada.
3. Colaboração com o cliente é mais importante do que negociação de
contratos.
4. Adaptação a mudanças é mais importante do que seguir o plano inicial.
Princípios do Manifesto Ágil
• Objetivo: satisfazer o cliente entregando, rapidamente e com freqüência,
sistemas com algum valor.
• Entregar versões funcionais em prazos curtos.
• Estar preparado para requisitos mutantes.
• Pessoal de negócios e desenvolvedores juntos.
• Troca de informações através de conversas diretas.
63 / 69
Principais Métodos Ágeis
• Crystal (uma família de métodos)
• Scrum
• Programação eXtrema (XP)
• Adaptive Software Development
• Feature Driven Development
• etc.
A família Crystal de Métodos
• Criada por Alistair Cockburn
• http://alistair.cockburn.us/crystal
• Editor da série Agile Software Development da Addison-Wesley.
Scrum
Definição informal:
Estratégia em um jogo de rugby onde
jogadores colocam uma bola quase perdida
novamente em jogo através de trabalho em
equipe.
Scrum
• Scrum é um esqueleto de processo que contém grupos de práticas e
papéis pré-definidos. Os principais papéis são:
• ScrumMaster, que mantém os processos (normalmente no lugar de um
gerente de projeto);
• Proprietário do Produto, ou Product Owner, que representa os stakeholders e
o negócio;
• a Equipe, ou Team, um grupo multifuncional com cerca de 7 pessoas e que
fazem a análise, projeto, implementação, teste etc.
67
Programação eXtrema
XP
• Metodologia de desenvolvimento de software aperfeiçoada nos últimos
5 anos.
• Ganhou notoriedade a partir da OOPSLA’2000.
• Nome principal: Kent Beck
• Também importante: Ward Cunningham
A Quem se Destina os Métodos Ágeis
• Grupos de 2 a 10 programadores
• Projetos de 1 a 36 meses (calendário)
• De 1000 a 250 000 linhas de código
Características Comuns dos Métodos Ágeis
• Coloca o foco
• Na entrega freqüente de sub-versões do software [funcionando] para o cliente.
• Nos seres humanos que desenvolvem o software.
• Retira o foco de
• Processos rígidos e burocratizados.
• Documentações e contratos detalhados.
• Ferramentas que são usadas pelos seres humanos.
Como escolher um Modelo para o Meu
Processo de Desenvolvimento de Software
71
Para escolha de um Modelo de Processo de
Software:
•natureza do projeto e da aplicação
•métodos e ferramentas a serem usados
•controles e produtos que precisam ser
entregues
72
Grupos e PodCast, Vídeos e textos
• O Manifesto Ágil (4 alunos):
• http://www.manifestoagil.com.br/ (texto)
• https://hipsters.tech/agilidade-hipsters-05/
• http://www.agilcoop.org.br/files/Agilcast01-intro.mp3
• Programação Extrema (4 alunos):
• http://www.fernandocosta.com.br/2007/10/08/extreme-programa-xp-
programacao-extrema/ (texto)
• http://www.agilcoop.org.br/files/Agilcast02-praticasXP.mp3
• https://www.youtube.com/watch?v=UipebTN25Hc
• SCRUM (4 alunos):
• http://gc.blog.br/2008/05/27/como-estamos-indo-com-a-adocao-de-scrum-
na-globocom/ (texto)
• https://hipsters.tech/scrum-do-zero-ao-sprint-hipsters-54/
• https://www.youtube.com/watch?v=vg1S1WYZa6o
Modelos de Processos 73
Grupos e PodCast, Vídeos e textos
• Métodos ágeis e documentação de software / Product Owner(4
alunos)
• https://www.youtube.com/watch?v=3Smbhnmue7Y
• https://www.youtube.com/watch?v=7lhnYbmovb4
• https://www.youtube.com/watch?v=72ilcGqfvjU
• Kanban (4 alunos):
• https://www.culturaagil.com.br/kanban-do-inicio-ao-fim/ (texto)
• https://www.youtube.com/watch?v=LJOiFRsp0Z8
• Padrões para Introduzir Novas Ideias (4 alunos):
• https://www.youtube.com/watch?v=8Kjv6gI8kJQ (1/3)
• https://www.youtube.com/watch?v=wXBiHK0763Y (2/3)
• https://www.youtube.com/watch?v=MsC5bKlpEno (3/3)
• http://www.agilcoop.org.br/files/Agilcast11-
Padroes%20para%20introduzir%20novas%20ideias.mp3
Modelos de Processos 74
Para Entregar na Próxima aula (07/12/2017)
• Cada grupo deverá fazer uma apresentação em Power Point sobre os
temas que foram passados pelos links.
• A apresentação deverá ter a duração de no máximo 10 minutos.
Modelos de Processos 75
Exercício
• Você e mais 4 sócios resolveram criar uma empresa de desenvolvimento de
Software e você ficou responsável por definir algumas áreas da empresa. Cada
questão abaixo será a sua parte para a criação desta empresa.
1) Defina uma abordagem para o desenvolvimento de software que compreenda
os benefícios dos modelos de desenvolvimento clássicos (Cascata, prototipação e
Espiral). Inclua as características de outros modelos se achar necessários.
2) Defina uma abordagem para fazer a analise da viabilidade de sistemas a serem
desenvolvidos. Esta abordagem consiste de uma relação das atividades em ordem
cronológica para analisar a viabilidade de qualquer sistema que for desenvolvido
pela empresa.
3) O seu primeiro sistema a ser desenvolvido pela nova empresa de
desenvolvimento de software será para a Farmácia “Pague Pouco”. Eles querem
informatizar o sistema de vendas e controle de estoque, desejam armazenar a
seguinte informação: qual vendedor vendeu qual produto para qual cliente.
Relate, de acordo com o modelo de software criado na primeira questão e com a
abordagem de analise da segunda, quais a as atividades deverão ser realizadas
para o desenvolvimento do sistema da Farmácia “Pague Pouco”.
76
Para a Prova, veja os capítulos seguintes:
• Livro de Engenharia de Software, autor: Ian Sommerville:
• 8º edição – Capítulo 4.1, 4.2, 4.3 e 4.4
ou
• 9ª edição – Capítulo 2.1, 2.2 e 2.4
• Livro de Engenharia de Software, autor: Roger Pressman:
• 6ª edição – Capítulo 3.1, 3.2, 3.4 e 3.6
Modelos de Processos 77

Más contenido relacionado

Similar a Aula03_04_ModelosProcessos.pdf

Modelos de Processo de Software Parte 1
Modelos de Processo de Software Parte 1Modelos de Processo de Software Parte 1
Modelos de Processo de Software Parte 1Elaine Cecília Gatto
 
Modelos de Processo de Software Parte 4
Modelos de Processo de Software Parte 4Modelos de Processo de Software Parte 4
Modelos de Processo de Software Parte 4Elaine Cecília Gatto
 
Es capítulo 2 - processos de software
Es   capítulo 2  - processos de softwareEs   capítulo 2  - processos de software
Es capítulo 2 - processos de softwareFelipe Oliveira
 
Es2 modelo de processo de software
Es2 modelo de processo de softwareEs2 modelo de processo de software
Es2 modelo de processo de softwareluacal
 
Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9wilsonguns
 
Modelos de Processo de Software Parte 3
Modelos de Processo de Software Parte 3Modelos de Processo de Software Parte 3
Modelos de Processo de Software Parte 3Elaine Cecília Gatto
 
Engenharia de Software: Processos de Software
Engenharia de Software: Processos de SoftwareEngenharia de Software: Processos de Software
Engenharia de Software: Processos de Softwaregabriel-colman
 
T1 g13.modelo cascata
T1 g13.modelo cascataT1 g13.modelo cascata
T1 g13.modelo cascatawilsonguns
 
Ciclo de vida de software
Ciclo de vida de softwareCiclo de vida de software
Ciclo de vida de softwarediha36
 
Introdução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixIntrodução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixCris Fidelix
 
Aula1 analise de sistemas remixado
Aula1 analise de sistemas remixadoAula1 analise de sistemas remixado
Aula1 analise de sistemas remixadoneilaxavier
 
2 engenharia de software
2   engenharia de software2   engenharia de software
2 engenharia de softwareFelipe Bugov
 

Similar a Aula03_04_ModelosProcessos.pdf (20)

Aula 3 - Engenharia de Software
Aula 3 - Engenharia de SoftwareAula 3 - Engenharia de Software
Aula 3 - Engenharia de Software
 
Modelos de Processo de Software Parte 1
Modelos de Processo de Software Parte 1Modelos de Processo de Software Parte 1
Modelos de Processo de Software Parte 1
 
Modelos de Processo de Software Parte 4
Modelos de Processo de Software Parte 4Modelos de Processo de Software Parte 4
Modelos de Processo de Software Parte 4
 
Aula2 processos sw
Aula2 processos swAula2 processos sw
Aula2 processos sw
 
Es capítulo 2 - processos de software
Es   capítulo 2  - processos de softwareEs   capítulo 2  - processos de software
Es capítulo 2 - processos de software
 
Es2 modelo de processo de software
Es2 modelo de processo de softwareEs2 modelo de processo de software
Es2 modelo de processo de software
 
347842.ppt
347842.ppt347842.ppt
347842.ppt
 
Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9
 
Modelos de Processo de Software Parte 3
Modelos de Processo de Software Parte 3Modelos de Processo de Software Parte 3
Modelos de Processo de Software Parte 3
 
DSDM
DSDMDSDM
DSDM
 
Engenharia de Software: Processos de Software
Engenharia de Software: Processos de SoftwareEngenharia de Software: Processos de Software
Engenharia de Software: Processos de Software
 
IBM Rational Unified Process
IBM Rational Unified ProcessIBM Rational Unified Process
IBM Rational Unified Process
 
Aula 3
Aula 3Aula 3
Aula 3
 
Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
 
T1 g13.modelo cascata
T1 g13.modelo cascataT1 g13.modelo cascata
T1 g13.modelo cascata
 
Ciclo de vida de software
Ciclo de vida de softwareCiclo de vida de software
Ciclo de vida de software
 
Introdução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixIntrodução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane Fidelix
 
Aula1 analise de sistemas remixado
Aula1 analise de sistemas remixadoAula1 analise de sistemas remixado
Aula1 analise de sistemas remixado
 
Outras Metodologias Ágeis Parte 2
Outras Metodologias Ágeis Parte 2Outras Metodologias Ágeis Parte 2
Outras Metodologias Ágeis Parte 2
 
2 engenharia de software
2   engenharia de software2   engenharia de software
2 engenharia de software
 

Más de Jadna Almeida

Introdução Segurança e Auditoria.pptx
Introdução Segurança e Auditoria.pptxIntrodução Segurança e Auditoria.pptx
Introdução Segurança e Auditoria.pptxJadna Almeida
 
Tópicos em Sistemas de Informação e Web I.pptx
Tópicos em Sistemas de Informação e Web I.pptxTópicos em Sistemas de Informação e Web I.pptx
Tópicos em Sistemas de Informação e Web I.pptxJadna Almeida
 
Aula 02- Projeto de Interfaces.ppt
Aula 02- Projeto de Interfaces.pptAula 02- Projeto de Interfaces.ppt
Aula 02- Projeto de Interfaces.pptJadna Almeida
 
2019_Aula 1 - Introdução à Engenharia de Software.pdf
2019_Aula 1 - Introdução à Engenharia de Software.pdf2019_Aula 1 - Introdução à Engenharia de Software.pdf
2019_Aula 1 - Introdução à Engenharia de Software.pdfJadna Almeida
 
Aula 01 e 02 - Engenharia de Software.pdf
Aula 01 e 02 - Engenharia de Software.pdfAula 01 e 02 - Engenharia de Software.pdf
Aula 01 e 02 - Engenharia de Software.pdfJadna Almeida
 
Aula 08LingProgrMauricio.pdf
Aula 08LingProgrMauricio.pdfAula 08LingProgrMauricio.pdf
Aula 08LingProgrMauricio.pdfJadna Almeida
 
Slides 02 - Orientacao a Objetos.pdf
Slides 02 - Orientacao a Objetos.pdfSlides 02 - Orientacao a Objetos.pdf
Slides 02 - Orientacao a Objetos.pdfJadna Almeida
 
Slides 04 - A Linguagem Java.pdf
Slides 04 - A Linguagem Java.pdfSlides 04 - A Linguagem Java.pdf
Slides 04 - A Linguagem Java.pdfJadna Almeida
 
Aula 2 - Introducao e Algoritmos.ppt
Aula 2 - Introducao e Algoritmos.pptAula 2 - Introducao e Algoritmos.ppt
Aula 2 - Introducao e Algoritmos.pptJadna Almeida
 
A04_Orientacao a Objetos 02.pdf
A04_Orientacao a Objetos 02.pdfA04_Orientacao a Objetos 02.pdf
A04_Orientacao a Objetos 02.pdfJadna Almeida
 
POO2 - Orientacao a Objetos (1).pdf
POO2 - Orientacao a Objetos (1).pdfPOO2 - Orientacao a Objetos (1).pdf
POO2 - Orientacao a Objetos (1).pdfJadna Almeida
 
linguagens_de_programacao.ppt
linguagens_de_programacao.pptlinguagens_de_programacao.ppt
linguagens_de_programacao.pptJadna Almeida
 
Aula 2 - Introducao a Algoritmo.pptx
Aula 2 - Introducao a Algoritmo.pptxAula 2 - Introducao a Algoritmo.pptx
Aula 2 - Introducao a Algoritmo.pptxJadna Almeida
 
COMP6411.1.history.ppt
COMP6411.1.history.pptCOMP6411.1.history.ppt
COMP6411.1.history.pptJadna Almeida
 

Más de Jadna Almeida (20)

Introdução Segurança e Auditoria.pptx
Introdução Segurança e Auditoria.pptxIntrodução Segurança e Auditoria.pptx
Introdução Segurança e Auditoria.pptx
 
Tópicos em Sistemas de Informação e Web I.pptx
Tópicos em Sistemas de Informação e Web I.pptxTópicos em Sistemas de Informação e Web I.pptx
Tópicos em Sistemas de Informação e Web I.pptx
 
PadroesGRASP.ppt
PadroesGRASP.pptPadroesGRASP.ppt
PadroesGRASP.ppt
 
lect22.ppt
lect22.pptlect22.ppt
lect22.ppt
 
Aula 02- Projeto de Interfaces.ppt
Aula 02- Projeto de Interfaces.pptAula 02- Projeto de Interfaces.ppt
Aula 02- Projeto de Interfaces.ppt
 
2019_Aula 1 - Introdução à Engenharia de Software.pdf
2019_Aula 1 - Introdução à Engenharia de Software.pdf2019_Aula 1 - Introdução à Engenharia de Software.pdf
2019_Aula 1 - Introdução à Engenharia de Software.pdf
 
Aula 01 e 02 - Engenharia de Software.pdf
Aula 01 e 02 - Engenharia de Software.pdfAula 01 e 02 - Engenharia de Software.pdf
Aula 01 e 02 - Engenharia de Software.pdf
 
Aula 08LingProgrMauricio.pdf
Aula 08LingProgrMauricio.pdfAula 08LingProgrMauricio.pdf
Aula 08LingProgrMauricio.pdf
 
Slides 02 - Orientacao a Objetos.pdf
Slides 02 - Orientacao a Objetos.pdfSlides 02 - Orientacao a Objetos.pdf
Slides 02 - Orientacao a Objetos.pdf
 
Slides 04 - A Linguagem Java.pdf
Slides 04 - A Linguagem Java.pdfSlides 04 - A Linguagem Java.pdf
Slides 04 - A Linguagem Java.pdf
 
poo-aula01.pdf
poo-aula01.pdfpoo-aula01.pdf
poo-aula01.pdf
 
Aula 2 - Introducao e Algoritmos.ppt
Aula 2 - Introducao e Algoritmos.pptAula 2 - Introducao e Algoritmos.ppt
Aula 2 - Introducao e Algoritmos.ppt
 
A04_Orientacao a Objetos 02.pdf
A04_Orientacao a Objetos 02.pdfA04_Orientacao a Objetos 02.pdf
A04_Orientacao a Objetos 02.pdf
 
POO2 - Orientacao a Objetos (1).pdf
POO2 - Orientacao a Objetos (1).pdfPOO2 - Orientacao a Objetos (1).pdf
POO2 - Orientacao a Objetos (1).pdf
 
linguagens_de_programacao.ppt
linguagens_de_programacao.pptlinguagens_de_programacao.ppt
linguagens_de_programacao.ppt
 
Aula 2 - Introducao a Algoritmo.pptx
Aula 2 - Introducao a Algoritmo.pptxAula 2 - Introducao a Algoritmo.pptx
Aula 2 - Introducao a Algoritmo.pptx
 
COMP6411.1.history.ppt
COMP6411.1.history.pptCOMP6411.1.history.ppt
COMP6411.1.history.ppt
 
22_ideals (1).ppt
22_ideals (1).ppt22_ideals (1).ppt
22_ideals (1).ppt
 
lecture244-mf.pptx
lecture244-mf.pptxlecture244-mf.pptx
lecture244-mf.pptx
 
lecture26-mf.pptx
lecture26-mf.pptxlecture26-mf.pptx
lecture26-mf.pptx
 

Último

Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx2m Assessoria
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfSamaraLunas
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuisKitota
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 

Último (9)

Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 

Aula03_04_ModelosProcessos.pdf

  • 1. Modelos de Processo de Software Ricardo Argenton Ramos ricargentonramos@gmail.com Engenharia de Software I 2017.2
  • 2. A Engenharia de Software 2 Uma Tecnologia em Camadas Gerenciamento da Qualidade Total e filosofias similares produzem uma mudança cultural que permite o desenvolvimento crescente de abordagens mais maduras para a Engenharia de Software
  • 3. ENGENHARIA DE SOFTWARE pode ser vista como uma abordagem dedesenvolvimento de software elaborada com disciplina e métodos bem definidos. .....“a construção por múltiplas pessoas de um software com múltiplas versões” [Parnas 1987] 3
  • 4. fre 4 Donald D. Cowan Fred Brooks, Jr. Carlos Lucena Roger Pressman Ian Sommerville Shari Lawrence Pfleeger Barbara Kitchenham
  • 5. 5
  • 6. 6
  • 7. 7
  • 8. Modelos de Processo de Software • Existem vários modelos de processo de software (ou paradigmas de engenharia de software) • Cada um representa uma tentativa de colocar ordem em uma atividade inerentemente caótica 8
  • 9. Modelos de Processo de Software Processo Unificado O Modelo Seqüencial Linear (também chamado Ciclo de Vida Clássico ou Modelo Cascata) O Paradigma de Prototipação O Modelo Espiral O Modelo Baseado em Componentes
  • 10. O Modelo Sequencial Linear (também chamado Ciclo de Vida Clássico ou Modelo Cascata) 10
  • 11. O Modelo Cascata • modelo mais antigo e o mais amplamente usado da engenharia de software • modelado em função do ciclo da engenharia convencional • requer uma abordagem sistemática, seqüencial ao desenvolvimento de software • o resultado de uma fase se constitui na entrada da outra 11
  • 12. O Modelo em Cascata 12 Exploração de conceitos Requisitos Projeto Implementação Testes Instalação e liberação Feedback Evoluir Manutenção e operação O quê Como Operação Verificar Plano Requisitos de V & V Projeto de V & V Sistema de V & V Tarefas de V & V Sistema de V & V Operação de V & V
  • 13. com o Modelo em Cascata  Projetos reais raramente seguem o fluxo sequencial que o modelo propõe;  Logo no início é difícil estabelecer explicitamente todos os requisitos. No começo dos projetos sempre existe uma incerteza natural;  O cliente deve ter paciência. Uma versão executável do software só fica disponível numa etapa avançada do desenvolvimento (na instalação); 13
  • 14. 14 Embora o Modelo em Cascata tenha fragilidades, ele é significativamente melhor do que uma abordagem casual de desenvolvimento de software.
  • 15. O Modelo em Cascata • O Modelo de processo em Cascata trouxe contribuições importantes para o processo de desenvolvimento de software: • Imposição de disciplina, planejamento e gerenciamento • a implementação do produto deve ser postergada até que os objetivos tenham sido completamente entendidos; • Permite gerência do baseline, que identifica um conjunto fixo de documentos produzidos ao longo do processo de desenvolvimento; 15
  • 17. 17
  • 18. O Modelo de Prototipação • o objetivo é entender os requisitos do usuário e, assim, obter uma melhor definição dos requisitos do sistema. • possibilita que o desenvolvedor crie um modelo (protótipo)do software que deve ser construído • apropriado para quando o cliente não definiu detalhadamente os requisitos. 18
  • 19. O Paradigma de Prototipação para obtenção dos requisitos 19 Obter Requisitos Elaborar Projeto Rápido Construir Protótipo Avaliar Protótipo Refinamento do Protótipo
  • 20. O Paradigma de Prototipação para obtenção dos requisitos 20 Obter Requisitos Elaborar Projeto Rápido Construir Protótipo Avaliar Protótipo Refinamento do Protótipo 1- OBTENÇÃO DOS REQUISITOS: desenvolvedor e cliente definem os objetivos gerais do software, identificam quais requisitos são conhecidos e as áreas que necessitam de definições adicionais.
  • 21. O Paradigma de Prototipação para obtenção dos requisitos 21 Obter Requisitos Elaborar Projeto Rápido Construir Protótipo Avaliar Protótipo Refinamento do Protótipo 2- PROJETO RÁPIDO: representação dos aspectos do software que são visíveis ao usuário (abordagens de entrada e formatos de saída)
  • 22. O Paradigma de Prototipação para obtenção dos requisitos 22 Obter Requisitos Elaborar Projeto Rápido Construir Protótipo Avaliar Protótipo Refinamento do Protótipo 3- CONSTRUÇÃO DO PROTÓTIPO: implementação rápida do projeto
  • 23. O Paradigma de Prototipação para obtenção dos requisitos 23 Obter Requisitos Elaborar Projeto Rápido Construir Protótipo Avaliar Protótipo Refinamento do Protótipo 4- AVALIAÇÃO DO PROTÓTIPO: cliente e desenvolvedor avaliam o protótipo
  • 24. O Paradigma de Prototipação para obtenção dos requisitos 24 Obter Requisitos Elaborar Projeto Rápido Construir Protótipo Avaliar Protótipo Refinamento do Protótipo 5- REFINAMENTO DO PROTÓTIPO: cliente e desenvolvedor refinam os requisitos do software a ser desenvolvido.
  • 25. O Paradigma de Prototipação para obtenção dos requisitos 25 Obter Requisitos Elaborar Projeto Rápido Construir Protótipo Avaliar Protótipo Refinamento do Protótipo CONSTRUÇÃO DO PRODUTO
  • 26. O Paradigma de Prototipação para obtenção dos requisitos 26 Obter Requisitos Elaborar Projeto Rápido Construir Protótipo Avaliar Protótipo Refinamento do Protótipo CONSTRUÇÃO DO PRODUTO 6- CONSTRUÇÃO PRODUTO: identificados os requisitos, o protótipo deve ser descartado e a versão de produção deve ser construída considerando os critérios de qualidade.
  • 27. Problemas com a Prototipação • cliente não sabe que o software que ele vê não considerou, durante o desenvolvimento, a qualidade global e a mantenabilidade a longo prazo; • desenvolvedor frequentemente faz uma implementação comprometida (utilizando o que está disponível) com o objetivo de produzir rapidamente um protótipo. 27
  • 28. Comentários sobre o Paradigma de Prototipação • ainda que possam ocorrer problemas, a prototipação é um ciclo de vida eficiente. • a chave é definir as regras do jogo logo no começo. • o cliente e o desenvolvedor devem ambos concordar que o protótipo seja construído para servir como um mecanismo para definir os requisitos 28
  • 30. Exercício • Vamos refazer o exercício da primeira aula, agora utilizando a Prototipação para construir o Projeto. 30 Obter Requisitos Elaborar Projeto Rápido Construir Protótipo Avaliar Protótipo Refinamento do Protótipo
  • 32. O Modelo Espiral • O modelo espiral acopla a natureza iterativa da prototipação com os aspectos controlados e sistemáticos do modelo cascata. • O modelo espiral é dividido em uma série de atividades de trabalho ou regiões de tarefa. • Existem tipicamente de 3 a 6 regiões de tarefa. • Combina as características positivas da gerência baseline (documentos associados ao processo); 32 (Boehm, 1986)
  • 33. O Modelo Espiral • engloba as melhores características do ciclo de vida Clássico e da Prototipação, adicionando um novo elemento: a Análise de Risco • segue a abordagem de passos sistemáticos do Ciclo de Vida Clássico incorporando-os numa estrutura iterativa que reflete mais realisticamente o mundo real • usa a Prototipação em todas as etapas da evolução do produto, como mecanismo de redução de riscos 33
  • 34. Comentários sobre o Ciclo de Vida em Espiral • usa uma abordagem que capacita o desenvolvedor e o cliente a entender e reagir aos riscos em cada etapa evolutiva • pode ser difícil convencer os clientes que uma abordagem "evolutiva" é controlável 34
  • 35. Comentários sobre o Ciclo de Vida em Espiral • exige considerável experiência na determinação de riscos e depende dessa experiência para ter sucesso • o modelo é relativamente novo e não tem sido amplamente usado. Demorará muitos anos até que a eficácia desse modelo possa ser determinada com certeza absoluta 35
  • 36. O Modelo Espiral • adiciona um novo elemento: a Análise de Risco • usa a Prototipação, em qualquer etapa da evolução do produto, como mecanismo de redução de riscos • exige considerável experiência na determinação de riscos e depende dessa experiência para ter sucesso 36
  • 37. O Modelo BASEADO EM Componentes 37
  • 38. O Modelo Baseado em Componentes • Utiliza tecnologias orientadas a objeto • Quando projetadas e implementadas apropriadamente as classes orientadas a objeto são reutilizáveis em diferentes aplicações e arquiteturas de sistema • O modelo de montagem de componentes incorpora muitas das características do modelo espiral. 38
  • 39. O Modelo de Montagem de Componentes 39 Planejamento Análise de Riscos Avaliação do Cliente Comunicação com Cliente Engenharia Construção e Liberação
  • 40. O Modelo de Montagem de Componentes 40 Planejamento Análise de Riscos Avaliação do Cliente Comunicação com Cliente Engenharia Construção e Liberação identificar componentes candidatas procurar componentes na biblioteca extrair componentes se disponíveis construir os componentes não disponíveis colocar os novos componentes na biblioteca Construir a na iteração do sistema
  • 41. O Modelo Baseado em Componentes • O modelo baseado em componentes conduz ao reuso do software • a reusabilidade fornece uma série de benefícios: • redução de até 70% no tempo de desenvolvimento • redução de até 84% no custo do projeto • índice de produtividade de até 26.2 (normal da indústria é de 16.9) • esses resultados dependem da robustez da biblioteca de componentes 41
  • 43. O que é o RUP? • O nome é uma abreviação de Rational Unified Process • mas na verdade é • Processo + Métodos + Linguagem (UML) • e os autores argumentam que é • Framework para gerar processos
  • 44. O que é o RUP? • Conjunto de atividades • bem definidas • com responsáveis • com artefatos de entrada e saída • com dependências entre as mesmas e ordem de execução • com modelo de ciclo de vida • descrição sistemática de como devem ser realizadas • guias (de ferramentas ou não), templates • utilizando diagramas de UML
  • 45. Características Principais do RUP • O desenvolvimento de sistemas seguindo o RUP é • Iterativo e incremental • Guiado por casos de uso (use cases) • Baseado na arquitetura do sistema
  • 46. O RUP é iterativo e incremental • O ciclo de vida de um sistema consiste de quatro fases: Concepção (define o escopo do projeto) Elaboração (detalha os requisitos e a arquitetura) Construção (desenvolve o sistema) Transição (implanta o sistema) tempo concepção elaboração construção transição
  • 47. O RUP é iterativo e incremental • Cada fase é dividida em iterações: Minor Milestones: Releases Inception Elaboration Construction Transition Transition iteration Preliminary iteration Architect. iteration Architect. iteration Devel.. iteration Devel.. iteration Devel.. iteration Transition iteration
  • 48. O RUP é iterativo e incremental • Cada iteração • é planejada • realiza uma seqüência de atividades (de elicitação de requisitos, análise e projeto, implementação, etc.) distintas • geralmente resulta em uma versão executável do sistema • é avaliada segundo critérios de sucesso previamente definidos
  • 49. O RUP é iterativo e incremental
  • 50. Iteração e Workflow Core Workflows Requisito Análise Desenho Implemen- tação Teste Fases iter. # 1 iter. # 2 iter. # n iter. #n+1 ite r. # n +2 iter. #m iter. #m +1 Iteração Preliminar Uma iteração na fase de Elaboração Concepção Elaboração Transição Construção Passos dentro de uma iteração
  • 51. O RUP é guiado por casos de uso • Os casos de uso não servem apenas para definir os requisitos do sistema • Várias atividades do RUP são guiadas pelos casos de uso: •planejamento das iterações •criação e validação do modelo de projeto •planejamento da integração do sistema •definição dos casos de teste
  • 52. O RUP é baseado na arquitetura do sistema • Arquitetura • visão geral do sistema em termos dos seus subsistemas e como estes se relacionam • A arquitetura é prototipada e definida logo nas primeiras iterações • O desenvolvimento consiste em complementar a arquitetura • A arquitetura serve para definir a organização da equipe de desenvolvimento e identificar oportunidades de reuso
  • 53. Organização do RUP • Fluxos de atividades • Atividades • passos • entradas e saídas • guias (de ferramentas ou não), templates • Responsáveis (papel e perfil, não pessoa) • Artefatos
  • 54. Exemplo de Fluxo: Planejamento e Gerenciamento Gerente de projeto Arquiteto Contratante Iniciar Projeto Aprovar Projeto Estudar Viabilidade Atestar Conclusão do Projeto Identificar Riscos Desenvolve r Plano de Projeto Desenvolve r Plano de Iteração Executar Plano de Iteração Avaliar Iteração Finalizar Projeto Reavaliar Riscos Priorizar Casos de Uso
  • 55. Resumo • O RUP é: • iterativo e incremental • guiado por casos de uso • baseado na arquitetura do sistema • organizado em fases, iterações, fluxos, atividades e passos
  • 56. Vamos Navegar pelo RUP • Entre no site: http://www.funpar.ufpr.br:8080/rup/process/ovu_proc.htm 56
  • 58. Novos ventos no mundo do Desenvolvimento de Software • Sociedade demanda • grande quantidade de sistemas/aplicações • software complexo, sistemas distribuídos, heterogêneos • requisitos mutantes (todo ano, todo mês, todo dia) • Mas, infelizmente, • não há gente suficiente para desenvolver tanto software com qualidade.
  • 59. Problemas • Com metodologias de desenvolvimento • Supõem que é possível prever o futuro • Pouca interação com os clientes • Ênfase em burocracias (documentos, formulários, processos, controles rígidos, etc.) • Avaliação do progresso baseado na evolução da burocracia e não do código • Com software • Grande quantidade de erros • Falta de flexibilidade
  • 60. Como resolver esse impasse? • Melhores Tecnologias • Padrões de Projeto (reutilização de idéias) • Componentes (reutilização de código) • Middleware (aumenta a abstração) • Melhores Metodologias • Métodos Ágeis • outras... (RUP, relacionadas a CMM, etc.)
  • 61. Métodos Ágeis de Desenvolvimento de Software •Movimento iniciado por programadores experientes e consultores em desenvolvimento de software. •Questionam e se opõe a uma série de mitos/práticas adotadas em abordagens tradicionais de Engenharia de Software e Gerência de Projetos. •Manifesto Ágil: •Assinado por 17 desenvolvedores em Utah em fevereiro/2001.
  • 62. O Manifesto do Desenvolvimento Ágil de Software 1. Indivíduos e interações são mais importantes que processos e ferramentas. 2. Software funcionando é mais importante do que documentação completa e detalhada. 3. Colaboração com o cliente é mais importante do que negociação de contratos. 4. Adaptação a mudanças é mais importante do que seguir o plano inicial.
  • 63. Princípios do Manifesto Ágil • Objetivo: satisfazer o cliente entregando, rapidamente e com freqüência, sistemas com algum valor. • Entregar versões funcionais em prazos curtos. • Estar preparado para requisitos mutantes. • Pessoal de negócios e desenvolvedores juntos. • Troca de informações através de conversas diretas. 63 / 69
  • 64. Principais Métodos Ágeis • Crystal (uma família de métodos) • Scrum • Programação eXtrema (XP) • Adaptive Software Development • Feature Driven Development • etc.
  • 65. A família Crystal de Métodos • Criada por Alistair Cockburn • http://alistair.cockburn.us/crystal • Editor da série Agile Software Development da Addison-Wesley.
  • 66. Scrum Definição informal: Estratégia em um jogo de rugby onde jogadores colocam uma bola quase perdida novamente em jogo através de trabalho em equipe.
  • 67. Scrum • Scrum é um esqueleto de processo que contém grupos de práticas e papéis pré-definidos. Os principais papéis são: • ScrumMaster, que mantém os processos (normalmente no lugar de um gerente de projeto); • Proprietário do Produto, ou Product Owner, que representa os stakeholders e o negócio; • a Equipe, ou Team, um grupo multifuncional com cerca de 7 pessoas e que fazem a análise, projeto, implementação, teste etc. 67
  • 68. Programação eXtrema XP • Metodologia de desenvolvimento de software aperfeiçoada nos últimos 5 anos. • Ganhou notoriedade a partir da OOPSLA’2000. • Nome principal: Kent Beck • Também importante: Ward Cunningham
  • 69. A Quem se Destina os Métodos Ágeis • Grupos de 2 a 10 programadores • Projetos de 1 a 36 meses (calendário) • De 1000 a 250 000 linhas de código
  • 70. Características Comuns dos Métodos Ágeis • Coloca o foco • Na entrega freqüente de sub-versões do software [funcionando] para o cliente. • Nos seres humanos que desenvolvem o software. • Retira o foco de • Processos rígidos e burocratizados. • Documentações e contratos detalhados. • Ferramentas que são usadas pelos seres humanos.
  • 71. Como escolher um Modelo para o Meu Processo de Desenvolvimento de Software 71
  • 72. Para escolha de um Modelo de Processo de Software: •natureza do projeto e da aplicação •métodos e ferramentas a serem usados •controles e produtos que precisam ser entregues 72
  • 73. Grupos e PodCast, Vídeos e textos • O Manifesto Ágil (4 alunos): • http://www.manifestoagil.com.br/ (texto) • https://hipsters.tech/agilidade-hipsters-05/ • http://www.agilcoop.org.br/files/Agilcast01-intro.mp3 • Programação Extrema (4 alunos): • http://www.fernandocosta.com.br/2007/10/08/extreme-programa-xp- programacao-extrema/ (texto) • http://www.agilcoop.org.br/files/Agilcast02-praticasXP.mp3 • https://www.youtube.com/watch?v=UipebTN25Hc • SCRUM (4 alunos): • http://gc.blog.br/2008/05/27/como-estamos-indo-com-a-adocao-de-scrum- na-globocom/ (texto) • https://hipsters.tech/scrum-do-zero-ao-sprint-hipsters-54/ • https://www.youtube.com/watch?v=vg1S1WYZa6o Modelos de Processos 73
  • 74. Grupos e PodCast, Vídeos e textos • Métodos ágeis e documentação de software / Product Owner(4 alunos) • https://www.youtube.com/watch?v=3Smbhnmue7Y • https://www.youtube.com/watch?v=7lhnYbmovb4 • https://www.youtube.com/watch?v=72ilcGqfvjU • Kanban (4 alunos): • https://www.culturaagil.com.br/kanban-do-inicio-ao-fim/ (texto) • https://www.youtube.com/watch?v=LJOiFRsp0Z8 • Padrões para Introduzir Novas Ideias (4 alunos): • https://www.youtube.com/watch?v=8Kjv6gI8kJQ (1/3) • https://www.youtube.com/watch?v=wXBiHK0763Y (2/3) • https://www.youtube.com/watch?v=MsC5bKlpEno (3/3) • http://www.agilcoop.org.br/files/Agilcast11- Padroes%20para%20introduzir%20novas%20ideias.mp3 Modelos de Processos 74
  • 75. Para Entregar na Próxima aula (07/12/2017) • Cada grupo deverá fazer uma apresentação em Power Point sobre os temas que foram passados pelos links. • A apresentação deverá ter a duração de no máximo 10 minutos. Modelos de Processos 75
  • 76. Exercício • Você e mais 4 sócios resolveram criar uma empresa de desenvolvimento de Software e você ficou responsável por definir algumas áreas da empresa. Cada questão abaixo será a sua parte para a criação desta empresa. 1) Defina uma abordagem para o desenvolvimento de software que compreenda os benefícios dos modelos de desenvolvimento clássicos (Cascata, prototipação e Espiral). Inclua as características de outros modelos se achar necessários. 2) Defina uma abordagem para fazer a analise da viabilidade de sistemas a serem desenvolvidos. Esta abordagem consiste de uma relação das atividades em ordem cronológica para analisar a viabilidade de qualquer sistema que for desenvolvido pela empresa. 3) O seu primeiro sistema a ser desenvolvido pela nova empresa de desenvolvimento de software será para a Farmácia “Pague Pouco”. Eles querem informatizar o sistema de vendas e controle de estoque, desejam armazenar a seguinte informação: qual vendedor vendeu qual produto para qual cliente. Relate, de acordo com o modelo de software criado na primeira questão e com a abordagem de analise da segunda, quais a as atividades deverão ser realizadas para o desenvolvimento do sistema da Farmácia “Pague Pouco”. 76
  • 77. Para a Prova, veja os capítulos seguintes: • Livro de Engenharia de Software, autor: Ian Sommerville: • 8º edição – Capítulo 4.1, 4.2, 4.3 e 4.4 ou • 9ª edição – Capítulo 2.1, 2.2 e 2.4 • Livro de Engenharia de Software, autor: Roger Pressman: • 6ª edição – Capítulo 3.1, 3.2, 3.4 e 3.6 Modelos de Processos 77