domingo, 3 de junho de 2007

Modelos de Software

Modelos são essenciais em qualquer atividade de engenharia. O software, por ser um artefato invisível e conceitual, mas do que qualquer outro artefato, precisa ser construído com base em modelos.

Existem diversos tipos de modelos de software, cada um deles proporcionando visões e níveis de abstração distintos. Diagramas são a forma mais utilizada de modelagem na engenharia de software. Um protótipo também é um tipo de modelo de software que vem sendo utilizado para apoiar diversos métodos de desenvolvimento.

Modelos de software são construídos para uma visualização do sistema a ser construído, permitindo uma melhor compreensão e entendimento. Eles podem também ser utilizados para a especificação e para a documentação do software. O modelo quando utilizado para especificação possibilita uma descrição precisa do será desenvolvido pelos programadores. A documentação através de modelos deve refletir o que foi desenvolvido e será a base para as atividades de manutenção.

De acordo com Booch, Rumbaugh e Jacobsonm (1998), alguns princípios devem ser seguidos:

• A escolha de qual modelo construir tem uma profunda influência em como um problema é atacado e como uma solução é delineada.
• Todo modelo pode ser expresso em diferentes níveis de precisão.
• Os melhores modelos estão conectados à realidade.
• Nenhum modelo único é suficiente. Todo sistema não trivial é melhor abordado através de um conjunto pequeno de modelos proximamente independentes.

O uso de modelos em ambientes integrados de desenvolvimento de software vem sendo utilizado para auxiliar a construção de software. Algumas ferramentas permitem que código seja gerado a partir de modelos. Esta abordagem é conhecida como desenvolvimento dirigido por modelos e tem como base o uso de arquiteturas dirigidas por modelos que são construídas utilizando a UML (Linguagem de Modelagem Unificada).

Veja slides com conceitos e exemplos sobre modelos de software.

Linguagens de modelagem

Durante muitos anos, o maior problema para a utilização de modelos de software foi a falta de uma linguagem de modelagem comum. As diferentes notações e linguagens existentes foram desenvolvidas visando software com características especificas. Por exemplo, desenvolvedores de software de controle e tempo real utilizavam notações como Statecharts e Redes de Petri; desenvolvedores de sistemas de banco de dados utilizavam Diagramas Entidade-Relacionamento (DER); e desenvolvedores de sistemas de informação utilizavam Diagramas de Fluxos de Dados (DFD), como parte de metodologias estruturadas.

Como o surgimento do paradigma de programação orientada-a-objetos, o número de métodos com suas notações associadas aumentou bastante, vindo somar-se aos diversos já existentes. No final da década de 90, o OMG (Objetc Management Group) incentivou a criação de uma linguagem padrão para métodos orientados a objetos. A UML que unificou diferentes notações já existentes foi aprovada para ser um padrão da industria de software.

Veja slides com uma visão geral da UML.