ESTRATEGIAS de DESENVOLVIMENTO de APLICAÇÕES

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

Download "ESTRATEGIAS de DESENVOLVIMENTO de APLICAÇÕES"

Transcrição

1 ESTRATEGIAS de DESENVOLVIMENTO de APLICAÇÕES Arquitetura Tecnológica A arquitetura tecnológica da informação descreve um plano estrutural de longo prazo, abrangendo toda a organização, que define investimentos e trata da organização da tecnologia da informação. A arquitetura para uma firma de publicidade de 30 empregados, por exemplo, pode envolver PCs interligados em rede, cada um carregado com software de processamento de texto, apresentação e correio eletrônico,etc. A arquitetura de uma organização determina os tipos de equipamentos que ela deve adquirir, os tipos de software que deve usar e a tecnologia de telecomunicações que ela deve comprar. As decisões sobre a arquitetura envolvem, também, decisões sobre padronizações e desempenho global. A arquitetura pode especificar o estado atual e futuro da infra-estrutura, assim como um plano de transição para alcançar o estado desejado.. Nem todas as organizações desenvolvem uma arquitetura de tecnologia da informação. Muitas empresas, ao contrário, tomam as decisões de investimento projeto a projeto. Embora uma arquitetura aumente a probabilidade de que a organização tome decisões coordenadas que expressem sua estratégia de longo prazo, o desenvolvimento de uma arquitetura custa tempo, esforço e dinheiro. A arquitetura pode reduzir a flexibilidade da organização para responder às mudanças tecnológicas. Depois que a organização implementa planos de arquitetura e adquire a tecnologia que a arquitetura prescreve, Arquitetura de Aplicações A arquitetura de aplicações de uma organização trata de seu portfólio de software. A arquitetura de aplicações identifica os sistemas existentes, suas forças, fraquezas e interdependências. Ela especifica a política corporativa sobre o desenvolvimento de aplicações deve ser centralizado, descentralizado ou terceirizado. Ela pode especificar as metodologias a serem usadas no desenvolvimento de novas aplicações. Ela deve, também, abordar como as decisões são tomadas a respeito de qual software rodar internamente e qual terceirizar. A arquitetura de aplicações deve identificar as prioridades para o desenvolvimento de novas aplicações. Sistema de Informação Centralizado Um sistema de informação centralizado (SIC) é aquele executado em uma coleção de máquinas, que se utiliza de seus recursos individuais e possui uma máquina servidora que centraliza todas as informações. São sistemas que possuem pouco poder de processamento sequencial (tempo compartilhado) e necessitam de um mainframe para que possa funcionar com qualidade. Porém, por maior que seja a velocidade de processamento de um mainframe, ele jamais conseguirá alcançar o poder de processamento de vários microcomputadores interligados, como se fosse um único sistema. Existem três modelos de sistemas centralizados: Monousuário, Cliente-servidor (duas camadas) e Multicamadas. Como características do cliente servidor, geralmente, são utilizadas as máquinas clientes com pouca capacidade e um servidor robusto. Uma outra forma de especificar essa característica é utilizando a expressão servidor gordo e cliente magro. As regras de negócio ficam armazenadas no próprio banco de dados por views e storage procedures. No cliente, fica somente a interação do sistema com o usuário, as chamadas interfaces, como as telas e os relatórios. Já o sistema Multicamadas é uma melhoria do cliente servidor (duas camadas), em que são separadas as regras de negócio, a interface e o banco de dados.

2 A segurança é um ponto fundamental em qualquer sistema de informação e uma das vantagens dos sistemas centralizados é que eles possuem um único host que fornece alto grau de segurança, concorrência e controle de cópias de segurança e recuperação. Ao contrário dos sistemas distribuídos que é mais fácil acessar os dados, o que dificulta garantir a segurança dos dados existentes e a privacidade dos dados secretos. Além disto, em um sistema centralizado não há necessidade de um diretório distribuído, já que todos os dados estão localizados em um único host. Porém todos os acessos aos dados realizados por outro que não seja o host, onde o banco de dados está, gera alto custo de comunicação. O host em que o banco de dados está localizado pode ainda criar um gargalo (diz-se que um elemento é o gargalo quando limita o desempenho do sistema), dependendo da quantidade de acessos simultâneos. Podem acontecer também problemas de disponibilidade dos dados, se o host, onde os dados estão armazenados, sair do ar. Sistema de Informação Distribuído Os sistemas de informação distribuídos ficaram mais populares depois da explosão da Internet em 1993 e, desde então, estes sistemas não param de crescer, tanto no meio acadêmico como no meio comercial. A principal motivação na construção de um sistema distribuído é o compartilhamento de recursos tais como: impressoras, arquivos, páginas web, acesso a banco de dados distribuídos, etc., porém, é muito mais do que isto; um SID é um conjunto de processos concorrentes acessando recursos distribuídos, os quais podem ser compartilhados ou replicados, através de troca de mensagens em um ambiente de rede. Durante décadas, pesquisadores e profissionais enfatizaram a importância destes sistemas, muito utilizados atualmente, principalmente em ambientes que necessitam ter escalabilidade, alto desempenho, tolerância a falhas e heterogeneidade. A segurança das informações em qualquer sistema é extremamente importante, pois é ela que garante que o sistema conseguirá fazer aquilo pelo qual foi projeto, de maneira correta e para os usuários corretos. Muitas informações mantidas ou que trafegam em sistemas distribuídos são sensíveis e sigilosas, portanto sua segurança é fundamental e consiste em três aspectos: confiabilidade, integridade e disponibilidade. Uma característica marcante dos sistemas de informação distribuídos, que são construídos a partir de uma variedade de redes, sistemas operacionais, hardwares e linguagens de programação variadas, é a transparência, cujo objetivo é tornar certos aspectos da

3 distribuição e da funcionalidade do sistema invisíveis ao usuário, parecendo não existir, quando na verdade existem. A transparência é o atributo que esconde de usuários/aplicativos detalhes de funcionamento do sistema distribuído, de tal forma que exista a impressão de se tratar de um sistema centralizado. Os SIDs possuem grande tolerância a falhas, ou seja, grande capacidade do sistema sobreviver a falhas em algum dos seus elementos. Uma falha em algum tipo de componente poderá ocorrer o isolamento do mesmo e dos computadores dependentes, mas não impede que o resto do sistema continue funcionando normalmente. Além de todas estas características dos sistemas de informação distribuídos, podemos destacar a economia que este sistema oferece. Isto porque, um sistema de informação centralizado de grande porte, necessita de um mainframe para que possa funcionar perfeitamente. Quando se utiliza um sistema distribuído em substituição a um sistema centralizado, pode-se substituir o mainframe por vários microcomputadores, onde é acrescentado um poder computacional de processamento de baixo custo, sendo mais viável economicamente. Isto porque o custo de um mainframe é bem mais alto que o custo de processamento por servidores distribuídos.

4 As Ferramentas CASE A tradicional expressão "em casa de ferreiro espeto de pau" pode aplicar-se com alguma propriedade aos desenvolvedores de aplicações: tal como o ferreiro não utilizava utensílios para facilitar o seu trabalho, uma parte significativa da atividade de desenvolvimento de software foi sempre realizada com apoio reduzido de ferramentas. Nos últimos anos tem-se procurado corrigir esta situação, e um bom exemplo disso é a utilização de ambientes de desenvolvimento integrados. No entanto, a maioria destes ambientes concentram a sua atenção na fase de implementação do software, proporcionando um reduzido suporte à sua fase de concepção. Introdução O acrônimo CASE tem tido, ao longo do tempo, diversas interpretações, se bem que a mais utilizada e referida na literatura é a de Computer Aided Software Engineering, o que, numa tradução literal, significa "Engenharia de Software Auxiliada por Computador". Se relativamente ao significado das letras iniciais C e E existe algum consenso, o mesmo não acontece com as outras duas letras, cujos diferentes significados podem ser observados Figura Antes de apresentamos a nossa definição do conceito CASE, vale a pena constatarmos as opiniões que outros "pensadores" sobre o assunto emitiram anteriormente: B. Terry [Terry90]: "CASE designa um conjunto de ferramentas que auxiliam um programador ou um gestor de projetos durante uma ou mais fases do processo de desenvolvimento de software, incluindo a manutenção". Carma McClure [McClure89]: "Uma combinação de ferramentas de software e de metodologias de desenvolvimento estruturadas". Esta definição reflecte claramente o momento histórico em que foi elaborada, uma vez que utiliza a expressão "metodologias estruturadas" para definir CASE, pois à data em que a definição foi elaborada, não existiam outras metodologias com expressão. Software Engineering Institute (www.sei.cmu.edu): "CASE é a utilização de meios de suporte baseados em computador no processo de desenvolvimento de software". Definimos CASE como um conjunto de técnicas e ferramentas informáticas que auxiliam o engenheiro de software no desenvolvimento de aplicações, com o objetivo de diminuir o respectivo esforço e complexidade, de melhorar o controle do projeto, de aplicar sistematicamente um processo uniformizado e de automatizar algumas atividades, nomeadamente a verificação da consistência e qualidade do produto final e a geração de artefatos. Uma ferramenta CASE não é mais do que um produto informático destinado a suportar uma ou mais atividades de engenharia de software, relacionadas com uma (ou mais) metodologia(s) de desenvolvimento. Um dos principais objetivos que há muito tempo se procura alcançar com estas ferramentas é a implementação de um ambiente integrado que permita a aplicação de uma abordagem concept to code (isto é, "desde a concepção até à implementação") para o desenvolvimento de sistemas de informação. No entanto, este objetivo foi freqüentemente comprometido por diversas razões. Uma das mais relevantes tem a ver com a incapacidade de suportar, de forma integrada, todas as atividades das várias fases do processo, e, sobretudo de automatizar várias delas (nomeadamente a geração automática de código).

5 As alterações significativas ao nível da tecnologia, dos métodos de análise e desenho, e a crescente preocupação com a modelação do negócio ao mais alto nível, são algumas das razões que vieram trazer preocupações acrescidas e reforçar a necessidade da implementação do conceito concept to code. Os estudos existentes no mercado não são consistentes sobre as vantagens da utilização deste tipo de aplicações. Se alguns ([Banker91], [Finlay94], [Iivari96]) apontam para aumentos de produtividade com a introdução de produtos CASE, outros ([Orlikowski93], [Vessey92]) chegam à conclusão de que estes benefícios são difíceis de atingir e quantificar. Apenas no início da década de 80 é que surgem no mercado as primeiras ferramentas que se consideram atualmente como integrando o universo CASE. O Excelerator, uma das primeiras ferramentas CASE considerada como tal, surgiu em A crescente importância que foram tendo no processo de desenvolvimento está diretamente relacionada com um conjunto de fatores decisivos que contribuíram para o crescente sentimento da necessidade deste tipo de ferramentas: A mudança do ênfase das atividades de programação para atividades de análise e desenho de software, de modo a possibilitar a ultrapassagem dos diversos problemas que se reconheciam aos métodos de trabalho ad-hoc. Utilização de computadores pessoais e de interfaces de trabalho gráficas. O aparecimento de diversas técnicas de modelação de sistemas, que implicavam o desenho de diagramas gráficos (tais como os fluxogramas ou diagramas de fluxos de dados), em que a representação destas notações em papel, ou em ambientes orientados ao caráter, se tornava impraticável à medida que a respectiva complexidade aumentava (quaisquer correções que fossem necessárias implicavam sempre refazer tudo de novo). O aumento da complexidade e do tamanho do software, associado às maiores capacidades do hardware. As ferramentas desta fase tiveram essencialmente três grandes preocupações: ajudar na elaboração da documentação, na produção de diagramas e no suporte das atividades de análise e desenho. Data também desta altura o aparecimento de outras ferramentas e que nós consideramos integradas no universo das ferramentas CASE, tais como ferramentas para gestão de projetos, elaboração de estimativas ou suporte à realização de testes. Figura : Evolução das ferramentas de apoio ao desenvolvimento de software. No início dos anos 90, muita das ferramentas CASE passaram a ser designadas por ferramentas RAD (Rapid Application Development), o que traduzia a preocupação de aumentar o ritmo do desenvolvimento de aplicações.

6 Exemplos destas ferramentas foram (e algumas ainda são) o Visual Basic, SQL Windows, Dephi, Powerbuilder, Oracle Designer e Oracle Developer, que estão freqüentemente orientadas para auxiliar o desenvolvimento de software para ambientes cliente-servidor. A partir de meados dos anos 90, com a crescente importância das abordagens orientadas por objetos e o desenvolvimento de componentes, a terminologia utilizada por alguns autores passou a ser ferramentas de modelação visual. No entanto, a expressão CASE permanece, no nosso entender, como a mais abrangente de todas. Mais recentemente, a introdução dos conceitos da orientação por objetos veio de alguma forma revolucionar o mercado, quer porque uma parte significativa das ferramentas tradicionais teve que se "reinventar", e incorporar novas técnicas de modelação integradas (ou não) com as abordagens estruturadas já existentes; quer porque surgiram no mercado novas ferramentas que suportam exclusivamente este paradigma (é o caso da ferramenta Rose da Rational). Neste contexto, assume particular destaque o UML, que vem assumindo um papel crescente ao nível das notações de modelação. Hoje em dia, praticamente todas as ferramentas que detêm uma quota de mercado mais significativa incorporam algum suporte para o UML. Esta é uma das "áreas quentes" das ferramentas CASE que se concentram na modelação de software: a dúvida sobre a preponderância de determinadas notações e conseqüente implementação pelas ferramentas. Algumas correntes de pensamento acham que as metodologias e notações orientadas por objetos, e em particular o UML, acabarão por se tornar preponderantes no futuro, ao nível da especificação de software. A arquitetura típica das ferramentas CASE (ou pelo menos uma que se considera mais adequada para este tipo de aplicações) é constituída por um conjunto de aplicações / componentes, suportados por um repositório integrado, como se representa na Figura Arquitetura genérica das ferramentas CASE. Repositório O termo repositório designa o componente da arquitectura das ferramentas CASE que é utilizado como meio de armazenamento, gestão e partilha de objectos, modelos, documentos, ou quaisquer outros artefactos, produzidos por algum dos restantes componentes que completam a arquitectura. Na prática, o papel do repositório pode ser concretizado através de uma base de dados, como é o caso típico dos fornecedores que possuem simultaneamente produtos CASE e bases de

7 dados (casos da Oracle e da Sybase), mas muitos produtos utilizam um simples sistema de gestão de ficheiros, alguns com formatos proprietários. O repositório de uma ferramenta CASE é particularmente relevante, uma vez que facilita a gestão de modelos elaborados, e a respectiva reutilização, disponibilizando para isso mecanismos potentes de pesquisa. Tipicamente, o seu conteúdo incluirá: Templates de âmbito variado, nomeadamente de diagramas e de documentos, que facilitam a elaboração de artefatos concretos a partir de modelos genéricos. Templates e frameworks aplicações, a partir dos quais podem ser construídos "esqueletos" de aplicações em função de um conjunto de parâmetros. Bibliotecas de objetos, classes e componentes, que para além de eventuais componentes que possam vir inicialmente com as ferramentas, permitem a integração de outros desenvolvidos ao longo do tempo. Diagramas diversos que resultam da modelação do sistema. Código fonte, programas executáveis e aplicações empacotadas prontas para distribuir aos utilizadores finais. 404 Arquivos de dados para testes e scripts de execução dos mesmos. O repositório apresenta as funcionalidades típicas de um sistema de gestão de bases de dados, nomeadamente no que diz respeito a: Garantia de integridade de dados. Partilha de informação. Suporte ao trabalho concorrente de vários utilizadores. Facilidades de realização de operações de pesquisa. O repositório é um componente crítico ao providenciar mecanismos e estruturas de dados para a integração entre as ferramentas, constituindo-se como o meio de armazenamento comum, para todos os artefatos. No entanto, e de modo a garantir o sucesso do repositório, enquanto facilitador da partilha de informação, é necessário que sejam definidos adicionalmente os seguintes aspectos: Um formato comum para troca de informação descritiva dos artefatos. Uma interface comum para aceder e utilizar os artefatos. Vantagens e Problemas das Ferramentas CASE A introdução de ferramentas CASE numa organização pressupõe uma predisposição para a aplicação de regras e princípios a todo o processo de desenvolvimento, sendo esta précondição já de si um aspecto positivo no processo de melhoria do desenvolvimento de software numa organização. Podemos identificar algumas das principais vantagens que resultam da aplicação deste tipo de ferramentas: Uniformização do processo de desenvolvimento, das atividades realizadas, e dos artefatos produzidos.

8 Reutilização de vários artefatos ao longo do mesmo projeto, e entre projetos, promovendo o consequente aumento da produtividade. Automatização de atividades, com particular destaque ao nível da geração de código e de documentação. Diminuição do tempo de desenvolvimento, recorrendo à geração automática de diversos artefatos do projeto, ou à reutilização de outros previamente existentes. Integração de artefatos produzidos em diferentes fases do ciclo de desenvolvimento de software, em que os outputs de uma ferramenta são utilizados como inputs de outra. Um bom exemplo é a possibilidade de um diagrama de classes originar o esquema relacional de uma base de dados. Demonstração da consistência entre os diversos modelos e possibilidade de verificar a correção do software. Qualidade do produto final superior, pois a utilização de ferramentas impõe um rigor que obriga a uma abordagem mais estruturada no processo de desenvolvimento.

9 Manutenção Durante a vida útil de qualquer sistema de software são detectados problemas que não são devidamente verificados durante a fase de implementação (designados por bugs). Surgem também inúmeras solicitações internas e externas relativamente a pedidos de alteração de requisitos que não foram contemplados originalmente na fase de concepção, e que exigem a elaboração de novas versões/atualizações do software. Durante o tempo de vida útil do software são ainda detectados problemas que apenas podem ser identificados nesta fase; estão normalmente relacionados com questões de desempenho do sistema e apenas se tornam perceptíveis com a sua crescente utilização. Figura 2.8: Percentagem relativa das intervenções que ocorrem durante a manutenção do software. A Figura 2.8 mostra a proporção em que estas diversas situações ocorrem. O objetivo da tarefa de manutenção de software é garantir que a ocorrência de alguma destas situações sejam convenientemente tratadas. Atualmente, muitos autores não vêem a manutenção como uma tarefa com atividades próprias, mas sim como o período que se inicia imediatamente após a entrada em produção do sistema, e que dura enquanto o software se mantiver em operação. Isto porque as atividades a executar sobre o sistema fazem de fato parte de outras tarefas já descritas (análise, desenvolvimento, testes, etc). Por isso, é mais correto considerar que a manutenção desencadeia uma nova iteração de todo o processo de desenvolvimento de software. Complementarmente à manutenção são realizadas outras atividades que garantem o bom funcionamento do sistema segundo diverso critérios, e que têm uma intervenção, sobretudo a nível tecnológico. Estamos nos referindo ao conjunto de atividades que pode ser genericamente designado por operação do sistema, e que inclui, entre outras, a realização de cópias de segurança do sistema, a verificação dos parâmetros de desempenho, a definição de novos utilizadores, etc.

10 ENTENDENDO A MANUTENÇÃO (Aula de 16/05/2011) Qual a origem maior do trabalho de manutenção? Quais são as maiores dificuldades na realização da manutenção? Definição de manutenção Qualquer trabalho no software feito depois que ele se torna operacional ou passa para a produção Parikh Correção de erros; Revisão dos requisitos originais; Aumento de função e desempenho. A manutenção do software envolve toda e qualquer modificação feita no software após estar pronto, assim qualquer correção de erro ou nova funcionalidade adicionada é considerada uma atividade de manutenção. Portanto, esta fase não tem um fim definido, enquanto o software estiver sendo utilizado, alguma atividade de manutenção de software poderá ser necessária. Como o gasto de manutenção é eterno, é normal uma empresa de software gastar mais com a manutenção de sistemas existentes do que com o desenvolvimento de novos sistemas. Pesquisas recentes estimam que 20% do esforço das empresas é gasto em desenvolvimento e 80% em manutenção. Tipos de manutenção Existem basicamente quatro tipos de manutenção de software, conforme abaixo: Manutenção corretiva; consiste em corrigir erros de programas, que geralmente são descobertos pelos usuários software. Quando o erro é pequeno, pode ser corrigido com simples alterações, mas quando o erro exige um tempo maior, pode se fazer algum reparo temporário, sendo o erro corrigido completa e adequadamente apenas em uma nova versão do software. Correção Adaptativa; Este tipo de manutenção é necessária, porque o ambiente onde o software é executado muda constantemente ou para adaptar o software a uma nova legislação, por exemplo novos regulamentação para o RH, Fiscal, Contabilidade,etc. Frequentemente surgem novas gerações de processadores, memórias, sistemas operacionais, etc. Os softwares, portanto, precisam se adaptar, tanto para

11 conseguirem ser executados no novo ambiente ou simplesmente para aproveitar novos recursos e potencialidades oferecidas. Manutenção Aperfeiçoadora; Trata de modificações no sentido de melhorar o software. O software funciona adequadamente, mas talvez podemos adicionar novas funcionalidades ou um desempenho melhor. Também envolve em melhorar a documentação do software, modificar o código para melhorar a legibilidade, etc. Manutenção Preventiva; Consiste em modificar o software para melhorar a confiabilidade ou a manutenabilidade futura. Por exemplo; o desenvolvedor do software pode descobrir algum aspecto que pode levar a uma falha no futuro e corrigi-lo antes que o problema ocorra. Exemplo: Bug do milênio. Quando o processo de desenvolvimento do software foi feito de forma estruturada, seguindo os métodos e técnicas definidos pela engenharia de software, a manutenção é facilitada e consiste dos seguintes passos: Avaliação da documentação do projeto; Análise da arquitetura do programa; Avaliação do impacto das modificações; Modificação do projeto original; Implementação das mudanças; Testes de regressão (refazer os mesmos testes feitos anteriormente, verificando se os mesmos resultados são obtidos) PROBLEMAS DE MANUTENÇÃO Grande parte dos problemas de manutenção referem-se a falta de planejamento no desenvolvimento do software. Outra parte refere-se as dificuldades operacionais, por exemplo, para fazer um upgrade de um sistema. Talvez seja necessário torná-lo indisponível por algum tempo. Podem-se agrupar os problemas de manutenção nas seguintes categorias: Problemas com pessoal; Problemas técnicos; Compromisso com o cliente; Custos de manutenção.

12 Problemas com pessoal Entendimento limitado, normalmente é difícil entender o software produzido por outra pessoa. Perde-se muito tempo tentando entender o software, principalmente se a documentação for ineficiente. Problemas técnicos As vezes a lógica adotada por um programa não permite sua modificação imediata, requerendo mudanças em todo o código. Exemplo; o bug do milênio, onde foi adotado guardar apenas dois dígitos para o ano. Compromisso com o cliente É a impossibilidade de prever quando as falhas vão ocorrer. Não há como prever quando é um cliente vai ligar reportando um erro. É difícil conseguir recursos e pessoal de imediato para resolver o problema. Em geral é preciso deslocar pessoas envolvidas com outras atividades para resolver o problema. Custos de manutenção O custo é sempre alto, pois enquanto as outras fases de processo têm começo e fim, a fase de manutenção dura enquanto o software estiver sendo usado. REGISTROS de MANUTENÇÃO Registrar toda e qualquer modificação no software, pois deve ser documentada. EFEITOS COLATERAIS das MANUTENÇÕES As vezes, uma mudança em uma única linha de código pode provocar diversos erros e até fazer com que o programa deixe de funcionar corretamente. Portanto, não importa a simplicidade da modificação feita, você TEM que testar o software inteiro novamente.

13 PREMISSAS DA REENGENHARIA DE SOFTWARE Sistemas existentes são uma vantagem valiosa da qual a corporação depende e portanto deveriam ser apropriadamente gerenciados; A manutenção de software poderá ser mais efetiva e eficientemente realizada com ajuda de ferramentas poderosas; É uma manutenção automatizada; Envolve a melhoria dos processos de manutenção de software e melhoria dos sistemas atuais pela aplicação de novas tecnologias e ferramentas para a manutenção de software; Sugere um estratégia de manutenção a longo prazo ao invés de simplesmente procurar por uma imediata mudança na manutenção de Software; Oferece uma maneira de organizar o software e mantê-lo organizado. CONCEITO de REENGENHARIA Reengenharia é o processo de examinar software existente e/ou modificá-lo com ajuda de ferramentas automatizadas para: Melhorar sua futura manutenção; Atualizar sua tecnologia; Estender sua expectativa de vida; Aumentar a produtividade da manutenção. OUTROS CONCEITOS É o estudo e alteração de um determinado sistema para reconstruí-lo numa nova forma e subseqüente implementação dessa nova forma ; Modificação em código e estrutura de dados existentes usando os princípios de engenharia de software atuais para aumentar a capacidade de manutenção e capacidade de adaptação do sistema. Combinação de técnicas e ferramentas que facilitam a análise, melhoria, redesenho e reutilização de sistemas existentes para suportar as necessidades de informação ; Meio para melhorar sistemas existentes sem causar impactos na sua funcionalidade atual, plataforma ou arquitetura técnica ; Conjunto de técnicas e ferramentas orientadas à avaliação, reposicionamento e transformação de sistemas existentes, com o objetivo de estender-lhes a vida útil e ao mesmo tempo, proporcionar-lhes uma melhor qualidade técnica e funcionalidade (Furlan);

14 OBJETIVOS DA REENGENHARIA DE SOFTWARE Criar um inventário dos sistemas existentes; Fornecer assistência automatizada para a manutenção; Reduzir custos e erros de manutenção; Tornar o sistema mais fácil de compreender, modificar e testar. Facilitar a conversão e migração do sistema; Reforçar a aderência a padrões; Melhorar a resposta às solicitações de manutenção; Melhorar o ânimo do pessoal de manutenção; Proteger e estender a vida do sistema; Utilizar CASE para suportar sistemas atuais; Reutilizar componentes de sistemas existentes. RAZÕES PARA O USO DA REENGENHARIA DE SOFTWARE Freqüentes falhas de produção; Problemas de desempenho; Tecnologia obsoleta; Problemas de integração de sistemas; Qualidade técnica ruim; Dificuldades para testar e caro para manter; Problemas crescentes no sistema. RAZÕES PARA REFAZER O SISTEMA Não confiável; Algoritmos ruins ou incorretos; Não atende as necessidades dos usuários.

15 SISTEMAS CANDIDATOS A REENGENHARIA DE SOFTWARE São de importância crítica da empresa; São alvo de manutenção freqüente e requerem um grande percentual de recursos de manutenção; São compreensíveis e podem seguramente ser modificados por poucos membros da equipe de software; Contém erros que ninguém pode encontrar; Requerem uma melhoria considerável. AREAS DE ATUAÇÃO DA REENGENHARIA DE SOFTWARE Análise; Reestruturação; Engenharia Reversa; Migração; Reutilização. ANALISE É o processo de examinar os sistemas atuais a fim de compreender os componentes do sistema e como seus programas funcionam. O propósito principal é identificar programas prioritários para Reengenharia e medir sua qualidade. REESTRUTURAÇÃO É o processo de alterar a forma do software (Ex: definição e nomes de dados e código do programa) sem alterar sua funcionalidade. O propósito principal é tornar o programa mais fácil de ser compreendido. ENGENHARIA REVERSA É o processo de analisar o software para reconstruir uma descrição de seus componentes e seus relacionamentos. Uma descrição de alto nível do programa é obtida a partir do programa físico. O propósito é redocumentar o sistema e descobrir informações do projeto com o auxílio na melhoria da compreensão do programa. MIGRAÇÃO É o processo de converter um software de uma linguagem para outra, mover de um ambiente operacional para outro ou atualizar sua tecnologia. O propósito principal é amenizar o impacto de adoção de novos ambientes e tecnologias.

16 REUTILIZAÇÃO É o processo de sistematicamente reaproveitar os diversos elementos criados durante o desenvolvimento de software (código, projeto, especificações, documentação). O propósito principal é acelerar o desenvolvimento de novos sistemas e melhorar sua qualidade. ENGENHARIA REVERSA A Engenharia Reversa é tida como um processo inverso à Engenharia de Sistemas tradicional, e tem como um dos objetivos principais a recuperação de informações em um nível mais alto de abstração. Essas informações podem ser obtidas por meio de uma aplicação transformacional. Uma das áreas da Engenharia de Software que vem se destacando é a Reengenharia de código fonte legado. A dificuldade em atualizar os sistemas para atenderem a novos requisitos e serem executados em novas plataformas de hardware e software, tem motivado os pesquisadores a investigar novas soluções para diminuir os custos e facilitar a manutenção [Prado e Novais,2000] [Costa, 1997]. OBJETIVOS DA ENGENHARIA REVERSA O objetivo da reengenharia de software é manter o conhecimento adquirido com os sistemas legados e utilizar estes conhecimentos como base para a evolução contínua e estruturada do software. O código-fonte legado possui uma lógica de programação, decisões de projeto,requisitos do usuário e regras de negócio que podem ser recuperadas e reconstruídas em um modelo sem a perda da semântica. O modelo resultante pode ser utilizado para reconstruir o sistema, procurando melhorar sua qualidade e reduzir custos com manutenção. Por outro lado, a tarefa de recuperação de informações sobre um sistema já implementado, não é trivial, pois muitas vezes a documentação disponível é escassa e desatualizada.. A atividade de manutenção de software consiste de três etapas: entendimento, modificação e revalidação do sistema [Schneidewind, 1987]. As etapas de entendimento e modificações estão muito relacionadas com a disponibilidade da documentação do software, ou seja, existência, consistência, completeza e atualizações corretas dos documentos que a compõem. Estas mudanças podem ser alterações de funcionalidade ou de técnica de implementação e que são seguidas da engenharia avante. Ou seja, reengenharia é o processo de criar uma descrição abstrata do sistema, elaborar mudanças em alto nível de abstração e então implementá-las no sistema. O processo de engenharia reversa é bastante dependente da solução do problema da escolha da forma de representação do conhecimento extraído de um sistema. Tendo em vista que as

17 informações recuperadas, em um processo de engenharia reversa de um projeto orientado a objeto, poderão (quase sempre) se apresentar de maneira não linear; utilizamos uma linguagem de marcação para disponibilizar essas informações. A linguagem de marcação escolhida foi a XMI (extensible Metadata Interchange) definida pela OMG2 (Object Management Group) [OMG, 2000]

18 Software Produzido Analise O quê o sistema deve fazer. o Documento de especificação Projeto Utiliza o documento de especificação e define como o comportamento especificado será obtido. o Documento de Arquitetura Implementação Utilização uma linguagem de programação. o Código Mas nem sempre funciona assim. Sistemas sem documentação; Dificuldade de manutenção; Erros gerando outros erros; Código duplicado.

19 ENGENHARIA REVERSA O termo Engenharia Reversa tem sua origem na análise de hardware, pois é comum a prática de decifrar projetos de produtos finalizados com intuito de duplicá-los. O conceito de Engenharia Reversa de Software é similar. Porém, tradicionalmente o objetivo da Engenharia Reversa é obter apenas um entendimento do sistema. Definição de ER: Processo de exame e compreensão do software existente, para recapturar ou recriar o projeto e decifrar os requisitos atualmente implementados pelos sistema, apresentado-os em um nível ou grau mais alto de abstração. Por meio da engenharia reversa um software pode ser visualizado em diferentes níveis de abstração. Cada visualização características próprias da fase do ciclo de vida correspondente à abstração. Quais os documentos utilizados para realizar a engenharia reversa (er)? Código fonte Informações de usuários e/ou analista Documentação existente (manual do usuário, manual do sistema, DFDs, Fluxogramas, etc.) Como começa a engenharia reversa? Obtendo as informações necessárias para o completo entendimento do sistema. O que fazer com essas informações? o Só para manutenção o Mesmo paradigma e mudança da linguagem o Mudança de paradigma (só modelo lógico) o Mudança de paradigma e de linguagem Finalidades: Manutenção de Sistema Reunir todas as informações de modo que sejam expressas através de alguma ferramenta disponível. Pseudocódigos; DFDs (se a abordagem for procedimental) Outros métodos de análise existentes

20 Propósito da Engenharia Reversa As atividades de manutenção fornecem a motivação para muitas ferramentas de engenharia reversa. Essa motivação é proveniente da elevada proporção de tempo e custos despendida no entendimento e exame do software a ser mantido. É estimado que mantenedores gastam entre 42 a 67% de seu tempo tentando entender o software. Nas manutenções adaptativas (adequar software a novo ambiente) e evolutivas (adicionar novas funcionalidades ao software), as técnicas de engenharia reversa são usadas indiretamente, através do fornecimento de visões do software, para localizar os componente onde serão realizadas as mudanças e adições, e para auxiliar no controle da estrutura global do sistema modificado, através da produção de documentação. Nas manutenções corretivas (correção de erros), as técnicas de engenharia reversa não servem para detectar, remover ou corrigir erros, porém auxiliam indiretamente o programador na localização do componente defeituoso, através de melhorias da compreensibilidade do software. Para mudanças preventivas ( redução de esforços em futuras mudanças), ferramentas de engenharia reversa podem fornecer um discernimento de onde e como realizar mudanças apropriadas, através da produção de visões do software. Os maiores benefícios da engenharia reversa serão mais reconhecidos quando manutenções futuras tiverem como apoio a documentação produzida numa manutenção anterior. ER x REUSO Reuso é uma atividade que se destina a identificar software reutilizável. Envol vê também a correta importação, reconfiguração e adaptação deste software para uma nova aplicação em um sistema de computação. O processo de reuso é descrito por meio de atividades: Reconhecimento, Decomposição, Classificação (para povoar as bibliotecas de reuso), Seleção, Adaptação e Composição. Técnicas de ER disputam o papel principal no apoio a esses passos, contudo, o foco principal é nos três primeiros passos. Componentes candidatos a reuso podem ser mais facilmente reconhecidos, se forem convertidos para uma notação ou forma padrão. Mesmo que as técnicas de engenharia reversa não sejam focalizadas na identificação e composição de componentes a partir de partes reutilizáveis, elas podem ser proveitosa em completar a documentação dos novos sistemas compostos. Questões Econômicas de Engenharia Reversa O Beneficio fundamental da tecnologia de ER é o aumento do entendimento de um sistema o que facilita a atividade de manutenção O processo de Engenharia Reversa (ER) pode auxiliar na recuperação de dados, por exemplo: Softwares antigos nos quais os desenvolvedores originais não mais trabalham podem ter seus códigos-fonte recuperados com a finalidade de realizar ajustes em partes do programa. Alguns exemplos de tal pratica são jogos antigos (Como os de Atari, Mega Drive,Super Nintendo etc.).

21 A ER é freqüentemente associada a questões de segurança também, pois por meio de suas técnicas pode explorar o código dos programas afim de averiguar se há códigos maléficos, arveriguar se o código original de um software não sofreu alteração ou injeção de rotinas ocultas (tal como vírus de computador fazem). No que diz respeito a recuperação de dados ainda pode-se muito explorar através da ER. Um sistema de arquivos criptografado pode ser entendido e ter seus recursos utilizados para recuperação de importantes dados perdidos. Em alguns países a prática de ER é considerada ilegal e alguns praticantes interessam-se em obter acesso não autorizado a recursos de software não oferecidos gratuitamente pelos fabricantes que vendem o produto. Tal prática é denominada Cracking. Por outro lado, a ER tem sido utilizada como ferramenta de proteção contra a própria ER praticada de forma ilegal. A partir de técnicas aplicadas nesta área é possível modelar melhores proteções para o software como anti-descompiladores, códigos mutantes e armadilhas A Engenharia reversa, foi amplamente utilizada durante a criação dos drivers para todo tipo de hardware, pelos desenvolvedores do Sistema Operacional GNU/Linux, mais especificamente o kernel Linux, devido ao fato dos fabricantes de hardware, a principio, não reconhecerem o Linux como um sistema operacional onde valesse a pena investir tempo e dinheiro no desenvolvimento de drivers. REENGENHARIA de SOFTWARE, é qualquer atividades que: 1) Melhore o entendimento do software 2) Prepare ou melhore o software em si, aumentando sua manutenção, seu reuso e sua extensão. Chikofsky e Cross definem reengenharia: o exame e a alteração de um sistema para reconstruí-lo de uma nova forma, seguida pela sua implementação. Sinônimos de Reengenharia: Melhoramento, renovação, modernização, engenharia de redesenvolvimento, engenharia de reuso. Passos para se realizar a reengenharia de software. Engenharia reversa Estudo das possibilidades existentes Reengenharia o Sem mudanças de funcionalidades, o Mudança parcial de funcionalidades,

22 o Mudança total de funcionalidades

23

Engenharia Reversa e Reengenharia

Engenharia Reversa e Reengenharia Engenharia Reversa e Reengenharia SCE 186 Engenharia de Software Profa Rosana T. Vaccare Braga (material adaptado a partir do concedido pela Profa.: Rosângela Penteado, DC - UFSCar) Fases Genéricas do

Leia mais

EVOLUÇÃO DE SOFTWARE

EVOLUÇÃO DE SOFTWARE EVOLUÇÃO DE SOFTWARE Dinâmica da evolução de programas Manutenção de software Processo de evolução Evolução de sistemas legados 1 Mudança de Software 2 Manutenção de software Mudança de software é inevitável

Leia mais

Engenharia de Software II

Engenharia de Software II Engenharia de Software II Aula 27 http://www.ic.uff.br/~bianca/engsoft2/ Aula 27-26/07/2006 1 Ementa Processos de desenvolvimento de software Estratégias e técnicas de teste de software Métricas para software

Leia mais

PDS - DATASUS. Processo de Desenvolvimento de Software do DATASUS

PDS - DATASUS. Processo de Desenvolvimento de Software do DATASUS PDS - DATASUS Processo de Desenvolvimento de Software do DATASUS Coordenação Geral de Arquitetura e Engenharia Tecnológica Coordenação de Padronização e Qualidade de Software Gerência de Padrões e Software

Leia mais

1 UML (UNIFIED MODELING LANGUAGE)

1 UML (UNIFIED MODELING LANGUAGE) 1 UML (UNIFIED MODELING LANGUAGE) Segundo Tonsig (2003), para conseguir desenvolver um software capaz de satisfazer as necessidades de seus usuários, com qualidade, por intermédio de uma arquitetura sólida

Leia mais

Definir o espaço das informações das organizações; Realizar o detalhamento das análises dos fluxos de dados;

Definir o espaço das informações das organizações; Realizar o detalhamento das análises dos fluxos de dados; MODELAGEM DE SISTEMAS DE INFORMAÇÃO EAD Módulo 1 Arquitetura dos sistemas de informação A unificação das perspectivas desenvolvidas pelo modelo de negócio e dos sistemas de informação formam a arquitetura

Leia mais

Programa do Módulo 2. Processo Unificado: Visão Geral

Programa do Módulo 2. Processo Unificado: Visão Geral 9.1 Programa do Módulo 2 Orientação a Objetos Conceitos Básicos Análise Orientada a Objetos (UML) O Processo Unificado (RUP) Processo Unificado: Visão Geral 9.2 Encaixa-se na definição geral de processo:

Leia mais

Algumas propriedades dos objetos:

Algumas propriedades dos objetos: Orientação a Objetos Vivemos num mundo de objetos. Esses objetos existem na natureza, nas entidades feitas pelo homem, nos negócios e nos produtos que usamos. Eles podem ser categorizados, descritos, organizados,

Leia mais

SISTEMA DE BANCO DE DADOS. Banco e Modelagem de dados

SISTEMA DE BANCO DE DADOS. Banco e Modelagem de dados SISTEMA DE BANCO DE DADOS Banco e Modelagem de dados Sumário Conceitos/Autores chave... 3 1. Introdução... 4 2. Arquiteturas de um Sistema Gerenciador... 5 3. Componentes de um Sistema... 8 4. Vantagens

Leia mais

Arquitetura de Sistemas Distribuídos. Introdução a Sistemas Distribuídos

Arquitetura de Sistemas Distribuídos. Introdução a Sistemas Distribuídos Introdução a Sistemas Distribuídos Definição: "Um sistema distribuído é uma coleção de computadores autônomos conectados por uma rede e equipados com um sistema de software distribuído." "Um sistema distribuído

Leia mais

Figura 1 - Arquitetura multi-camadas do SIE

Figura 1 - Arquitetura multi-camadas do SIE Um estudo sobre os aspectos de desenvolvimento e distribuição do SIE Fernando Pires Barbosa¹, Equipe Técnica do SIE¹ ¹Centro de Processamento de Dados, Universidade Federal de Santa Maria fernando.barbosa@cpd.ufsm.br

Leia mais

Padrões Arquiteturais e de Integração - Parte 1

Padrões Arquiteturais e de Integração - Parte 1 1 / 58 - Parte 1 Erick Nilsen Pereira de Souza T017 - Arquitetura e Design de Aplicações Análise e Desenvolvimento de Sistemas Universidade de Fortaleza - UNIFOR 11 de fevereiro de 2015 2 / 58 Agenda Tópicos

Leia mais

Gerenciamento de Redes

Gerenciamento de Redes Gerenciamento de Redes As redes de computadores atuais são compostas por uma grande variedade de dispositivos que devem se comunicar e compartilhar recursos. Na maioria dos casos, a eficiência dos serviços

Leia mais

Garantia de Processo Leis de Lehman Manutenção de Softwares

Garantia de Processo Leis de Lehman Manutenção de Softwares Garantia de Processo Leis de Lehman Manutenção de Softwares Garantia de Processo Acidentes são eventos raros em sistemas críticos e pode ser impossível simulá-los durante testes de um sistema. Requisitos

Leia mais

RESUMO DA SOLUÇÃO CA ERwin Modeling. Como eu posso gerenciar a complexidade dos dados e aumentar a agilidade dos negócios?

RESUMO DA SOLUÇÃO CA ERwin Modeling. Como eu posso gerenciar a complexidade dos dados e aumentar a agilidade dos negócios? RESUMO DA SOLUÇÃO CA ERwin Modeling Como eu posso gerenciar a complexidade dos dados e aumentar a agilidade dos negócios? O CA ERwin Modeling fornece uma visão centralizada das principais definições de

Leia mais

Reengenharia. Fabrício de Sousa

Reengenharia. Fabrício de Sousa Reengenharia Fabrício de Sousa Introdução Considere qualquer produto de tecnologia que tenha servido bem a você, você utiliza regulamente, mas está ficando velho Quebra com frequencia Muito tempo para

Leia mais

Segurança Internet. Fernando Albuquerque. fernando@cic.unb.br www.cic.unb.br/docentes/fernando (061) 273-3589

Segurança Internet. Fernando Albuquerque. fernando@cic.unb.br www.cic.unb.br/docentes/fernando (061) 273-3589 Segurança Internet Fernando Albuquerque fernando@cic.unb.br www.cic.unb.br/docentes/fernando (061) 273-3589 Tópicos Introdução Autenticação Controle da configuração Registro dos acessos Firewalls Backups

Leia mais

SISTEMA DE GESTÃO DE PESSOAS SEBRAE/TO UNIDADE: GESTÃO ESTRATÉGICA PROCESSO: TECNOLOGIA DA INFORMAÇÃO

SISTEMA DE GESTÃO DE PESSOAS SEBRAE/TO UNIDADE: GESTÃO ESTRATÉGICA PROCESSO: TECNOLOGIA DA INFORMAÇÃO SISTEMA DE GESTÃO DE PESSOAS SEBRAE/TO UNIDADE: GESTÃO ESTRATÉGICA PROCESSO: TECNOLOGIA DA INFORMAÇÃO Competências Analista 1. Administração de recursos de infra-estrutura de tecnologia da informação 2.

Leia mais

Introdução ao Modelos de Duas Camadas Cliente Servidor

Introdução ao Modelos de Duas Camadas Cliente Servidor Introdução ao Modelos de Duas Camadas Cliente Servidor Desenvolvimento de Sistemas Cliente Servidor Prof. Esp. MBA Heuber G. F. Lima Aula 1 Ciclo de Vida Clássico Aonde estamos? Page 2 Análise O que fizemos

Leia mais

Metas de um Sistema Distribuído

Metas de um Sistema Distribuído Metas de um Sistema Distribuído Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do

Leia mais

Suporte à Engenharia Reversa para o ambiente SEA

Suporte à Engenharia Reversa para o ambiente SEA Otavio Pereira Suporte à Engenharia Reversa para o ambiente SEA Orientador: Ricardo Pereira e Silva Universidade Federal de Santa Catarina - UFSC Departamento de Informática e Estatística - INE Florianópolis

Leia mais

Engenharia de Software Introdução. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1

Engenharia de Software Introdução. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1 Engenharia de Software Introdução Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1 Tópicos Apresentação da Disciplina A importância do Software Software Aplicações de Software Paradigmas

Leia mais

Engenharia de Software Introdução. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1

Engenharia de Software Introdução. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1 Engenharia de Software Introdução Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1 Tópicos Apresentação da Disciplina A importância do Software Software Aplicações de Software Paradigmas

Leia mais

GeCA: Uma Ferramenta de Engenharia Reversa e Geração Automática de Código

GeCA: Uma Ferramenta de Engenharia Reversa e Geração Automática de Código GeCA: Uma Ferramenta de Engenharia Reversa e Geração Automática de Código Igor Steinmacher 1, Éderson Fernando Amorim 1, Flávio Luiz Schiavoni 1, Elisa Hatsue Moriya Huzita 1 1 Departamento de Informática

Leia mais

Introduçãoa Engenhariade. Prof. Anderson Cavalcanti UFRN-CT-DCA

Introduçãoa Engenhariade. Prof. Anderson Cavalcanti UFRN-CT-DCA Introduçãoa Engenhariade Software Prof. Anderson Cavalcanti UFRN-CT-DCA O que é Software? O que é software? São programas de computadores, em suas diversas formas, e a documentação associada. Um programa

Leia mais

do grego: arkhé (chefe ou mestre) + tékton (trabalhador ou construtor); tekhne arte ou habilidade;

do grego: arkhé (chefe ou mestre) + tékton (trabalhador ou construtor); tekhne arte ou habilidade; 1 ARQUITETURA E DESIGN DE SOFTWARE O que é Arquitetura? do grego: arkhé (chefe ou mestre) + tékton (trabalhador ou construtor); tekhne arte ou habilidade; do dicionário: Arte de projetar e construir prédios,

Leia mais

Automação do Processo de Instalação de Softwares

Automação do Processo de Instalação de Softwares Automação do Processo de Instalação de Softwares Aislan Nogueira Diogo Avelino João Rafael Azevedo Milene Moreira Companhia Siderúrgica Nacional - CSN RESUMO Este artigo tem como finalidade apresentar

Leia mais

ARQUITETURA TRADICIONAL

ARQUITETURA TRADICIONAL INTRODUÇÃO Atualmente no universo corporativo, a necessidade constante de gestores de tomar decisões cruciais para os bons negócios das empresas, faz da informação seu bem mais precioso. Nos dias de hoje,

Leia mais

Manutenção de Software

Manutenção de Software Tema da Aula Manutenção de Prof. Cristiano R R Portella portella@widesoft.com.br Manutenção de 9 Durante as fases de desenvolvimento, defeitos podem ser inadvertidamente gerados. A revisão (testes) pode

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

UNIVASF - Universidade Federal do Vale do São Francisco Manutenção de Software

UNIVASF - Universidade Federal do Vale do São Francisco Manutenção de Software UNIVASF - Universidade Federal do Vale do São Francisco Manutenção de Software Prof. Ricardo A. Ramos Ciclo de Vida de Software 2 Manutenção de Software Alterações efetuadas no software depois de sua liberação.

Leia mais

ENGENHARIA DE SOFTWARE/ SISTEMAS DE SOFTWARE

ENGENHARIA DE SOFTWARE/ SISTEMAS DE SOFTWARE ENGENHARIA DE SOFTWARE/ SISTEMAS DE SOFTWARE CMP1280/CMP1250 Prof. Me. Fábio Assunção Introdução à Engenharia de Software SOFTWARE Programa de computador acompanhado dos dados de documentação e configuração

Leia mais

Ferramentas Web para controle e supervisão: o que está por vir

Ferramentas Web para controle e supervisão: o que está por vir Artigos Técnicos Ferramentas Web para controle e supervisão: o que está por vir Marcelo Salvador, Diretor de Negócios da Elipse Software Ltda. Já faz algum tempo que ouvimos falar do controle e supervisão

Leia mais

Softwares de Sistemas e de Aplicação

Softwares de Sistemas e de Aplicação Fundamentos dos Sistemas de Informação Softwares de Sistemas e de Aplicação Profª. Esp. Milena Resende - milenaresende@fimes.edu.br Visão Geral de Software O que é um software? Qual a função do software?

Leia mais

Reuso. Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior

Reuso. Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Reuso Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Reutilização de Software Na maioria das áreas de engenharia de software, sistemas são desenvolvidos

Leia mais

Engenharia de Software-2003

Engenharia de Software-2003 Engenharia de Software-2003 Mestrado em Ciência da Computação Departamento de Informática - UEM Profa. Dra. Elisa H. M. Huzita eng. de software-2003 Elisa Huzita Produto de Software Conceitos Software

Leia mais

INTERNET HOST CONNECTOR

INTERNET HOST CONNECTOR INTERNET HOST CONNECTOR INTERNET HOST CONNECTOR IHC: INTEGRAÇÃO TOTAL COM PRESERVAÇÃO DE INVESTIMENTOS Ao longo das últimas décadas, as organizações investiram milhões de reais em sistemas e aplicativos

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

Engenharia de Software

Engenharia de Software CENTRO UNIVERSITÁRIO NOVE DE JULHO Profº. Edson T. França edson.franca@uninove.br Software Sistemas Conjunto de elementos, entre os quais haja alguma relação Disposição das partes ou dos elementos de um

Leia mais

Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software

Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Curso Técnico em Informática ENGENHARIA DE SOFTWARE Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Clayton Maciel Costa

Leia mais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais Arquitetura de Computadores Introdução aos Sistemas Operacionais O que é um Sistema Operacional? Programa que atua como um intermediário entre um usuário do computador ou um programa e o hardware. Os 4

Leia mais

Gestão do Conteúdo. 1. Introdução

Gestão do Conteúdo. 1. Introdução Gestão do Conteúdo 1. Introdução Ser capaz de fornecer informações a qualquer momento, lugar ou através de qualquer método e ser capaz de fazê-lo de uma forma econômica e rápida está se tornando uma exigência

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

SOA: Service-oriented architecture

SOA: Service-oriented architecture SOA: Service-oriented architecture Roteiro Breve História O que é Arquitetura de Software? O que é SOA? Serviços Infraestrutura Composição Sua empresa está preparada para SOA? Breve História Uma empresa

Leia mais

O que é software? Software e Engenharia de Software. O que é software? Tipos de Sistemas de Software. A Evolução do Software

O que é software? Software e Engenharia de Software. O que é software? Tipos de Sistemas de Software. A Evolução do Software O que é software? Software e Engenharia de Software Programas de computador Entidade abstrata. Ferramentas (mecanismos) pelas quais: exploramos os recursos do hardware. executamos determinadas tarefas

Leia mais

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia. 1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade

Leia mais

PROJETO DE REDES www.projetoderedes.com.br

PROJETO DE REDES www.projetoderedes.com.br PROJETO DE REDES www.projetoderedes.com.br Centro Universitário de Volta Redonda - UniFOA Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro

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

Características Básicas de Sistemas Distribuídos

Características Básicas de Sistemas Distribuídos Motivação Crescente dependência dos usuários aos sistemas: necessidade de partilhar dados e recursos entre utilizadores; porque os recursos estão naturalmente em máquinas diferentes. Demanda computacional

Leia mais

Pós Graduação Engenharia de Software

Pós Graduação Engenharia de Software Pós Graduação Engenharia de Software Ana Candida Natali COPPE/UFRJ Programa de Engenharia de Sistemas e Computação FAPEC / FAT Estrutura do Módulo Parte 1 QUALIDADE DE SOFTWARE PROCESSO Introdução: desenvolvimento

Leia mais

Arquitetura dos Sistemas de Informação Distribuídos

Arquitetura dos Sistemas de Informação Distribuídos Arquitetura dos Sistemas de Informação Distribuídos Quando se projeta um sistema cuja utilização é destinada a ser feita em ambientes do mundo real, projeções devem ser feitas para que o sistema possa

Leia mais

Gestão da Tecnologia da Informação

Gestão da Tecnologia da Informação TLCne-051027-P0 Gestão da Tecnologia da Informação Disciplina: Governança de TI São Paulo, Outubro de 2012 0 Sumário TLCne-051027-P1 Conteúdo desta Aula Abordar o domínio Adquirir e Implementar e todos

Leia mais

MODELAGEM DE PROCESSOS

MODELAGEM DE PROCESSOS MODELAGEM DE PROCESSOS a a a PRODUZIDO POR CARLOS PORTELA csp3@cin.ufpe.br AGENDA Definição Objetivos e Vantagens Linguagens de Modelagem BPMN SPEM Ferramentas Considerações Finais Referências 2 DEFINIÇÃO:

Leia mais

Roteiro. Sistemas Distribuídos. Sistemas de Arquivos Distribuídos. Sistema de arquivos distribuídos

Roteiro. Sistemas Distribuídos. Sistemas de Arquivos Distribuídos. Sistema de arquivos distribuídos Sistemas Distribuídos Sistemas de Arquivos Distribuídos Roteiro Sistema de arquivos distribuídos Requisitos Arquivos e diretórios Compartilhamento Cache Replicação Estudo de caso: NFS e AFS Sistemas Distribuídos

Leia mais

Administração de Sistemas de Informação Gerenciais

Administração de Sistemas de Informação Gerenciais Administração de Sistemas de Informação Gerenciais UNIDADE VI: Como desenvolver Sistemas de Informação e Gerenciar Projetos. Novos sistemas de informação são construídos como soluções para os problemas

Leia mais

Introdução. Hardware X Software. Corpo Humano Parte Física. Capacidade de utilizar o corpo em atividades especificas explorando seus componentes

Introdução. Hardware X Software. Corpo Humano Parte Física. Capacidade de utilizar o corpo em atividades especificas explorando seus componentes Introdução Hardware X Software Corpo Humano Parte Física Componentes 18 Capacidade de utilizar o corpo em atividades especificas explorando seus componentes Hardware Introdução Parte física: placas, periféricos,

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

Crescendo e Inovando com um Parceiro Confiável de Suporte

Crescendo e Inovando com um Parceiro Confiável de Suporte IBM Global Technology Services Manutenção e suporte técnico Crescendo e Inovando com um Parceiro Confiável de Suporte Uma abordagem inovadora em suporte técnico 2 Crescendo e Inovando com um Parceiro Confiável

Leia mais

UML - Unified Modeling Language

UML - Unified Modeling Language UML - Unified Modeling Language Casos de Uso Marcio E. F. Maia Disciplina: Engenharia de Software Professora: Rossana M. C. Andrade Curso: Ciências da Computação Universidade Federal do Ceará 24 de abril

Leia mais

Análise e Projeto de. Aula 01. Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br

Análise e Projeto de. Aula 01. Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br Análise e Projeto de Sistemas I Aula 01 Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br Análise e Projeto de Sistemas I Horário das Aulas: 2as feiras das 10h10 às 11h40 e 5as feiras das 08h25

Leia mais

ARQUITETURA DE SISTEMAS. Cleviton Monteiro (cleviton@gmail.com)

ARQUITETURA DE SISTEMAS. Cleviton Monteiro (cleviton@gmail.com) ARQUITETURA DE SISTEMAS Cleviton Monteiro (cleviton@gmail.com) Roteiro Definição Documento de arquitetura Modelos de representação da arquitetura Estilos arquiteturais Arquitetura de sistemas web Arquitetura

Leia mais

Sistemas Operacionais Carlos Eduardo Portela Serra de Castro

Sistemas Operacionais Carlos Eduardo Portela Serra de Castro Introdução Sistemas Operacionais 1 Sistema Operacional: Um conjunto de programas, executado pelo computador como os outros programas. Função: Controlar o funcionamento do computador, disponibilizando seus

Leia mais

Prof.: Gilberto Onodera

Prof.: Gilberto Onodera Automação de Sistemas Prof.: Gilberto Onodera Aula 21-maio maio-2007 Revisão Conceitos de Macro-economia: Globalização Objetivo: Entender os principais drivers de mercado Economia de escala Paradigma da

Leia mais

Virtualização. O conceito de VIRTUALIZAÇÃO

Virtualização. O conceito de VIRTUALIZAÇÃO Virtualização A virtualização está presente tanto no desktop de um entusiasta pelo assunto quanto no ambiente de TI de uma infinidade de empresas das mais variadas áreas. Não se trata de "moda" ou mero

Leia mais

Universidade Federal de Goiás Centro de Recursos Computacionais - CERCOMP Divisão de Sistemas. Criação de uma Serviço de Geração de Relatórios

Universidade Federal de Goiás Centro de Recursos Computacionais - CERCOMP Divisão de Sistemas. Criação de uma Serviço de Geração de Relatórios Universidade Federal de Goiás Centro de Recursos Computacionais - CERCOMP Divisão de Sistemas Criação de uma Serviço de Geração de Relatórios Goiânia 12/2011 Versionamento 12/12/2011 Hugo Marciano... 1.0

Leia mais

PRD Tecnologia de Gestão Ltda. Julho/2008

PRD Tecnologia de Gestão Ltda. Julho/2008 O Processo de Desenvolvimento Telescope Julho/2008 Página 1 Sumário Introdução...3 O desenvolvimento de software tradicional...3 O problema da produtividade...3 O problema da portabilidade...6 O problema

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

ITIL V3 (aula 2) AGENDA: GERENCIAMENTO DE MUDANÇA GERENCIAMENTO DE LIBERAÇÃO GERENCIAMENTO DE CONFIGURAÇÃO

ITIL V3 (aula 2) AGENDA: GERENCIAMENTO DE MUDANÇA GERENCIAMENTO DE LIBERAÇÃO GERENCIAMENTO DE CONFIGURAÇÃO ITIL V3 (aula 2) AGENDA: GERENCIAMENTO DE MUDANÇA GERENCIAMENTO DE LIBERAÇÃO GERENCIAMENTO DE CONFIGURAÇÃO Gerência de Mudanças as Objetivos Minimizar o impacto de incidentes relacionados a mudanças sobre

Leia mais

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Introdução Modelos de Processo de Desenvolvimento de Software Os modelos de processos de desenvolvimento de software surgiram pela necessidade de dar resposta às

Leia mais

Redes de Computadores e suas classificações. Maurício Severich

Redes de Computadores e suas classificações. Maurício Severich Redes de Computadores e suas classificações Maurício Severich Sumário O computador pessoal e a demanda Redes e suas classificações Conectividade Cliente/Servidor Topologia Distância O computador pessoal

Leia mais

Sistemas Distribuídos: Conceitos e Projeto Caracterização de Sistemas Distribuídos

Sistemas Distribuídos: Conceitos e Projeto Caracterização de Sistemas Distribuídos Sistemas Distribuídos: Conceitos e Projeto Caracterização de Sistemas Distribuídos Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.deinf.ufma.br

Leia mais

Processos (Threads,Virtualização e Migração de Código)

Processos (Threads,Virtualização e Migração de Código) Processos (Threads,Virtualização e Migração de Código) Roteiro Processos Threads Virtualização Migração de Código O que é um processo?! Processos são programas em execução. Processo Processo Processo tem

Leia mais

Banco de Dados. Conceitos e Arquitetura de Sistemas de Banco de Dados. Profa. Flávia Cristina Bernardini

Banco de Dados. Conceitos e Arquitetura de Sistemas de Banco de Dados. Profa. Flávia Cristina Bernardini Banco de Dados Conceitos e Arquitetura de Sistemas de Banco de Dados Profa. Flávia Cristina Bernardini Relembrando... Vantagens da Utilização de SGBD Redundância controlada Consistência dos dados armazenados

Leia mais

Universidade Federal de Minas Gerais. Sistemas Operacionais. Aula 23. Sistemas Operacionais Distribuídos

Universidade Federal de Minas Gerais. Sistemas Operacionais. Aula 23. Sistemas Operacionais Distribuídos Aula 23 Distribuídos SOs de Rede Em sistemas operacionais de rede você sabe quando é local e quando é remoto. Assim, o trabalho não muda, com exceção de comandos para acesso remoto: - telnet - ftp - etc.

Leia mais

Comparação SDs X Scs

Comparação SDs X Scs Prof. Alexandre Lima Sistemas Distribuídos Cap 9 1/7 Comparação SDs X Scs Distribuição inerente Economia Velocidade Confiabilidade Crescimento incremental Descrição Algumas aplicações envolvem máquinas

Leia mais

PROFESSOR: CRISTIANO MARIOTTI

PROFESSOR: CRISTIANO MARIOTTI PROFESSOR: CRISTIANO MARIOTTI Conjunto de atividades, parcialmente ordenadas, com a finalidade de obter um produto de software; Considerado um dos principais mecanismos para se obter software de qualidade

Leia mais

Gerenciamento de Configuração de Software

Gerenciamento de Configuração de Software Gerenciamento de Configuração de Software Prof. Ricardo Argenton Ramos [Baseado na apresentação do prof. Masiero ICMC-USP] Contexto para Gerência de Configuração 2 Problema dos Dados Compartilhados Desenvolvedor

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

Fundamentos da Informática

Fundamentos da Informática 1 PROCESSAMENTO DE DADOS I - FUNDAMENTOS A) CONCEITO DE INFORMÁTICA - é a ciência que estuda o tratamento automático e racional da informação. B) PROCESSAMENTO DE DADOS 1) Conceito Processamento de dados

Leia mais

ENGENHARIA DE SOFTWARE Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

ENGENHARIA DE SOFTWARE Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - MÓDULO 3 - MODELAGEM DE SISTEMAS ORIENTADA A OBJETOS COM UML 1. INTRODUÇÃO A partir de 1980, diversos métodos de desenvolvimento de sistemas surgiram para apoiar o paradigma orientado a objetos com uma

Leia mais

Introdução à Computação

Introdução à Computação Aspectos Importantes - Desenvolvimento de Software Motivação A economia de todos países dependem do uso de software. Cada vez mais, o controle dos processos tem sido feito por software. Atualmente, os

Leia mais

Gerência de Redes. Profa. Márcia Salomão Homci mhomci@hotmail.com

Gerência de Redes. Profa. Márcia Salomão Homci mhomci@hotmail.com Gerência de Redes Profa. Márcia Salomão Homci mhomci@hotmail.com Plano de Aula Histórico Introdução Gerenciamento de Redes: O que é Gerenciamento de Redes? O que deve ser gerenciado Projeto de Gerenciamento

Leia mais

Apresentação do Portfólio da ITWV Soluções Inteligentes em Tecnologia

Apresentação do Portfólio da ITWV Soluções Inteligentes em Tecnologia P ORTFÓ FÓLIO Apresentação do Portfólio da ITWV Soluções Inteligentes em Tecnologia versão 1.1 ÍNDICE 1. A EMPRESA... 3 2. BI (BUSINESS INTELLIGENCE)... 5 3. DESENVOLVIMENTO DE SISTEMAS... 6 3.1. PRODUTOS

Leia mais

Guia Técnicas de Teste Metodologia Celepar

Guia Técnicas de Teste Metodologia Celepar Guia Técnicas de Teste Metodologia Celepar Agosto de 2009 Sumário de Informações do Documento Documento: guiatecnicasteste.odt Número de páginas: 22 Versão Data Mudanças Autor 1.0 17/09/07 Criação. Ariel

Leia mais

Como posso gerenciar melhor os meus ativos de software e reduzir o risco de auditorias de conformidade?

Como posso gerenciar melhor os meus ativos de software e reduzir o risco de auditorias de conformidade? RESUMO DA SOLUÇÃO CA SERVICE MANAGEMENT - GERENCIAMENTO DE ATIVOS DE SOFTWARE Como posso gerenciar melhor os meus ativos de software e reduzir o risco de auditorias de conformidade? O CA Service Management

Leia mais

Sistema de Automação Comercial de Pedidos

Sistema de Automação Comercial de Pedidos Termo de Abertura Sistema de Automação Comercial de Pedidos Cabana - Versão 1.0 Iteração 1.0- Release 1.0 Versão do Documento: 1.5 Histórico de Revisão Data Versão do Documento Descrição Autor 18/03/2011

Leia mais

Modelagem de Sistemas Web. Ferramentas e metodologias para projeto de sistemas web

Modelagem de Sistemas Web. Ferramentas e metodologias para projeto de sistemas web Modelagem de Sistemas Web Aula 4 Ferramentas e metodologias para projeto de sistemas web Ferramentas e metodologias para projeto de sistemas web Ferramentas CASE Fontes: Sarajane e Marques Peres Introdução

Leia mais

Curso Técnico de Nível Médio

Curso Técnico de Nível Médio Curso Técnico de Nível Médio Disciplina: Informática Básica 3. Software Prof. Ronaldo Software Formado por um conjunto de instruções (algoritmos) e suas representações para o

Leia mais

Sistemas Distribuídos: Conceitos e Projeto Introdução a Tolerância a Falhas

Sistemas Distribuídos: Conceitos e Projeto Introdução a Tolerância a Falhas Sistemas Distribuídos: Conceitos e Projeto Introdução a Tolerância a Falhas Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.ufma.br

Leia mais

Manutenção e Ferramentas CASE. Marcos L. Chaim Segundo Bimestre 2003 Mestrado Profissional IC/Unicamp

Manutenção e Ferramentas CASE. Marcos L. Chaim Segundo Bimestre 2003 Mestrado Profissional IC/Unicamp Manutenção e Ferramentas CASE Marcos L. Chaim Segundo Bimestre 2003 Mestrado Profissional IC/Unicamp O que é manutenção de software? mudanças que devem ser feitas nos programas de computadores depois de

Leia mais

GERENCIAMENTO CENTRALIZADO DELL POWERVAULT DL 2000 BASEADO EM TECNOLOGIA SYMANTEC

GERENCIAMENTO CENTRALIZADO DELL POWERVAULT DL 2000 BASEADO EM TECNOLOGIA SYMANTEC GERENCIAMENTO CENTRALIZADO DELL POWERVAULT DL 2000 BASEADO EM TECNOLOGIA SYMANTEC RESUMO EXECUTIVO O PowerVault DL2000, baseado na tecnologia Symantec Backup Exec, oferece a única solução de backup em

Leia mais

MÓDULO 11 ELEMENTOS QUE FAZEM PARTE DO PROJETO DO SISTEMA

MÓDULO 11 ELEMENTOS QUE FAZEM PARTE DO PROJETO DO SISTEMA MÓDULO 11 ELEMENTOS QUE FAZEM PARTE DO PROJETO DO SISTEMA Através dos elementos que fazem parte do projeto do sistema é que podemos determinar quais as partes do sistema que serão atribuídas às quais tipos

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

Profs. Deja e Andrei

Profs. Deja e Andrei Disciplina Sistemas Distribuídos e de Tempo Real Profs. Deja e Andrei Sistemas Distribuídos 1 Conceitos e Projetos de Sistemas Distribuídos Objetivos: Apresentar uma visão geral de processamento distribuído,

Leia mais

Projeto de Arquitetura

Projeto de Arquitetura Projeto de Arquitetura Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 1 Objetivos Apresentar projeto de arquitetura e discutir sua importância Explicar as decisões de projeto

Leia mais

Manutenção desoftware. SCE 186- Engenharia de Software Profs. José Carlos Maldonado e Elisa Yumi Nakagawa 2 o semestrede2002

Manutenção desoftware. SCE 186- Engenharia de Software Profs. José Carlos Maldonado e Elisa Yumi Nakagawa 2 o semestrede2002 Manutenção desoftware SCE 186- Engenharia de Software Profs. José Carlos Maldonado e Elisa Yumi Nakagawa 2 o semestrede2002 CiclodeVidadeSoftware 2 ManutençãodeSoftware n Alterações efetuadas no software

Leia mais

Padrões de Contagem de Pontos de Função

Padrões de Contagem de Pontos de Função Padrões de Contagem de Pontos de Função Contexto Versão: 1.0.0 Objetivo O propósito deste documento é apresentar os padrões estabelecidos para utilização da técnica de Análise de Pontos de Função no ambiente

Leia mais

USE O PODER DA NUVEM. VEJA COMO A NUVEM PODE TRANSFORMAR SEUS NEGÓCIOS.

USE O PODER DA NUVEM. VEJA COMO A NUVEM PODE TRANSFORMAR SEUS NEGÓCIOS. USE O PODER DA NUVEM. VEJA COMO A NUVEM PODE TRANSFORMAR SEUS NEGÓCIOS. A computação em nuvem é uma mudança de paradigma no gerenciamento de TI e de datacenters, além de representar a capacidade da TI

Leia mais

Um cluster de servidores de email pode ser usado para servir os emails de uma empresa.

Um cluster de servidores de email pode ser usado para servir os emails de uma empresa. CLUSTERS Pode-se pegar uma certa quantidade de servidores e juntá-los para formar um cluster. O serviço então é distribuído entre esses servidores como se eles fossem uma máquina só. Um cluster de servidores

Leia mais

a) Teste das funções do sistema com outros sistemas b) Teste de componentes que em conjunto compõem a função do sistema

a) Teste das funções do sistema com outros sistemas b) Teste de componentes que em conjunto compõem a função do sistema Simulado CTFL- BSTQB Tempo de duração: 60 minutos 1. Considerando as seguintes afirmações: I. 100% de cobertura de sentença (comando) garante 100% de cobertura de desvio II. 100% de cobertura de desvio

Leia mais