Sucesso no desenvolvimento de software usando uma metodologia de desenvolvimento

Fonte: http://www.imasters.com.br/artigo/6566/des_de_software/sucesso_no_desenvolvimento_de_software_usando_uma_metodologia_de_desenvolvimento/

Sérgio dos Santos (e-mail) progamador e webdesigner – CPT – Centro de Produções Técnicas. Profissional especializado em Criação de sites e sistemas comerciais. Graduando em Sistemas de Informação pela FDV.

 As primeiras experiências dos programadores na construção de softwares mostraram que uma abordagem informal no desenvolvimento não era o bastante para se obter sucesso no processo. Projetos grandes e importantes estavam sem qualidade, com orçamento altíssimo e, além disso, sofreriam atrasos de anos. Por que, então, não usar uma metodologia de desenvolvimento de software para garantirmos uma qualidade no processo de desenvolvimento e também no produto final?

Nos anos 70, quando os gerentes de TI não tinham idéia de como desenvolver um software com qualidade, usando uma metodologia específica e também com uso de técnicas de engenharia de software, a idéia era de produzir softwares que fossem apenas eficientes. Porém, com o passar do tempo, essa visão ficou ultrapassada e, hoje em dia, fica claro que o desenvolvimento de software tem de gerar um produto que por si só seja eficaz, em tempo hábil, e com orçamento previsível.

A construção de software, quando não se usa as regras de engenharia de software, pode gerar perdas de renda ou, o que é pior, prejuízos incalculáveis para as organizações. O planejamento do processo de desenvolvimento de software é importantíssimo em se tratando de construção de sistemas robustos.

No processo de desenvolvimento de software, pode-se destacar:

  • Planejamento;
  • Análise de requisito;
  • Projeto;
  • Codificação;
  • Revisão;
  • Compilação; e
  • Teste.

É claro que, se não houver planejamento específico, organização de tarefas, direção eficaz e o controle de tudo isso, o resultado final do sistema será, no mínimo, péssimo, onde a manutenção do software seria horrível e dificilmente sustentável.

Com isso, o desenvolvimento de software fica em crise. Os custos de hardware caem enquanto os de software sobem rapidamente. Novas técnicas e novos métodos fazem-se necessários para controlar a complexidade inerente aos grandes sistemas de software.

As técnicas de engenharia de software não são, universalmente, utilizadas, infelizmente, pois para o cliente o que importa é visualizar tela pronta. E um processo de desenvolvimento de software com qualidade requer tempo que, muitas vezes, o cliente não está disposto a esperar.

Metodologia de desenvolvimento

Atualmente, muitos projetos de desenvolvimento de software são iniciados e não são terminados, e outros são terminados consumindo prazos e orçamentos bem acima do que foi planejado no início do projeto. Além disso, muitos softwares desenvolvidos possuem um nível muito baixo de qualidade. Por isso, torna-se necessário o uso de uma metodologia de desenvolvimento de software para ajudar a qualificar o produto final neste processo tão difícil.

Existem algumas metodologias, muito eficientes, para auxiliar o processo de desenvolvimento de software:

Modelo Cascata:

Análise de Requisito: O analista de sistema deve entender todo o problema e não fazer nenhum tipo de projeto ou codificação. Nesta fase, deve-se apenas conversar com o cliente, gestor do conhecimento, a fim de realmente entender o que o cliente está necessitando e colocar tudo de forma clara e objetiva no papel. É nesta fase que o analista decide qual linguagem de programação será usada para o desenvolvimento do sistema.

Projeto: Após o analista de sistemas ter entendido todo o problema, é hora de o projetista fazer os diagramas UML, fluxo de informação e desenho entidade relacional do banco de dados, dentre outros atributos do projeto do software.

Implementação: Nesta fase, será feita toda a codificação do sistema. O programador, com base no que o analista de sistema entendeu e validou junto ao cliente, analisando todo o projeto, deve codificar de forma eficiente e eficaz. O programador deve, além de digitar as linhas de código, de acordo com a linguagem de programação definida, deve decidir quais as estruturas de dados serão usadas.

Modelo Incremental:

Este modelo é uma evolução do modelo cascata. No modelo cascata, só se identificaria um erro quando já estivesse na fase de implementação; desta forma, o projeto sofreria uma perda enorme, pois teria que voltar na fase de análise de requisito e consertar este erro, e algumas vezes teria que fazer algum remendo e o sistema poderia ficar instável.

Já no modelo incremental, consegue-se a resolução dos principais riscos antes da realização de grandes investimentos, permitindo o feedback do usuário desde cedo, e a realização da integração e do teste de forma contínua, tornando possível a disponibilização de implementações parciais.

Como vantagem do desenvolvimento iterativo e incremental, tem-se que os riscos mais comprometedores são atacados primeiro e que, em casos de falhas, o sistema pode ser interrompido nas fases iniciais sem uma grande perda de tempo e investimento; e que uma porção do sistema pode ser desenvolvida e entregue enquanto uma outra parte do mesmo ainda está em desenvolvimento.

RUP – Rational Unified Process:

Segundo BOOCH (2000), uma das principais características do RUP é o uso da iteração que através de refinamentos sucessivos melhora o entendimento do problema. BOOCH (2000) afirma que o uso de uma linguagem de programação orientada a objetos e de notação UML para documentação de um projeto possibilitam a utilização de modelos visuais que, também, contribuem para a qualidade final do software. Quanto ao fato do processo de desenvolvimento de software sofrer mudanças sistemáticas de requisitos, o RUP consegue identificar estas mudanças e solucionar os problemas o mais rápido possível, isso porque o RUP fornece uma abordagem disciplinada para dividir atividades e responsabilidades no desenvolvimento do software.

Cada projeto tem suas peculiaridades; por isso, é importante fazer um planejamento antes de começar a desenvolver qualquer software. Para isso, identifique quais são os requisitos do software e, depois, escolha uma metodologia de desenvolvimento que, com certeza, o seu projeto terá uma qualidade superior à aquela que o seu cliente está esperando.

Referências Bibliográficas

BOOCH, G.; RUMBAUGH, J.; JACOBSON, I. UML, guia do usuário. Rio de Janeiro: Campus, 2000.

Anúncios

Deixe um comentário

Faça o login usando um destes métodos para comentar:

Logotipo do WordPress.com

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

Foto do Google

Você está comentando utilizando sua conta Google. 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 )

Conectando a %s