N style="mso-spacerun: yes">capasql23.jpg

Clique aqui para ler todos os artigos desta edição

Abordagem do uso de framework e padrões de análise para projeto de banco de dados

 

            Viviane Cristina Dias, Carlos Alberto Marques Pietrobon

 

O desenvolvimento de sistemas computacionais ao longo dos anos nos mostra que esta é uma tarefa difícil, demorada e conseqüentemente cara. Muitos são os motivos, entre eles, o fato das aplicações estarem se tornando cada vez mais complexas, diversas categorias de pessoas (clientes, usuários, especialistas, programadores, etc) estarem envolvidas e ainda não termos tecnologia para desenvolver softwares complexos desde a sua concepção, rapidamente e com poucos erros.

Para solucionar este problema, a reutilização tem sido freqüentemente apontada como solução, pois as mesmas idéias ou códigos necessários em uma nova aplicação podem ter sido utilizados ou desenvolvidos em outro sistema feito anteriormente. Com isto se evitaria reprojeto e o desenvolvimento a partir do zero de muitas partes da nova aplicação.

A proposta de reutilização é inerente ao desenvolvimento de sistemas computacionais. Durante as décadas de 60 e 70, a idéia de reutilização centrava-se na idéia de reutilização de códigos de programas. Bibliotecas de funções, escritas em diversas linguagens de programação, foram criadas e disponibilizadas para que pudessem ser reutilizadas.

Com a evolução da engenharia de software, surgem normas que tratam da qualidade dos produtos e dos processos de software. Essas normas de modo geral são compostas por um conjunto de características e sub-características que devem ser avaliadas, previstas e projetadas no desenvolvimento do software.

Diante desta nova realidade, a reutilização de software é um fator que pode levar ao aumento da qualidade, incremento da produtividade e redução de custos na atividade de desenvolvimento de software. Isso é possível graças a essa perspectiva de reutilizar o que já foi pensado, desenvolvido e testado.

Considerando os benefícios que a reutilização proporciona, os projetistas sabem que não devem resolver cada problema a partir de princípios elementares ou do zero. Ao invés disso, eles reutilizam soluções que funcionaram no passado.

Um dos instrumentos que utiliza os conceitos de reutilização é o paradigma de orientação a objetos que tem, como um de seus princípios fundamentais, possibilitar a reutilização de classes existentes através de mecanismos como especialização e polimorfismo. Atualmente na área de engenharia de software, pesquisas sobre reutilização exploram conceitos como framework e padrões.

O uso de padrões na área de desenvolvimento de sistemas computacionais está se tornando cada vez mais importante devido a sua contribuição para reusabilidade e qualidade. O uso de padrões possibilita a disseminação do conhecimento e a troca de experiências entre projetistas, além de facilitar a comunicação entre os membros envolvidos no projeto.

Os padrões de projeto surgiram a partir da invenção de técnicas para a resolução de problemas clássicos do desenvolvimento de software e posterior catalogação das mesmas. Essa catalogação deve-se à comprovação de serem boas soluções e representarem idéias de excelentes programadores ao longo dos anos. Já o uso de frameworks (soluções implementadas de software na qual faltam partes a serem completadas para se obter o software desejado) tem a pretensão de aumentar ainda mais esse reaproveitamento, reutilizando análise, projeto, arquitetura de software, semântica de interação e testes.

Frameworks e padrões vêm sendo utilizados com sucesso em vários projetos de desenvolvimento de sistemas. Ultimamente, esses conceitos têm sido pensados e cada vez mais utilizados para projeto de banco de dados, com os mesmos propósitos de reuso e qualidade.

Com relação aos padrões, tem-se dado muita atenção aos padrões relacionados à fase de projeto do desenvolvimento de software. Entretanto, outras fases e aspectos do desenvolvimento de software podem ter padrões associados. Assim, temos padrões de teste, padrões de projeto de interface com o usuário, padrões de arquitetura de sistemas, etc. ...

Quer ler esse conteúdo completo? Tenha acesso completo