SlideShare uma empresa Scribd logo
1 de 64
Análise Orientada a Objetos
Introdução
Glauco Cabral Monteiro de Castro
Análise Orientada a Objetos
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
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
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
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
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.
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
Prof. Glauco C. M. de Castro
UML - Visão Geral:
Metodologias OO
 Booch
 OMT
 OOSE
 Fusion
 Coad/Yourdon
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
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
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
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
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
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
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
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
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
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 ?
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
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
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”
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)
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
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
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
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
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
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
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
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
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
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>>
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
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
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
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
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
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
Prof. Glauco C. M. de Castro
UML - Visão Geral:
Visão Gerencial
 Diagrama: Classes
 Principais Conceitos:
Pacote, subsistema e
modelo
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
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
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}
Prof. Glauco C. M. de Castro
UML - Visão Geral:
Pacote
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
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
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
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
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
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
Prof. Glauco C. M. de Castro
UML - Visão Geral:
Adornos
Indicadores de
encapsulamento
(#,-,+)
Prof. Glauco C. M. de Castro
UML - Visão Geral:
Adornos
Indicadores de
encapsulamento
(#,-,+)
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
Prof. Glauco C. M. de Castro
UML - Visão Geral:
Adornos
Notas
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)
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
Prof. Glauco C. M. de Castro
UML - Visão Geral:
Mecanismos de Extensibilidade
Estereótipo
Prof. Glauco C. M. de Castro
UML - Visão Geral:
Mecanismos de Extensibilidade
Estereótipo
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
Prof. Glauco C. M. de Castro
UML - Visão Geral:
Valores Atribuídos
Prof. Glauco C. M. de Castro
UML - Visão Geral:
Valores Atribuídos
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.
Prof. Glauco C. M. de Castro
UML - Visão Geral:
Restrições
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

Mais conteúdo relacionado

Semelhante a Analise_OO1a_Introducao.ppt

Gestão de Projectos de SW OO Métricas Estimações e Planificações
Gestão de Projectos de SW OO Métricas Estimações e PlanificaçõesGestão de Projectos de SW OO Métricas Estimações e Planificações
Gestão de Projectos de SW OO Métricas Estimações e PlanificaçõesRogerio P C do Nascimento
 
Aula4-modelagem e uml
Aula4-modelagem e umlAula4-modelagem e uml
Aula4-modelagem e umlneilaxavier
 
Padrões de Projeto de Software Orientado a Objetos
Padrões de Projeto de Software Orientado a ObjetosPadrões de Projeto de Software Orientado a Objetos
Padrões de Projeto de Software Orientado a ObjetosCloves da Rocha
 
Modelagem Ágil - UML ainda serve para alguma coisa?
Modelagem Ágil - UML ainda serve para alguma coisa?Modelagem Ágil - UML ainda serve para alguma coisa?
Modelagem Ágil - UML ainda serve para alguma coisa?Jean Hauck
 
Padroes de projetos gof
Padroes de projetos gofPadroes de projetos gof
Padroes de projetos gofYan Justino
 
Uml processo unificado
Uml   processo unificado Uml   processo unificado
Uml processo unificado Julia
 
Análise e Modelagem de Software
Análise e Modelagem de SoftwareAnálise e Modelagem de Software
Análise e Modelagem de SoftwareMarcelo Yamaguti
 
Padrões de Projeto de Software Orientado a Objetos
Padrões de Projeto de Software Orientado a ObjetosPadrões de Projeto de Software Orientado a Objetos
Padrões de Projeto de Software Orientado a ObjetosFabio Kon
 
Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Mo...
Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Mo...Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Mo...
Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Mo...Edson Oliveira Junior
 
COCOMO E COCOMO II
COCOMO E COCOMO IICOCOMO E COCOMO II
COCOMO E COCOMO IIIsraelCunha
 
Umlv4 090813182632-phpapp02
Umlv4 090813182632-phpapp02Umlv4 090813182632-phpapp02
Umlv4 090813182632-phpapp02Jhonefj
 
Design pattern - Template Method(metodo gabarito)
Design pattern - Template Method(metodo gabarito)Design pattern - Template Method(metodo gabarito)
Design pattern - Template Method(metodo gabarito)Gabriel Oliveira
 

Semelhante a Analise_OO1a_Introducao.ppt (20)

Gestão de Projectos de SW OO Métricas Estimações e Planificações
Gestão de Projectos de SW OO Métricas Estimações e PlanificaçõesGestão de Projectos de SW OO Métricas Estimações e Planificações
Gestão de Projectos de SW OO Métricas Estimações e Planificações
 
Aula4-modelagem e uml
Aula4-modelagem e umlAula4-modelagem e uml
Aula4-modelagem e uml
 
Padrões de Projeto de Software Orientado a Objetos
Padrões de Projeto de Software Orientado a ObjetosPadrões de Projeto de Software Orientado a Objetos
Padrões de Projeto de Software Orientado a Objetos
 
Modelagem Ágil - UML ainda serve para alguma coisa?
Modelagem Ágil - UML ainda serve para alguma coisa?Modelagem Ágil - UML ainda serve para alguma coisa?
Modelagem Ágil - UML ainda serve para alguma coisa?
 
Padroes de projetos gof
Padroes de projetos gofPadroes de projetos gof
Padroes de projetos gof
 
Uml processo unificado
Uml   processo unificado Uml   processo unificado
Uml processo unificado
 
Análise e Modelagem de Software
Análise e Modelagem de SoftwareAnálise e Modelagem de Software
Análise e Modelagem de Software
 
uml-intro_v02.pdf
uml-intro_v02.pdfuml-intro_v02.pdf
uml-intro_v02.pdf
 
GoF.ppt
GoF.pptGoF.ppt
GoF.ppt
 
Padrões de Projeto de Software Orientado a Objetos
Padrões de Projeto de Software Orientado a ObjetosPadrões de Projeto de Software Orientado a Objetos
Padrões de Projeto de Software Orientado a Objetos
 
Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Mo...
Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Mo...Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Mo...
Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Mo...
 
SQLAlchemy - Desenvolvendo uma aplicação com Python
SQLAlchemy - Desenvolvendo uma aplicação com Python SQLAlchemy - Desenvolvendo uma aplicação com Python
SQLAlchemy - Desenvolvendo uma aplicação com Python
 
Samuel ta1.pps
Samuel ta1.ppsSamuel ta1.pps
Samuel ta1.pps
 
COCOMO E COCOMO II
COCOMO E COCOMO IICOCOMO E COCOMO II
COCOMO E COCOMO II
 
Apostila uml
Apostila umlApostila uml
Apostila uml
 
Apostila uml
Apostila umlApostila uml
Apostila uml
 
Umlv4 090813182632-phpapp02
Umlv4 090813182632-phpapp02Umlv4 090813182632-phpapp02
Umlv4 090813182632-phpapp02
 
Apostila uml
Apostila umlApostila uml
Apostila uml
 
Design pattern - Template Method(metodo gabarito)
Design pattern - Template Method(metodo gabarito)Design pattern - Template Method(metodo gabarito)
Design pattern - Template Method(metodo gabarito)
 
FC-Logic
FC-LogicFC-Logic
FC-Logic
 

Analise_OO1a_Introducao.ppt

  • 1. Análise Orientada a Objetos Introdução Glauco Cabral Monteiro de Castro
  • 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}
  • 44. Prof. Glauco C. M. de Castro UML - Visão Geral: Pacote
  • 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.
  • 63. Prof. Glauco C. M. de Castro UML - Visão Geral: 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