Boas práticas de segurança no desenvolvimento de jogos

A história dos jogos, é contada por homens e mulheres insaciáveis por inovação e criatividade, mas também por indivíduos que utilizaram destas hábeis pessoas para alavancar oportunidades capitalistas. O fato não é negativo mas sim um sinônimo de castigo.

Não é fácil desenvolver, criar e inovar, com a bendita pressão capitalista como alicerce do negócio. Tudo isso fez e faz parte da rotina de todos que direto ou indiretamente participam. Continue lendo “Boas práticas de segurança no desenvolvimento de jogos”

TDD em Java, como funciona!

O presente artigo pretende mostrar ao leitor o caminho das pedras para iniciar com o TDD em Java. Mas antes é preciso saber o que é Desenvolvimento Guiado por Testes? E como ele pode nos ajudar?

Gerenciar a complexidade por meio de testes em pequenas unidades do sistema é a receita desta metodologia para alcançar códigos enxutos, funcionais e livre de bugs, os três pilares do TDD apresentados na figura ao lado nos proporcionam uma visão holística, observamos um ciclo de desenvolvimento simples, verifica-se a falha, correge-se a falha e em seguida otimiza-se o código.

Agora que já compreendemos como funciona a técnica vamos descobrir como podemos trabalha-la com Java. Antes de mais nada precisamos dispor de um IDE com suporte ao JUnit sugiro o Eclipse um dos mais populares para o desenvolvimento em Java, mas o que é mesmo esse tal de JUnit? Continue lendo “TDD em Java, como funciona!”

Maus cheiros no desenvolvedor de software

Mau Cheiro Desenvolvimento SoftwarePara os que se interessaram pelo tema, pois tem algum colega com dificuldades sérias de higienização: sinto muito. Não é minha intenção fazer devaneios sobre o número máximo de dias que um desenvolvedor pode utilizar a mesma camiseta. A expressão ‘maus cheiros’ (em inglês ‘bad smells’) é utilizada em software como indicativo para alguma coisa que pode não estar bem.

Martin Fowler e Kent Beck introduziram o conceito de ‘mau cheiro’ no código fonte: código duplicado, métodos longos, muitos parâmetros e outros. Gerard Meszaros fez o mesmo para testes: testes obscuros, lógica de testes em produção, para citar alguns. O mau cheiro não indica que, efetivamente, existe algum problema, mas serve como um indicativo que certamente vale a pena examinar. Continue lendo “Maus cheiros no desenvolvedor de software”

Brasil e a melhoria do processo de produção de software (Softex e MPS.BR)

Para que uma organização consiga mensurar seus resultados e manter-se em constante melhoria do software que produz, seguir um modelo de maturidade de processo de software é fundamental.

Os modelos de maturidade servem para guiar o processo de melhoria da qualidade do software. Esses modelos servem de referência e possibilitam o diagnóstico da qualidade software produzido, pois estabelecem critérios de medição e avaliação dos resultados obtidos. Para isso a Softex e o governo brasileiro desenvolveram o MPS.BR, programa  para Melhoria de Processo do Software Brasileiro, voltado principalmente para pequenas e médias empresas, com o objetivo de definir e aprimorar um modelo de melhoria e avaliação de processo de software. Continue lendo “Brasil e a melhoria do processo de produção de software (Softex e MPS.BR)”

UML e os Diagramas Estruturais

Entre os conjuntos de diagramas da UML (Unified Modeling Language) estão os diagramas estruturais, utilizados para visualizar, especificar, construir e documentar os aspectos estáticos de um sistema. Este artigo tem como objetivo, introduzir de forma simplificada cada um dos diagramas estruturais da UML 2.0. São eles os diagramas de Classe, Objetos, Componentes, Implantação, Pacotes e Estrutura. Continue lendo “UML e os Diagramas Estruturais”

Engenharia de Requisitos: Por onde começo?

Por mais que as empresas digam que utilizam um método para definir os requisitos de seu software, a maior parte delas não aplica os conceitos dessa parte importante do processo.

A aplicabilidade da engenharia de requisitos mostra-se falha dentro das empresas. Mas onde as empresas estão errando? O que pode ser alterado no processo das empresas para que isso seja ajustado? Antes de elencar o que deve ser modificado, temos que entender o que é a engenharia de requisitos. Continue lendo “Engenharia de Requisitos: Por onde começo?”

Princípios da Gerência de Configuração de Software

Hoje em dia constatamos que as mudanças ocorrem em uma velocidade espantosamente rápida, isso não é diferente no desenvolvimento de um software: a legislação, o entendimento dos usuários sobre suas necessidades, o ambiente ao qual o sistema vai operar, os requisitos, tudo muda. Devido a tantas mudanças, é necessária alguma forma de gerenciamento para que o desenvolvimento não seja catastrófico.

Durante o desenvolvimento de software, uma grande quantidade de informações é produzida, tais como: especificações, planos de projeto, arquivos de código fonte, casos e planos de testes, manuais, arquivos de dados, entre outros. Cada um desses documentos produzidos poderá ser considerado um item de configuração de software. A configuração de software é composta pelos itens de configuração produzidos durante o processo de engenharia de software, ou seja, no processo de desenvolvimento disciplinado de sistemas. Continue lendo “Princípios da Gerência de Configuração de Software”

Treze práticas para desenvolvimento de software (Boas Práticas)

Para o desenvolvimento de softwares de qualidade é necessário dominar um conjunto de habilidades e conhecimentos que fazem com que o este processo se mantenha organizado e com crescimento constante, esse conjunto de técnicas quando utilizado de forma saudável pode ser descrito como boas práticas.  Se todas estas técnicas forem documentadas podem render um bom guia para esta mítica tarefa de criar softwares. Neste artigo abordo de maneira simplificada treze tópicos que podem auxiliar no entendimento do que envolve o desenvolvimento de software e serem adotados como boas práticas. Continue lendo “Treze práticas para desenvolvimento de software (Boas Práticas)”

TDD (Test Driven Development) e a batalha das opiniões

Uma técnica ágil pouco usada e proporcionalmente conhecida, o TDD(Test Driven Development) ou Desenvolvimento orientado a testes, pode ser enxergado como um vilão aos olhos de algumas empresas, mas para outras esta técnica veio como um heroi. Descubra lendo esse artigo o porquê dessa guerra de opiniões e também um pouco de sua história. Continue lendo “TDD (Test Driven Development) e a batalha das opiniões”

Usabilidade. Você pensa nisso? (Boas práticas para desenvolver páginas fáceis de navegar)

Usabilidade é a simplicidade e facilidade com que uma interface, um programa de computador ou um website pode ser utilizado. Em outras palavras, é uma interface fácil de usar, fácil de aprender e que faz com que o usuário não cometa erros.

Você já teve dificuldade para navegar em algum website? Já desistiu de algum website por ser difícil de navegar? Pois é… Isso é muito é comum quando as páginas não priorizam a usabilidade.

Às vezes, desenvolver um website com uma navegação diferenciada e fora do comum é interessante e pode render resultados muito bons. Porém, é importante pensar no público-alvo e seguir algumas boas práticas para desenvolvimento de interfaces. Continue lendo “Usabilidade. Você pensa nisso? (Boas práticas para desenvolver páginas fáceis de navegar)”

Coding Dojo: Treinamento e transferência de conhecimento tecnológico

Segundo o http://codingdojo.org/: “Um Coding Dojo é um encontro onde um grupo de programadores se reúne para trabalhar em conjunto em um desafio de programação. Eles estão lá para se divertir, e, através de uma metodologia pragmática, melhorar suas habilidades de programação e de trabalho em grupo.”

Na Wikipédia encontramos: “Dojo (em japonês: 道場 sítio do caminho?, Dōjō) é o local onde se treinam artes marciais japonesas. Muito mais do que uma simples área, o dojo deve ser respeitado como se fosse a casa dos praticantes”. Mas no nosso contexto, o treinamento é da arte da construção de software e codificação. Continue lendo “Coding Dojo: Treinamento e transferência de conhecimento tecnológico”

Modelos de ciclo de vida: Cada empresa deve descobrir qual é o melhor para o seu processo

Os ciclos de vida definem basicamente como um software deve ser desenvolvido, e descrevem com detalhes as etapas e atividades a serem executadas. O modelo adotado pode determinar o sucesso da produção de um projeto, pois ajuda a melhorar o andamento do projeto e garantir que os objetivos sejam alcançados.

Definindo claramente essas etapas, torna-se possível o controle e avaliação da qualidade de cada etapa, ou atividade. Continue lendo “Modelos de ciclo de vida: Cada empresa deve descobrir qual é o melhor para o seu processo”