SATI - Sistema de Atendimento Técnico de Informática

11.963 visualizações

Publicada em

O desempenho de uma empresa prestadora de serviços depende fortemente da capacidade profissional de seu quadro de colaboradores, de seus conhecimentos técnicos e também da sua infra-estrutura para apoiar as atividades profissionais.
Nesse sentido propomos um sistema de apoio ao atendimento e acompanhamento de solicitação de serviços, direcionado a empresas prestadoras de serviço de manutenção de computadores e equipamentos de informática, que possa lhe atribuir eficiência e organize as tarefas desenvolvidas em um roteiro previamente definido.

0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
11.963
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
345
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

SATI - Sistema de Atendimento Técnico de Informática

  1. 1. FACULDADE ALVORADA CURSO DE BACHARELADO EM SISTEMAS DE INFORMAÇÃO TIAGO MARTINS SILVA E HÉLIO ALVES DOS SANTOSSATI - Sistema de Atendimento Técnico de Informática Brasília – DF, Dezembro de 2011
  2. 2. ii TIAGO MARTINS SILVA E HÉLIO ALVES DOS SANTOSSATI - Sistema de Atendimento Técnico de Informática Monografia apresentada à Coordenação de Sistemas de Informação da Faculdade Alvorada para a obtenção do título de Bacharel em Sistemas de Informação. Orientadores: Prof. Elias Freitas da Silva Profa. Mestra Elizabeth d´Arrochella Teixeira Brasília – DF, Dezembro de 2011
  3. 3. iii EPÍGRAFE“A primeira regra de qualquer tecnologia utilizada nos negócios é que a automação aplicada a umaoperação eficiente aumentará a eficiência. A segunda é que a automação aplicada a uma operação ineficiente aumentará a ineficiência.” Bill Gates “A vida é uma escola; seria a morte um certificado de conclusão de curso?” Wagner Larini
  4. 4. iv DEDICATÓRIADedicamos este trabalho aos nossos familiares, amigos e irmãos que nos auxiliaramde forma direta e indireta na conclusão desta monografia, pois mesmo com ventosprofanos, estávamos alicerçados em nossos objetivos e quem se não eles para nosapoiarem nos momentos de pesquisa e sofrimento, aos professores Elias Freitas eElizabeth d´Arrochella nossos orientadores que nos deram um direcionamento e luzno que tange a realização deste trabalho com dedicação à orientação.
  5. 5. v AGRADECIMENTOS Agradecemos a Deus, por ter nos concedido ânimo para prosseguirmos anteas adversidades e habilidades de abstração que foram decisivas em cada etapa dotrabalho. A todos nossos familiares, amigos que nos apoiaram em momentos difíceis. Aos orientadores Elias Freitas e d’Arrochella, que foram essenciais ao nosconceder a direção que nos norteou rumo à conclusão deste trabalho.
  6. 6. vi RESUMO O desempenho de uma empresa prestadora de serviços depende fortementeda capacidade profissional de seu quadro de colaboradores, de seus conhecimentostécnicos e também da sua infra-estrutura para apoiar as atividades profissionais. Nesse sentido propomos um sistema de apoio ao atendimento eacompanhamento de solicitação de serviços, direcionado a empresas prestadorasde serviço de manutenção de computadores e equipamentos de informática, quepossa lhe atribuir eficiência e organize as tarefas desenvolvidas em um roteiropreviamente definido.PALAVRAS-CHAVE: Eficiência. Qualidade. Controle e Planejamento.
  7. 7. vii ABSTRACT The performance of a service company depends heavily on the professionalcompetence of its workforce, their technical expertise and also through its infra-structure to support professional activities. In this sense we intend to propose a system to support the care andmonitoring of service requests, aimed at companies providing maintenance serviceon computers, which can effectively assign and organize the tasks performed in apreviously defined. KEYWORDS: Efficiency. Quality. Control and Planning.
  8. 8. viii LISTA DE FIGURASOrganograma da Empresa 19Estrutura do Processo – Duas dimensões 24Disciplinas em uma iteração do RUP 30Elementos do RUP 31Diagramas da UML 2.0 34Processo de execução de um programa Java 40Diagrama de Casos de Uso 62Diagrama de classes 74Diagrama de casos de Uso implementado 75Diagrama Entidade Relacionamento 76Fluxo de navegação 81Interface de Login 82Layout principal do sistema 83Tela de consulta de Cliente 83Tela de Cadastro de Clientes 84Cadastro de Equipamento 84Ordem de serviço 85Consulta de OS 85Retorno da consulta 86Consulta uma OS 86Elaboração de Orçamento 87Resumo de orçamento 87
  9. 9. ix LISTA DE TABELASCronograma de Desenvolvimento da Monografia TCC1 22Lista dos UCs . 62UC001 Login 63UC002 Manter Cliente 63UC003 Manter Ordem de serviço 66UC004 Manter Orçamento 68UC005 Faturamento 69UC006 Manter Fornecedor 70UC007 Manter Usuário 72Regras de Negócio 72Lista de Mensagens 73Especificação da tabela 01 pessoa 77Especificação da tabela 02 Tipo de Pessoa 77Especificação da tabela 03 Ordem de Serviço 78Especificação da tabela 04 Equipamento 78Especificação da tabela 05 Tipo de Equipamento 79Especificação da tabela 06 Orçamento 79Especificação da tabela 07 Peças 79Especificação da tabela 08 Serviços 80Especificação da tabela 09 Status 80Especificação da tabela 10 Perfil 80Especificação da tabela 11 Sexo 80Especificação da tabela 12 UF 81
  10. 10. x LISTA DE ABREVIATURAABNT Associação Brasileira de Normas TécnicasAPI Application Programming InterfaceASM Automatic Storage ManagentementDBA DataBase AdministratorCCTA Central Computing and Telecommunications AgencyGoF Gang off FourIEEE Institute of Electrical and Electronic EngineersIEC International Electrotechnical CommissionIMAP Internet Message Access ProtocoISAM Inered Seqüencial Access MethodITIL Information Tecnology Infrastructure LibraryISO International Organization for StandardizationJ2ME Java 2 Mobile EditionJ2SE Java 2 Standard EditionJDK Java Development KitJRE Java Run EditionJSF JavaServer FacesJSP JavaServer PageJVM Java Virtual MachineMSF Microsoft Solutions FrameworkNNTP Network News Transfer ProtocolOBCD Open Data Base ConnectivityOGC Office of Government CommerceOMG Object Mangement GroupPC Personal CumputerPHP Hypertext PreProcessorPOP3 Post Office Protocol 3RAM Randomic Acess MemoryRUP Rational Unified ProcessSATI Sistema de Atendimento Técnico de InformáticaSCM Software Configuration Management
  11. 11. xiSDK Standard Development KitSEI Software Engineering InstituteSGBD Sistema de Gerenciamento de Banco de DadosSMS Short Message ServiceSNMP Simple Network Management ProtocolSQA Software Quality AssuranceSQL Structured Query LanguageTI Tecnologia da InformaçãoUML Unified Modeling LanguageXML Extensible Markup LanguageXP eXtreme Programming
  12. 12. 12 SUMÁRIO1. INTRODUÇÃO ......................................................................................................................................14 1.1. TEMA...................................................................................................................................................... 15 1.2. JUSTIFICATIVA ....................................................................................................................................... 15 1.3. FORMULAÇÃO DO PROBLEMA ............................................................................................................... 15 1.4. OBJETIVOS ............................................................................................................................................ 16 1.5. GERAL.................................................................................................................................................... 16 1.6. ESPECÍFICOS ......................................................................................................................................... 16 1.7. ORGANIZAÇÃO DO TRABALHO ............................................................................................................... 172. ANÁLISE INSTITUCIONAL .................................................................................................................18 2.1 EMPRESA E O SEU NEGÓCIO ................................................................................................................ 18 2.2 ORGANOGRAMA DA EMPRESA .............................................................................................................. 18 2.3 DESCRIÇÃO DAS NECESSIDADES .......................................................................................................... 19 2.4 SISTEMA DE INFORMAÇÃO EXISTENTE NA EMPRESA ........................................................................... 20 2.5 NORMAS DE FUNCIONAMENTO .............................................................................................................. 20 2.6 AMBIENTE TECNOLÓGICO EXISTENTE .................................................................................................. 203. CRONOGRAMA ...................................................................................................................................224. REFERENCIAL TEÓRICO ..................................................................................................................23 4.1 RUP - RATIONAL UNIFIED PROCESS .................................................................................................... 23 4.1.1 As Fases ...................................................................................................................................... 25 4.1.2 Disciplinas .................................................................................................................................... 27 4.1.3 Desenvolvimento Iterativo e Incremental ................................................................................ 30 4.2 UML - UNIFIED MODELING LANGUAGE ..................................................................................... 31 4.2.1 Elementos Básicos do Modelo .................................................................................................. 32 4.2.2 Relacionamentos ........................................................................................................................ 33 4.2.3 Diagramas .................................................................................................................................... 34 4.3 JAVA ..................................................................................................................................................... 39 4.4.1 ServLets e JSP ............................................................................................................................ 41 4.5 PHP - HYPERTEXT PREPROCESSOR ................................................................................................... 43 4.6 DESENVOLVIMENTO AGIL ............................................................................................................. 44 4.7 BANCO DE DADOS ........................................................................................................................... 47 4.7.1 Modelo de dados......................................................................................................................... 47 4.7.2 SGBD ............................................................................................................................................ 49 4.7.3 MYSQL ......................................................................................................................................... 51 4.7.4 SQL ( Strutured Query Language) ........................................................................................... 52
  13. 13. 13 4.7.5 ORACLE ....................................................................................................................................... 53 4.7.6 ORACLE 10G EXPRESS EDITION ......................................................................................... 575. PROPOSTA DO NOVO SISTEMA......................................................................................................59 5.1 DESCRIÇÃO DO SISTEMA PROPOSTO ................................................................................................... 59 5.2 RESULTADOS ESPERADOS.................................................................................................................... 59 5.3 RESTRIÇÕES DO SISTEMA PROPOSTO ................................................................................................. 60 5.4 ANÁLISE DE VIABILIDADE ECONÔMICA DO NOVO SISTEMA .................................................................. 60 5.5 ÁREAS AFETADAS PELO NOVO SISTEMA ............................................................................................. 60 5.6 IMPLEMENTAÇÕES FUTURAS................................................................................................................. 606. DOCUMENTOS DE ANALISE ............................................................................................................61 6.1 VISÃO MACRO DOS ATORES ................................................................................................................. 61 6.2 IDENTIFICAÇÃO DOS ATORES ................................................................................................................ 61 6.3 TABELA DE CASOS DE USO ................................................................................................................... 61 6.4 DIAGRAMA DE CASOS DE USO .............................................................................................................. 62 6.5 DESCRIÇÃO DETALHADA DOS CASOS DE USO ..................................................................................... 63 6.6 DIAGRAMA DE CLASSE ........................................................................................................................... 73 6.7 ESCOPO DO PROTÓTIPO........................................................................................................................ 75 6.8 BANCO DE DADOS ................................................................................................................................. 75 6.8.1 Modelo Entidade Relacionamento ........................................................................................... 75 6.8.2 Especificação das tabelas ......................................................................................................... 76 6.9 ÁRVORE DO SISTEMA ............................................................................................................................ 81 6.10 ESPECIFICAÇÕES FÍSICA ....................................................................................................................... 82 6.10.1 Layout das Principais Telas da Aplicação ............................................................................... 82 6.11 SEGURANÇA FÍSICA E LÓGICA .............................................................................................................. 88 6.12 NORMA DE SEGURANÇA FÍSICA ............................................................................................................ 88 6.13 NORMAS DE SEGURANÇA LÓGICA ........................................................................................................ 887. PLANO DE IMPLANTAÇÃO ...............................................................................................................89 7.1 HARDWARE ............................................................................................................................................ 89 7.2 SOFTWARE ............................................................................................................................................ 898. CONCLUSÃO .......................................................................................................................................909. REFERENCIAS BIBLIOGRÁFICAS ...................................................................................................91
  14. 14. 14 1. INTRODUÇÃO Segundo MORIMOTO (2010), o surgimento de novos equipamentos e oaprimoramento dos existentes, ocasionado pela constante evolução tecnológica,aliado a queda de preços e às facilidades de financiamento, está proporcionando umaumento significativo no consumo de equipamentos de informática, mesmo com aqueda de seus preços, estes ainda representam um desembolso muito grande paraa maioria das pessoas. Segundo BALMMER (2010), presidente da Microsoft, o Brasil será nospróximos três anos, o 3º maior mercado de computadores do mundo. Confirmada talexpectativa, este mercado demandará cada vez mais de técnicos e prestadores deserviços de manutenção de equipamentos de informática, visto que estesequipamentos apresentam defeitos e a simples substituição dos mesmos ainda estáfora do alcance da maioria dos consumidores, assim sendo, a manutenção estarápresente nesse mercado por muito tempo. Segundo VASCONCELOS (2010), faz-se necessária a capacitação,qualificação e o aprimoramento dos prestadores de serviços, tendo em vista que oaquecimento do mercado ocasionará o acirramento da concorrência com a criaçãode muitas empresas para explorar este mercado e, permanecerão aquelas que semostrarem eficientes, prestarem um serviço de qualidade e com um custo acessível. Vindo ao encontro destas demandas, vislumbramos a necessária da criaçãode um sistema que possa conferir a estas prestadoras de serviço, agilidade, controlee acompanhamento eficiente das ordens de serviço de uma forma automatizada,sem o preenchimento de formulários físicos (papel), que são passíveis de perda,erros formais e acréscimo de custos desnecessários. Propomos neste trabalho apresentar uma solução de baixo custo, pois trata-se de um aplicativo de distribuição gratuita, que contemple o cadastramento declientes e fornecedores, para a geração de ordens de serviço, emissão deorçamento e acompanhamentos de serviços.
  15. 15. 15 1.1. Tema Desenvolver um protótipo de software para o registro de ordens de serviços,geração de orçamento, acompanhamento, interação com clientes e colaboradores.Atribuir agilidade e facilitar as tarefas inerentes ao trabalho de manutenção deequipamentos de informática. 1.2. Justificativa Segundo KAPLAN (1997), às empresas da era da informação são exigidasagilidade e confiabilidade. Em um mercado cada vez mais competitivo não se podeconduzir as atividades sem um processo claro e bem estruturado com atribuiçõesbem definidas e tarefas sequenciadas. Para auxiliar pequenas empresas a alcançar este grau de excelência,propomos um sistema para reger rotinas e procedimentos e acima de tudo umcontrole sobre a recepção e destinação dos equipamentos recebidos paramanutenção, garantir qualidade e agilidade às demandas dos clientes. 1.3. Formulação do Problema Segundo a (ANSI/IEEE STD 100_1984), a heurística trata de métodos oualgoritmos exploratórios para solução de problemas. As soluções são buscadas poraproximações sucessivas, avaliando-se os progressos alcançados, até que oproblema seja resolvido. Em nossas visitas à empresa de manutenção de equipamentos deinformática SHIFT Computadores (empresa fictícia), para acompanharmos as rotinasde atendimento. Mesmo com todo o desenvolvimento heurístico dos processos nodecorrer dos anos, constatou-se que não há um procedimento definido para arecepção de equipamentos, elaboração de orçamentos, controle do equipamento emfase de manutenção e entrega ao cliente, gerando instabilidade no fluxo do processolocal, perda de prazos nas devoluções dos equipamentos e insatisfação dos clientes.
  16. 16. 16 Com base na reunião dos fatores existentes na SHIFT Computadoresatualmente, surgiu a necessidade da criação de uma ferramenta que viesse gerirtodos esses processos e aspectos até então arcaicos e que pudesse contribuir parauma melhora considerável na rotina de trabalho dos funcionários e um melhoratendimento ao cliente, diminuindo assim a entropia dentro da empresa eaumentando a sua capacidade de competir em um mercado cada vez mais exigenteseletivo. 1.4. Objetivos Abaixo estão descritos os objetivos: geral e específicos cujodesenvolvimento do sistema pretende suprir. 1.5. Geral Desenvolver uma ferramenta para o registro de equipamentos recebidos noatendimento e chamadas para manutenção, gerando orçamentos e encaminhá-losaos clientes. 1.6. Específicos Os objetivos específicos do trabalho são: a) Criar através de um sistema informatizado, uma rotina para recebimentos de equipamentos e atendimentos aos clientes; b) Possibilitar a geração de orçamentos de forma online e repassá-lo ao cliente, por e-mail; c) Manter um controle dos estágios das ordens de serviço de forma que em uma consulta ao sistema possa-se obter a informação precisa de um equipamento específico; d) Obter relatórios dos serviços prestados em um período e confrontá-los com as entradas no caixa da empresa; e) Cadastro de clientes e fornecedores.
  17. 17. 17 1.7. Organização do Trabalho Este trabalho está organizado da seguinte forma: O primeiro capítulo descreve de uma forma geral o tema proposto com umbreve relato do processo, a justificativa da escolha do tema e o problema que vai serresolvido. O segundo capítulo aborda toda a análise institucional da empresa, oorganograma da empresa, descrevendo as necessidades do sistema, os métodosadotados atualmente na empresa e o ambiente tecnológico existente onde o sistemaserá implantado. O terceiro capítulo detalha o cronograma das atividades realizadas nodecorrer do projeto: levantamento teórico, análise, projeto. No quarto capítulo encontra-se o referencial teórico, no qual são abordadasas tecnologias e processos envolvidos neste trabalho. O quinto capítulo é utilizado para apresentar o sistema proposto e suasmotivações. O sexto capítulo aborda a documentação de análise do sistema. O sétimo capítulo é utilizado para descrever o plano de implantação dosistema, no qual é descrito o conjunto de tarefas necessárias para instalar e testar oproduto desenvolvido de modo que ele possa ser efetivamente transferido comsucesso ao cliente, garantindo uma implantação bem sucedida para o novo sistemacom o mínimo de impacto. O oitavo capítulo é utilizado para conclusão do trabalho e por fim sãorelacionadas as referências bibliográficas no último capítulo.
  18. 18. 18 2. ANÁLISE INSTITUCIONAL Segue abaixo a visão detalhada do ramo, negócio e aspectos históricos daSHIFT Computadores.2.1 Empresa e o Seu Negócio Atualmente a SHIFT Computadores, uma empresa fictícia, que vem seconsolidando no mercado como prestadora de serviços técnicos em informática paradiversos tipos de clientes, desde clientes comuns até empresas privadas depequeno porte e órgãos públicos, sua sede e principal área de atuação está situadaem Brasília abrangendo recentemente cidades do entorno como Luziânia e ÁguasLindas de Goiás. No que se refere ao negócio, ela presta serviços relacionados a infra-estrutura de redes cabeadas e wireless, link de internet via radio, montagem,manutenção e configuração de microcomputadores e servidores em diversasplataformas , além de suporte a usuários, help desk e fornecedora de peças dehardware. A SHIFT Computadores, é uma empresa com mais de 12 anos de mercado,vem atuando como apoio e suporte para diversas empresas de pequeno porte emicro empresas que desejam se estruturar, visando sempre um atendimento dequalidade e satisfação do cliente.2.2 Organograma da Empresa Abaixo na figura 1, segue o organograma que num modo holísticorepresenta toda a estrutura hierarquia da SHIFT Computadores, composta de 20funcionários, com as seguintes funções: Gerente, sócio majoritário da empresa, queexerce a administração financeira e negocial, responsável pela relação comercial daempresa com os clientes institucionais; Técnicos de campo, tem a missão de efetuaro atendimento local aos clientes institucionais, são capacitados em manutenção deequipamentos de informática e infra-estrutura de rede de computadores; Técnicos
  19. 19. 19de loja, são os responsáveis pela manutenção dos equipamentos entregues nas loja,são capacitados em manutenção de equipamentos de informática; Atendentes,prestam serviço na loja e são responsáveis pelo atendimento dos clientes noambiente da empresa e através dos contatos telefônicos. Figura 1- Organograma da Empresa2.3 Descrição das Necessidades Segundo PRESSMAN (1995), o escopo definido para o software proporcionauma direção, mas uma definição detalhada do domínio da informação e da funçãodo software é necessária antes que o trabalho se inicie. A SHIFT Computadores hoje, necessita de uma ferramenta que cuide dagestão de seus processos mais simples no que tange ao controle dos equipamentosque entram e que saem da empresa, com um padrão elevado de otimização,eficiência e eficácia no resultado final. Tendo um controle mais concreto por partedas gerencias da empresa, através de alimentação de dados pelo usuário, busca,edição, recuperação dos dados, geração de relatórios personalizados e agilidade nacomunicação com o cliente sobre seu equipamento. Desta forma o SATI objetiva a otimização dos processos, como uma forma detotal gestão e apoio a empresa em questão.
  20. 20. 202.4 Sistema de Informação Existente na Empresa Atualmente na SHIFT Computadores, todos os procedimentos que sãorealizados, são dados em papel para documentos fiscais, ordem de serviços e osdemais do gênero, relatórios são realizados usando o aplicativo Microsoft OfficeExcel 2007. Não há nenhum controle sobre as comunicações entre os setores daempresa, há apenas a passagem física de uma das vias da ordem de serviço doatendimento ao responsável pelo serviço.2.5 Normas de Funcionamento Com base na análise feita, constata-se que serão necessárias algumasexigências e restrições mínimas para que o sistema tenha pleno funcionamento eopere de modo estável, sendo estes alguns dos principais requisitos: éimprescindível que o usuário tenha acesso a intranet da empresa e acesso aosistema através de login e senha, para que possa efetuar a inserção dos dados nabase em tempo real. Deverá existir segregação de funções, sendo que o usuário denível gerencial terá acesso a funções ocultas a usuários comuns (técnicos eatendentes), com a finalidade de exercer o controle dos processos e a obtenção derelatórios analíticos de desempenho e gestão.2.6 Ambiente Tecnológico Existente A SHIFT Computadores compreende um ambiente tecnológico comcomputadores instalados e configurados em uma rede local, uma central deprocessamento, onde nela abriga os mais diversos tipos de servidores convenientesao negócio da empresa como: servidor de aplicativos para os técnicos, servidor deroteamento de internet para os clientes utilizando o S.O Microtik (sistema baseadoem Linux), organizando-se através de uma aerovia (grande intranet), plataformaLinux, Máquinas virtuais além de 10 máquinas com Windows 7 profissional. O hardware dos servidores é configurado com processadores Intel core i5450m, 4GB de memória RAM e 1T de HD, já as maquinas que possuem Windows,
  21. 21. 21são configuradas com 2GB de memória RAM, AMD Semprom e 300 GB HD além de6 impressoras multifuncionais HP DeskJet F4480.
  22. 22. 22 3. CRONOGRAMA Na tabela 1 é ilustrado o cronograma de planejamento deste trabalho,dando-se do inicio ao fim, como uma forma de prever e nos situarmos em relação aotempo necessário para a realização desta monografia. Tabela 1 - Cronograma de Desenvolvimento da Monografia TCC1
  23. 23. 23 4. REFERENCIAL TEÓRICO Neste capítulo descreveremos o processo de engenharia de software RUP,a linguagem para modelagem de sistemas UML, as linguagens de programaçãoJAVA e PHP, o processo de desenvolvimento AGIL, os conceitos de Banco dedados e os SGBDs MySGL e ORACLE, e o embasamento teórico que servirão dearcabouço para o desenvolvimento do sistema proposto.4.1 RUP - Rational Unified Process Segundo KRUCHTEN (2003), RUP é um processo de engenharia desoftware desenvolvido e comercializado pela Rational Software, bastante utilizado nodesenvolvimento de software de alta qualidade e corresponde a um mododisciplinado de ordenar de gerenciar tarefas e responsabilidades em uma empresade desenvolvimento. O objetivo desse processo é produzir, dentro de prazo eorçamento previstos, software de alta qualidade que satisfaça às necessidades deseus usuários finais. O RUP é um processo de desenvolvimento de software iterativo eincremental. É descrito em vários livros e artigos. Uma das maiores fontes deinformações é o próprio produto IBM RUP, que contém guias detalhados, exemplose modelos cobrindo todo o ciclo de vida do software; Segundo KRUCHTEN (2003) o RUP é um processo de engenharia desoftware bem definido e bem estruturado. O RUP define claramente quem éresponsável pelo que, como as coisas devem ser feitas e quando fazê-las. O RUPtambém provê uma estrutura bem definida para o ciclo de vida de um projeto,articulando claramente os marcos essenciais e pontos de decisão. Segundo a IBM Rational (2001), o RUP é também um produto de processoque oferece uma estrutura de processo customizável para a engenharia de software.O produto IBM RUP suporta a customização e autoria de processos, e umavariedade de processos, ou configuração de processos, podem ser montadas nele.
  24. 24. 24Essas configurações do RUP podem ser criadas para suportar equipes grandes epequenas e técnicas de desenvolvimento disciplinadas ou menos formais. O produtoIBM RUP contém várias configurações e visões de processos prontas que guiamanalistas, desenvolvedores, testadores, gerentes de projeto, gerentes deconfiguração, analistas de dados, e outros membros da equipe de desenvolvimentoem como desenvolver o software. Ele tem sido utilizado por muitas companhias emdiferentes setores da indústria. Para KRUCHTEN (2003), por ser flexível e configurável, o RUP pode serutilizado em projetos de pequeno, médio e grande porte, o RUP pode ser utilizadoem um projeto de uma semana com uma equipe de uma pessoa. Para KENDALL (2004), o Processo Unificado é um conjunto de atividadesexecutadas segundo uma arquitetura robusta e regras bem definidas, paratransformar os requisitos do cliente em um produto de software, neste contexto oRUP é uma versão especializada do Processo Unificado. O RUP faz uso extensivoda Unified Modelin Languagen (UML), e seus modelos contextualizam o processo dedesenvolvimento de software, concebendo uma simplificação da realidade que ajudaa entender alguns aspectos complexos inerentes a sistemas de software.. Para KRUCHTEN (2003), RUP é uma guia para uso efetivo da UML paramodelar. A figura 2 apresenta a arquitetura global do RUP, onde pode serobservadas suas dimensões ou estruturas. Figura 2 Estrutura do Processo – Duas dimensões. Fonte: Kruchten - 2004
  25. 25. 254.1.1 As Fases Segundo KRUCHTEN (2003) O RUP é composto de 04 fasescompreendidas em:Iniciação: Refere-se basicamente a definição do escopo; estimar o custo geral e osriscos em potencial. As atividades desenvolvidas são: definir os critérios de sucessode projeto, riscos, recursos necessários e data de realização das principais etapas,delimitar o escopo do projeto, identificar os atores que interagem com o sistema,identificar as interações dos atores com o sistema (casos de uso). Os resultados(artefatos) esperados nesta fase são: documento de visão (visão geral dosrequisitos, características e restrições essenciais do projeto); modelo inicial de casosde uso; glossário do projeto; definição de objetivos e viabilidade do projeto, critériosde sucesso, e prognóstico financeiro; avaliação inicial de riscos; plano de projeto,com fases e interações; modelo de negócios, se necessário; um ou vários protótipos.É também nesta fase que se obtêm a concordância quanto à definição de escopo,estimativa de custos e cronograma;Elaboração: Retrata como fazer; qual arquitetura será utilizada; em que ambiente aaplicação será executada; como os testes serão executados, é nesta fase que sãoanalisados os riscos de requisitos, ricos tecnológicos, ou seja, a capacidade dasferramentas disponíveis, riscos de habilidade dos integrantes do projeto, objetivandominimizá-los. Construir protótipos executáveis, em uma ou mais interações; atacaros casos de uso críticos, que expõe os maiores riscos técnicos; construir protótiposevolucionários ou descartáveis, com objetivo de analisar custos-benefícios,demonstrar para investidores, clientes e usuários. Os resultados (artefatos)esperados são: modelo de casos de uso; requisitos não funcionais; descrição daarquitetura do software; protótipos arquiteturais executáveis; revisão da visão denegócios e lista de riscos; plano detalhado de desenvolvimento do projeto, cominterações e critérios de avaliação; plano de processo de desenvolvimento; manualde usuário preliminar. É nesta fase que algumas questões devem ser respondidas,tais como: A visão do produto é estável? A arquitetura é estável? A demonstraçãoexecutável mostrou que os elementos de maior risco foram abordadossatisfatoriamente? O plano de desenvolvimento está suficientemente detalhado e
  26. 26. 26preciso? O plano é consistente e coerente? Todos os interessados concordamquanto à coerência entre visão, plano e arquitetura? Os custos planejados eexecutados são aceitáveis? Ao final desta fase a engenharia é consideradacompleta, por isso esta é considerada a fase mais crítica;Construção: Contempla o desenvolvimento ou a construção do software em si.Incluem-se nesta fase também, o desenvolvimento de versões demonstrativas oubeta. O principal objetivo da fase de construção é desenvolver de modo iterativo eincremental um produto completo que esteja pronto para a transição. Isso implicadescrever os casos de uso restantes e outros requisitos, incrementar o projeto,concluir a implementação e testar o software. Essas atividades são baseadas naarquitetura definida na fase de elaboração e podem ser executadas com um certoparalelismo. O paralelismo pode acelerar bastante as atividades dedesenvolvimento; mas também aumenta a complexidade do gerenciamento derecursos e da sincronização dos fluxos de trabalho. Uma arquitetura sofisticada éessencial para atingir um paralelismo significativo e pode ser obtidos com aaplicação dos padrões de requisitos, análise e projeto;Transição: Consiste na implantação da versão final do software ou produto. Nestafase, o software é disponibilizado aos usuários. Após ter sido colocado em uso,surgem novas considerações que vão demandar a construção de novas versõespara permitir ajustes do sistema, corrigir problemas ou concluir algumascaracterísticas que foram postergadas. É importante realçar que dentro de cadafase, um conjunto de iterações, envolvendo planejamento, levantamento derequisitos, análise, projeto e implementação e testes, é realizado. Contudo, de umaiteração para outra e de uma fase para a próxima, a ênfase sobre as váriasatividades muda, a fase de transição concentra-se nos testes, visando garantir que osistema possui o nível adequado de qualidade. Além disso, os usuários devem sertreinados, características ajustadas e elementos esquecidos adicionados. Segundo KRUCHTEN (2003), cada fase tem uma ou mais iterações, com focoem disponibilizar os produtos e documentos necessários para alcançar seusobjetivos.
  27. 27. 274.1.2 Disciplinas Segundo KENDALL (2004), para usufruir das principais características doprocesso de desenvolvimento com o RUP devem ser observadas suas disciplinas:Modelagem do Negócio: Avalia a estrutura e a dinâmica da organização; identificaos problemas e respectivas melhorias e documentar os seus processos. Estes sãodocumentos do modelo de Casos de Uso do Negócio (Business Use Cases). Oobjetivo desta disciplina é assegurar um entendimento comum entre todos osinteressados a respeito de qual processo empresarial precisa receber apoio naorganização. Os casos de uso do negócio são analisados para se entender como onegócio deve apoiar os processos empresariais. Muitos projetos podem não utilizaras atividades de modelagem do negócio no seu processo, principalmente nos casosem que o domínio do negócio já é muito bem conhecido por todos os participantesdo projeto (principalmente os engenheiros) ou então, quando o negócio é simples epequeno;Requisitos: Apura-se as necessidades do cliente para o projeto; define-se os limitesdo sistema. As atividades desta disciplina são realizadas a fim de se descrever oque o sistema deve fazer, assim como permitir aos desenvolvedores e clientesavaliarem esta descrição. Tais atividades englobam identificar, organizar, edocumentar as funcionalidades exigidas, assim como rastrear e documentarmudanças e decisões. Assim como a Modelagem do Negócio, existe maiorconcentração de esforços para a realização das atividades inerentes a estadisciplina nas duas primeiras fases do processo, Concepção e Elaboração. Umdocumento de Visão é criado e a partir deste, são definidas as necessidades dosinteressados no sistema e identificados os atores. Ao longo do projeto, cada caso deuso é descrito em detalhes, mostrando interação com atores e suas funcionalidades,assim como os fluxos das regras do negócio. São descritas exigências não-funcionais em especificações adicionais. Os casos de uso vão funcionar como umguia ao longo de todo o ciclo de desenvolvimento do produto de software;Análise e Design: Traduz os requisitos ou necessidades do projeto em um modelode arquitetura de software. As atividades da disciplina de Análise & Projeto são
  28. 28. 28executadas para demonstrar como o sistema será concebido na fase deimplementação. O projeto de um sistema deve garantir que o sistema a serconstruído execute as tarefas e funções especificadas nos casos de uso, contemplerequisitos não-funcionais, e seja flexível às mudanças. As atividades desta disciplinaresultam em um Modelo de Projeto e opcionalmente em um Modelo de Análise. Omodelo de projeto serve como uma abstração do código fonte: um guia ou mapa decomo o código deve ser estruturado e escrito. Todas as soluções de análise eprojeto do sistema devem levar em conta a arquitetura do sistema, foco principal dasprimeiras iterações do ciclo de vida do sistema. Desde o início, deve-se estabeleceruma arquitetura robusta de forma que se possa projetar um sistema que seja fácil demanter, construir e evoluir. Deve-se então ajustar o projeto de forma que se adapteao ambiente de implementação, projetando o sistema para apresentar bomdesempenho, ser robusto, escalável, e ser facilmente testável, entre outrasqualidades. O objetivo do projeto, por outro lado, é adaptar os resultados da análiseàs restrições impostas pelos requisitos não funcionais, pelo ambiente deimplementação, pelos requisitos de desempenho, e assim por diante. O projeto é,portanto, um refinamento da análise e objetiva a otimização do projeto do sistema aomesmo tempo em que garante a cobertura total dos requisitos;Implementação: As atividades desta disciplina compreendem definir a organizaçãodo código em subsistemas, implementar e testar componentes, e integrar osresultados, formando um sistema executável. O RUP propõe a prática dereutilização de componentes existentes, acelerando a produtividade. Componentessão estruturados em subsistemas da implementação, podendo ser heterogêneos(produzidos com diferentes tecnologias);Testes: Executar os testes do software; identifica e documenta as possíveis falhasencontradas; valida a construção do sistema de acordo com a arquitetura proposta.Esta atividade e responsável por verificar as funcionalidades do sistema, aintegração de objetos e componentes, a validade dos requisitos implementados,assim como, assegurar que os defeitos encontrados sejam solucionados. De acordocom a abordagem iterativa proposta pelo RUP, os testes são realizados ao longo detodo ciclo de vida do software, e não apenas no final. Isto permite encontrar defeitostão logo quanto possível, reduzindo custos de eventuais correções posteriores. Os
  29. 29. 29testes são executados considerando as seguintes dimensões de qualidade:confiabilidade, funcionalidade, e desempenho da aplicação e do sistema. Umaprática importante quando se usa uma abordagem iterativa é a automatização detestes, pois permite regressão ao fim de cada iteração, assim como, validar cadanova versão do produto por meio de critérios estabelecidos;Implantação: esta disciplina agrupa as atividades relacionadas ao lançamento eimplantação do software, tais como: produzir lançamentos externos (para o cliente);"empacotar", distribuir e instalar o software, e; oferecer ajuda e assistência aosusuários. Em muitos casos, a disciplina também inclui atividades como planejar egerenciar testes beta; migração de software ou dados existentes e, condução àaceitação formal do software pelos interessados;Gerência de Mudanças e Configuração: Controla os artefatos e códigos-fontesproduzidos no projeto; controla as versões; controla as mudanças solicitadas pelocliente. Esta disciplina engloba o controle dos diferentes artefatos produzidos em umprojeto. Em conjunto com a disciplina de Ambiente, ela contém as atividadesreferentes ao gerenciamento de versão e configuração do software: base deconhecimentos, repositórios de dados e informações, e controle de mudanças doprojeto;Gerência do Projeto: Realiza o planejamento e controle das atividades do projeto;realiza também o acompanhamento das atividades dos envolvidos no projeto eindica ao cliente o andamento do projeto. Esta disciplina inclui atividades comobalancear objetivos, gerenciar riscos e contornar problemas a fim de que se possaentregar um software com sucesso. O Processo Unificado da Rational oferecealguns recursos para a realização das atividades: um framework de Gerência deProjetos, com diretrizes para planejar, alocar pessoal, executar e monitorar projetos,e; um framework de Gerência de Riscos. A disciplina não é uma receita parasucesso, mas apresenta uma abordagem que pode melhorar a tarefa;Ambiente: Mantém o ambiente de desenvolvimento de software disponível eadequado às necessidades. E também define como o RUP foi configurado para serutilizado no projeto.
  30. 30. 304.1.3 Desenvolvimento Iterativo e Incremental Para KENDALL 2004, a construção com RUP é iterativa e incremental ondeo projeto é dividido em pequenas fases ou “iterações”, conforme a figura 3. Portanto,as disciplinas destacadas na figura 3 serão executadas em um ciclo ou iterações. Aofinal da execução de cada iteração é gerada uma versão do sistema, ou seja,algumas funcionalidades do sistema são liberadas para o uso e a cada nova iteraçãosão oferecidos incrementos funcionais ao sistema. Figura 3 Disciplinas em uma iteração do RUP Fonte: Kruchten – 2004 Para a execução de todo o processo, o RUP estabelece cinco elementosconforme figura 4: papel, atividades, artefatos, fluxos de trabalho e as disciplinas,descritas anteriormente.  Papel: Indica as responsabilidades a serem desempenhadas pelos indivíduos envolvidos no projeto;  Atividade: Um trabalho a ser executado pelo indivíduo de acordo com o papel atribuído a ele;  Artefatos: Um conjunto de documentos de entrada e saída para o apoio aos indivíduos na condução de suas atividades no projeto.;
  31. 31. 31  Fluxos de Trabalho: Sequência lógica das atividades desempenhada pelos indivíduos. Figura 4 Elementos do RUP Fonte: Kruchten – 2004 Na próxima seção faremos uma breve descrição da UML - Unufied ModelingLanguagem.4.2 UML - Unified Modeling Language Segundo GUEDES (2004), a “UML (Unified Modeling Language ouLinguagem de Modelagem Unificada) é uma linguagem visual utilizada para modelarsistemas computacionais por meio do paradigma de “Orientação a Objetos.”, amodelagem visual é o processo de se obter informação a partir do modelo e exibi-lasgraficamente, usando um conjunto de padrões de elementos gráficos. Para se atingiro objetivo primordial da modelagem visual, que é a comunicação, e usufruir de seusbenefícios, é de fundamental importância a existência de padrões definidos edifundidos.
  32. 32. 32 Segundo DEBONI (2003), esta comunicação poderia ser feita de forma nãovisual (textual), mas, em geral, o processo visual permite a observação dasinformações de forma mais simplificada, precisa e rápida. Ao que parece, aspessoas conseguem compreender melhor a complexidade quando é apresentadavisualmente, e não escrita ou textualmente. Ao gerar modelos visuais de umsistema, pode-se mostrar como ele funciona em diversos níveis. Podem sermodeladas as interações entre os usuários e o sistema, as interações dos objetosdentro de um sistema e, até mesmo, as interações entre sistemas, se necessário. MELO (2004) afirma, “uma imagem vale mais que mil palavras”, seguindoesta afirmação a imagem de uma bicicleta é mais expressiva que a descrição desuas partes componentes algo que poderia ser extenso e confuso, entretanto umaimagem não pode ser simples em demasia para não perder sua expressividade,nesse sentido baseia-se a modelagem de software. Segundo GUEDES (2004), a UML foi uma fusão, em 1996, de três métodosde modelagem o método Booch de Grady Boch, o método OMT de Ivar Jacobson eo método OOSE de James Rumbaugh, o trabalho dos três metodologista demodelos ficou conhecido popularmente com “ Os três amigos” , que resultou nolançamento da primeira versão da UML e em 1997 foi adotada pela OMG (ObjectManagemente Group). Segundo MELO (2004) a estrutura da UML conduz à criação e leitura deseus modelos mas não estabelece quando nem quais deles devem ser criados,deixando essa responsabilidade para o processo de desenvolvimento. Desta formaa UML torna-se independente de processos, pois qualquer um deles pode usá-la. Segundo MELO (2004), para modelar um sistema a UML trabalha com:elementos básicos do modelo, relacionamentos, diagramas e regras de formação.4.2.1 Elementos Básicos do Modelo MELO (2004), cita alguns elementos:  Ação: unidade básica de especificação de comportamento;
  33. 33. 33  Artefato: pedaço físico de informação que é usado ou produzido por um processo de desenvolvimento;  Atividades: é a especificação de um comportamento parametrizado, expresso como um fluxo de execução;  Caso de Uso: representa a funcionalidade provida por um sistema;  Classe: a descrições de um conjunto de objetos que compartilham dos mesmos atributos;  Classes Ativas: representa uma atividade de controle;  Colaboração: indica as instâncias e cooperação de elementos envolvidos na mesma tarefa;  Componente: parte significativa de um sistema modularizado;  Estado: condição durante a vida de um objeto;  Interação: é um padrão de comunicação com o objetivo de realizar algum propósito;  Interface: especifica as operações externamente visíveis de uma classe ou componente;  Nota: símbolo gráfico contendo uma informação;  Pacote: é o agrupamento de elementos de modelo;4.2.2 Relacionamentos Segundo MELO (2004), os relacionamentos realizam a ligação, entre si, doselementos do modelo, são eles:Dependência: é um relacionamento entre dois ou mais elementos de modelagem,que indica que uma mudança em um elemento afetará o outro;Associação: é um relacionamento entre dois ou mais classificadores que envolvemconexões entre suas instâncias;Generalização: é um relacionamento entre um elemento mais genérico e outro maisespecífico. O elemento mais específico pode conter apenas informações adicionaisque o distingue do genérico.
  34. 34. 34Realização: é um relacionamento entre uma especificação e sua implementação.4.2.3 Diagramas Segundo GUEDES (2004) a UML é composta de 13 diagramas queobjetivam fornecer múltiplas visões dos sistemas a serem modelados, analisando-oe modelando-o sob diversos aspectos e de forma complementar. Cada um destesdiagramas analisa o sistema sob uma determinada ótica. A utilização destesdiagramas permite que falhas sejam detectadas, diminuindo assim a possibilidadede erros futuros e minimizando os riscos e os custos do desenvolvimento dosistema. Os diagramas da UML 2.0 dividem-se em Diagramas Estruturais eDiagramas Comportamentais, sendo que estes últimos possuem ainda umasubdivisão representada pelos Diagramas de Interação, conforme visto na Figura 4. Segundo MELO (2004), os diagramas estruturais apresentam ascaracterísticas imutáveis do sistema, são também conhecidos como diagramasestáticos, já os comportamentais ou dinâmicos mostram como os sistemasrespondem às requisições ou como o mesmo evolui durante o tempo. Figura 5 Diagramas da UML 2.0 Fonte: GUEDES, 2004, p.35
  35. 35. 354.2.3.1 Diagrama de Classe Segundo GUEDES (2004), as classes são matrizes de objetos e descrevemum conceito abstrato do domínio do problema enquanto um objeto representa umelemento desse conceito, que é utilizado no sistema, de forma concreta. O diagramade classe serve de base para os outros tipos de diagramas. No Diagrama deClasses, cada classe é representada por um retângulo no qual são descritos o nomeda classe, os atributos e as propriedades. Os relacionamentos entre as classespodem ser definidos como:Dependência: corresponde ao relacionamento mais fraco entre duas classes. Érepresentada por uma seta tracejada ligando as classes e partindo da classedependente para a classe independente. A dependência não indica como ocorreessa dependência, mas serve para indicar que essas classes devem participarjuntas do sistema;Associação: as associações aparecem quando há um nível maior de envolvimento,e bem mais definido que na dependência entre as classes. Na associação, asclasses estão ligadas semanticamente umas às outras, ou seja, as classes sãoindependentes, mas guardam algum tipo de significado na sua relação. Essa relaçãopermite a troca de mensagens entre as classes na ajuda para o cumprimento desuas responsabilidades. A representação da associação é uma linha que interliga asclasses, onde a linha pode possuir uma seta indicando a direção da associação;Agregação: alguns tipos de associação podem exigir um aumento no grau deenvolvimento entre as classes, o que cria a agregação. A agregação é equivalente àassociação, mas indica que as classes possuem uma dependência existencial, ouseja, uma classe só existe em conjunto com suas agregadas. A classe todo écomposta pelas classes parte. A agregação é representada por uma seta unindo asclasses com um losango indicando a classe todo. Pode-se considerar a agregaçãocomo um caso especial da associação devido ao maior vínculo entre as classesHerança: caracteriza-se por criar uma hierarquia entre as classes do sistema. Nessahierarquia, as superclasses servem de matrizes para a criação de outras classes, as
  36. 36. 36subclasses, que especializam as superclasses originais. Ao se especificarem, assubclasses aproveitam tudo das superclasses, o que inclui atributos, operações erelacionamentos da classe mãe, mas podem modificar o material herdado,sobrescrevendo os atributos e as operações ou criando novos atributos e operações;4.2.3.2 Diagrama de Objeto Segundo GUEDES (2004), o diagrama de objeto é um complemento dodiagrama de classe, sendo bastante dependente deste. Fornece uma visão dosvalores armazenados pelos objetos de um diagrama de classe em um determinadomomento da execução de um processo de software.4.2.3.3 Diagrama de implementação Segundo MELO (2004), o diagrama de implantação determina asnecessidades de hardware do sistema, as características físicas como servidores,estações, topologias e protocolos de comunicação, ou seja, todo o aparato físicosobre o qual o sistema deverá ser executado. O Diagrama de componentes e o deImplantação estão intrinsecamente associados e, portanto, é possível representá-losem conjunto.4.2.3.4 Diagrama de Estrutura Composta Segundo GUEDES (2004), o diagrama de estrutura composta, descreve aestrutura interna de um classificador, como uma classe ou componente, detalhandoas partes internas que o compõem, como estas se comunicam e colaboram entre si.Também é utilizado para descrever uma colaboração onde um conjunto deinstâncias cooperam entre si para realizar uma tarefa. Este é um dos três novosdiagramas propostos pela UML 2.0.4.2.3.5 Diagrama de Componentes Segundo GUEDES (2004), o diagrama de componentes está amplamenteassociado à linguagem de programação utilizada parar codificar o sistema
  37. 37. 37modelado. Esse diagrama representa os componentes do sistema implementado emtermos de módulos de código-fonte, bibliotecas, formulários, arquivos de ajuda,módulos executáveis etc. e determina como esses componentes estarãoestruturados e interagirão para que o sistema funcione de maneira adequada.4.2.3.6 Diagrama de Pacotes Segundo MELO (2004), o diagrama de pacotes tem por objetivo representaros subsistemas englobados por um sistema a fim de determinar as partes que ocompõem. Pode ser utilizado de forma independente ou em conjunto com outrosdiagramas.4.2.3.7 Diagrama de Casos de Uso Segundo GUEDES (2004), o diagrama de casos de uso é o diagrama maisgeral e informal da UML, é utilizado nas fases de levantamento e analise derequisitos, mostra as interações entre os casos de uso que tem processosautomatizados e seus atores. Basicamente, o diagrama de casos de uso mostra osatores que iniciam os casos de uso e que recebem informações deles, enfim, osrequisitos do sistema.4.2.3.8 Diagrama de Atividades Segundo GUEDES (2004), o diagrama de atividades preocupa-se emdescrever os passos a serem seguidos para a conclusão de uma atividadeespecífica, muitas vezes, representada por um método com certo grau decomplexidade e não de um processo completo, como no caso do Diagrama deSequência. Em outras palavras, o diagrama de atividades concentra-se narepresentação do fluxo de controle de uma atividade.4.2.3.9 Diagrama de Máquina de Estado Segundo GUEDES (2004), este diagrama normalmente se baseia em umCaso de Uso definido e faz uso das classes especificadas no Diagrama de Classes.
  38. 38. 38Além disso, é utilizado em geral para acompanhar os estados por que passa umainstância de uma classe, podendo ainda ser utilizado para representar os dados deum caso de uso ou mesmo os estados gerais de um subsistema ou de um sistemacompleto.4.2.3.10 Diagrama Sequencia Segundo GUEDES (2004), este diagrama tem como principal objetivoobservar a ordem temporal em que as mensagens são trocadas entre os objetosenvolvidos em um determinado processo. Normalmente baseia-se em um Caso deUso definido no Diagrama de Casos de Uso e se apoia no Diagrama de Classespara determinar os objetos das classes envolvidas em um processo. Um Diagramade Sequência costuma identificar o evento gerador do processo modelado, bemcomo o ator responsável por este evento e determina o desenrolar do processo e aconclusão do mesmo a partir da chamada de métodos disparados por mensagensenviadas entre os objetos.4.2.3.11 Diagrama Geral de Interação Segundo MELO (2004), este diagrama é uma variação do diagrama deatividades que mostra de uma forma geral o fluxo de controle e interação dentro deum sistema ou processo de negocio. Cada atividade dentro do diagrama pode teroutro diagrama de interação. Este diagrama só foi integrado a UML a partir daversão UML 2.04.2.3.12 Diagrama de Comunicação Segundo MELO (2004), este diagrama é o antigo diagrama de colaboração,que mostra objetos, seus inter-relacionamentos e o fluxo de mensagens entreeles.Segundo GUEDES (2004), este diagrama complementa o diagrama desequência apresentando um enfoque diferente, sua informações são, comfrequência, praticamente as mesmas, entretanto o no diagrama de comunicação nãohá a preocupação com a temporalidade do processo e sim com a forma como osobjetos estão vinculados e quais mensagens trocam entre si durante o processo.
  39. 39. 394.2.3.13 Diagrama de Tempo Segundo GUEDES (2004), o Diagrama de Tempo descreve a mudança noestado ou condição de uma instância de uma classe ou seu papel durante umtempo. Tipicamente utilizada para demonstrar a mudança no estado de um objeto notempo em resposta a eventos externos. É um diagrama introduzido na segundaversão de UML, classificado como diagrama de interação. Este diagrama modelainteração e evolução de estados. Na próxima seção faremos uma descrição da linguagem de JAVA.4.3 JAVA Segundo DEITEL H. e DEITEL P. (2005), com a revolução dosmicroprocessadores, vieram inúmeros benefícios para o cenário evolutivo doscomputadores pessoais no mundo todo, juntamente com uma crença de grandeimpacto nos dispositivos inteligentes destinados ao usuário final. Reconhecendoisso, a Sun Microsystem financiou uma pesquisa corporativa interna liderada porJames Gosling e outros desenvolvedores com o codinome Green em 1991. Já segundo CADENHEAD & LEMAY (2005), sendo este, um projeto de TVinterativa com inicio em meados da década de 1990, Gosling teria se frustrado coma linguagem utilizada no projeto, C++, uma linguagem de programação orientada aobjetos desenvolvida por Bjarne Stroustrup na AT&T Bells Laboratories, cerca de 10anos antes como uma extensão da linguagem C. Gosling trancou-se em seu quartoe criou uma nova linguagem de programação adequada ao projeto em questão quefocalizava o suprimento de suas frustrações em relação à linguagem utilizadaanteriormente. Para DEITEL H. e DEITEL P. (2005), Gosling apelidou a linguagem criadade Oak, em homenagem a uma arvore de carvalho que tinha a vista de seuescritório na Sun, quando mais tarde descobriu-se que já havia uma linguagem demesmo nome e foi quando a equipe da Sun visitou uma cafeteria local e porsugestão, resolveram atribuir o nome da linguagem de Java (cidade de origem de
  40. 40. 40um tipo de café importado). Passando por maus momentos o projeto encontroudificuldades no prosseguimento, devido a uma baixa no mercado específico, mas emcompensação em 1993 a Word Wilde Web, entrou em evidencia, ondeimediatamente a Sun viu potencial para Java e através dela, podemos adicionarconteúdos dinâmicos e iterativos as paginas web. DEITEL H. e DEITEL P. (2003), usa como argumento a máxima que comJAVA: “Escreva uma vez e rode em qualquer lugar (WORA)-Write Once, RunAnywhere”, esse desde o inicio foi o lema defendido pela tecnologia. Java é umalinguagem de programação orientada a objetos, baseada em C++, com a diferençade que as estruturas complexas existentes no C++ foram removidas, onde nasce oJava, simples e altamente poderoso, isso é possível pela existência da JVM (JavaVirtual Machine), impedindo que os programas Java rodem diretamente no sistemanativo, fazendo com que eles sejam compilados e interpretados, mas passando porcinco fases básicas que são ilustrados na figura 6. Figura 6 Processo de execução de um programa Java Fonte: DEITHEL 2005 Para DEITEL H. e DEITEL P. (2005), programas Java são compostos declasses e essas por sua vez contem métodos, onde esses realizam tarefas aoconcluir. Os programadores Java detêm o poder de desenvolver suas classes emétodos, assim como também a capacidade de manusear e aproveitar as coleçõesexistentes de classes internas da biblioteca Java , que são as chamadas APIs do
  41. 41. 41Java (Application programming Interface), assim criam-se dois aspectos para seadentrar no mundo Java que são: o aprendizado da linguagem em se, a criação dospróprios métodos e classes e o aprendizado das APIs que seria o reaproveitamentodessas classes prontas para utilização. Para CADENHEAD & LEMAY (2005), as facilidades de uma linguagem éfator determinístico nas disputas entre programadores, afirma também que Java foiprojetada para ser mais fácil que C++, principalmente no que se refere aos aspectosde que a JVM (Java virtual Machine) cuida automaticamente da alocação edesalocação de memória, liberando os programadores de tal tarefa tediosa ecomplexa, além de possuir apenas seis comandos que são: dois de decisão, três derepetição e um para proteção do código, Java não utiliza ponteiros, um recursocomplexo usado por programadores experientes que facilmente pode ser malempregado; Java não aborda herança múltipla, apenas única em orientação aobjetos, sendo estes alguns recursos vantajosos que Java obtém para total robusteze segurança.4.3.1 ServLets e JSP A internet está mudando a maneira como os negócios são feitos. As pessoasse beneficiam profundamente quando procuram melhores preços e produtos,comunidades de interesse especial podem permanecer em contato entre si. Ospesquisadores podem se tornar instantaneamente cientes dos últimos avanços.(DEITEL H. e DEITEL P. 2005). Focando especialmente no relacionamento cliente e servidor, onde o clientesolicita alguma ação e logo em seguida o servidor responde, sendo esta a base parao nível mais alto de redes no Java, os Servlets e JSP (JavaServer Page), onde umservlet nada mais que é do que um extensão do servidor web que prover as paginascom base no protocolo HTTP, os dois pacotes básicos que dispõe das classes einterfaces dos servlets são: javax.servlet e javax.servlet.http. Pacotes como javax.servlet.jsp e javax.servilet.jsp.tagext, fornecem classesreferente ao JSP(JavaServer Page), usando um sintaxe especial, emula dentro da
  42. 42. 42aplicação web as funcionalidade do Java real como encapsulamento defuncionalidade e conceitos concernentes a linguagem no que se refere orientação aobjetos , ou seja, através do JSP e possível usar todas as propriedades de Java2SE,para o ambiente web. JSP simplifica o fornecimento do conteúdo dinâmicoreutilizando componentes predefinidos e interagindo com scripts que seguem aolado do servidor, onde existem quatro componentes primordiais para JSPs que são:as diretivas, ações, elementos de scripts e bibliotecas de tags. (DEITEL H. e DEITELP. 2005).  As diretivas são enviadas para o contêiner de JSP, um componente do servidor web que executa a JSP;  As ações detêm o encargo de encapsular as tags predefinidas.  Os elementos de script permitem a inserção do código Java que venha interagir com o JSP;  As bibliotecas de tags permitem o programador criar tags suas próprias tags. Pela gama de atributos e fatores que Servlets e JSPs oferecem no tange aderivação e extensão de toda estrutura da linguagem Java, fatores imprescindíveis,como segurança, portabilidade, otimização e robustez, não podem ser desprezadosno que tange o desenvolvimento de uma aplicação web, sendo este e todos osoutros fatores estabelecidos e constatados logo acima, sendo o motivo maior daescolha de Servlets e JSP para o desenvolvimento do SATI (Sistema deatendimento técnico em informática), para que o mesmo venha herdar todas asinúmeras vantagens cruciais de JAVA e ter o status relevante de uma aplicaçãoJSP. Segundo PINHEIRO (2011), com negociações em um prazo de uma semanao gigante Oracle investiu nas ações da Sun Microsystem assim dando inicialmenteoferta de sete bilhões, mas fechando a nove bilhões de dólares, fazendo destajunção um conjunto de novidades para o mundo da TI e de todo o mundo, ondesurgiu o JDK 7 Developer Preview, uma versão para que desenvolvedores testem asnovas funcionalidades ate então, ultima versão do Java, que com toda portabilidadetem grande influencia nos mundos de Server Programming, aplicações de e-commerce, e-business, aplicações para acesso via Internet, intranet entre outras,
  43. 43. 43com recursos incríveis além de novas APIs, que permitem o manuseio da linguagem,sendo as melhorias inovadoras causa das maiores disputas no mercado de trabalho,onde tivemos melhorias nos quesitos de separador de dígitos em literaisnuméricos,literais binários,variáveis do tipo string em comandos switch, inferênciana criação de objetos de tipos genéricos além de outros que ainda serão publicados. Na próxima seção faremos uma breve descrição da linguagem deprogramação PHP, que será utilizada na implementação do sistema proposto.4.4 PHP - Hypertext Preprocessor Segundo WELLING (2005), a linguagem PHP surgiu em 1994 como umprojeto pessoal de Rasmus Lerdorf com o intuito de controlar os acessos a suapágina WEB. Esta linguagem é fortemente baseada nas linguagens C, Java e Perl eainda pode ser vista como uma combinação de linguagem de programação eservidores de aplicações. Permite criar sites WEB dinâmicos, fornece forte suportepara o acesso a banco de dado. O lançamento do PHP4 ocorreu em maio de 2000,onde trouxe como uma das principais novidades o suporte a sessões, com o intuitode identificar o cliente que solicitou determinada informação. Segundo WELLING (2005), além das mudanças referentes à sintaxe e aosnovos recursos de programação, o PHP4 trouxe também um recurso chamadoZend, que permite a execução otimizada de scripts PHP. Ainda assim, essalinguagem possui código aberto, e é o resultado de contribuições de umacomunidade de programadores interessados, contribuindo gratuitamente e estandodisponível em um grande número de plataformas. Segundo MORAZ (2005), o código PHP é embutido no HTML, ou seja, elepode ser escrito no meio de uma página HTML que será interpretada pelo servidor.O PHP é executado no servidor, sendo enviado para o cliente apenas HTML puro.Desta maneira é possível interagir com bancos de dados e aplicações existentes noservidor, com a vantagem de não expor o código fonte ou as regras de negocio parao cliente.
  44. 44. 44 Segundo MORAZ (2005), PHP é multiplataforma, pois, apesar detipicamente ser utilizado em conjunto com o Linux/FreeBSD e o Apache, roda emSolaris e Windows. Com relação à eficiência: consome pouco recurso do servidor,é mais rápido e evita chamada externa, tornando-o mais eficiente; tem acesso aBanco de Dados: acessa qualquer banco de dados, diretamente ou por meio doODBC; é capaz de processar imagens: criando imagens dinâmicas e enviando aobrowser do usuário; lê também informações padrão XML, processa arquivos,manipula variáveis complexas, utiliza funções, classes e gera código JavaScript,manipula e-mails e gerencia documentos PDF. Segundo DALLOGLIO (2009), uma das principais vantagens do PHP é osuporte nativo a um grande número de bancos de dados, como dBase, Interbase,mSQL, mySQL, Oracle, Sybase, PostgreSQL, além disso, tem suporte a outrosserviços através de protocolos como IMAP, SNMP, NNTP, POP3 e, logicamente,HTTP. Pode-se utilizar sockets e interagir com outros protocolos. Em sua versão 5.0o PHP ofereceu suporte completo a orientação a objeto. Segundo MORAZ (2005), PHP também realiza várias funções para Internetcomo: tratamento de cookies de comercio eletrônico, e em geral realiza funçõesmatemáticas, exploração de cadeias de datas, correção ortografia e compressão deficheiros. No campo do e-commerce, podemos utilizar funções especificas paraCybescash, CyberMUT e outros, que são práticos para sistemas de pagamentoonline. Assim como a linguagem JavaServer Pages (JSP), o PHP pode ser pré-compilado para aumentar a sua performance. A pré-compilação é feita através douso de um módulo acelerador (também disponível como software livre). Na próxima seção faremos uma breve descrição dos métodos de ágeis.4.5 DESENVOLVIMENTO ÁGIL Segundo BECK (2000), devido às exigências do mercado, grandecompetitividade e importância maior no que tange prazos, justamente por isso que
  45. 45. 45as empresas precisam desenvolver projetos com um tempo cada vez mais reduzido,para permitir isso se tem os métodos ágeis que englobam um conjunto de atividadesbaseadas nas melhores práticas de metodologias ágeis. Já segundo WILLIAN (2008), os métodos ágeis surgiram no final da décadapassada, em fevereiro de 2001, um grupo de dezessete metodologistas criou omanifesto ágil, ou mesmo a Agile software Development Alliance, o que os métodoságeis buscam não é como conter as mudanças mais cedo em um projeto desoftware, mas a melhor maneira de tratar mudanças inevitáveis ao longo de seuciclo de vida. O manifesto ágil foca alguns conceitos que serão abordados logoabaixo:  Indivíduos e interações ao invés de processos e ferramentas;  Software operante ao invés de documentação abrangente;  Colaboração do cliente ao invés de negociações de contratos;  Respostas rápidas a mudanças ao invés de seguir um plano. Para WILLIAN (2008), o processo ágil não rejeitar, as negociações,documentações ou mesmo o planejamento, apenas mostra que todo isso temaplicação secundária no que se referem aos conceitos chaves do manifesto. Dentre os processos ágeis existem várias metodologias como: XP (Extremeprogramming), SCRUM, DSDBM, Crystal dentre outros. Citam-se logo abaixo osmais importantes:XP (Extreme Programming) – Segundo KNIBERG (2007), XP é um método ágilbaseado em requisitos vagos e instancias que são altamente dinâmicas, o que sedestaca desta metodologia é a forte comunicação entre o cliente, a programação,pareada (programação a dois), há um diferencial no requisito treinamento, enquantoque no desenvolvimento tradicional a falta de treinamento influencia diretamente noprazo de um projeto, na metodologia XP um dos integrantes da dupla vai sendotreinado ao longo do desenvolvimento de maneira transparente para o projeto. Éuma metodologia que encoraja a equipe a enfrentar as mudanças, como algonatural, sendo importante se adaptar aos contratempos que acontecem no projeto,
  46. 46. 46contornando assim as dificuldades do modo mais simples possível sem perder ofoco básico: produzir um produto de qualidade, almejando excelência.SCRUM – Para KNIBERG (2007). Baseado em princípios relativamentesemelhantes ao XP, o SCRUM divide-se em iterações, ou SPRINTs, de trinta dias,onde equipes pequenas, de até dez pessoas, são formadas entre programadores,engenheiros de software e analistas e cada equipe trabalha focado numa SPRINT,sendo este formado em três fases principais que são elas : pré-planejamento (pré-game phase), desenvolvimento (game-phase) e pos-desenvolvimento (pos-gamephase). É uma metodologia com o foco no gerenciamento da equipe, preocupadanaorganização dos processos, no modo como as atividades devem ser executadas,deixando a cargo dos participantes do projeto escolher a melhor maneira de concluircom sucesso essas etapas. Os requisitos do software são levantados e organizadosem uma lista de funcionalidades, chamada product backlog, que contém todo oescopo do projeto definido juntamente com o cliente, e suas respectivas prioridadesde desenvolvimento, sendo que o product backlog dever ser constantementerevisado, validado e atualizado. O desenvolvimento é dividido em iterações,chamado de sprints, de duração entre duas a quatro semanas. Cada sprint écomposta de uma lista de tarefas, funcionalidades com prioridades retiradas doproduct backlog, chamada de sprint backlog. Definido as atividades a seremrealizadas em cada sprint, a equipe foca o desenvolvimento de mais um ciclo quese repete ao longo do projeto. Após o encerramento das sprints é realizada a sprintretrospective, uma das mais importantes práticas dentro da Scrum, que sãodiscutidos os pontos positivos e os negativos;MSF Agile – Segundo Willian (2008), como uma compilação da Microsoft oMicrosoft solution Framework, surgindo em 1994, como um conjunto de boaspráticas, a partir de sua experiência de desenvolvimento de software e consultoria,sendo este framework também dinâmico e disposto a dar respostas rápidas no quetange a problemas recorrentes no desenvolvimento de softwares. Na próxima seção faremos uma descrição de Banco de Dados, SistemasGerenciadores de banco de Dados (SGBD), os SGBDs MySQL e ORACLE e alinguagem SQL.
  47. 47. 474.6 BANCO DE DADOS Segundo a KORTH (1995), a finalidade básica dos bancos de dados éarmazenar os dados de forma organizada. Isso faz com que os dados fiquemdisponíveis para serem usados ou atualizados por todos que tenham acesso a estasinformações. Segundo DATE (2004), um SGBD (Sistema Gerenciador de Banco deDados) é um conjunto de dados que associados a um conjunto de programasproporcionam o acesso a esses dados. Como o banco de dados possui estruturaconhecida, o sistema que o armazena possui diversas ferramentas poderosas paraprolongar sua utilização, e mecanismos para a manipulação dos dadosarmazenados.4.6.1 Modelo de dados Segundo KORTH (1995) sob a estrutura do banco de dados está o modelode dados: um conjunto de ferramentas conceituais usadas para descrever dados,relacionamento entre dados, semântica e regras de consistência. Os modelospodem ser classificados em três grupos:  Modelos Lógicos com Base em Objetos;  Modelos Lógicos com Base em Registros;  Modelos Físicos.4.6.1.1 Modelo Lógico com Base em Objeto Segundo KORTH (1995), estes modelos são usados na descrição de dadosno nível lógico e de visões. Possuem recursos de estruturação bem mais flexíveis eviabilizam a especificação explícita das restrições dos dados. Vários modelosintegram esta categoria, alguns já são bem conhecidos, como:Modelo entidade-relacionamento: Tem por princípio a percepção do mundo realcomo conjunto de objetos básicos, chamados de entidades e do relacionamentoentre eles;
  48. 48. 48Modelo orientado a objeto: Assim como o modelo entidade-relacionamento, tempor base um conjunto de objetos, onde um objeto contém valores armazenados emvariáveis instâncias, contendo também um conjunto de códigos que operam esseobjeto;Modelo semântico de dados: Têm como objetivo a representação de determinadaparte do mundo real, sendo assim, o que se busca é que o modelo produzidotraduza de maneira mais próxima possível os objetos que ele representa. SegundoDATE( 2004), por ter como base um contexto e a semântica que cada objeto tempara um determinado grupo de usuário dentro desse contexto, um determinadoobjeto no mundo real pode muito bem ser considerado uma entidade por algumaspessoas e propriedades por outras e ainda associação por outras. Uma das metasda modelagem semântica é suportar tal flexibilidade de interpretação.Modelo funcional de dados: esse modelo de dados é baseado em atributos, ondeas entidades são valores de atributos e cada atributo pode ter vários valores. OModelo Funcional de Dados também é um tipo de modelo semântico de dados.4.6.1.2 Modelos Lógicos com Base em Registros Ainda segundo KORTH (1995), são utilizados para descrever os dados nonível lógico e de visões. Contrastando com o modelo com base em objetos, este tipode modelo é usado tanto para especificar a estrutura lógica do banco quanto paraprogramar uma descrição de alto nível. Este grupo também se divide em:Relacional: Representa dados e relacionamentos entre dados através de umconjunto de tabelas, cada uma tendo um número de colunas com nomes únicos,este modelo oferece a possibilidade de expressar consultas e manipulações sobre abase de dados usando linguagens independentes de sistemas, baseadas emálgebra relacional e em cálculo relacional;Hierárquico: Neste tipo de gerenciador os dados ficam representados em forma deárvore, composto por uma hierarquia de registros de dados onde cada um dosseguimentos inferiores depende hierarquicamente dos segmentos superiores.
  49. 49. 49Rede: Este por sua vez representa os dados como registros vinculados uns aosoutros formando um conjunto comum de dados. O modelo de rede é semelhante aomodelo hierárquico. Podendo até mesmo dizer que o modelo de rede é ageneralização do modelo hierárquico.4.6.1.3 Modelos Físicos Ainda segundo KORTH (1995), este modelo é utilizado para descrever osdados em nível mais baixo, contrastando com os modelos lógicos. Há poucosmodelos físicos de dados sendo utilizados hoje. Dois destes modelos sãoconhecidos:Modelo unificado (unifying model); consiste num modelo simples que organizaregistros de dados com uma única chave, chamada de chave de agrupamento, quepode ser de três tipos: Logical valued key, Hash key e Relative location key.Modelo de partição de memória (frame-memory model): esse modelo fornece umavisão do armazenamento secundário que pode ser implementado, de modo afornecer um suporte razoável para o armazenamento e acesso aos registros dedados de um sistema. Foi projetado de forma que suas características operacionaispossam ser facilmente manipuladas por desenvolvedores de sistemas ouprogramadores.4.6.2 SGBD Para ELMASRI (2005), um SGBD ou sistema gerenciador de banco dedados é uma coleção de programas que permite aos usuários criar e manter umbanco de dados, sendo este um sistema de software de propósito geral que vemfacilitar os processos de definição, construção, manipulação e compartilhamento debanco de dados entre diferentes tipos de usuários e aplicações diferentes. Ainda para ELMASRI (2005), no que tange a construção de um banco dedados, o fator essencial se da no processo de armazenamento de dados em umamídia apropriada, gerenciada pelo SGBD, sendo que a manipulação dos dados éfeita através de funções principais como pesquisa no banco de dados para
  50. 50. 50recuperação de dados convenientes, atualização do banco para que a modificaçõessejam refletidas no minimundo e assim gere a gama de dados informacionaisdesejados, além de permissão de múltiplos usuários e programas acessar emconcorrência o banco de dados através de compartilhamento, onde o SGBD abordatambém, funções de proteção e manutenção do banco, senso a proteção referente afalhas de funcionamento (crashes) no hardware ou mesmo software, além dasegurança contra acessos maliciosos ou não autorizados. O banco de dados foi criado para permanecer sob um ciclo de vida extenso,assim os SGBDs vêm como uma forma de estender ainda mais a durabilidadetornando possível a manutenção em todos os casos, mas principalmente no que serefere à evolução dos requisitos que se alteram ao longo do tempo. Já segundo GALANTE (2007), um SGBD tem particularidades epropriedades que facilitam os processos de definição, construção e manipulação dedados, abaixo descrevemos as principais características de um SGBD:Controle de redundância - são construídas regras de gerenciamento mais eficaz,impedindo a duplicação de dados e economizando espaço em disco;Restrição a acesso não autorizado – Cada usuário, independentemente do seunível hierárquico obtém uma senha de acesso no que lhe é permitido, tornando oSGBD eficaz em sua função;Garantia de armazenamento persistente – a partir de um SGBD é possível searmazenar dados de uma forma organizada;Garantia de armazenamentos de estruturas para o processamento eficiente deconsultas: quesito muito relevante nas qualidades de um SGDB, pois o mesmoprover mecanismos inteligentes de buscas, inserções e atualizações dos dados;Compartilhamento de dados – os SGBDs multiusuários devem fornecer umcontrole no que tange o paralelismo e a concorrência, para assegurar que asatualizações simultâneas resultem em modificações corretas e seguras;
  51. 51. 51Fornecimento de múltiplas interfaces – com a exigência de vários tipos deusuários diferentes, o SGBD deve fornecer variedades de interfaces para cada um;Representação de relacionamentos complexos entre dados - uma base dedados pode ter variedades de dados, onde o SGBD deve ser capaz de gerenciar avariedade de relacionamentos complexos entre dados, tal como recuperar emodificar tais dados relacionados de maneira fácil e eficiente;Backup e restauração – A garantia de backup e restauração é fator essencial paraqualquer SGBD que se preze, onde seja qual for a falha proveniente de hardware ousoftware , deve-se manter a integridade dos dados;Restrições de integridade – com o SGBD é possível impor restrições ondediminuem ainda mais as probabilidades de um usuário causar algum erro.4.6.3 MYSQL Segundo WELLING (2004) o Mysql surgiu como ferramenta para atender auma necessidade interna. Com o funcionamento lento do MSQL em relação aligações de tabelas através das suas rotinas ISAM, Inered Seqüencial AccessMethod (método de acesso sequencial indexado), os autores trabalharam buscandouma solução, tendo como resultado o Mysql, com muito mais recursos que o MSQLe muito mais rápido. O MySQL apresenta um bom desempenho em todas asplataformas, por essa razão sua popularidade tem crescido nos últimos anos. É umgerenciador de banco de dados que implementa um subconjunto da linguagem SQL,sendo suficiente para a maioria das aplicações. O Mysql utiliza o modelo de dadosrelacional, suportando banco de dados que consistem em um conjunto de dados erelacionamentos entre si.4.6.3.1 Descrição do MYSQL Segundo DATE (2004) o MySQL é um gerenciador de banco de dados, quesuporta múltiplas linhas de execução, que se refere à capacidade de dividir umserviço em pequenas partes, sendo que cada parte é chamada de tria (linha de
  52. 52. 52execução ou sub-processo), que pode operar de maneira independente em relaçãoa outras. Quando um aplicativo usa linhas de execução controladas pelo Kernel emuma máquina com várias CPUs, ele pode distribuir o trabalho entre elas para que oexecutem simultaneamente. Segundo WELLING (2004), o MySQL possui um conjunto de API quesuporta várias linguagens de programação, entre elas o C, C++, Java, Perl e PHPentre muitas outras. A API vem do inglês Application Programing Interface (Interfacede programação de aplicativos), e pode ser escrita para qualquer tipo de servidor ousistema operacional. A API do MySQL fornece uma lista reduzida de rotinas quepodem ser chamadas de dentro de um programa para interagir com o banco dedados. O MySQL faz uso índices, que são tabelas especiais, que tem porfinalidade possibilitar a pesquisa por dados sem ter que percorrer linha por linha deuma tabela. O MySQL usa um sistema de privilégios e senha baseado em tabelas desistema. Esse sistema é flexível e por isso exige um pouco de conhecimento paraimplementar regras mais complexas.4.6.4 SQL ( Strutured Query Language) Segundo RAMALHO (1999), SQL tem representado o padrão paralinguagem de banco de dados relacionais. Existem muitas versões de SQL, mas aversão original foi desenvolvida pela IBM no laboratório de San Jose (atualmente ocentro de pesquisa Almaden). Seu nome original era Sequel foi evoluindo emodificado para SQL. Houve esforço conjunto da ANSI (American NationalStandards Institute) e da ISO (International Standards Organization) para apadronização da linguagem SQL em 1986, como resultado deste esforço conjuntofoi lançada a primeira versão do padrão da linguagem o SQL-86. Segundo GUIMARÃES (2003), os bancos de dados comerciais necessitamde uma linguagem de consulta que possibilite uma maior facilidade para os usuários.Refere-se à linguagem SQL como uma linguagem de consulta, porém ela possuivários outros recursos. A linguagem SQL é uma linguagem de banco de dados
  53. 53. 53abrangente. Ela possui comandos para definição de dados, consultas e atualizações(tem ambas as linguagens DDL e DML). Possui também regras para embutir oscomandos SQL em linguagens de programação genéricas: Java, Cobol ou C/C++. Ainda segundo GUIMARÃES (2003), SQL usa os termos tabela, linha ecoluna, em vez dos termos relação, tupla e atributo, respectivamente, para o modelorelacional formal. O principal comando SQL para definição de dados é o CREATE,que pode ser usado para criar esquemas, tabelas, domínios e restrições. Umesquema SQL agrupa tabelas e outros construtores que pertencem à mesmaaplicação de BD. É identificado por um nome de esquema e inclui uma identificaçãode autorização, que indica o usuário ou a conta ao qual o esquema pertence. Oselementos de esquema incluem tabelas, restrições, permissões, domínios e outrosconstrutores. Segundo COSTA (2006), o SQL se tornou a linguagem padrão para lidarcom bancos de dados relacionais, e por ser padrão é aceita por quase todos osprodutos existentes no mercado.4.6.5 ORACLE Antigamente a Oracle era basicamente uma empresa de banco de dadosrelacional, além do que ela não tinha aplicativos enlatados, já hoje ela dispõe de umquadro totalmente diferente, sendo uma empresa com valor estimado em bilhões dedólares, com uma gama de produtos, serviços e aplicativos grandes, ondeinicialmente ela era uma empresa que trabalhava com banco de dados relacionais,sendo que os mesmo na época eram um novo modo de se pensar em relação acomo os dados seriam armazenados e estruturados. Apostando na ideia de um perfilde banco que pudesse resistir ao teste do tempo e levar em conta uma estruturaonde apenas os dados fossem alterados ao invés da própria estrutura, sendojustamente estes alguns dos motivos pela qual a Oracle resolveu investir emestratégias relacionais, assim suplantando as estratégias tradicionais, tais perfis debanco de dados, anteriores aos relacionais que eram regidos por arquivos mestresao invés de tabelas como conhecemos hoje convencionalmente, ABREY E COREY(1997).
  54. 54. 54 Ainda para ABBEY E COREY (1997), a Oracle System Corporation, sediadaem Redwood Shores, Califórnia produz software e distribui serviços para ogerenciamento eletrônico de informações, a mesma faz parte da corrida sem fimpara trazer um produto de qualidade e que satisfaça seus usuários, a Oracle fabricaum conjunto de produtos que giram em torno de seu Oracle Server o que é umambiente de gerenciamento de informação, sendo um depósito para grandesquantidades de dados possibilitando o usuário o acesso a tais dados com grandevelocidade e agilidade. O Oracle Server como um poderoso SGBD dispõe decompartilhamento de dados entre aplicativos, as informações são armazenadas emum lugar e usadas por muitos sistemas, esta característica possibilita ao OracleServer suportar as configurações a seguir:Baseado em hospedeiro – os usuários são conectados diretamente onde reside obanco de dados;Cliente/Servidor - os usuários acessam o banco, a partir de seu computadorpessoal (cliente), por meio de uma rede, já o banco de dados em um computadorseparado (servidor) enviará as respostas;Processamento distribuído – usuários acessam os dados em servidoresfisicamente separados, onde está distribuído em mais de uma máquina e seususuários não tem conhecimento onde estão situados os dados acessados. Já segundo RAMALHO (1999), Oracle Server é um sistema degerenciamento de banco de dados, de uma instância de servidor Oracle. Um bancode dados Oracle tem uma estrutura física e lógica, como essas estruturas noservidor são separadas o armazenamento físico dos dados pode ser gerenciadosem afetar os acessos as estruturas lógicas de armazenamento.Estrutura física – essa estrutura é determinada pelos arquivos do sistemaoperacional que o compõe, onde cada banco de dados Oracle é composto por trêstipos de arquivos sendo: um ou mais datafiles, dois ou mais arquivos de registroredo e um ou mais arquivos de controle, sendo estes arquivos que forneceminformações do Oracle em um armazenamento físico;

×