Aula 20: Estratégia de Projeto

Tamanho: px
Começar a partir da página:

Download "Aula 20: Estratégia de Projeto"

Transcrição

1 Aula 20: Estratégia de Projeto Esta aula reúne algumas das idéias que foram discutidas em aulas anteriores: modelos de objetos de problemas e código, módulos de diagramas de dependência, e padrões de projeto. O objetivo dessa aula é fornecer a você algumas recomendações gerais sobre como conduzir um processo de projeto de software. Serão explicados aqui alguns critérios para a avaliação de projetos, e serão apresentadas também várias heurísticas que ajudam a encontrar um projeto para solucionar um dado problema Visão Geral do Processo & Testes O processo de desenvolvimento possui os seguintes passos principais: Análise do Problema: resulta em um modelo de objeto e uma lista de operações. Projeto: resulta em um modelo de objeto do código, um diagrama de dependência modular e em especificações de módulos. Implementação: resulta em um código executável Os testes deveriam ser realizados, idealmente, durante o desenvolvimento, de maneira que os erros pudessem ser achados o mais cedo possível. Em um famoso estudo de projetos na TRW e na IBM, Barry Boehm descobriu que o custo de consertar um erro pode ser aumentado por um fator tão grande quanto 1000 quando achado tardiamente. Nós somente utilizamos o termo teste para descrever a avaliação de código, entretanto técnicas similares podem ser aplicadas as descrições de problemas e projetos se eles forem registrados em uma notação que possua uma semântica. (No meu grupo de pesquisa, nós desenvolvemos uma técnica de análise para modelos de objetos). No seu trabalho no 6170, você terá que confiar na realização de uma revisão cuidadosa e usar cenários manuais para avaliar as descrições e projetos do seu problema. Quanto aos testes de implementação, o seu objetivo deve ser testar o mais cedo possível. A programação XP (Extreme Programming), uma estratégia que é geralmente muito popular, defende que os testes sejam escritos mesmo antes de escrever o código a ser testado. Esta é uma idéia muito boa, porque isso significa que é menos provável que a seleção de testes fique sujeita aos mesmos erros conceituais que os testes têm a intenção de encontrar em primeiro lugar. Isto também encoraja você a pensar sobre as especificações logo de início. Entretanto isto é ambicioso, e nem sempre possível. Ao invés de testar o seu código de uma maneira ad hoc, você deve construir um banco de testes sistemático que não necessite de nenhuma interação do usuário para executar e validar. Isto será recompensador. Quando você fizer alterações no código, será possível que você descubra

2 rapidamente novos erros introduzidos pela re-execução destes testes de regressão. Use livremente certificações em tempo de execução, e verificações de invariantes de representação Análise do Problema O resultado principal da análise de um problema é um modelo de objeto que descreve as entidades fundamentais do problema e os relacionamentos entre elas. (No texto do curso, o termo modelo de dados é utilizado para isto.) Você deve escrever pequenas descrições para cada conjunto e relacionamento no modelo de objeto, explicando o que eles significam. Mesmo que esteja claro para você naquele momento, pois é fácil esquecer depois o que um termo significa. Além disso, quando você escreve uma descrição no papel, você geralmente acha que ela não está tão clara como você imaginava. O meu grupo de pesquisa está trabalhando no projeto de um novo componente de controle de tráfego aéreo; nós descobrimos que em nosso modelo de objeto o termo Flight era um tanto traiçoeiro, e acertar isto realmente é importante. Também é útil escrever uma lista das operações primárias que o sistema irá fornecer. Isto irá dar a você um domínio das funcionalidades gerais, e permitirá que você verifique se o seu modelo de objeto é capaz de suportar as operações. Por exemplo, um programa para rastrear o valor de ações pode ter operações para criar e apagar carteiras de ações, adicionar ações em carteiras, atualizar o preço de uma ação, etc Propriedades de Projeto O resultado principal do passo de projeto é um modelo de objeto do código mostrando como o estado do sistema é implementado, e um diagrama de dependência modular que mostra como o sistema é dividido em módulos e como eles se relacionam. Para módulos complicados, você irá querer ter também um esboço das especificações de módulo antes de começar a implementar. O que faz um bom projeto? Não existe, é claro, uma maneira simples e objetiva para determinar se um projeto é melhor do que outro. Mas existem algumas propriedades chaves que podem ser utilizadas para avaliar a qualidade de um projeto. Idealmente, nós gostaríamos que um projeto fosse bom em toda a sua extensão; na prática, é geralmente necessário trocar um pelo outro. As propriedades são: Extensibilidade. O projeto deve ser capaz de suportar novas funções. Um sistema que é perfeito em todos os outros aspectos, mas não permite a realização da menor mudança ou otimização, é inútil. Mesmo que não exista demanda por recursos adicionais, existe ainda a probabilidade de haver mudanças no domínio do problema que irão requerer mudanças no programa. Confiabilidade. O sistema entregue deve se comportar de maneira confiável. Isto não significa apenas que ele não deva realizar um crash ou corromper um dado; ele deve executar as suas funções corretamente, e da maneira prevista pelo usuário. (Isto significa que não é suficiente que o sistema satisfaça uma especificação confusa: ele deve satisfazer o que for facilmente entendido pelo

3 usuário, de maneira que ele possa prever como ele irá se comportar.) Para um sistema distribuído, a disponibilidade é importante. Para um sistema em tempo real, o tempo é importante: geralmente isto não significa que o sistema tenha que ser rápido, mas que ele complete suas tarefas em um tempo previsível. Como a confiabilidade é julgada varia muito de sistema para sistema. A falha de um browsernaapresentaçãoprecisadeumaimagemémenossériadoqueamesmafalhaemum programa de editoração eletrônica. Trocas de telefone são necessárias para satisfazer padrões extraordinariamente altos de disponibilidade, mas isto pode causar um erro de rota de chamadas ocasionalmente. Pequenos retardos de tempo podem não importar muito para um cliente de , mas eles não podem existir em um controlador de um reator nuclear. Eficiência. O consumo de recursos do sistema deve ser razoável. Novamente, isto depende do contexto. Uma aplicação que execute em um telefone celular não pode assumir a mesma disponibilidade de memória do que uma que execute em um microcomputador. Os recursos mais concretos são o tempo e o espaço consumidos pela execução de um programa. Mas lembre-se de que o tempo consumido pelo desenvolvimento pode ser tão importante (como a Microsoft tem demonstrado), quanto outro recurso que não deve se ignorado -- dinheiro. Um projeto que pode ser implementado de uma maneira mais econômica pode ser preferível do que outro que seja melhor em outros aspectos, mas seja mais caro Visão Geral da Estratégia Como essas propriedades desejáveis são obtidas? Extensibilidade A suficiência do modelo de objeto. O modelo de objeto do problema tem que captar o suficiente do problema. Um obstáculo comum para a extensão de um sistema é o fato de que não existe lugar para a adição de uma nova funcionalidade, pois esta noção não está expressa em nenhum lugar do código. Um exemplo disso pode ser visto no Microsoft Word. O Word foi projetado assumindo que os parágrafos eram a noção chave de estruturação do documento. Não havia nenhuma noção de fluxo de texto (espaços físicos no documento por onde o texto é encadeado), e nenhum tipo de estrutura hierárquica. Como resultado disso, o Word não suportava de uma maneira polida a divisão em seções, e não era possível colocar figuras. É importante ser muito cuidadoso para não otimizar o modelo de objeto do problema e eliminar um fundamento que pareça ser desnecessário. Não introduza uma abstração para substituir noções mais concretas a menos que você tenha realmente certeza que ela é bem fundada. Ao longo do andamento do projeto, generalizações são geralmente erradas. Localidade e desacoplamento. Mesmo que o código consiga reunir noções suficientes permitindo a adição de novas funcionalidades, pode ser difícil realizar a modificação que você precisa fazer sem ter que alterar o código em todo o sistema. Para evitar isto, o projeto deve apresentar localidade: assuntos separados devem ser, na maior extensão possível, separados em regiões

4 distintas do código. E os módulos devem ser desacoplados uns dos outros, tanto quanto o possível, de maneira que uma alteração não seja propagada. Exemplos de desacoplamento foram vistos na aula sobre name spaces, e mais recentemente nas aulas sobre padrões de projeto (no Observer, por exemplo). Essas propriedades podem ser avaliadas mais facilmente diagrama de dependência modular: este é o motivo pelo qual nós construímos isto. Especificações de módulos também são importantes para alcançar a localidade: uma especificação deve ser coerente, com uma coleção de comportamentos claramente definida (sem características ad hoc especiais), e uma clara divisão de responsabilidades entre os métodos, de maneira que os métodos sejam altamente independentes uns dos outros Confiabilidade Modelagem cuidadosa. A confiabilidade não pode ser facilmente trabalhada em um sistema já existente. A chave para construir um software confiável é desenvolvê-lo cuidadosamente, realizando uma modelagem cuidadosa ao longo do caminho. A maioria dos problemas sérios em sistemas críticos não surge de erros no código, mas de erros na análise do problema: o analista simplesmente nunca considerou propriedades do ambiente em que o sistema estava inserido. Exemplo: A falha do Airbus no aeroporto de Warsaw. Revisão de análise e testes. Por mais cuidadoso que você seja, você irá cometer erros. Assim, em qualquer desenvolvimento, você tem que decidir antecipadamente como você irá encontrar os erros que você inevitavelmente irá cometer. Na prática, a revisão peer review é um dos métodos com o maior custo efetivo para encontrar erros em qualquer artefato de software, com qualquer modelo, especificação ou código. Até agora, você só pode explorar isto com o seu PA e os ALs; no seu trabalho final, você deve tirar o máximo proveito do trabalho em equipe realizando revisões dos trabalhos uns dos outros. Isto irá fazer com que você economize um tempo enorme durante a execução. Análises e testes mais focalizados podem encontrar erros mais sutis do que a peer review. Uma análise útil e fácil de ser realizada é a verificação da consistência do seu modelo: o seu modelo de objeto de código suporta todos os estados do modelo de objeto do problema? as multiplicidades e mutabilidades combinam apropriadamente? o diagrama de dependência modular considera todas as restrições no modelo de objeto? Você também pode verificar o seu código em comparação com os modelos. A ferramenta Womble, disponível em constrói automaticamente modelos de objetos a partir do bytecode. Nós encontramos vários erros no nosso código examinando os modelos extraídos e comparando-os com os modelos planejados. Você deve verificar as propriedades cruciais do seu modelo de objeto no código perguntando a você mesmo como você sabe que essas propriedades são mantidas. Por exemplo, suponha que o seu modelo declare que um vetor nunca é compartilhado por dois objetos de conta bancária. Você deve ser capaz de explicar por que o código garante isto. Sempre que você tiver uma restrição no seu modelo

5 de objeto que não esteja expressa graficamente, é especialmente importante verificá-la, pois é provável que ela envolva relacionamentos que ultrapassem os limites do objeto Eficiência Modelo de Objeto. A sua escolha de modelo de objeto de código é crucial, pois é difícil de ser alterada. Sendo assim, você deve considerar alvos de desempenho crítico no início do projeto. Nós apresentamos mais adiante nesta aula alguns exemplos de transformações que você pode aplicar ao modelo de objeto para melhorar a sua eficiência. Evite tendências. Quando você desenvolve o seu modelo de objeto de um problema, você deve eliminar qualquer assunto relacionado à implementação. Um modelo de problema que contém detalhes de implementação é dito ser tendencioso, uma vez que ele favorece uma implementação em detrimento de outras. O resultado é que você diminui prematuramente o universo de possíveis implementações, talvez excluindo a mais eficiente de todas. Otimização. A otimização possui um nome que a descreve incorretamente; ela invariavelmente significa que o desempenho se torna melhor, mas que outras qualidades (como a clareza da estrutura) se tornam piores. E se você não conduzir a otimização cuidadosamente, é provável que você termine com um sistema pior em todos os sentidos. Antes de realizar uma alteração com o objetivo de melhorar o desempenho, certifique-se de que você tem evidências suficientes de que é provável que as alterações tenham um efeito dramático. De uma maneira geral, você deve resistir a tentação de otimizar, e voltar os seus esforços para tornar o seu projeto limpo (sem erros) e simples. Estes projetos são geralmente os mais eficientes em qualquer caso; se eles não forem, eles são os mais fáceis de serem alterados. Escolha de representações. Não perca tempo obtendo pequenas melhorias de desempenho, ao invés disso focalize os seus esforços em melhorias dramáticas que podem ser obtidas pela escolha de uma representação diferente para um tipo abstrato, por exemplo, que possa fazer com que uma operação de tempo linear seja alterada para tempo constante. Muitos de vocês experimentaram isto na realização do trabalho MapQuick: se você escolher uma representação para grafos que necessite de tempo proporcional ao tamanho do grafo todo para obter um vizinho de um nó, a realização de pesquisas torna-se completamente impraticável. Lembre-se também que o compartilhamento pode ter um efeito dramático, e que é interessante considerar a utilização de tipos imutáveis e a possibilidade de ter objetos compartilhando a estrutura. No MapQuick, Route é um tipo imutável; se você implementá-lo com compartilhamento, cada extensão de route (da rota) por um nó durante a pesquisa irá requerer a alocação de um único nó, ao invés de uma cópia inteira da rota. Acimadetudo,lembre-sedealmejarasimplicidade. Não menospreze o fato de como é fácil ficar enrolado em uma massa de complexidade, e incapaz de atingir qualquer uma dessas propriedades. Faz muito sentido projetar e construir primeiro o sistema da maneira mais simples e com o mínimo de funcionalidades possível, e só então começar a adicionar recursos.

6 20.5 Transformações de Modelos de Objeto Nos modelos de objeto de problema e de código, foram vistas muitas utilizações diferentes da mesma notação. Como um modelo de objeto pode descrever um problema e também descrever uma implementação? Para responder esta questão, é útil pensar na interpretação de um modelo de objeto em dois passos. No primeiro passo, nós interpretamos o modelo em termos dos conjuntos de abstrações e relações. No segundo passo, nós mapeamos esses conjuntos e relações ou para as entidades e relacionamentos do problema, ou para os objetos e campos da implementação. Por exemplo, suponha que nós tenhamos um modelo de objeto com um relacionamento emprega employs de empresa Company para empregado Employee. Matematicamente, nós vemos isto como a declaração de dois conjuntos e um relacionamento entre eles. A restrição de multiplicidade diz que cada employee é mapeado em um relacionamento employs pornomáximoumacompany. Para interpretar isto como um modelo de objeto de um problema, nós enxergamos o conjunto Company como um conjunto de empresas no mundo real, e Employee como um conjunto de pessoas que são empregadas. O relacionamento employs relaciona c e e se a empresa real c emprega a pessoa e. Para interpretar isto como um modelo de objeto de um código, nós enxergamos o conjunto Company como um conjunto de objetos alocados em uma pilha da classe Company, eemployee como um conjunto de objetos alocados em uma pilha da classe Employee. O relacionamento employs se torna um campo de especificação, associando c e e se o objeto c possuir uma referência a uma coleção (oculto na representação de Company) que contenha a referência e. Nossa estratégia é começar com um modelo de objeto de um problema, e transformá-lo em um modelo de objeto de código. Estes modelos irão geralmente diferir consideravelmente, pois o que faz uma clara descrição do problema não é o que geralmente faz uma boa implementação.

7 Como essa transformação é realizada? Uma maneira de fazer isto é realizar um brainstorm ebrincar com diferentes fragmentos de modelos de código até que eles se fundam. Esta pode ser uma maneira razoável de se trabalhar. É necessário verificar se o modelo de objeto do código é fiel ao modelo de objeto do problema. Ele deve ser capaz de representar pelo menos toda a informação dos estados do modelo do problema, de maneira que seja possível adicionar um relacionamento por exemplo, mas não seja possível remover um. Outra maneira de realizar a transformação é pela aplicação sistemática de uma série de pequenas transformações. Cada transformação é escolhida de um repertório de transformações que preservam o conteúdo de informação do modelo, dessa maneira uma vez que cada passo mantém o modelo intacto, a série inteira também deve manter. Ninguém imaginou ainda um repertório completo de tais transformações este é um problema que está sendo pesquisado entretanto existem várias que nós podemos identificar como sendo as mais úteis. Primeiro, deixe-nos introduzir um exemplo Exemplo FolioTracker Considere o projeto de um programa para rastrear carteiras de ações. O modelo de objeto descreve os elementos do problema. Folio é o conjunto de carteiras, cada uma com um nome Name, contendo um conjunto de posições Pos. Cada posição é de uma ação Stock em particular, da qual algum número é retido. Uma ação pode ter um valor (se uma cotação foi obtida recentemente), e tem um símbolo de registro de cotação que não muda. Os símbolos de registro de cotação identificam unicamente as ações. Um observador Watch pode ser colocado em uma carteira de ações; isto faz com que as informações sobre a carteira sejam exibidas quando ocorrerem certas alterações nela.

8 20.7 Catálogo de Transformações Introduzindo uma Generalização Se A e B são conjuntos com relacionamentos p e q, da mesma multiplicidade e mutabilidade, para o conjunto C, nós podemos introduzir uma generalização AB e substituir p e q por um único relacionamento pq de AB para C. O relacionamento pq pode não ter a mesma multiplicidade fonte como p e q.

9 Inserindo uma Coleção Se um relacionamento r de A para B possui uma multiplicidade alvo que permite mais de um elemento, nós podemos interpor uma coleção, como um vetor ou conjunto entre A e B, e substituir r por um relacionamento para dois relacionamentos, um de A para a coleção, e um da coleção para B. No exemplo FolioTracker, nós podemos substituir/interpor um vetor no relacionamento posns entre Folio e Pos. Note as marcações de mutabilidade; a coleção é geralmente construída e reorganizada com os seus contêineres Invertendo um Relacionamento Uma vez que a direção de um relacionamento não implica na capacidade de percorrê-lo naquela direção, é sempre permitido revertê-lo. Eventualmente, é claro, nós iremos interpretar os relacionamentos como campos, assim é comum inverter os relacionamentos para que eles sejam orientados na direção em que se espera que eles sejam percorridos. No nosso exemplo, nós podemos inverter o relacionamento name, um vez que é provável que nós queiramos percorrê-lo dos nomes Name para as carteiras Folio, obtendo um relacionamento folio, por exemplo Movendo um Relacionamento Algumas vezes o alvo ou fonte de um relacionamento pode ser movido sem perda de informação. Por exemplo, um relacionamento de A para C pode ser substituído por um relacionamento de B para C se A e B possuírem uma correspondência um-para-um.

10 No nosso exemplo, nós podemos substituir o relacionamento val entre Stock e Dollar por um relacionamento entre Ticker e Dollar. É conveniente utilizar o mesmo nome para o novo relacionamento, embora tecnicamente ele seja um relacionamento diferente Substituindo um Relacionamento por uma Tabela Um relacionamento de A para B com uma multiplicidade alvo de exatamente um ou zero ou um pode ser substituído por uma tabela. Já que apenas uma tabela é necessária, o padrão de instância única (Singleton) pode ser utilizado de maneira que a tabela possa ser referenciada por um nome global. Se a multiplicidade alvo do relacionamento é zero ou um, a tabela deve ser capaz de suportar o mapeamento para valores null. No FolioTracker, por exemplo, nós podemos converter o relacionamento folio em uma tabela para permitir que carteiras possam ser verificadas por um operação de verificação constante. Isto fica assim:

11 Faria sentido converter o relacionamento val de Ticker para Dollar em uma tabela também, uma vez que isto permitiria que a pesquisa de valores para símbolos de registro de cotação fossem encapsuladas em um objeto distinto da carteira. Neste caso, por causa da multiplicidade zero-ou-um, nós precisaremos de uma tabela que possa armazenar valores null Adicionando Estados Redundantes É geralmente útil adicionar componentes de estado redundantes a um modelo de objeto. Dois casos comuns são a adição da inversão de um relacionamento, e a adição da composição de dois relacionamentos. Se p mapeia A em B, nós podemos adicionar a inversão q de B para A. Sep mapeia A em B, eq mapeia B em C, nós podemos adicionar a composição pq de A para C Decompondo Relacionamentos Mutáveis Suponha que um conjunto A possua relacionamentos de partida p, q e r, onde p e q são estáticos. Se implementado diretamente, a presença de r fará com que A se torne mutável. Portanto, pode ser desejável decompor o relacionamento r, pela utilização da transformação de Substituição de um Relacionamento por uma Tabela, e então implementando A como um tipo de dado imutável. No nosso exemplo, a decomposição do relacionamento val se encaixa neste padrão, uma vez que ela torna Stock imutável. AmesmaidéiaformaabasedopadrãodeprojetoFlyweight.

12 Interpolando uma interface Esta transformação substitui o alvo de um relacionamento R entre um conjunto A e um conjunto B com um superconjunto X de B. Tipicamente, A e B irão se tornar classes e X se tornará uma classe abstrata ou interface. Isto permitirá que o relacionamento R seja estendido para mapear elementos de A em elementos de um novo conjunto C, pela implementação de C como uma subclasse de X. Uma vez que X decompõe as propriedades compartilhadas de suas subclasses, ela terá uma especificação mais simples do que B; a dependência de A em X é portanto menos deficiente do que a sua dependência anterior em B. Para compensar a perda de comunicação entre A e B, um relacionamento adicional deve ser adicionado (em uma transformação posterior) de B de volta para A. O padrão de projeto Observer é um exemplo do resultado desta transformação. No nosso exemplo, nós podemos fazer com que os objetos Watch sejam observadores dos objetos Folio:

13 Eliminando Conjuntos Dinâmicos Um subconjunto que não é estático não pode ser implementado como uma subclasse (já que os objetos não podem migrar de uma classe para outra durante o tempo de execução). Assim, ele deve ser transformado. Uma classificação em subconjuntos pode ser transformada em um relacionamento do superconjunto para um conjunto de valores de classificação Onde existir apenas um ou dois subconjuntos dinâmicos, os valores de classificação podem ser valores booleanos primitivos. A classificação também pode ser transformada em vários conjuntos únicos, um para cada subconjunto Modelo de Objeto Final Para o nosso exemplo FolioTracker, o resultado da seqüência de transformações que foram discutidas é mostrado abaixo. Neste ponto, é necessário verificar se o nosso modelo suporta as operações que o sistema deve realizar, e usar os cenários destas operações para construir um diagrama de dependência modular para verificar se o projeto é exeqüível. Será necessário adicionar módulos para a interface do usuário e qualquer mecanismo que seja usado para obter as cotações de ações. Nós também queremos adicionar um mecanismo para armazenar carteiras de maneira persistente no disco. Para algumas destas tarefas, nós poderemos querer retornar e construir um modelo de objeto do problema, mas para outras partes será razoável trabalhar no nível da implementação. Por exemplo, se nós permitirmos aos usuários que eles nomeiem arquivos para armazenar as carteiras de ações, nós quase certamente necessitaremos de um modelo de objeto do problema. Mas para solucionar questões de como compilar uma página web para obter cotações de ações, não é provável que a construção de um modelo de objeto do problema seja produtiva.

14 20.9UML e Métodos Existem vários métodos que prescrevem uma estratégia detalhada para o desenvolvimento orientado a objeto. Eles dizem a você quais módulos criar, e em que ordem. No cenário industrial, a padronização de métodos pode auxiliar a coordenação de trabalho entre equipes. Embora você não tenha aprendido sobre nenhum método em particular no 6170, as noções que você aprendeu no 6170 são a base de muitos métodos, assim você deve ser capaz de aprender qualquer método específico facilmente. Quase todos os métodos usam modelos de objetos; alguns também usam o diagrama de dependência modular. Se você desejar saber mais sobre métodos, eu recomendo Catalysis, Fusion e Syntropy; uma busca no google por estes nomes irá direcionar você para os materiais disponíveis on-line e livros. Nos últimos anos, houve uma tentativa de padronização das notações. O Grupo de Gerenciamento de Objeto (Object Management Group) adotou a linguagem UML (Unified Modeling Language) como uma notação padrão. Ela é realmente uma grande coleção de notações. Isto inclui uma notação de modelagem de objeto similar a nossa (entretanto muito mais complicada).

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 3.1 - IDENTIFICADORES Os objetos que usamos no nosso algoritmo são uma representação simbólica de um valor de dado. Assim, quando executamos a seguinte instrução:

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc. MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 2 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Revisão sobre Banco de Dados e SGBDs Aprender as principais

Leia mais

ENGENHARIA DE SOFTWARE I

ENGENHARIA DE SOFTWARE I ENGENHARIA DE SOFTWARE I Prof. Cássio Huggentobler de Costa [cassio.costa@ulbra.br] Twitter: www.twitter.com/cassiocosta_ Agenda da Aula (002) Metodologias de Desenvolvimento de Softwares Métodos Ágeis

Leia mais

2 Diagrama de Caso de Uso

2 Diagrama de Caso de Uso Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa

Leia mais

Banco de Dados. Introdução. João Eduardo Ferreira Osvaldo Kotaro Takai. jef@ime.usp.br DCC-IME-USP

Banco de Dados. Introdução. João Eduardo Ferreira Osvaldo Kotaro Takai. jef@ime.usp.br DCC-IME-USP Banco de Dados Introdução João Eduardo Ferreira Osvaldo Kotaro Takai jef@ime.usp.br DCC-IME-USP Importância dos Bancos de Dados A competitividade das empresas depende de dados precisos e atualizados. Conforme

Leia mais

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Um Sistema Gerenciador de Banco de Dados (SGBD) é constituído por um conjunto de dados associados a um conjunto de programas para acesso a esses

Leia mais

GARANTIA DA QUALIDADE DE SOFTWARE

GARANTIA DA QUALIDADE DE SOFTWARE GARANTIA DA QUALIDADE DE SOFTWARE Fonte: http://www.testexpert.com.br/?q=node/669 1 GARANTIA DA QUALIDADE DE SOFTWARE Segundo a NBR ISO 9000:2005, qualidade é o grau no qual um conjunto de características

Leia mais

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

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem

Leia mais

Persistência e Banco de Dados em Jogos Digitais

Persistência e Banco de Dados em Jogos Digitais Persistência e Banco de Dados em Jogos Digitais Prof. Marcos Francisco Pereira da Silva Especialista em Engenharia de Software Jogos Digitais - Computação Gráfica 1 Agenda Vantagens de usar a abordagem

Leia mais

Unidade VI. Validação e Verificação de Software Teste de Software. Conteúdo. Técnicas de Teste. Estratégias de Teste

Unidade VI. Validação e Verificação de Software Teste de Software. Conteúdo. Técnicas de Teste. Estratégias de Teste Unidade VI Validação e Verificação de Software Teste de Software Profa. Dra. Sandra Fabbri Conteúdo Técnicas de Teste Funcional Estrutural Baseada em Erros Estratégias de Teste Teste de Unidade Teste de

Leia mais

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc.

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc. MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 1 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Apresenta a diferença entre dado e informação e a importância

Leia mais

ISO 9001:2008. Alterações e Adições da nova versão

ISO 9001:2008. Alterações e Adições da nova versão ISO 9001:2008 Alterações e Adições da nova versão Notas sobe esta apresentação Esta apresentação contém as principais alterações e adições promovidas pela edição 2008 da norma de sistema de gestão mais

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento Professor Rene - UNIP 1 Roteamento Dinâmico Perspectiva e histórico Os protocolos de roteamento dinâmico são usados

Leia mais

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com. http://www.tiagodemelo.info

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com. http://www.tiagodemelo.info Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com Última atualização: 20.03.2013 Conceitos Banco de dados distribuídos pode ser entendido como uma coleção de múltiplos bds

Leia mais

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS O termo metodologia não possui uma definição amplamente aceita, sendo entendido na maioria das vezes como um conjunto de passos e procedimentos que

Leia mais

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd. Apresentação Este curso tem como objetivo, oferecer uma noção geral sobre a construção de sistemas de banco de dados. Para isto, é necessário estudar modelos para a construção de projetos lógicos de bancos

Leia mais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais Notas da Aula 17 - Fundamentos de Sistemas Operacionais 1. Gerenciamento de Memória: Introdução O gerenciamento de memória é provavelmente a tarefa mais complexa de um sistema operacional multiprogramado.

Leia mais

Guia de utilização da notação BPMN

Guia de utilização da notação BPMN 1 Guia de utilização da notação BPMN Agosto 2011 2 Sumário de Informações do Documento Documento: Guia_de_utilização_da_notação_BPMN.odt Número de páginas: 31 Versão Data Mudanças Autor 1.0 15/09/11 Criação

Leia mais

Requisitos de Software

Requisitos de Software Requisitos de Software Centro de Informática - Universidade Federal de Pernambuco Kiev Gama kiev@cin.ufpe.br Slides originais elaborados por Ian Sommerville e adaptado pelos professores Márcio Cornélio,

Leia mais

3.1 Definições Uma classe é a descrição de um tipo de objeto.

3.1 Definições Uma classe é a descrição de um tipo de objeto. Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Classes Autoria:Aristófanes Corrêa Silva Adaptação:

Leia mais

Conceitos de Banco de Dados

Conceitos de Banco de Dados Conceitos de Banco de Dados Autor: Luiz Antonio Junior 1 INTRODUÇÃO Objetivos Introduzir conceitos básicos de Modelo de dados Introduzir conceitos básicos de Banco de dados Capacitar o aluno a construir

Leia mais

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

Modelos de Sistema. 2007 by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1. Modelos de Sistema Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1 Objetivos Explicar por que o contexto de um sistema deve ser modelado como parte do processo de RE Descrever

Leia mais

Entendendo como funciona o NAT

Entendendo como funciona o NAT Entendendo como funciona o NAT Vamos inicialmente entender exatamente qual a função do NAT e em que situações ele é indicado. O NAT surgiu como uma alternativa real para o problema de falta de endereços

Leia mais

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 SUMÁRIO 1 Conceitos Básicos... 3 1.1 O que é Software?... 3 1.2 Situações Críticas no desenvolvimento

Leia mais

Visite o hotsite do livro: http://bit.ly/1ysv0da

Visite o hotsite do livro: http://bit.ly/1ysv0da Este ebook possui 5 dicas práticas avançadas de Facebook Ads que foram retiradas do novo livro que estamos escrevendo, chamado Facebook Marketing Avançado, que vai possuir muitas outras dicas práticas,

Leia mais

Requisitos de Software

Requisitos de Software Requisitos de Software Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 6 Slide 1 Objetivos Apresentar os conceitos de requisitos de usuário e de sistema Descrever requisitos funcionais

Leia mais

ACOMPANHAMENTO GERENCIAL SANKHYA

ACOMPANHAMENTO GERENCIAL SANKHYA MANUAL DE VISITA DE ACOMPANHAMENTO GERENCIAL SANKHYA Material exclusivo para uso interno. O QUE LEVA UMA EMPRESA OU GERENTE A INVESTIR EM UM ERP? Implantar um ERP exige tempo, dinheiro e envolve diversos

Leia mais

Modelagemde Software Orientadaa Objetos com UML

Modelagemde Software Orientadaa Objetos com UML Modelagemde Software Orientadaa Objetos com UML André Maués Brabo Pereira Departamento de Engenharia Civil Universidade Federal Fluminense Colaborando para a disciplina CIV 2802 Sistemas Gráficos para

Leia mais

QUALIDADE DE SOFTWARE. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 27 Slide 1

QUALIDADE DE SOFTWARE. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 27 Slide 1 QUALIDADE DE SOFTWARE Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 27 Slide 1 Objetivos Apresentar o processo de gerenciamento de qualidade e as atividades centrais da garantia de

Leia mais

NOKIA. Em destaque LEE FEINBERG

NOKIA. Em destaque LEE FEINBERG Em destaque NOKIA LEE FEINBERG A Nokia é líder mundial no fornecimento de telefones celulares, redes de telecomunicações e serviços relacionados para clientes. Como Gerente Sênior de Planejamento de Decisões

Leia mais

COMO INVESTIR PARA GANHAR DINHEIRO

COMO INVESTIR PARA GANHAR DINHEIRO COMO INVESTIR PARA GANHAR DINHEIRO Por que ler este livro? Você já escutou histórias de pessoas que ganharam muito dinheiro investindo, seja em imóveis ou na Bolsa de Valores? Após ter escutado todas essas

Leia mais

Projeto de Sistemas I

Projeto de Sistemas I Instituto Federal de Educação, Ciência e Tecnologia de São Paulo Projeto de Sistemas I Professora: Kelly de Paula Cunha E-mail:kellypcsoares@ifsp.edu.br Requisitos: base para todo projeto, definindo o

Leia mais

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008 Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,

Leia mais

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

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2 UML 2 Guia Prático Gilleanes T.A. Guedes Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2 Novatec capítulo 1 Introdução à UML A UML (Unified Modeling Language ou Linguagem de Modelagem

Leia mais

http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho vi http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Administração de Redes de Computadores Resumo de Serviços em Rede Linux Controlador de Domínio Servidor DNS

Leia mais

Resolução da lista de exercícios de casos de uso

Resolução da lista de exercícios de casos de uso Resolução da lista de exercícios de casos de uso 1. Explique quando são criados e utilizados os diagramas de casos de uso no processo de desenvolvimento incremental e iterativo. Na fase de concepção se

Leia mais

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

Unisant Anna Gestão Empresarial com ERP 2014 Modelagem de Sistemas - UML e MER Objetivo dessa aula é descrever as características e a simbologia dos diagramas UML e MER na modelagem de sistemas de informação de uma forma a permitir a comunicação entre técnicos e gestores. Modelagem

Leia mais

2 Engenharia de Software

2 Engenharia de Software 20 2 Engenharia de Software 2.1 Design de Sistemas Orientados a Objetos Os Sistemas Orientados a Objetos não são mais novidade hoje em dia já estando há muitos anos no mercado. A orientação a objetos permite

Leia mais

Dadas a base e a altura de um triangulo, determinar sua área.

Dadas a base e a altura de um triangulo, determinar sua área. Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação ana.santos@qi.edu.br Conceitos Preliminares

Leia mais

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

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br ROTEIRO 1. Conceitos de Orientação a Objetos Introdução O paradigma da POO Classes

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Roteiro Inspeção Defeitos dos Software Classificação dos Erros Técnica de Leitura Ad-hoc Checklist Exercício Inspeção Inspeção de Software Definição É um método de análise estática

Leia mais

2. Representação Numérica

2. Representação Numérica 2. Representação Numérica 2.1 Introdução A fim se realizarmos de maneira prática qualquer operação com números, nós precisamos representa-los em uma determinada base numérica. O que isso significa? Vamos

Leia mais

Introdução à Engenharia de Software

Introdução à Engenharia de Software Introdução à Engenharia de Software Professor: Rômulo César romulodandrade@gmail.com www.romulocesar.com.br Imagem Clássica Objetivo da aula Depois desta aula você terá uma visão sobre o que é a engenharia

Leia mais

Desenvolvendo Websites com PHP

Desenvolvendo Websites com PHP Desenvolvendo Websites com PHP Aprenda a criar Websites dinâmicos e interativos com PHP e bancos de dados Juliano Niederauer 19 Capítulo 1 O que é o PHP? O PHP é uma das linguagens mais utilizadas na Web.

Leia mais

Introdução à ISO 9001:2015

Introdução à ISO 9001:2015 Trilhando o caminho das mudanças da nova versão Clique aqui para para conhecer-me. Introdução à ISO 9001:2015 Apresentar e interpretar As mudanças da norma versão da ABNT ISO 9001:2015 em relação à ABNT

Leia mais

Solitaire Interglobal

Solitaire Interglobal Solitaire Interglobal POWERLINUX OU WINDOWS PARA IMPLANTAÇÃO SAP Escolher entre as plataformas concorrentes de sistema operacional Linux e Windows para SAP pode ser uma tarefa confusa para as organizações.

Leia mais

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

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos Programação Estruturada e Orientada a Objetos Fundamentos Orientação a Objetos 2013 O que veremos hoje? Introdução aos fundamentos de Orientação a Objetos Transparências baseadas no material do Prof. Jailton

Leia mais

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 2-1. PRINCÍPIOS DE SOFTWARE DE ENTRADA E SAÍDA (E/S) As metas gerais do software de entrada e saída é organizar o software como uma série de camadas, com as mais baixas preocupadas em esconder as

Leia mais

ADMINISTRAÇÃO DOS RECURSOS DE DADOS

ADMINISTRAÇÃO DOS RECURSOS DE DADOS Capítulo 7 ADMINISTRAÇÃO DOS RECURSOS DE DADOS 7.1 2003 by Prentice Hall OBJETIVOS Por que as empresas sentem dificuldades para descobrir que tipo de informação precisam ter em seus sistemas de informação?

Leia mais

Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados

Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados 1. Conceitos Básicos No contexto de sistemas de banco de dados as palavras dado e informação possuem o mesmo significado, representando uma

Leia mais

Microsoft Access XP Módulo Um

Microsoft Access XP Módulo Um Microsoft Access XP Módulo Um Neste primeiro módulo de aula do curso completo de Access XP vamos nos dedicar ao estudo de alguns termos relacionados com banco de dados e as principais novidades do novo

Leia mais

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi 5 Conclusão Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi permitir que scripts Lua instanciem e usem

Leia mais

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

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar

Leia mais

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Definição Geral: Disciplina de Compiladores Prof. Jorge Bidarra (UNIOESTE) A especificação de requisitos tem como objetivo

Leia mais

Definição de Padrões. Padrões Arquiteturais. Padrões Arquiteturais. Arquiteturas de Referência. Da arquitetura a implementação. Elementos de um Padrão

Definição de Padrões. Padrões Arquiteturais. Padrões Arquiteturais. Arquiteturas de Referência. Da arquitetura a implementação. Elementos de um Padrão DCC / ICEx / UFMG Definição de Padrões 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 problemas recorrentes

Leia mais

Técnicas de Caixa Preta de Teste de Software

Técnicas de Caixa Preta de Teste de Software Técnicas de Caixa Preta de Teste de Software Na maioria de projetos de teste, o tempo para a realização dos mesmos sempre é curto e os números de testes a serem realizados nas aplicações são inúmeros.

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o.

UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 08 APRESENTAÇÃO Na aula de hoje vamos apresentar e discutir como definir

Leia mais

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br Introdução O computador como ferramenta indispensável: Faz parte das nossas vidas; Por si só não faz nada de útil; Grande capacidade de resolução

Leia mais

Capítulo 2. Processos de Software. 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1

Capítulo 2. Processos de Software. 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1 Capítulo 2 Processos de Software slide 1 Tópicos apresentados Modelos de processo de software. Atividades de processo. Lidando com mudanças. Rational Unified Process (RUP). Um exemplo de um processo de

Leia mais

CRM. Customer Relationship Management

CRM. Customer Relationship Management CRM Customer Relationship Management CRM Uma estratégia de negócio para gerenciar e otimizar o relacionamento com o cliente a longo prazo Mercado CRM Uma ferramenta de CRM é um conjunto de processos e

Leia mais

Modelo para Documento de. Especificação de Requisitos de Software

Modelo para Documento de. Especificação de Requisitos de Software Modelo para Documento de Especificação de Requisitos de Software Prof. Dr. Juliano Lopes de Oliveira (Baseado na norma IEEE Std 830-1993 - Recommended Practice for Software Requirements Specifications)

Leia mais

Capítulo 11. Conceitos de Orientação a Objetos. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Capítulo 11. Conceitos de Orientação a Objetos. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Capítulo 11 Conceitos de Orientação a Objetos Objetivos do Capítulo Introduzir os conceitos fundamentais da Programação Orientada a Objetos. Apresentar o significado dos objetos e das classes no contexto

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 13 Gerência de Memória Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso Sumário

Leia mais

O sistema está pedindo que eu faça meu login novamente e diz que minha sessão expirou. O que isso significa?

O sistema está pedindo que eu faça meu login novamente e diz que minha sessão expirou. O que isso significa? Que tipo de navegadores são suportados? Preciso permitir 'cookies' O que são 'cookies' da sessão? O sistema está pedindo que eu faça meu login novamente e diz que minha sessão expirou. O que isso significa?

Leia mais

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

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de software AULA NÚMERO: 08 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir conceitos relacionados a modelos e especificações. Nesta aula

Leia mais

Feature-Driven Development

Feature-Driven Development FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por

Leia mais

Engenharia de Software II

Engenharia de Software II Engenharia de Software II Aula 5 http://www.ic.uff.br/~bianca/engsoft2/ Aula 5-05/05/2006 1 Dúvidas da aula passada RUP (Rational Unified Process) é uma ferramenta ou um processo? Resposta: os dois. O

Leia mais

MÓDULO 6 INTRODUÇÃO À PROBABILIDADE

MÓDULO 6 INTRODUÇÃO À PROBABILIDADE MÓDULO 6 INTRODUÇÃO À PROBBILIDDE Quando estudamos algum fenômeno através do método estatístico, na maior parte das vezes é preciso estabelecer uma distinção entre o modelo matemático que construímos para

Leia mais

Como conduzir com sucesso um projeto de melhoria da qualidade

Como conduzir com sucesso um projeto de melhoria da qualidade Como conduzir com sucesso um projeto de melhoria da qualidade Maria Luiza Guerra de Toledo Coordenar e conduzir um projeto de melhoria da qualidade, seja ele baseado no Seis Sigma, Lean, ou outra metodologia

Leia mais

Ajuda ao SciEn-Produção 1. 1. O Artigo Científico da Pesquisa Experimental

Ajuda ao SciEn-Produção 1. 1. O Artigo Científico da Pesquisa Experimental Ajuda ao SciEn-Produção 1 Este texto de ajuda contém três partes: a parte 1 indica em linhas gerais o que deve ser esclarecido em cada uma das seções da estrutura de um artigo cientifico relatando uma

Leia mais

Engenharia de Requisitos

Engenharia de Requisitos Engenharia de Requisitos Introdução a Engenharia de Requisitos Professor: Ricardo Argenton Ramos Aula 08 Slide 1 Objetivos Introduzir a noção de requisitos do sistema e o processo da engenharia de requisitos.

Leia mais

Gestão da Qualidade Políticas. Elementos chaves da Qualidade 19/04/2009

Gestão da Qualidade Políticas. Elementos chaves da Qualidade 19/04/2009 Gestão da Qualidade Políticas Manutenção (corretiva, preventiva, preditiva). Elementos chaves da Qualidade Total satisfação do cliente Priorizar a qualidade Melhoria contínua Participação e comprometimento

Leia mais

Sistemas de Gestão Ambiental O QUE MUDOU COM A NOVA ISO 14001:2004

Sistemas de Gestão Ambiental O QUE MUDOU COM A NOVA ISO 14001:2004 QSP Informe Reservado Nº 41 Dezembro/2004 Sistemas de Gestão O QUE MUDOU COM A NOVA ISO 14001:2004 Material especialmente preparado para os Associados ao QSP. QSP Informe Reservado Nº 41 Dezembro/2004

Leia mais

Guia de Especificação de Caso de Uso Metodologia CELEPAR

Guia de Especificação de Caso de Uso Metodologia CELEPAR Guia de Especificação de Caso de Uso Metodologia CELEPAR Agosto 2009 Sumário de Informações do Documento Documento: guiaespecificacaocasouso.odt Número de páginas: 10 Versão Data Mudanças Autor 1.0 09/10/2007

Leia mais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Tópicos em Engenharia de Software (Optativa III) AULA 2 Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Engenharia de Software Objetivo da aula Depois desta aula você terá uma revisão sobre o

Leia mais

Aula 01 - Formatações prontas e condicionais. Aula 01 - Formatações prontas e condicionais. Sumário. Formatar como Tabela

Aula 01 - Formatações prontas e condicionais. Aula 01 - Formatações prontas e condicionais. Sumário. Formatar como Tabela Aula 01 - Formatações prontas e Sumário Formatar como Tabela Formatar como Tabela (cont.) Alterando as formatações aplicadas e adicionando novos itens Removendo a formatação de tabela aplicada Formatação

Leia mais

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador> FACULDADE DE ENGENHARIA DE COMPUTAÇÃO PROJETO FINAL I e II PLANO DE TRABALHO O Trabalho de Conclusão de Curso (TCC) a ser desenvolvido

Leia mais

Gerenciando Sua Reputação Online Parte 1

Gerenciando Sua Reputação Online Parte 1 Gerenciando Sua Reputação Online Parte 1 Índice Gerenciando Sua Reputação Online Parte 1 Índice O Que é Gerenciamento da Sua Reputação Online? Como Monitorar Sua Reputação Online O Básico Para Construir

Leia mais

28/9/2010. Paralelismo no nível de instruções Processadores superescalares

28/9/2010. Paralelismo no nível de instruções Processadores superescalares Arquitetura de Computadores Paralelismo no nível de instruções Processadores superescalares Prof. Marcos Quinet Universidade Federal Fluminense P.U.R.O. Processadores superescalares A partir dos resultados

Leia mais

Manual de Utilização

Manual de Utilização Manual de Utilização Versão 1.0 18/01/2013 Sempre consulte por atualizações deste manual em nossa página. O Cotação Web está em constante desenvolvimento, podendo ter novas funcionalidades adicionadas

Leia mais

Manual Portal Ambipar

Manual Portal Ambipar Manual Portal Ambipar Acesso Para acessar o Portal Ambipar, visite http://ambipar.educaquiz.com.br. Login Para efetuar o login no Portal será necessário o e-mail do Colaborador e a senha padrão, caso a

Leia mais

Introdução. Banco de dados. Por que usar BD? Por que estudar BD? Exemplo de um BD. Conceitos básicos

Introdução. Banco de dados. Por que usar BD? Por que estudar BD? Exemplo de um BD. Conceitos básicos Introdução Banco de Dados Por que usar BD? Vitor Valerio de Souza Campos Adaptado de Vania Bogorny 4 Por que estudar BD? Exemplo de um BD Os Bancos de Dados fazem parte do nosso dia-a-dia: operação bancária

Leia mais

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM 71 Introdução Difere dos níveis inferiores por ser implementado por tradução A tradução é usada quando um processador está disponível para uma mensagem fonte mas

Leia mais

Capítulo 1. Extreme Programming: visão geral

Capítulo 1. Extreme Programming: visão geral Capítulo 1 Extreme Programming: visão geral Extreme Programming, ou XP, é um processo de desenvolvimento de software voltado para: Projetos cujos requisitos são vagos e mudam com freqüência; Desenvolvimento

Leia mais

Professor: Macêdo Firmino Disciplina: Sistemas Operacionais de Rede

Professor: Macêdo Firmino Disciplina: Sistemas Operacionais de Rede Professor: Macêdo Firmino Disciplina: Sistemas Operacionais de Rede O sistema de nome de domínio (DNS) é um sistema que nomeia computadores e serviços de rede e é organizado em uma hierarquia de domínios.

Leia mais

Universidade Federal Rural de Pernambuco. Bacharelado em Sistemas de Informação. Disciplina: Análise e Projeto de Sistemas de Informação

Universidade Federal Rural de Pernambuco. Bacharelado em Sistemas de Informação. Disciplina: Análise e Projeto de Sistemas de Informação Universidade Federal Rural de Pernambuco Bacharelado em Sistemas de Informação Disciplina: Análise e Projeto de Sistemas de Informação Docente: Rodrigo Aluna: Thays Melo de Moraes Diagramas do Projeto

Leia mais

A Linguagem de Modelagem Unificada (UML)

A Linguagem de Modelagem Unificada (UML) Aécio Costa A Linguagem de Modelagem Unificada (UML) Percebeu-se a necessidade de um padrão para a modelagem de sistemas, que fosse aceito e utilizado amplamente. Surge a UML (Unified Modeling Language)

Leia mais

Extração de Requisitos

Extração de Requisitos Extração de Requisitos Extração de requisitos é o processo de transformação das idéias que estão na mente dos usuários (a entrada) em um documento formal (saída). Pode se entender também como o processo

Leia mais

)HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR

)HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR 6LPXODomR GH6LVWHPDV )HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR #5,6. Simulador voltado para análise de risco financeiro 3RQWRV IRUWHV Fácil de usar. Funciona integrado a ferramentas já bastante conhecidas,

Leia mais

Prototype, um Design Patterns de Criação

Prototype, um Design Patterns de Criação Prototype, um Design Patterns de Criação José Anízio Pantoja Maia Este artigo tem como finalidade compreender o funcionamento do padrão de projeto prototype, serão abordados os participantes que compõe

Leia mais

Iniciação à Informática

Iniciação à Informática Meu computador e Windows Explorer Justificativa Toda informação ou dado trabalhado no computador, quando armazenado em uma unidade de disco, transforma-se em um arquivo. Saber manipular os arquivos através

Leia mais

Especificação do 3º Trabalho

Especificação do 3º Trabalho Especificação do 3º Trabalho I. Introdução O objetivo deste trabalho é abordar a prática da programação orientada a objetos usando a linguagem Java envolvendo os conceitos de classe, objeto, associação,

Leia mais

Análise de Sistemas. Visão Geral: Orientação a Objetos. Prof. José Honorato Ferreira Nunes honorato.nunes@bonfim.ifbaiano.edu.br

Análise de Sistemas. Visão Geral: Orientação a Objetos. Prof. José Honorato Ferreira Nunes honorato.nunes@bonfim.ifbaiano.edu.br Análise de Sistemas Visão Geral: Orientação a Objetos Prof. José Honorato Ferreira Nunes Prof. José Honorato Ferreira Nunes honorato.nunes@bonfim.ifbaiano.edu.br Resumo: VISÃO GERAL: Modelagem de sistemas

Leia mais

www.startercomunicacao.com startercomunic@gmail.com

www.startercomunicacao.com startercomunic@gmail.com 7 DICAS IMPERDÍVEIS QUE TODO COACH DEVE SABER PARA CONQUISTAR MAIS CLIENTES www.startercomunicacao.com startercomunic@gmail.com As 7 dicas imperdíveis 1 2 3 Identificando seu público Abordagem adequada

Leia mais