Desenvolvimento - Modelagem

A importância do Modelagem de Objetos no Desenvolvimento de Sistemas

Este artigo tem como objetivo expor a importância da modelagem na produção de um software. Inicialmente são mostradas as vantagens da utilização de modelos para um sistema e os problemas que podem ocorrer quando não é realizada nenhuma modelagem ou quando se utiliza modelagem incorreta. Depois, o artigo apresenta a técnica da modelagem baseada em objetos e a relevância de sua utilização.

por Evandro Camarini Espíndola



1. INTRODUÇÃO

Para se construir uma casa ou um prédio de qualidade, é essencial fazer um planejamento detalhado, com a finalidade de pensar sobre as formas de construção, fazer estimativas de tempo e material para a realização desse projeto.

O desenvolvimento de um software de qualidade é semelhante a este processo, pois também se trata de uma questão de arquitetura e ferramentas.

Softwares malsucedidos têm falhas específicas de cada um, mas todos os projetos bem-sucedidos são semelhantes em diversos aspectos. Um dos elementos que contribuem para o sucesso de um software é a utilização da modelagem.

Para fazer bons modelos deve-se utilizar uma linguagem de modelagem que seja dotada de diagramas que permitam a representação de sistemas simples ou complexos sob as diferentes visões, pois isso facilita o entendimento e padroniza a comunicação e a organização do problema.

Este artigo apresenta uma abordagem sobre a importância da modelagem de objetos em um projeto de software.

2. ABSTRAÇÃO

Abstração é o processo seletivo de determinados aspectos de um problema.

O objetivo da abstração é isolar aspectos que sejam importantes para algum propósito e suprimir os que não forem.

A abstração deve sempre visar um propósito para determinar o que é e o que não é importante.

3. A MODELAGEM

Um modelo é uma simplificação da realidade. Os modelos podem realizar planos detalhados, assim como planos mais gerais com uma visão panorâmica do sistema. Um bom modelo inclui detalhes e componentes de grande importância e omite os componentes menores que não necessitam de representação em determinado nível de abstração.

Na modelagem, podemos delimitar o problema que estamos estudando, dividindo-o em vários problemas menores, restringindo a atenção a um único aspecto por vez até chegar à solução.

Mesmo que não se utilize uma modelagem formal para desenvolver um software, sempre é feito algum tipo de modelo, mesmo que de maneira muito informal. Porém, esses modelos informais não oferecem uma linguagem que pode ser compreendida por outras pessoas facilmente.

No setor de softwares comerciais, muitas vezes os programas são inadequados para a empresa e não atendem às necessidades dos usuários, devido à produtividade e facilidade oferecidas pelas linguagens de programação visual, e quanto mais complexo for o sistema, maior será a probabilidade de ocorrência de erros, no caso de ter sido feito sem nenhum tipo de modelagem.

Na construção de um sistema simples, inicialmente a modelagem pode não ser tão necessária, mas a tendência de um sistema funcional é que ele se torne mais complexo ao longo do tempo, precisando de atualização e aperfeiçoamento. Portanto, à medida que o sistema evoluir e não houver nenhuma documentação com a modelagem, o trabalho será muito maior e ainda com o risco de ter um sistema mal-sucedido.

Qualquer projeto será beneficiado pelo uso de algum tipo de modelagem. Os modelos auxiliam a equipe a ter uma visão mais abrangente do funcionamento do sistema, e assim, desenvolvê-lo de forma mais rápida e correta.

4. A MODELAGEM IDEAL

Qualquer sistema precisa de algum tipo de modelagem. Mas deve-se escolher um tipo de modelagem que seja correto para o sistema.

Quando os modelos são adequados para o software que está sendo desenvolvido, os problemas são resolvidos mais claramente, mas quando se escolhe um modelo errado, ao invés de ajudar, ele pode complicar ainda mais o problema, causando confusões e desviando a atenção para detalhes que não são importantes para aquela situação.

Em qualquer situação, os melhores modelos são aqueles que permitem escolher o grau de detalhamento. Dependendo do sistema, um modelo que mostra a interação com o usuário, de execução rápida e simples, pode ser o ideal, mas, em outros casos, será necessário retornar a níveis mais baixos, como ao especificar interfaces para várias plataformas ou quando o sistema se depara com congestionamentos em uma rede.

5. DIFERENTES VISÕES

Um sistema pode ser analisado sob diferentes perspectivas, de acordo com a visão de quem vai realizar a análise.

Um desenvolvedor de banco de dados tem uma perspectiva direcionada a modelos de relacionamento entre entidades e tabelas, dando ênfase a procedimentos de armazenamento e eventos que os iniciam.

Na perspectiva de um profissional de análise estruturada, o foco será nos algoritmos, com o respectivo fluxo de dados de um processo para outro.

Se um sistema é construído a partir da perspectiva de um desenvolvedor orientado a objetos, provavelmente a arquitetura será centrada na interação entre classes e como essas classes funcionam em conjunto. Os conceitos baseados em objetos são os que resultam em arquiteturas mais flexíveis porque podem ser aplicados durante todo o ciclo de vida do sistema, desde a análise até o projeto e a implementação. As mesmas classes podem ser conservadas em todas as etapas, sem modificações, embora possam receber detalhes adicionais nas etapas finais.

6. A TÉCNICA DE MODELAGEM DE OBJETOS

A técnica de modelagem de objetos é uma metodologia que combina três tipos de modelos para descrever um sistema: modelo de objetos, modelo dinâmico e modelo funcional. São modelos a partir dos três pontos de vista mostrados anteriormente, que são relacionados, mas diferentes entes si, cada um abrange importantes aspectos do sistema, mas todos são necessários para uma descrição completa.

6.1 MODELO DE OBJETOS

O modelo de objetos descreve a estrutura estática de um sistema, isto é, a estrutura de seus objetos e os relacionamentos existentes entre eles em um determinado instante de tempo, os atributos e as operações que caracterizam cada classe de objetos.

Este é o mais importante dos três modelos porque é o que melhor representa a realidade, sendo mais adaptável às modificações.

Os modelos baseados em objetos apresentam uma intuitiva representação gráfica e são úteis para a comunicação com os clientes e para a documentação da estrutura do sistema.

Exemplo de um modelo de objetos representado por um diagrama de classes:

6.2. MODELO DINÂMICO

O modelo dinâmico descreve os aspectos de um sistema examinado as modificações ocorridas nos seus objetos e seus relacionamentos em relação ao tempo.

Os principais conceitos da modelagem dinâmica são os eventos, que representam os estímulos externos, e os estados, que representam o intervalo entre esses eventos e especificam o contexto em que são interpretados.

A representação gráfica é feita pelos diagramas de estados. Cada um desses diagramas mostra seqüências de eventos, estados e operações que ocorrem no interior de um sistema para cada classe de objetos.

Exemplo de um diagrama de estado:

Componentes:

6.3. MODELO FUNCIONAL

O modelo funcional abrange o que um sistema faz e mostra como os valores de saída de um processamento derivam do processo de entrada, independente da ordem em que os valores são processados.

É representado graficamente por meio do diagrama de fluxo de dados (DFD), que mostra o relacionamento funcional entre dados em um sistema, incluindo-se valores de entrada e saída e depósitos internos de dados.

Exemplo de um diagrama de fluxo de dados:

7. CONCLUSÃO

Os modelos são construídos para compreender melhor o sistema que está sendo desenvolvido.

A escolha dos modelos tem profunda influência sobre como uma situação é resolvida, pois a modelagem tem que ser adequada para o sistema.

Nenhum modelo único é suficiente. Um sistema pode ser analisado sob diferentes perspectivas.

A técnica de modelagem baseada em objetos é uma combinação de três modelos, a partir de três pontos de vistas, que podem ser estudados separadamente, mas que funcionam em conjunto, por isso, proporciona melhor entendimento dos requisitos, projetos menos complicados e sistemas de manutenção mais fácil.

8. REFERÊNCIAS

[1] BOOCH, Grady; RUMBAUGH, James; JACOBSON, Ivar. UML, guia do usuário. Rio de Janeiro: Campus, 2000.

[2] RUMBAUGH, James; BLAHA, Michael; PREMERLANI, William; EDDY, Frederick; LORENSEN, William. Modelagem e Projetos Baseados em Objetos. Rio de Janeiro: Campus, 1994.

[3] FURLAN, José Davi. Modelagem de Objetos através da UML. São Paulo: Makron Books, 1998.

Evandro Camarini Espíndola

Evandro Camarini Espíndola