MÓDULO 9 – METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS O termo metodologia não possui uma definição amplamente aceita, sendo entendido na maioria das vezes como um conjunto de passos e procedimentos que devem ser seguidos no intuito de se obter o desenvolvimento de um sistema de informação. Segundo a definição de (Youndon,95), as metodologias de desenvolvimento são um conjunto de procedimentos, técnicas, ferramentas e documentações que auxiliam os responsáveis pelo desenvolvimento de sistemas em seus esforços na implementação de um novo sistema de informação. Uma metodologia é composta por fases e subfases que orientarão a equipe de desenvolvimento na escolha das técnicas mais apropriadas a cada estágio do projeto, e também no planejamento, gerenciamento, controle e avaliação do projeto de sistema de informação. Outros fatores que devem ser observados em uma metodologia de desenvolvimento é a seqüência de fases e a quantidade de tempo e esforços que são destinados a cada fase de desenvolvimento. 9.1 Metodologias estruturadas A primeira categoria de metodologias que iremos citar são as metodologias estruturadas. Elas se tornaram dominantes na década de 80, substituindo as metodologias anteriores que eram na maioria das vezes totalmente indisciplinadas. O enfoque adotado pela metodologia estruturada é totalmente passo a passo movendo­se de uma fase para outra. 9.1.1 Desenvolvimento em cascata A metodologia em cascata faz com que analista e usuários prossigam no desenvolvimento do sistema seguindo em seqüência de uma fase para outra. É interessante observar que os resultados importantes de cada fase são adicionados em papel, na maioria das vezes gerando uma quantidade enorme de páginas, sendo essas páginas apresentadas ao responsável pelo projeto para a aprovação ou não à medida que o processo de desenvolvimento passa de uma fase para outra. Se o projeto for aprovado e a fase que gerou a documentação é dada como finalizada, e uma nova fase de desenvolvimento é iniciada. Um dos problemas do desenvolvimento em cascata é o de voltar para uma fase anterior, sendo um procedimento extremamente complicado. Vantagens: 1. Identifica os requisitos do sistema antes da programação ser iniciada. 2. As alterações que são feitas nos requisitos são minimizadas à medida que o projeto prossegue. Desvantagens: 1. O projeto deve ser completamente especificado no papel antes da programação ser iniciada.
2. Existe um longo tempo entre a fase de análise do sistema e a sua entrega, levando muitas vezes meses ou anos. 9.1.2 Desenvolvimento de sistemas paralelo Tem como principal objetivo o tratamento dos longos atrasos que existem entre as fases de análise e a entrega do sistema. O desenvolvimento em cascata divide o projeto em subprojetos distintos que são projetados e implementados em paralelo. Depois de concluídos todos os subprojetos, são feitas integrações das partes que estão separadas. Vantagens: Reduz o tempo necessário para a entrega do sistema. Desvantagens: Na maioria das vezes os subprojetos não são totalmente independentes. 9.2 Desenvolvimentos RAD (Rapid Desenvolvimento de aplicações rápidas) Application Development – O desenvolvimento RAD surgiu nos anos 90, com a missão de lidar com as fragilidades existentes no desenvolvimento estruturado, principalmente os longos períodos para o desenvolvimento dos sistemas e a dificuldade no entendimento do sistema que está descrito totalmente em papel.
O RAD proporciona o desenvolvimento rápido de algumas partes do sistema, ajustando o seu ciclo de vida de desenvolvimento. Com isso é possível que algumas partes do sistema cheguem logo as mãos dos usuários antes do sistema está completamente concluído. No RAD são utilizadas técnicas e ferramentas especiais para acelerar as fases de análise, projeto e implementação, utilizando as ferramentas CASE. Algumas metodologias podem ser centradas em processos, outras em dados e outras orientadas a objeto. 9.2.1 Desenvolvimento em fases O desenvolvimento em fases tem como característica a divisão do sistema em várias versões que são desenvolvidas seqüencialmente. Na análise é identificada a equipe de desenvolvimento, os usuários e os conceitos do sistema e o responsável pelo projeto fica encarregado de toda a categorização dos requisitos, sendo que os requisitos mais importantes do sistema são agrupados na sua primeira versão. Depois de agrupado todos esses requisitos, é feita a implementação dos mesmos gerando a primeira versão do sistema. Depois de gerada a primeira versão, é iniciado os trabalhos para o desenvolvimento da segunda versão, sendo combinadas novas idéias e questões que foram surgindo com as experiências adquiridas na primeira versão dos sistemas. Vantagens: ­ Coloca rapidamente uma versão útil do sistema em poder dos usuários. Desvantagens ­ O usuário começa a trabalhar com um sistema incompleto. 9.2.2 Desenvolvimento através de protótipos No protótipo as fases de análise, projeto e implementação são executadas simultaneamente e em ciclos até que o sistema esteja completamente concluído. A análise e o projeto do sistema são executados iniciando­se rapidamente a construção de um protótipo do sistema. Esse protótipo fornece ao usuário uma quantidade mínima de recursos, sendo normalmente a primeira parte que o usuário irá trabalhar, e nele são abordadas questões sobre reanálises, reprojetamentos e reimplantações de um segundo protótipo que fornecerá mais recursos. Esse ciclo será continuo e só é encerrado quando o sistema está completamente concluído. Depois que o protótipo é instalado, são feitos alguns refinamentos até que ele seja reconhecido realmente como um sistema.
Vantagem: ­ Fornece rapidamente um sistema onde os usuários poderão interagir. Desvantagem ­ A construção rápida de um protótipo do sistema desafia todas as tentativas de condução de uma análise criteriosa. 9.3 Desenvolvimento ágil O desenvolvimento ágil ainda está em processo de aceitação, sendo centrado na programação que possui poucas regras práticas, sendo todas essas regras fáceis de serem seguidas. São eliminadas a grande maioria dos modelos e documentações ganhando assim todo o tempo que seria utilizado para produzir essas tarefas. Os projetos que são enfatizados no desenvolvimento ágil incluem as aplicações simples e interativas. 9.3.1 Extreme programming – XP O desenvolvimento XP faz parte do quadro de desenvolvimentos ágeis possuindo como característica básica a codificação simples, sendo que toda essa codificação é sempre testada por dois desenvolvedores. Além da codificação simples, as interações com os usuários são mais curtas com o intuito de construir rapidamente um sistema. O XP requer um maior grau de disciplina na sua aplicação a fim de evitar que o projeto perca totalmente o seu foco e torne­se um caos total. A equipe de desenvolvimento em XP deve ser reduzida, não sendo recomendada a sua aplicação em sistemas de grande porte.
É necessário para a escolha da metodologia de desenvolvimento adequada:
·
·
·
·
·
·
Clareza dos requisitos do usuário;
Familiaridade com a tecnologia;
Complexidade do sistema a ser desenvolvido;
Confiabilidade do sistema a ser desenvolvido;
Cronograma com prazos curtos;
Visibilidade de cronograma. Quadro comparativo. Metodologias Habilidades Requisitos sem clareza Tecnologia não familiar Sistemas complexos Sistemas confiáveis Cronograma curto Visibilidade de agenda Estruturadas RAD Ágeis Cascata Pobre Paralelo Pobre Fases Boa Protótipo Excelente XP Excelente Pobre Pobre Boa Pobre Pobre Boa Boa Pobre Pobre Boa Boa Boa Pobre Boa Boa Excelente Excelente Pobre Pobre Excelente Excelente Pobre Boa Excelente Boa
Download

METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS O termo