Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login

Modelagem de software com UML - Parte 1- Easy Java Magazine 4

Neste artigo falaremos sobre a importância da modelagem, as atividades gerais do desenvolvimento de software e como utilizar a linguagem UML em cada uma dessas atividades.

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login

(opcional) Onde podemos melhorar?

Confirmar voto
0
 (2)  (0)

De que se trata o artigo:

Neste artigo falaremos sobre a importância da modelagem, as atividades gerais do desenvolvimento de software e como utilizar a linguagem UML em cada uma dessas atividades.


Para que serve:

Visa mostrar ao leitor a importância da utilização da linguagem UML no processo de modelagem, bem como as atividades realizadas durante o desenvolvimento de um software.


Em que situação o tema é útil:

A utilização de modelos UML visa uma melhor estruturação do software, bem como uma padronização do processo de modelagem para facilitar a comunicação com o cliente e também entre os membros da equipe de desenvolvimento. UML tem uma importância crucial no desenvolvimento de software, pois ela aspira, entre muitas características, aumentar a qualidade do mesmo.

Autores: Celso André Rodrigues de Souza e Vítor E. Silva Souza

A modelagem é uma das principais atividades que levam à implementação de um bom software. Construímos modelos para comunicar a estrutura e o comportamento desejados do sistema, visualizar e controlar a arquitetura do mesmo e compreender melhor o sistema que estamos elaborando.

A modelagem de software utiliza vários modelos para projetar um determinado sistema. Um modelo é uma simplificação da realidade, criado para facilitar o entendimento de sistemas complexos. Estes modelos podem abranger planos detalhados, assim como planos mais gerais com uma visão panorâmica do sistema.

Todos os sistemas podem ser descritos sob diferentes aspectos, com a utilização de modelos distintos, onde cada modelo será, portanto, uma abstração específica do sistema. Os modelos podem ser estruturais, dando ênfase à organização do sistema, ou podem ser comportamentais, dando ênfase à dinâmica do sistema.

De acordo com Booch, Rumbaugh e Jacobson [1], há quatro objetivos principais para se criar modelos:

1. Eles ajudam a visualizar o sistema como ele é ou como desejamos que ele seja;

2. Eles permitem especificar a estrutura ou o comportamento de um sistema;

3. Eles proporcionam um guia para a construção do sistema;

4. Eles documentam as decisões tomadas no projeto.

Através dos modelos, conseguimos obter múltiplas visões do sistema, particionando a complexidade do sistema para facilitar sua compreensão, e atuando como meio de comunicação entre os participantes do projeto. Portanto, uma linguagem de modelagem padronizada, tal como a UML, é fundamental para a construção e o entendimento de bons modelos.

Se você quiser construir grandes softwares, o problema não se restringirá a uma questão de escrever grandes quantidades de código – de fato, o segredo está em elaborar o modelo correto e pensar em como será possível elaborar menos código, com maior confiabilidade e qualidade. Isso faz com que o desenvolvimento de software de qualidade se torne uma questão de arquitetura, processo e ferramentas, reduzindo um pouco a responsabilidade da implementação.

Princípios de modelagem

Segundo Booch, Rumbaugh e Jacobson [1] há quatro princípios de modelagem, os quais são citados a seguir.

A escolha dos modelos a serem criados tem profunda influência sobre a maneira como um determinado problema é atacado e como uma solução é definida.

Em relação aos softwares, a escolha de modelos poderá ser modificada, de maneira significativa, de acordo com a visão de mundo do projetista. Projetistas distintos podem criar modelos bastante variados entre si, dados os mesmos requisitos do software. Um ponto importante é que cada visão de mundo conduz a um tipo diferente de sistema, com custos e benefícios diversos. A visão de mundo, no caso do desenvolvimento de software, refere-se à experiência dos desenvolvedores e às tecnologias que eles conhecem.

Cada visão de mundo pode gerar modelos de sistema diferentes (as tecnologias e técnicas utilizadas nos sistemas podem ser diferentes). O modelo do sistema deve adequar-se não só aos requisitos do mesmo, como também aos conhecimentos da equipe de desenvolvimento. Criar projetos que utilizem tecnologias desconhecidas pela equipe pode atrapalhar o andamento do projeto, pois os desenvolvedores teriam que aprender essas novas tecnologias e como utilizar seus recursos.

Há várias técnicas de modelagem existentes e cada uma delas é adequada para um determinado problema. Uma técnica pode ser mais eficiente que outra em um caso, o que não significa que ela será a melhor em todos os casos. Dessa forma, saber qual técnica utilizar num determinado momento é um fator crucial para o sucesso do desenvolvimento de software de boa qualidade.

Cada modelo poderá ser expresso em diferentes níveis de precisão.

Os melhores tipos de modelos são aqueles que permitem a escolha do grau de detalhamento das informações, dependendo de quem esteja fazendo a visualização e por que deseja fazê-la. O diagrama de casos de uso, que será discutido nos próximos artigos dessa série, permite escolher o grau de detalhes que será mostrado. Com esse diagrama, podemos ilustrar as funcionalidades do software numa visão de alto nível. E a partir de cada caso de uso elaborado, podemos subdividi-lo em outros casos de uso mais específicos, o que aumenta o nível de precisão do diagrama.

Um usuário final dirigirá a atenção para questões referentes ao que será visualizado pela interface gráfica do sistema e para as funcionalidades do mesmo, enquanto o desenvolvedor moverá o foco para a maneira como o software deve funcionar.

Os melhores modelos estão relacionados à realidade.

Todos os modelos simplificam a realidade. Por isso, certifique-se de que sua simplificação não ocultará detalhes importantes.

De acordo com Booch, Rumbaugh e Jacobson [1], o tendão de Aquiles das técnicas de análise estruturada está no fato de não haver um relacionamento entre o modelo de análise e o modelo de projeto do sistema. Dessa forma, ao longo do tempo, aparecerá uma divergência entre o sistema concebido e o sistema projetado. Nos sistemas orientados a objetos, é possível estabelecer uma ligação entre várias partes do sistema, o que facilita bastante o desenvolvimento de sistemas complexos e o bom entendimento dos mesmos.

Nenhum modelo único é suficiente. Qualquer sistema não trivial será melhor investigado por meio de um pequeno conjunto de modelos quase independentes.

Nesse contexto, a expressão “quase independentes” significa modelos que possam ser criados e estudados separadamente, mas que continuam inter-relacionados. Podemos criar vários modelos distintos a partir de um modelo qualquer. Por exemplo, suponha que tenhamos criado um diagrama de casos de uso. A partir dele, podemos criar diagramas de atividades, de classes, de sequência, etc. Cada diagrama pode ser estudado independentemente, mas eles continuam inter-relacionados.

Segundo Booch, Rumbaugh e Jacobson [1], para compreender a arquitetura de sistemas é necessário recorrer a várias visões complementares e inter-relacionadas, tais como: a visão dos casos de uso (expondo os requisitos do sistema); a visão de projeto (capturando o vocabulário do problema a ser resolvido); a visão do processo (modelando a distribuição dos processos e das threads do sistema); e a visão da implementação (com o foco voltado para questões de engenharia de sistemas). Cada uma dessas visões poderá conter aspectos estruturais como também aspectos comportamentais. Em conjunto, elas representam a base do projeto de software.

Introdução à linguagem UML

A UML (Unified Modeling Language) foi desenvolvida por Grady Booch, James Rumbaugh e Ivar Jacobson. Cada um deles possuía sua própria sistemática de criar modelos e a UML é a junção dos pontos fortes dessas três abordagens, adicionando novos conceitos e visões de linguagem.

Antes da elaboração da Unified Modeling Language, existiam diversos padrões para se criar modelos de software, o que dificultava a elaboração de software por equipes que utilizassem padrões diferentes. Esta linguagem é uma maneira de padronizar a modelagem orientada a objetos de forma que qualquer sistema possa ser modelado da maneira apropriada, simples de ser atualizado e compreendido. UML é uma linguagem muito expressiva, abrangendo todas as visões necessárias ao desenvolvimento e implantação de sistemas de software em geral.

UML é uma linguagem padrão para a elaboração da arquitetura de projetos de software. Ela pode ser empregada para visualização, especificação, construção e documentação de artefatos de software.

Ela aborda o caráter estático e dinâmico do sistema a ser analisado. Além disso, UML leva em consideração, já no período de modelagem, todas as futuras características do sistema. Tais características estão relacionadas a trocas de mensagens entre as diversas partes do sistema, o padrão arquitetural adotado e os padrões de projeto utilizados no mesmo.

A linguagem UML é usada no desenvolvimento dos mais diversos sistemas, variando desde sistemas de pequeno porte, tais como um sistema de comércio eletrônico para uma livraria, a sistemas de grande porte, como um sistema de transações bancárias. Ela pode abranger várias características de um sistema em um de seus diagramas, sendo aplicada nas diferentes atividades do desenvolvimento de software, desde a especificação de requisitos até a implementação e os testes.

Atividades gerais do desenvolvimento de software

Desenvolver software envolve diversas atividades que são realizadas em momentos distintos, de acordo com o processo de desenvolvimento de software utilizado. A seguir, destacaremos seis dessas atividades – a especificação de requisitos, a análise, o projeto, programação, testes e implantação, bem como a importância da UML para as suas realizações.

"

A exibição deste artigo foi interrompida
Este post está disponível para assinantes MVP

Carregando
 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Ajude-nos a evoluir: você gostou do post?  (2)  (0)

(opcional) Onde podemos melhorar?

Confirmar voto
Compartilhe:
Ficou com alguma dúvida?