You are on page 1of 37

Principais diagramas da UML

Projeto Web MVC usando os


conceitos da UML

1
Objetivo
Entender o que e como funciona na prtica a Linguagem de Modelagem Unificada
conhecida como UML e seus principais diagramas. A partir dos conceitos
apresentados aqui, irei demonstrar fundamentos bsicos da criao de um projeto do
zero, como dividir o problemas em partes retratando e utilizando a UML (s os
principais diagramas), e por final criar uma soluo no Visual Studio.

A ideia principal mostrar como podemos comear um projeto atravs de uma boa
anlise e repartindo o sistema e blocos para se ter um bom entendimento do que fazer
e mostrar, como pensar em solues e evitar erros no desenvolvimento de um projeto.

No importa qual projeto voc tem em mente, pode ser uma aplicao desktop, web
ou mobile o conceito ser tratado da mesma maneira. No importa qual a linguagem
ou o banco de dados utilizados, isso no mudar a forma de como ser projetado o
seu sistema, mas sim, como definir o escopo, qual plataforma e linguagem que ser
utilizada, modelar o sistema em partes para se ter um bom planejamento do que
fazer.
Ateno, no descreverei todos os diagramas da UML, apenas mostrarei conceitos
bsicos mais utilizados para criao de um projeto, isso tornaria os slides muito
longos, portanto, manterei o foco na objetividade da UML e somente os diagramas
principais mais utilizados. Objetivo modelar nosso sistema com alguns conceitos de
UML para que podemos obter maior produtividade no desenvolvimento.

2
Introduo a UML
A UML (Linguagem de Modelagem Unificada) uma linguagem criada para
visualizar, especificar, construir e documentar artefatos de um sistema de software.
A UML no uma metodologia de desenvolvimento de software, o que significa
que ela no diz o que voc deve fazer primeiro no desenvolvimento de um
software ou muito menos como projetar seu sistema, a UML apenas tem como
objetivo auxiliar e visualizar seu desenho e a comunicao entre os objetos.
A UML prov um conjunto de diagramas e seus componentes todos em conotao
(semntica) bem definidos, com isso possvel atravs de diagramas visualizar
cada parte do software e como ela ser retratada. Seguir os conceitos da UML
saber definir a raiz do problema antes que ele seja desenvolvido ou implementada,
conseguir localizar erros, pensar em solues ates mesmo do desenvolvimento
do projeto.

3
Diagrama de Caso de Uso
O diagrama de caso de uso um diagrama da UML que tem como finalidade
representar a interao entre o ator e o sistema e seu comportamento, cujo seu
objetivo facilitar a comunicao entre o sistema e o analista. Um diagrama de
caso de uso representado por:

- Atores;
-Caso de usos;
- Relacionamento entre estes elementos

Um caso de uso uma sequncia de transaes executadas por um sistema,


que produz um resultado mensurvel de valores para um ator em particular.

4
Ator um usurio do sistema, que pode ser
um usurio humano ou um sistema
operacional, ou seja, o que vai se interagir
com o sistema.

Ator no diagrama de caso de


uso representado desta
maneira

5
Perguntas a serem usadas para auxiliar na identificao dos casos de uso
do sistema

Algum ator criar, armazenar, mudar, remover, ou ler informaes do sistema?


Que casos de uso criaro, armazenaro, mudaro, removero, esta informao?
Algum ator precisar informar o sistema a respeito de mudanas repentinas?
Algum ator necessita ser informado de certas ocorrncias no sistema?
Que casos de uso suportaro ou mantero o sistema?
Todas as aes ser executada pelo ator?
Todas as necessidades funcionais podem ser executadas pelos casos de uso?

6
Diagramas de Classes
o paradigma mais utilizado na UML, representado os tipos de objetos de um
sistema, podendo ser mapeado diretamente para uma linguagem orientada a
objetos tratando- se de uma estrutura lgica esttica mostrando elementos
declarativos de modelo, como classes, tipo e seus respectivos contedos e
relaes. Vejamos o exemplo abaixo:

7
Relacionamentos
As classes possuem um relacionamento entre elas (para comunicao), ou seja,
compartilham informaes entre si e colaboram umas com as outras.
Os principais tipos de relacionamentos so: Associao, Agregao/Composio,
Generalizao e Dependncia.

Associao entre as classes um relacionamento estrutural que indica que os


objetos de uma classe esto vinculados a objetos de outra classe.

NomedaClasse 1 * NomedaClasse

atributo1: tipo atributo1: tipo


atributo2: tipo atributo2: tipo

Mtodo( ) Mtodo( )
8
Agregao um tipo de associao ( parte de, todo/parte) onde o objeto
parte um atributo de todo, a existncia do objeto-parte faz sentido, mas no
existindo o objeto todo.

Composio diferente de Agregao um relacionamento de conteno.


Um objeto contm (elementos) e esses elementos do objeto depende dele
para poder existir. Um exemplo disso seria a imagem acima pedido contm
itens.

9
Generalizao Tambm conhecida como herana representa suas
dependncias e hierarquias, ou seja uma Subclasse que herda itens especficos
da Superclasse.

Dependncia representa a dependncia entre as classes indicando que os


objetos de uma classe usam servios dos objetos de outra classe. No exemplo
abaixo a classe Pedido depende de algum servio da classe Cliente

10
MER (Modelo de Entidade e
Relacionamento)
O Modelo de Entidade e Relacionamento mais conhecido como MER, um modelo
conceitual onde se descreve o banco de dados representado por um Entidade e
Relacionamento (ER). No diagrama ER, utiliza-se smbolos grficos para
representar os requisitos dos usurios.

Entidade pode ser considerada por um objeto que identificado de forma nica em
relao aos outros objetos. Aps um levantamento de requisitos, pode se ter uma
ideia de como ser desenhado o MER e quantas entidades podem existir em um
determinado projeto.

Atributos so caractersticas de informaes que contm cada entidade, dessa


forma, possvel ligar os atributos as entidades atravs de uma linha, assim
possvel identificar tambm cada informao e a quem pertence, ficando clara a
funcionalidade do projeto.

Relacionamento a definio que se d as entidades, uma vez que as entidades


so identificadas deve-se ento definir como se d o relacionamento entre elas.

11
Atributos

Um exemplo a Tabela
Relacionamento
Contato_Cliente que se relaciona
com a tabela Cliente onde um
cliente pode ter vrios contatos.

12
Observao
Foi apresentado um dos principais diagramas da UML, com isso possvel
criar um projeto pequeno usando como base esses diagramas. Como fase
inicial do projeto, necessrio modelar o sistema para que se consiga
enxergar os problemas e encontrar solues antes mesmo de partir para o
desenvolvimento. Claro que no pude descrever todos os diagramas e suas
respectivas funcionalidades, isso levaria mais tempo e a ideia criar um
projeto simples mas que tenha como intuito tirar as ideias do papel e separar
os problemas em partes, modelando e encontrando solues eficazes para os
problemas.

Criaremos um projeto para o ambiente web usando as seguintes ferramentas:


- SQL Server (Banco de dados) ;
- Visual Sutudio 2013 usando linguagem C# (para o desenvolvimento);
- Astah (diagramas UML)

13
Ferramentas
O primeiro passo modelar nosso sistemas criar as classes que vamos utilizar,
os objetos e modelar nosso banco de dados. Para isso vamos utilizar a
ferramenta de modelagem Astah , com ela criaremos todos os nossos
diagramas essenciais para o projeto.
No link abaixo faremos o download da verso astah community.
Link: http://astah.net/download

astah community.

14
Criando o Diagrama de Casos de Uso
Aps instalado o astah vamos criar o nosso primeiro o diagrama de casos de
uso. No meu superior seleciona a opo Diagram -> UseCaseDiagram

15
Voc ver uma tela como esta, na parte superior tem as ferramentas necessrias
para se construir o caso de uso, selecionando estas ferramentas voc dever
criar seu caso de uso de acordo com a imagem abaixo. O ator que aquele que
interage com o sistema, podendo realizar o CRUD do cliente, produto, pedido e
usurio. Cada elipse representa os elementos que iremos interagir e com eles
suas classes e tabelas do projeto, assim sendo, faremos um crud para cada um
deles.

16
17
OBS: Fizemos o CRUD do cliente, com isso sabemos que nosso sistema ir
incluir, alterar, excluir e consultar um cliente. Faa isso para Pedido, Produto e
Usurio.
Com isso, a parte de Cliente do nosso sistema j est modelada. =)

18
Criando Diagrama de Classes

19
Fizemos nosso diagrama de classes, com base nesse diagrama criaremos
nossas classes no projeto. Podem ver que se trata de um projeto simples,
ento tentei deixar o mais bsico e didtico possvel para termos uma ideia de
como comear um projeto e modelar a partir dos diagramas da UML.

Agora que j fizemos o diagrama de caso de uso e nosso diagrama de


classes, o prximo passo partirmos para o desenvolvimento. Ento, vamos
comear a criar o MER (Modelagem de Entidade e Relacionamento) no banco
de dados. Agora que j temos as classes modeladas vamos criar nosso banco
e suas principais tabelas, e claro que vamos nos basear em nossa
modelagem.

20
Criando nosso banco e dados

Primeiro passo criar um banco


dados, neste criei o banco
GerenciadorPedidos

21
Segundo passo criar as tabelas
do nosso banco de acordo com
o diagrama: Cliente, Usurio,
Produto e Pedido

22
23
Terceiro passo criar o relacionamento entre as tabelas, ou seja,
as FK. Neste caso a tabela Pedido ir se relacionar com Cliente e
Produto. Execute o script abaixo no seu banco para criar as FKs

24
Criando o Projeto no Visual Studio
Agora que j temos nosso banco de dados pronto, o prximo passo criar o
projeto no visual studio seguindo de base a modelagem feita anteriormente do
nosso sistema. Com o visual studio aberto vamos criar um projeto novo
conforme a imagem abaixo.

25
Selecione a opo MVC e clique em OK

26
Aps criado o projeto em mvc ser aberta uma tela como esta. Normalmente separa-se
as camadas por projetos, com isso criarei as 3 principais camadas que so: DALL
(acesso a dados), BLL (camada de negcios), UI (camada de apresentao) e UnitTest
(camada de testes unitrios). Com o boto direito em cima da solution vamos add um
novo projeto DALL.

27
Com o boto direito na solution selecione Add New Project Web Application e crei
os projetos DALL, BLL e Unit Test conforme a imagem abaixo, e renome o projeto
principal para GerenciadorPedidosWebUI que ser nosso projeto principal contendo as
classes do MVC (Model, View e Controllers.

28
No projeto GerenciadorPedidosWebUi vamos clicar com o boto direito do mouse na
pasta Model e criar todas as classes e suas propriedades do nosso projeto seguindo o
diagrama de classes. OBS: ao criar o projeto MVC, por padro j criado classes no
projeto, contudo vamos excluir essas classes que no sero utilizadas e criar somente
as classes que foram definidas no diagrama de classes. Na View deixaremos somente a
pasta Shared, que poder ser usada posteriormente.

29
Agora faa o mesmo para as outras classe Pedido, Produto e Usuario

30
Dentro do projeto DALL vamos criar duas pastinhas Data.Base onde incluiremos nosso
modelo de dados, e Interface onde nela possuir as interfaces de nossas classes .

DataBase
Interface

31
Boto direito em cima do projeto GerenciadorPedidosDALL -> Add -> Class e crie todas
as classes que ser usada em nosso projeto conforme a imagem abaixo, e mantenham a
extenso do nome para melhor padronizao e organizao.

32
Dentro da pasta Interface crie as principais classes, as mesma criada no projeto DALL, ao
invs de selecionarmos Class selecione Interface conforme a imagem abaixo e faa para
o restante.

33
Conforme a imagem abaixo criamos os mtodos desta interface o CRUD e como
parmetro passamos a classe e o objeto. necessrio add nas referncia o projeto web
onde contm a classe de modelo. Faa o mesmo para as outras interfaces.

Para adicionar as referncias clique com o boto direito do mouse em


References Add e selecione a referencia do projeto web.

34
Aps criado a interface da classe agora o prximo passo criar as classes na DALL, para
que a classe Cliente possa herdar os mtodos da ICliente. O procedimento ser o
mesmo para as outras classes, no esquea de incluir a namespace da model

35
Consideraes
Agora que foram criadas as classes cliente nas camadas, faa o restante para:
Pedido, Produto e Usurio.

Agora podemos entender como a UML funciona e como ela faz diferena na
modelagem de um sistema, embora muitas pessoas no a utilizem, eu a
recomendo, pois antes de comearmos a desenvolver um software precisamos
colocar no papel o que devemos fazer para que quando chegarmos na parte da
codificao no teremos tantos erros e saberemos o que exatamente devemos
fazer.

Resolvi fazer este artigo pois, no inicio da minha carreira acadmica sempre tive
vontade de criar algo mas no sabia como comear, e no tinha achado nada
na internet que pudesse me orientar de alguma forma como modelar. Por isso
espero que gostem desse artigo e espero tambm que possa ajuda-los de
alguma forma a entender melhor sobre modelagem de sistemas e ajude a criar
seus projetos de uma forma simplifica.

36
Sobre
Jssica Nathany Carvalho Freitas
Graduada em Sistemas de Informao
Trabalho atualmente como programadora .NET
GuitHub: https://github.com/JNathany
Email: jessicanathany.web@gmail.com
Site: www.jncoder.com.br

37

You might also like