Você está na página 1de 27

Processos de

Desenvolvimento de
Software
Prof Valério Brusamolin
Objetivos

 Compreender o que é um processo de


desenvolvimento de software;
 Identificar os principais processos de
desenvolvimento de software;
 Distinguir as deficiências e vantagens dos principais
processos de desenvolvimento de software;
 Justificar a escolha de um processo de
desenvolvimento de software para um projeto.
Sumário

 Introdução
 Processos de Software
 Modelos de Processos de Desenvolvimento
de Software
 Exercícios de Revisão
Introdução

 Grande número de fracassos nas décadas


de 60 e 70
 Em resposta, adoção de técnicas de
engenharia e gerenciamento de projetos

(Sommerville, 2011)
Processo de Software

 Conjunto de atividades, métodos, práticas e


transformações que guiam pessoas na produção
de software (PRESSMAN, 2006)
 Conjunto de atividades para especificar,
desenhar, implementar e testar software
(SOMMERVILLE, 2011)
 Quem faz, como faz, quando faz
Elementos que compõem um
Processo de Software
0..*

Processo
Nome, Propósito,
Resultado(s)

1 0..1

1..*

Atividade
Nome

1..*

Tarefa
Processos de Implementação de Software
Segundo a ISO/IEC 12207

 Análise de Requisitos
 Projeto Arquitetural
 Projeto Detalhado
 Construção
 Integração
 Teste de qualificação

Fonte: ISO/IEC 12207 (2008)


O modelo em cascata
Análise e
especificação de
Requisitos

Projeto

Implementação
e teste de
unidade

Testes
Entrega e
implantação
Limitações do modelo em cascata
 Confirmação tardia da resolução
de riscos críticos
 Mede o progresso por meio de
Análise de
Requisitos
produtos que dão uma previsão
Projeto
de conclusão pobre
Codificação e Testes de
Programa
 Retarda e agrega integração com
testes
Integração de Subsistemas
 Impossibilita entrega a curto
Teste de Sistema prazo de módulos
 Freqüentemente resulta em
iterações grandes e não planejadas

Fonte: (RUP, 2014)


O modelo incremental
O modelo Espiral

Fonte: (Boehm, 1988)


Prototipação

 Baseado no desenvolvimento de
um protótipo
 com base no conhecimento dos
requisitos iniciais para o sistema
Fonte: (PRESSMAN, 2011)
 desenvolvimento é feito obedecendo à
realização das diferentes etapas
 análise de requisitos, o projeto, a
codificação e os testes
 não necessariamente estas etapas devem
ser realizadas de modo muito explícito ou
formal
Prototipação
 Protótipo pode ser oferecido ao cliente em diferentes formas
 protótipo em papel
 modelo executável em PC
 retratando a interface homem-máquina capacitando o cliente a compreender a
forma de interação com o software;
 protótipo de trabalho
 que implemente um subconjunto dos requisitos indicados
 programa existente (pacote)
 que permita representar todas ou parte das funções desejadas para o software a
construir
Modelo Iterativo
 Modelo concebido com base nas limitações
do modelo em cascata, combinando as
vantagens deste modelo com as do modelo
Prototipação
 idéia principal é a de que um sistema deve ser
desenvolvido de forma incremental
 cada incremento vai adicionando ao sistema novas
capacidades funcionais
 até a obtenção do sistema final
 a cada passo realizado, modificações podem ser introduzidas
Modelo iterativo

0 1 N
•••
Análise Análise
Análise
Projeto Projeto
Projeto

Codificação Codificação Codificação


Modelo iterativo x incremental
Desenvolvimento
incremental

Desenvolvimento
iterativo
O RUP

Fonte: (RUP, 2014)


Programação Extrema (XP)

Nova história do usuário,


Plano de Velocidade do Projeto
Nova
Release Histórias do Funcionalidade
Usuário Tarefas inconclusas

Conserto de Última
Próxima Planejamento da Desenvolvimento Bug Versão
Iteração Velocidade Iteração
Plano da
do Projeto Iteração

Dia a Dia
Falhas nos
Testes de Aceitação
Bugs

Fonte: (WELLS, 2014)


Scrum

Fonte: (VIEIRA, 2014)


E a UML?

 UML = Unified Modelling Language


Linguagem Unificada de Modelagem
 É uma linguagem de representação gráfica, não
se trata de uma metodologia
Exercício de Revisão 1

 Qual seria o processo de desenvolvimento de software adequado


quando o usuário não sabe explicitar o que deseja?
Exercício de Revisão 2

 Qual seria o processo de desenvolvimento


adequado quando o cliente deseja ampla
documentação?
Exercício de Revisão 3

 Qual seria o processo de desenvolvimento


adequado quando o usuário não deseja receber
documentação do sistema?
Conclusão
 Existem diversos processos de desenvolvimento
de software
 Alguns favorecem a velocidade de
desenvolvimento, outros o atendimento das
necessidades do usuário, e também tem os que
produzem mais documentação
 Cabe à organização ou ao gerente escolher o
mais adequado às características do projeto
Referências

 BOEHM, B. W. A spiral model of software development and enhancement.


IEEE Computer, may 1988
 CHRISTENSEN, M.J., THAYER, R.H. The Project Manager’s Guide to Software
Engineering Best Practices, Wiley-IEEE Computer Society Press, 2002.
 ISO/IEC 12207 (2008). Systems and Software Engineering 7 Software Life
Cycle Process. International Organization for Standardization and the
International Electrotechnical Commission. Geneva, Switzerland.
 KROLL, P.; KRUCHTEN, P. The Rational Unified Process Made Easy: A
Practitioner's Guide to the RUP. Amazon, ebook Kindle, 2005.
 OPENUP. Portal do Processo Open UP. Disponível em
http://epf.eclipse.org/wikis/openup/, acessado em 10/12/2014
 PRESSMAN, R.S. Engenharia de Software, Rio de Janeiro: McGraw Hill, Tradução da 7ª
edição, 2011.
 PRESSMAN, R.S. Software Engineering: A Practitioner’s Approach, McGraw Hill, 6th
edition, 2005.
 PFLEEGER, S.L. Engenharia de Software: Teoria e Prática, São Paulo: Prentice Hall, 2ª
edição, 2004.
 RUP. Rational unified process. Disponível em
http://www.wthreex.com/rup/v711_ptbr/index.htm, acesso em 10/12/2014
 SCHWABER, K. Agile Project Management with Scrum. Microsoft
Press, 2004.
 SOMMERVILLE, I. Engenharia de Software, São Paulo: Addison-Wesley, 8ª edição,
2011.
 VIEIRA, D. Scrum: A metodologia ágil explicada de uma forma definitiva.
http://www.mindmaster.com.br/scrum/#sthash.DCTaGv7V.dpuf, acesso em 10/12/2014.
 WELLS, D. Extreme programming: a gentle introduction. Disponível em
http://www.extremeprogramming.org/, acesso em 11/12/2014.

Você também pode gostar