RSS
Desenvolvimento

Estudo sobre Engenharia de Software

imprimir
Publicado em: 14/02/2008  |  Desenvolvimento  |  Visualizações: 4.326  |  1 Comentário(s)
Peculiaridades

A Engenharia de Software trata-se de uma área do conhecimento da informática voltada para a especificação, desenvolvimento e manutenção de sistemas de software aplicando tecnologias e práticas da Ciência da Computação, Gerência de Projetos, dentre diversas outras disciplinas, objetivando organização, produtividade e qualidade.

Preocupam-se atualmente essas tecnologias com as linguagens de programação, bases de dados, ferramentas, plataformas, bibliotecas, padrões, processos e a primordialmente com a qualidade do software. Os alicerces científicos da engenharia de software envolvem o uso de modelos abstratos e precisos, os quais permitem ao engenheiro especificar, projetar, implementar e manter sistemas de software, com a finalidade de avaliar e garantir sua qualidade.

Ademais, deve a engenharia de software desenvolver mecanismos para o planejamento e gerenciamento do processo de desenvolvimento.

Importa destacar o entendimento de Friedrich Ludwing Baues, que a "engenharia de software é a criação e a utilização de sólidos princípios de engenharia a fim de obter software de maneira econômica, que seja confiável e que trabalhe eficientemente em máquinas reais". Valendo frisar que o próprio significado de engenharia já traz os conceitos de criação, construção, análise, desenvolvimento e manutenção.

Já a Engenharia de software concentra-se nos aspectos práticos da produção de um sistema de software, enquanto a Ciência da Computação estuda os fundamentos teóricos dos aspectos computacionais.

Em 1.960 pela primeira vez é usado o termo "Engenharia de Software", mas oficialmente somente em 1.968 fora mencionado na "Nato Conference on Software Engineering". A Engenharia de Software surge numa tentativa de aprimorar a crise do software e dar um tratamento de engenharia, o qual daria mais ênfase sistemática e controlada ao desenvolvimento de sistemas de software complexos.

O sistema de software complexo é caracterizado pelo conjunto de componentes abstratos de software (estruturas de dados e algoritmos) encapsulados como procedimentos, funções, módulos, objetos ou agentes e interconectados entre si, os quais compõem a arquitetura do software e que deverão ser efetuados em sistemas computacionais.

É a engenharia de sistemas uma área ampla, uma vez que trata de todos os aspectos de sistemas baseados em computadores, pois engloba desde hardware e engenharia de processos até o software.

É o processo de Engenharia de Software uma seqüência lógica de práticas, a qual designa o desenvolvimento ou evolução de sistemas de software. Tais práticas, por sua vez, englobam atividades tais como as de especificação, projeto, implementação, testes e caracterizam-se pelo intercâmbio de ferramentas, pessoas e métodos.

Modelos de Processo de Software

Um modelo de processo de software pode ser visto como uma representação, ou abstração dos objetos e atividades envolvidas no processo de software. Além disso, oferece uma forma mais abrangente e fácil de representar o gerenciamento de processo de software e conseqüentemente o progresso do projeto.

Exemplos de alguns modelos de processo de software:

>>Seqüencial ou Cascata (do inglês waterfall) - com fases distintas de especificação, projeto e desenvolvimento.
>>Evolucional - especificação, projeto e desenvolvimento são entrelaçados.
>>V-Model - Parecido com o modelo cascata, mas com uma organização melhor, que permite que se compare com outros modelos mais modernos.
>>Espiral - evolução através de vários ciclos completos de especificação, projeto e desenvolvimento.
>>Componentizado - reuso através de montagem de componentes já existentes.
>>Formal - implementação a partir de modelo matemático formal.
>>Ágil.
>>RAD.
>>Quarta geração.

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.

Um abraçao a todos.


Links Patrocinados

 interatividade
versão para impressão envie por e-mail 1 Comentário(s) comentários compartilhe
 
Preencha o formulário para comentar:
Nome:*

E-mail:* (não será exibido)

Site: (http://)

Comentário:*

Deseja receber os comentários no e-mail?

Anti-spam: (nova imagem)





Thais Marinho

Publicado em: 22/04/2008 - 13:05

artigo mto bom, esclareceder. Estou precisando de algo mais sobre o crystal clear. agradecida

 

Autor


Bruno Moraes
Ola Tenho conhecimento sobre toda area de web-sites,Sou desenvolvedor na plataformas Php,asp.net ,Fl.


Todas as matérias de Bruno Moraes



Links Patrocinados

Mais populares

Matérias relacionadas

© 2005 - 2008 - Oficina da Net - v 4.0 - É proibida a reprodução parcial ou completa do conteúdo deste site sem autorização por escrito. Resolução adequada: 1024x768px.