A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Projeto de Sistemas de Software (PSS) Prof. Carlos J. P. Lucena.

Apresentações semelhantes


Apresentação em tema: "Projeto de Sistemas de Software (PSS) Prof. Carlos J. P. Lucena."— Transcrição da apresentação:

1 Projeto de Sistemas de Software (PSS) Prof. Carlos J. P. Lucena

2 © LES/PUC-Rio Assunto Técnicas de projeto –Utilizadas para o desenvolvimento de software –Orientado a objetos –Promovendo a reutilização de software

3 © LES/PUC-Rio Ementa Revisão de UML –Princípios de Modelagem –Diagrama e Descrição de Casos de Uso –Diagrama de Classes –Diagrama de Seqüências Introdução à Arquitetura J2EE Reuso de Software –Overview –Design Patterns –Frameworks –Linha de Produtos de Software

4 © LES/PUC-Rio Ementa Introdução a Agentes –Conceitos básicos –Plataforma JADE Introdução a Orientação a Aspectos –Conceitos básicos –AspectJ (Exemplos)

5 © LES/PUC-Rio Avaliação –Freqüência e participação do aluno (FP) –Trabalho Experimental (TE) Projetar (utilizando UML) e implementar uma aplicação em Java –Trabalho sobre Padrões de Projeto (TPP) Apresentar alguns padrões de projeto e implementá-los (em Java) em exemplos simples –Trabalho Final (TF) Projetar e implementar (em Java) uma Linha de Produto de Software Derivar um produto Utilizar padrões de projetos e agentes de software Nota Final = (0,25 * TE) + (0,15 * TPP) + (0,5 * TF) +- (0.1 * FP)

6 © LES/PUC-Rio Avaliação Trabalhos –Trabalho Experimental (TE) Preparatório para o trabalho final –Trabalho Final (TF) Acompanhamento semanal dos progressos do trabalho Documentação baseada num documento padrão a ser disponibilizado Principais artefatos gerados –Diagramas UML (Casos de Uso, Classes, Seqüência) –Descrição dos Casos de Uso –Código

7 © LES/PUC-Rio Equipe Prof. Carlos Lucena –lucena@inf.puc-rio.brlucena@inf.puc-rio.br Instrutores –Andrew Diniz da Costa andrewdiniz@gmail.com –Camila Nunes camilan@gmail.com –Manoel Teixeira manoelteixeira@gmail.com

8 © LES/PUC-Rio Agenda Agosto 17/08Apresentação do Curso e Visão Geral 24/08 UML (Casos de Uso, Diagrama de Classes e Diagrama de Seqüência) 31/08 Arquitetura J2EE (Servlet + JSP) e Agentes (Teoria e Exemplos)

9 © LES/PUC-Rio Agenda Setembro 14/09 Design Patterns 21/09 Frameworks OO + Linhas de Produto de Software 28/09 Apresentação do Trabalho de Design Patterns

10 © LES/PUC-Rio Agenda Outubro 05/10 Trabalho Final: Apresentação inicial e Entrega do Trabalho Experimental 19/10 Programação Orientada a Aspectos 26/10 Trabalho Final: Apresentação do Problema (Diagrama de Features e Diagramas de Casos de Uso)

11 © LES/PUC-Rio Agenda Novembro 09/11 Trabalho Final: Apresentação (Diagrama de Classes + Diagrama de Sequência) 16/11 Trabalho Final: Apresentação (Padrões + Diagr. Classes e Seq. Refinados) 23/11 Trabalho Final: Apresentação (Demo) 30/11 Trabalho Final: Apresentação Final (Documentação + Demo Final)

12 © LES/PUC-Rio Agenda Dezembro 14/12 Entrega da Documentação 21/12 Divulgação das Notas Finais

13 © LES/PUC-Rio Apoio Educacional Recursos –Aulas Segunda-feira, das 13h às 16h Fundação Padre Leonel Franca - 13o Andar –Atendimento Manoel Teixeira (manoelteixeira@gmail.com)manoelteixeira@gmail.com Andrew Diniz da Costa (andrewdiniz@gmail.com)andrewdiniz@gmail.com Camila Nunes (camilan@gmail.com)camilan@gmail.com –Wiki http://wiki.les.inf.puc-rio.br/index.php/PSS –Grupo http://groups.google.com/group/pss-puc-rio-20092 Enviar mensagem:pss-puc-rio-20092@googlegroups.compss-puc-rio-20092@googlegroups.com

14 © LES/PUC-Rio Apoio Educacional Horário de Atendimento –2 as feiras - das 16h às 18h Manoel Teixeira –4 as feiras - das 16h às 18h Andrew Diniz da Costa –6 as feiras - das 10h às 12h Camila Nunes

15 Projeto de Sistemas de Software (PSS) Visão Geral

16 Reuso de Software

17 © LES/PUC-Rio ES baseada em Reuso Reuso de Sistemas –Uma aplicação pode ser reutilizada incorporando-se à outros sistemas sem necessidade de mudança ou com algumas configurações Reuso de Componentes –Componentes de software que implementam um conjunto de funções podem ser reutilizados Reuso de Funções –Componentes de software que implementam uma única função podem ser reutilizados

18 © LES/PUC-Rio Benefícios do Reuso Maior confiabilidade –Componentes já utilizados e testados em outros sistemas são mais confiáveis que novos componentes Redução dos riscos de processo –Menos incerteza nos custos de reuso comparado aos custos de desenvolvimento Uso efetivo de especialistas –O especialista desenvolve software reutilizável encapsulando seu conhecimento, ao invés de desenvolver as mesmas funcionalidades repetidas vezes em diferentes projetos Uso efetivo de padrões –O uso de padrões organizacionais agiliza o desenvolvimento pois estabelece uma base comum de comunicação e garante a consistência Desenvolvimento acelerado –Evitando o desenvolvimento de produtos originais é possível acelerar a produção e a validação

19 © LES/PUC-Rio Problema do Reuso Aumento nos custos de manutenção –Dificuldade de adaptar componentes sem o código fonte Dificuldade em encontrar e adaptar componentes reutilizáveis Síndrome do não-foi-inventado-aqui –Falta de confiança no componente –Desenvolvedor prefere reimplementar pois acredita poder aprimorá-lo

20 © LES/PUC-Rio Reuso de Projeto e Implementação Neste curso, serão abordados algumas técnicas que propiciam o reuso de projeto e implementação em sistemas OO –Padrões de Projeto (Design Patterns) –Frameworks –Linhas de Produto

21 Padrões de Projeto (Design Patterns)

22 © LES/PUC-Rio Definição: Padrão Cada padrão descreve um problema que ocorre repetidas vezes em nosso ambiente, e então descreve o núcleo da sua solução para aquele problema, de tal maneira que seja possível usar essa solução milhões de vezes sem nunca fazê-la da mesma forma duas vezes. Christopher Alexander sobre padrões em arquitetura de construções

23 © LES/PUC-Rio Definição: Padrão de Projeto Os padrões de projeto são descrições de objetos que se comunicam e classes que são customizadas para resolver um problema de projeto genérico em um contexto específico. Gamma, Helm, Vlissides & Johnson, sobre padrões de projeto em software

24 © LES/PUC-Rio Padrões de Projeto Formas de reutilizar conhecimento abstrato sobre problemas e soluções Descrições de problemas e essências de soluções Aplicáveis em classes de problemas bem conhecidos Soluções que funcionam, tornando-se receitas para situações similares OBS: Desde que estas soluções tenham sido projetadas com flexibilidade

25 © LES/PUC-Rio Bibliografia –Design Patterns: Elements of Reusable Object- Oriented Software Publicado em 1994 Autores: –Erich Gamma –John Vlissides –Ralph Jonhson –Richard Helm conhecidos como: –The Gang of Four (GoF) Contém 23 padrões de projeto

26 © LES/PUC-Rio Benefícios Aprendizagem com a experiência dos outros –Identificação de problemas comuns de projeto de software –Utilização de soluções testadas e bem documentadas –Ajuda um novato a agir mais como um experiente Aumento da produtividade Melhoria na qualidade do projeto OO –Normalmente utilizam boas práticas de OO –Utilizam eficientemente polimorfismo, herança e composição Vocabulário comum –Uso de soluções conhecidas facilita a comunicação e documentação Ajuda na conversão de um modelo de análise em um modelo de implementação

27 © LES/PUC-Rio Exemplo: Adapter Pattern Você já precisou ligar seu laptop na tomada num país estrangeiro? ? ?

28 © LES/PUC-Rio Exemplo: Adapter Pattern Existem diversos adaptadores

29 © LES/PUC-Rio Exemplo: Adapter Pattern O plug do laptop espera outra interface O adaptador converte uma interface na outra A tomada oferece uma interface

30 © LES/PUC-Rio Exemplo: Adapter Pattern Suponha que você tem um sistema que usa o componente A Seu sistema Componente A Interfaces compatíveis

31 © LES/PUC-Rio Exemplo: Adapter Pattern Porém o fornecedor do componente A faliu… Você precisa utilizar o componente de outro fornecedor Seu sistema Componente A

32 © LES/PUC-Rio Exemplo: Adapter Pattern Porém, o fornecedor do componente B oferece uma interface incompatível com o seu sistema Seu sistema Componente B Interfaces incompatíveis

33 © LES/PUC-Rio Exemplo: Adapter Pattern Para não correr riscos, você cria um adaptador Seu sistema Interfaces compatíveis Adaptador Componente B Interfaces compatíveis Sem alteração de código Código novo

34 © LES/PUC-Rio Exemplo: Adapter Pattern Problema –Como adaptar a interface de dois componentes? Solução –Adapter Pattern Converte a interface para outra interface que o cliente espera encontrar. O adaptador permite que componentes com interfaces incompatíveis trabalhem juntos

35 Frameworks

36 © LES/PUC-Rio Frameworks de Aplicação Framework de aplicação –Projeto constituído de uma coleção de classes concretas e abstratas, e de interfaces entre elas Instância do framework –Implementada pela adição de detalhes específicos e pela instanciação das classes abstratas Frameworks –Entidades relativamente grandes que podem ser reutilizadas

37 © LES/PUC-Rio Estendendo Frameworks Frameworks –Genéricos –Estendidos para criar uma aplicação ou sub-sistema específico Estender um framework envolve –Adicionar classes concretas que herdam operações das classes abstratas do framework Problemas: –complexidade –tempo necessário para usá-los efetivamente

38 © LES/PUC-Rio Estrutura de um framework Um framework separa o que é fixo (frozen-spots) do que é variável (hot-spots) Specific Application Code #1

39 © LES/PUC-Rio Exemplo framework Framework de Análise e Persistência de dados Hot-Spot #1 Tipo de persistência Hot-Spot #2 Algoritmo de Análise Implementação do Hot-Spot #1 Implementação do Hot-Spot #2 #1 MySQL #2 Anal. Estatística

40 Linha de Produto

41 © LES/PUC-Rio Linhas de Produto de Software Conjunto de sistemas –Compartilham características comuns e gerenciáveis que satisfazem às necessidades de um segmento particular do mercado. Produtos derivados –chamados de família de produtos Arquitetura SPL –Conjunto de features comuns e variáveis de uma família de produtos

42 © LES/PUC-Rio Linhas de Produto de Software A maioria dos sistemas não são novos Construir pontos de variação usando artefatos da linha de produto –Arquiteturas Comuns –Componentes Construídos com Pontos de Variação

43 © LES/PUC-Rio Linhas de Produto de Software Produtos Domínio de Aplicação / Estratégia de Mercado pertencem Arquitetura compartilham Componentes construídos por

44 © LES/PUC-Rio Linhas de Produto de Software

45 © LES/PUC-Rio Exemplo de LP Exemplo: Indústria Automobilística Carro –Caixa de Marcha Automática Manual –Motor Diesel Gasolina –Tipo de Motor 1.0 1.6 –... Pontos de Variação Variantes

46 Agentes de Software

47 © LES/PUC-Rio Cenário Atual Com os avanços do desenvolvimento de aplicações distribuídas na Internet, a introdução de componentes de software com algum tipo de auto-controle está se tornando usual Os sistemas de software deverão estar –Em todo o lugar –Sempre conectados (disponíveis) –Sempre ativos para executar requisições de usuários

48 © LES/PUC-Rio Evolução dos Paradigmas de ES Linguagens Assembler Abstração Funcional Programação Estruturada Orientação a Objetos Componentes... Agentes de Software Tempo

49 © LES/PUC-Rio O que são Agentes? Inteligência Artificial –Um agente é pró-ativo, inteligente, e deve ser altamente interativo (P2P) em vez de participar de uma arquitetura cliente-servidor Engenharia de Software –Um agente é um componente de software com processos internos de execução (threads), tanto pró-ativo quanto reativo, e que pode participar de protocolos de interação complexos e com estado

50 © LES/PUC-Rio Exemplos de Agentes Buscam, negociam e montam pacotes de viagens Representam usuários em um sistema de leilão (negociam produtos) Buscam informações de interesse de usuários na Internet Realizam monitoramento de estado e enviam alertas

51 Projeto de Sistemas de Software (PSS) Exemplo de Trabalho Final

52 © LES/PUC-Rio ExpertCommittee Análise do Domínio –Sistema para gerenciamento de conferências Suportam a maioria das tarefas administrativas de conferencias Gerenciamento mais fácil destes eventos Redução o tempo gasto –Exemplos JEMS (https://submissoes.sbc.org.br/)https://submissoes.sbc.org.br/ ConfMaster (http://www.confmaster.net/)http://www.confmaster.net/ ConfTool (http://www.conftool.net/)http://www.conftool.net/ EasyChair (http://www.easychair.org/)http://www.easychair.org/

53 © LES/PUC-Rio ExpertCommittee

54 © LES/PUC-Rio EC – Feature Model

55 © LES/PUC-Rio EC – Use Case Diagram

56 © LES/PUC-Rio EC – Class Diagram (Core)

57 © LES/PUC-Rio EC – Class Diagram (Agentes)


Carregar ppt "Projeto de Sistemas de Software (PSS) Prof. Carlos J. P. Lucena."

Apresentações semelhantes


Anúncios Google