Sumário. Desenho de Software. Arquitectura e Desenho. Objectivos. Engenharia de Software. Caracterização
|
|
- Jorge Casado Quintão
- 6 Há anos
- Visualizações:
Transcrição
1 Engenharia de Software Desenho de Software António Rito Silva Sumário Caracterização Objectivos Problemas Qualidades Técnicas Avaliação e Validação Casos Notáveis Exemplo Conclusões Desenho de Software 2 Objectivos Desenho é o processo da passagem do espaço do problema para o espaço da solução. À descrição da solução também se chama desenho. O desenho descreve uma solução para o problema que satisfaz os seus requisitos note-se que muitas outras soluções satisfazendo os mesmo requisitos são possíveis Arquitectura e Desenho O processo de desenho deve considerar dois aspectos: Descrever para os clientes o que o sistema faz - Arquitectura de Software Descreve as funções do sistema Está relacionado com os documentos de requisitos Descrever para a equipa de desenvolvimento como o sistema faz - Desenho de Programas Uma descrição dos principais algoritmos As estruturas e os fluxos de dados Desenho de Software 3 Desenho de Software 4
2 Decomposição O processo de desenho usa sempre alguma forma de decomposição. Existem duas estratégias de decomposição: Desenho Funcional em que o estado do sistema está centralizado e é partilhado pelas funções que manipulam esse estado Desenho com Objectos em que o sistema é visto como um conjunto de objectos que encapsulam a informação que manipulam. Os clientes têm usualmente uma visão mais funcional do sistema... Problemas Porquê este desenho? Dado um conjunto de requisitos vários desenhos são possíveis Abordagens top-down versus bottomup Propagação de alterações A evolução do software pode obrigar a um re-desenho Não existe uma única decomposição A tirania da decomposição principal Desenho de Software 5 Desenho de Software 6 Qualidades Independência Coesão Ligação Inteligibilidade Integridade Adaptabilidade Componentes Independentes Um desenho de qualidade facilita o entendimento, a implementação, os testes, as alterações e as adaptações do desenho. Mais ainda, facilita o seguimento dos requisitos no desenho A independência entre componentes é uma qualidade do desenho que permite algumas das propriedades acima Para medir a independência entre componentes usam-se duas medidas: Coesão intra-componente Ligação inter-componentes Desenho de Software 7 Desenho de Software 8
3 Coesão Intra-Componente Um componente é coeso se todos os seus elementos estão envolvidos na satisfação dos objectivos do componente Quando não existe coesão, ao modificar uma determinada função é necessário procurar em todos os componentes as partes relativas à função O tipo de coesão determina a localidade das alterações Coesão de Objecto Cada operação fornece a funcionalidade que permite que os atributos do objecto sejam modificados, inspeccionados e usados, numa base de disponibilização de serviços Desenho de Software 9 Desenho de Software 10 Ligação Inter-Componentes Dois componentes dizem-se fortemente ligados quando existe uma grande dependência entre eles Dois componentes dizem-se fracamente ligados quando existe uma fraca dependência entre eles Dois componentes dizem-se desligados quando são completamente independentes A ligação entre componentes depende de: As referências entre componentes Os dados passados entre componentes O controlo entre componentes O nível de complexidade da interface entre componentes Níveis de Ligação Ligação de Conteúdo verifica-se quando um componente conhece a estrutura interna de outro componente Qualquer alteração interna pode ter repercussões nos restantes componentes Ligação de Partilha verifica-se quando vários componentes partilham um conjunto de dados Todos os componentes dependem da estrutura dos dados partilhados, por exemplo, variáveis globais Desenho de Software 11 Desenho de Software 12
4 Níveis de Ligação Ligação de Controlo verifica-se quando um componente passa parâmetros que controlam a actividade de outro componente O componente controlado não pode funcionar independentemente do componente controlador Ligação de Estrutura verifica-se quando uma estrutura de dados é usada para passar informação entre componentes A formatação e organização dos dados gera uma dependência entre os componentes Ligação de Dados verifica-se quando dados são passados entre componentes Apenas tipos de dados simples são passados Inteligibilidade Influência a inteligibilidade: Coesão e Ligação o componente pode ser entendido sem referir outros componentes Nomes os nomes têm significado e reflectem entidades do espaço do problema e do espaço da solução Documentação a documentação justifica e relaciona o desenho com o espaço do problema Complexidade grau de encapsulamento da complexidade dos algoritmos Desenho de Software 13 Desenho de Software 14 Adaptabilidade A qualidade que determina facilidade de adaptação a novos requisitos Requer: Ligação fraca Abstracções estáveis Self-contained um componente constituído por interfaces fornecidas e interfaces requeridas Técnicas Estilos arquitecturais Desenho funcional Desenho com objectos Padrões de desenho Refactorização do desenho Técnicas de aperfeiçoamento do desenho Desenho de Software 15 Desenho de Software 16
5 Arquitecturas de Software A arquitectura associa os requisitos identificados no sistema com os componentes que os vão implementar Uma arquitectura de software é constituída por dois elementos básicos: Componentes que definem as computações Conectores que descrevem as interacções entre componentes Um estilo arquitectural define uma família de sistemas com o mesmo padrão de organização estrutural: Vocabulário de tipos componente e conector Conjunto de restrições sobre as possíveis combinações de componentes e conectores Desenho de Software 17 Estilos Arquitecturais Camadas Repositórios... Desenho de Software 18 Camadas Criptografia Interface ficheiros Gestão de chaves Autenticação Utilizadores Camadas: Propriedades Vantagens Desenvolvimento incremental pois o desenho possui vários níveis de abstracção Evolução pois a alteração de uma camada apenas vai afectar as camadas imediatamente acima e abaixo Reutilização pois permitem diferentes implementações de uma camada Desvantagens Por vezes é difícil estruturar o problema em níveis de abstracção Problemas de desempenho devido à coordenação entre as camadas Desenho de Software 19 Desenho de Software 20
6 Repositórios Repositórios: Propriedades Aplicação 2 Exemplos Base de dados Aplicação 1 Aplicação 3 Ambientes de desenvolvimento Blackboard Vantagem Repositório (dados partilhados) Constitui uma arquitectura aberta uma vez que a representação dos dados está acessível a diversos fabricantes de componentes Desvantagem Aplicação 6 Aplicação 5 Aplicação 4 Dependência dos dados partilhados pois estes devem estar numa representação aceitável para a todos os componentes Desenho de Software 21 Desenho de Software 22 Desenho Funcional Baseado na decomposição do sistema num conjunto de funções As funções partilham o estado global do sistema que se encontra centralizado As funções podem possuir estado local, mas apenas durante a duração da sua execução Desenho Funcional Os detalhes dos algoritmos estão nas funções mas o estado não está escondido pelo que: A alteração do estado global por uma função pode ter efeitos colaterais com um impacto indesejável noutras funções As funções têm mais tendência a serem alteradas que os dados Desenho de Software 23 Desenho de Software 24
7 Desenho com Objectos Princípios Encapsulação restrição no acesso à representação interna Abstracção eliminação do irrelevante e amplificação do essencial Modularidade construção à custa de elementos de menor granularidade Desenho com Objectos Primitivas Objecto agrega os dados e as operações que os manipulam Classe especifica um conjunto de objectos, a sua interface, estrutura e implementação Herança uma classe pode ser definida como extensão ou restrição de outra Polimorfismo uma variável pode, em tempo de execução, referir objectos de classes diferentes Desenho de Software 25 Desenho de Software 26 Desenho com Objectos Objectivos o resultado final do desenvolvimento deve ter as seguintes qualidades: Reutilização capacidade de ser reutilizado parcialmente ou como um todo noutros programas Extensibilidade facilidade de adaptação às alterações de especificação de modo a se alcançar o princípio do Aberto/Fechado Desenho com Objectos Herança versus Delegação reutilização white-box versus black-box estática (tempo de compilação) versus dinâmica (tempo de execução) encapsulação número de objectos Desenho de Software 27 Desenho de Software 28
8 Padrões de Desenho Verifica-se que: Existem problemas que ocorrem recorrentemente É possível identificar classes de soluções As soluções reflectem as forças em conflito Não existem soluções óptimas Padrões de Desenho Considere-se o jogo de xadrez. Para se ser um bom jogador de xadrez é necessário: Aprender os movimentos permitidos, como termina o jogo,... (primitivas) Saber que se deve ocupar centro do tabuleiro (princípios) Estudar os jogos dos grandes mestres (padrões) Desenho de Software 29 Desenho de Software 30 Padrões de Desenho Os padrões descrevem uma cultura de desenvolvimento de programas, permitindo desta forma a reutilização de conhecimento Descrevem soluções que evoluíram ao longo do tempo Têm como motivação inicial o trabalho do arquitecto Christopher Alexander Padrões de Desenho Os padrões capturam a essência das soluções bem sucedidas aos problemas que recorrentemente surgem quando se desenvolvem programas Para além da solução, os padrões descrevem o problema e o contexto em que o problema surge Desenho de Software 31 Desenho de Software 32
9 Padrões de Desenho Propriedades capturam o conhecimento da experiência fornecem um vocabulário e conhecimento comuns estimulam a reutilização de conhecimento são os blocos de construção de uma arquitectura fornecem um esquema pré-definido para implementação, descrevendo as suas partes, as suas colaborações e responsabilidades identificam e dão nome a abstracções que estão acima das classes e das instâncias documentam a arquitectura dos programas Padrão de Desenho Proxy Providenciar um representante ou substituto (Proxy) para um objecto com vista a controlar o acesso ao objecto quando o objecto não pode ser acedido pelos meios normais O objecto real: realiza o trabalho fica escondido pelo Proxy Desenho de Software 33 Desenho de Software 34 Motivação Uma razão para controlar o acesso a um objecto é adiar o custo total de criação e inicialização, até ao momento em que é realmente necessário utilizar esse objecto Exemplo Editor de documentos que permite ter objectos gráficos embebidos nos documentos Restrições: objectos gráficos podem ser imagens grandes dispendiosas de criar a abertura de um documento deve ser rápida deve-se evitar criar todos os objectos na abertura Solução: criar os objectos dispendiosos apenas por pedido (on demand), ou seja, apenas quando a imagem se torna visível Desenho de Software 35 Desenho de Software 36
10 Problemas da Solução O que colocar no documento em substituição da imagem real? Como esconder o facto da imagem ser criada por pedido para não complicar a implementação do editor? Solução: Proxy de Imagem Usar outro objecto: um Proxy de imagem O Proxy actua como substituto da imagem real Desenho de Software 37 Desenho de Software 38 Proxy de Imagem O Proxy de imagem é responsável por: criar a imagem real quando o editor pede para a exibir, invocando a operação de desenho (Draw) enviar pedidos subsequentes directamente para a imagem. Para tal, mantém uma referência para a imagem real responder a pedidos relativos ao tamanho, sem ter que instanciar a imagem. Por esse motivo, guarda o tamanho da imagem (altura e largura) Diagrama de Classes Desenho de Software 39 Desenho de Software 40
11 Aplicabilidade Sempre que houver necessidade de ter uma referência mais versátil e sofisticada para um objecto do que um simples ponteiro Situações comuns: Proxy remoto - providencia um representante local de um objecto que se encontra num espaço de endereçamento diferente Proxy virtual - cria objectos dispendiosos apenas por pedido Proxy de protecção - controla o acesso ao objecto original Smart Reference - é um substituto de um ponteiro básico que, executa acções adicionais, quando o objecto é acedido Desenho de Software 41 Forças Substituir um objecto por um Proxy, ou vice-versa, deve ser transparente Desenho de Software 42 Estrutura Subject (Graphic) Participações define uma interface comum para o RealSubject e o Proxy. Desta forma, o Proxy pode ser usado sempre que é esperado o RealSubject Proxy (ImageProxy) mantém uma referência que lhe permite aceder ao objecto real (RealSubject) fornece uma interface idêntica ao Subject, para que o Proxy possa ser substituído pelo RealSubject controla o acesso ao objecto real e pode ser responsável pela sua criação e destruição Desenho de Software 43 Desenho de Software 44
12 Participações/Colaborações RealSubject (Image) define o objecto real que o Proxy representa Colaborações Proxy envia pedidos ao RealSubject quando apropriado depende do tipo de Proxy Consequências Introduz um nível de indirecção no acesso a um objecto A indirecção tem muitas utilizações: Proxy remoto permite esconder o facto do objecto residir num espaço de endereçamento distinto Proxy virtual permite executar optimizações como a criação de um objecto por pedido Proxy de protecção e Smart References permite a execução de tarefas adicionais de arrumação (housekeeping), quando o objecto é acedido Desenho de Software 45 Desenho de Software 46 Consequências Geralmente, os objectos reais não acedem aos seus Proxies Como o Proxy e o objecto têm a mesma interface, podem ser facilmente substituídos um pelo outro Refactorização do Desenho Desenvolver programas úteis hoje e reutilizáveis amanhã Prototipar na primeira passagem Expandir o protótipo inicial Consolidar Construir agregações a partir de herança Criar super-classes abstractas Criar classe vazia Criar variável de instância Desenho de Software 47 Desenho de Software 48
13 Prototipar na Primeira Passagem Contexto Resolver inicialmente o problema Obter resultados, ainda que parciais, rapidamente Problema Não se constróem programas a partir do zero É difícil saber com exactidão quais são os requisitos É difícil desenhar imediatamente um programa que resolve os requisitos e está preparado para resistir à mudança Prototipar na Primeira Passagem Solução O desenho inicial deve resolver os requisitos conhecidos Os programas devem crescer não serem construídos Utilizar programas existentes Programar por diferença Estratégias Substantivos implicam objectos, verbos implicam operações Reutilizar objectos existentes por herança Correr agora, e melhorar mais tarde Evitar generalidade prematura Desenho de Software 49 Desenho de Software 50 Expandir o Protótipo Inicial Contexto Programas bem sucedidos raramente são estáticos mas terão que evoluir Problema O programa é aplicado em novas situações, pelo que é necessário proceder a alterações As alterações levam à diminuição da qualidade do programa: estrutura e inteligibilidade. Expandir o Protótipo Inicial Solução Localizar as alterações em novas subclasses Resulta uma hierarquia que modela uma história de alterações Estratégias Derivar de código existente em vez de o modificar Reutilizar objectos existentes por herança Correr agora, e melhorar mais tarde Evitar generalidade prematura Desenho de Software 51 Desenho de Software 52
14 Contexto Consolidar À medida que os objectos evoluem começa-se a esclarecer como é que se pode melhorar o desenho Problema Programas reutilizáveis raramente surgem após uma primeira etapa de análise Objectos têm a capacidade de se alterar de forma controlada: novas funcionalidades e melhorar a qualidade Variações encontram-se nas folhas da hierarquia Solução Refactorizar o programa Aumentar a generalidade e integridade estrutural dos objectos Agregações a Partir de Herança Contexto A hierarquia de classes que surge após a prototipagem e expansão possui as funcionalidades necessárias mas não é elegante nem reutilizável Devem ser seguidos os seguintes princípios de desenho: Factorizar diferentes implementações em subcomponentes Separar métodos que não comunicam Enviar mensagens para componentes em vez de para this Desenho de Software 53 Desenho de Software 54 Agregações a Partir de Herança Problema A herança é utilizada extensivamente nas fases de prototipagem e expansão pois: A herança é suportada ao nível da linguagem Não é claro se um relacionamento é is-a ou has-a até que as subclasses se tornem mais estáveis A herança facilita a partilha de operações e variáveis, white box, possibilitando obter rapidamente resultados Agregações a Partir de Herança Solução Factorizar parte de uma classe numa nova classe. Suponha-se que A é uma subclasse de C: Adicionar uma instância de C como variável de instância de A Mudar as referências para as variáveis e funções herdadas de C por referências para a variável de instância Retirar a relação de herança entre A e C Desenho de Software 55 Desenho de Software 56
15 Agregações a Partir de Herança Consequências A transformação de herança em agregação tem alguns benefícios: A coesão e a capsulação podem ser melhoradas por se dividir uma classe em duas Agregados podem mudar as sua componentes em tempo de execução explorando o polimorfismo Classes separadas podem ser reutilizadas e evoluir de forma independente Um agregado pode ter mais do que uma instância de um dado componente Criar Super-Classes Abstractas Contexto A hierarquia de classes que surge após a prototipagem e expansão possui as funcionalidades necessárias mas não é elegante nem reutilizável Devem ser seguidos os seguintes princípios de desenho: Hierarquias de classes devem ser profundas O topo da hierarquia de classes deve abstracto Subclasses devem ser especializações Desenho de Software 57 Desenho de Software 58 Criar Super-Classes Abstractas Problema A mesma abstracção pode surgir em diferentes partes do programa pois: Uma prática comum é estender um programa por cópia e alteração Diferentes membros da equipa podem implementar a mesma funcionalidade Solução Suponha-se que as classes C1 e C2 partilham uma abstracção: Adicionar uma nova classe A1 Fazer A1 super-classe de C1 e C2 Determinar o comportamento comum a C1 e C2 Alterar C1 e C2 de modo a que a implementação da sua parte comum seja a mesma Mover as funções comuns para A1 e apagar de C1 e C2 Desenho de Software 59 Criar Super-Classes Abstractas Consequências A consolidação de abstracções tem os seguintes benefícios: Reduz o tamanho do programa A separação de abstracções melhora a inteligibilidade e a reutilização Limita a propagação de erros no código, devido a haver menos cópia Desenho de Software 60
16 Introduzir Objecto Null Técnica de re-factorização para substituir muitas ocorrências de if (customer == null) plan = BillingPan.basic(); else plan = customer.getplan(); por plan = customer.getplan(); Desenho da Solução Desenho de Software 61 Desenho de Software 62 Procedimento 1. Criar uma subclasse da classe original e introduzir o comportamento nulo 1. Criar a operação isnull() em ambas as classes (retorna true apenas na subclasse) 2. Compilar 3. Em todos os locais onde se retorna um null deve-se passar a retornar o objecto null 4. Em todos os locais que comparam uma variável da classe original com null substituir com uma invocação a isnull() 5. Compilar e testar Procedimento 6. Identificar todos os casos em que se invoca uma operação se o objecto for diferente de null e se executa um comportamento alternativo se for null 7. Para cada um dos casos identificados acima redefine-se a operação da classe null com o comportamento alternativo 8. Remover a condição de verificação para cada caso em que se usa o comportamento 9. Compilar e testar Desenho de Software 63 Desenho de Software 64
17 class Site... Customer getcustomer() { return _customer; } Customer _customer; Exemplo class Customer... public String getname() {...} public BillingPan getplan() {...} public PaymentHistory gethistory() {...} public class PaymentHistory... int getweeksdelinquentinlastyear() String customername; if (customer == null) customername = occupant ; else customername = customer.getname(); Exemplo class NullCustomer extend Customer { public boolean isnull() { return true; } } class Customer... public boolean isnull() { return false; } protected Customer() {} // clients do need to not know about null class static Customer newnull() { return new NullCustomer(); } COMPILE AND TEST Desenho de Software 65 Desenho de Software 66 Exemplo class Site... Customer getcustomer() { return (_customer == null)? Customer.newNull(): _customer; } Customer customer = site.getcustomer(); BillingPlan plan; if (customer.isnull()) plan = BillingPlan.basic(); else plan = customer.getplan(); String customername; if (customer.isnull()) customername = occupant ; else customername = customer.getname(); Exemplo class NullCustomer... public String getname() { return occupant ; } public Plan getplan() { return BillingPlan.basic(); } String customername = customer.getname(); Plan customerplan() = customer.getplan(); COMPILE AND TEST COMPILE AND TEST Desenho de Software 67 Desenho de Software 68
18 Aperfeiçoamento do Desenho Desenho por contrato Protótipos de desenho Desenho por Contrato Utiliza-se a técnica de desenho por contrato para assegurar que o desenho satisfaz a sua especificação Um componente, dito cliente, que necessita dos serviços de outro componente, dito fornecedor, pelo qual celebram um contrato que especifica: as obrigações mútuas, chamados de pré-condições os benefícios, chamados de pós-condições as restrições de coerência, chamadas de invariantes Facilitam o desenvolvimento separado, a reutilização, os testes, a verificação da coerência entre as cláusulas, a verificação da correcção da implementação, documentam o desenho,... Desenho de Software 69 Desenho de Software 70 fill is require in_valve.open out_valve.closed... code... ensure in_valve.closed out_valve.closed is_full end Desenho por Contrato invariant is_full = (0.95 * capacity < gauge ) and (gauge <= 1.05 * capacity) Protótipos de Desenho Permitem verificar se a solução de desenho vai de facto resolver o problema O protótipo deve focar apenas no aspecto de desenho sobre o qual existem dúvidas Frequentemente são descartáveis Desenho de Software 71 Desenho de Software 72
19 Validação e Verificação Validação certificar se o desenho satisfaz todos os requisitos do utilizador Verificação certificar se a solução incorpora as qualidades de desenho requeridas Existem várias técnicas: Validação Matemática pode ser difícil mas muito útil para alguns aspectos críticos Métricas de Desenho permitem quantificar a qualidade Comparação de Desenhos para avaliar os compromissos Métricas de Desenho Não se pode gerir aquilo que não se controla e não se pode controlar aquilo que não se consegue medir. Tom DeMarco As seguintes métricas propostas por Robert Martin medem a qualidade do desenho com objectos. Considera módulos reutilizáveis de componentes: Ligação de Fora/Dentro (LFD): número de classes de fora do módulo que dependem de classes de dentro do módulo Ligação de Dentro/Fora (LDF): número de classes de dentro do módulo que dependem de classes fora do módulo Instabilidade (I): I = LDF / (LFD + LDF), I=0 indica estabilidade e I=1 indica instabilidade do módulo Desenho de Software 73 Desenho de Software 74 Métricas de Desenho Princípio do Aberto/Fechado Um sistema não pode ter todos os módulos estáveis Um módulo deve ser aberto à extensão e fechado à modificação Desta forma, os módulos estáveis devem ser muito abstractos enquanto que os módulos instáveis devem ser muito concretos Uma medida de abstracção: Abstracção (A): A = número de classes abstractas do módulo / número total de classes do módulo, A=0 significa que é concreto e A=1 que é abstracto Métricas de Desenho É desejável que os módulos estejam próximos da sequência principal Distância (D): D = (A+I-1) / 2 1 abstracção (0,1) sequência principal instabilidade 1 (1,0) Desenho de Software 75 Desenho de Software 76
20 Comparação de Desenhos Uma especificação possibilita muitos desenhos Deve-se construir diversas soluções para o problema usando diferentes estilos arquitecturais Decidir qual o melhor desenho para os objectivos do sistema Tabelas de comparação definem para cada atributo de qualidade se um particular estilo arquitectural o suporta ou não Tabela de pesos indica qual a prioridade que cada atributo de qualidade tem para o sistema a desenvolver, permite calcular um valor para cada estilo arquitectural Documentação do Desenho Devem ser apresentadas quais as razões do desenho que indiquem os aspectos críticos e os compromissos da solução Utilizar as notações necessárias para exprimir o desenho e as suas propriedades, por exemplo, UML Desenho de Software 77 Desenho de Software 78
Padrões de Desenho. Padrões de Desenho
Padrões de Desenho Motivação inicial trabalho do arquitecto Christopher Alexander A Pattern Language publicado em 1997 Descreveu o uso de padrões em edifícios e áreas urbanas Definiu o conceito de padrão
Leia maisDesenho de Software. Sumário
(QJHQKDULDGD3URJUDPDomR Desenho de Software Carla Ferreira Carla.Ferreira@dei.ist.utl.pt Sumário Objectivos Problemas Qualidades Técnicas Avaliação e Validação Casos Notáveis Exemplo Conclusões Desenho
Leia maisARQUITETURA E DESENHO
ARQUITETURA E DESENHO DE SOFTWARE CMP 1063 Prof. Me. Fábio Assunção Parte 2 DESENHO DE SOFTWARE Espaço do problema Espaço da solução. Interpretação não literal. Orientação à escrita. Orientação à diagramação.
Leia maisEngenharia da Programação 2003/2004
Instituto Superior Técnico Engenharia da Programação 2003/2004 Primeiro Teste 31/10/2003 Número: Turma: Nome: Escreva o seu número em todas as folhas do teste. O tamanho das respostas deve ser limitado
Leia maisDefinição. Arquitecturas de Software. Modelo de Referência. Estilo Arquitectural. Arquitecturas de Software
Arquitecturas de Software Arquitecturas de Software António Rito Silva Rito.Silva@inesc-id.pt Definição A arquitectura de software de um programa ou sistema computacional é a estrutura ou estruturas do
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
Programação Orientada a Objetos 1.1 - Perspectiva histórica: Conceitos A evolução das linguagens de programação tem-se feito na procura de ferramentas: -cada vez mais próximas da percepção humana - e que
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 maisINF011 Padrões de Projeto. 15 Proxy
INF011 Padrões de Projeto 15 Proxy Sandro Santos Andrade sandroandrade@ifba.edu.br Instituto Federal de Educação, Ciência e Tecnologia da Bahia Departamento de Tecnologia Eletro-Eletrônica Graduação Tecnológica
Leia maisModelo do Mundo Real. Abstração. Interpretação
Modelo do Mundo Real Mundo Real Abstração Interpretação Sistema de Software Modelo Algoritmo Abstração: O modelo precisa capturar apenas as características do mundo real que são importantes para o sistema
Leia maisDesenho de Software. António Rito Silva - João Pereira
Desenho de Software António Rito Silva - Rito.Silva@ist.utl.pt João Pereira Joao@inesc-id.pt Sumário Caracterização Objectivos Problemas Qualidades Técnicas Avaliação e Validação Casos Notáveis Exemplo
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 maisParadigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto
Suporte para Programação Orientada a Objeto Cristiano Lehrer Categoria das Linguagens que Suportam POO Suporte a POO acrescentado a uma linguagem já existente: C++ (também suporta programação procedural
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 maisDiagramas de Classe. Sumário. Introdução aos Diagramas de Classe
38 Diagramas de Classe Sumário Introdução aos Diagramas de Classe Notação base Classes Níveis de modelação Relações entre as classes Decorações Extensões 39 Génese Use Cases Permitem modelar a captura
Leia maisOs diagramas de use case capturam os requisitos funcionais do sistema.
109/166 Diagramas de Classe Sumário Colaborações Orientação aos Objectos Diagramas de Classe I conceitos base Diagramas de Classe II conceitos avançados Relações conceitos avançados Diagramas de objectos
Leia maisPadrões de Projeto. Padrões de Projeto. Além dos 23 Padrões GoF. Os 23 Padrões de Projeto. Documentação de um Padrão. Classificação dos Padrões
DCC / ICEx / UFMG Padrões de Projeto Padrões de Projeto Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Um padrão é uma descrição do problema e a essência da sua solução Documenta boas soluções para
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 mais4 Conceito de Herança
4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança
Leia maisQualidade. Ana Madureira
Qualidade Ana Madureira Qualidade da Informação A qualidade de uma informação é apreciada em função da sua pertinência (adaptação às necessidades do sistema de gestão). Três características permitem medir
Leia maisDiagramas de Package
190 Diagramas de Package À medida que os sistemas software se tornam mais complexos e o número de classes aumenta: Torna-se difícil efectuar a gestão das diversas classes A identificação de uma classe
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 maisWeb Presentation Patterns - Controllers
Instituto Superior Técnico 29 de Novembro de 2004 1 2 3 Page Controller Front Controller 4 5 Porquê Usar Web Applications Não necessita instalar software no cliente. Acesso universal fácil. Interface comum
Leia maisEstilo: BlackBoard. BlackBoard = repositório de dados compartilhados
Estilo: BlackBoard Útil para problemas no qual não há uma solução determinística Uma coleção de programas independentes que trabalham cooperativamente em uma estrutura de dados comum (blackboard) Vários
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 maisProgramação Orientada a Objetos
Curso Profissional de Gestão e Programação de Sistemas Informáticos Disciplina: Programação e Sistemas de Informação Programação Orientada a Objetos Módulos 9/10/11 POO 2016/2017 História A OO surgiu no
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 maisA modelagem é tida como a parte central de todas as atividades para a construção de um bom sistema, com ela podemos:
Módulo 6 Análise Orientada a Objeto É interessante observar como a análise orientada a objeto utiliza conceitos que aprendemos há muito tempo: objetos, atributos, classes, membros, todos e partes. Só não
Leia maisSumário. Processo de Desenvolvimento. Objectivos. Problemas. Engenharia de Software. Caracterização. Técnicas Avaliação e Validação Exemplo Conclusões
Engenharia de Software Processo de Desenvolvimento António Rito Silva Rito.Silva@inesc-id.pt Sumário Caracterização Objectivos Problemas Qualidades Técnicas Avaliação e Validação Exemplo Conclusões Processo
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 maisConceitos de Programação Orientada por Objectos. Rui Camacho Programação 2
Conceitos de Programação Orientada por Objectos Um Problema Problema: Existem, hoje em dia, aplicações complexas e de grande dimensão que é preciso desenvolver e manter de modo eficiente utilizando equipas
Leia maisEngenharia de Software
UNIVERSIDADE DE LISBOA INSTITUTO SUPERIOR TÉCNICO Engenharia de Software LEIC/LETI, 3 o Ano, 2 o Semestre Repescagem do 2 o Teste, 1 de Julho de 2016 Nome: Número: Este teste tem um conjunto de 10 perguntas
Leia maisProcessos de software
Processos de software 1 Processos de software Conjunto coerente de atividades para especificação, projeto, implementação e teste de sistemas de software. 2 Objetivos Introduzir modelos de processos de
Leia maisProgramação Orientada a Objetos 2 Flávio de Oliveira Silva, M.Sc.
Orientação a Objetos Revisão Conceitos CLASSE CLASSIFICAÇÃO GENERALIZAÇÃO ESPECIALIZAÇÃO HERANÇA INTERFACES POLIMORFISMO SOBRECARGA ENCAPSULAMENTO ABSTRAÇÃO MODULARIZAÇÃO 9 CLASSE Classe é um agrupamento
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação
4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança
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 maisEngenharia de Software
Sumário Engenharia de Software Modelos de desenvolvimento de software Fases de desenvolvimento Programação modular Abordagem top-down e bottom-up Linguagens de programação: Compilação / Interpretação Aplicação
Leia maisLaboratório de programação II
Laboratório de programação II Herança e Polimorfismo Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Herança Mecanismo da Orientação a Objeto que permite criar novas classes aproveitando
Leia maisUML (Unified Modelling Language)
UML (Unified Modelling Language) Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Referências: Booch, G. et al. The Unified Modeling Language User Guide
Leia maisDiagramas de Use Case Resumo
0 Diagramas de Use Case Resumo Os diagramas de Use Case permitem definir os requisitos funcionais de um sistema: que serviços deve fornecer; a quem os deve fornecer. Notação diagramática facilita o diálogo
Leia maisConceitos de Programação Orientada a Objetos
Conceitos de Programação Orientada a Objetos Tatyana Bitencourt Com as técnicas de orientação a objeto, é possível obter resultados considerados impossíveis pensando de maneira estruturada. Como Java não
Leia maisEngenharia da Programação
Engenharia da Programação LEIC 4º ano, 1º Semestre, ano lectivo de 2002-03 2º Exame (o exame é composto por 10 perguntas (1-10) cotadas com 1 valor cada) Data: 8 de Fevereiro de 2003 Duração Exame: 1h30
Leia maisVisões Arquiteturais. Visões Arquiteturais. Visões Arquiteturais. Visão Conceitual
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 maisEngenharia de Software 2006/2007
Instituto Superior Técnico Engenharia de Software 2006/2007 Segundo Teste (perguntas 5-10, 70 minutos) Primeiro Exame (perguntas 1-10, 120 minutos) 29/6/2007 Nome: Número: Escreva o seu número em todas
Leia maisBCC Engenharia de Software Professor Rodrigo Andrade
BCC Engenharia de Software 2017.1 Professor Rodrigo Andrade Aula Passada Implementação, Manutenção e Execução dos testes Implementação e Manutenção de Funcionalidades Qualidade de código visão caixa preta
Leia maisDesenho. Indice. 1. Introdução. 2. Definição da Arquitectura. 3. Interfaces e desenho da Arquitectura
Desenho Patrícia Macedo Joaquim Filipe João Ascenso Engenharia de Software 2005/2006 EST, Setúbal Indice 1. Introdução 2. Definição da Arquitectura 3. s e desenho da Arquitectura Engenharia de Software
Leia mais3.1 Reflexão Computacional
3 Adaptação Dinâmica Adaptação dinâmica é a capacidade de um sistema ser modificado durante sua execução para se adequar a novas necessidades. Recentemente, esse tem se tornado um tópico de pesquisa proeminente
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro. JAVA6 e Programação Orientada Pelos Objectos, F. Mário Martins, FCA, Julho de 2009.
JAVA6 e Programação Orientada Pelos Objectos, F. Mário Martins, FCA, Julho de 2009. Thinking in Java, 4 th Edition, Bruce Eckel. 1 1 - Introdução 1.1 - Perspectiva histórica: Conceitos A evolução das linguagens
Leia maisProgramação por Objectos Introdução. Introdução 1/18
Programação por Objectos Introdução LEEC@IST Introdução 1/18 História (1) [60s] Simula-67, Dahl e Nygaard da Univ. de Oslo Primeira linguagem com conceitos OO. [70s] Smalltalk, da Xerox Primeira implementação
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
Programação Orientada a Objetos 1.1 - Perspectiva histórica: Conceitos A evolução das linguagens de programação tem-se feito na procura de ferramentas: -cada vez mais próximas da percepção humana - e que
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 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 maisUniversidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática
1 - Introdução 1.1 - Perspectiva histórica: Conceitos A evolução das linguagens de programação tem-se feito na procura de ferramentas: - cada vez mais próximas da percepção humana - e que permitam lidar
Leia maisSumário. Engenharia de Requisitos. Definição de Requisito. Objectivos. Engenharia de Software. Caracterização Objectivos Problemas Qualidades
Engenharia de Software Engenharia de Requisitos António Rito Silva Rito.Silva@inesc-id.pt Sumário Caracterização Objectivos Problemas Qualidades Factores Não-Técnicos Técnicas Avaliação e Validação Casos
Leia mais3 Medição de Software
3 Medição de Software À medida que a engenharia de software amadurece, a medição de software passa a desempenhar um papel cada vez mais importante no entendimento e controle das práticas e produtos do
Leia maisSumário. Escrita de Programas. Qualidades. Objectivos. Engenharia de Software. Caracterização. Técnicas Casos Notáveis Conclusões
Engenharia de Software Escrita de Programas António Rito Silva Rito.Silva@inesc-id.pt Sumário Caracterização Objectivos Qualidades Técnicas Casos Notáveis Conclusões Escrita de Programas 2 Objectivos O
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 maisUniversidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça. Padrão Observer (Observador)
Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça Problema: Definir uma dependência um-para-muitos entre objetos, de forma quando o estado
Leia maisMo#vação. Objec#vo. Estudar uma abordagem de desenvolvimento de so9ware orientada pelos objectos. Linguagens usadas: UML (Unified Modeling Language)
Mo#vação Esta disciplina mostra como construir um bom alicerce para desenvolver so9ware orientado pelos objectos Ensina técnicas de análise e desenho para ajudar a produzir so9ware orientado pelos objectos
Leia maisClasses e Objetos. Sintaxe de classe em Java
Classes e Objetos Classes e Objetos A Programação Orientada a Objetos (POO) é uma técnica de programação que se baseia na construção de classes e utilização de objetos. Os objetos são formados por dados
Leia maisFundamentos de Programação
Fundamentos de Programação Solução do Segundo Teste 23 de Janeiro de 2012 09:00 10:30 Nome: Número: 1. (1.0) Explique em que consiste a abstracção de dados, usando os termos barreiras de abstracção, encapsulação
Leia maisBASES DE DADOS I LTSI/2. Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011
BASES DE DADOS I LTSI/2 Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011 Conceitos Introdutórios Dados versus Informação A informação é actualmente encarada como
Leia maisBases de Dados. Parte I: Conceitos Básicos
Bases de Dados Parte I Conceitos Básicos 1 Definições Básicas Dados: factos conhecidos que têm algum significado e que podem ser guardados. Base de dados (BD): conjunto de dados que se relacionam entre
Leia maisMotivação. Estrutura de Dados. Motivação. Motivação. Por que estudar os tipos de dados? Duas são as principais preocupações em um projeto de software
Estrutura de Dados Aula 01 -Tipos Abstratos de de Dados Prof. Ms. Luiz Alberto Contato: lasf.bel@gmail.com Motivação Por que estudar os tipos de dados? Duas são as principais preocupações em um projeto
Leia maisEscrita de Programas. António Rito Silva
Escrita de Programas António Rito Silva Rito.Silva@inesc-id.pt Sumário Caracterização Objectivos Qualidades Técnicas Casos Notáveis Conclusões Escrita de Programas 2 Objectivos O desenho pode não ter abordado
Leia maisManutenção Leitura: Sommerville; Pressman
Manutenção Leitura: Sommerville; Pressman Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 1 Manutenção de software É modificar um programa depois que ele
Leia mais" ##$#$!% # & #$#$ !!!!"!
" ##$#$!% # & #$#$ Abstract Factory, Builder, Singleton, Factory Method, Prototype, Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy, Chain of Responsability, Command, Interpreter, Iterator,
Leia maisComplexidade do Software
Complexidade do Software Sistemas de software são complicados Os requisitos modernos tendem a complicálo cada vez mais: Alta confiabilidade; Alto desempenho; Desenvolvimento rápido e barato Precisamos
Leia maisLEIC-A / MEIC-A 2007/2008 (1º
1/11 LEIC-A / MEIC-A 2007/2008 (1º Semestre) Teste (versão A) 08 de Janeiro de 2008, 09:00 (120 minutos) Nome: Primeira Parte (5 valores) PERGUNTA RESPOSTA 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 Segunda
Leia maisPalavras Reservadas da Linguagem Java
Palavras Reservadas da Linguagem Java Palavras Reservadas da Linguagem Java: Categorias Tipos de dados primitivos Literais Pseudo-variáveis Desvio e controle de fluxo Pacotes Exceções Modificadores de
Leia maisAula 5 POO 1 Encapsulamento. Profa. Elaine Faria UFU
Aula 5 POO 1 Encapsulamento Profa. Elaine Faria UFU - 2019 Sobre o Material Agradecimentos Aos professores José Gustavo e Fabiano, por gentilmente terem cedido seus materiais. Os slides consistem de adaptações
Leia maisDS: notação. Falta-nos apenas dar exemplos de DSS que contenham a criação de objectos temporários e sua posterior destruição.
DS: notação Falta-nos apenas dar exemplos de DSS que contenham a criação de objectos temporários e sua posterior destruição. Martins 2008 147 DS: notação Martins 2008 148 DS: notação Mensagem condicional
Leia maisDiagramas de Use Case
86/170 Diagramas de Use Case Sumário Definição de requisitos. Diagramas de Use Case I conceitos base Diagramas de Use Case II conceitos avançados Resumo Exercícios Definição de Requisitos 87/170 Definição
Leia maisAnálise e modelação de sistemas. Classe T13: Passando da análise ao Desenho
Análise e modelação de sistemas Classe T13: Passando da análise ao Desenho 2 Programa Organizando os diagramas Da análise ao desenho Pacotes Estereó;pos Classes de análise vs classes de desenho Estereó;pos
Leia maisExemplos de Estilos Arquiteturais. Estilos Arquiteturais. Estilos Arquiteturais. Estilo: Pipe e Filtros
Estilos Arquiteturais Em geral sistemas seguem um estilo, ou padrão, de organização estrutural Os estilos diferem: nos tipos de componentes que usa na maneira como os componentes interagem com os outros
Leia maisSSC Engenharia de Software. Prof. Paulo C. Masiero
SSC - 5764 Engenharia de Software Prof. Paulo C. Masiero Processo de Software: Fases ou Subprocessos DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO Análise de Sistema Análise de Requisitos Projeto Projeto Processo pelo
Leia maisProgramação por Objectos. Java
Programação por Objectos Java Parte 6: Herança e Polimorfismo LEEC@IST Java 1/50 Herança revisão (1) A herança é um mecanismo em que a subclasse constitui uma especialização da superclasse. A superclasse
Leia maisProgramação com Objectos. 2º Teste 2015/2016 1º Semestre
1/7 2015/2016 1º Semestre 13 de Janeiro de 2016, 18:30 (120 minutos) 2º Teste Nome: Número: Primeira Parte (3 valores) PERGUNTA RESPOSTA Segunda Parte (7 valores) PERGUNTA 1.1 2.1 1.2 2.2.1 1.3 2.2.2 1.4
Leia maisEncapsulamento. Separa a interface de um objeto dos detalhes de seu funcionamento interno. Caixa preta 2/27
Encapsulamento Encapsulamento entrada Caixa preta saída 2/27 Separa a interface de um objeto dos detalhes de seu funcionamento interno Encapsulamento Esconder os detalhes de implementação de um componente
Leia maisMODELAGEM COM A UML (UNIFIED MODELING LANGUAGE)
MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE) g BREVE HISTÓRICO g CARACTERÍSTICAS g CONCEITOS DE PROGRAMAÇÃO ORIENTADA A OBJETOS g MODELAGEM DE ANÁLISE E DE PROJETO 1 I. BREVE HISTÓRICO Em fins dos anos
Leia maisAlgoritmos de pesquisa. Tabelas de dispersão/hash
Algoritmos de pesquisa Tabelas de dispersão/hash Introdução Motivação: Considerar o problema de pesquisar um determinado valor num vetor. Se o vetor não está ordenado, a pesquisa requer O(n) de complexidade.
Leia maisProgramação em Comunicações. Programação Orientada por Objectos. Ademar Aguiar.
Programação em Comunicações Programação Orientada por Objectos www.fe.up.pt/~aaguiar ademar.aguiar@fe.up.pt 1 Objectivos Apresentar os princípios e conceitos base sobre orientação por objectos (objectos,
Leia maisIntrodução à Modelagem Conceitual 1. Conceitos Básicos
Universidade Católica de Pelotas Centro Politécnico Bacharelado em Ciência da Computação Introdução à Modelagem Conceitual 1. Conceitos Básicos Luiz A M Palazzo Agosto, 2010 Roteiro A disciplina Noção
Leia maisProfessor Emiliano S. Monteiro
Professor Emiliano S. Monteiro To-Do Doing Done Conhecer os processos de desenvolvimento habilita o aluno a realizar uma melhor escolha de processo para uso em projetos futuros. A vantagem de conhecer
Leia maisBases de Dados. Parte I: Conceitos Básicos. Parte I
Bases de Dados Parte I Conceitos Básicos Ricardo Rocha DCC-FCUP 1 Definições Básicas Dados: factos conhecidos que têm algum significado e que podem ser guardados. Base de dados (BD): conjunto de dados
Leia maisACH2002. Orientação a Objetos
ACH2002 Orientação a Objetos Professores: Delano Medeiros Beder Fátima L. S. Nunes EACH USP O que é abstração? Abstração s.f. Operação do espírito, que isola de uma noção um elemento, negligenciando os
Leia maisTema da aula Introdução ao paradigma de programação: Orientado a Objetos
Profa. Juliana Santiago Teixeira Disciplina: Programação Orientada a Objetos I Tema da aula Introdução ao paradigma de programação: Orientado a Objetos Paradigma Paradigma é a filosofia adotada na construção
Leia maisPROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO (PSI) 11ºANO
PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO (PSI) 11ºANO 1 Módulo 9 - Int. à Programação Orientada a Objectos 2 1. Conceitos básicos A Programação Orientada a Objectos: é uma lógica de programação que procura
Leia maisPadrões. Arquitetura de Software Thaís Batista
Padrões Endereçam uma classe de problemas recorrentes e apresenta uma solução para eles (podem ser considerados um par problema-solução) Permitem a construção de software com propriedades definidas Ajudam
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 maisCapítulo 2 - Processos de Software
Capítulo 2 - Processos de Software Capítulo 2 Processos Software 1 Assuntos abordados Modelos de processo de software Atividades no processo de software Mudança no processo de software Melhoria de processos
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 maisBases de Dados. Parte I: Conceitos Básicos
Bases de Dados Parte I Conceitos Básicos 1 Definições Básicas! Base de dados (BD): conjunto de dados que se relacionam entre si.! Dados: factos conhecidos que têm algum significado e que podem ser guardados.!
Leia maisDiagrama de Classes. Régis Patrick Silva Simão. Régis Simão Diagrama de Classes 1/42
Diagrama de Classes Régis Patrick Silva Simão Régis Simão Diagrama de Classes 1/42 Agenda Introdução Objetos Classes Atributos Operações & Métodos Relacionamentos Relacionamento: Associação Nome de Relacionamento
Leia maisEngenharia de Software
UNIVERSIDADE DE LISBOA INSTITUTO SUPERIOR TÉCNICO Engenharia de Software LEIC/LETI, 3 o Ano, 2 o Semestre 1 o Teste, 4 de Abril de 2017 Duração: 60 minutos Nome: Número: Este teste tem um conjunto de 8
Leia maisSistema Revolucionário de Gestão de Ficheiros
Licenciatura em Engenharia Informática e Computação Laboratório de Bases de Dados Sistema Revolucionário de Gestão de Ficheiros Grupo LBD09 Relatório de Especificação de Base de Dados Versão 1.0 Fernando
Leia maisProgramação por Objectos. Java
Programação por Objectos Java Parte 5: Associações LEEC@IST Java 1/32 Associação revisão Uma associação representa uma referência entre objectos. Numa associação são definidos: Identificador termo descritivo
Leia maisSingleton e Adapter. Professor: Nazareno Andrade (baseado no material de Hyggo Almeida e Jacques Sauvé)
e Adapter Professor: Nazareno Andrade (baseado no material de Hyggo Almeida e Jacques Sauvé) O que vimos na última aula? Factory Method Abstract Factory 2 O que veremos hoje? (padrão de criaçã) Adapter
Leia maisIntrodução à Programação. João Manuel R. S. Tavares
Introdução à Programação João Manuel R. S. Tavares Sumário 1. Ciclo de desenvolvimento de um programa; 2. Descrição de algoritmos; 3. Desenvolvimento modular de programas; 4. Estruturas de controlo de
Leia mais