Archive for December, 2009

Uma tabela periódica para métodos de visualização

Durante o levantamento bibliográfico da minha dissertação de mestrado encontrei um artigo e um site muito interessante que falava sobre métodos de visualização. Até então nada de novo, todos os métodos de visualização apresentados no artigo muito provavelmente você já conhece. No entanto, a contribuição do referido artigo foi em utilizar a analogia da tabela periódica utilizada na química.

Desta forma, o autor do trabalho consegui agrupar vários tipos de métodos de visualização para diferentes propósitos como os da figura abaixo:

Read the rest of this entry »


Métodos ágeis de desenvolvimento

Este post é uma tradução e adaptação parcial do original Scrum in five minutes

QuestionRESPONDA A SI MESMO AS SEGUINTES PERGUNTAS:

  1. Você quer lidar de forma mais eficiente com as mudanças de requisitos, aumentar a motivação da equipe e melhorar comunicação com o cliente do projeto?
  2. Você está pronto para introduzir uma nova cultura de liderança que irá alterar os papeis e trará uma nova forma de trabalhar transferindo parte da responsabilidade gerente do projeto para a equipe?
  3. Você está disposto a seguir os passos de empresas como a Google, Microsoft e Xerox, que com sucesso remediaram as falhas de seu processo de desenvolvimento de software?

Se você respondeu “SIM” a todas, definitivamente você pode continuar lendo.

Kanban

Read the rest of this entry »


Scrum em cinco minutos

Este post é uma tradução parcial do original Scrum in five minutes

Scrum

SCRUM – project management

O Scrum é um método de gerenciamento de projetos que está se tornando cada vez mais comum na indústria de software. Pequenos grupos constituídos de, no máximo 6-8 pessoas dividem o seu trabalhar em projetos de “mini” que têm uma duração de cerca de um mês durante o qual um número limitado de tarefas detalhadas são resolvidos.

Introdução

Scrum é baseada no que é chamado de Sprint – um esforço concentrado para um período de 30 dias em direção às metas fixadas.

Read the rest of this entry »


Flex for kids 2010

Este post é uma divulgação do evento Flex for Kids 2010

Flex for Kids

O que é Flex for Kids?

O Flex for Kids é uma maratona de palestras on-line que será realizado no dia 06/02/2010 e contará com grandes nomes da comunidade Adobe Flex brasileira.

Read the rest of this entry »


50 livros para ler antes de se formar!

Segue uma relação dos livros mais tradicionais em qualquer curso de computação. São livros que deveria ser lidos ou ao menos corrido os olhos. Nesta lista está contido os autores mais consagrados como: Erich Gamma, Iam Sommerville, Nívio Zivianni, Simon Haykin, Douglas E. Commer, Wilson de Padua, Navate, C.J. Date, Roger Pressman, Loudon, Martin Fowler, Kent Beck, Andrew S. Tanenbaum, Deital, Bjarne Stroustrup, Herbert schildt, entre outros.

Read the rest of this entry »


Localização de Placa de Veículos

Olá a todos!!
Neste post vou ressuscitar um trabalho antigo meu. Durante a graduação sempre me interesse por Processamento Digital de Imagens (PDI), e como não poderia ser diferente, meu trabalho de conclusão de curso foi feito sobre esse assunto. Então, resolvi criar este post para apresentar o trabalho que fiz, que, para mim, foi bastante interessante e agregador. Espero que seja para vocês também!!

Por que estou apresentando este post? Bom porque o mesmo princípio que utilizei em 2005-2006 para localizar a placa de veículo em qualquer posição da imagem será o mesmo princípio que utilizarei para localizar símbolos ou padrões impressos em cartões, folhetos, impressos para fazer aplicações de realidade aumentada. A idéia é utilizar o conhecimento obtido neste trabalho e aplicá-lo em uma aplicação Flex ou AIR, agregar um animação e fazer software de realidade aumentada.

Read the rest of this entry »


Condições para uso de herança

JavaUm dos princípios básico da Orientação a Objetos é a reutilização. Um dos mecanismo existentes nas linguagens OO para alcançar tal reutilização é o uso de herança.  Em qualquer livro de programação orientada a objetos que você pegar para ler terá um definição de herança mais ou menos como essa “Herança é o mecanismo para estender as classes existentes adicionando novos métodos e campos”, em outras palavras, a herança é um mecanismo para aprimorar classes já existentes.

A herança é utilizada quando você tem a necessidade de implementar uma nova classe que reutiliza um conceito mais geral de uma classe já existente estiver disponível .

Entender bem o funcionamento das técnicas de OO é necessário para desenvolver aplicações escaláveis, modulares, com baixo acoplamento e alta coesão, bem como para compreender os padrões de projeto (Design Patterns), utilizado comumente no mercado.

Neste post, no entanto, o objetivo é abordar as condições para uso de herança que nos livros é falado, mas de forma “implícita”.

Antes de entrar no assunto, vale apena ressaltar o que os objetos podem representar. os objetos podem representar um papel, uma transação, ou um dispositivo, entidade ou coisa:

  • Um Papel: um objeto pode representar um papel. Exemplo, Aluno, Pessoa, Funcionário, ect.
  • Uma Transação: é um objeto que representa uma atividade que pode ocorrer em um determinado intervalo de tempo. Exemplo, Reserva, Venda, etc.
  • Um Dispositivo, uma Entidade ou uma Coisa: o objeto pode representar uma entidade, um dispositivo ou uma coisa que tem estrutura permanente. Exemplo. Caminhão, Veículo, ect.

Para usar herança, alguns critérios devem ser satisfeitos:

  • CRITÉRIO 1: A subclasse deve expressar uma relação “é um tipo especial de” e não “pode exercer o papel de”, em outras palavras, a herança NUNCA deve mudar a função da superclasse.
  • CRITÉRIO 2: A subclasse deve especializar uma papel, uma transação ou um dispositivo, sem NUNCA mudar a função da superclasse.
  • CRITÉRIO 3: A subclasse deve estender, e NUNCA redefinir e NUNCA anular o contrato (responsabilidade) da superclasse.
  • CRITÉRIO 4: A subclasse NUNCA deve estender funcionalidades de classes utilitárias.

Read the rest of this entry »


Prototipagem: Balsamiq Mockups + Napkee

Para dar início ao assunto de prototipagem com Balsamiq Mocups e Napkee, vejam o vídeo abaixo:

A prototipagem é uma técnica utilizada na durante o Levantamento de Requisitos  com a única finalidade de demonstrar o que foi entendido com relação aos requisitos levantados. O protótipo são construídos para facilitar o esclarecimento de certas pontos vitais para o sucesso de um produto. Os protótipos podem ajudar na modelagem do problema quanto da solução por meio de um experimento rápido e ilustrativo. Autores de livros de  Engenharia de Software pregam que os protótipos devem ser descartáveis, com rápida construção e não devem ser reaproveitados, da mesma forma na construção civil-se  utiliza de maquetes. Para fazer a participação você poderá utilizar:

Read the rest of this entry »


Você pensa na Ordem de Complexidade O(f(n))?

Você pensa na Ordem de Complexidade dos seus algoritmos quando está programando? Se não pensa, vou te dar motivos para começar a pensar!

A Ordem de Complexidade ou O (f) é a complexidade assintótica ou o  comportamento assintótico do algoritmo onde f é a a função de complexidade. Essa função de complexidade é utilizada para medir o  custo de execução de um algoritmo e f(n) é a medida do tempo necessário para executar um algoritmo para um problema de tamanho n. (Para mais detalhes teórico sobre o assunto, vide livro do Nívio Ziviani).

Gráfico que ilustra o comportamento da ordem de complexidade em função do tamanho da entrada e do tempoGráfico que ilustra o comportamento da ordem de complexidade em função do tamanho da entrada e do tempo

Analisando o gráfico acima fica nítido que um programa com tempo de execução O(n) é melhor que outro com tempo O(n2). Traduzindo isso, grosseiramente, significa que um programa que tem o tempo de execução O(n) implementa um loop (for ou while) de tamanho n, enquanto o programa de tempo de execução O(n2) implementa um loop dentro do outro. O trecho de código abaixo ilustra um algoritmo que tem o tempo de execução O(n). Isso quer dizer a medida que o tamanho do n cresce o tempo para executar o programa cresce linearmente.

Read the rest of this entry »


Formei, mas não sei NADA!!!

Esse post é dedicado as pessoas que se formaram ou estão se formando em cursos de graduação na área da computação como: Ciência da Computação, Sistemas de Informação, Analise e Desenvolvimento de Sistemas e afins. Vale ressaltar que as opiniões apresentadas abaixo são exclusivamente minhas. Então leia, pense, reflita e forme suas próprias opiniões sobre o assunto.

Se você formou ou está para formar e tem a impressão que não sabe nada, não se sinta tão mal, você não é o único. Mas porque isso ocorre? Vou dar minha opinião. Como sou discente e docente me sinto capacitado para opinar sobre os dois pontos de vista.

Read the rest of this entry »


Procurar


Edgard Davidson
nova Profissional especialista em engenharia de software e desenvol- vimento de sistemas, professor universitário, coordenador do curso de pós graduação em Engenharia de Software Centrada em Métodos Ágeis ofertado pela UNA, mestrando em Engenharia Elétrica com ênfase em Engenharia de Software, Especialista em Engenharia de Software, Graduado em Sistemas de Informação. Sou sócio da MÉRITA - ENGENHARIA DE SERVIÇOS E SISTEMAS e criei este blog dedicado a assuntos como: desenvolvimento e engenharia de software, opiniões pessoais sobre assuntos pertinentes. Os posts deste blog são escritos sem muito rigor científicos e expressam opiniões exclusivamente minhas

Mérita - Engenharia de Serviços e Sistemas

Curso de Pós Graduação em Engenharia de Software Centrada em Métodos Ágeis

Categorias

Arquivo

Tags

Pagea