Análise e Projetos de Sistemas
Revisão de ConteúdoUML-Linguagem de Modelagem Unificada
Resumo da Unidade Objetivos Conceitos de Orientação a
Objetos(OO) Breve Histórico da UML Diagramas da UML
Diagrama de Caso de Uso Diagrama de Classes Diagrama de Sequencia
Conclusão
Objetivos
Apresentar e praticar alguns principais modelos fornecidos pela principais modelos fornecidos pela UML.
Exercícios de modelagem Exercícios de modelagem.
Praticar algumas situações típicas de projeto de software projeto de software.
Referências Bezerra,Projeto Orientados a Objetos. Campus, 2002.Bezerra,Projeto Orientados a Objetos. Campus, 2002. Booch, G. et al. UML Booch, G. et al. UML Guia do Booch, G. et al. UML Booch, G. et al. UML Guia do
Usuário. Campus, 2000Usuário. Campus, 2000..
COAD, P.; YOURDON, E. Análise Baseada em COAD, P.; YOURDON, E. Análise Baseada em Objetos. 2.ed. Rio de Janeiro: Campus, 1996. (005.1 Objetos. 2.ed. Rio de Janeiro: Campus, 1996. (005.1 C652a)C652a)
DAVIS, William S. Análise e Projeto de Sistemas: uma DAVIS, William S. Análise e Projeto de Sistemas: uma abordagem estruturada. Rio de Janeiro: LTC, 1987. abordagem estruturada. Rio de Janeiro: LTC, 1987.
Visão GeralVisão GeralDesnvolvimento de Software AtualmenteDesnvolvimento de Software Atualmente
Uso de linguagens de programação Orientadas a Objeto (OO) Delphi, Java, PHP Linguagens compactas com
bibliotecas de classes poderosas Ambientes de programação Sistemas de Banco de Dados
Relacionais Oracle, SQL Oracle, SQL-Server,
mySQL, Firebird, Postgres
Conceitos de OOConceitos de OO ModelosModelos – São representações simplificadas de objetos do mundo real. – São representações simplificadas de objetos do mundo real.
DadosDados – Como o mesmo é uma simplificação do mundo real, os dados – Como o mesmo é uma simplificação do mundo real, os dados contidos no modelo são somente os relevantes à abstração do mundo contidos no modelo são somente os relevantes à abstração do mundo real.real.
OperaçõesOperações – Um modelo contém operações e procedimentos associados – Um modelo contém operações e procedimentos associados a ele.a ele.
AbstraçãoAbstração- Uma abstração descreve as características essenciais de uma - Uma abstração descreve as características essenciais de uma entidade que a distingüe de todos os outros tipos de entidades.entidade que a distingüe de todos os outros tipos de entidades. Pessoa Pessoa como empregado de Empresa como empregado de Empresa
Dados (nome, cargo, salário e horasExtrasTrabalhadas)Dados (nome, cargo, salário e horasExtrasTrabalhadas)
Operações(calcularSalário,aumentaSalário)Operações(calcularSalário,aumentaSalário) Pessoa Pessoa como paciente de uma clínica médicacomo paciente de uma clínica médica
Dados(nome,sexo,altura,peso, histórico) Dados(nome,sexo,altura,peso, histórico)
Operações (AdicionaInformaçãoaoHistórico)Operações (AdicionaInformaçãoaoHistórico)
Conceitos de OOConceitos de OO Classe
São estruturas das linguagens de programação OO que contem, para determinado modelo, os dados que devem ser representados e as operações que devem ser efetuadas com estes dados. A classe envolve, associa, funções e dados, controlando o acesso a estes. Defini-lá implica em especificar os seus atributos (dadosdados) e seus métodos (funçõesfunções).
Ex:Interface controladora de um motor elétrico. Classe:motormotor Atributos: temperaturatemperatura, velocidadevelocidade, tensão aplicadatensão aplicada.
Conceitos de OOConceitos de OO Objeto ou instância
Representa uma materialização da classe.
É um pacote de software contendo dados e procedimentos(código)relacionado.
Possui estado,identidade única e comportamento.
Abstração de Dados
Processo mental através do qual nos concentramos nos aspectos relevantes de um conjunto de objetos desconsiderando as suas diferenças.
Conceitos de OOConceitos de OO
Na Orientação a Objetos, o mecanismo principal de abstração é a Classe. Uma Classe descreve um conjunto de
Objetos que compartilham características comuns
A Classe corresponde à noção de módulo em um sistema orientado a objetos
Modularidade é importante pois torna o projeto de um sistema mais simples e reutilizável
Classe “encapsula” dados e operações.
Conceitos de OOConceitos de OOClassificaçãoClassificação
Conceitos de OOConceitos de OOEncapsulamento de dados e operaçãoEncapsulamento de dados e operação
Conceitos de OOConceitos de OOEncapsulamento de dados e operaçãoEncapsulamento de dados e operação
Encapsulamento de dados e operações Ocultamento Ocultamento da Informação da
Informação O acesso aos dados internos de objetos só pode
ocorrer a partir de mensagens Independência de aplicação Um método deve acessar informações internas do
objeto objeto
Conceitos de OOConceitos de OOEncapsulamento de dados e operaçãoEncapsulamento de dados e operação
• Lei de Deméter – Para cada objeto para cada objeto o, e para cada um
dos seus , métodos m, os objetos que podem receber , os objetos que podem receber mensagens de o são
• o próprio o próprio o – especificamente especificamente self e super (em SmallTalk),this (em C++/Java)atributos de objeto de o
Conceitos de OOConceitos de OOClassificação - Associação de ObjetosClassificação - Associação de Objetos
Conceitos de OOConceitos de OOAgregação - Um objeto é composto por outroAgregação - Um objeto é composto por outro
Conceitos de OOConceitos de OOGeneralização/Especialização - Um objeto é composto Generalização/Especialização - Um objeto é composto por outropor outro
Conceitos de OOConceitos de OOGeneralização/Especialização - Um objeto é composto por Generalização/Especialização - Um objeto é composto por outrooutro
É o mecanismo que permite a uma classe herdar todo o comportamento e os atributos de outra classe, adquirindo imediatamente toda a funcionalidade de uma classe existente.
Uma classe que herda de outra classe é chamada de subclassesubclasse e a classe que fornece a herança é chamada de superclassesuperclasse.
ClasseA
ClasseB
ClasseC
ClasseD
ClasseE
Comparações entre abordagem Comparações entre abordagem imperativas e OOimperativas e OO
Paradigma ProceduralParadigma Procedural Tipos de dados Variável Função/Procedimento Chamada de função
Paradigma ObjetosParadigma Objetos Classes Objeto / Instância Operação / Método Envio de Mensagem
Processo de SoftwareTop-Down
Processo de SoftwareBottom-up
Modelos-Esqueletos de Programas
UML Unificada Linguagem de Modelagem Unificada
Surgiu para apoiar OO Evolução a partir de linguagens C++ e
SmallTalk Anos 80 Anos 80-90: diversidade de autores Anos 98-2000: unificação em torno de 2000:
unificação em torno de UML.
UML Unificada Linguagem de Modelagem Unificada
UML Unificada Linguagem de Modelagem Unificada
Grady Booch Um dos pioneiros da OO Um
dos pioneiros da OO 1980: ênfase em técnicas de
projeto para Ada 1992-1994: livros
Object Object Design Design with Applications
Projeto de programas em C++ e Ada
1998: Fundação da Rational
UML Unificada Linguagem de Modelagem Unificada
Ivar Jacobson Modelagem OO
baseado em Casos de Uso
Objectory Basea-se na
necessidades do usuário, o objetivo do sistema, sem preocupações com a ordem de ocorrência de cada fato e suas relações.
UML Unificada Linguagem de Modelagem Unificada
James Rumbaugh Object Modeling
Modeling(OMT) Desenvolvida na GE
Metodologia baseada em notações pré-existentes (ER, DTE, DFD)
Clara distinção entre as três visões do problema.
UML Unificada Linguagem de Modelagem Unificada
UML Unificada Linguagem de Modelagem Unificada
Linguagem visual para especificação Linguagem(modelagem) de sistemas orientados a objetos objetos
Fornece representação gráfica para os elementos essenciais do paradigma de objetos
Classes, atributos, objetos, troca de mensagens, ...
UML Unificada Linguagem de Modelagem Unificada
De propósito geral Não está presa a uma etapa do desenvolvimento
software Análise Análise Projeto Projeto Implementação Testes
Ciclo de vida em cascata Incremental Processo Unificado
Não está presa a uma linguagem de programação
UML Unificada Linguagem de Modelagem Unificada
UML apoia o desenvolvimento incremental
UML Unificada Linguagem de Modelagem Unificada
De propósito geral Não se prende a nenhuma linguagem de programação
UML Unificada Linguagem de Modelagem Unificada
Padrão OMG
Toda a documentação disponível em http://www.omg.orgagem
Privilegia a descrição de um sistema segundo três perspectivas: Dados (estrutural)
Diagrama de Classes Operações (funcional)
Diagrama de Caso de Uso Eventos (temporal)
Diagramas de Seqüência, Atividades, de Transição
de Estados de Estados
UML Unificada Linguagem de Modelagem Unificada
Ferramentas mais utilizadas Rational Rose -http://www.rational.com Visual Paradigm - http://www.visual-paradigm.com/ Poseidon - http://www.gentleware.com/index.php Argo UML - http://argouml.tigris.org/ Umbrello - http://www.umbrello.org/