3. Prof. Glauco C. M. de Castro
Introdução :
Evolução das Metodologias
Início dos anos 70 : Programação Estruturada
Final dos anos 70 : Análise Estruturada (Tom deMarco,
Gaine) & Projeto Estruturado (Constantine, Meyers...)
Início dos anos 80 : Linguagens Não Procedimentais
Meados dos anos 80 : CASE, Prototipação
1984 : Análise Essencial (McMennamim & Palmer)
1990 : OOA
1991 : OOD
4. Prof. Glauco C. M. de Castro
FORTRAN
ALGOL 60
PASCAL
ADA
MÓDULO 2
OBERON
OBJECT
OBERON
OBJECT
PASCAL
QUICK TURBO
PASCAL
C
C WITH
CLASSES
C++ 1.XX
C++ 2.XX
SIMULA 67
SMALLTALK 72/74/
76/78/80
OBJECTIVE
C
EIFFEL
COBOL
PLI
LISP
FLAVORS
LOOPS
COMMOM
LISP
1960
1970
1980
1990
PROLOG
NEW
FLAVORS
CLOS
Evolução das Linguagens
5. Prof. Glauco C. M. de Castro
Orientação a Objetos
Conceitos básicos de programação são antigos
• SIMULA – 1967/69
• Smalltalk – 1974/80
• C++ - 1985/93
• Java
Análise e Projeto – anos 90
• OMT, UML, RUP, padrões, componentes...
• MDA
Encapsulamento
Classes
Tipo abstrato de dados
Herança
Polimorfismo
- Janelas
Tipos parametrizados
Eficiência
Portabilidade
Padronização
Ferramentas
Metodologia
Uniformização de representação da
análise até a implementa,cão
6. Prof. Glauco C. M. de Castro
Introdução :
Análise Estruturada X Essencial X OOA
Top-Down
3 componentes
Criação de uma
Notação
Lógico x Físico
Particionamento
Eventos
Evolução da Ana.
Estruturada
Utilização da Notação
anterior
Verdadeiro X Falso
Elemento agregador :
Objetos
7. Prof. Glauco C. M. de Castro
Ataca complexidade elegantemente e gera fácil adaptabilidade
. . .
Produtividade
Reuso
“O valor da TO (APOO, POO) está fundamentalmente na sua
capacidade de lidar com problemas complexos e criar sistemas
compreensíveis e gerenciáveis, que podem acompanhar uma
complexidade crescente e ser facilmente adaptáveis—se
habilidosamente projetados.” (Craig Larman)
Por que a Tecnologia de Objetos?
A produtividade se sobressai nas fases de
manutenção ou modificação do sistema —
freqüentemente com mudanças
profundamente mais rápidas, se o sistema
foi habilidosamente projetado.
8. Prof. Glauco C. M. de Castro
Introdução :
Benefícios da utilização da OO
•Maior compreensão do domínio do problema
•Auxilia na interação entre o Analista e o
especialista do domínio do negócio
•Reduz a distância entre as fases de Análise,
Projeto e Implementação
•Reutilização dos resultados da Análise
9. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Metodologias OO
Booch
OMT
OOSE
Fusion
Coad/Yourdon
10. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Booch
Várias versões
Sistema analisado por visões
Vários diagramas por visão
Notação extensa e complicada
Macro e Micro visões do sistema
11. Prof. Glauco C. M. de Castro
UML - Visão Geral:
OMT
General Electric - James Rumbaugh
Processo e notação simples
Metodologia mais utilizada para S.I.
Dicas de projeto, como modelagem de
concorrência em sistemas e arquitetura
12. Prof. Glauco C. M. de Castro
UML - Visão Geral:
OOSE/Objectory
Ivar Jacobson
Baseadas em Use-Cases (Casos de Uso)
Use-Cases acompanham todo o ciclo de
desenvolvimento
Também usado para Reengenharia de
Processos de Negócio
13. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Fusion
Hewlett-Packard
Considerado um método da segunda geração
Melhorou várias idéias das metodologias da 1a
Geração
Utiliza um grande número de modelos
14. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Coad/Yourdon - OOA/OOD
Pioneiro
Simples e fácil de aprender
Bom para introdução da OO
Muito limitado, só suportando o desenvolvimento
de sistemas simples e pequenos
15. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Unified Modeling Language - UML
30
Creating the UML
Booch method OMT
Unified Method 0.8
OOSE
Other methods
UML 0.9
public
feedback
Finalsubmission toOMG, Sep ‘97
First submissionto OMG,Jan ´97
UML 1.1
OMG Acceptance, Nov 1997
UML 1.3
UML 1.0
UML partners
UML 1.5
UML 2.0
16. Prof. Glauco C. M. de Castro
Linguagem
“A linguagem é o veículo pelo qual expressamos o
nosso pensamento” [WULF 77]
A notação matemática levou mais de três mil anos
para chegar ao que é hoje:
• Antigo Egito
– “Ah, o seu inteiro, sua terça parte, perfazem 16”
• Hoje
– x + x/3 = 16
17. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Linguagem de Modelagem
Booch, Rumbaugh e Jacobson
Linguagem, não método
Baseada principalmente na OMT, Booch e OOSE
Inclui conceitos de diversas metodologias, inclusive
Padrões de Projeto (Design Patterns - Gang of four)
Padrão OMG (Nov. 1997)
Atualmente na versão 2.0
18. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Linguagem de Modelagem
UML uma linguagem destinada a :
Visualizar
Especificar
Construir
Documentar
Comunicação
Criar modelos
precisos
Migração para
uma LP
Toda a arquitetura
do sistemas
19. Prof. Glauco C. M. de Castro
Sistema de Computação
Processo do Negócio
Order
Item
Ship via
“A Modelagem captura o essencial
para o sistema.”
Dr. James Rumbaugh
Visual Modeling é a
modelagem utilizando
notações gráfica
padronizadas
UML - Visão Geral:
O Que é Modelagem Visual ?
20. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Modelagem Visual é uma Ferramenta de
Comunicação
Utilize modelagem visual para capturar objetos do negócio
Utilize a Modelagem Visual para analisar e projetar a aplicação
21. Prof. Glauco C. M. de Castro
UML - Visão Geral:
UML - Objetivos
Modelagem de sistemas utilizando conceitos de OO
(não software também)
Estabelecer uma associação explícita entre o
conceitual e a implementação
Permitir a escalabilidade inerente a sistemas
complexos e críticos para a missão
Ser utilizável por homem e máquina
22. Prof. Glauco C. M. de Castro
UML - Visão Geral:
UML - Propósitos
Prover uma linguagem de modelagem visual potente e significativa,
que represente os conceitos básicos de modelagem aceitos por
vários métodos e ferramentas
Prover mecanismos de extensão e especialização que permitam a
ampliação dos conceitos básicos
Ser independente de linguagem de programação e de processo de
desenvolvimento
Prover uma base formal para entendimento da linguagem de
modelagem
Incentivar o mercado de ferramentas OO
Suportar conceitos de desenvolvimento de alto nível, bem como
conceitos como colaboração, framework, padrões e componentes
Incorporar as “Melhores Práticas”
23. Prof. Glauco C. M. de Castro
UML - Visão Geral:
UML - Aplicação
Sistemas de Informação
Sistemas Técnicos
Sistemas de Tempo-Real
Sistemas Distribuídos
Softwares Básicos
Sistemas de Negócio (Estratégicos)
Reengenharia de Processos (BPR)
24. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Arquitetura de 4 camadas
• Esta arquitetura proporciona a definição da semântica
requerida em modelos complexos.
• É uma arquitetura base para futuras extensões da UML
• As 4 Camadas :
•meta-metamodelo
•metamodelo
•modelo
•objetos dos usuários
25. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Elementos da Linguagem
Linguagem de Modelagem
Elementos :
•Visões
•Diagramas
• Itens do Modelo
•Mecanismos Básicos
26. Prof. Glauco C. M. de Castro
UML - Visão Geral:
UML - Visões
Diferentes aspectos do sistema a ser modelado
Modelo completo só através de várias visões
Também servem para associar a linguagem de
modelagem ao processo escolhido
Metodologias diferentes usam os diagramas para
compor diferentes visões
27. Prof. Glauco C. M. de Castro
UML - Visão Geral:
UML - Diagramas
Gráficos que descrevem o conteúdo de uma visão
9 tipos de diagramas
Uma visão pode ser composta por vários diagramas
28. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Diagramas
•Use Case
•Classes
•Objetos
•Estado
•Seqüência
•Colaboração
•Atividades
•Componentes
•Distribuição
(Implantação)
} Estáticos
} Dinâmicos
}Interação
} Implementação
Estático
Estático
} Implantação
29. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Visões e Diagramas
Diagramas
de
Caso de Uso
Diagramas
de
Colaboração
Diagramas
de
Componentes
Diagramas
de
Implantação
Diagramas
de
Objetos
Diagramas
de
Estado
Diagramas
de
Sequência
Diagramas
de
Classes
Diagramas
de
Atividade
Modelos
30. Prof. Glauco C. M. de Castro
UML - Visão Geral:
UML - Visões (Exemplo 1)
VISAO
DE
PROJETO
VISÃO
DO
PROCESSO
VISÃO
DA
IMPLEMENTAÇÃO
VISÃO
DA
IMPLANTAÇÃO
VISÃO
DE
CASO DE USO
•diagrama de
Classes/Objetos
•diag. Interação e
Estados
Diag. Classes e
Interação
diag. componentes
e diagramas
dinâmicos
diag. distribuição e
diagramas dinâmicos
diag.casos de uso e
diag de atividades
31. Prof. Glauco C. M. de Castro
Uma visão representa um aspecto
específico do sistema.
UML - Visão Geral:
UML - Visões (Exemplo 2)
Estruturais
• Estática
• Caso de Uso
• Implementação
• Implantação
Dinâmicas
• Máquinas de Estado
• Atividade
• Interação
Gerencial
• Modelo Gerencial
32. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Visões Estruturais
Visão: Estática
Diagrama: Classes
Principais Conceitos:
Classe, Associação,
Generalização,
Dependência, Interface
33. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Visões Estruturais
Visão: Casos de Uso
Diagrama: Casos de Uso
Principais Conceitos:
Caso de Uso, Ator,
Associação, Estende,
Inclui, Generalização de
Caso de Uso
<<inclui>>
34. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Visões Estruturais
Visão: Implementação
Diagrama: Componentes
Principais Conceitos:
Componente, Interface,
Dependência
35. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Visões Estruturais
Visão: Implantação
Diagrama: Implantação
Principais Conceitos: Nó,
Componente,
Dependência, Local
36. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Visões Dinâmicas
Visão: Máquina de Estado
Diagrama: Estados
Principais Conceitos:
Estado, Evento,
Transição, Ação
37. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Visões Dinâmicas
Visão: Atividades
Diagrama: Atividades
Principais Conceitos:
Estado, Atividade, União,
Bifurcação, Decisão
38. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Visões Dinâmicas
Visão: Interação
Diagrama: Seqüência
Principais Conceitos:
Interação, Objeto,
Mensagem
39. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Visões Dinâmicas
Visão: Interação
Diagrama: Colaboração
Principais Conceitos:
Colaboração, Interação,
Papel da Colaboração,
Mensagem
40. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Visão Gerencial
Diagrama: Classes
Principais Conceitos:
Pacote, subsistema e
modelo
41. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Itens de Modelagem
Diagramas usam elementos para representar
conceitos
Um item de modelagem pode ser usado em vários
diagramas, sempre com a mesma representação
Tipos de Itens
• Estruturais - classe, interface, colaboração, caso de uso,
componente, nó ...
• Comportamentais - interação, máquinas de estados ...
• Agrupadores - pacote, subsistema ...
• Anotacionais - nota
42. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Pacote
Mecanismo de propósito geral para organizar
elementos em modelos, de maneira que você
possa entender e utilizar com maior facilidade
Um pacote pode conter : Classes, Interfaces,
Componentes, Nós, Casos de Uso, Diagramas e
até outros Pacotes
Podemos utilizar Generalização
43. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Pacote
Representados como uma pasta com uma guia
Regras de
Acesso
+ CadastrarAluno
Secretaria
- EmitirGradeEscolar
Secretaria::Regras de Acesso
{Versão 1.2}
45. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Mecanismos Básicos
Provêem comentários, informação e semântica aos
elementos do modelo
Provêem mecanismos de extensão da linguagem,
permitindo sua adaptação a uma metodologia
específica ou a necessidades de organizações
46. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Mecanismos Básicos
Especificações
Adornos
Divisões Comuns
Mecanismos de Extensibilidade :
• Estereótipos,
• Valores Atribuídos e
• Restrições
47. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Especificações
Cada elemento de modelagem da UML é apenas
uma representação visual / notação gráfica de
uma especificação textual da sintaxe e
semântica deste elemento
Evolução Bottom-Up das metodologias de
Análise :LPOO => AOO
48. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Especificações
OCL pode ser usada para vários propósitos:
•Para especificar estereótipos nas classes e tipos no modelo de classes
•Para descrever pré e pós condições
•Para descrever condições de guarda
•Como uma linguagem de navegação
•Para especificar restrições
Object Constraint Language - OCL
context Company inv:
self.numberOfEmployees > 50
49. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Especificações
Linguagem utilizada para representar o comportamento do
modelo
Action Specification Language - ASL
Customer
new_customer = create Customer
delete my_customer
my_account = find-only Account where no = 42
50. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Adornos
Itens gráficos ou visuais acrescentados a um
elemento de modelagem e empregados para
visualização gráfica de detalhes a partir de uma
especificação do elemento
Exemplos :
• Notas
• Indicadores de encapsulamento (#,-,+)
• Compartimento extra
51. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Adornos
Indicadores de
encapsulamento
(#,-,+)
52. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Adornos
Indicadores de
encapsulamento
(#,-,+)
53. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Adornos
•Não possui impacto semântico.
•Representa restrições ou comentários
anexados aos itens de modelagem
SECRETARIA
Matricular.exe
ControlarTransferencias.exe
Aluno.dll
Professor.dll
Notas
Compartimentos Extras
54. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Adornos
Notas
55. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Divisões Comuns
Separações na notação gráfica para representar
a dicotomia entre classes/objetos ou
interface/implementação
CLIENTE => classe cliente
:CLIENTE => objeto anônimo da classe cliente
UmCliente:CLIENTE => objeto explícito da classe cliente
UmCliente => objeto implícito da classe cliente
(indicado na especificação)
56. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Mecanismos de Extensibilidade
O estereótipo cria
um novo elemento
da UML com
propriedades
especiais, conjunto
próprio de valores
atribuídos, notação
(ícone próprio) e
semântica
(restrições próprias)
Estereótipo <<CONTROLLER>>
PENTRACKER
<<CONTROLLER>>
PENTRACKER
PENTRACKER
PENTRACKER
57. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Mecanismos de Extensibilidade
Estereótipo
58. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Mecanismos de Extensibilidade
Estereótipo
59. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Valores Atribuídos
Acrescentam novas propriedades a um elemento
de modelagem, porém não criam novos como os
estereótipos.
É representado como uma seqüência de
caracteres (nome (etiqueta) , separador (=) e um
valor) entre chaves, colocado abaixo do nome
60. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Valores Atribuídos
61. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Valores Atribuídos
62. Prof. Glauco C. M. de Castro
UML - Visão Geral:
Restrições
Adicionar uma nova semântica ou modificar
regras já existentes;
A representação : seqüência de caracteres entre
chaves;
A UML possui uma linguagem formal OCL
(Object Constraint Language), para representar
as restrições.
64. Prof. Glauco C. M. de Castro
UML - Visão Geral:
UML - Considerações
A UML é bastante completa e extensa
Aproximadamente 40% da linguagem cobre 98%
das necessidades de um projeto comum