SlideShare uma empresa Scribd logo
Remixado por Neila Batista Xavier
Modelagem de Sistemas
UML
Introdução à Análise de Sistemas
Profª Neila Batista Xavier
Slides baseados nas aulas da Profa. Joyce Miranda dos Santos
Modelagem de Sistemas
 Como você construiria uma casinha de cachorro?
2 Licenciado em
Modelagem de Sistemas
 Como você construiria uma casinha de cachorro?
 PLANEJAMENTO
3 Licenciado em
Modelagem de Sistemas
 Desde que a nova casa seja razoavelmente grande e sem
muitas goteiras, seu cachorrinho ficará feliz.
4 Licenciado em
Modelagem de Sistemas
 E para construir uma casa pra sua família?
 Você precisará de um tempo maior e com certeza sua família será
mais exigente.
5 Licenciado em
Modelagem de Sistemas
 A menos que você já tenha experiência, será melhor fazer
um planejamento detalhado antes de prender o primeiro
prego ou iniciar a fundação.
6 Licenciado em
Modelagem de Sistemas
 Desde que você se mantenha fiel aos planos e permaneça
dentro dos limites e custos, provavelmente sua família
ficará satisfeita.
 Caso contrário, a solução não será mudar de família.
7 Licenciado em
Modelagem de Sistemas
 Se você realmente quiser construir softwares de
qualidade, o problema não se restringirá a escrever
grande quantidade de código.
 O segredo estará em criar o código correto e pensar em como
elaborar menos código.
 O desenvolvimento do software se torna uma questão de
métodos, processo e ferramentas.
8 Licenciado em
Modelagem de Sistemas
 Afinal, o que é um modelo?
 Um modelo é a simplificação da realidade.
 Um bom modelo inclui os componentes que possuem
ampla repercussão e omite componentes que não são
relevantes.
9 Licenciado em
Modelagem de Sistemas
 Por que fazer a modelagem?
 Construímos modelos para compreender melhor o sistema que
estamos desenvolvendo.
 Objetivos
 Visualizar o sistema como é e como desejamos que seja.
 Especificar a estrutura e o comportamento do sistema.
 Orientar a construção do sistema.
 Documentar as decisões tomadas.
10 Licenciado em
Modelagem Orientada a Objetos
 A visão tradicional do desenvolvimento de software
adota a perspectiva de um algoritmo.
 O principal bloco de construção é o procedimento ou a função.
 Essa perspectiva conduz os desenvolvedores a voltarem o seu
foco para questões como controle e decomposição de
algoritmos maiores em outros menores.
11 Licenciado em
Modelagem Orientada a Objetos
 Visão tradicional do desenvolvimento de software
 Problemas
 Não há separação entre conceitos e responsabilidades.
 Causando dependências enormes no sistema.
 À medida que os requisitos se modificam é difícil fazer a manutenção
de sistemas a partir do foco em algoritmos.
12 Licenciado em
Modelagem Orientada a Objetos
 A visão contemporânea adota um perspectiva orientada
a objetos.
 O principal bloco de construção é o objeto ou classe.
 Objeto
 É algo estruturado a partir do vocabulário do problema ou da solução.
 Classe
 É o conjunto de objetos comuns.
13 Licenciado em
Modelagem Orientada a Objetos
 Ex: Arquitetura simples com três componentes para um
sistema de cobrança.
 Na interface para o usuário você encontrará objetos como:
 Botões, menus, caixas de diálogo.
 No banco de dados você encontrará objetos como:
 Tabelas que representam entidades provenientes do domínio do
problema: clientes, produtos e pedidos.
 Na camada intermediária você encontrará objetos como:
 Transações e regras de negócio.
14 Licenciado em
Visão Geral da UML
 UML (Unified Modeling Language – Linguagem de Modelagem
Unificada)
 Linguagem visual utilizada para modelar softwares baseados no
paradigma orientada a objetos.
 Não é uma linguagem de programação
 É uma linguagem de modelagem que através de notações permite ao
engenheiro de software definir as características do sistema.
 Comportamento, estrutura lógica, dinâmica dos seus processos e até
necessidades físicas de equipamentos.
15 Licenciado em
Breve Histórico
 Anos 60 – 70
 COBOL, FORTRAN E C
 Métodos de Análise e Projeto Estruturado
 Final dos anos 60
 Simula (primeira linguagem a incorporar elementos de OO)
 Anos 80 e início dos anos 90
 ADA, Smalltalk e C++
 Primeiros métodos de OO
Licenciado em16
Por que orientação a objetos?
 O que ocorreu a partir de então?
 Utilização de OO em Sistemas Operacionais
 Evolução de linguagens, como:
 Object Pascal, C++, Java
 Passamos a ser usuários de OO:
 Delphi, Visual Basic, Java...
Licenciado em17
Por que orientação a objetos?
 O que buscamos ao modelar orientado a objetos ?
 Diminuição do tempo e custo de desenvolvimento
 Atendimento da demanda gerada pela evolução tecnológica
(celular, Palm, eletrodomésticos, ...)
 Reutilização de código, facilidade de manutenção
Licenciado em18
Surgimento da UML
UMLBOOCH OMT
OOSE
❑ Diagrama de Estados
❑ Diagrama de Objetos
(Colaboração)
❑ Diagrama de Processo
(Desenvolvimento)
❑ Diagrama de Módulos
(Componentes)
❑ Use Case
❑ Subsistemas (Package)
❑ Diagrama de Interações
❑ MiniEspecificação
❑ Diagrama de Estados
❑ Diagrama de Classes
Licenciado em19
Surgimento da UML
Licenciado em20
Mais Contribuições
Licenciado em21
Visão Geral da UML
 A UML é uma linguagem que tem por objetivo:
 Visualizar
 Especificar Artefatos de um sistema
 Construir
 Documentar
22 Licenciado em
Visão Geral da UML
 É uma linguagem, pois:
 Fornece um vocabulário e as regras de combinação das palavras
desse vocabulário com a finalidade de comunicar algo.
 Linguagem de Modelagem
 Linguagem cujo vocabulário e regras possuem seu foco voltado
para a representação conceitual e física de um sistema.
23 Licenciado em
Blocos de construção básicos da UML
Diagramas
 Um diagrama é a apresentação gráfica de um conjunto de
elementos (itens e seus relacionamentos)
 São desenhados para permitir a visualização de um sistema sob
diferentes perspectivas.
24
Visão
de Caso
de Uso
Visão de Processo
Visão de Projeto
Visão de
Implementação
Visão de
Implantação
Licenciado em
Blocos de construção básicos da UML
Diagramas
 Visão de Caso de Uso
 Descrevem o comportamento do sistema conforme é visto por seus
usuários finais, analistas e pessoal de teste.
 Visão de Projeto
 Formam o vocabulário do problema e da solução.
 Abrange classes, interfaces e colaborações.
 Proporciona um suporte para os requisitos funcionais do sistema.
25 Licenciado em
Blocos de construção básicos da UML
Diagramas
 Visão de Processo
 Apresenta o fluxo de controle entre as várias partes incluindo
mecanismos de concorrência e sincronização.
 Com o foco voltado para as classes ativas que controlam o sistema e as
mensagens que passam por elas.
 Visão de Implementação
 Abrange os componentes (partes modulares) e os artefatos utilizados
para a montagem e fornecimento do sistema físico.
26 Licenciado em
Blocos de construção básicos da UML
Diagramas
 Visão de Implantação
 Abrange os nós que formam a topologia de hardware na qual o sistema
é executado.
 Direciona a distribuição, o fornecimento e a instalação das partes que
constituem o sistema físico.
27 Licenciado em
Blocos de construção básicos da UML
13 Diagramas
Diagrama de
Classes
Diagrama de
Objetos
Diagrama de
Componentes
Diagrama de
Estruturas
Compostas
Diagrama de
Casos de Uso
Diagrama de
Seqüência
Diagrama de
Comunicações
Diagrama de
Gráficos de
Estados
Diagrama de
Atividades
Diagrama de
Implantação
Diagrama de
Pacote
Diagrama de
Temporização
Diagrama de
Interação
28 Licenciado em
Ferramentas
 O que são Ferramentas CASE?
 A sigla CASE significa “Computer-Aided Software
Engineering”.
 Traduzindo para um bom português: “Engenharia de
Software Auxiliada por Computador”.
Licenciado em29
Ferramentas
 Livres
 Umbrello
 ArgoUML
 Dia
 BOUML
 Fajuba
 StarUML
Licenciado em30
 Dia é um programa baseado em gtk+ para criação do
diagrama, liberado sob a licença GPL.
 É parte do projeto Gnome.
 Atualmente tem objetos especiais de lógica, entidade e
relacionamento, diagramas UML, fluxogramas, diagramas
da rede, e circuitos simples entre outros.
Licenciado em31
ArgoUML
 ArgoUML é uma ferramenta CASE baseada na notação
UML (Unified Modeling Language).
 Foi desenvolvido pela comunidade de desenvolvedores de
código livre Tigris vinculada a Universidade da Califórnia,
Berkeley.
 Sua interface é bem completa o que a torna um pouco
complexa de manipular.
Licenciado em32
 Umbrello é um Software de Modelagem UML, que é
integrado ao projeto KDE.
 Este software é utilizado para modelar o próprio projeto do
KDE por a grande de seus desenvolvedores que utilizam
UML.
Licenciado em33
 JUDE, agora Astah, é uma ferramenta profissional de
modelagem para sistemas a qual suporta UML,
diagrama entidade relacionamento, Flowchart, CRUD,
Mini Mapas e Diagrama de Fluxo de Dados.
 Permite também a conversão entre modelos UML, ER
Diagramas, Flowcharts, fluxo de dados e mini mapas.
 O nome do programa é um acrônimo de Java and UML
Developers Environment (Ambiente para Desenvolvedores
UML e Java).
Licenciado em34

Mais conteúdo relacionado

Mais procurados

Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
Nécio de Lima Veras
 
Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1
Adriano Tavares
 
Análise e projeto de sistemas de informação aula1
Análise e projeto de sistemas de informação   aula1Análise e projeto de sistemas de informação   aula1
Análise e projeto de sistemas de informação aula1
Gilberto Cysneiros
 
Introdução a engenharia de software aula 01
Introdução a engenharia de software   aula 01Introdução a engenharia de software   aula 01
Introdução a engenharia de software aula 01
Franklin Matos Correia
 
O (papel do) Arquiteto de Software
O (papel do) Arquiteto de SoftwareO (papel do) Arquiteto de Software
O (papel do) Arquiteto de Software
Peter Jandl Junior
 
Analise sistemas 05
Analise sistemas 05Analise sistemas 05
Analise sistemas 05
Caroline Raquel Rodrigues
 
Análise de Sistemas Orientado a Objetos - 01
Análise de Sistemas Orientado a Objetos - 01Análise de Sistemas Orientado a Objetos - 01
Análise de Sistemas Orientado a Objetos - 01
Danielle Ballester, PMP,PSM,SFC,SDC,SMC,SPOC,SCT
 
Introdução a engenharia de software aula 02
Introdução a engenharia de software   aula 02Introdução a engenharia de software   aula 02
Introdução a engenharia de software aula 02
Franklin Matos Correia
 
Desenvolvimento Iterativo-Incremental
Desenvolvimento Iterativo-IncrementalDesenvolvimento Iterativo-Incremental
Desenvolvimento Iterativo-Incremental
Ruan Carvalho
 
Engenharia de software
Engenharia de softwareEngenharia de software
Engenharia de software
Claudete Florencio
 
O emprego do_rup_na_uml_-_trabalho_poo_2012
O emprego do_rup_na_uml_-_trabalho_poo_2012O emprego do_rup_na_uml_-_trabalho_poo_2012
O emprego do_rup_na_uml_-_trabalho_poo_2012
Carlos Antonio Castro Oliveira
 
Arquitetura de Software Visão Geral
Arquitetura de Software Visão GeralArquitetura de Software Visão Geral
Arquitetura de Software Visão Geral
sergiocrespo
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De Software
Felipe Goulart
 
Ciclo de vida de software
Ciclo de vida de softwareCiclo de vida de software
Ciclo de vida de software
diha36
 
C:\Documents And Settings\Juliana\Desktop\Palestra 19 03 2010
C:\Documents And Settings\Juliana\Desktop\Palestra 19 03 2010C:\Documents And Settings\Juliana\Desktop\Palestra 19 03 2010
C:\Documents And Settings\Juliana\Desktop\Palestra 19 03 2010
Facuuldade Norte Sul
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
Aricelio Souza
 
03 Modelo de processo de software
03 Modelo de processo de software03 Modelo de processo de software
03 Modelo de processo de software
Waldemar Roberti
 
Analise sistemas 06
Analise sistemas 06Analise sistemas 06
Analise sistemas 06
Caroline Raquel Rodrigues
 
Análise de Sistemas Orientado a Objetos - 02
Análise de Sistemas Orientado a Objetos - 02Análise de Sistemas Orientado a Objetos - 02
Análise de Sistemas Orientado a Objetos - 02
Danielle Ballester, PMP,PSM,SFC,SDC,SMC,SPOC,SCT
 
02 Introdução à engenharia de software - conceitos fundamentais
02 Introdução à engenharia de software - conceitos fundamentais02 Introdução à engenharia de software - conceitos fundamentais
02 Introdução à engenharia de software - conceitos fundamentais
Waldemar Roberti
 

Mais procurados (20)

Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
 
Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1
 
Análise e projeto de sistemas de informação aula1
Análise e projeto de sistemas de informação   aula1Análise e projeto de sistemas de informação   aula1
Análise e projeto de sistemas de informação aula1
 
Introdução a engenharia de software aula 01
Introdução a engenharia de software   aula 01Introdução a engenharia de software   aula 01
Introdução a engenharia de software aula 01
 
O (papel do) Arquiteto de Software
O (papel do) Arquiteto de SoftwareO (papel do) Arquiteto de Software
O (papel do) Arquiteto de Software
 
Analise sistemas 05
Analise sistemas 05Analise sistemas 05
Analise sistemas 05
 
Análise de Sistemas Orientado a Objetos - 01
Análise de Sistemas Orientado a Objetos - 01Análise de Sistemas Orientado a Objetos - 01
Análise de Sistemas Orientado a Objetos - 01
 
Introdução a engenharia de software aula 02
Introdução a engenharia de software   aula 02Introdução a engenharia de software   aula 02
Introdução a engenharia de software aula 02
 
Desenvolvimento Iterativo-Incremental
Desenvolvimento Iterativo-IncrementalDesenvolvimento Iterativo-Incremental
Desenvolvimento Iterativo-Incremental
 
Engenharia de software
Engenharia de softwareEngenharia de software
Engenharia de software
 
O emprego do_rup_na_uml_-_trabalho_poo_2012
O emprego do_rup_na_uml_-_trabalho_poo_2012O emprego do_rup_na_uml_-_trabalho_poo_2012
O emprego do_rup_na_uml_-_trabalho_poo_2012
 
Arquitetura de Software Visão Geral
Arquitetura de Software Visão GeralArquitetura de Software Visão Geral
Arquitetura de Software Visão Geral
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De Software
 
Ciclo de vida de software
Ciclo de vida de softwareCiclo de vida de software
Ciclo de vida de software
 
C:\Documents And Settings\Juliana\Desktop\Palestra 19 03 2010
C:\Documents And Settings\Juliana\Desktop\Palestra 19 03 2010C:\Documents And Settings\Juliana\Desktop\Palestra 19 03 2010
C:\Documents And Settings\Juliana\Desktop\Palestra 19 03 2010
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
03 Modelo de processo de software
03 Modelo de processo de software03 Modelo de processo de software
03 Modelo de processo de software
 
Analise sistemas 06
Analise sistemas 06Analise sistemas 06
Analise sistemas 06
 
Análise de Sistemas Orientado a Objetos - 02
Análise de Sistemas Orientado a Objetos - 02Análise de Sistemas Orientado a Objetos - 02
Análise de Sistemas Orientado a Objetos - 02
 
02 Introdução à engenharia de software - conceitos fundamentais
02 Introdução à engenharia de software - conceitos fundamentais02 Introdução à engenharia de software - conceitos fundamentais
02 Introdução à engenharia de software - conceitos fundamentais
 

Semelhante a Aula4-modelagem e uml

Apresentação da UML
Apresentação da UMLApresentação da UML
Apresentação da UML
Eliseu Castelo
 
3 uml
3 uml3 uml
Ferramenta de Apoio a UML e Modelo de Bases Relacionais
Ferramenta de Apoio a UML e Modelo de Bases RelacionaisFerramenta de Apoio a UML e Modelo de Bases Relacionais
Ferramenta de Apoio a UML e Modelo de Bases Relacionais
Capgemini
 
Análise Orientada a Objetos com UML
Análise Orientada a Objetos com UMLAnálise Orientada a Objetos com UML
Análise Orientada a Objetos com UML
Eliseu Castelo
 
UMLIntro.pptx
UMLIntro.pptxUMLIntro.pptx
UMLIntro.pptx
RicardoMarciano5
 
Aula 8 Modelagem de Dados
Aula 8 Modelagem de DadosAula 8 Modelagem de Dados
Aula 8 Modelagem de Dados
Eduardo S. Pereira
 
APSI 2 aulas - padroes arquiteturais - camadas PROF.TARCIANE
APSI 2   aulas  - padroes arquiteturais - camadas PROF.TARCIANEAPSI 2   aulas  - padroes arquiteturais - camadas PROF.TARCIANE
APSI 2 aulas - padroes arquiteturais - camadas PROF.TARCIANE
Fco Edilson Nascimento
 
UMLIntro.pdf
UMLIntro.pdfUMLIntro.pdf
UMLIntro.pdf
Rodrigo Wanzeler
 
DCI com PHP
DCI com PHPDCI com PHP
DCI com PHP
Flávio Lisboa
 
Uml
UmlUml
DDD – Domain Driven Design
DDD – Domain Driven DesignDDD – Domain Driven Design
DDD – Domain Driven Design
Ítalo Bandeira
 
Logica de Programação Vitor Jose de Souza.pptx
Logica de Programação Vitor Jose de Souza.pptxLogica de Programação Vitor Jose de Souza.pptx
Logica de Programação Vitor Jose de Souza.pptx
JoseVitorSantanadeMe
 
Principais diagramas da UML
Principais diagramas da UMLPrincipais diagramas da UML
Principais diagramas da UML
Jéssica Nathany Carvalho Freitas
 
Arquitetura de Software EXPLICADA
Arquitetura de Software EXPLICADAArquitetura de Software EXPLICADA
Arquitetura de Software EXPLICADA
Fábio Nogueira de Lucena
 
Estratégias de Estruturação de Código-fonte e Controlo de Versão
Estratégias de Estruturação de Código-fonte e Controlo de VersãoEstratégias de Estruturação de Código-fonte e Controlo de Versão
Estratégias de Estruturação de Código-fonte e Controlo de Versão
Comunidade NetPonto
 
Modelagem 21102006_1
Modelagem 21102006_1Modelagem 21102006_1
Modelagem 21102006_1
LEANDRO DE SOUZA RAMOS
 
Análise e Projeto de Sistemas com UML e Java
Análise e Projeto de Sistemas com UML e JavaAnálise e Projeto de Sistemas com UML e Java
Análise e Projeto de Sistemas com UML e Java
armeniocardoso
 
Arquitetura de Sofware
Arquitetura de SofwareArquitetura de Sofware
Arquitetura de Sofware
Jefferson Moreira
 
Reutilização
ReutilizaçãoReutilização
Reutilização
emjorge
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
Ricardo Terra
 

Semelhante a Aula4-modelagem e uml (20)

Apresentação da UML
Apresentação da UMLApresentação da UML
Apresentação da UML
 
3 uml
3 uml3 uml
3 uml
 
Ferramenta de Apoio a UML e Modelo de Bases Relacionais
Ferramenta de Apoio a UML e Modelo de Bases RelacionaisFerramenta de Apoio a UML e Modelo de Bases Relacionais
Ferramenta de Apoio a UML e Modelo de Bases Relacionais
 
Análise Orientada a Objetos com UML
Análise Orientada a Objetos com UMLAnálise Orientada a Objetos com UML
Análise Orientada a Objetos com UML
 
UMLIntro.pptx
UMLIntro.pptxUMLIntro.pptx
UMLIntro.pptx
 
Aula 8 Modelagem de Dados
Aula 8 Modelagem de DadosAula 8 Modelagem de Dados
Aula 8 Modelagem de Dados
 
APSI 2 aulas - padroes arquiteturais - camadas PROF.TARCIANE
APSI 2   aulas  - padroes arquiteturais - camadas PROF.TARCIANEAPSI 2   aulas  - padroes arquiteturais - camadas PROF.TARCIANE
APSI 2 aulas - padroes arquiteturais - camadas PROF.TARCIANE
 
UMLIntro.pdf
UMLIntro.pdfUMLIntro.pdf
UMLIntro.pdf
 
DCI com PHP
DCI com PHPDCI com PHP
DCI com PHP
 
Uml
UmlUml
Uml
 
DDD – Domain Driven Design
DDD – Domain Driven DesignDDD – Domain Driven Design
DDD – Domain Driven Design
 
Logica de Programação Vitor Jose de Souza.pptx
Logica de Programação Vitor Jose de Souza.pptxLogica de Programação Vitor Jose de Souza.pptx
Logica de Programação Vitor Jose de Souza.pptx
 
Principais diagramas da UML
Principais diagramas da UMLPrincipais diagramas da UML
Principais diagramas da UML
 
Arquitetura de Software EXPLICADA
Arquitetura de Software EXPLICADAArquitetura de Software EXPLICADA
Arquitetura de Software EXPLICADA
 
Estratégias de Estruturação de Código-fonte e Controlo de Versão
Estratégias de Estruturação de Código-fonte e Controlo de VersãoEstratégias de Estruturação de Código-fonte e Controlo de Versão
Estratégias de Estruturação de Código-fonte e Controlo de Versão
 
Modelagem 21102006_1
Modelagem 21102006_1Modelagem 21102006_1
Modelagem 21102006_1
 
Análise e Projeto de Sistemas com UML e Java
Análise e Projeto de Sistemas com UML e JavaAnálise e Projeto de Sistemas com UML e Java
Análise e Projeto de Sistemas com UML e Java
 
Arquitetura de Sofware
Arquitetura de SofwareArquitetura de Sofware
Arquitetura de Sofware
 
Reutilização
ReutilizaçãoReutilização
Reutilização
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 

Aula4-modelagem e uml

  • 1. Remixado por Neila Batista Xavier Modelagem de Sistemas UML Introdução à Análise de Sistemas Profª Neila Batista Xavier Slides baseados nas aulas da Profa. Joyce Miranda dos Santos
  • 2. Modelagem de Sistemas  Como você construiria uma casinha de cachorro? 2 Licenciado em
  • 3. Modelagem de Sistemas  Como você construiria uma casinha de cachorro?  PLANEJAMENTO 3 Licenciado em
  • 4. Modelagem de Sistemas  Desde que a nova casa seja razoavelmente grande e sem muitas goteiras, seu cachorrinho ficará feliz. 4 Licenciado em
  • 5. Modelagem de Sistemas  E para construir uma casa pra sua família?  Você precisará de um tempo maior e com certeza sua família será mais exigente. 5 Licenciado em
  • 6. Modelagem de Sistemas  A menos que você já tenha experiência, será melhor fazer um planejamento detalhado antes de prender o primeiro prego ou iniciar a fundação. 6 Licenciado em
  • 7. Modelagem de Sistemas  Desde que você se mantenha fiel aos planos e permaneça dentro dos limites e custos, provavelmente sua família ficará satisfeita.  Caso contrário, a solução não será mudar de família. 7 Licenciado em
  • 8. Modelagem de Sistemas  Se você realmente quiser construir softwares de qualidade, o problema não se restringirá a escrever grande quantidade de código.  O segredo estará em criar o código correto e pensar em como elaborar menos código.  O desenvolvimento do software se torna uma questão de métodos, processo e ferramentas. 8 Licenciado em
  • 9. Modelagem de Sistemas  Afinal, o que é um modelo?  Um modelo é a simplificação da realidade.  Um bom modelo inclui os componentes que possuem ampla repercussão e omite componentes que não são relevantes. 9 Licenciado em
  • 10. Modelagem de Sistemas  Por que fazer a modelagem?  Construímos modelos para compreender melhor o sistema que estamos desenvolvendo.  Objetivos  Visualizar o sistema como é e como desejamos que seja.  Especificar a estrutura e o comportamento do sistema.  Orientar a construção do sistema.  Documentar as decisões tomadas. 10 Licenciado em
  • 11. Modelagem Orientada a Objetos  A visão tradicional do desenvolvimento de software adota a perspectiva de um algoritmo.  O principal bloco de construção é o procedimento ou a função.  Essa perspectiva conduz os desenvolvedores a voltarem o seu foco para questões como controle e decomposição de algoritmos maiores em outros menores. 11 Licenciado em
  • 12. Modelagem Orientada a Objetos  Visão tradicional do desenvolvimento de software  Problemas  Não há separação entre conceitos e responsabilidades.  Causando dependências enormes no sistema.  À medida que os requisitos se modificam é difícil fazer a manutenção de sistemas a partir do foco em algoritmos. 12 Licenciado em
  • 13. Modelagem Orientada a Objetos  A visão contemporânea adota um perspectiva orientada a objetos.  O principal bloco de construção é o objeto ou classe.  Objeto  É algo estruturado a partir do vocabulário do problema ou da solução.  Classe  É o conjunto de objetos comuns. 13 Licenciado em
  • 14. Modelagem Orientada a Objetos  Ex: Arquitetura simples com três componentes para um sistema de cobrança.  Na interface para o usuário você encontrará objetos como:  Botões, menus, caixas de diálogo.  No banco de dados você encontrará objetos como:  Tabelas que representam entidades provenientes do domínio do problema: clientes, produtos e pedidos.  Na camada intermediária você encontrará objetos como:  Transações e regras de negócio. 14 Licenciado em
  • 15. Visão Geral da UML  UML (Unified Modeling Language – Linguagem de Modelagem Unificada)  Linguagem visual utilizada para modelar softwares baseados no paradigma orientada a objetos.  Não é uma linguagem de programação  É uma linguagem de modelagem que através de notações permite ao engenheiro de software definir as características do sistema.  Comportamento, estrutura lógica, dinâmica dos seus processos e até necessidades físicas de equipamentos. 15 Licenciado em
  • 16. Breve Histórico  Anos 60 – 70  COBOL, FORTRAN E C  Métodos de Análise e Projeto Estruturado  Final dos anos 60  Simula (primeira linguagem a incorporar elementos de OO)  Anos 80 e início dos anos 90  ADA, Smalltalk e C++  Primeiros métodos de OO Licenciado em16
  • 17. Por que orientação a objetos?  O que ocorreu a partir de então?  Utilização de OO em Sistemas Operacionais  Evolução de linguagens, como:  Object Pascal, C++, Java  Passamos a ser usuários de OO:  Delphi, Visual Basic, Java... Licenciado em17
  • 18. Por que orientação a objetos?  O que buscamos ao modelar orientado a objetos ?  Diminuição do tempo e custo de desenvolvimento  Atendimento da demanda gerada pela evolução tecnológica (celular, Palm, eletrodomésticos, ...)  Reutilização de código, facilidade de manutenção Licenciado em18
  • 19. Surgimento da UML UMLBOOCH OMT OOSE ❑ Diagrama de Estados ❑ Diagrama de Objetos (Colaboração) ❑ Diagrama de Processo (Desenvolvimento) ❑ Diagrama de Módulos (Componentes) ❑ Use Case ❑ Subsistemas (Package) ❑ Diagrama de Interações ❑ MiniEspecificação ❑ Diagrama de Estados ❑ Diagrama de Classes Licenciado em19
  • 22. Visão Geral da UML  A UML é uma linguagem que tem por objetivo:  Visualizar  Especificar Artefatos de um sistema  Construir  Documentar 22 Licenciado em
  • 23. Visão Geral da UML  É uma linguagem, pois:  Fornece um vocabulário e as regras de combinação das palavras desse vocabulário com a finalidade de comunicar algo.  Linguagem de Modelagem  Linguagem cujo vocabulário e regras possuem seu foco voltado para a representação conceitual e física de um sistema. 23 Licenciado em
  • 24. Blocos de construção básicos da UML Diagramas  Um diagrama é a apresentação gráfica de um conjunto de elementos (itens e seus relacionamentos)  São desenhados para permitir a visualização de um sistema sob diferentes perspectivas. 24 Visão de Caso de Uso Visão de Processo Visão de Projeto Visão de Implementação Visão de Implantação Licenciado em
  • 25. Blocos de construção básicos da UML Diagramas  Visão de Caso de Uso  Descrevem o comportamento do sistema conforme é visto por seus usuários finais, analistas e pessoal de teste.  Visão de Projeto  Formam o vocabulário do problema e da solução.  Abrange classes, interfaces e colaborações.  Proporciona um suporte para os requisitos funcionais do sistema. 25 Licenciado em
  • 26. Blocos de construção básicos da UML Diagramas  Visão de Processo  Apresenta o fluxo de controle entre as várias partes incluindo mecanismos de concorrência e sincronização.  Com o foco voltado para as classes ativas que controlam o sistema e as mensagens que passam por elas.  Visão de Implementação  Abrange os componentes (partes modulares) e os artefatos utilizados para a montagem e fornecimento do sistema físico. 26 Licenciado em
  • 27. Blocos de construção básicos da UML Diagramas  Visão de Implantação  Abrange os nós que formam a topologia de hardware na qual o sistema é executado.  Direciona a distribuição, o fornecimento e a instalação das partes que constituem o sistema físico. 27 Licenciado em
  • 28. Blocos de construção básicos da UML 13 Diagramas Diagrama de Classes Diagrama de Objetos Diagrama de Componentes Diagrama de Estruturas Compostas Diagrama de Casos de Uso Diagrama de Seqüência Diagrama de Comunicações Diagrama de Gráficos de Estados Diagrama de Atividades Diagrama de Implantação Diagrama de Pacote Diagrama de Temporização Diagrama de Interação 28 Licenciado em
  • 29. Ferramentas  O que são Ferramentas CASE?  A sigla CASE significa “Computer-Aided Software Engineering”.  Traduzindo para um bom português: “Engenharia de Software Auxiliada por Computador”. Licenciado em29
  • 30. Ferramentas  Livres  Umbrello  ArgoUML  Dia  BOUML  Fajuba  StarUML Licenciado em30
  • 31.  Dia é um programa baseado em gtk+ para criação do diagrama, liberado sob a licença GPL.  É parte do projeto Gnome.  Atualmente tem objetos especiais de lógica, entidade e relacionamento, diagramas UML, fluxogramas, diagramas da rede, e circuitos simples entre outros. Licenciado em31
  • 32. ArgoUML  ArgoUML é uma ferramenta CASE baseada na notação UML (Unified Modeling Language).  Foi desenvolvido pela comunidade de desenvolvedores de código livre Tigris vinculada a Universidade da Califórnia, Berkeley.  Sua interface é bem completa o que a torna um pouco complexa de manipular. Licenciado em32
  • 33.  Umbrello é um Software de Modelagem UML, que é integrado ao projeto KDE.  Este software é utilizado para modelar o próprio projeto do KDE por a grande de seus desenvolvedores que utilizam UML. Licenciado em33
  • 34.  JUDE, agora Astah, é uma ferramenta profissional de modelagem para sistemas a qual suporta UML, diagrama entidade relacionamento, Flowchart, CRUD, Mini Mapas e Diagrama de Fluxo de Dados.  Permite também a conversão entre modelos UML, ER Diagramas, Flowcharts, fluxo de dados e mini mapas.  O nome do programa é um acrônimo de Java and UML Developers Environment (Ambiente para Desenvolvedores UML e Java). Licenciado em34