Your SlideShare is downloading. ×
Apresentação TCC I - IES/SC 2013
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Apresentação TCC I - IES/SC 2013

615
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
615
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. TCC I – IESCiência da ComputaçãoOrientador: Cristiano SchweningCoorientador: Patryck Ramos Martins
  • 2. TCC I – IESHezio FernandesJunior Java Web Developer at Digitrobr.linkedin.com/pub/hézio-fernandes/46/627/b39William Melchior JablonskiQuality Assurance Specialist at Flexybr.linkedin.com/in/williamjablonski/
  • 3. Aplicação do desenvolvimentoorientado a testes e comportamento emempresas startup como pratica para reduçãode custos de manutenção e evolução dosoftware.
  • 4.  O número de empreendedores noBrasil 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 portasdepois 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 dofluxo 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 dodesenvolvimento de software utilizando práticas deTDD, ATDD e BDD em uma empresa Startup e seusbenefícios.
  • 6. TDD, ATDD, BDD, Startup, o que são?Test Driven DevelopmentAccepted Test Driven DevelopmentBehavior Driven Development
  • 7.  Apresentar os impactos da falta de qualidade no software comomotivação para o investimento em qualidade, testes e mapeamento dasfuncionalidades do software no código fonte. Apresentar brevemente alguns tipos de processo de desenvolvimento desoftware. Apresentar e aplicar o conceito de desenvolvimento orientado a testede unidade (TDD) entendendo o papel no processo de desenvolvimento eevolução do software. Apresentar e aplicar o conceito de desenvolvimento orientado a testede aceite (ATDD) e entendendo o papel no processo de desenvolvimento eevolução do software. Apresentar e aplicar o conceito de desenvolvimento orientado acomportamento (BDD) e entendendo o papel no processo dedesenvolvimento e evolução do software. Apresentar o conceito de Startup. Avaliar o retorno do investimento da utilização das metodologias ágeise técnicas de TDD, ATDD e BDD em empresas Startup de desenvolvimentode 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 ágiltende a ter redução de custos com a manutenção dosoftware. Com a aplicação das técnicas de desenvolvimentoágil é possível mapear o atendimento dos requisitosacordados com o cliente. O uso das técnicas de desenvolvimento ágil tendea trazer mais segurança à equipe na manutenção docódigo legado.
  • 9.  “Conjunto de características que devem ser alcançadas em umdeterminado grau para que o produto atenda às necessidadesde seus usuários.” Rocha (2001) “Totalidade de características de uma entidade que lhe conferea capacidade de satisfazer a necessidades explícitas eimplí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 desenvolvidoprofissionalmente 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 54 de junho de 1996 o foguete explodiu apenas quarenta segundosapós sua decolagem. O foguete destruído e sua carga foi avaliada emUS $ 500 milhões. Descobriu-se que a causa do fracasso foi um errode 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 Parismergulhou no mar e matou mata 228 pessoas após sensor de velocidade congelar e oalarme 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á causandoproblemas aos usuários do Windows 7. Uma falha na atualização pode impedir ainicializaçã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 naAlemanha, para discutir os problemasrelacionados com o desenvolvimento desoftware.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 formasistemá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 doandamento do projeto.Entendimento dos requisitos pode serfalho e causar erros em cascata.Tempo de entrega.
  • 18. Surgiu de uma reação contra métodosditos "pesados", caracterizados por umapesada regulamentação, documentação emicro gerenciamento.- Burocrático;- Lento;- Contraditório a forma usual com que osengenheiros de software semprerealizaram trabalho com eficiência.
  • 19. 1. Comunicação;2. Simplicidade;3. Feedback;4. Coragem.
  • 20. Fonte: http://www.capgemini.com/sites/default/files/technology-blog/files/2011/05/Grafx-Scrum-Sprint.png
  • 21. Fonte: http://www.semeru.com.br/blog/wp-content/uploads/2012/09/xp.png
  • 22. Fonte: http://www.devmedia.com.br/imagens/javamagazine/mpjuiiujfig01.jpgATDDTDD
  • 23. Metodologia de desenvolvimento desoftware com foco em simplicidade equalidade.
  • 24. Fonte: http://reddevnews.com/~/media/ECG/visualstudiomagazine/Images/2007/11/listingsID_148_0711_rdn_tb%20gif.ashx
  • 25. Vatagens- Processo de desenvolvimento simples eincremental;- 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 emuma linguagem comum a todos os membros da equipe. Dessa forma, toda a equipecompartilha 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 necessidadestécnicas, ela também implementasse todos os testes que comprovam que aimplementação está se comportando como o esperado. ATDD tem por objetivo capturar os critérios de aceitação para as funcionalidades emdesenvolvimento.”Em complemento à prática de TDD, que visa garantir que as funcionalidades bases daaplicação sejam desenvolvidas em conformidade com a arquitetura e projeto, a prática deATDD tende a prover feedback sobre o quão perto da conclusão da tarefa a equipe dedesenvolvimento se encontra, demonstrando uma clara visão do progresso.” NADALETE(2010).
  • 27. Fonte: http://tasafo.files.wordpress.com/2010/01/dirigindo-o-desenvolvimento-com-testes-atdd-e-tdd.pdf
  • 28. VantagensDa uma visão clara para a equipe doresultado esperado.È possivel acompanhar melhor a evoluçãodo software.Desvantagens Como o TDD é tecnico e dificil de rastrearas histórias e necessidades do cliente.
  • 29. Uma técnica de desenvolvimento agil quevisa integrar regras de negocio comlinguagem de programação.
  • 30. Fonte: http://sobrecodigo.com/wp-content/uploads/2011/03/tdd_bdd.png
  • 31. Vantagens- Altamente rastreável (código, testes,requisitos);- Foco nos requisitos;- Mapeamento do status atual dasfuncionalidades durante a evolução dosistema. No caso de uma funcionalidadenova se sobrepõem ou impactar em outrafuncionalidade que já existia no sistema.
  • 32. Desvantagens- Tempo de desenvolvimento do BDD.- Tempo de manutenção (evolutiva).
  • 33. “Startup são pequenas empresas montadas em casa ou em faculdadese que recebem pequenos aportes de capital. Elas exploram áreasinovadoras de determinado setor (mais comumente a de tecnologia),possuindo uma aceleração de crescimento muito alta já nos primeirosmeses de existência em virtude de investimentos feitos por fundos deinvestimento especializados” Longhi (2011)- Orçamento apertado;- Foco em resultado rápido.
  • 34. Dentre os beneficios já apresentados para este contexto sedestacam:TDD – Aumento da qualidade do código, efetividade docódigo. (só é desenvolvido o que foi vendido)ATDD – Está definido desde o inicio do desenvolvimento oconceito de pronto da entrega, ou seja, será desenvolvidosomente o necessário e no menor tempo possivel (foco naentrega).BDD – Garantia do entendimento da necessidade do cliente.Garantia que as funcionalidades ja existente nosistema vão continuar funcionando nesta nova entrega.
  • 35. Um artigo apresentado pelo Dr. David Rico em2008 tendo como base um estudo de caso de 16empresas concluiu que o custo médio de implantação emanutenção da metodologia agil ou tradicional é omesmo, porem o agil apresenta um aumento de até200% na qualidade do produto, assim reduzindodrasticamente o custo do retrabalho. Diminuindo oretrabalho aumenta-se a produtividade econsequentemente o lucro da empresa. (entregasfrequentes 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, OOP2003Conference, Munich (Germany),DORNELAS, José Carlos Assis, 1971. Empreendedorismo: Transformando ideias em negócios / José Carlos AssisDornelas. – 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. 2009GITAHY, Yuri. O que é uma start up?. Empreendedor Online – Empreendedorismo na Internet e negócios online,2011HERMANSON, Boris. O que é uma start up? São Paulo: Mundo Sebrae,2011HIGHSMITH, 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 CommercialTraining. 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.2007MYERS, 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 daPesquisaAção Escala temporal1 Estruturar Projeto de Pesquisa TCCI Abril/20132 Validar Projeto de Pesquisa TCCI Abril/20133 Pesquisa Bibliográfica e iniciação teórica do TCCI Abril/20134 Desenvolvimento da Pesquisa TCCI Maio/20135 Entrega da Pesquisa TCCI Maio/20136 Apresentação do TCCI a banca Junho/20137 Complementar os temas Startup e retorno de investimento naimplantação de técnicas ágeisJunho/20138 Desenvolver melhorias no TCCI Julho/2013 -Setembro/20139 Desenvolver o protótipo para exemplificação da aplicação das técnicaságeisJulho/2013 -Setembro/201310 Desenvolver uma funcionalidade utilizando o TDD e documentar estedesenvolvimento para posteriormente ser apresentado.Julho/2013 -Setembro/201311 Desenvolver uma funcionalidade utilizando o ATDD e documentar estedesenvolvimento para posteriormente ser apresentado.Julho/2013 -Setembro/201312 Desenvolver uma funcionalidade utilizando o BDD e documentar estedesenvolvimento para posteriormente ser apresentado.Julho/2013 -Setembro/201313 Elaborar apresentação das praticas de desenvolvimento Julho/2013 -Setembro/201314 Entrega da Pesquisa TCCII Julho/2013 -Setembro/201315 Apresentação do TCCII para a banca Julho/2013 -Setembro/2013
  • 38. Apresentação:http://prezi.com/cj8il3sbbgwy/http://www.4shared.com/file/jA5t4K3x/TCCI-williamHezio-IES-2013.htmlTrabalho teórico:http://www.4shared.com/file/7waKTQl1/TCCI-WilliamHezio-IES.html

×