Palestra falando sobre métricas de código, como linhas de código, complexidade ciclomática, coesão e acomplamento. Também fala dos tipos de visualizações existentes e das ferramentas que existem para extração e visualização de métricas.
O documento discute métricas e visualização de código. Ele explica o que são métricas de código e como podem ser usadas para avaliar a qualidade e legibilidade do código. Ele também lista vários tipos de métricas e ferramentas para análise de código, além de fornecer exemplos de escalas de medição para métricas como LOC, AMLOC e ACCM.
O documento descreve a ferramenta Kalibro, que fornece resumos concisos e de fácil entendimento sobre a qualidade do código-fonte analisado. A Kalibro integra-se com ferramentas de métricas de código existentes para configurar intervalos de avaliação e associar notas, comentários e recomendações. O documento também discute o projeto Mezuro, um serviço web que usará a Kalibro e outras ferramentas para fornecer análises de código-fonte online.
qualidade de código: boas práticas, princípios e padrõesedgarddavidson.com
O documento discute boas práticas de qualidade de código, incluindo princípios como baixo acoplamento e alta coesão. Também aborda padrões de projeto orientado a objetos e códigos cheirosos, além de técnicas como teste unitário e refatoração para melhorar a qualidade do código.
O documento discute métricas e modelos para estimativa de esforço em projetos de software. As 3 principais ideias são: 1) Métricas medem atributos de processo e produto para avaliar qualidade, produtividade e gerenciar projetos. 2) Pontos de função medem funcionalidade em vez de linhas de código. 3) Modelos como COCOMO estimam esforço baseado em métricas como loc ou pontos de função e fatores do projeto.
Qualidade no desenvolvimento de softwareDennes Torres
O documento apresenta diferentes técnicas para melhorar a qualidade do desenvolvimento de software, incluindo testes unitários, code coverage, code metrics, code analysis, layer diagram e performance explorer. Cada técnica é demonstrada através de exemplos práticos.
O documento discute o modelo COCOMO II para estimativas de projetos de software, incluindo a evolução do COCOMO original de 1981 para o COCOMO II, que leva em conta fatores como ciclos de vida interativos e suporte a COTS. Ele também explica como o COCOMO II calcula esforço, prazo e tamanho da equipe usando fórmulas paramétricas que consideram o tamanho funcional do projeto e fatores multiplicadores de esforço.
Aplicação de Testes Caixa Branca / Preta. Métodos dos caminhos básicos ou cri...Stanley Araújo
Considerando os níveis de teste previstos na estratégia global (unidades, integração, validação, sistema e aceitação), defina, em cada um desses níveis, se se aplicam testes de caixa branca e/ou caixa-preta.
Em relação aos testes de caixa-branca, discuta porquê o método dos caminhos básicos é vantajoso sobre quaisquer dos critérios Meyers.
O documento discute métricas e visualização de código. Ele explica o que são métricas de código e como podem ser usadas para avaliar a qualidade e legibilidade do código. Ele também lista vários tipos de métricas e ferramentas para análise de código, além de fornecer exemplos de escalas de medição para métricas como LOC, AMLOC e ACCM.
O documento descreve a ferramenta Kalibro, que fornece resumos concisos e de fácil entendimento sobre a qualidade do código-fonte analisado. A Kalibro integra-se com ferramentas de métricas de código existentes para configurar intervalos de avaliação e associar notas, comentários e recomendações. O documento também discute o projeto Mezuro, um serviço web que usará a Kalibro e outras ferramentas para fornecer análises de código-fonte online.
qualidade de código: boas práticas, princípios e padrõesedgarddavidson.com
O documento discute boas práticas de qualidade de código, incluindo princípios como baixo acoplamento e alta coesão. Também aborda padrões de projeto orientado a objetos e códigos cheirosos, além de técnicas como teste unitário e refatoração para melhorar a qualidade do código.
O documento discute métricas e modelos para estimativa de esforço em projetos de software. As 3 principais ideias são: 1) Métricas medem atributos de processo e produto para avaliar qualidade, produtividade e gerenciar projetos. 2) Pontos de função medem funcionalidade em vez de linhas de código. 3) Modelos como COCOMO estimam esforço baseado em métricas como loc ou pontos de função e fatores do projeto.
Qualidade no desenvolvimento de softwareDennes Torres
O documento apresenta diferentes técnicas para melhorar a qualidade do desenvolvimento de software, incluindo testes unitários, code coverage, code metrics, code analysis, layer diagram e performance explorer. Cada técnica é demonstrada através de exemplos práticos.
O documento discute o modelo COCOMO II para estimativas de projetos de software, incluindo a evolução do COCOMO original de 1981 para o COCOMO II, que leva em conta fatores como ciclos de vida interativos e suporte a COTS. Ele também explica como o COCOMO II calcula esforço, prazo e tamanho da equipe usando fórmulas paramétricas que consideram o tamanho funcional do projeto e fatores multiplicadores de esforço.
Aplicação de Testes Caixa Branca / Preta. Métodos dos caminhos básicos ou cri...Stanley Araújo
Considerando os níveis de teste previstos na estratégia global (unidades, integração, validação, sistema e aceitação), defina, em cada um desses níveis, se se aplicam testes de caixa branca e/ou caixa-preta.
Em relação aos testes de caixa-branca, discuta porquê o método dos caminhos básicos é vantajoso sobre quaisquer dos critérios Meyers.
O documento discute os conceitos e técnicas de teste de software, com o objetivo de encontrar falhas e melhorar a qualidade do produto. Aborda temas como definição de teste de software, tipos de testes (caixa preta, caixa branca, caixa cinza), categorias de testes (unidade, integração, sistema), equipes de teste e por que testamos software.
Noções em teste de software e introdução a automaçãoSandy Maciel
O documento apresenta conceitos básicos de teste de software, incluindo princípios, papéis, ciclo de vida de desenvolvimento e tipos de testes. Também fornece uma introdução ao Selenium WebDriver, abordando automação de testes e preparação do ambiente.
O documento apresenta uma introdução sobre qualidade e teste de software, abordando:
1) Definições de qualidade, teste de software, verificação e validação;
2) Papéis e perfis dos profissionais de teste;
3) Técnicas para derivar casos de teste a partir de casos de uso.
Apresentação Artigo SBQS 2015 - Um Comparativo na Execução de Testes Manuais ...Vanilton Pinheiro
Garantia da qualidade por meio de testes é essencial no processo de desenvolvimento de software. Entretanto, o alto custo da execução de testes manuais e o número cada vez maior de ambientes de testes web solicitados pelos clientes dificultam manter a qualidade do produto e cumprir o prazo estabelecido. Para solucionar este problema é proposto o uso da técnica Behavior-Driven Development em conjunto com Selenium WebDriver e JUnit. Este artigo apresenta um estudo de caso da técnica, relatando os ganhos obtidos como redução no esforço de execução de testes em uma aplicação web. Também são apresentadas as lições aprendidas do estudo de caso.
O documento discute validação e testes de software, abordando tópicos como:
1) Os diferentes níveis de teste (unidade, integração, sistema e aceitação);
2) As abordagens de teste (caixa preta e caixa branca);
3) Os principais papéis no processo de teste (gerente de teste, líder de projeto de teste, etc);
4) A importância da documentação no planejamento e execução dos testes.
O documento discute métricas e visualização de código, definindo vários tipos de métricas como número de linhas, atributos, métodos, complexidade ciclomática. Também apresenta ferramentas para análise de código e escalas de medição para interpretar os valores métricos.
O documento discute os benefícios e limitações do teste de software, incluindo como o teste pode reduzir custos e aumentar a qualidade se bem planejado. Também aborda conceitos como objetivos de teste, verificação e validação, projeto de casos de teste e análise de cobertura.
O documento apresenta uma introdução ao teste de software, discutindo sua história, objetivos, processos, técnicas e ferramentas. Inclui tópicos como planejamento, projeto, execução e entrega de testes, níveis de teste, técnicas como caixa preta e branca e critérios como análise de valor limite e tabela de decisão. Por fim, fornece referências sobre o tema.
Final Project (2013): Test-Driven Development applied on web applicationsLuiz Henrique
O documento discute o desenvolvimento orientado a testes (TDD) aplicado a sistemas web. Ele explica o que é TDD e testes de unidade, os benefícios do TDD, os ciclos de desenvolvimento no TDD, métricas para medir a qualidade do código com TDD e ferramentas como NUnit e QUnit para realizar testes automatizados em sistemas web.
O documento discute técnicas para evoluir sistemas legados, incluindo redocumentação, refatoração, engenharia reversa e reengenharia. A rejuvenescimento de software é apresentada como uma estratégia para melhorar a qualidade do software e reduzir custos de manutenção ao longo do tempo.
Lucilia de Oliveira é uma Test Developer no Instituto Samsung do Amazonas que descreve o ciclo de vida do software, características de qualidade, níveis e técnicas de teste de software, além das responsabilidades de uma equipe de teste e exemplos de casos de teste.
Este documento apresenta conceitos básicos sobre teste de software, incluindo testes de unidade, funcional e integração. Também discute estratégias de teste no desenvolvimento dirigido por testes (TDD) e apresenta referências sobre TDD com Ruby e teste de unidade com Ruby.
Apresentação tcc - Leticia Moretti e Rafael Azevedolemorettiribeiro
Este documento apresenta a ferramenta QUANTUM para estimativa de projetos de software baseada na técnica de pontos por caso de uso. A ferramenta foi desenvolvida para auxiliar na estimativa inicial de projetos, considerando fatores como atores, casos de uso, complexidade técnica e eficiência da equipe. O documento também discute a aplicação da técnica pontos por caso de uso e possíveis melhorias na ferramenta.
Introdução a Testes de Software - Unidade IJoão Lourenço
1) O documento apresenta um curso sobre testes automatizados de software, incluindo objetivos, metodologia, conteúdo e conceitos básicos de teste de software.
2) Serão abordados testes unitários, testes de integração, testes funcionais e testes de carga, além de técnicas como TestNG e Mockito.
3) O curso visa demonstrar tecnologias e boas práticas para a construção de testes automatizados, facilitando o desenvolvimento e melhoria dos processos de teste.
Apresentação usada por Camilo Ribeiro para a Palestra "Técnicas de Teste no Ciclo de Desenvolvimento de Software" para o Centro Universitário UNA de Belo Horizonte em 25 de Março de 2010
Um desafio prático dos testes de unidade é a dependência entre unidades. Quando uma unidade depende de outras, é necessário desenvolver stubs (unidades substitutas) para as unidades dependentes para que a unidade sob teste possa ser testada isoladamente. Isso requer esforço adicional de desenvolvimento que pode atrasar o processo de teste. Além disso, bugs nos stubs podem mascarar ou simular bugs na unidade real, comprometendo a efetividade dos testes. Gerenciar as dependências entre unidades para permitir testes isolados é um desafio na prática dos testes de
É comum ouvirmos falar sobre qualidade de produtos, serviços e afins. E também sabemos que não é uma realidade distante quando falamos de desenvolvimento de software, pois usufruirmos de processos e metodologias, testes de aceitação, funcionais e stress, todo esse conjunto afim de garantir a qualidade e excelência do que foi ou está sendo desenvolvido.
O documento discute os processos e técnicas de teste de software, abordando tópicos como ciclo de vida de testes, métodos de teste, métricas e tecnologias. Ele destaca a importância da adoção de processos de qualidade para melhorar o desenvolvimento de software, reduzir custos e riscos.
Como eu aprendi que testar software é importante?Maurício Aniche
O documento discute a importância de testes de software, relatando a experiência do autor. Ele aprendeu sobre testes ao longo de sua carreira na faculdade e em várias empresas, onde testes automatizados ajudaram a evitar problemas. O autor também fornece dicas valiosas sobre estudos e carreira para desenvolvedores de software.
O documento discute como medir a qualidade do código através de métricas como número de bugs por dia da semana, bugs em relação à complexidade, complexidade em relação à mudança no código e linhas de código em relação à mudança. Também recomenda visualizações de código como forma útil de analisar a qualidade e fornece um link para o CodeCity que pode ajudar com isso.
O documento discute os conceitos e técnicas de teste de software, com o objetivo de encontrar falhas e melhorar a qualidade do produto. Aborda temas como definição de teste de software, tipos de testes (caixa preta, caixa branca, caixa cinza), categorias de testes (unidade, integração, sistema), equipes de teste e por que testamos software.
Noções em teste de software e introdução a automaçãoSandy Maciel
O documento apresenta conceitos básicos de teste de software, incluindo princípios, papéis, ciclo de vida de desenvolvimento e tipos de testes. Também fornece uma introdução ao Selenium WebDriver, abordando automação de testes e preparação do ambiente.
O documento apresenta uma introdução sobre qualidade e teste de software, abordando:
1) Definições de qualidade, teste de software, verificação e validação;
2) Papéis e perfis dos profissionais de teste;
3) Técnicas para derivar casos de teste a partir de casos de uso.
Apresentação Artigo SBQS 2015 - Um Comparativo na Execução de Testes Manuais ...Vanilton Pinheiro
Garantia da qualidade por meio de testes é essencial no processo de desenvolvimento de software. Entretanto, o alto custo da execução de testes manuais e o número cada vez maior de ambientes de testes web solicitados pelos clientes dificultam manter a qualidade do produto e cumprir o prazo estabelecido. Para solucionar este problema é proposto o uso da técnica Behavior-Driven Development em conjunto com Selenium WebDriver e JUnit. Este artigo apresenta um estudo de caso da técnica, relatando os ganhos obtidos como redução no esforço de execução de testes em uma aplicação web. Também são apresentadas as lições aprendidas do estudo de caso.
O documento discute validação e testes de software, abordando tópicos como:
1) Os diferentes níveis de teste (unidade, integração, sistema e aceitação);
2) As abordagens de teste (caixa preta e caixa branca);
3) Os principais papéis no processo de teste (gerente de teste, líder de projeto de teste, etc);
4) A importância da documentação no planejamento e execução dos testes.
O documento discute métricas e visualização de código, definindo vários tipos de métricas como número de linhas, atributos, métodos, complexidade ciclomática. Também apresenta ferramentas para análise de código e escalas de medição para interpretar os valores métricos.
O documento discute os benefícios e limitações do teste de software, incluindo como o teste pode reduzir custos e aumentar a qualidade se bem planejado. Também aborda conceitos como objetivos de teste, verificação e validação, projeto de casos de teste e análise de cobertura.
O documento apresenta uma introdução ao teste de software, discutindo sua história, objetivos, processos, técnicas e ferramentas. Inclui tópicos como planejamento, projeto, execução e entrega de testes, níveis de teste, técnicas como caixa preta e branca e critérios como análise de valor limite e tabela de decisão. Por fim, fornece referências sobre o tema.
Final Project (2013): Test-Driven Development applied on web applicationsLuiz Henrique
O documento discute o desenvolvimento orientado a testes (TDD) aplicado a sistemas web. Ele explica o que é TDD e testes de unidade, os benefícios do TDD, os ciclos de desenvolvimento no TDD, métricas para medir a qualidade do código com TDD e ferramentas como NUnit e QUnit para realizar testes automatizados em sistemas web.
O documento discute técnicas para evoluir sistemas legados, incluindo redocumentação, refatoração, engenharia reversa e reengenharia. A rejuvenescimento de software é apresentada como uma estratégia para melhorar a qualidade do software e reduzir custos de manutenção ao longo do tempo.
Lucilia de Oliveira é uma Test Developer no Instituto Samsung do Amazonas que descreve o ciclo de vida do software, características de qualidade, níveis e técnicas de teste de software, além das responsabilidades de uma equipe de teste e exemplos de casos de teste.
Este documento apresenta conceitos básicos sobre teste de software, incluindo testes de unidade, funcional e integração. Também discute estratégias de teste no desenvolvimento dirigido por testes (TDD) e apresenta referências sobre TDD com Ruby e teste de unidade com Ruby.
Apresentação tcc - Leticia Moretti e Rafael Azevedolemorettiribeiro
Este documento apresenta a ferramenta QUANTUM para estimativa de projetos de software baseada na técnica de pontos por caso de uso. A ferramenta foi desenvolvida para auxiliar na estimativa inicial de projetos, considerando fatores como atores, casos de uso, complexidade técnica e eficiência da equipe. O documento também discute a aplicação da técnica pontos por caso de uso e possíveis melhorias na ferramenta.
Introdução a Testes de Software - Unidade IJoão Lourenço
1) O documento apresenta um curso sobre testes automatizados de software, incluindo objetivos, metodologia, conteúdo e conceitos básicos de teste de software.
2) Serão abordados testes unitários, testes de integração, testes funcionais e testes de carga, além de técnicas como TestNG e Mockito.
3) O curso visa demonstrar tecnologias e boas práticas para a construção de testes automatizados, facilitando o desenvolvimento e melhoria dos processos de teste.
Apresentação usada por Camilo Ribeiro para a Palestra "Técnicas de Teste no Ciclo de Desenvolvimento de Software" para o Centro Universitário UNA de Belo Horizonte em 25 de Março de 2010
Um desafio prático dos testes de unidade é a dependência entre unidades. Quando uma unidade depende de outras, é necessário desenvolver stubs (unidades substitutas) para as unidades dependentes para que a unidade sob teste possa ser testada isoladamente. Isso requer esforço adicional de desenvolvimento que pode atrasar o processo de teste. Além disso, bugs nos stubs podem mascarar ou simular bugs na unidade real, comprometendo a efetividade dos testes. Gerenciar as dependências entre unidades para permitir testes isolados é um desafio na prática dos testes de
É comum ouvirmos falar sobre qualidade de produtos, serviços e afins. E também sabemos que não é uma realidade distante quando falamos de desenvolvimento de software, pois usufruirmos de processos e metodologias, testes de aceitação, funcionais e stress, todo esse conjunto afim de garantir a qualidade e excelência do que foi ou está sendo desenvolvido.
O documento discute os processos e técnicas de teste de software, abordando tópicos como ciclo de vida de testes, métodos de teste, métricas e tecnologias. Ele destaca a importância da adoção de processos de qualidade para melhorar o desenvolvimento de software, reduzir custos e riscos.
Como eu aprendi que testar software é importante?Maurício Aniche
O documento discute a importância de testes de software, relatando a experiência do autor. Ele aprendeu sobre testes ao longo de sua carreira na faculdade e em várias empresas, onde testes automatizados ajudaram a evitar problemas. O autor também fornece dicas valiosas sobre estudos e carreira para desenvolvedores de software.
O documento discute como medir a qualidade do código através de métricas como número de bugs por dia da semana, bugs em relação à complexidade, complexidade em relação à mudança no código e linhas de código em relação à mudança. Também recomenda visualizações de código como forma útil de analisar a qualidade e fornece um link para o CodeCity que pode ajudar com isso.
DNAD 2015 - Métricas de código, pra que te quero?Maurício Aniche
O documento discute métricas de código e como elas podem ser usadas para melhorar a qualidade do código e identificar problemas. Ele menciona métricas como tamanho de métodos e classes, complexidade ciclomática, coesão e acoplamento. Também discute visualizações de código e como métricas podem ser correlacionadas com bugs e manutenção do código.
Proposta: Métricas e Heurísticas para Detecção de Problemas em Aplicações WebMaurício Aniche
Proposta de pesquisa apresentada no encontro do NAPSoL em São Carlos, 2014: Proposta: Métricas e Heurísticas para Detecção de Problemas em Aplicações Web
O documento apresenta uma introdução ao sistema de controle de versão Git, abordando seus conceitos básicos, como funciona, vantagens, instalação e configuração, criação de repositórios, fluxo de trabalho básico e remoto, branches e tópicos avançados.
O documento discute integração contínua (IC) e testes unitários, argumentando que eles melhoram a qualidade do software, reduzem bugs e economizam tempo ao automatizar tarefas repetitivas e detectar problemas cedo. A integração contínua integra e testa o código frequentemente para encontrar bugs antes que afetem os clientes. Testes unitários tornam o código mais robusto e fácil de manter no longo prazo. Métricas e ferramentas de cobertura de código medem a qualidade e ajudam a melhorar
PHP para Adultos: Clean Code e Object CalisthenicsGuilherme Blanco
O documento apresenta uma série de slides de uma palestra sobre boas práticas de programação PHP. Os principais tópicos abordados incluem: Clean Code, princípios SOLID, Object Calisthenics e UML. O objetivo é ensinar técnicas para produzir código PHP mais legível, manutenível e testável.
Aula 1 introdução à engenharia de software1 (1)Tiago Vizoto
O documento descreve um contrato pedagógico para a disciplina de Engenharia de Software, definindo horários, regras sobre equipamentos eletrônicos, avaliações, webclasses, sugestões, metodologia de avaliação e ementa da disciplina.
Este documento discute como a ferramenta SonarQube pode ser usada para melhorar a qualidade do código, monitorando sete eixos da qualidade do código e gerenciando débitos técnicos. Explica como configurar o SonarQube, integrá-lo ao ambiente de desenvolvimento e usá-lo para identificar problemas e melhorar a qualidade do código ao longo do tempo.
Apresentação do Coderage Brasil 2018 sobre TDD com Código Legado com Delphi usando Spring.Testing e TestInsight.
Dicas de Refactory, como identificar Code Smell e Antipatterns e Hands on do refactory do exemplo GettingStarted do FireDAC.
"Apresentação atualizada, pois o SlideShare não permite re-upload."
Vídeo da primeira parte - Apresentação
https://youtu.be/ZWQO0bLB8gU
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu SoftwareAndré Dias
O documento lista 10 ferramentas para melhorar a qualidade do software, incluindo ferramentas para análise de código, detecção de código duplicado, extração de métricas, geração de testes automatizados, análise de cobertura de código, monitoramento de aplicações em produção e geração de relatórios. A qualidade do software é fundamental para o sucesso do DevOps para entregar valor aos clientes de forma rápida e contínua.
O documento discute se o jCompany Developer é um gerador de código. Apresenta que jCompany não é um gerador de código pois utiliza orientação a objetos, reuso de frameworks, padrões de mercado e independência tecnológica ao invés de simples geração de código. Geradores de código possuem problemas como dependência do fabricante e perda de conhecimento técnico.
Apresentação do Coderage Brasil 2018 sobre TDD com Código Legado com Delphi usando Spring.Testing e TestInsight.
Dicas de Refactory, como identificar Code Smell e Antipatterns e Hands on do refactory do exemplo GettingStarted do FireDAC
O documento apresenta SonarQube, uma ferramenta open source para análise estática de código e gerenciamento de débito técnico. Apresenta como SonarQube mede sete eixos da qualidade de código, como arquitetura, testes e complexidade, e integrações possíveis com TFS e IDEs. Demonstra como SonarQube ajuda equipes a identificar e reduzir débitos técnicos para melhorar a qualidade do código.
O documento discute os principais paradigmas de programação, incluindo estruturado, orientado a objetos, paralelo e distribuído, e funcional. Ele define cada paradigma, explica suas características, vantagens e desvantagens, e fornece exemplos de linguagens que suportam cada paradigma.
Revisitando as Práticas de Engenharia ÁgilDanilo Sato
Slides da minha palestra na QCon SP 2013:
Agile virou mainstream: hoje em dia é difícil encontrar um time que não esteja seguindo um processo ágil. No entanto os processos mais comuns focam mais nas práticas gerenciais e não tanto nas práticas de engenharia. Na minha experiência com Métodos Ágeis, a falta de disciplina técnica é um dos principais impedimentos para criar equipes altamente produtivas. Nesta palestra eu pretendo revisitar as práticas de engenharia ágil, desde as originalmente propostas por XP há mais de dez anos atrás - como TDD, refatoração ou programação em par - até ideias mais recentes - como DevOps, infraestrutura como código e pipelines de deployment. Ao invés de focar no "O que?" de cada prática, pretendo tomar uma abordar mais profunda, focando no "Por quê?", nos comportamentos e nos resultados esperados de uma equipe que aplica as práticas com sucesso.
O documento apresenta Kamilla Queiróz, analista de testes da NeoGrid, e discute o futuro dos analistas de testes no cenário ágil, propondo que eles se tornem parte integrante das equipes de desenvolvimento. Também aborda tópicos como DevQA, testes de unidade, qualidade de código e especificações vivas.
Palestra ministrada na semana acadêmica da UFPR, para o curso Tecnologia em Informação.
Temas abordados: divida técnica, code smells, como identificar, monitorar e tomar ação.
Vantagens e desvantagens de uma arquitetura microservicesFábio Rosato
Este documento discute as vantagens e desvantagens de uma arquitetura de microserviços. As principais vantagens incluem a capacidade de implantar serviços independentemente, permitindo entregas contínuas mais rápidas. As principais desvantagens incluem a complexidade operacional adicional e a consistência eventual de dados entre serviços. O documento fornece dicas para lidar com desafios como integração, diversidade tecnológica e segurança.
Um panorama completo sobre os três maiores CMS desenvolvidos em PHP. Passado, presente e futuro. Será que estes gigantes ainda disputam uma mesma parcela de mercado?
O documento descreve o ContextLongMethod, uma ferramenta que usa informações arquiteturais extraídas de um sistema de referência para recomendar candidatos a métodos longos. A ferramenta usa valores limiares específicos de cada interesse arquitetural da classe para identificar métodos longos. Os resultados mostraram que a abordagem tem melhor precisão e cobertura do que outras ferramentas.
Este documento apresenta uma aula introdutória sobre engenharia de requisitos. Aborda tópicos como definição de requisitos, processos de engenharia de requisitos, etapas da engenharia de requisitos e métodos ágeis. Inclui exemplos reais para ilustrar a importância de se entender corretamente as necessidades dos usuários desde o início.
O documento discute como automatizar sistemas legados utilizando ferramentas de DevOps. Primeiro, descreve as características problemáticas dos sistemas legados e a necessidade de tratá-los da melhor forma possível. Em seguida, apresenta como a HypeFlame/Agibank modularizou seu sistema legado, escolheu ferramentas adequadas e implementou pipelines de integração e entrega contínuas para tratá-lo de forma semelhante a microsserviços.
O documento discute o conceito de DevOps, definindo-o como uma metodologia que promove a comunicação entre desenvolvedores de software e operações de TI. A metodologia busca produzir software de forma rápida e contínua através da integração entre as equipes. Além disso, discute os perfis profissionais relacionados a DevOps e as mudanças necessárias nas organizações para a adoção da metodologia.
A Carreira de Desenvolvedor: do Jr ao SêniorMarcos Pereira
O documento discute a carreira de desenvolvedor de software, desde júnior até sênior. Apresenta as principais responsabilidades de um desenvolvedor, como compreender requisitos, construir códigos, testar e implantar sistemas. Também explica como o mercado classifica os desenvolvedores de acordo com tempo de experiência e habilidades técnicas, e dá dicas sobre por onde começar a carreira nessa área.
GDG DevFest Nordeste - Quer desenvolver aplicações mobile nativas, cross-plat...Paulo Cesar Ortins Brito
Nessa apresentação mostro como podemos desenvolver aplicações mobile nativas para iOS, Android e Windows Phone utilizando C# com o Xamarin e compartilhando até 75% do código entre as plataformas. É uma vantagem e tanto no mundo atual onde devemos atender o maior número de devices com o menor custo possível e atendendo à usuários cada vez mais exigentes.
Como participar de comunidades de software mudou a minha carreira e também po...Paulo Cesar Ortins Brito
Sei, as perspectivas e não são nada boas, o mercado de Salvador é um mercado ruim, as empresas pagam mal, projetos mais parecem a 101 a reprise de um filme de sessão da tarde e aquele emprego que sonhávamos quando entramos na faculdade começa a ficar cada vez mais distante. Já pensou em fazer concurso? Sair da área? Mas você vai deixar de fazer algo que você ama por causa do "Mercado"? E se você se juntasse com outros malucos e fugisse do sistema? Sim, é possível e fizemos isso aqui em Salvador.
Use Xamarin.Forms and surprise your customers when develop native apps, in le...Paulo Cesar Ortins Brito
This document discusses using Xamarin.Forms to develop native mobile apps across platforms like iOS and Android more quickly and at lower cost than traditional Xamarin development. It provides examples of how UI elements like labels, pickers and list views can be coded once in Xamarin.Forms and rendered natively on each device. The document also shares examples of real apps developed in Xamarin.Forms that demonstrated high code reuse between platforms and significant time savings when migrating between iOS and Android. Resources for learning more about Xamarin.Forms development are provided.
The Developer's Conference 2015 - Florianópolis - Use o Xamarin.Forms e surpr...Paulo Cesar Ortins Brito
O documento discute o uso do Xamarin.Forms para desenvolver aplicativos nativos de forma mais rápida e barata do que o Xamarin Traditional. O Xamarin.Forms permite criar uma interface de usuário comum para múltiplas plataformas com apenas uma base de código, enquanto ainda oferece acesso nativo às APIs de cada plataforma. Exemplos mostram como componentes como Label, Picker e ListView podem ser usados de forma consistente entre Android, iOS e Windows Phone.
O documento discute a mobilidade para além dos smartphones, mencionando wearables como smartwatches e óculos inteligentes, e beacons. Fornece detalhes sobre esses dispositivos emergentes, incluindo exemplos como o Google Glass, Moto 360 e beacons da Apple. Também fornece informações sobre como desenvolvedores podem começar a trabalhar com esses dispositivos.
GDG Tech Talk - Quer desenvolver aplicações nativas e cross-plataforma usando...Paulo Cesar Ortins Brito
O mercado mobile tem crescido ano após ano e expectativa é que em 2018 tenhamos um mercado de 7 bilhões de devices, mas como entregar soluções para cada um desses devices? Nessa palestra mostro como podemos utilizar o Xamarin para entregar soluções cross-plataforma utilizando o C# e compartilhando em média 75% do código entre as diferentes soluções.
Essa palestra foi dada no GDG Tech Talk em Salvador no dia 01/11/2014.
Alguns exemplos utilizados na palestra podem ser encontrados abaixo:
TaskyPortable - https://github.com/xamarin/mobile-samples/tree/master/TaskyPortable
Xuzzle - https://github.com/xamarin/xamarin-forms-samples/tree/master/Xuzzle
TDC Porto Alegre 2014 - Quer desenvolver aplicações nativas e cross-plataform...Paulo Cesar Ortins Brito
O mercado mobile tem crescido ano após ano e expectativa é que em 2018 tenhamos um mercado de 7 bilhões de devices, mas como entregar soluções para cada um desses devices? Nessa palestra mostro como podemos utilizar o Xamarin para entregar soluções cross-plataforma utilizando o C# e compartilhando em média 75% do código entre as diferentes soluções.
Essa palestra foi dada no TDC 2014 em Porto Alegre.
Alguns exemplos utilizados na palestra podem ser encontrados abaixo:
TaskyPortable - https://github.com/xamarin/mobile-samples/tree/master/TaskyPortable
Xuzzle - https://github.com/xamarin/xamarin-forms-samples/tree/master/Xuzzle
Semana Computação UFBA 2014 - Quer desenvolver aplicações nativas e cross-pla...Paulo Cesar Ortins Brito
Nessa apresentação pretendo mostrar como podemos desenvolver aplicações mobile nativas para iOS, Android e Windows Phone utilizando C# com o Xamarin e compartilhando até 75% do código entre as plataformas. É uma vantagem em tanto no mundo atual onde devemos atender o maior número de devices com o menor custo possível.
Semana Computação Unifacs 2014 - Quer desenvolver aplicações nativas e cross-...Paulo Cesar Ortins Brito
Este documento discute como desenvolver aplicativos móveis nativos e híbridos usando a plataforma Xamarin. Xamarin permite que desenvolvedores criem interfaces de usuário nativas para Android, iOS e Windows usando C# e compartilhando grande parte do código entre plataformas. O documento também aborda tópicos como métricas de código, testes, custos e mercado para a plataforma Xamarin.
O documento discute a API Roslyn do .NET, que permite o acesso ao pipeline de compilação do C# e VB.NET. Isso torna possível implementar ferramentas de código como syntax highlighting, intellisense e refactoring sem precisar reimplementar a análise sintática e semântica. A API Roslyn também permite a geração e análise de código em tempo de execução, facilitando o desenvolvimento de ferramentas de software.
O documento usa a história de Bob, um funcionário do McDonalds, para explicar conceitos de software como MVC, code smells, refatoração, testes automatizados, controle de versão, commits, branches e merge de forma simples e acessível.
O documento discute o ecossistema .NET e a linguagem C# de programação. Ele descreve as vantagens da tipagem estática, inferência de tipos, LINQ e outras funcionalidades do C#. Também aborda os custos, oportunidades de mercado e desafios em torno da comunidade e código aberto. O autor argumenta que vale a pena apostar no .NET/C# devido à sua constante evolução e capacidade de atender às demandas atuais e futuras do mercado.
This document summarizes a technical meeting about creating tests using JavaScript. It discusses different types of tests like monkey tests, unit tests, and end-to-end tests. It then focuses on unit testing in JavaScript, describing frameworks like Jasmine that allow automating unit tests. It provides examples of how to write test suites, expectations, and use matchers in Jasmine. Finally, it discusses integrating Jasmine with Testacular/Karma to continuously run and watch tests.
O documento resume uma palestra sobre C# para a comunidade. Ele introduz o palestrante Paulo Ortins e descreve como surgiu a ideia da palestra para engajar a comunidade C# em Salvador. Ele também destaca recursos populares da linguagem C# como LINQ e propriedades, além de frameworks como Mono que permitem rodar C# em outros sistemas operacionais.
2. Paulo Ortins
• Sócio e programador na OnceDev
• Atuo em comunidades desde 2011
• Frequentador assíduo de eventos, dojos, bate-papos e etc.
• Mestrando na UFBA (Engenharia de Software/Mineração de
Repositórios de Software)
5. Google Analytics
• Série de métricas
• Usuários
• Perfis de acesso
• Tempo de Permanência
• Fluxo de Navegação
• Empresas utilizam para auxiliar na tomada de decisões
8. E na Engenharia de Software?
• Onde coloco esse trecho de código?
• Devo criar uma classe nova?
• Quando devo refatorar o meu código?
• Quais as classes merecem a maior atenção?
15. Leis de Evolução do Software
• Mudança Contínua
• Complexidade Crescente
• Crescimento Contínuo
• Qualidade Decrescente
16. Software Intelligence
• Business Intelligence para projetos de software
• Uso de dados gerados durante o processo de desenvolvimento
para auxiliar a tomada de decisões
17. Fontes de Dados
• Bug trackers
• Listas de emails
• Repositórios de software
• Rastros de execução
19. Como medir a qualidade do
código?
• Quando um código é bom?
• Quando um código deve ser refatorado?
• Quando um código deve ser melhor testado?
20. Linhas de Código
• Já foi/é utilizada de diversas formas
• Complexidade/Tamanho
• Produtividade
• Qual o número de linhas que uma classe deve ter ? E um
método ?
• 10? 20? 50? 2000 ?
21. Número de Mudanças
• Número de vezes que um determinado código é alterado ao
longo do ciclo de vida do projeto
• O que isso pode nos dizer?
• Instabilidade?
• Importância?
• Uso?
22. Complexidade Ciclomática
• Também conhecido como número ciclomático ou
complexidade de McCabe
• Número de possíveis caminhos de execução que um
determinado trecho de código possui
26. Complexidade Ciclomática
• Recomenda-se manter a CC de um código o menor possível
• Caso um código possua uma CC alta é desejável que esse
código seja refatorado
27. Coesão
• O que é coesão?
• LCOM (Lack of Cohesion of Methods)
• Calcula a ausência de similaridade entre métodos
• Número de pares de métodos que não compartilham variáveis –
Número de pares de métodos que compartilham
• Quanto maior a LCOM, pior é a coesão de uma classe
28. Acoplamento
• O que é Acoplamento?
• Acoplamento Aferente
• Acoplamento Eferente
• O acoplamento é sempre ruim?
29. Linhas de Comentários
• Quantas linhas de comentários deve ter em um código?
• Comentar código é uma boa prática ou uma má prática?
30. Cobertura de Código
• Qual o percentual do nosso código que está sendo coberto
por testes?
• Será que todo código deve estar 100% coberto por testes?
31. Métricas devem ser
combinadas
• Complexidade Ciclomática + Linhas de Código
• Código grande e complexo
• CC + Linhas de Código + Poucas mudanças
• Código grande e complexo mas que está estável
32. Métricas devem ser
combinadas
• Acoplamento Aferente + Muitas mudanças + Baixa cobertura
de testes
• Você vai ser caçado por outros desenvolvedores em breve.
• Complexidade Ciclomática + Linhas de Código + Muitas
mudanças + Baixa Cobertura + Acoplamento Aferente
• O fim do mundo está próximo
33. Visualização de Software
• A extração de métricas, por si só, não é suficiente
• Seres humanos não são bons em extrair informações a partir
de dados brutos
44. Estado Atual
• Apesar das primeiras métricas de software tenham sido
propostas nos anos 70, seu uso ainda é pequeno
• A NASA, Motorola, HP e Boeing possuem casos de sucesso
45. Estado Atual
• Diversas ferramentas são propostas na academia, porém
poucas acabam chegando a indústria
• Como provar o valor disso ?
Tem haveremcomo um objeto se relaciona com o sistemaqueeleestáinserido, emcomo a finalidade de códigoestábemdefinida e comooscomponentesquecompõem o método se relacionam entre siafim de cumpriressafuncionalidade
Acoplamentoestárelacionado a inter-dependência entre classes e/oupacotes do nossosistema.Aferentequantidade de classes quedependem da classeEferentequantidade de classes queumaclassedepende