Tópicos da Aula. Diretrizes Gerais. Trabalho Prático (TP) Pontuação do TP. Tema do Trabalho. Projeto de Software Diagrama de Classes

Documentos relacionados
15/04/2013. Outro Diagrama de Classes. Primeiro Diagrama de Classes. Diagrama de Classes. Atributos. Eduardo Figueiredo

15/04/2013. Pensar Orientado a Objetos. Projeto Orientado a Objetos. Características de Objetos. Classe de Objetos. Comunicação entre Objetos

Modelagem Orientada a Objetos

Tópicos da Aula. A Linguagem UML. A Linguagem UML. De onde surgiu? Fundadores da UML. Introdução à UML e Diagrama de Casos de Uso.

Diagrama de Classes. Classes. Relacionamentos. Atributos Métodos. Associação. Generalização Dependência Realização. Agregação Composição

Tópicos da Aula. Conceitos de programação orientada a objetos. Projeto orientado a objetos com UML

Tópicos da Aula. Desenvolvimento Dirigido por Modelos (MDD) Reusar cada vez mais... Reusar cada vez mais... O que é modelagem? Reuso: Código x Modelos

Diagramas de Classes. ESII Profª. Andressa Falcade URI Santiago

Notas de Aula 03: Introdução a Orientação a Objetos e a UML

Análise de Sistemas 4º Bimestre (material 3)

04/11/2016 UML. Prof. Esp. Fabiano Taguchi DIAGRAMAS DE CLASSE

Diagrama de Casos de Uso. Diagrama de Casos de Uso. Diagrama de Casos de Uso. Diagrama de Casos de Uso. Componentes do Diagrama

A Linguagem UML. A Linguagem UML. De onde surgiu? Fundadores da UML. História da UML. O que é modelagem?

Requisitos de sistemas

Tópicos da Aula. Alguns Diagramas UML. Diagramas Principais. Diagramas de Interação: Sequência e Colaboração. Tipos de Diagramas de Interação

Introdução à UML. Prof. Jesus José de Oliveira Neto

Linguagem de Modelagem Unificada UML

IFSC/Florianópolis - CTI - Projeto de Sistemas - prof. Herval Daminelli

DIAGRAMAS DE CLASSE UML

Introdução. à UML. Histórico (cont.) Histórico Definição Benefícios Notação Diagrama de Classes Diagramas de Interação Conclusões Revisão

Modelagem de Classes. Mestrado em Engenharia de Produção e Sistemas Computacionais. Profa. Adriana Pereira de Medeiros

POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA UML UNIFIED MODELING LANGUAGE

Diagrama de Classes Diagrama mais

POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos

Diagrama de Classes. Régis Patrick Silva Simão. Régis Simão Diagrama de Classes 1/42

UML. Modelando um sistema

MODELAGEM DE SISTEMAS. Introdução a Computação e Engenharia de Software. Profa. Cynthia Pinheiro

Programação Orientada a Objetos Relacionamentos entre classes

UML (Linguagem Modelagem Unificada) João Paulo Q. dos Santos

Modelagem Orientada a Objeto

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

UML Relacionamentos. Relacionamento é uma conexão entre itens A maioria dos itens relacionam-se entre si. Quatro tipos de relacionamentos:

Ciência da Computação. Análise e Projeto Orientado a Objetos UML. Anderson Belgamo

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades. Diagramas UML. Classe, Seqüência e Atividades. Marcio E. F.

UML (Unified Modelling Language)

Aula 1: Apresentação. Revisão para Prova 1. Aula 2: Motivação. O que é software? Eng. de Software em Camadas. O que é Engenharia de Software?

Capítulo 5 Modelação do Sistema 1

INTRODUÇÃO À ENGENHARIA DE SOFTWARE. Prof.: Tiago Alves

Diagrama de Atividades

Modelagem de Processos

Modelagem Usando Orientação à Objetos (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus

Diagrama de Casos de Uso

PROJETO DE DESENVOLVIMENTO DE SOFTWARE

Introdução a UML (Unified Modeling Language)

UML. Diagrama de Classe

Diagrama de Casos de Uso. Diagrama de Casos de Uso. Diagrama de Casos de Uso. Diagrama de Casos de Uso. Componentes do Diagrama.

A modelagem de Negócio com UML

Diagrama de Sequência. Diagrama de Sequência. Atores. O que representam? Linha de Vida. Objetos

Engenharia de Software 2012/3 Aula 5 Modelagem de Sistemas

Q d( ) P. a( ) c( ) e( ) c( ) S. c( ) d( )

Projeto orientado a objetos

Análise Orientada a Objetos. Análise Orientada a Objetos; O Paradigma de Objetos; A UML.

PROGRAMAÇÃO ORIENTADA A OBJETOS II -TÉCNICAS DE OO. Prof. Angelo Augusto Frozza, M.Sc.

Trabalho Prático. Eduardo Figueiredo.

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

UML e seus diagramas

INF1013 MODELAGEM DE SOFTWARE

Diagramas. Abordaremos agora cada um destes tipos de diagrama: 1. Diagrama Use-Case. 2. Diagrama de Colaboração. 3. Diagrama de Sequência

Programação para Games II. Professor Ariel da Silva Dias Orientação a Objetos

FUNDAÇÃO UNIVERSIDADE ESTADUAL DE MARINGÁ

Engenharia de Software. Aula 10 Representação dos Conceitos de Orientação a Objetos. Prof. Me. Rogério Ferreira

Análise e projeto de sistemas

UML Diagrama de Atividades Diagrama de Caso de Uso. ENG1518/3VB Sistemas de Informação Gerenciais Prof. Marcos Villas

Modelo Conceitual Parte 1 Banco de Dados I Prof. Luiz Antônio Vivacqua C. Meyer

Especificação de Sistemas de Software e a UML

RUP Unified Process. Profª Jocelma Rios

Análise de Sistemas. Aula 5

Modelo Conceitual. Análise e Projeto de Sistemas Avançados. Aula 5. Allan Rodrigo Leite

Engenharia de Software Aula 21. Revisão da Prova 2. Eduardo Figueiredo.

PROJETO DE PROGRAMAS. Projeto de Programas PPR0001

1 Introdução. 1.1 Teoria dos Sistemas 23/4/2010

BANCO DE DADOS I. Prof. Luiz Antônio Vivacqua C. Meyer

Prof. Esp. Fabiano Taguchi

Simbolos/Componentes desse diagrama:

A modelagem é tida como a parte central de todas as atividades para a construção de um bom sistema, com ela podemos:

Técnicas de Reutilização. Reutilização em Programação Orientada a Objetos. Considere três classes... Reuso de Classes.

Visões Arquiteturais. Arquitetura de Software Thaís Batista

Visões Arquiteturais. Visões Arquiteturais

Projeto Orientado a Objetos

Eng. de Requisitos: Atividades. Engenharia de Requisitos. Eng. de Requisitos: Processo. O Documento de Requisitos. Stakeholders

Curso de Sistemas de Informação. Karla Donato Fook DESU / DComp. Modelagem de Dados UML

Modelagem de Sistemas. Análise de Requisitos. Modelagem

UML. Adriano J. Holanda 21/3/

PROGRAMAÇÃO ORIENTADA A

UML Diagrama de Classes

Análise e Projeto Orientados a Objetos

SEMINÁRIOS INTEGRADOS EM ADS PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

Análise e projeto de sistemas

Diagramas de Classes. Diagramas de Classes. Diagramas de Classes. Análise e Projeto de Sistemas OO

Eng. de Requisitos: Atividades. Engenharia de Requisitos. Eng. de Requisitos: Processo. O Documento de Requisitos. Stakeholders. Estudo de Viabilidade

Panorama da notação UML

Análise e Projeto de Software Parte I. Marcos Dósea

PROJETO DE ARQUITETURA

Aula 3 POO 1 Classe e Objeto. Profa. Elaine Faria UFU

Modelagem de dados usando o modelo Entidade- Relacionamento (ER)

Reuso de Software Aula Maio 2012

Transcrição:

Engenharia de Software Aula 09 Tópicos da Aula Projeto de Software Revisão de orientação a objetos Projeto orientado a objetos Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo dcc603@gmail.com 04 Abril 2011 Diretrizes Gerais Trabalho Prático (TP) Grupo de até 5 integrantes Tarefas Desenvolver um sistema de software Simular um processo de software Documentar todas as fases de desenvolvimento Tema do Trabalho A escolha do grupo Entretanto, no máximo dois grupos podem fazer o TP sobre um mesmo tema Sugestão de temas Locadora, Biblioteca, Oficina de Eletro, Clínica Médica, Construtora, Veículos Policiais, Alarme de Fogo e Invasão, Pedágio, Urna Eletrônica, Copa de 2014. Pontuação do TP 30 pontos, distribuídos entre Modelo de processo e plano de trabalho Documentação de requisitos Projeto arquitetural Projeto detalhado Implementação Substitutiva Prova individual envolvendo todo o conteúdo da disciplina Não recomendado (queima cartucho)

Ferramentas Usadas Pode se usar qualquer ferramenta ou ambiente (IDE) para desenvolver o TP Entregar a documentação em DOC (MS Word 2003) ou PDF Entregar a implementação em um arquivo ZIP contendo o código *.JAVA Apresentação Parcial Duração de 8 a 10 minutos O tempo depende do número de grupos Andamento do trabalho até a data da apresentação Modelo de processo e cronograma Análise de requisitos Decisões tomadas em relação a arquitetura e ao projeto Datas Importantes Imediatamente (04/04/2012) Início do trabalho 23/04/2012 Informar grupo e tema escolhido 30/05/2012 Apresentação parcial 15/06/2012 Entrega Final Projeto Orientado a Objetos Pensar Orientado a Objetos Onde quer que você olhe no mundo real, você vê objetos s, animais, plantas, carros, etc. Humanos pensam em termos de objetos Orientação a objetos é alto nível i.e., mais próximo dos humanos que dos computadores Características de Objetos Classificação Animados: possuem vida, se movem... Inanimados: não possuem vida Objetos possuem atributos Tamanho, forma, cor, peso, etc. Objetos exibem comportamentos Uma bola rola, um avião voa Uma pessoa anda, fala, pensa, etc.

Classe de Objetos Definições Objeto é uma entidade que possui um estado e operações definidas sobre este estado Classe é um esqueleto para criação (instanciação) de objetos Como a planta é um esqueleto para criação de casas Objeto Entidade que descreve uma realidade Classe Abstração que define objetos Instância Criação de um objeto a partir de uma classe Comunicação entre Objetos Projeto Orientado a Objetos A comunicação pode ocorrer de várias formas Envio de mensagens (exemplo, pode ser implementadas por arquivos XML) Invocação de métodos remotos (RMI) Chamada de métodos locais Veremos apenas chamada de métodos locais Comunicação síncrona Maneira natural de visualizar o software Documentação Comunicação entre a equipe Modela o software semelhante ao mundo real - usando objetos Objetos são modelados em termos de seus atributos e comportamento (métodos) Desenvolvimento OO Dos Requisitos ao Projeto Análise orientada a objetos Cria um modelo de objetos para o domínio da aplicação (domínio do problema) Projeto orientado a objetos Cria um modelo de objetos para implementar requisitos (domínio da solução) Programação orientada a objetos Implementa o projeto orientado a objetos usando uma linguagem de programação

Desenvolvimento OO A transição entre estágios deve ser contínua e com notações compatíveis Da análise para o projeto Do projeto para a programação Vantagens de OO Facilidade de entendimento Mapeamento de entidades do mundo real para objetos de sistema Facilidade de manutenção Mais fácil de alterar pois os objetos são independentes Facilidade de reuso Objetos são potencialmente componentes reusáveis Atividades de Projetar OO 1. Definir o contexto do sistema 2. Projetar a arquitetura 3. Identificar os objetos principais 4. Desenvolver os modelos de projeto 5. Especificar interfaces entre objetos Paralelo e Iterativo As atividades não necessariamente são sequenciais Geralmente é feito de forma iterativa Define-se parte do contexto do sistema Projeta-se parte da arquitetura Identifica-se alguns objetos Modela-se estes objetos Define-se suas interfaces Definir o contexto do sistema Objetivo: compreensão do software que está sendo desenvolvido e de seu ambiente externo Técnicas adotadas Diagramas de Casos de Uso Descrição dos Cenários Ao definir o contexto, pode-se identificar alguns objetos do domínio Projetar Arquitetura Primeiro passo do projeto de sistema O projeto arquitetural envolve Identificação dos componentes principais do sistema (sub-sistemas) Definição das interfaces de comunicação entre os componentes Regra geral: modelar de 5 a 9 subsistemas

Identificar os objetos principais Identificação de objeto é um processo iterativo É improvável que você faça certo na primeira vez Na verdade, identifica-se as classes de objetos Não há fórmula mágica para a identificação de objetos Uma abordagem para identificação Análise gramatical baseada em Descrição em linguagem natural do sistema Descrição dos cenários de uso Como proceder Substantivos são objetos ou atributos Verbos são métodos Refinar e definir novos objetos usando o conhecimento do domínio do sistema Diagrama de Casos de Uso Exemplo de Cenário Nome do Cenário: Sacar Ator: Cliente Pré-condição: Conta e senha validadas Fluxo normal 1. Entrar com valor do saque 2. Confirmar dados e operação 3. Debitar valor da conta do cliente Fluxos alternativo: Saldo insuficiente 3.1 Apresentar aviso ao cliente Pós-condição: Valor sacado é debitado do saldo do cliente Exemplo de Cenário Nome do Cenário: Sacar Ator: Cliente Pré-condição: Conta e senha validadas Fluxo normal Potenciais 1. Entrar com valor do saque objetos do 2. Confirmar dados e operação sistema 3. Debitar valor da conta do cliente Fluxos alternativo: Saldo insuficiente 3.1 Apresentar aviso ao cliente Pós-condição: Valor sacado é debitado do saldo do cliente Exemplo de Cenário Nome do Cenário: Sacar Ator: Cliente Pré-condição: Conta e senha validadas Fluxo normal Potenciais 1. Entrar com valor do saque atributos dos 2. Confirmar dados e operação objetos 3. Debitar valor da conta do cliente Fluxos alternativo: Saldo insuficiente 3.1 Apresentar aviso ao cliente Pós-condição: Valor sacado é debitado do saldo do cliente

Exemplo de Cenário Nome do Cenário: Sacar Ator: Cliente Pré-condição: Conta e senha validadas Fluxo normal Potenciais 1. Entrar com valor do saque métodos dos 2. Confirmar dados e operação objetos 3. Debitar valor da conta do cliente Fluxos alternativo: Saldo insuficiente 3.1 Apresentar aviso ao cliente Pós-condição: Valor sacado é debitado do saldo do cliente Modelos de projeto Fazem a ligação entre requisitos (problema) e implementação (solução) Mostram os objetos ou as classes de objetos e os relacionamentos entre essas entidades Devem incluir detalhes suficientes para os programadores tomarem decisões Várias visões Para evitar modelos complexos, eles são quebrados em diversas visões Modelos estáticos descrevem a estrutura estática das classes Modelos dinâmicos descrevem as interações dinâmicas entre os objetos O modelo estático mais utilizado é o Especificar interfaces entre objetos Especificação de interfaces permite que objetos e componentes sejam projetados em paralelo Objetos podem ter várias interfaces Cada interface é um ponto de vista dos métodos fornecidos A UML usa diagramas de classe para especificação de interfaces (semelhante a classes) Alguns Diagramas UML A estrutura do projeto Diagramas Estruturais (Estáticos) Diagramas de Objetos Diagrama de Caso de Uso Diagrama de Componentes, etc. Diagramas Dinâmicos Diagrama de Seqüência Diagrama de Estados Diagrama de Atividades Diagrama de Colaboração, etc.

Alguns Diagramas UML Primeiro Diagramas Estruturais (Estáticos) Diagrama de Caso de Uso Diagramas de Objetos Diagrama de Componentes, etc. Diagramas Dinâmicos Diagrama de Seqüência Diagrama de Estados Diagrama de Atividades Diagrama de Colaboração, etc. Professor email Aluno matricula Outro Serve de apoio para a maioria dos outros diagramas Define a estrutura das classes do sistema Estabelece como as classes se relacionam É o mais importante e o mais utilizado diagrama da UML Permite a visualização das classes que compõem o sistema Apresenta uma visão estática de como as classes estão organizadas Preocupação com a estrutura lógica Representa Atributos e métodos de uma classe Os relacionamentos entre classes

Atributos Métodos Permite a identificação de cada objeto de uma classe Os valores dos atributos podem variar de instância para instância Atributos devem conter o tipo de dados a ser armazenado Byte, boolean, int, double, char, String, etc. São apenas declarados neste diagrama não define a implementação Outros diagramas permitem modelar o comportamento interno dos métodos Diagrama de Sequência Diagrama de Atividades Representação de uma Classe Uma classe é representada por um retângulo com três divisões: Nome da Classe Atributos da Classe Métodos da Classe email enviarmensagem() Representação de uma classe Uma classe é representada por um retângulo com três divisões: Nome da Classe Atributos da Classe Métodos da Classe Atributos Métodos Nome email enviarmensagem() Representação de uma interface Tipos de visibilidade Uma interface é semelhante a uma classe, mas não tem atributos Uma interface possui Nome da Interface Métodos da Interface Estereótipo interface Métodos Estereótipo << interface >> I Nome enviarmensagem() recebermensagem() Pública (+) O atributo ou método pode ser utilizado por qualquer classe Protegida (#) Somente a classe ou sub-classes terão acesso Privada (-) Somente a classe terá acesso

Tipos de visibilidade Pública (+) O atributo ou método pode ser utilizado por qualquer classe Protegida (#) Somente a classe ou sub-classes terão acesso Privada (-) Somente a classe terá acesso # - email + enviarmensagem() Comunicação entre Objetos (I) Conceitualmente, objetos se comunicam através da troca de mensagens Mensagens definem: O do serviço requisitado A informação necessária para a execução do serviço O do requisitante. Comunicação entre Objetos (II) Na prática, mensagens são geralmente implementadas como chamadas de métodos Nome = o do método Informação = a lista de parâmetros Requisitante = o método/objeto que realizou a chamada Relacionamento Classes possuem relacionamentos entre elas (para comunicação) Compartilham informações Colaboram umas com as outras Principais tipos de relacionamentos Associação Agregação / Composição Herança Dependência Associações Multiplicidade Descreve um vínculo entre duas classes Chamado Associação Binária Determina que as instâncias de uma classe estão de alguma forma ligadas às instâncias da outra classe 0..1 1..1 0..* 1..* 3..5 No máximo um. Indica que os Objetos da classe associada não precisam obrigatoriamente estar relacionados. Um e somente um. Indica que apenas um objeto da classe se relaciona com os objetos da outra classe. Muitos. Indica que podem haver muitos objetos da classe envolvidos no relacionamento Um ou muitos. Indica que há pelo menos um objeto envolvido no relacionamento. Valores específicos.

Representação de Associação Agregação Tipo especial de associação Cliente registro 0..1 <<locados>> 0..* titulo DVD Demonstra que as informações de um objeto precisam ser complementadas por um objeto de outra classe Associação Todo-Parte objeto-todo objeto-parte Representação de Agregação Composição Um losango na extremidade da classe que contém os objetos-todo Time email Uma variação do tipo agregação Representa um vínculo mais forte entre objetos-todo e objetos-parte Objetos-parte têm que pertencer ao objeto-todo O todo não existe (ou não faz sentido) sem a parte Representação da Composição Especialização / Generalização Um losango preenchido Da mesma forma que na Agregação, deve ficar ao lado do objeto-todo Time Jogador posicao Identificar super-classe (geral) e subclasses (especializadas) Semântica é um Tudo que a classe geral pode fazer, as classes específicas também podem Atributos e métodos definidos na classe-mãe são herdados pelas classes-filhas

Especialização / Generalização Hierarquia de generalização email Professor Aluno matricula Vantagens da herança O gráfico de herança é uma fonte de conhecimento sobre o domínio do sistema É um mecanismo de abstração usado para classificar entidades Mecanismo de reuso em vários níveis Como projeto e programação Problemas com herança Classes de objetos não são autocontidas Não podem ser compreendidas sem referência às suas super-classes Reusar gráficos da fase de análise pode ser ineficiente Os gráficos de herança na análise, projeto e implementação têm diferentes funções (devem ser refinados) Dependência Tipo menos comum de relacionamento Identifica uma ligação fraca entre objetos de duas classes Dependência Representado por uma reta tracejada entre duas classes Uma seta na extremidade indica o dependente Funcionario titulo DVD locar()

Dependência Notas Representado por uma reta tracejada entre duas classes Uma seta na extremidade indica o dependente Funcionario DVD Informativos Função de comentários em classes, métodos ou atributos Informa restrição de funcionalidade Indicar condições para os relacionamentos, etc. titulo locar() locar(funcionario func) Notas Resumo da Aula email Nome é obrigatório para toda instancia desta classe Um projeto orientado a objetos é obtido iterativamente pelas atividades Definição de escopo, projeto de arquitetura, identificação dos objetos, desenvolvimento de modelos e especificação de interfaces Descrições textuais e cenários podem ajudar na identificação dos objetos Substantivos e verbos Resumo da Aula Referências Definições de Diagramas de Classes Classes e interfaces Métodos e atributos Visibilidade Multiplicidade Notas Relacionamentos Herança, Associação, Agregação, Composição e Dependência Ian Sommerville. Engenharia de Software, 9a. Edição. 2011. Cap. 7: Seções 7.1 BOOCH, G., RUMBAUGH, J., JACOBSON, I. UML, Guia do Usuário. Rio de Janeiro: Campus, 2000. Capítulos 4, 8 e 9