Tecnologias modernas para desenvolvimento de sistemas

Comprei a terceira edição do livro The Object Primer, Scott Ambler. É um livro muito elogiado, e o autor é um dos pais dos Métodos Ágeis. Estou começando a gostar um pouco mais deles, embora a academia ainda não acredite muito neles. Por enquanto não há dados suficientes de uso desses métodos, que permitam responder a algumas perguntas essenciais para a academia, como por exemplo: que tipo de problema esses métodos resolvem melhor? qual o tamanho da equipe adequado para uso de um método ágil? e vai por ai afora. Só mesmo com uma adoção mais ampla será possivel avaliar corretamente a aplicabilidade. Segundo autor, as tecnologias “matadoras” atuais para construção de sistemas são: Orientação a objetos; XML – eXtensible Markup Language; BDR-Bancos de dados relacionais e Web services. Pois é, as tecnologias relacionais ainda vão sobreviver por muito tempo, devido principalmente a alta disponibilidade de SGBDR para qualquer plataforma, ao seu alto nível de adoção em aplicações corporativas, cultura largamente disseminada e sedimentada, e finalmente baixo custo de adoção. Ele cita ainda as tecnologias mais modernas para desenvolvimento de sistemas: Métodos ágeis (como não poderia deixar de ser); UML; Processo Unificado e seus filhotes; MDA-Model Driven Architectures. Essa última ainda está em nivel experimental de adoção, as ferramentas ainda são raras e caras, e há muitos problemas a resolver. Mas as atenções estão voltadas para MDA, tem muito graúdo investindo no tema.

objectprimer1.jpgScott Ambler, The object primer, Cambridge University Press, 2005.

Anúncios

Consultor Independente, Treinamento Empresarial, Gerência de Projetos, Engenharia de Requisitos de Software, Inovação. Professor Titular Aposentado, Departamento de Informática, Universidade Federal de Viçosa, Minas Gerais, Brasil. Doutor em Informática, PUC-Rio, 1990. Pós-Doutoramento, University of Florida, 1998-1999

Publicado em Engenharia de Software, Livros, Tecnologia
4 comentários em “Tecnologias modernas para desenvolvimento de sistemas
  1. Gessé Dafé disse:

    Faaaaaala, Zé!!

    Olha que honra! Sou o primeiro a colocar um comentário no seu blog! 🙂
    Ainda não li esse livro que vc mencionou, mas vou correr atrás…
    E aí? Como andam as coisas no DPI? Tudo indo de vento em popa?
    Eu contiuo aqui em BH, firme e forte na área de desenvolvimento, batendo e apanhando para construir sistemas web de alta usabilidade (as pessoas chamam de web 2.0, mas eu não gosto do termo, acho pomposo demais, hehehe)… Tenho estado mergulhado em muito Java, Javascript e Ajax. Pelos locais onde passei até hoje o bam-bam-bam dos SGBDs continua sendo o Oracle, intocável, como Capone (e, sinceramente, faz jus à fama). Entre as linguagens de programação, a queridinha dos mineiros (minha também) parece ser o Java. Mas tô sempre de olho nas novidades que aparecem… Acho que fidelidade tecnológica nem sempre é muito lucrativa para o desenvolvedor de sistemas. Estou espantado com a velocidade como o PHP tem amadurecido… Lembro que na época da IFour a gente ralava pra fazer (simular) orientação a objetos. Hoje já existem até frameworks MVC! E continua rápido como uma bala!
    Outra onda forte que vem chagando é o Ruby, com uma produtividade espantosa… Vale a pena dar uma olhada.

    Só pra descontrair, vou deixar aqui os links de duas novas vertentes do mercado, hehehe (só sacanagem):

    http://br.geocities.com/veivmm/
    http://desciclo.pedia.ws/wiki/POG

    Um grande abraço, Zé! Fica com Deus!

    Gessé

  2. Ricardo 97 disse:

    Fala Zé!! Estou tendo o prazer de comentar o seu blog. Show de bola!

    Bom, em relação aos métodos ágeis, tive a oportunidade de usar eXtreme Programming durante 3 meses, e vou dar meu depoimento, valendo de tudo que aprendi na minha humilde carreira de 3 anos e meio como profissional Java.

    Nós estudamos todas as técnicas propostas pelo XP, e o dia-a-dia foi marcado pelo seguinte:
    1 – User stories: descrevem com simplicidade o que o CLIENTE quer. Comparando com os requisitos do método tradicional, considero que a facilidade desse item é você não ter que ser treinado na padronização dos formatos de documento do lugar onde vc trabalha. Elas são bem simples (se não forem, devem ser “quebradas” em atividades menores) e fazem os desenvolvedores se focarem constantemente no que o cliente deseja.

    2 – Test first: esse item eu considero revolucionário! Passei a adotá-lo para tudo, após essa experiência. Você deve escrever testes para todas as suas classes antes de implementá-las. Isso te ajuda a considerar os requisitos sem ainda ter passado pelas dificuldades técnicas de implementá-la, deixando sua mente livre para uma validação mais criteriosa. Outra vantagem é a confiabilidade na hora de modificar código. Acaba essa história de medo de manutenção, já que após a implementação da nova versão, você simplesmente roda os testes relacionados, e vê se os resultados estão de acordo. Quando saí da empresa que estava usando XP, estávamos chegando ao nível de ter todas as classes e todo o conteúdo da página web testados (a única validação do sistema que não era automática era a de layout). E quando algum erro é pego, verificamos que simplesmente os testes estavam incompletos, então adicionávamos o que estava faltando.

    3 – Pair programming: isso não deu certo por lá, em nenhuma das 4 duplas montadas e foi substituído por um plugin para o Eclipse para revisão de código. Semanalmente fazíamos reuniões com datashow para comentarmos os códigos de todos os companheiros. A minha opinião é de que a verificação de seu código por outras pessoas é extremamente válida, mas o desenvolvimento da implementação em si é muito pessoal, dependendo muito de inspiração… e inspiração a 2 é f…..

    Basicamente isso foi o que ficou “entranhado” pelo dia-a-dia.
    Pessoal, isso é só o resultado da minha observação. Não pretendo aqui falar sobre certo e errado, nem explicar o XP (http://www.extremeprogramming.org/rules.html).
    Abraço a todos!

  3. marcilio disse:

    Opa. Boa Ricardo. Entrei pela primeira vez e já vou palpitar!

    Sobre MDA, de fato é uma promessa que está vindo com tudo, o problema é sua forte dependência de ferramentas para utilização (e reutilização!) de modelos.
    Quem quiser conhecer algumas ferramentas, considero estas mais importantes, (fico a vontade para listar pois não trabalho em nenhuma das empresas relacionadas e algumas iniciativas são FREE):

    – AndroMDA. http://www.andromda.org/ (open source)
    – Optmal-J: http://www.compuware.com/products/optimalj/
    – Borland together. http://www.borland.com/br/products/together/index.html.

    Outras que prometem seguir os padrões MDA, mas ainda não totalmente compatíveis:
    – Eclipse Modeler Framework (EMF). http://www.eclipse.org/emf. (free)
    – Rational Software Modeler. http://www.ibm.com/products/br/.

    abraço!
    Marcílio

  4. Levi disse:

    Ainda sobre os BDs relacionais, talvez o seu permanente sucesso (além dos que você citou) esteja nos frameworks que inserem mais uma camada na sua aplicação, fazendo com que se possa trabalhar com objetos e persisti-los de forma transparente em seu BD relacional.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: