UML Unified Modeling Language



Documentos relacionados
UML Linguagem de Modelagem Unificada

UML - Unified Modeling Language

Ciência da Computação ENGENHARIA DE SOFTWARE. UML-Unified Modeling Language Linguagem de Modelagem Unificada

Modelagem de Processos. Prof.: Fernando Ascani

do grego: arkhé (chefe ou mestre) + tékton (trabalhador ou construtor); tekhne arte ou habilidade;

Wilson Moraes Góes. Novatec

Modelagem OO com UML. Vítor E. Silva Souza ~ vitorsouza

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2

Análise e Projeto Orientados por Objetos

UML 01. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

Programação Orientada a Objetos em Java

Orientação a Objetos com Java

Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP

Universidade Católica de Petrópolis Análise Orientada a Objetos. Introdução

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

2 Engenharia de Software

Herança. Alberto Costa Neto DComp - UFS

1 UML (UNIFIED MODELING LANGUAGE)

Felipe Denis M. de Oliveira. Fonte: Alice e Carlos Rodrigo (Internet)

Modelagemde Software Orientadaa Objetos com UML

A Linguagem de Modelagem Unificada (UML)

Fundamentos de Banco de Dados e Modelagem de Dados

ANÁLISE E PROJETO ORIENTADO A OBJETOS. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

Orientação à Objetos. Aécio Costa

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Análise e Projeto de Sistemas

Técnicas de Programação Avançada TCC Profs.: Anselmo Montenegro Conteúdo: Introdução à Orientação a Objetos

Programação com Objectos. Processamento de Dados I. 3. UML (Unified Modeling Language)

UML e a Ferramenta Astah. Profa. Reane Franco Goulart

Profº. Enrique Pimentel Leite de Oliveira

ENGENHARIA DE SOFTWARE Prof. Ricardo Rodrigues Barcelar

Histórico da Orientação a Objetos Ciclo de vida de Desenvolvimento de SW

Análise e Projeto Orientados por Objetos

Introdução ao Paradigma Orientado a Objetos. Principais conceitos

Técnicas de Programação II

A linguagem UML. UML e Diagramas de Casos de Uso e Classes. Por que usar UML? O que é modelagem?

Unisant Anna Gestão Empresarial com ERP 2014 Modelagem de Sistemas - UML e MER

O que é a UML? Introdução a UML. Objetivos da Modelagem. Modelos. A UML não é. Princípios da Modelagem. O que é um modelo?

UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC DCC Departamento de Ciência da Computação Joinville-SC

Ferramenta para Geração de Código a partir da Especialização do Diagrama de Classes

7 RTTI e Interfaces. Desenvolvimento OO com Java. Vítor E. Silva Souza (vitorsouza@inf.ufes.br)

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Programação Orientada a Objetos

Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre César M de Oliveira

Engenharia de Software Engenharia de Requisitos. Análise Orientada a Objetos Prof. Edison A M Morais prof@edison.eti.

Capítulo 8. Introdução UML

Modelos de Sistema by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1.

Qualidade de Software

Programação de Computadores - I. Profª Beatriz Profº Israel

Orientação a Objetos

Levantamento, Análise e Gestão Requisitos. Aula 04

Unified Software Development Process

UML Aspectos de projetos em Diagramas de classes

2 Diagrama de Caso de Uso

ProgramaTchê Programação OO com PHP

Orientação a Objetos I

Programa do Módulo 2. Fundações do Modelo Objeto

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS

Análise de Programação

Desenvolvimento estruturado versus orientado a objetos.

Programação Orientada a Objetos em Java. Herança

Projeto de Software Orientado a Objeto

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP

Prototype, um Design Patterns de Criação

Introdução a UML. Hélder Antero Amaral Nunes haanunes@gmail.com

Orientação a Objetos

Bibliografia. Desenvolvimento Orientado a Objetos. Introdução. Bibliografia. O que você vê?

Engenharia de Software III

Análise e Projeto de Sistemas. O que é modelagem. O que é modelagem. Tripé de apoio ao desenvolvimento. Notação: UML. Ferramenta: Rational Rose.

Curso de PHP. FATEC - Jundiaí. A programação orientada a objetos (object-oriented oriented programming

UML & Padrões. Aula 1 Apresentação. Profª Kelly Christine C. Silva

Análise Orientada a Objetos

Diagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes.

Objetivos: Sun recomenda que utilize o nome de domínio da Internet da empresa, para garantir um nome de pacote único

Introdução à Programação. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais

Lógica e Programação Java

8 Classes Internas. Desenvolvimento OO com Java. Vítor E. Silva Souza

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes

Engenharia de Software I

Padrão Básico de Projeto: Interfaces e Polimorfismo

Prof. Jhonatan Fernando

Processos de Desenvolvimento de Software. Prof. Hélio Engholm Jr

Itens estruturais/caso de uso. Itens estruturais/classe ativa. Itens estruturais/componente. Itens estruturais/artefatos. Itens comportamentais

Reuso com Herança a e Composiçã

Tópicos em Engenharia de Computação

DESENVOLVIMENTO DE SOFTWARE. Introdução ao Visual Studio VB.Net. Programação Estruturada. Prof. Celso Candido ADS / REDES / ENGENHARIA

Implementando uma Classe e Criando Objetos a partir dela

BPMN Business Process Modeling Notation

Prof. Marcelo Henrique dos Santos

Orientação a Objeto e UML Questões 2014 Prof. Felipe Leite

O Processo Unificado: Captura de requisitos

ANÁLISE ORIENTADA À OBJETO Conceitos do Paradigma de Orientação a Objetos

Algumas propriedades dos objetos:

Ricardo Roberto de Lima UNIPÊ APS-I. Históricos e Modelagem Orientada a Objetos

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 16 PROFª BRUNO CALEGARO

Transcrição:

UML Unified Modeling Language Linguagem de Modelagem Unificada

A linguagem UML UML (Unified Modeling Language) Linguagem de Modelagem Unificada É uma linguagem para especificação, É uma linguagem para especificação, construção, visualização e documentação de artefatos de um sistema de software.

A linguagem UML É uma família de notações gráficas, apoiada em um metamodelo único, que ajuda na descrição e no projeto de sistemas de software, particulamente daqueles construídos utilizando o estilo orientado a objetos.

A linguagem UML É uma linguagem de modelagem (visual), não uma linguagem de programação É uma linguagem de modelagem não proprietária Permite a utilização de diagramas padronizados para especificação e visualização de um sistema

De onde surgiu? Da união de três metodologias de modelagem: Método de Booch, de Grady Booch; Método OMT (Object Modeling Technique) de Ivar Jacobson; Método OOSE (Object Oriented Software Engineering) de James Rumbaugh. Os três amigos.

UML Fundadores da UML

De onde surgiu? A primeira versão foi lançada em outubro de 1994. Em novembro de 1997 a UML 1.1 foi Em novembro de 1997 a UML 1.1 foi adotada pela a OMG (Object Management Group Grupo de gerenciamento de Objetos, seu orgão aprovador) como linguagem padrão de modelagem.

O que é modelagem? Atividade de construir modelos que expliquem as características ou comportamentos de um sistema. A UML pode ser usada com todos os processos durante o ciclo de desenvolvimento do projeto Análise de requisitos; Análise de sistema; Design; Programação e Testes.

O que é modelagem? A modelagem existe porque não podemos compreender os sistemas completamente. A UML é uma linguagem completa e cheia de recursos, que permite não apenas capturar as informações, mas também expressá-las com uma sintaxe clara e objetiva.

Modelos Modelos Proporcionam: Visualização do sistema; Especificação da estrutura ou comportamento do sistema; Guia para a construção do sistema; Documentação das decisões tomadas.

Por que usar UML?

Por que usar UML? Desenvolver o modelo de uma aplicação antes de construí-la, é tão essencial quanto ter uma planta para a construção de uma casa. Analisar o projeto sobre vários aspectos; Diminui a possibilidade de erros.

Por que usar UML? Entregar um produto ou serviço (solução) de acordo com os requisitos (problema) do cliente. Ajuda o desenvolvedor a organizar a solução (arquitetura) de modo que sua construção e entrega esteja de acordo com os requisitos do cliente.

Por que usar UML? Bons modelos são essenciais para a comunicação entre os times de projetos. Facilita a programação; Todo o time entende a modelagem, facilitando assim a manutenção.

Por que usar UML? Ter um rigoroso padrão de linguagem de modelagem é um fator essencial para o sucesso de um projeto. Sistemas são dinâmicos;

E onde fica a modelagem? Análise de requisitos Modelagem Testes Implementação Manutenção Modelo de desenvolvimento mais comum. Todos os modelos são derivados dessa idéia

Recomeçando o ciclo Análise de requisitos Modelagem Testes Implementação Manutenção

Diagramas da UML DIAGRAMA OBJETIVO GRUPO DIAGRAMA CLASSES Classe, características e relacionamentos Estrutural COMPONENTES Estrutura e conexão de componentes Estrutural ESTRUTURAS COMPOSTAS Decomposição de uma classe em tempo de execução Estrutural INSTALAÇÃO Distribuição e artefatos nos nós Estrutural OBJETOS Exemplo de configurações de instâncias Estrutural PACOTES Estrutura hierárquica em tempo de compilação Estrutural CASOS DE USO Como os usuários interagem com um sistema Comportamental ATIVIDADES Comportamento procedimental e paralelo Comportamental MÁQUINAS DE ESTADO Como os eventos alteram um objeto durante sua vida Comportamental SEQUÊNCIA Interação entre objetos: ênfase na seqüência Interação COMUNICAÇÃO Interação entre objetos; ênfase nas ligações Interação INTERAÇÃO Mistura de diagrama de seqüência e de atividades Interação SINCRONISMO Interação entre os objetos;ênfase no sincronismo Interação

Ferramentas CASE Auxiliam na construção e gerenciamento de diagramas UML Rational Rose Enterprise Architect Jude MS Visio PowerDesign ArgoUML Poseidon

Paradigmas de Programação Orientado a objetos

Paradigma Orientado a Objetos Nome: joão Data Nascimento: 13/02/78 Endereço:avenida pará,22 DADOS - Inserir informações - Alterar informações - Excluir informações - Consultar informações PROCESSOS

Paradigma Orientado a Objetos A OO surgiu como uma nova forma de modelar e construir sistemas de softwares de organizar e gerir as informações manipuladas e geradas dentro das Empresas. Na OO Dados e Processos são vistos como Atributos e Métodos (ou Operações) realizadas por Objetos.

Paradigma Orientado a Objetos A análise orientada a objetos têm como meta identificar o melhor conjunto de objetos para descrever um sistema; Na programação orientada a objetos, Na programação orientada a objetos, implementa-se um conjunto de classes que definem os objetos presentes no sistema;

Paradigma Orientado a Objetos Programa Processos Classe Atributos Dados Métodos

Paradigma Orientado a Objetos MOTIVAÇÃO PARA USO: Independência de implementação Esconder Detalhes (Ocultamento) Flexibilidade Clareza conceitual Modularização Reusabilidade

Paradigma Orientado a Objetos Objetivo Objetivo de criar programas que sejam facilmente adaptados a mudanças; Essa funcionalidade existe em função do projeto, de como a solução foi pensada;

POO- Troca de mensagens Mundo é um conjunto de objetos que interagem entre si por meio de mensagens; Os objetos enviam mensagens uns para os outros e esperam um retorno dessas mensagens; Um objeto pode fazer solicitações a outros objetos sem precisar conhecer a estrutura interna desses objetos; Isso facilita a mudança pois o comportamento dos objetos pode ser alterado sem prejudicar a comunicação entre os objetos;

Paradigma Orientado a Objetos O termo orientação a objetos significa organizar o mundo real como uma coleção de objetos que incorporam estrutura de dados e um conjunto de operações que manipulam estes dados.

POO Principais conceitos

Paradigma Orientado a Objetos Classe Descrição de um tipo de objeto; Conjunto de objetos que apresentam características em comum; Descrevem as propriedades e comportamentos dos objetos através dos atributos e dos métodos;

Paradigma Orientado a Objetos Classe Ex: para descrever todas as canetas, poderia haver a classe CANETA, com seus atributos (cor da tinta, capacidade da tinta) e com suas operações especificadas (escrita, recarga). Tendo definido a classe, é possível criar objetos particulares para representar as diversas canetas. Ao criar um objeto é necessário inicializar seus atributos; As operações podem requerer a leitura desses atributos;

Paradigma Orientado a Objetos Classe Ex: Classe Pessoa, atributos (data_nascimento, peso, profissão) Objeto: Paulo (25/01/1979, 80 quilos, estudante) Objeto: Maria (09/07/1950, 98 quilos, professora) Classe Pedidos, atributos(número Pedido, Nome do destinatário, Valor do frete) Objeto: 10251 (10251, Hanari Carnes, R$ 148,33) Objeto: 10252 (10252, Que Delícia, R$ 3,05)

Paradigma Orientado a Objetos Representação gráfica de uma classe

public class Carro { POO Implementação da classe Carro //Atributos da classe public String cor = ""; public String modelo = ""; public String motor = ""; } //Métodos da classe public void ligar(){ } System.out.println("Ligando o carro"); public void desligar(){ } System.out.println("Desligando o carro"); public void acelerar(){ } System.out.println("Acelerando o carro");

Paradigma Orientado a Objetos Tipos de Classes (Abstrata x Concreta): Abstrata: Serve apenas como superclasse, isto é, não existem instâncias desta classe. Os métodos são declarados mas seu comportamento não é definido Normalmente usadas para definição de classes que serão utilizadas através de herança por classes concretas;

Paradigma Orientado a Objetos Por exemplo, a compilação do seguinte trecho de código: abstract class AbsClass { public static void main(string[] args) { AbsClass obj = new AbsClass(); } geraria a seguinte mensagem de erro: AbsClass.java:3: class AbsClass is an abstract class. It can t be instantiated. AbsClass obj = new AbsClass(); 1 error

POO Classe abstrata exemplo de implementação abstract class AbsClass { public abstract int NomeDoMetodo(); } class ConcClass extends AbsClass { public int ummetodo() { return 0; }}

Paradigma Orientado a Objetos Tipos de Classes: Concreta: Possui todas as definições dos seus métodos, portanto desta classe podem ser instanciados objetos; Exemplo: Vide classe carro anteriormente apresentado.

Paradigma Orientado a Objetos Objetos Instâncias de uma classes, possuem um conjunto de atributos e métodos; Modelam entidades do mundo real; É algo real, que pode ser visualizado, pensado, tocado; Ex: carro, pessoa

Paradigma Orientado a Objetos Objetos É Capaz de: armazenar estados através de seus atributos reagir a mensagens enviadas se relacionar e enviar mensagens a outros objetos;

Paradigma Orientado a Objetos Objetos Todos os dados que o sistema pode requerer devem estar definidos nos objetos; Todas as interações e cálculos só podem ser realizados pelos objetos; Necessidade de compreender exatamente qual a funcionalidade e como o objeto será utilizado para definir todos os atributos e métodos necessários;

Paradigma Orientado a Objetos Classe X Objeto Objetos existem apenas em tempo de execução, classe são conceitos São os objetos que armazenam valor, as classes apenas mapeiam esses atributos; Classe: idéia, conceito; Objeto: elemento concreto, real de uma classe; Classe = forma de objetos;

Paradigma Orientado a Objetos Exemplo: Declarando uma Classe: class Pessoa { string nome; void Andar() { } } Declarando um Objeto: Pessoa objpessoa1 = new Pessoa();

Paradigma Orientado a Objetos Classe pessoa Nome: Idade: Profissão: Objeto Maria, Objeto Paulo,... Maria 20 anos estudante

Paradigma Orientado a Objetos Atributo Conjunto de características específicas de um objeto; Informações interessantes sobre algum objeto; Ex: Classe: Pessoa Atributos:nome, idade, cor dos olhos; Classe: Automóvel Atributos: placa, cor, ano; Classe: Produtos Atributos: NomeDoProduto, CódigoDoFornecedor, UnidadesEmEstoque;

Paradigma Orientado a Objetos Métodos Definem a habilidade dos objetos; Característica que permite alterar a funcionalidade de um atributo; São os serviços que o objeto pode prover; São as ações designadas aos objetos; Ex: Objeto: Maria Métodos: caminhar,comer, dormir; Objeto: Cachorro Métodos: latir, morder, rosnar; Objeto: Gol Métodos: andar, buzinar,abastecer;

Paradigma Orientado a Objetos Mensagens Mecanismo de comunicação entre objetos; Chamada a um objeto para invocar um de seus métodos, ativando um comportamento descrito por sua classe Para invocar um método de um objeto, deve-se enviar uma mensagem para este objeto. Para enviar uma mensagem deve-se: identificar o objeto que receberá a mensagem identificar o método que o objeto deve executar passar os argumentos requeridos pelo método. EX: tbarquivohistoricodata.inserttbarquivohistorico(idarquivo, EnumStatusArquivoHistorico.ProblemaEnviarEmailArquivoRetorno);

POO Exemplo implementação Exemplo envio de mensagens public class Clientes { protected String status; protected int codigo = 0; public void setcodigo(int codigo) { this.codigo = codigo; } public int getcodigo(){ return this.codigo; } public class TesteCliente { public static void main (String[] args) { String status = ""; Clientes c = new Clientes(); c.setcodigo(999); c.excluir(); status = c.getstatus(); System.out.println("Status: " + status); } } //Métodos public void excluir(){ status = "Código " + codigo + " excluído!"; }

Características Abstração: Habilidade de modelar características do mundo real do problema que se quer resolver; Descrever as características essenciais de uma entidade que as distinguem de todos os outros tipos de entidades; Exemplo: Entre pessoa física e pessoa jurídica abstrair pessoa. Entre dados Oracle e dados Postgre abstrair dados.

Características Abstração - Exemplo de aplicação:

Características Encapsulamento: Separação de aspectos internos e externos dos objetos Ocultamento de informações, objetivo de proteger os dados; Permite que se ignore detalhes de baixo nivel de como as coisas funcionam internamente;

Características Encapsulamento: Mecanismo utilizado para impedir o acesso direto ao estado de um objeto(seus atributos), disponibilizando externamente apenas os métodos que alteram estes estados; Ex: botões e funções de um dvd, lidamos apenas com a interface disponibilizada.

Características Variáveis privadas Métodos privados Internos do objeto Variáveis públicas Métodos públicos Interface para outros objetos

Encapsulamento - Exemplo public class Clientes { // Atributos tipo propriedades private int codigo = 0; private String nome = ""; } public void SetCodigo(int codigo){ this.codigo = codigo; } public int getcodigo(){ return this.codigo; } public void setnome(string nome){ this.nome = nome; } public String getnome(){ return this.nome; }

Características Herança: Permite que uma sub-classe estenda uma classe pai, aproveitando seus comportamentos e estados possíveis; capacidade de uma classe filho herdar um ou mais atributos e métodos de uma classe pai; além das propriedades definidas na própria classe filho; permite a reutilização de código; Mecanismo pelo qual elementos mais específicos incorporem a estrutura e o comportamento de elementos mais genéricos;

Características Mamíferos -peso -nr. Patas -ambiente de vida Homem Cão Gato Baleia -peso -nr. Patas -ambiente de vida -rir() -falar() -peso -nr. Patas -ambiente de vida -latir() -morder() -peso -nr. Patas -ambiente de vida -arranhar() -miar() -peso -nr. Patas -ambiente de vida -nadar() -esguichar()

Características ESTUDANTE especialização (herança) generalização ESTUDANTE DE GRADUAÇÃO ESTUDANTE DE PÓS GRADUAÇÃO

Características Ao se estabelecer uma Especialização (subclasse) de uma classe, a subclasse herda as características comuns da superclasse, isto é, a especificação dos atributos e dos métodos da superclasse passam a fazer parte da especificação dos atributos e dos métodos da subclasse A subclasse pode adicionar novos métodos, como também reescrever métodos herdados

Características Polimorfismo: Possuir várias formas, Uma classe possui uma operação e suas Uma classe possui uma operação e suas sub-classes possuem a mesma operação com outro comportamento;

Características Ex 1: dentro de uma classe, diversos métodos com assinaturas diferentes; Para invocar um método de um objeto, deve-se enviar uma mensagem para este objeto. Para enviar uma mensagem deve-se: identificar o objeto que receberá a mensagem identificar o método que o objeto deve executar passar os argumentos requeridos pelo método

Exemplo 1 Somar (Num1,Num2) X=Num1 + Num2 Escreve X Somar(Num1, Num2, Num3) Y= Num1 + Num2 + Num3 Escreve Y Calculadora -somar ( Num1, Num2) -somar ( Num1, Num2,Num3)

Exemplo 2 Mamíferos -falar() Homem Cão Gato -falar() -falar() -falar() Msg: Eu posso falar!! Au!au!au Miau! Miau!