Diagramas de Colaboração e Padrões GRASP
|
|
- Tânia Caldas Cipriano
- 7 Há anos
- Visualizações:
Transcrição
1 UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Projeto e Desenvolvimento de Sistemas de Informação Diagramas de Colaboração e Padrões GRASP
2 O que vimos até agora Diagramas de Caso de Uso Casos de uso resumido e completo Modelo Conceitual Diagramas de Sequência do Sistema Contratos de Operações Notação dos Diagramas de Comunicação
3 Atendente nome n registra 1..1 Leitor nome tipo : char ^ faz 0..n 0..n faz n Reserva período situacao : char 0..1 Empréstimo/Devolução data do empréstimo situação : Char 0..1 corresponde a corresponde a possui Bibliotecaria nome refere-se a > 1..1 Objetivo ao final da fase de projeto registra n 1..1 Livro titulo : String[30] autor : String[30] ano : int ISBN : string[20] editora : int tipo : char possui 0..n CopiaDoLivro nro sequencial situacao : char liberadoparaemprestimo : char 1..n 0..1 LinhaDoEmpréstimo data_prevista_dev olução data_entrega_real n < refere-se a
4 nome tipo Leitor calculardatadevolucao( ) 1 0..* faz Emprestimo data_do_emprestimo situacao : char adicionarcopia( ) devolvercopia( ) Mais a especificação das interfaces (métodos) LinhaDoEmprestimo data_prevista_devolução data_entrega_real possui 1..* refere-se a 1 CopiaDoLivro nro_sequencial situacao : char liberadoparaemprestimo : char codcopia( ) atualizardatadev( ) 0..* 1 mudarsituacao( ) codcopia( ) sinalizardevolucao( )
5 Como projetar as responsabilidades de cada objeto Sabemos que os objetos precisam se comunicar para completar as operações. Os Diagramas de comunicação mostram escolhas de atribuições de responsabilidades a objetos. Mas quem é o melhor candidato para realizar cada uma das operações ou métodos do sistema?
6 Como projetar as responsabilidades de cada objeto Responsabilidade: Um contrato ou obrigação de um tipo ou uma classe(booch e Rumbaugh) Responsabilidades estão relacionadas às obrigações de um objeto em termos de seu comportamento. Dois tipos de responsabilidades básicas: Fazer Fazer algo (criar um objeto, executar uma operação,...) Iniciar ações em outros objetos(delegação). Controlar e coordenar atividades em outros objetos. Conhecer Conhecer dados privados encapsulados. Conhecer objetos relacionados. Conhecer dados/atributos que podem ser derivados ou calculados.
7 Responsabilidades e Diagramas de Interação Diagramas de interação mostram escolhas de atribuição de responsabilidade a objetos. Exemplo: atribuir aos objetos do tipo Venda a responsabilidade de imprimirem a si próprios. imprimir() :Venda Responsabilidade de imprimir a si própria
8 Exemplo: Motivação para aplicação de Padrões Diagrama de Comunicação para a operação EmprestarFita(fcodigo) Implementação inchada ou concentradora X Implementação leve, distribuída
9 Sistema Videolocadora Cod Cópia fita Emprestar :Atendente Camada de Interface açãoexecutada(eventodaação) :CWindow emprestarfita(fcodigo) Camada do Domínio :????
10 Videolocadora Modelo Conceitual Sistema Videolocadora possui possui
11 Comunicação entre os objetos 2: emprestimocorrente := getemprestimocorrente emprestarfita(fcodigo)----> :Videolocadora clientecorrente: Cliente 3: criar() 1: fita:=get(fcodigo) 5: associaritem(item) 4: associarfita(fita) fitas: Fita emprestimocorrente: Emprestimo item: ItemDeEmprestimo Qual é o problema desta solução?
12 Pseudo-código Concentrador VideoLocadora Classe VideoLocadora fitas: Conjunto; clientecorrente: Cliente Método emprestarfita(fcodigo: String) fita:fita; emprestimocorrente: Emprestimo; item: ItemDeEmprestimo; fita := fitas.get(fcodigo); emprestimocorrente := clientecorrente.getemprestimocorrente(); item := itemdeemprestimo.new(); Item.associarFita(fita); EmprestimoCorrente.associarItem(item); Fim Método; FIM Classe;
13 Comunicação entre objetos (concentrador) 2: emprestimocorrente := getemprestimocorrente emprestarfita(fcodigo)----> :Videolocadora clientecorrente: Cliente 3: criar() 1: fita:=get(fcodigo) 5: associaritem(item) 4: associarfita(fita) fitas: Fita item: ItemDeEmprestimo emprestimocorrente: Emprestimo
14 Diagrama de Comunicação não Concentrador emprestarfita(fcodigo)----> :Videolocadora 5: associaritem() 1: fita:=get(fcodigo) emprestimocorrente: Emprestimo 2: emprestar(fita) 4: criar() fitas: Fita 3: adicionar(fita) 6: associarfita(fita) clientecorrente: Cliente item: ItemDeEmprestimo
15 Código com Responsabilidade Classe VideoLocadora fitas: Conjunto; clientecorrente: Cliente; Distribuída Classe Emprestimo Itens:Conjunto; Metodo emprestarfita(fcodigo:string) fita:fita; fita:=fitas.get(tcodigo); clientecorrente.empresta(fita) Fim Metodo; Fim Classe; Classe Cliente emprestimocorrente: Empretimo; Metodo adicionar(fita:fita); item: ItemDeEmprestimo; item := ItemDeEmprestimo.new(); self.associaitem(item); item.associafita(fita); Fim Metodo; Fim Classe; Método emprestar(fita:fita); emprestimocorrente.adiciona(fita); Fim Método; Fim Classe;
16 Discussão Qual dos códigos é mais fácil de entender e manter? Em qual dos códigos as responsabilidades das classes parecem mais intuitivas? Para desenvolver um bom projeto, precisamos de princípios para nos guiar na atribuição de responsabilidades -> padrões de projeto OO.
17 Responsabilidade Responsabilidade não é a mesma coisa que um método. Métodos são implementados para satisfazer as responsabilidades Responsabilidades são implementadas usando métodos que agem sozinhos ou colaboram com outros métodos e objetos. Padrões de projeto são princípios para guiar a atribuição de responsabilidades aos objetos.
18 Padrões Desenvolvedores experientes em OO criaram um repertório de princípios gerais e boas soluções para guiar a construção de software. Essas soluções foram descritas em um formato padronizado (nome, problema, solução) e podem ser usadas em outros contextos(outros projetos). Surgiram com base no trabalho do arquiteto Christopher Alexander, (Padrões Arquitetônicos). Ganharam impulso após a publicação do livro sobre Padrões de Projeto (Design Patterns Gamma e outros GoF- 1994)
19 Padrões Padrões usualmente não contem novas idéias Organizam conhecimentos e princípios existentes, testados e consagrados. Padrão é uma descrição nomeada de um problema e uma solução, que pode ser aplicado em novos contextos. Nomear padrões melhora a comunicação (criase um vocabulário, ou idioma)
20 Padrões GRASP GRASP = General Responsability Assignment Software Patterns. Descrevem princípios fundamentais de atribuição de responsabilidades a objetos. A compreensão dos padrões de projeto durante a criação de diagramas de comunicação é importante, pois: São princípios de bons projetos Orientado a Objetos. Levam a projetos OO de qualidade.
21 Padrões GRASP Alguns padrões GRASP principais: Especialista (Expert) Criador (Creator) Coesão alta (High Cohesion) Acoplamento fraco (Low Coupling) Controlador (Controller) Esses padrões abordam questões básicas comuns e tópicos fundamentais de desenvolvimento.
22 O padrão Especialista (Expert) Problema: qual é o princípio mais básico para atribuir responsabilidades em projeto orientado a objetos? Solução: Atribuir responsabilidade ao especialista da informação a classe que tem a informação necessária para satisfazer a responsabilidade.
23 Exemplo No sistema biblioteca, quem seria o responsável por calcular a data de devolução de um livro?
24 Modelo Conceitual Biblioteca Atendente nome 1 0..n registra 1 Leitor nome tipo : char ^ faz 0..n 0..n faz 1 0..n Reserva período situacao : char 0..1 Empréstimo/Devolução data do empréstimo situação : Char 0..1 corresponde a corresponde a possui Bibliotecaria nome refere-se a > 1 registra 1 0..n 1 Livro titulo : String[30] autor : String[30] ano : int ISBN : string[20] editora : int tipo : char possui 1..n 0..1 LinhaDoEmpréstimo data_prevista_devolução data_entrega_real 0..n < refere-se a 0..n CopiaDoLivro nro sequencial situacao : char liberadoparaemprestimo : char 1
25 Especialista A data de devolução ficará armazenada no atributo data_prevista_devolução do objeto LinhaDoEmprestimo Mas quem possui conhecimento necessário para calculá-la?
26 Modelo Conceitual Biblioteca Atendente nome 1 0..n registra 1 Leitor nome tipo : char ^ faz 0..n 0..n faz 1 0..n Reserva período situacao : char 0..1 Empréstimo/Devolução data do empréstimo situação : Char 0..1 corresponde a corresponde a possui Bibliotecaria nome refere-se a > 1 registra 1 0..n 1 Livro titulo : String[30] autor : String[30] ano : int ISBN : string[20] editora : int tipo : char possui 1..n 0..1 LinhaDoEmpréstimo data_prevista_devolução data_entrega_real 0..n < refere-se a 0..n CopiaDoLivro nro sequencial situacao : char liberadoparaemprestimo : char 1
27 Especialista Pelo padrão especialista, Leitor deve receber essa atribuição, pois conhece o tipo de Leitor (por exemplo, aluno de graduação, aluno de pós-graduação, professor, etc), que é utilizado para calcular a data em que o livro deve ser devolvido.
28 Especialista adicionarcopia(copialivro)---> : Emprestimo 1: d:=calculardatadevolução() 2: criar(d, copialivro) :Leitor Uso do padrão Especialista linh: LinhaDoEmprestimo
29 Especialista: alternativa mais detalhada adicionarcopia(copialivro) 4: associarlinha(linh) adicionarcopia(copialivro)---> : Emprestimo copialivro: CopiaDoLivro 2: criar(d) 1: d:=calculardatadevolução() :Leitor 3: associarcopia(copialivro) Uso do padrão Especialista linh: LinhaDoEmprestimo
30 Especialista Onde procurar pela classe especialista? Começar pelas classes já estabelecidas durante o projeto. Se não encontrar, utilizar o Modelo Conceitual. Lembrar que existem especialistas parciais que colaboram numa tarefa Informação espalhada -> comunicação via mensagens Existe uma analogia no mundo real.
31 Especialista Discussão É o padrão mais utilizado Tem uma analogia no mundo real Coad: Fazê-lo eu mesmo Lembrar que existem especialistas parciais Benefícios: Mantém encapsulamento -> favorece o acoplamento fraco. O Comportamento fica distribuído entre as classes que tem a informação necessária (classes leves ) -> favorece alta coesão. Favorece o reuso. Contra-indicações contra indicado quando aumenta acoplamento e reduz coesão Ex: quem é responsável por salvar um Empréstimo no banco de dados?
32 Padrão Criador (Creator) Problema: Quem deveria ser responsável pela criação de uma nova instância de alguma classe? Solução: atribua à classe B a responsabilidade de criar uma nova instância da classe A se uma das seguintes condições for verdadeira: B agrega objetos de A B contém objetos de A B registra instâncias de objetos de A B usa objetos de A B tem os valores iniciais que serão passados para objetos de A, quando de sua criação
33 Criador No sistema da Biblioteca, quem é responsável pela criação de uma linhadoemprestimo adicionarcopia(copialivro)---> : Emprestimo 1: d:=calculardatadevolução() 2: criar(d, copialivro) :Leitor Uso do padrão Criador: Emprestimo contém várias linhas de emprestimo linh: LinhaDoEmprestimo Empréstimo/Devolução data do empréstimo situação : Char CriarLinhaEmprest()
34 Discussão Criador O padrão guia a atribuição de responsabilidades relacionadas com a criação de objetos. Escolha adequada favorece acoplamento fraco Objetos agregados, contêineres e registradores são bons candidatos à responsabilidade de criar outros objetos Algumas vezes o candidato a criador é o objeto que conhece os dados iniciais do objeto a ser criado.
35 Acoplamento Acoplamento: dependência entre elementos (classes, subsistemas,...). Normalmente resultante de colaboração para atender a uma responsabilidade. O acoplamento mede o quanto um objeto está conectado a, tem conhecimento de ou depende de outros objetos Acoplamento fraco (ou baixo) um objeto não depende de muitos outros. Acoplamento forte (ou alto) um objeto depende de muitos outros.
36 Acoplamento Problemas do acoplamento alto: Mudanças em classes interdependentes forçam mudanças locais. Dificulta a compreensão do objetivo de cada classe. Dificulta a reutilização. Acoplamento fraco é o desejável
37 Padrão Acoplamento Fraco Problema: como apoiar a baixa dependência entre classes e aumentar a reutilização? Solução: Atribuir responsabilidade de Solução: Atribuir responsabilidade de maneira que o acoplamento permaneça baixo.
38 Padrão Acoplamento Fraco Exemplo: No sistema de biblioteca, suponha que queremos realizar a devolução da cópia do livro. Qual classe deve ser responsável por essa tarefa? Alternativas: A classe Leitor A classe Livro A classe Empréstimo
39 Modelo Conceitual Biblioteca Atendente nome 1 0..n registra 1 Leitor nome tipo : char ^ faz 0..n 0..n faz 1 0..n Reserva período situacao : char 0..1 Empréstimo/Devolução data do empréstimo situação : Char 0..1 corresponde a corresponde a possui Bibliotecaria nome refere-se a > 1 registra 1 0..n 1 Livro titulo : String[30] autor : String[30] ano : int ISBN : string[20] editora : int tipo : char possui 1..n 0..1 LinhaDoEmpréstimo data_prevista_devolução data_entrega_real 0..n < refere-se a 0..n CopiaDoLivro nro sequencial situacao : char liberadoparaemprestimo : char 1
40 Projeto 1: responsabilidade atribuída ao Leitor cop:=busca(codcopia) devolver(datadehoje) Leitor conhece copias do livro? devolvecopia(codcopia)--> leit: Leitor 4: atualizarsituacao('devolvida') 2: devolver(datadehoje) cop: CopiaDoLivro 1: cop:=busca(codcopia) 3: atualizardatadev(datadehoje) copias: CopiaDoLivro Copia conhece linha do empréstimo? linh: LinhaDoEmprestimo
41 Projeto 2: responsabilidade atribuída ao Livro devolvecopia(codcopia)--> liv: Livro 2: devolver(datadehoje) 3: atualizarsituacao('devolvida') 1: cop:=busca(codcopia) cop: CopiaDoLivro copias: CopiaDoLivro 4: atualizardatadev(datadehoje) linh: LinhaDoEmprestimo Eficiente? Cópia conhece a linha de empréstimo?
42 Projeto 3: responsabilidade atribuída ao Empréstimo 1: *[enquanto encontrou=false] linh:==proximo() devolvercopia(codcopia)---> : Emprestimo :LinhaDoEmprestimo 2: * [enquanto encontrou = false] cc:=obtercodigocopia() 4: [encontrou] atualizadatadev(datadehoje) 6: mudarsituacao('devolvida') 3: cc :=CodigoCopia() linh: LinhaDoEmprestimo cop: CopiaDeLivro 5: sinalizadevolucao() encontrou := false enquanto encontrou == false linh := proxima linha do emprestimo cc:=linh.obtercódigocópia() encontrou:=(cc==codcopia) fim-enquanto se encontrou linh.atualizadatadevolucao(datadehoje) fim-se
43 Qual projeto é melhor? Qual dos projetos anteriores favorece o acoplamento fraco? Projeto 1 e 2 acoplamento aumenta (entre cópia do livro e linha do empréstimo, entre leitor e cópia do livro) Projeto 3 não aumenta acoplamento PREFERÍVEL
44 Formas de Acoplamentos Um objeto tem um atributo que referencia um objeto de outra classe. Um objeto tem um método que referencia um objeto de outra classe. Parâmetro, variável local ou retorno Um objeto invoca os serviços de um objeto de outra classe. Uma classe é subclasse de outra, direta ou indiretamente.
45 Discussão: Acoplamento Fraco Acoplamento fraco -> classes mais independentes. Reduz impacto de mudanças. Favorece reuso de classes. Considerado em conjunto com outros padrões Extremo de acoplamento fraco não é desejável Fere princípios da tecnologia de objetos comunicação por mensagens Projeto pobre: objetos inchados e complexos, responsáveis por muito trabalho -> baixa coesão
46 Acoplamento Fraco Discussão: Dica: concentre-se em reduzir o acoplamento em pontos de evolução ou de alta instabilidade do sistema. Benefícios: Classes são pouco afetadas por mudanças em outras partes. Classes são simples de entender isoladamente. Conveniente para reutilização.
47 Coesão Mede o quanto as responsabilidade de um elemento (classe, objeto, subsistema,...) são fortemente focalizadas e relacionadas. (coesão funcional) Objeto com Coesão Alta -> objetos cujas responsabilidades são altamente relacionadas e que não executa um volume muito grande de trabalho. Objeto com Coesão Baixa -> objeto que faz muitas coisas não relacionadas ou executa muitas tarefas. Difícil de compreender, reutilizar e manter. constantemente afetado por mudanças.
48 Coesão Alta Problema: Como manter a complexidade sob controle? Solução: Atribuir responsabilidade de tal forma que a coesão permaneça alta.
49 Coesão Alta Exemplo 1: ( o mesmo para o acoplamento fraco): No sistema de biblioteca, suponha que queremos realizar a devolução da cópia do livro. Qual classe deve ser responsável por essa tarefa? Leitor Livro Empréstimo
50 Projeto 1: responsabilidade atribuída ao Leitor cop:=busca(codcopia) devolver(datadehoje) O Leitor fica parcialmente encarregado da devolução da cópia do livro. Neste exemplo, isso seria aceitável, mas o que aconteceria se houvesse 50 mensagens de outro tipo recebidas por Leitor? devolvecopia(codcopia)--> leit: Leitor 4: atualizarsituacao('devolvida') 2: devolver(datadehoje) cop: CopiaDoLivro 1: cop:=busca(codcopia) 3: atualizardatadev(datadehoje) copias: CopiaDoLivro linh: LinhaDoEmprestimo
51 Projeto 2: responsabilidade atribuída ao Livro devolvecopia(codcopia)--> liv: Livro 2: devolver(datadehoje) 3: atualizarsituacao('devolvida') 1: cop:=busca(codcopia) cop: CopiaDoLivro copias: CopiaDoLivro 4: atualizardatadev(datadehoje) linh: LinhaDoEmprestimo cop:=busca(codcopia) devolver(datadehoje) Parece uma solução melhor. Mas se houver inúmeras operações a serem feitas com o livro, ocorre o mesmo problema de Leitor.
52 Projeto 3: responsabilidade atribuída ao Empréstimo 1: *[enquanto encontrou=false] linh:==proximo() devolvercopia(codcopia)---> : Emprestimo :LinhaDoEmprestimo 2: cc:=codigocopia() 4: [encontrou] atualizadatadev(datadehoje) 6: mudarsituacao('devolvida') 3: cc := codigocopia() linh: LinhaDoEmprestimo cop: CopiaDeLivro encontrou := false enquanto encontrou == false linh := proxima linha do emprestimo cc:= linh.obter o código da cópia() encontrou:=(cc==codcopia) fim-enquanto se encontrou linh.atualizadatadev(datadehoje) fim-se 5: sinalizadevolucao() Esta é a melhor solução. O objeto empréstimo representa eventos bem definidos no sistema de biblioteca (empréstimo e devolução), por isso é mais intuitivo que ele assuma esta responsabilidade.
53 Coesão Alta Discussão: Coesão alta, assim como Acoplamento Fraco, são princípios que devem ser considerados para a avaliação de projetos de objetos Má coesão traz acoplamento e vice-versa Má coesão traz acoplamento e vice-versa Regra prática: classe com coesão alta tem um número relativamente pequeno de métodos, com funcionalidades relacionadas, e não executa muito trabalho. Analogia com mundo real Pessoas que assume muitas responsabilidades não associadas podem tornar-se (e normalmente tornam-se) ineficientes.
54 Coesão Alta Benefícios: Mais clareza e facilidade de compreensão do projeto. Simplificação de manutenção e de acréscimo de funcionalidade/melhorias. Favorecimento do acoplamento fraco. Aumento no potencial de reutilização Classe altamente coesa pode ser usada para uma finalidade bastante específica.
55 Será que a solução dada para o evento de devolução da cópia é ideal? Ainda temos um problema: quando ocorre o evento de devolução da cópia, o objeto empréstimo ao qual a cópia emprestada se refere ainda não é conhecido. Portanto, é preciso eleger alguma classe, que conheça os empréstimos, para receber a mensagem devolvercopia. Essa classe terá que identificar o objeto empréstimo cujo código de cópia seja igual ao parâmetro fornecido.
56 A pergunta anterior não está respondida nos slides a seguir. Voltaremos a ela no fim deste assunto.
57 Controlador É um objeto de interface (entre sistema e mundo externo) responsável por tratar um evento externo (evento de sistema). Define (implementa) o método para a operação de sistema. Operações de sistema associadas aos eventos de sistema: Sistema iniciardevo(idlei) devolver(codcop) FinalizarDevol() Sistema entraritem() terminarvenda() efetuarpagamento()
58 Padrão Controlador Problema: Quem deve ser responsável por tratar um evento do sistema (gerado por um ator externo)? Solução: A responsabilidade de receber ou tratar as mensagens de eventos do sistema (operações) pode ser atribuída uma classe que: Representa o sistema todo, representa o negócio ou organização, um dispositivo ou um subsistema (chamado de controlador fachada) Representa algo no mundo real que é ativo (chamado de controlador do papel) Representa um tratador artificial de todos os eventos de sistema de um caso de uso (Controlador do caso de uso) TratadorDe<NomeDoCasoDeUso> ControladorDe<NomeDoCasoDeUso>
59 Padrão Controlador Exemplo: Quem vai tratar os eventos do sistema de biblioteca? :Atendente Sistema 1: iniciarempréstimo(id_leitor) 2: nome e situação do leitor 3: emprestarlivro(id_livro) 4: datadedevolução * mais livros a emprestar 5: encerrarempréstimo()
60 Cod Cópia Livro Emprestar :Atendente Camada de Interface açãoexecutada(eventodaação) :CWindow emprestarlivro(codcopia) Camada do Domínio Objeto de Interface :????
61 Exemplo1: Opções de Controlador todo o sistema (controlador fachada): Biblioteca um tratador artificial do caso de uso: ControladorDeEmprestarLivro iniciaremprestimo( ) :Biblioteca iniciaremprestimo( ) :ControladorDe EmprestarLivro emprestarlivro( ) :Biblioteca emprestarlivro( ) :ControladorDe EmprestarLivro encerraremprestimo() :Biblioteca encerraremprestimo() :ControladorDe EmprestarLivro 61
62 Discussão : Controladores Fachada Um controlador fachada deve ser um objeto (do domínio) que seja o ponto principal para as chamadas provenientes da interface com o usuário ou de outros sistemas pode ser uma abstração de uma entidade física ex: TerminalDeAtendimento pode ser um conceito que represente o sistema ex: Biblioteca São adequados quando não há uma quantidade muito grande de eventos de sistema Ou quando não é possível redirecionar mensagens do sistema para controladores alternativos (ex: outros subsistemas )
63 Discussão : Controladores de Caso de Uso Deve existir um controlador diferente para cada caso de uso Por exemplo, o ControladorDeEmprestarLivro será responsável pelas operações iniciarempréstimo, emprestarlivro e encerrarempréstimo Não é um objeto do domínio, e sim uma construção artificial para dar suporte ao sistema. Ex: ControladorDeEmprestarLivro, ControladorDeDevolverLivro Pode ser uma alternativa se a escolha de controladores fachada deixar a classe controladora com alto acoplamento e/ou baixa coesão (controlador inchado por excesso de responsabilidades) É uma boa alternativa quando existem muitos eventos envolvendo diferentes processos.
64 Controladores inchados Classe controladora mal projetada - inchada coesão baixa falta de foco e tratamento de muitas responsabilidades Sinais de inchaço: uma única classe controladora tratando todos os eventos, que são muitos. Comum com controladores fachada o próprio controlador executa as tarefas necessárias para atender o evento, sem delegar para outras classes (coesão alta, não especialista) controlador tem muitos atributos e mantém informação significativa sobre o domínio, ou duplica informações existentes em outros lugares
65 Possíveis soluções para controladores inchados Acrescentar mais controladores. Projetar o controlador de forma que ele possa delegar o atendimento da responsabilidade de cada operação de sistema a outros objetos. Cuidado: Controladores de papéis podem conduzir a maus projetos(armadilha de projetar objetos semelhantes a pessoas para fazer todo o trabalho é preciso delegar)
66 Corolário do Padrão Controlador Objetos de interfaces HM ( como objetos janela ) e da camada de apresentação não devem ter a responsabilidade de tratar eventos do sistema (arquitetura em camadas)
67 Benefícios do Padrão Controlador e seu corolário Benefícios: aumento das possibilidades de reutilização de classes e do uso de interfaces plugáveis. conhecimento do estado do caso de uso controlador pode armazenar estado do caso de uso, garantindo a seqüência correta de execução de operações
68 Cod Cópia Livro Devolver :Atendente Camada de Interface :CWindow açãoexecutada(eventodaação) devolver Copia? devolvercopia(codcopia) Camada do Domínio???? devolvercopia(codcopia) :Emprestimo
69 Voltando ao problema do slide Qual era o problema: devolvercópia x Empréstimo Qual é a solução? Classe Fachada ou Controladora
70 Cod Cópia Livro Devolver :Atendente Camada de Interface :CWindow açãoexecutada(eventodaação) devolver Copia? devolvercopia(codcopia) Camada do Domínio :Biblioteca devolvercopia(codcopia) :Emprestimo
71 Próximo assunto Refinar Plano Sincronizar artefatos Analisar Projetar Construir Testar Padrões GRASP Estudo de Caso TPV : Projetar uma solução com objetos e Padrões GRASP
Aula 7 Visibilidade entre objetos e Diagramas de Classes
Departamento de Sistemas de Computação Universidade de São Paulo SSC 124 Análise e Projeto Orientados a Objetos Aula 7 Visibilidade entre objetos e Diagramas de Classes Responsável Prof. Seiji Isotani
Leia maisDIAGRAMA DE CLASSES DE PROJETO
Universidade de São Paulo, Instituto de Ciências Matemáticas e de Computação DIAGRAMA DE CLASSES DE PROJETO SSC 621: Análise e Projeto Orientados a Objetos Prof. Dr. Lucas Bueno R. Oliveira 2º Semestre
Leia maisGRASP: PADRÕES PARA ATRIBUIÇÃO DE RESPONSABILIDADES. SSC 124 Análise e Projeto Orientado a Objeto Profa. Dra. Elisa Yumi Nakagawa
GRASP: PADRÕES PARA ATRIBUIÇÃO DE RESPONSABILIDADES SSC 124 Análise e Projeto Orientado a Objeto Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2016 1 RESPONSABILIDADE Responsabilidade um contrato ou
Leia maisDiagrama de Classes Aula 11 (parte 1)
Universidade Federal de Mato Grosso do Sul Sistemas de Informação - CPCX Diagrama de Classes Aula 11 (parte 1) Prof. Fernando Maia da Mota Slides gentilmente cedidos por Profa. Dra. Maria Istela Cagnin
Leia maisAula 6 Notação Básica dos Diagramas de Comunicação
Departamento de Sistemas de Computação Universidade de São Paulo SSC 124 Análise e Projeto Orientados a Objetos Aula 6 Notação Básica dos Diagramas de Comunicação Responsável Prof. Seiji Isotani (sisotani@icmc.usp.br)
Leia maisModelagem de Software
Modelagem de Software Engenharia de Software Rosana T. Vaccare Braga Material adaptado a partir de material da Profa. Simone Senger Souza ICMC/USP São Carlos Modelagem Construção de modelos abstratos Auxílio
Leia maisAnálise do Sistema Casos de Uso
As Fases do PU 1 Análise do Sistema Casos de Uso Casos de Uso Completo Abstrato Diagrama de Casos de Uso Emprestar Livro Ator Principal: Atendente Interessados e Interesses: Caso de Uso: Emprestar Livro
Leia maisDiagramas de Classes. SSC-526 Análise e Projeto Orientados a Objeto Profa. Dra. Elisa Yumi Nakagawa 2º semestre de 2013
Diagramas de Classes SSC-526 Análise e Projeto Orientados a Objeto Profa. Dra. Elisa Yumi Nakagawa 2º semestre de 2013 1 O que já foi visto até agora Casos de Uso Completo Abstrato Diagrama de Casos de
Leia maisDIAGRAMA DE COMUNICAÇÃO
Universidade de São Paulo, Instituto de Ciências Matemáticas e de Computação DIAGRAMA DE COMUNICAÇÃO SSC 621: Análise e Projeto Orientados a Objetos Prof. Dr. Lucas Bueno R. Oliveira 2º Semestre 2015 O
Leia maisNotação Básica dos Diagramas de Comunicação
Notação Básica dos Diagramas de Comunicação Análise e Projeto Orientados a Objetos Profa Rosana 1 O que já foi visto até agora Casos de Uso Completo Abstrato Diagrama de Casos de Uso Emprestar Livro A
Leia maisDiagrama de Comunicação. SSC 526 Análise e Projeto Orientado a Objeto Profa. Dra. Elisa Yumi Nakagawa
Diagrama de Comunicação SSC 526 Análise e Projeto Orientado a Objeto Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2013 1 2 O que já foi visto até agora Casos de Uso Completo Abstrato Diagrama de Casos
Leia maisAula 5 Diagramas de Seqüência do Sistema e Contratos de Operações
Departamento de Sistemas de Computação Universidade de São Paulo Análise e Projeto Orientados a Objetos Aula 5 Diagramas de Seqüência do Sistema e Contratos de Operações Responsável Prof. Seiji Isotani
Leia maisDiagramas de Sequência do Sistema e Contratos de Operações. SSC-121 Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2º semestre de 2012
Diagramas de Sequência do Sistema e Contratos de Operações SSC-121 Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2º semestre de 2012 1 O que já foi visto até agora Casos de Uso Completo Abstrato
Leia maisDo Projeto à Codificação. SSC-526 Análise e Projeto Orientados a Objeto Profa. Dra. Elisa Yumi Nakagawa 2º semestre de 2013
Do Projeto à Codificação SSC-526 Análise e Projeto Orientados a Objeto Profa. Dra. Elisa Yumi Nakagawa 2º semestre de 2013 1 O que já foi visto até agora Casos de Uso Completo Abstrato Diagrama de Casos
Leia maisModelo Conceitual. Prof. Seiji Isotani Slides baseados no material da Profa Dra Rosana T. V. Braga
Departamento de Sistemas de Computação Universidade de São Paulo Análise e Projeto Orientados a Objetos Modelo Conceitual Prof. Seiji Isotani (sisotani@icmc.usp.br) Slides baseados no material da Profa
Leia maisProjeto da Camada de Domínio. Diagramas de Colaboração/Comunicação Diagrama de Classes de Projeto (DCP)
Projeto da Camada de Domínio Diagramas de Colaboração/Comunicação Diagrama de Classes de Projeto (DCP) Projeto da Camada de Domínio Diagramas de Colaboração (Comunicação na UML 2) permitem realizar a modelagem
Leia maisProjeto Orientado a Objetos
Projeto Orientado a Objetos Conjunto de atividades que têm como objetivo a criação de um modelo orientado a objetos de um sistema de software de acordo com os requisitos especificados Estratégia geral
Leia maisPadrões de Projeto de Software
Padrões de Projeto de Software Luiz Leão luizleao@gmail.com http://www.luizleao.com Conteúdo Programático Padrões Básicos Information Expert Creator High Cohesion Low Coupling Controller Padrões Avançados
Leia maisNotação Básica dos Diagramas de Comunicação
UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Notação Básica dos Diagramas de Comunicação Projeto e Desenvolvimento
Leia maisProjeto Orientado a Objetos
Projeto Orientado a Objetos Ivan Mathias Filho Toacy Cavalcante de Oliveira Design Orientado a Objetos Após a identificação dos requisitos e a criação do modelo de domínio, devemos adicionar os métodos
Leia maisEngenharia de Software II
Faculdade de Ciências e Tecnologia Departamento de Matemática e Computação Bacharelado em Ciência da Computação Engenharia de Software II Aula 01 (rogerio@fct.unesp.br) Bibliografia Básica PRESSMAN, R.
Leia maisINF1013 MODELAGEM DE SOFTWARE
INF1013 MODELAGEM DE SOFTWARE Departamento de Informática Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 4 Design Baseado em Responsabilidades 1 Programa Capítulo 4 Design Baseado em Responsabilidades
Leia maisDIAGRAMA DE COMUNICAÇÃO. SSC 124 Análise e Projeto Orientado a Objeto Profa. Dra. Elisa Yumi Nakagawa
DIAGRAMA DE COMUNICAÇÃO SSC 124 Análise e Projeto Orientado a Objeto Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2016 1 O QUE JÁ FOI VISTO ATÉ AGORA Casos de Uso Completo Abstrato Diagrama de Casos
Leia maisGRASP. Nazareno Andrade (baseado em Hyggo Almeida e Jacques Sauvé)
GRASP Nazareno Andrade (baseado em Hyggo Almeida e Jacques Sauvé) O que vimos na última aula? Introdução a padrões O que são? Por que utilizá-los? Padrões GRASP O que são? Quais serão apresentados na disciplina?
Leia maisIntrodução a Padrões, GRASP. Nazareno Andrade (baseado no material de Hyggo Almeida e Jacques Sauvé)
Introdução a Padrões, GRASP Nazareno Andrade (baseado no material de Hyggo Almeida e Jacques Sauvé) O que vimos na última aula? Processo de Desenvolvimento de Software Visão geral de processo Processos
Leia maisFrameworks O Problema da Persistência
Frameworks O Problema da Persistência Análise e Projeto Orientados a Objetos Profa Dra Rosana T. V. Braga 1 Frameworks 2 Frameworks Definições: Aplicação semi-completa reutilizável que, quando especializada,
Leia maisFramework Hibernate/JPA
Framework Hibernate/JPA SSC 124/621 Análise e Projeto Orientados a Objetos Sofia Costa 1 Hibernate É um Framework do tipo caixa-branca para persistência de dados. É uma ferramenta de mapeamento objeto/relacional
Leia maisPadrões GRASP. Leonardo Gresta Paulino Murta
Padrões GRASP Leonardo Gresta Paulino Murta leomurta@ic.uff.br Introdução Estilo MVC Padrões Expert Creator Controller Low Coupling High Cohesion Polymorphism Pure Fabrication Indirection Don t Talk to
Leia maisANÁLISE E PROJETO ORIENTADO A OBJETO (Parte 3)
ANÁLISE E PROJETO ORIENTADO A OBJETO (Parte 3) Profª Andrea Padovan Jubileu Desenvolvimento Iterativo de Software (LARMAN, 2007) Desenvolvendo Software com UML 2.0 (MEDEIROS, 2004) Modelo de Projeto O
Leia maisPadrões de Projeto. Conteúdo. Objetivos
Padrões de Projeto Conteúdo O que são Padrões de Projeto? Para que servem? Vantagens/Desvantagens, Pontos Fortes/Fracos Exemplos e Alternativas Objetivos Conhecer diferentes padrões; Entender sua utilidade;
Leia maisPROJETO DE ARQUITETURA
PROJETO DE ARQUITETURA Projeto Detalhado de Software (PDS) Profa. Cynthia Pinheiro Antes de mais nada... Próximas aulas: Seminários de Padrões de Projeto GoF 1º Dia: 10/11/2017, 08h 10h, Sala 04 2º Dia:
Leia maisAnálise e Projeto de Software Parte II. Marcos Dósea
Análise e Projeto de Software Parte II Marcos Dósea marcosdosea@gmail.com Agenda Aula III Análise de Software Orientado à Objetos Motivação Marcos Dósea marcosdosea@gmail.com O que é análise e projeto?
Leia maisAnálise e Projeto Orientados a Objetos: Visibilidade Diagrama de Classe de Projeto
UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Análise e Projeto Orientados a Objetos: Visibilidade Diagrama de Classe
Leia maisPadrões de Projeto de Software
Padrões de Projeto de Software Luiz Leão luizleao@gmail.com http://www.luizleao.com Introdução O que é? Como descrever? Principais Padrões de Projetos Unidade 2 Padrões GoF PADRÕES CRIAÇÃO Abstract Factory
Leia maisAnálise e Projeto Orientados por Objetos
Análise e Projeto Orientados por Objetos Aula 03 Padrões de Projeto GRASP Edirlei Soares de Lima Padrões de Projeto de Software Problemas no desenvolvimento de software se repetem...
Leia maisConteúdo. 1. Introdução. 2. Levantamento de Requisitos. 3. Análise Orientada a Objetos. 4. Projeto Orientado a Objetos 5. UML. 6.
Conteúdo 1. Introdução 2. Levantamento de Requisitos 3. Análise Orientada a Objetos 4. Projeto Orientado a Objetos 5. UML 6. Métodos Ágeis Projeto Orientado a Objetos Definição das Operações Responsabilidade
Leia maisProjeto de software Estrutura do software e arquitetura SWEBOK
Projeto de software Estrutura do software e arquitetura SWEBOK SWEBOK Design Patterns Maneira testada ou documentada de alcançar um objetivo qualquer Padrões são comuns em várias áreas da engenharia Design
Leia maisModulo II Padrões GRASP
Modulo II Padrões GRASP Professores Eduardo Bezerra edubezerra@gmail.com Ismael H F Santos ismael@tecgraf.puc-rio.br April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Ementa Padrões de Projeto
Leia maisRoni Fabio Banaszewski UTFPR Universidade Tecnológica Federal do Paraná
Roni Fabio Banaszewski UTFPR Universidade Tecnológica Federal do Paraná Reuso Motivações para reutilização de software Aspecto econômico Produtividade Time to market Qualidade Utilização de artefatos (código,
Leia maisModelagem Orientada a Objeto
UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Modelagem Orientada a Objeto Engenharia de Software 2o. Semestre de
Leia maisUNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA
UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Modelo Conceitual 879 Projeto e Desenvolvimento de Sistemas de Informação
Leia maisPadrões para atribuir responsabilidades: Expert
Padrão para atribuir responsabilidades: Expert Introdução Um sistema OO é composto de objetos que enviam mensagens uns para os outros Uma mensagem é um método executado no contexto de um objeto Escolher
Leia maisPCS3413 Engenharia de Software e Banco de Dados
PCS3413 Engenharia de Software e Banco de Dados Aula 23 Escola Politécnica da Universidade de São Paulo 1 Acoplamento! Indica dependência entre classes.! Deve ser o menor possível.! Direcionar associações
Leia maisIntrodução à Análise e Projeto de Sistemas
Introdução à I. O Que vamos fazer na Disciplina? Saber uma linguagem de programação orientada a objeto (OO) não é suficiente para criar sistemas OO Tem que saber Análise e Projeto OO (APOO) Isto é, Análise
Leia maisCONCEITOS BÁSICOS E MODELO DE PROJETO
CONCEITOS BÁSICOS E MODELO DE PROJETO Projeto Detalhado de Software (PDS) Profa. Cynthia Pinheiro Na aula passada... Abstração Arquitetura Padrões de Projeto Separação por interesses (por afinidades) Modularidade
Leia maisFase de Concepção (Início, Planejamento)
Fase de Concepção (Início, Planejamento) Objetivos Análise Preliminar Levantamento de Requisitos (parcial) Organização de Requisitos Modelo Conceitual Preliminar Planejamento das Iterações Atividades Conhecer
Leia maisFase de Concepção. Levantamento e Organização de Requisitos
Fase de Concepção Levantamento e Organização de Requisitos Objetivos buscar as primeiras informações sobre o sistema a ser desenvolvido descobrir se vale a pena fazer a descobrir se vale a pena fazer a
Leia mais15/04/2013. Pensar Orientado a Objetos. Projeto Orientado a Objetos. Características de Objetos. Classe de Objetos. Comunicação entre Objetos
DCC / ICEx / UFMG Pensar Orientado a Objetos Projeto Orientado a Objetos Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Onde quer que você olhe no mundo real, você vê objetos Pessoas, animais, plantas,
Leia maisVisões Arquiteturais. Visões Arquiteturais
Visões Arquiteturais Separar diferentes aspectos em visões separadas com o objetivo de gerenciar complexidade. Cada visão descreve diferentes conceitos da Engenharia. Visões permitem reduzir a quantidade
Leia maisPROJETO DE ARQUITETURA (PARTE 2)
PROJETO DE ARQUITETURA (PARTE 2) Projeto Detalhado de Software (PDS) Profa. Cynthia Pinheiro Antes de mais nada... 5ª Lista de Exercícios Já está disponível no site a 5ª Lista de Exercícios Entrega: dia
Leia maisRequisitos de sistemas
Requisitos de sistemas Unidade III - Casos de Uso Identificação de casos de uso Conceitos de orientação a objetos Modelagem do diagrama de classes e casos de uso 1 Casos de uso CONCEITO Especifica o comportamento
Leia maisIntrodução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades. Diagramas UML. Classe, Seqüência e Atividades. Marcio E. F.
Diagramas UML Classe, Seqüência e Atividades Marcio E. F. Maia Disciplina: Engenharia de Software Professora: Rossana M. C. Andrade Curso: Ciências da Computação Universidade Federal do Ceará 15 de maio
Leia maisUML. Modelando um sistema
UML Modelando um sistema Fases do desenvolvimento de Software Análise de requisitos Análise Projeto Programação Análise de Requisitos Esta fase captura as intenções e necessidades dos usuários do sistema
Leia maisUNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 15 PROFª BRUNO CALEGARO
UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 15 PROFª BRUNO CALEGARO Santa Maria, 08 de Novembro de 2013. Contextualização Nas próximas aula iremos começar a modelar e projetar sistemas
Leia mais15/04/2013. Outro Diagrama de Classes. Primeiro Diagrama de Classes. Diagrama de Classes. Atributos. Eduardo Figueiredo
DCC / ICEx / UFMG Primeiro Diagrama de Classes Diagrama de Classes Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Professor Aluno matricula Outro Diagrama de Classes Diagrama de Classes Serve de
Leia maisO Processo Unificado: Workflow de Análise. Graduação em Informática Profa. Dra. Itana Maria de Souza Gimenes 2009
O Processo Unificado: Workflow de Análise Graduação em Informática Profa. Dra. Itana Maria de Souza Gimenes 2009 Workflow de Análise Objetivos da análise: manter uma especificação precisa dos requisitos
Leia maisArquitetura de Software: Introdução. Prof. Fellipe Aleixo
Arquitetura de Software: Introdução Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br) Primeira Analogia: O que é Arquitetura de Software? Significa coisas diferentes para pessoas diferentes... Para um
Leia maisEstudo de Caso TPV Projetando uma solução com objetos e Padrões GRASP
UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Projeto e Desenvolvimento de Sistemas de Informação Estudo de Caso
Leia mais3 Arquitetura para a Coordenação e a Composição de Artefatos de Software
Uma Arquitetura para a Coordenação e a de Artefatos de 23 3 Arquitetura para a Coordenação e a de Artefatos de Resumo Este capítulo apresenta a arquitetura ACCA, que é a parte central deste trabalho. A
Leia maisSEMINÁRIOS INTEGRADOS EM ADS PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS
SEMINÁRIOS INTEGRADOS EM ADS PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS Prof. Dr. Daniel Caetano 2014-1 DISCUSSÃO Visão Geral dos Paradigmas Quais os paradigmas mais comuns? Do que é composto um programa
Leia maisARCHITECTURAL DESIGN. Ian Sommerville, 8º edição Capítulo 11 Aula de Luiz Eduardo Guarino de Vasconcelos
ARCHITECTURAL DESIGN Ian Sommerville, 8º edição Capítulo 11 Aula de Luiz Eduardo Guarino de Vasconcelos Objetivos Tópicos abordados Arquitetura de Software Projeto de arquitetura Vantagens de arquitetura
Leia maisModelagem de Casos de Uso (Parte 1)
Modelagem de Casos de Uso (Parte 1) Introdução (1) Objetivos Principais dos Casos de Uso: Delimitação do contexto de um sistema Documentação e o entendimento dos requisitos Descrição dos requisitos funcionais
Leia maisMetodologias de Desenvolvimento (I)
Modelagem Estática Metodologias de Desenvolvimento (I) Método é definido como sendo um conjunto de atividades sistemáticas para realizar uma tarefa. Técnica é um modo de executar as atividades recomendadas
Leia maisInterface vs. Implementação Herança vs. Composição
Interface vs. Implementação Herança vs. Composição O que vimos na última aula? Padrões GRASP Expert Creator Low Coupling High Cohesion 2 O que veremos hoje? Interface e Polimorfismo Interface como uma
Leia maisAnálise e projeto de sistemas
Análise e projeto de sistemas Conteúdo: UML O processo de desenvolvimento de software Prof. Patrícia Lucas A linguagem de modelagem unificada (UML) A UML teve origem em uma tentativa de se unificar os
Leia maisContratos O diagrama de sequência não menciona a funcionalidade das operações. Isto é, o comportamento do sistema Contrato é um documento que
Contratos Contratos O diagrama de sequência não menciona a funcionalidade das operações. Isto é, o comportamento do sistema Contrato é um documento que descreve o que uma operação promete cumprir As pré-
Leia maisDCC004 - Algoritmos e Estruturas de Dados II
Conceito de especificação de software Renato Martins Email: renato.martins@dcc.ufmg.br https://www.dcc.ufmg.br/~renato.martins/courses/dcc004 Material adaptado de PDS2 - Douglas Macharet e Flávio Figueiredo
Leia maisEstudo de Caso TPV: do Projeto para a Codificação
UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Projeto e Desenvolvimento de Sistemas de Informação Estudo de Caso
Leia maisAnálise Orientada a Objetos
Análise Orientada a Objetos Como chegar a um modelo OO focado em responsabilidades a partir de casos de uso Marcelo C. Araújo mrclcst@bol.com.br Atua no ramo de engenharia de software a 6 anos, trabalhando
Leia maisPadrões de projeto 1
Padrões de projeto 1 Design Orientado Objeto Encapsulamento Herança Polimorfismo Design Patterns 2 Responsabilidades Booch e Rumbaugh Responsabilidade é um contrato ou obrigação de um tipo ou classe. Dois
Leia maisOrientação a Objetos e Java
Orientação a Objetos e Java Daves Martins davesmartins@yahoo.com.br Mestre em Computação de Alto Desempenho pela UFRJ Especialista em Banco de Dados Analista Web Orientação a Objetos e Java Características
Leia maisEngenharia de Software. Projeto de Arquitetura
Engenharia de Software Projeto de Arquitetura O que já vimos? Introdução a Engenharia de Software Processos de Software Desenvolvimento Ágil de Software Engenharia de Requisitos Modelagem de sistemas (outra
Leia maisLevantamento de classes (Análise de casos de uso)
Plano Levantamento de classes (Análise de casos de uso) Prof. Cesar Augusto Tacla Levantamento no método APOO Projeto por padrões: MVC e Observador Estereótipos de classes Visão geral do método Engenharia
Leia maisTópicos da Aula. Diretrizes Gerais. Trabalho Prático (TP) Pontuação do TP. Tema do Trabalho. Projeto de Software Diagrama de Classes
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
Leia maisOs princípios do desenho orientado a objetos
Os princípios do desenho orientado a objetos Os princípios do desenho orientado a objetos Encapsulamento e congeneridade Domínios, grau de dependência e coesão Os perigos da herança e do polimorfismo Encapsulamento
Leia maisCampus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /
Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com / andre.belini@ifsp.edu.br MATÉRIA: ARQUITETURA DE SOFTWARE ASWA4 Aula N : 07
Leia maisPROJETO ARQUITETURAL PARTE II: PADRÕES DE PROJETO. Projeto de Programas PPR0001
PROJETO ARQUITETURAL PARTE II: PADRÕES DE PROJETO Projeto de Programas PPR0001 QUALIDADE DO PROJETO 2 3 Qualidade do Projeto de Software Modularidade: gerar particionamento em elementos que executam funções
Leia maisModelagem Orientada a Objetos
DCC / ICEx / UFMG Modelagem Orientada a Objetos Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Atividades de Modelagem OO 1. Definir o contexto do sistema 2. Projetar a arquitetura 3. Identificar
Leia maisEstilos Arquiteturais
Estilos Arquiteturais Estilos Arquiteturais A arquitetura de um sistema pode aderir a um ou mais estilos arquiteturais Um estilo define os tipos de elementos que podem aparecer em uma arquitetura e as
Leia maisDIAGRAMAS DE CLASSE UML
DIAGRAMAS DE CLASSE UML Projeto Detalhado de Software (PDS) Profa. Cynthia Pinheiro Antes de mais nada... Calendário de Reposições Aula 1: 27/10/2017, 8h-10h, Sala 8 Aula 2: A verificar Aula 3: A verificar
Leia maisNotas de Aula 03: Introdução a Orientação a Objetos e a UML
Notas de Aula 03: Introdução a Orientação a Objetos e a UML Objetivos da aula: Introduzir os conceitos da Orientação à Objetos (O.O) Introduzir os conceitos da UML Relacionar os processos às ferramentas
Leia mais2
ANÁLISE DE SISTEMAS (processo de desenvolvimento de sistemas) por Antônio Maurício Pitangueira 1 2 Levantamento de requisitos Análise de requisitos Projeto Implementação Testes Implantação Foco da disciplina
Leia maisDiagramas de Sequência do Sistema. SSC 124: Análise e Projeto Orientados a Objetos Profa. Dra. Elisa Yumi Nakagawa
Diagramas de Sequêcia do Sistema SSC 124: Aálise e Projeto Orietados a Objetos Profa. Dra. Elisa Yumi Nakagawa 1 O que já foi visto até agora Casos de Uso Completo Abstrato Diagrama de Casos de Uso Emprestar
Leia maisLista de Exercícios AV1
Seminários Engenharia Integrados de Usabilidade em Sistemas de Informação SEMINÁRIOS INTEGRADOS EM SISTEMAS DE INFORMAÇÃO Lista de Exercícios AV1 Luiz Leão luizleao@gmail.com http://www.luizleao.com Questão
Leia maisSoluções reutilizáveis para situações ou problemas encontrados comumente em desenvolvimento de software orientado a objetos.
Padrões de Projeto O que são? Soluções reutilizáveis para situações ou problemas encontrados comumente em desenvolvimento de software orientado a objetos. Livros Design Patterns: Elements of Reusable Object-
Leia maisAnálise de Sistemas. Aula 5
Análise de Sistemas Aula 5 Prof. Emerson Klisiewicz CONTEXTUALIZAÇÃO Aula 5 Análise Orientada a Objetos Introdução a UML Histórico e Visão Geral Ferramentas CASE O Sucesso... Clientes satisfeitos Eles
Leia maisMas o que é mesmo Padrão de Projeto?
Mas o que é mesmo Padrão de Projeto? Um Padrão de Projeto descreve uma solução comprovada para um problema recorrente e conhecido no desenvolvimento de software orientado a objetos. Mas afinal, porque
Leia maisAlguns Exercícios Resolvidos
Princípios de Análise e Projeto de Sistemas com UML 3ª edição, 2015, Eduardo Bezerra Alguns Exercícios Resolvidos Capítulo 1 Exercício 1.1 Sim, porque ele representa graficamente um objeto do mundo real
Leia maisIntrodução a UML (Unified Modeling Language)
Introdução a UML (Unified Modeling Language) O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário
Leia maisAnálise e Projeto de Software
Análise e Projeto de Software Proj. Desenvolvimento de Software Prof. Cleverton Hentz cleverton.hentz@ifrn.edu.br 8 de junho de 2017 Material Apresentado Sumário de Aula 1 Introdução 2 Estruturação do
Leia maisEngenharia de Software
Engenharia de Software Design Principles Representando SW em UML OO em C Pattens úteis para embedded Rodrigo M A Almeida Design Principles Design Principles são guias para decompor as funcionalidades e
Leia maisArquitetura de software
Arquitetura de software Problema: vamos implementar um clone do compraentrega.com.br Mantém preços atualizados Recebe encomendas e pagamento Recomenda itens a usuários Por onde começamos? Arquitetura =
Leia maisEngenharia de Software
UNIVERSIDADE DE LISBOA INSTITUTO SUPERIOR TÉCNICO Engenharia de Software LEIC/LETI, 3 o Ano, 2 o Semestre 2 o Teste, 8 de Junho de 2016 Nome: Número: Este teste tem um conjunto de 10 perguntas de escolha
Leia maisUNIVERSIDADE FEDERAL DO PARANÁ - UFPR Bacharelado em Ciência da Computação
SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 11 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de Refatoração e Padrões. DESENVOLVIMENTO PADRÕES
Leia maisDiagramas de Sequência e Contrato das Operações
UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Projeto e Desenvolvimento de Sistemas de informação Comportamento
Leia maisEngenharia de Domínio e Desenvolvimento Baseado em Componentes. Processo DBC-Arch-DE Apoio do Ambiente Odyssey no Processo Considerações Finais
Um Processo de Engenharia de Domínio com foco no Projeto Arquitetural Baseado em Componentes Ana Paula Blois Cláudia Werner Karin Becker Agenda Motivação Engenharia de Domínio e Desenvolvimento Baseado
Leia maisProgramação Orientada a Objetos
Programação Orientada a Objetos Faculdade de Computação Aula Revisão Marcelo Zanchetta do Nascimento Material elaborado pela Profa. Ana Carolina Lorena - UNIFESP Desenvolvimento de Software ANÁLISE IMPLEMENTAÇÃO
Leia mais