sexta-feira, 13 de junho de 2008

Engenharia de Software - parte 02

Oi Pessoal

Continua o post anterior.

Metodologias, Métodos e Ferramentas

Inicialmente importa destacar o termo metodologia, o qual é bastante controverso nas ciências em geral, em especial na Engenharia de Software. Muitos autores tratam os termos metodologia e método como sinônimos, mas nào está correto. Correto é afirmar que a metodologia envolve princípios filosóficos que guiam uma gama de métodos que utilizam ferramentas e práticas diferencidas para realizar algo.

A exemplo disso, pode-se citar a Metodologia Estruturada, a qual é composta por vários métodos, tal como Análise Estruturada e Projeto Estruturado (muitas vezes denominados SA/SD), e Análise Essencial. E tanto a Análise Estruturada quanto a Análise Essencial utilizam-se da ferramenta Diagrama de Fluxos de Dados para modelar o funcionamento do sistema.

Importa aqui, ilustrar tal conceituação para melhor esclaracer a questão:

>>Metodologias Estruturadas
>>Análise Estruturado
>>Projeto Estruturado
>>Análise Essencial
>>SADT
>>Metodologias Ágeis
>>Feature Driven Development (FDD)
>>Enterprise Unified Process (EUP)
>>Scrum
>>Crystal (Crystal Clear, Crystal Orange, Crystal Orange Web)
>>Programação Extrema (XP)
>>Outras Metodologias
>>Rational Unified Process (RUP)
>>Microsoft Solution Framework (MSF)

Processos de Software

Trata-se o processo de software ou, também chamado de metodologia de desenvolvimento de software, de um conjunto de atividades e resultados agregados que auxiliam na produção de software. Sendo que as dentre várias atividades associadas, por exemplo, existem a análise de requisitos e a codificação. Por sua vez, o resultado do processo trata-se de produto que conjetura a forma como o processo foi administrado.

E, muito embora existam vários processos para o desenvolvimento de software, existem atividades fundamentais comuns a todos eles, tais como:

Especificação de Software: trata-se da definição das funcionalidades, ou seja, dos requisitos e das restrições do software. Normalmente é uma fase em que o desenvolvedor e cliente tratam as necessidades reais da empresa para definir as características do software a ser desenvolvido.

Projeto e Implementação de Software: todo software é produzido para suprir as necessidades da empresa, ou seja, de acordo com as especificações. Nesta fase, contudo, serão propostos modelos através de diagramas, e estes modelos são praticados em linguagem de programação.
Validação de Software: essa fase é importante para garantir que todas as funcionalidades especificadas do software sejam praticadas.
Evolução de Software: primordial que o software evolua para continuar sendo útil ao cliente.
Muitos softwares são desenvolvidos por organizações sem a utilização de nenhum processo. Isso normalmente ocorre porque os processos tradicionais nem sempre são adequados às realidades das organizações.

Particularmente, empresas pequenas e médias não possuem recursos suficientes para adotar o uso de processos pesados. E por esse motivo, muitas organizações não utilizam nenhum processo. O resultado final desta falta de sistematização na produção de software é a falta de qualidade do produto final, além de embaraçar a entrega do software nos prazos e custos predefinidos e inviabilizar a evolução do software.

Muitos são os processos de software definidos na literatura da Engenharia de Software. Muito comum, as organizações inventarem seu próprio processo ou adaptar algum processo à sua realidade. E, conforme já dito nesse trabalho, várias são as metodologias tradicionais, que são orientadas a documentação, e as metodologias ágeis, as quais buscam desenvolver software com o mínimo de documentação e burocracia.



Att


Juliana Prado Uchôa
Microsoft Student Partner
Líder do grupo CHANNEL TI

Nenhum comentário: