1. TCC I – IES
Ciência da Computação
Orientador: Cristiano Schwening
Coorientador: Patryck Ramos Martins
2. TCC I – IES
Hezio Fernandes
Junior Java Web Developer at Digitro
br.linkedin.com/pub/hézio-fernandes/46/627/b39
William Melchior Jablonski
Quality Assurance Specialist at Flexy
br.linkedin.com/in/williamjablonski/
3. Aplicação do desenvolvimento
orientado a testes e comportamento em
empresas startup como pratica para redução
de custos de manutenção e evolução do
software.
4. O número de empreendedores no
Brasil cresceu 44% nos últimos 10 anos.
Fonte: http://g1.globo.com/jornal-hoje/noticia/2013/03/numero-de-empreendedores-do-pais-cresce-mais-de-40-nos-ultimos-anos.html
48% das empresas brasileiras fecham as portas
depois de três anos.
Fonte: http://portal2.pr.sebrae.com.br/PortalInternet/Noticia/ci.48%25-das-empresas-brasileiras-fecham-as-portas-depois-de-tr%C3%AAs-anos.print
O 4° maior motivo de falência é o descontrole do
fluxo de caixa das empresas.
Fonte: http://economia.uol.com.br/ultimas-noticias/redacao/2012/04/04/sebrae-lista-os-6-maiores-erros-de-quem-vai-a-falencia-saiba-como-evita-
los.jhtm
5. Apresentar o conceito e um exemplo do
desenvolvimento de software utilizando práticas de
TDD, ATDD e BDD em uma empresa Startup e seus
benefícios.
6. TDD, ATDD, BDD, Startup, o que são?
Test Driven Development
Accepted Test Driven Development
Behavior Driven Development
7. Apresentar os impactos da falta de qualidade no software como
motivação para o investimento em qualidade, testes e mapeamento das
funcionalidades do software no código fonte.
Apresentar brevemente alguns tipos de processo de desenvolvimento de
software.
Apresentar e aplicar o conceito de desenvolvimento orientado a teste
de unidade (TDD) entendendo o papel no processo de desenvolvimento e
evolução do software.
Apresentar e aplicar o conceito de desenvolvimento orientado a teste
de aceite (ATDD) e entendendo o papel no processo de desenvolvimento e
evolução do software.
Apresentar e aplicar o conceito de desenvolvimento orientado a
comportamento (BDD) e entendendo o papel no processo de
desenvolvimento e evolução do software.
Apresentar o conceito de Startup.
Avaliar o retorno do investimento da utilização das metodologias ágeis
e técnicas de TDD, ATDD e BDD em empresas Startup de desenvolvimento
de software.
8. A implantação das técnicas de desenvolvimento
ágil tende a ter um aumento da qualidade.
A utilização das técnicas de desenvolvimento ágil
tende a ter redução de custos com a manutenção do
software.
Com a aplicação das técnicas de desenvolvimento
ágil é possível mapear o atendimento dos requisitos
acordados com o cliente.
O uso das técnicas de desenvolvimento ágil tende
a trazer mais segurança à equipe na manutenção do
código legado.
9. “Conjunto de características que devem ser alcançadas em um
determinado grau para que o produto atenda às necessidades
de seus usuários.” Rocha (2001)
“Totalidade de características de uma entidade que lhe confere
a capacidade de satisfazer a necessidades explícitas e
implícitas.” NBR ISO (1994)
Conformidade a (Pressman):
• Requisitos funcionais e de desempenho.
• Padrões e convenções de desenvolvimento pré-estabelecidos.
• Atributos implícitos que todo software desenvolvido
profissionalmente deve possuir.
Fonte: http://www.ic.unicamp.br/~ranido/mc626/Qualidade.pdf
10. O impacto pode ser categorizado:
- Financeiro;
- Humano;
- Moral.
11. A Explosão do Ariane 5
4 de junho de 1996 o foguete explodiu apenas quarenta segundos
após sua decolagem. O foguete destruído e sua carga foi avaliada em
US $ 500 milhões. Descobriu-se que a causa do fracasso foi um erro
de conversão numérica do software.
Fonte:http://www.ima.umn.edu/~arnold/disasters/ariane.html
12. Em 2009, um avião da Air France saído do rio de janeiro com destino a Paris
mergulhou no mar e matou mata 228 pessoas após sensor de velocidade congelar e o
alarme não soa assim não advertindo a tripulação da situação. Uma situação não prevista.
Fonte: http://news.nationalpost.com/2012/07/05/air-france-flight-to-paris-from-rio-crashed-because-of-pilot-error-faulty-sensors-report/
13. Uma atualização lançada em abril de 2013 pela Microsoft, está causando
problemas aos usuários do Windows 7. Uma falha na atualização pode impedir a
inicialização do sistema.
Fonte: http://veja.abril.com.br/blog/tech/curiosidades/falha-em-atualizacao-afeta-usuarios-do-windows-7/
14. Projetos acima do tempo e orçamento.
Baixa qualidade.
Não atendia os requisitos
Falta de compatibilidade.
15. Em 1968, especialistas se reúnem na
Alemanha, para discutir os problemas
relacionados com o desenvolvimento de
software.
Fonte: https://sites.google.com/site/labesw/disciplinas/ENG
16. Derivado de modelos existentes em outras engenharias
Sua estrutura é composta por várias etapas que são executadas de forma
sistemática e sequencial.
Fonte: https://sites.google.com/site/labesw/disciplinas/ENG
17. Pontos Negativos:
Burocrático.
Não funciona bem com mudanças.
Apenas o gerente tem uma visão geral do
andamento do projeto.
Entendimento dos requisitos pode ser
falho e causar erros em cascata.
Tempo de entrega.
18. Surgiu de uma reação contra métodos
ditos "pesados", caracterizados por uma
pesada regulamentação, documentação e
micro gerenciamento.
- Burocrático;
- Lento;
- Contraditório a forma usual com que os
engenheiros de software sempre
realizaram trabalho com eficiência.
25. Vatagens
- Processo de desenvolvimento simples e
incremental;
- Código automaticamente testável;
- Testes constantes;
- Melhor compreensão dos requisitos.
Desvantagem
- Definições de testes não são isentas de erros;
- Manutenção dos testes;
- Limitação financeira e de tempo;
- Não rastreavel as necessidades do cliente.
26. Nesta técnica, os testes de aceitação são criados de maneira colaborativa e descritos em
uma linguagem comum a todos os membros da equipe. Dessa forma, toda a equipe
compartilha o mesmo entendimento do que deve ser feito, as restrições e as definições de
"Pronto".
Essa nova abordagem traz os benefícios do TDD incorporando os critérios do cliente,
dessa forma, uma funcionalidade só estaria completa quando além das necessidades
técnicas, ela também implementasse todos os testes que comprovam que a
implementação está se comportando como o esperado.
ATDD tem por objetivo capturar os critérios de aceitação para as funcionalidades em
desenvolvimento.
”Em complemento à prática de TDD, que visa garantir que as funcionalidades bases da
aplicação sejam desenvolvidas em conformidade com a arquitetura e projeto, a prática de
ATDD tende a prover feedback sobre o quão perto da conclusão da tarefa a equipe de
desenvolvimento se encontra, demonstrando uma clara visão do progresso.” NADALETE
(2010).
28. Vantagens
Da uma visão clara para a equipe do
resultado esperado.
È possivel acompanhar melhor a evolução
do software.
Desvantagens
Como o TDD é tecnico e dificil de rastrear
as histórias e necessidades do cliente.
29. Uma técnica de desenvolvimento agil que
visa integrar regras de negocio com
linguagem de programação.
31. Vantagens
- Altamente rastreável (código, testes,
requisitos);
- Foco nos requisitos;
- Mapeamento do status atual das
funcionalidades durante a evolução do
sistema. No caso de uma funcionalidade
nova se sobrepõem ou impactar em outra
funcionalidade que já existia no sistema.
33. “Startup são pequenas empresas montadas em casa ou em faculdades
e que recebem pequenos aportes de capital. Elas exploram áreas
inovadoras de determinado setor (mais comumente a de tecnologia),
possuindo uma aceleração de crescimento muito alta já nos primeiros
meses de existência em virtude de investimentos feitos por fundos de
investimento especializados” Longhi (2011)
- Orçamento apertado;
- Foco em resultado rápido.
34. Dentre os beneficios já apresentados para este contexto se
destacam:
TDD – Aumento da qualidade do código, efetividade do
código. (só é desenvolvido o que foi vendido)
ATDD – Está definido desde o inicio do desenvolvimento o
conceito de pronto da entrega, ou seja, será desenvolvido
somente o necessário e no menor tempo possivel (foco na
entrega).
BDD – Garantia do entendimento da necessidade do cliente.
Garantia que as funcionalidades ja existente no
sistema vão continuar funcionando nesta nova entrega.
35. Um artigo apresentado pelo Dr. David Rico em
2008 tendo como base um estudo de caso de 16
empresas concluiu que o custo médio de implantação e
manutenção da metodologia agil ou tradicional é o
mesmo, porem o agil apresenta um aumento de até
200% na qualidade do produto, assim reduzindo
drasticamente o custo do retrabalho. Diminuindo o
retrabalho aumenta-se a produtividade e
consequentemente o lucro da empresa. (entregas
frequentes e maior fluxo de caixa)
Fonte: http://davidfrico.com/rico08b.pdf
36. BAUER, F. L. Scientific Affairs Division. NATO SCIENCE COMMITTEE, Garmisch, Germany, 1969. p.231.
BECK, K., Extreme Programming Explained: Embrace Change, 1st Edition, Addison-Wesley, 1999.
BECK, Kent et al. Manifesto ágil., 2001.
BISSI, Wilson. Scrum - Metodologia de desenvolvimento ágil. Campo Digital, Campo Mourão, V. 2, n. 1,
BOSSI P., ExtremeProgramming Applied: a case study in the private banking domain, January 2003, OOP2003
Conference, Munich (Germany),
DORNELAS, José Carlos Assis, 1971. Empreendedorismo: Transformando ideias em negócios / José Carlos Assis
Dornelas. – 3.ed. – Rio de Janeiro: Elsevier, 2008.
FOWLER, M., BECK, K., Manifesto for Agile Software Development,
GONÇALVES, André Silva. Gestão de Projetos em Pequenas e Médias Empresas: Principais dificuldades. 2009
GITAHY, Yuri. O que é uma start up?. Empreendedor Online – Empreendedorismo na Internet e negócios online,2011
HERMANSON, Boris. O que é uma start up? São Paulo: Mundo Sebrae,2011
HIGHSMITH, Jim, Agile Project Management, Creating innovative products, AddisonWesley, 2004.
JEFFRIES, Ron, et al.What is Extreme Programming?, 2012.
JOHNSON, D. What is innovation and entrepreneurship? Lessons for larger Organizations. Industrial and Commercial
Training. Press, v. 33, n. 4, 2001.
LONGHI, Fúlvio. A história da revolução das startups, Imasters, 2011.
MARÇAL, Ana Sofia. Estendendo o SCRUM segundo as áreas de processo de gerenciamento de projetos do CMMI.
2007
MYERS, Glenford J., John Wiley & Sons, The Art of Software Testing, 2, Nova Jérsei: 2004.
PEREIRA, Paulo. Entendendo o Scrum para Gerenciar Projetos de Forma Ágil. Mundo PM. 2007.
PRESSMAN, R. S., Engenharia de Software, 5ª Ed., Makron Books, 2002.
SOARES, Michel dos Santos. Comparação entre metodologias ágeis e tradicionais para desenvolvimento de software.
SOMMERVILLE, Ian. Engenharia de Software. 6ed. São Paulo: Prentice Hall, 2003.
STEFFEN, Juliana Berossa. O que são essas tais de metodologias Ágeis?. [S.l.]: IBM, 2012.
TROTT, P. Innovation management and new product development. 2.ed. London: Prentice Hall, 2002.
VIEGA, J. and McManus, J. (2000). The importance of software testing.
WELLS, D., Extreme Programming: A gentle introduction.
37. .
Fases da
Pesquisa
Ação Escala temporal
1 Estruturar Projeto de Pesquisa TCCI Abril/2013
2 Validar Projeto de Pesquisa TCCI Abril/2013
3 Pesquisa Bibliográfica e iniciação teórica do TCCI Abril/2013
4 Desenvolvimento da Pesquisa TCCI Maio/2013
5 Entrega da Pesquisa TCCI Maio/2013
6 Apresentação do TCCI a banca Junho/2013
7 Complementar os temas Startup e retorno de investimento na
implantação de técnicas ágeis
Junho/2013
8 Desenvolver melhorias no TCCI Julho/2013 -
Setembro/2013
9 Desenvolver o protótipo para exemplificação da aplicação das técnicas
ágeis
Julho/2013 -
Setembro/2013
10 Desenvolver uma funcionalidade utilizando o TDD e documentar este
desenvolvimento para posteriormente ser apresentado.
Julho/2013 -
Setembro/2013
11 Desenvolver uma funcionalidade utilizando o ATDD e documentar este
desenvolvimento para posteriormente ser apresentado.
Julho/2013 -
Setembro/2013
12 Desenvolver uma funcionalidade utilizando o BDD e documentar este
desenvolvimento para posteriormente ser apresentado.
Julho/2013 -
Setembro/2013
13 Elaborar apresentação das praticas de desenvolvimento Julho/2013 -
Setembro/2013
14 Entrega da Pesquisa TCCII Julho/2013 -
Setembro/2013
15 Apresentação do TCCII para a banca Julho/2013 -
Setembro/2013