Análise e Projetos de Sistemas Revisão de Conteúdo UML-Linguagem de Modelagem Unificada...

Post on 17-Apr-2015

112 views 1 download

Transcript of Análise e Projetos de Sistemas Revisão de Conteúdo UML-Linguagem de Modelagem Unificada...

Análise e Projetos de Sistemas

Revisão de ConteúdoUML-Linguagem de Modelagem Unificada

Professor: Armando Hage

Belém-2008Belém-2008

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/