Your SlideShare is downloading. ×
FACULDADE ALVORADACURSO DE BACHARELADO EM SISTEMAS DE INFORMAÇÃO       Cristiana Carolina Andrade Mendes SouzaSIQA - Siste...
v       Cristiana Carolina Andrade Mendes SouzaSIQA - Sistema Indicador de Qualidade de Atividade                       Mo...
vÀ minha amada filha Tácila Taiana que dá           razão ao meu ato de respirar.
vi                           AGRADECIMENTOS          Agradeço à minha mãe Gina, cujo exemplo de vida e perseverança fazcom...
vii“Jamais desistir é a fórmula dos teimosospara alcançar o sucesso”.                            Cristiana Mendes
8                                   RESUMO      O monitoramento das atividades desenvolvidas pela empresa em busca daquali...
9                                      ABSTRACTThe monitoring activities undertaken by the company in pursuit of quality o...
10                                             LISTA DE FIGURASFigura 1 - Organograma da Empresa ............................
11                                            LISTA DE TABELASTabela 1 - Planejamento do Projeto de Desenvolvimento .........
12                    LISTA DE ABREVIATURAS E SIGLASADO    ActiveX Data ObjectsANSI   American National Standards Institut...
13                                                      SUMÁRIO1.Introdução .................................................
14        4.1.8.4. Linguagem PHP ................................................................................... 47   ...
158.   Conclusão ............................................................................................................
16   1. Introdução         Uma informação estratégica, no cenário atual das empresas, pode gerarvárias oportunidades a uma...
17o processo de monitoramento desse ambiente externo.      O principal objetivo da gestão da informação é tornar estratégi...
18      Muitas ainda são as dificuldades encontradas para realizar o procedimentooperacional de monitoramento de atividade...
19  1.5. Organização do Trabalho            O primeiro capítulo refere-se ao contexto do trabalho, o tema, os objetivosda ...
20 2. Análise Institucional       Como tudo que é instituído, instituinte ou em vias de institucionalização, aanálise inst...
21   2.2. Descrição das Necessidades      Segundo BEZERRA (2002), a atividade de levantamento de requisitoscorresponde à e...
22usuário, este poderá indicar qual atividade irá alimentar os bancos dados e permitir aconsulta dos mesmos através de núm...
23      3. Cronograma          Desenvolver o cronograma significa determinar as datas de início e fim paraas atividades do...
24 4. Referencial Teórico      O objetivo deste capítulo é apresentar todas as tecnologias, processos econceitos estudados...
25        4.1.2. Métodos Ágeis           Para LARMAN (2005), o método de desenvolvimento ágil aplicadesenvolvimento iterat...
26      A maioria das regras da XP causa polêmica à primeira vista e muitas nãofazem sentido se aplicadas isoladamente. É ...
27      4.1.3. Rational Unified Process – RUP          Rational Unified Process (Processo Unificado da Rational), é um pro...
28      Na Figura 4 são apresentados todos os conceitos-chave, os elementosestruturais estáticos, definidos no RUP.       ...
29termos de atividades a serem executadas. Responsabilidades são expressas emtermos de artefatos que o papel cria, modific...
30estão às soluções para um problema num contexto (GAMMA et al, 2000).          GAMMA et al (2000), explicam que em geral,...
31filtro digital terá somente um conversor A/D. Um sistema de contabilidade serádedicado a servir somente a uma companhia ...
32                   Figura 5: Padrão Template Method em um framework          A classe base Game implementa o laço de exe...
33                                Figura 6 - Padrão Facade           Considere, por exemplo, um ambiente de programação qu...
34                      Figura 7 – Classes do Subsistema Compilador          O padrão facade isola os clientes dos compone...
35etapas subseqüentes do desenvolvimento, como o projeto detalhado e aimplementação. É por isso que a maior parte do tempo...
36funcionalidades estendidas e específicas devem ser distribuídas entre oscomponentes restantes da arquitetura (BUSCHMANN ...
37aplicação em três tipos de componentes: os módulos model, view e controller.(BUSCHMANN et al, 1996).         Na figura 8...
38        4.1.6. Modelagem de Processos          Segundo RUMBAUGH (1994), um modelo é uma abstração de algumacoisa, cujo p...
39         4.1.6.2. Business Process Modeling Notation – BPMN         A Business Process Modeling Notation (Notação de Mod...
40elementos gráficos definidos nesta linguagem pode-se construir diagramas querepresentam diversas perspectivas do sistema...
41principal de itens de agrupamento, chamado pacotes e, anotacionais são as partesexplicativas dos modelos de UML. São com...
42                          Figura 9 - Tipos de Diagramas UML      4.1.7. A Orientação a Objetos         O termo Orientaçã...
43comuns. Assim, uma classe é um gabarito para criar objetos, onde cada objeto éuma cópia de alguma classe. (TERRY, 2001)....
44         Alguns benefícios da orientação a objetos apresentados por OLIVEIRO(2000) são: reaproveitamento: as classes são...
45inseridos nas páginas HTML e processados pelo servidor web antes de seremenviadas ao navegador do usuário. Assim, muitas...
46          4.1.8.3. HyperText Markup Language – HTML       O HyperText Markup Language (Linguagem de Marcação Hiper Texto...
47          4.1.8.4. Linguagem PHP          A tecnologia PHP surgiu em 1994 como um projeto pessoal de RasmusLerdorf com o...
48contribui para a operação efetiva de todos os Sistemas que rodam utilizando-se deBanco de Dados (LIMA, 2001).          4...
49manipulação de dados. As ferramentas geradoras de relatório da CODASYLpadronizaram dois aspectos importantes dos sistema...
50array. Os construtores set, list, bag ainda não foram adicionados ao modelo. NesseModelo passou a ter identidade de obje...
51manipular as informações que estão contidas nesse banco de dados, é utilizado umSGBD, que é responsável pelo gerenciamen...
52de muitas maneiras. Um SGBD deve ter a capacidade de representar uma variedadede relacionamentos complexos entre dados, ...
53         4.1.10.2.       Microsoft SQL Server       O Microsoft SQL Server é um SGBD relacional produzido pela Microsoft...
54         4.1.10.4.        Oracle         O Oracle é um sistema gerenciador de banco de dados relacional comfunções compl...
55          O MySQL é um gerenciador de banco de dados, que suporta múltiplaslinhas de execução, que se refere à capacidad...
56        Para OLIVEIRA (2005) a SQL trouxe para os bancos de dados relacionaisuma série de benefícios principalmente por ...
57          O padrão Singleton não foi escolhido para ser o padrão de projeto dessetrabalho, por ser um padrão de criação,...
SIQA - Sistema Indicador de Qualidade de Atividade
SIQA - Sistema Indicador de Qualidade de Atividade
SIQA - Sistema Indicador de Qualidade de Atividade
SIQA - Sistema Indicador de Qualidade de Atividade
SIQA - Sistema Indicador de Qualidade de Atividade
SIQA - Sistema Indicador de Qualidade de Atividade
SIQA - Sistema Indicador de Qualidade de Atividade
SIQA - Sistema Indicador de Qualidade de Atividade
SIQA - Sistema Indicador de Qualidade de Atividade
SIQA - Sistema Indicador de Qualidade de Atividade
SIQA - Sistema Indicador de Qualidade de Atividade
SIQA - Sistema Indicador de Qualidade de Atividade
SIQA - Sistema Indicador de Qualidade de Atividade
SIQA - Sistema Indicador de Qualidade de Atividade
SIQA - Sistema Indicador de Qualidade de Atividade
SIQA - Sistema Indicador de Qualidade de Atividade
SIQA - Sistema Indicador de Qualidade de Atividade
SIQA - Sistema Indicador de Qualidade de Atividade
SIQA - Sistema Indicador de Qualidade de Atividade
SIQA - Sistema Indicador de Qualidade de Atividade
SIQA - Sistema Indicador de Qualidade de Atividade
SIQA - Sistema Indicador de Qualidade de Atividade
SIQA - Sistema Indicador de Qualidade de Atividade
SIQA - Sistema Indicador de Qualidade de Atividade
SIQA - Sistema Indicador de Qualidade de Atividade
SIQA - Sistema Indicador de Qualidade de Atividade
SIQA - Sistema Indicador de Qualidade de Atividade
Upcoming SlideShare
Loading in...5
×

SIQA - Sistema Indicador de Qualidade de Atividade

2,127

Published on

O monitoramento das atividades desenvolvidas pela empresa em busca da qualidade de vida dos seus funcionários é uma preocupação para os líderes das organizações. Utilizando a tecnologia para tratar os dados coletados, das atividades e programas sociais, são gerados indicadores de adesão, cujos índices são de sumária importância para tomada de decisão. Estudos empíricos indicam as organizações que possuem um bom índice de monitoramento de suas atividades, com o uso de sistemas de informação, apresentam maiores sucesso na manutenção e introdução de novas formas de qualidade de vida. A proposta apresentada nesse trabalho é a criação de um sistema capaz de gerar gráficos que indiquem a adesão dos funcionários aos programas de qualidade de vida e assistência social da empresa.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,127
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
41
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "SIQA - Sistema Indicador de Qualidade de Atividade"

  1. 1. FACULDADE ALVORADACURSO DE BACHARELADO EM SISTEMAS DE INFORMAÇÃO Cristiana Carolina Andrade Mendes SouzaSIQA - Sistema Indicador de Qualidade de Atividade Brasília-DF 2010
  2. 2. v Cristiana Carolina Andrade Mendes SouzaSIQA - Sistema Indicador de Qualidade de Atividade Monografia apresentada a Faculdade Alvorada para a obtenção do título de Bacharel em Sistemas de Informação. Orientadora: Profa. Mestra Elizabeth d‟Arrochella Teixeira Brasília-DF 2010
  3. 3. vÀ minha amada filha Tácila Taiana que dá razão ao meu ato de respirar.
  4. 4. vi AGRADECIMENTOS Agradeço à minha mãe Gina, cujo exemplo de vida e perseverança fazcom que todos os meus esforços sejam apenas reflexos de seus atos. E, emmemória ao meu amado pai Brasilton, pela certeza que por amor tudo vale à pena. À minha professora Elizabeth d‟Arrochella Teixeira por fazer entender,através de uma única frase a importância do seguir a diante, mais uma vez obrigada.
  5. 5. vii“Jamais desistir é a fórmula dos teimosospara alcançar o sucesso”. Cristiana Mendes
  6. 6. 8 RESUMO O monitoramento das atividades desenvolvidas pela empresa em busca daqualidade de vida dos seus funcionários é uma preocupação para os líderes dasorganizações. Utilizando a tecnologia para tratar os dados coletados, das atividadese programas sociais, são gerados indicadores de adesão, cujos índices são desumária importância para tomada de decisão. Estudos empíricos indicam asorganizações que possuem um bom índice de monitoramento de suas atividades,com o uso de sistemas de informação, apresentam maiores sucesso na manutençãoe introdução de novas formas de qualidade de vida. A proposta apresentada nessetrabalho é a criação de um sistema capaz de gerar gráficos que indiquem a adesãodos funcionários aos programas de qualidade de vida e assistência social daempresa.Palavras-chave: Sistema de Informação. Monitoramento de Atividade e Indicadores.
  7. 7. 9 ABSTRACTThe monitoring activities undertaken by the company in pursuit of quality of life andwelfare of its employees is a concern to its leaders. Using technology to process thedata collected from activities and social programs are generated complianceindicators, whose indices are of importance for summary decision. Empirical studiesindicate that organizations are a good indicator for monitoring their activities with theuse of information systems, have greater success in maintaining and introducing newforms of quality of life. The proposal presented in this paper is to create a systemable to generate graphs showing the membership of officials to the quality programsof life and welfare of the company. Keywords: Information System. Monitoring and Activity Indicators.
  8. 8. 10 LISTA DE FIGURASFigura 1 - Organograma da Empresa ........................................................................ 20Figura 3 – Arquitetura de Processo RUP .................................................................. 27Figura 4 – Estrutura Estática RUP ............................................................................ 28Figura 5: Padrão Template Method em um framework ............................................. 32Figura 6 - Padrão Facade ......................................................................................... 33Figura 7 – Classes do Subsistema Compilador......................................................... 34Figura 8 – Representação da Arquitetura MVC......................................................... 37Figura 9 - Tipos de Diagramas UML ......................................................................... 42Figura 10 – Diagrama de Caso de Uso ..................................................................... 62Figura 11 – Diagrama de Classes ............................................................................. 68Figura 12 – Modelo de Entidade de Relacionamento................................................ 68Figura 13 – Árvore do Sistema .................................................................................. 70Figura 14 – Tela de login ........................................................................................... 70Figura 15 – Tela Principal.......................................................................................... 71Figura 16 – Cadastro Departamento ......................................................................... 71Figura 17 – Cadastro Funcionário ............................................................................. 72Figura 18 – Cadastro Evento..................................................................................... 72Figura 19 – Alterar Departamento ............................................................................. 73Figura 20 – Alterar Funcionário ................................................................................. 73Figura 21 – Alterar Evento ........................................................................................ 74Figura 22 – Excluir Departamento ............................................................................. 74Figura 23 – Excluir Funcionário ................................................................................. 75Figura 24 – Lista de Departamento ........................................................................... 75Figura 25 – Lista de Funcionário Cadastrados .......................................................... 76Figura 26 – Lista de Evento....................................................................................... 76Figura 27 – Relatório em Gráfico .............................................................................. 77Figura 28 – Menu de Navegação dos Sistema.......................................................... 77
  9. 9. 11 LISTA DE TABELASTabela 1 - Planejamento do Projeto de Desenvolvimento ......................................... 23Tabela 2 – Casos de Uso .......................................................................................... 61Tabela 3 – Caso de Uso UC01 – Login ..................................................................... 63Tabela 4 – Caso de Uso UC02 – Manter Usuário ..................................................... 64Tabela 5 – Caso de Uso UC03 – Manter Departamento ........................................... 65Tabela 6 – Caso de Uso UC04 – Manter Evento ...................................................... 66Tabela 7 – Caso de Uso UC05 – Manter Relatório ................................................... 67Tabela 8 – tab_departamento ................................................................................... 69Tabela 9 – tab_funcionario ........................................................................................ 69Tabela 10 – tab_departamento ................................................................................. 69Tabela 11 – tab_relatorio .......................................................................................... 69
  10. 10. 12 LISTA DE ABREVIATURAS E SIGLASADO ActiveX Data ObjectsANSI American National Standards InstituteASP Active Server PagesBPMN Business Process Modeling NotationDBA Administrador de Banco de DadosDCL Linguagem de Controle de DadosDDL Data Deinition LnguageDDL Linguagem de Definição de DadosDML Linguagem de Manipulação de DadosHTML Hiper Text Markup LanguageIPL InterBase Public LicenseJSP Java Server PagesMVC Model View ControllerOO Orientação a ObjetosPOO Programação Orientada a ObjetosRUP Rational Unified ProcessSGBD Sistema Gerenciador de Banco de DadosSIAQ Sistema Indicador de Qualidade de AtividadeSO Open SourceSQL Structured Query LanguageUML Unified Modeling LanguageWWW Word Wide WebXP Extreme Programming
  11. 11. 13 SUMÁRIO1.Introdução .............................................................................................................. 16 1.1. Tema ........................................................................................................... 17 1.2. Justificativa ................................................................................................. 17 1.3. Formulação do Problema ............................................................................ 17 1.4. Objetivos ..................................................................................................... 18 1.4.1. Objetivo Geral ...................................................................................... 18 1.4.2. Objetivo Específico .............................................................................. 18 1.5. Organização do Trabalho ........................................................................ 192. Análise Institucional ........................................................................................... 20 2.1. A Empresa e seu Negócio .......................................................................... 20 2.1.1. Organograma da Empresa .................................................................. 20 2.2. Descrição das Necessidades ...................................................................... 213. Cronograma ....................................................................................................... 234. Referencial Teórico ............................................................................................ 24 4.1. Engenharia de Software .............................................................................. 24 4.1.1. Cleanroom ........................................................................................... 24 4.1.2. Métodos Ágeis ..................................................................................... 25 4.1.2.1. Extreme Programming .......................................................................... 25 4.1.2.2. Scrum .................................................................................................... 26 4.1.3. Rational Unified Process – RUP .......................................................... 27 4.1.4. Padrões de Projeto .............................................................................. 29 4.1.4.1. Padrão Singleton ................................................................................. 30 4.1.4.2. Padrão Template Method .................................................................... 31 4.1.4.3. Padrão Facade .................................................................................... 32 4.1.5. Arquitetura de Software ....................................................................... 34 4.1.5.1. Modelo Microkernel.............................................................................. 35 4.1.5.2. Modelo Broker...................................................................................... 36 4.1.6. Modelagem de Processos ................................................................... 38 4.1.6.1. aSideML ............................................................................................... 38 4.1.6.2. Business Process Modeling Notation – BPMN .................................... 39 4.1.6.3. Unified Modeling Language – UML ...................................................... 39 (Linguagem de Modelagem Unificada) .............................................................. 39 4.1.7. A Orientação a Objetos ........................................................................ 42 4.1.7.1. Objetos ................................................................................................ 42 4.1.7.2. Classes ................................................................................................ 42 4.1.7.3. Encapsulamento .................................................................................. 43 4.1.7.4. Herança ............................................................................................... 43 4.1.7.5. Polimorfismo ........................................................................................ 43 4.1.8. Linguagem de Programação ................................................................ 44 4.1.8.1. Active Server Pages – ASP ................................................................. 44 4.1.8.2. Java Server Pages – JSP .................................................................... 45 4.1.8.3. HyperText Markup Language – HTML ................................................. 46
  12. 12. 14 4.1.8.4. Linguagem PHP ................................................................................... 47 4.1.9. Banco de Dados .................................................................................. 47 4.1.10. Sistema Gerenciador de Banco de Dados ........................................... 50 4.1.10.1. Firebird ................................................................................................ 52 4.1.10.2. Microsoft SQL Server .......................................................................... 53 4.1.10.3. PostgreSQL ......................................................................................... 53 4.1.10.4. Oracle.................................................................................................. 54 4.1.10.5. MySQL ................................................................................................ 544.1.10.6. Linguagem SQL.......................................................................................... 554.2. Escolhas para o Desenvolvimento do Projeto ................................................ 565. Proposta do Novo Sistema................................................................................. 58 5.1. Descrição do Sistema Proposto .................................................................. 58 5.2. Resultados Esperados ................................................................................ 58 5.3. Restrições do sistema proposto .................................................................. 59 5.4. Relação Custo Versos Benefícios: Análise de Viabilidade Econômica do Novo Sistema ........................................................................................................ 59 5.5. Áreas Afetadas Pelo Novo Sistema ............................................................ 59 5.6. Banco de Dados.......................................................................................... 596. Documentação de Análise ................................................................................. 60 6.1. Visão Macro dos Atores .............................................................................. 60 6.2. Identificação dos Atores .............................................................................. 60 6.3. Listas de Casos de Uso .............................................................................. 61 6.4. Diagrama de Caso de Uso .......................................................................... 61 6.5. Descrição detalhada dos Casos de Uso ..................................................... 63 6.6. Diagramas de Classes ................................................................................ 68 6.7. Modelo de Entidade-Relacionamento ......................................................... 68 6.8. Especificação das Tabelas ......................................................................... 69 6.9. Árvore do Sistema....................................................................................... 70 6.10. Especificação Técnica ................................................................................ 70 6.10.1. Layout das Principais Telas da Aplicação ............................................... 70 6.10.2. Layout dos Principais Relatórios ................ Erro! Indicador não definido. 6.11. Navegação .................................................................................................. 77 6.12. Segurança Física e Lógica .......................................................................... 77 6.12.1 Norma de Segurança Física .................................................................... 78 6.12.2 Norma da Segurança Lógica ................................................................... 787. Plano de Implantação......................................................................................... 79
  13. 13. 158. Conclusão .......................................................................................................... 809. Referências Bibliográficas .................................................................................. 81
  14. 14. 16 1. Introdução Uma informação estratégica, no cenário atual das empresas, pode gerarvárias oportunidades a uma organização e para atingir seus objetivos as empresaspromovem a integração e automação de seus processos. Promover o monitoramento de seus processos é essencial para que asempresas possam verificar as execuções e eficácia dos mesmos. A informação é a principal mola propulsora existente que inclina asorganizações à busca constante de seu gerenciamento e dos comportamentos a elarelacionados, contribuindo para uma aprendizagem organizacional firme, para obtermaior eficiência e desempenho dos seus processos. Mensurar dados e, transformá-los em linhas e grades inteligíveis aos olhosdos líderes de organizações é a proposta de grande parte dos sistemasdesenvolvidos tendo como foco a geração de indicadores. "... De forma a obter ummaior entendimento do relacionamento entre atividades da qualidade e odesempenho dos negócios, pesquisadores precisam desenvolver um método maissofisticado de medição dos efeitos das atividades de qualidade" (MANN e KEHOE,1994). "... As mudanças na tecnologia, competição, ambientes (interno e externo) estão demandando que nós mudemos o que medimos, como medimos e como usamos a medição. Estas mudanças estão forçando-nos a reexaminarmos paradigmas relativos à medição." (SINK, 1991). Segundo DAVENPORT (1994), as informações entram e saem dasorganizações sem que se tenha plena consciência de seu impacto, valor e custo.Portanto, é necessário que as informações relevantes sejam identificadas,selecionadas e disseminadas para a adaptação no meio em que elas se encontram.O monitoramento do ambiente externo traz um aprendizado gerencial sobre ainformação contida nos eventos e tendências do ambiente externo de umaorganização, e a utilização de um sistema de informação avançado potencializa todo
  15. 15. 17o processo de monitoramento desse ambiente externo. O principal objetivo da gestão da informação é tornar estratégica a informaçãorecebida e estimulá-la a se transforma em conhecimento (CHOO, 2002). Utilizando softwares livres, será desenvolvido um programa capaz de exibir osindicadores de adesão de atividades do programa de qualidade de vida e serviçosocial da empresa. 1.1. Tema O Sistema Indicador de Qualidade de Atividade (SIQA) será um sistemacapaz de mensurar a adesão dos funcionários às atividades propostas pelaempresa, observando os de maior relevância para a corporação. 1.2. Justificativa Tendo por principio o tratamento das informações de participação dosfuncionários nas atividades de assistência social e programas de qualidade de vida,procurando dessa forma, organizar os dados obtidos após a realização dos eventospara que esses possam ser apresentados de forma a que sejam utilizados paraestudos das atividades hoje desenvolvidas. A metodologia hoje utilizada pela empresa para a realização dessa atividadede tratamento dos dados é comum (planilha eletrônica e papel impresso). 1.3. Formulação do Problema CHOO (2002), relata que a informática há muitos anos é usada para ajudar naaquisição de dados internos, e que existem ganhos dramáticos em eficiênciaprocessual nas aplicações utilizadas.
  16. 16. 18 Muitas ainda são as dificuldades encontradas para realizar o procedimentooperacional de monitoramento de atividades de assistência social e qualidade devida oferecida pela empresa. Grande número das atividades é realizadosimultaneamente das dependências dos departamentos fisicamente distantes. Dessa forma, existe uma força tarefa para conhecer a satisfação de todos osfuncionários, acreditando-se que a participação dos colaboradores em seusprogramas indica um bom desempenho do evento. Dessa forma os esforços hoje estão em identificar quais eventos e programasmais satisfazem os funcionários. 1.4. Objetivos Um objetivo pode ser definido como um propósito ou alvo que se pretendeatingir. Tudo aquilo que se deseja alcançar através de uma ação clara e explicita,pode ser chamado de objetivos (MARINHO, 2007). 1.4.1. Objetivo Geral Desenvolver um sistema utilizando o ambiente Web, com uma interfaceprática para que o usuário tenha facilidade de incluir, modificar e extrair asinformações das atividades do programa de qualidade de vida e assistência socialda empresa. 1.4.2. Objetivo Específico Obter dados, transforma-los em informação e gerá-los em forma degráfico para a realização de estudo sobre os eventos sociais e atividades dequalidade de vida que mais satisfazem os funcionários, para tomada de decisão, nosdepartamentos e suas respectivas divisões.
  17. 17. 19 1.5. Organização do Trabalho O primeiro capítulo refere-se ao contexto do trabalho, o tema, os objetivosda monografia em apresentação. O segundo capítulo realiza a apresentação da empresa Cristini S.A. e seuramo de negócio. O terceiro capítulo, apresenta o cronograma das atividades dedesenvolvimento dessa monografia, sinalizando os prazos para a finalização dotrabalho. O quarto capítulo descreve o referencial teórico, todas as fontes de pesquisade ferramentas que serão utilizadas para o desenvolvimento do sistema e escrita damonografia. No quinto capítulo, é apresentada a proposta, a descrição, os resultados, asrestrições e as áreas afetadas pelo sistema que será desenvolvido. No sexto capítulo é apresentada a descrição e identificação dos atores ecasos de uso do sistema. Como também, a apresentação das principais telas dosistema e suas funcionabilidades. O sétimo capítulo descreve as atividades desempenhadas para a implantaçãosistema na empresa. Para o oitavo capítulo esta registrada a conclusão do trabalho. No nono e último capitulo está descrito todas as referências bibliografias quedão sustentação e base ao desenvolvimento deste trabalho.
  18. 18. 20 2. Análise Institucional Como tudo que é instituído, instituinte ou em vias de institucionalização, aanálise institucional é um produto social-histórico. Trata-se da concepção de históriada empresa (GOMES, 2006). 2.1. A Empresa e seu Negócio A Cristini S.A. é uma empresa (fictícia) nacional do setor elétrico brasileiro,tendo como área de atuação parte do território nacional e atividades em paísescomo Angola e Haiti, tendo como atividade principal, a geração e transmissão deenergia elétrica. A Cristini S.A. está sempre preocupada com a qualidade de vida de seusfuncionários e colaboradores, por isso, ela possui diversos profissionais que tem emsuas atividades primárias a busca pela satisfação e bem estar de todos que tornapossível o Programa de Qualidade de Vida. 2.1.1. Organograma da Empresa A presidência, as diretorias e os departamentos da empresa Cristini S.A.,estão dispostos da seguinte forma: Presidente Diretoria Diretoria Diretoria Financeira de Operação de Construção DA.F DL.F DT.F DE.O DI.O DT.O D1.O D2.O DA.C DL.C DT.C Figura 1 - Organograma da Empresa
  19. 19. 21 2.2. Descrição das Necessidades Segundo BEZERRA (2002), a atividade de levantamento de requisitoscorresponde à etapa de compreensão do problema, aplicada ao desenvolvimento desoftware. O principal objetivo do levantamento de requisitos é que usuários edesenvolvedores tenham a mesma visão do problema a ser desenvolvido. Nessaetapa, os desenvolvedores, juntamente com os clientes, definem as necessidadesdos futuros usuários do sistema a ser desenvolvido. Essas necessidades sãogeralmente denominadas requisitos. A empresa, hoje, precisa de um controle da aceitação e participação dosfuncionários e colaboradores em suas atividades, por isso existe a necessidade deidentificar quais atividades são carentes de mais atenção ou até mesmo a exclusãode programas que hoje fazem parte do calendário da empresa. Dessa forma o SIQA, deverá conter duas fases. Uma para o gerente dodepartamento para acompanhamento das informações e outra interfase para que ousuário realize a alimentação com os dados. Todos os acessos deverão seridentificados através de usuário e senha evitando assim a publicação dos dadospara pessoas não autorizadas. 2.3. Sistema de Informação Existente na Empresa Todo o procedimento de controle dos eventos realizados hoje pela empresa éinserido em uma planilha do aplicativo Microsoft Excel e enviado às pessoas queanalisarão estes dados através de e-mail. 2.4. Normas de Funcionamento Após análise, observa-se que para o pleno funcionamento do sistema, énecessário: o usuário ter acesso à intranet da empresa; utilizar usuário e senha paraacessar o sistema; quando o acesso for gerencial, este poderá administrar osusuários e os departamentos a que estes pertencem; quando o acesso for de
  20. 20. 22usuário, este poderá indicar qual atividade irá alimentar os bancos dados e permitir aconsulta dos mesmos através de números, percentuais e gráficos; 2.5. Ambiente Tecnológico Existente O ambiente tecnológico é composto por: 10 computadores AMD Sempron,1GB, HD 160GB, Gravador de DVD - Space BR, monitor LCD 15.6", sistemaoperacional Windows XP, todo o pacote Microsoft Office 2003; 5 impressorasLexmark T632 e, 5 scaner HP 5590.
  21. 21. 23 3. Cronograma Desenvolver o cronograma significa determinar as datas de início e fim paraas atividades do projeto. Se as datas de início e fim não forem realísticas, éimprovável que o projeto termine como planejado. ETAPAS MAR ABR MAI JUN JUL AGO SET OUT NOV DEZDefinição doProblemaDelimitação doTemaPesquisaBibliográficaLevantamentoTeóricoDefinição dametodologiaPlanejamentode AçõesLevantamentode RequisitosAnálise (def.casos de uso)Escrever aMonografiaApresentaçãoRef. TeóricoAcertos apósApresentaçãoEntrega Final -I SemestreProjetoImplementaçãoImplantaçãoApresentaçãoda monografiaAcertos apósapresentaçãoEntrega final Tabela 1 - Planejamento do Projeto de Desenvolvimento
  22. 22. 24 4. Referencial Teórico O objetivo deste capítulo é apresentar todas as tecnologias, processos econceitos estudados, que podem ser utilizados e os que foram escolhidos para odesenvolvimento do sistema. 4.1. Engenharia de Software “Um processo de software é um conjunto de atividades e resultadosassociados que geram um produto de software” (SOMMERVILLE, 2003). O processoé o fundamento da engenharia de software, é o que possibilita o desenvolvimentoracional do software através da efetiva utilização da tecnologia de engenharia(PRESSMAN, 2004). 4.1.1. Cleanroom O método cleanroom tem demonstrado que pode melhorar tanto aprodutividade de desenvolvedores, que o utilizam, quanto à qualidade do softwareque estes produzem. A engenharia de software cleanroom é um processo orientadoà equipe, que torna o desenvolvimento gerenciável e preditível, porque é feito sob ocontrole estatístico da qualidade (LINGER, 1994). O processo cleanroom é baseado no desenvolvimento e na certificação deum fluxo incremental de informações de software, elaborado por pequenas equipesindependentes. Nesse processo, a correção é obtida pela equipe dedesenvolvimento (geralmente próxima de zero defeito), através de especificação,projeto e verificação formais. A equipe de verificação da correção substitui o teste deunidade e a conseqüente depuração, passando o software diretamente para a fasede testes do sistema, sem que seja executado previamente pela equipe dedesenvolvimento (LINGER, 1994).
  23. 23. 25 4.1.2. Métodos Ágeis Para LARMAN (2005), o método de desenvolvimento ágil aplicadesenvolvimento iterativo e evolutivo de tempo limitado, emprega planejamento,promove entrega incremental e inclui outros valores e práticas que encorajamagilidade - resposta rápida e flexível à modificação. Segundo LARMAN (2005), não é possível definir exatamente métodoságeis, pois as práticas específicas variam muito. No entanto, iterações curtas detempo limitado com refinamento evolutivo de planos, requisitos e projeto é umaprática básica que os métodos compartilham. Além disso, eles promovem práticas eprincípios que refletem uma sensibilidade ágil de simplicidade, leveza, comunicação,equipes auto-organizadas, entre outras. 4.1.2.1. Extreme Programming A Extreme Programming (Programação Extrema) é uma metodologia ágil paraequipes pequenas e médias que desenvolvem software baseado em requisitosvagos e que se modificam rapidamente (BECK, 1999). Dentre as principaisdiferenças da Extreme Programming (XP) em relação às outras metodologias estão:feedback constante; abordagem incremental e a comunicação entre as pessoas éencorajada. A Figura 2 mostra algumas das características da Extreme Programming(XP): Figura 2 – Características da XP
  24. 24. 26 A maioria das regras da XP causa polêmica à primeira vista e muitas nãofazem sentido se aplicadas isoladamente. É a sinergia de seu conjunto que sustentao sucesso de XP, encabeçando uma verdadeira revolução no desenvolvimento desoftware. A XP enfatiza o desenvolvimento rápido do projeto e visa garantir asatisfação do cliente, além de favorecer o cumprimento das estimativas. As regras,práticas e valores da XP proporcionam um agradável ambiente de desenvolvimentode software para os seus seguidores, que são conduzidos por quatro valores:comunicação, simplicidade, feedback e coragem (BECK , 1999). 4.1.2.2. Scrum Outra metodologia que apresenta uma comunidade grande de usuários é aScrum, também chamada de metodologia Ágil (SCHWABER e BEEDLE, 2002). Seuobjetivo é fornecer um processo conveniente para projeto e desenvolvimentoorientado a objeto. A Scrum apresenta uma abordagem empírica que aplica algumasidéias da teoria de controle de processos industriais para o desenvolvimento desoftwares, reintroduzindo as idéias de flexibilidade, adaptabilidade e produtividade.O foco da metodologia é encontrar uma forma de trabalho dos membros da equipepara produzir o software de forma flexível e em um ambiente em constantemudança. Conforme SIQUEIRA (2007), processos empíricos aceitam as falhas comoconseqüência natural da produção e tentam torná-las visíveis e passíveis decorreção, o mais cedo possível, para que a abordagem empírica se torne ideal parao ambiente de desenvolvimento de software. Nesses ambientes, as funcionalidadesconsideradas “terminadas” muitas vezes não estão suficientemente testadas eaceitas pelo cliente, fazendo-se necessárias atividades de inspeção e de adaptação. A idéia principal da metodologia Scrum é que o desenvolvimento de softwaresenvolve muitas variáveis técnicas e do ambiente, como requisitos, recursos etecnologia, que podem mudar durante o processo. Isto torna o processo dedesenvolvimento imprevisível e complexo, requerendo flexibilidade para acompanharas mudanças. O resultado do processo deve ser um software que é realmente útilpara o cliente. (SCHWABER e BEEDLE, 2002).
  25. 25. 27 4.1.3. Rational Unified Process – RUP Rational Unified Process (Processo Unificado da Rational), é um processoproprietário de desenvolvimento de software criado pela IBM Rational SoftwareCorporation. O Processo Unificado da Rational (RUP) é um processo bemestruturado para desenvolver software com alta qualidade de modo repetível eprevisível (KRUCHTEN, 2003). Logo abaixo é representada a arquitetura global do RUP, que éorganizada em duas dimensões. O eixo horizontal evidencia o aspecto dinâmico doprocesso, descrevendo como ocorre o desenvolvimento ao longo do tempo emtermos de fases, iterações e marcos. Também mostra como a ênfase varia ao longodo tempo. Por exemplo, nas iterações iniciais, é utilizado mais tempo commodelagem de negócio, requisitos, análise e projeto; enquanto nas iterações finais otempo é mais utilizado com implementação, teste e distribuição. Embora os nomesdos fluxos de engenharia possam evocar as fases seqüenciais do modelo emcascata, estes fluxos são revisitados ao longo do ciclo de vida, variando deintensidade a cada iteração. Na figura 3, o eixo vertical representa o aspecto estático do processo,organizado em termos de disciplinas. No RUP, processo é definido como sendo umadescrição de quem está fazendo o quê, como e quando – estes quatro elementosestruturais, correspondem a Papel (quem), Atividade (como), Artefato (o quê) eFluxo (quando). Figura 3 – Arquitetura de Processo RUP
  26. 26. 28 Na Figura 4 são apresentados todos os conceitos-chave, os elementosestruturais estáticos, definidos no RUP. Figura 4 – Estrutura Estática RUP Fluxo: é a seqüência de atividades que produz um resultado de valorobservável. No RUP, o fluxo é expresso como um diagrama de atividade da UML.Há muitas maneiras de se organizar o conjunto de atividades em fluxos numprocesso de engenharia de software. No RUP, os fluxos são organizados em doisníveis: Fluxo Central (Disciplina) e Detalhes de Fluxo (KRUCHTEN, 2003). Atividade: é o trabalho executado para produzir um resultado significativo nocontexto do projeto; consiste, geralmente, na criação ou atualização de artefatos.Toda atividade é atribuída a um papel específico. Mentor de Ferramenta fornecediretrizes de como usar uma ferramenta de software específica na execução daatividade (KRUCHTEN, 2003). Papel: define o comportamento e as responsabilidades de um indivíduo ougrupo de indivíduos trabalhando em equipe. O comportamento é expresso em
  27. 27. 29termos de atividades a serem executadas. Responsabilidades são expressas emtermos de artefatos que o papel cria, modifica ou controla (KRUCHTEN, 2003). Artefato: é um produto do projeto; pode ser um documento, um modelo, umcódigo-fonte, um programa-executável etc. Um artefato é de responsabilidade de umúnico papel, embora possa ser usado por vários papéis. Artefatos são usados,produzidos ou modificados em atividades. Gabarito (Template) é um „modelo‟ doartefato a ser usado em sua criação. Os gabaritos são ligados à ferramenta que seráusada. Por exemplo, um template do Microsoft Word pode ser usado como gabaritode um artefato que seja um documento ou relatório. Um Relatório consiste eminformações que são extraídas de um ou vários artefatos. Diretrizes são informaçõessobre como desenvolver, avaliar e usar os artefatos. Uma atividade representa otrabalho a ser feito enquanto as diretrizes expressam como fazer o trabalho. Sãoregras, recomendações ou métodos para auxiliar a realização de atividades.Descrevem técnicas específicas para criar certos artefatos, transformar um artefatoem outro, ou avaliar a qualidade de um artefato (KRUCHTEN, 2003). O RUP também pode ser utilizado no desenvolvimento e manutenção deprojetos de pequeno ou de médio porte. Para que isso seja possível, algumasetapas ou passos podem ser eliminados a depender das características do projetopara simplificar ou diminuir as necessidades de documentação, minimizando aformalização (KOHRELL e WONCH ,2005). As diferentes configurações do RUPpossibilitam o suporte de equipes grandes e pequenas, além de técnicas dedesenvolvimento disciplinadas ou menos formais (KRUCHTEN, 2000). 4.1.4. Padrões de Projeto “...cada padrão descreve um problema no nosso ambiente e o núcleo de sua solução, de tal forma que você possa usar esta solução mais de um milhão de vezes, sem nunca fazê-lo da mesmo maneira...” ALEXANDER (1977) Muito embora ALEXANDER (1997), estivesse falando acerca de padrões, emconstrução e cidades, o que ele diz é verdadeiro em relação aos padrões de projetoorientados a objeto. Nossas soluções são expressas em termos de objetos einterfaces em vez de paredes e portas, mas no cerne de ambos os tipos de padrões
  28. 28. 30estão às soluções para um problema num contexto (GAMMA et al, 2000). GAMMA et al (2000), explicam que em geral, um padrão tem quatroelementos essenciais: o nome do projeto é uma referência que podemos usar paradescrever um problema de projeto, suas soluções e conseqüências em uma ou duaspalavras. Dar nome a um padrão aumenta imediatamente o nosso vocabulário. Issonos permite projetar em um nível mais alto de abstração; o problema descrevequando aplicar o padrão. Ele explica o problema e seu contexto. Pode descreverproblemas de projeto específicos, tais como representar algoritmos como objetos; edescrever os elementos que compõem o projeto, seus relacionamentos, suasresponsabilidades e colaborações. A solução não descreve um projeto concreto ouuma implantação em particular porque um padrão é como um gabarito que pode seraplicado em muitas situações diferentes. Em vez disso, o padrão fornece umadescrição abstrata de um problema de projeto e de como um arranjo geral deelementos (classes e objetos, no nosso caso) resolve o mesmo; as conseqüênciassão os resultados e análises das vantagens e desvantagens da aplicação do padrão. Um padrão de projeto nomeia, abstrai e identifica os aspectos-chave deuma estrutura de projeto comum para torná-la útil para a criação de um projetoorientado a objeto reutilizável. O padrão de projeto identifica as classes e instânciasparticipantes, seus papéis, colaborações e a distribuição de responsabilidades. Cadapadrão de projeto focaliza um problema ou tópico particular de projeto orientado aobjetos. Ele descreve quando pode ser aplicado, se ele pode ser aplicado em funçãode outras restrições de projeto e as conseqüências, custos e benefícios de suautilização (GAMMA et al, 2000). 4.1.4.1. Padrão Singleton Garantir que uma classe tenha somente uma instância e fornece um pontoglobal de acesso para a mesma. É importante para algumas classes ter uma, eapenas uma, estância. Por exemplo, embora possam existir muitas impressoras emum sistema, deveria haver somente um spooler de impressoras. Da mesma formadeveria haver somente um sistema de arquivos e um gerenciador de janelas. Um
  29. 29. 31filtro digital terá somente um conversor A/D. Um sistema de contabilidade serádedicado a servir somente a uma companhia (GAMMA et al, 2000). Como garantimos que uma classe tenha somente uma instância e que essainstância seja facilmente acessível. Uma variável global torna o objeto acessível,mas não impede você de instanciar múltiplos objetos (GAMMA et al, 2000). Para GAMMA et al (2000), uma solução melhor seria tornar a própria classeresponsável por manter o controle de sua única instância. A classe pode garantirque nenhuma outra instância seja criada (pela interceptação das solicitações paracriação de novos objetos), bem como pode fornecer um meio para acessar suaúnica instância. 4.1.4.2. Padrão Template Method Definir o esqueleto de um algoritmo em uma operação, postergando(deferring) alguns passos para subclasses. Templat e Method (Modelo de Método)permitem que subclasses redefinam certos passos de um algoritmo sem mudar aestrutura do mesmo (GAMMA et al, 2000). O padrão Template Method pode ser utilizado para a construção deframeworks. Ele também poderia ser considerado um padrão estrutural porquedefine uma estrutura inicial (“esqueleto”) para um determinado algoritmo ou tarefa(GAMMA et al, 2000). Por exemplo, um jogo de computador é uma aplicação que, basicamente,implementa um laço de execução do tipo: 1) recupera dados de entrada do usuário(input); 2) atualiza o estado da aplicação, baseado nos dados de entrada; 3)desenha os resultados na tela (render) e; 4. voltar para 1 (GAMMA et al, 2000). É possível definir um framework inicial para jogos como é mostrada nafigura 05.
  30. 30. 32 Figura 5: Padrão Template Method em um framework A classe base Game implementa o laço de execução (a operação run) demaneira fixa, enquanto as classes derivadas implementam as funcionalidadesespecíficas (getInput, update e render) (GAMMA et al, 2000). Esse padrão está relacionado com outros padrões como o State, quedefine classes para representar estados de uma aplicação. Nesse caso, cada classerepresentaria uma “fase de jogo” (ou seja, cada fase seria um estado diferente),sendo que todas elas utilizariam o Template Method para definir a funcionalidade (ousejam, todas elas utilizariam o framework) (GAMMA et al, 2000). 4.1.4.3. Padrão Facade Fornece uma interface unificada para um conjunto de interfaces em umsubsistema. Facade (Fachada) define uma interface de nível mais alto que torna osubsistema mais fácil de ser usado. Estruturar um sistema em subsistemas ajuda areduzir a complexidade. Um objetivo comum de todos os projetos é minimizar acomunicação e as dependências entre subsistemas. Uma maneira de atingir esteobjetivo é introduzir o objeto facade, o qual fornece uma interface única esimplificada para os recursos e facilidades mais gerais de um sistema, conformeexibido na figura 6 (GAMMA et al, 2000).
  31. 31. 33 Figura 6 - Padrão Facade Considere, por exemplo, um ambiente de programação que forneceacesso às aplicações para o seu subsistema compilador. Este subsistema contémclasses, tais como Scanner, Parser, ProgramNode, BytecodeStram eProgramaNodeBuilder, que implementam o compilador. Algumas aplicaçõesespecializadas podem necessitar acessar essas classes diretamente. Mas a maioriados clientes de um compilador geralmente não se preocupa com detalhes tais comoanálise (parsing) e geração de código; eles apenas querem compilar seu código.Para eles, as interfaces poderosas, porém de baixo nível, do subsistema compiladorsomente complicam sua tarefa (GAMMA et al, 2000). Para fornecer uma interface de nível mais alto que pode isolar os clientesdestas classes, o subsistema compilador também inclui uma classe compiler (verfigura 7). A classe compiler funciona como uma facade (fachada): ela fornece aosclientes uma interface única e simples para o subsistema compilador. Ela junta asclasses que implementam a funcionalidade de um compilador, sem ocultá-lascompletamente. O compilador facade torna a vida mais fácil para a maioria dosprogramadores, sem, entretanto, ocultar a funcionalidade de nível mais baixo dospoucos que a necessitam (GAMMA et al, 2000).
  32. 32. 34 Figura 7 – Classes do Subsistema Compilador O padrão facade isola os clientes dos componentes do subsistema, destaforma reduzindo o numero de objetos com que os clientes têm que lidar e tornando osubsistema mais fácil de usar. Ele não impede as aplicações de utilizarem asclasses do subsistema caso necessitem fazê-lo. Assim, você pode escolher entre afacilidade de uso e a generalidade. (GAMMA et al, 2000). 4.1.5. Arquitetura de Software À medida que o tamanho e a complexidade dos sistemas de softwareaumentam, o projeto e a especificação da estrutura global do sistema se tornamquestões mais importantes do que a escolha de algoritmos e estruturas de dados decomputação (SHAW e GARLAN, 1996). A especificação de uma arquitetura adequada é essencial para o sucessode um projeto de software. Ela representa a base da solução computacional para oproblema descrito pelos requisitos do software, sendo o artefato que vai guiar as
  33. 33. 35etapas subseqüentes do desenvolvimento, como o projeto detalhado e aimplementação. É por isso que a maior parte do tempo de um arquiteto é dedicadaao particionamento adequado do sistema em um conjunto de componentes, módulosou objetos interrelacionados (GORTON, 2006). Para MEHDI et al (2000), a arquitetura de software é colocada como umaferramenta para lidar com a complexidade do software e enfatizam que arquiteturadeve satisfazer os requisitos funcionais e não funcionais do sistema, incrementandoa definição de que arquitetura de software é o conjunto de componentes e seusrelacionamentos. Portanto, é possível notar que a arquitetura de software é mais doque a descrição dos componentes que a compõem e do relacionamento entre eles.A arquitetura é a interface entre duas partes distintas: o problema de negócio e asolução técnica (ASTUDILLO e STUART 1998). Para BASS et al (1998) arquitetura de software são as estruturas queincluem componentes, suas propriedades externas e os relacionamentos entre eles,constituindo uma abstração do sistema. 4.1.5.1. Modelo Microkernel O padrão arquitetural Microkernel é formado pelos componentesmicrokernel, internal server, external server, adpter e client. Este padrão se adequabem às características de um framework de aplicações. O componente microkernelrepresenta os frozen spots do framework, o internal server representa subsistemasindependentes, mas presentes no núcleo do framework, os external serversrepresentam os hot spots, os clients são os aplicativos desenvolvidos e o adapterconstitui uma interface entre clientes e seus servidores externos (BUSCHMANN etal, 1996). Propõe a separação de um conjunto de funcionalidades mínimas dasfuncionalidades estendidas e partes específicas de clientes. O encapsulamento dosserviços fundamentais da aplicação é realizado no componente microkernel. As
  34. 34. 36funcionalidades estendidas e específicas devem ser distribuídas entre oscomponentes restantes da arquitetura (BUSCHMANN et al, 1996). 4.1.5.2. Modelo Broker Para aplicações distribuídas, onde uma aplicação pode acessar serviçosde outras aplicações simplesmente pelo envio de mensagens a objetos mediadores,sem se preocupar com questões específicas relacionadas à comunicação entreprocessos, como a sua localização (BUSCHMANN et al, 1996). O uso de um broker de integração pode trazer vários benefícios: quandoum fornecedor de serviços muda o formato da mensagem que usa, um broker podetransformar versões obsoletas e incompatíveis de mensagens para adaptar ao novoformato de mensagens. Também fornecem uma infra-estrutura fiável de mensagens(EMILOV, 2001) Existem três responsabilidades envolvidas na comunicação, baseada nummediador: encaminhamento de mensagens, que permite o controle do fluxo,identificando a mensagem vinda de uma aplicação e com base no tipo e noconteúdo, redirecioná-la para a aplicação alvo; transformação de mensagens, quepermite a tradução adequada da mensagem para a aplicação receptora. Oselementos da mensagem recebida são convertidos para o formato conhecido pelaaplicação destino. É necessário um dicionário que permita ao broker identificar qualo formato compreendido pelas aplicações envolventes e validação de mensagens,que permite a identificação do conteúdo das mensagens, tornando possível a suatransformação e distribuição para o recipiente adequado no formato correto.Orquestração de processos, que permite a integração e coordenação dos processosde negócio das aplicações envolvidas (EMILOV, 2001) 4.1.5.3. Modelo Model View Controller – MVC (Modelo Visão Controle) O Modelo Model View Controller (Modelo, Visão e Controle) é descritocomo um padrão arquitetural aplicável a software interativos e que organiza a
  35. 35. 37aplicação em três tipos de componentes: os módulos model, view e controller.(BUSCHMANN et al, 1996). Na figura 8 é possível ver a ilustração de como a arquitetura é dividida emtrês tipos de componentes, que possuem responsabilidades bem definidas, a saber:modelo, visão e controlador. O modelo encapsula os dados e a funcionalidade donegócio, sendo independente de representações de saída e tratamento dasinterações dos usuários com a aplicação; a visão mostra as informações para osusuários, sendo responsável pelos formatos de saída específicos e obtendo seusdados a partir do modelo; e o controlador trata os eventos de entrada dos usuáriosdisparados nas interfaces, que são traduzidos para requisições de serviços aomodelo ou à visão (BUSCHMANN et al, 1996). Figura 8 – Representação da Arquitetura MVC A adoção da arquitetura Model View Controller (MVC) torna a aplicaçãoescapável e de fácil manutenção, além de propiciar o desenvolvimento em paralelopara cada camada, pois todas são independentes (MACORATTI, 2010). Na arquitetura MVC o modelo representa os dados da aplicação e asregras do negócio que governam o acesso e a modificação dos dados. O modelomantém o estado persistente do negócio e fornece ao controlador a capacidade deacessar as funcionalidades da aplicação encapsuladas pelo próprio modelo(MACORATTI, 2010).
  36. 36. 38 4.1.6. Modelagem de Processos Segundo RUMBAUGH (1994), um modelo é uma abstração de algumacoisa, cujo propósito é permitir que se conheça essa coisa antes de construí-la.Como um modelo emite os detalhes não-essenciais, sua manipulação é mais fácil doque a da entidade original. 4.1.6.1. aSideML A linguagem aSideML oferece semântica, notação e regras que permitemque o projetista construa modelos cujo foco sejam os principais conceitos,mecanismos e propriedades de sistemas orientados a aspectos, nos quais osaspectos e crosscutting sejam explicitamente tratados como cidadãos de primeiraclasse. Esses modelos ajudam a lidar com a complexidade de sistemas orientados aaspectos, ao fornecer visões essenciais da estrutura e do comportamento queenfatizam o papel dos elementos crosscutting e seus relacionamentos com outroselementos. Esses modelos também servem como planos preliminares (blueprints)que devem ser desenvolvidos na direção dos modelos de implementação deferramentas e linguagens de programação orientadas a aspectos (CHAVEZ, 2004) Em aSideML, a modelagem estrutural oferece a visão estática de umsistema na presença dos aspectos. Os principais constituintes dos modelosestruturais são as classes, aspectos e seus relacionamentos. A visão estáticadescreve as características transversais de aspectos como elementos demodelagem discretos, organizados em interfaces transversais. O comportamentodinâmico dessas características e descrito por modelos comportamentais (CHAVEZ,2004) Em CHAVEZ (2004) é apresentada aSideML, como uma linguagem demodelagem construída para especificar e comunicar projetos orientados a aspectos.
  37. 37. 39 4.1.6.2. Business Process Modeling Notation – BPMN A Business Process Modeling Notation (Notação de Modelo de Processode Negócio) está se consolidando como o mais importante padrão de notaçãográfica aberta para desenhar e modelar processos de negócios. Com ela é possívelmodelar os processos de negócio capturando e documentando modelos atuais (AS-IS) em diagramas de fácil entendimento, projetar e descrever modelos ideais (TO-BE), estender detalhes técnicos, monitorar e mensurar o negócio com indicadoresde desempenho baseados nas atividades dos fluxos de processos automatizados. Oobjetivo do desenho é ser de entendimento rápido por todos os usuários de negócio,para que permita aos analistas criarem seus primeiros esboços dos processos e osarquitetos de tecnologia da informação e desenvolvedores adaptem os processos aserem gerenciados e monitorados. (BITENCOURT, 2010) A Business Process Modeling Notation (BPMN) suporta orquestração deserviços e a execução de tarefas humanas do workflow, ao permitir coreografia demúltiplos processos de negócio. Além disso, possui o mapeamento para gerar aslinguagens XML para execução de processos em Business Process ModelingLanguage (BPML) e Business Process Execution Language (BPEL) diminuindodistâncias entre o desenho do processo e a sua automação (BITENCOURT, 2010). 4.1.6.3. Unified Modeling Language – UML (Linguagem de Modelagem Unificada) A Unified Modeling Language (Linguagem de Modelagem Unificada) éuma linguagem padrão para especificar, visualizar, documentar e construir artefatosde um sistema e pode ser utilizada com todos os processos ao longo do ciclo dedesenvolvimento e através de diferentes tecnologias de implementação (FURLAN,1998). A Linguagem de Modelagem Unificada (UML) é uma linguagem visualpara modelar sistemas orientados a objetos. Isso quer dizer que a UML é umalinguagem constituída de elementos gráficos (visuais) utilizados na modelagem quepermitem representar conceitos do paradigma da orientação a objetos. Através dos
  38. 38. 40elementos gráficos definidos nesta linguagem pode-se construir diagramas querepresentam diversas perspectivas do sistema (BEZERRA, 2002). Uma empresa de software bem-sucedida é aquela que fornece softwarede qualidade e capaz de atender às necessidades dos respectivos usuários. Umaempresa que consiga desenvolver esse software de maneira previsível e emdeterminado período, com utilização eficiente e eficaz de recursos, será umaempresa com um negócio viável (BOOCH et al, 2006). A modelagem é uma parte central de todas as atividades que levam àimplantação de um bom software, Construímos modelos para comunicar a estruturae o comportamento desejados do sistema. Construímos modelos para visualizar econtrolar a arquitetura do sistema. Construímos modelos para compreender melhoro sistema que estamos elaborando, muitas vezes expondo oportunidades desimplificação e reaproveitamento. Construímos modelos para gerenciar riscos(BOOCH et al, 2006). Segundo BOOCH et al (2006), a UML é uma linguagem destinada a:visualizar; especificar; construir e documentar. O vocabulário da UML abrange três tipos de blocos de construção, itenssão as abstrações identificadas como cidadãos de primeira classe em um modelo;os relacionamentos reúnem esses itens; os diagramas agrupam coleçõesinteressantes de itens (BOOCH et al, 2006). BOOCH et al (2006), nos explicam que existem quatro tipos de itens naUML: estruturais são os substantivos utilizados em modelos da UML. São partesmais estáticas do modelo, representando elementos conceituais ou físicos.Coletivamente, os itens estruturais são chamados de classificadores;comportamentais são as partes dinâmicas dos modelos de UML. São os verbos deum modelo, representando comportamentos no tempo e no espaço. Ao todo,existem dois tipos principais de itens comportamentais: interação e máquina deestado; agrupamentos são as partes organizacionais dos modelos de UML. São osblocos em que os modelos podem ser decompostos. Ao todo, existe apenas um tipo
  39. 39. 41principal de itens de agrupamento, chamado pacotes e, anotacionais são as partesexplicativas dos modelos de UML. São comentários, incluídos para descrever,esclarecer e fazer alguma observação sobre qualquer elemento do modelo. Na literatura de BOOCH et al (2006), está registrado que existem quatrotipos de relacionamento na UML: primeiro, uma dependência é um relacionamentosemântico entre dois itens, nos quais a alteração de um (o item de independente)pode afetar a semântica de outro (o item de dependente); segundo, uma associaçãoé um relacionamento estrutural entre classes que descreve um conjunto de ligações,em que as ligações são conexões entre objetos que são as instâncias das classes;terceiro, uma generalização é um relacionamento de especialização/generalização,no qual os objetos dos elementos especializados (os filhos) são substituíveis porobjetos do elemento generalizado (os pais) e quarto, uma realização é umrelacionamento semântico entre classificadores, em que um classificador especificaum contrato que outro classificador garante executar. Diagrama na UML é uma representação gráfica de um conjunto deelementos, geralmente representados como gráficos de vértices (itens) e arcos(relacionamentos). São desenhados para permitir a visualização de um sistema sobdiferentes perspectivas; nesse sentido, um diagrama constitui uma projeção de umdeterminado sistema. Em todos os sistemas, com exceção dos mais triviais, umdiagrama representa uma visão parcial dos elementos que compõem o sistema. Omesmo elemento pode aparecer em todos os diagramas, em apenas alguns (o casomais comum) ou em nenhum (um caso raro). Na teoria, um diagrama pode conterqualquer combinação de itens e de relacionamentos. Na prática, porém, apareceráum pequeno número de combinações comuns, que são consistentes com as cincovisões mais úteis na arquitetura de um sistema completo de software. Por isso, aUML inclui 13 desses diagramas (BOOCH et al, 2006). A UML possui treze tipos de diagramas, divididos em duas categorias:diagramas estruturais ou estáticos e dinâmicos.
  40. 40. 42 Figura 9 - Tipos de Diagramas UML 4.1.7. A Orientação a Objetos O termo Orientação a Objetos (OO) sugere uma associação entre(abstrações de) coisas do mundo real e trechos de programas de computador ouobjetos (YOURDON, 1999). Na Programação Orientada a Objetos (POO), dados eprocedimentos passam a fazer parte de um elemento básico, o objeto. A POOintroduz uma abordagem na qual o desenvolvedor visualiza seu programa emexecução como uma coleção de objetos cooperantes que se comunicam por meiode troca de mensagens (VINCENZI, 2004). 4.1.7.1. Objetos É uma instância de uma classe criada em tempo de execução. Cadaobjeto tem uma cópia dos dados definidos na classe e encapsula estado ecomportamento. Os objetos interagem entre si e são ativados por meio de troca demensagens. (VINCENZI, 2004). 4.1.7.2. Classes É uma descrição de um grupo de objetos com propriedades (atributos),comportamentos (operações), relacionamentos com outros objetos e semânticas
  41. 41. 43comuns. Assim, uma classe é um gabarito para criar objetos, onde cada objeto éuma cópia de alguma classe. (TERRY, 2001). 4.1.7.3. Encapsulamento É uma técnica empregada para garantir a ocultação de informações naqual a interface e a implementação de uma classe são separadas sintaticamente.Somente os métodos pertencentes ao objeto podem ter acesso aos dadosencapsulados. O encapsulamento estimula a modularidade do programa e restringepossíveis interdependências com outras classes, exceto por meio de sua interface.(VINCENZI, 2004). 4.1.7.4. Herança É o mecanismo de reutilização de atributos e operações, definidos emclasses gerais, por classes mais específicas, podendo ser usada para expressartanto generalização como associação. (FURLAN, 1998). 4.1.7.5. Polimorfismo Qualidade ou estado de um objeto ser capaz de assumir diferentesformas. Possibilita que ao enviar uma mesma mensagem para um conjunto deobjetos, cada objeto responda de maneira diferente em função da mensagemrecebida (VINCENZI, 2004). Embora este conceito exista há décadas, as técnicas de orientação aobjeto permitem reutilizar mais do que simplesmente o código, podendo fazer uso derequisitos, análise, projeto, planejamento de testes, interfaces de usuários earquiteturas. Assim, praticamente todos os componentes do ciclo de vida daengenharia de software podem ser encapsulados como objetos reusáveis.(YOURDON, 1999).
  42. 42. 44 Alguns benefícios da orientação a objetos apresentados por OLIVEIRO(2000) são: reaproveitamento: as classes são projetadas de forma que possam serreutilizadas em vários sistemas; estabilidade: classes projetadas para reutilizaçãotornam-se estáveis, pois são testadas e aperfeiçoadas para várias situações;projetistas pensam no comportamento dos objetos e não nos detalhes de baixo-nível: o encapsulamento oculta os detalhes e faz com que as classes se tornemcaixas-pretas, onde somente se precisa compreender seu comportamento e comose comunicar com elas; desenvolvimento Acelerado: os aplicativos são criados comcomponentes pré-existentes que se adaptam a um projeto em particular e bibliotecasde classes corporativas: as empresas podem desenvolver bibliotecas de classespróprias, que refletem os padrões internos da organização e as necessidades desuas aplicações. Estes benefícios proporcionaram o início da reutilização desoluções no desenvolvimento de software. 4.1.8. Linguagem de Programação Podemos imaginar o computador como uma super calculadora, capaz defazer cálculos muito mais rápido que nós, mas para isso devemos dizer para ocomputador o que deve ser calculado e como deve ser calculado. A função daslinguagens de programação é exatamente essa, ou seja, servir de um meio decomunicação entre computadores e humanos (ANDRADE, 2007). 4.1.8.1. Active Server Pages – ASP O Active Server Pages (Páginas de Servidor Ativa) são páginas webdinâmicas que interagem com a linguagem Hyper Text Markup Language (HTML) esurgiu juntamente com o lançamento do IIS (Internet Information Server 3.0). O IIS éo servidor web mais recomendado pela Microsoft para desenvolvimento de sitesdinâmicos com Active Server Pages (ASP). A tecnologia ASP disponibiliza umconjunto de componentes para o desenvolvimento de páginas web que possuemconteúdo dinâmico, interativo e de alta performance. Isto quer dizer que uma parteda página é escrita em HTML, ou seja, estática e a outra parte é dinâmica quesignifica que pode ser escrita em uma linguagem de script onde os mesmos são
  43. 43. 45inseridos nas páginas HTML e processados pelo servidor web antes de seremenviadas ao navegador do usuário. Assim, muitas funcionalidades e lógicas de umapágina ASP é controlada através de comandos de script. Teoricamente, o ASP podeser trabalhado em qualquer linguagem de criação de scripts, do VBSCRIPT aoPHYTON. O Visual Basic Script Language é uma das muitas possibilidades delinguagem de script que executam em um servidor e, para o IIS, ela é a linguagempadrão (WEISSINGER, 2000). O ASP é uma tecnologia largamente empregada na Internet, isso se deveao fato da sua capacidade de interagir com banco de dados através do ActiveX DataObjects (ADO). O ADO é uma coleção de objetos utilizados para recuperação,alteração, inclusão e exclusão de registros em bancos de dados ODBC e OLE DB,inserido nas páginas e é executado no Servidor Web, retornando assim asinformações contidas no banco de dados em formato HTML (WEISSINGER, 2000). 4.1.8.2. Java Server Pages – JSP O (Páginas de Servidor Java) foi desenvolvido pela Sun Microsystems econsiste em uma tecnologia baseada em Java que simplifica o processo dedesenvolvimento de aplicações para a web. A tecnologia JSP interage fortementecom Java, HTML, banco de dados e Hypertext Transfer Protocol (HTTP) (FIELDS,2000). O Java Server Pages (JSP) pode ser visto como um tipo de linguagem decriação de scripts no servidor. O seu código de programação é tipicamente Java,onde ainda aceita um conjunto de tags personalizadas que interagem com objetosJava no servidor, sem a necessidade de que o código java apareça na página, comisto permite uma separação da camada de apresentação e da lógica de negócio dosite. Sendo uma tecnologia baseada em java, ela se aproveita de todas asvantagens que a linguagem java fornece em relação a desenvolvimento eacionamento (FIELDS, 2000).
  44. 44. 46 4.1.8.3. HyperText Markup Language – HTML O HyperText Markup Language (Linguagem de Marcação Hiper Texto) éuma linguagem simples composta de marcações de formatação e diagramação dehipertexto/hipermídia (informações em texto, imagens, sons e ações ligadas umasàs outras de uma forma complexa e não seqüencial através de chavesrelacionadas). (CASTRO, 2005). A linguagem do HyperText Markup Language (HTML) é a linguagem daWord Wide Web (WWW), justamente por essa capacidade de formatação ediagramação de hipertexto/hipermídia. Atualmente existem muitas outras linguagensutilizadas concorrentemente com a HTML (Java, ActiveX, etc...) mas a base daWWW ainda é, de longe, o HTML, que é interpretada por todos os navegadores(browers) disponíveis (Netscape, Internet Explorer, Mosaic, etc...).(CASTRO, 2005). Para CASTRO (2005), HTML ou linguagem de marcação é uma linguagemuniversal e se destina à elaboração de páginas de hiper-texto, como o próprio nomeindica. Ela é uma linguagem simples composta de marcações de formatação ediagramação de hipertexto/hipermídia (informações em texto, imagens, sons e açõesligadas umas às outras de uma forma complexa e não seqüencial através de chavesrelacionadas). Conceitua-se hiper-texto por certos itens de um documento quecontém uma ligação à outra zona do mesmo documento ou, como é mais vulgar, aoutros documentos. A principal aplicação do HTML é a criação de páginas na web que não setrata de uma linguagem de programação. Antes uma espécie de linguagem deformatação, o HTML é um ficheiro de texto que é formatado através de uma série decomandos, os tags (CASTRO, 2005). Embora existam várias dezenas desses tags, apenas uma pequena partedeles é utilizada normalmente e ainda existem algumas regras básicas que sãonecessárias para compreender antes de se começar com a criação de páginas(CASTRO, 2005).
  45. 45. 47 4.1.8.4. Linguagem PHP A tecnologia PHP surgiu em 1994 como um projeto pessoal de RasmusLerdorf com o intuito de controlar acessos a sua página web. Esta linguagem éfortemente baseada nas linguagens C, Java e Perl e ainda pode ser vista como umacombinação de linguagem de programação e servidores de aplicações. Permite criarsites web dinâmicos, fornece forte suporte inerente para o acesso a banco de dado.O lançamento do PHP4, ocorreu em maio de 2000, onde trouxe como uma dasprincipais novidades o suporte a sessões, com o intuito de identificar o cliente quesolicitou determinada informação. Além das mudanças referentes à sintaxe e aosnovos recursos de programação, o PHP trouxe também um otimizador chamadoZend, que permite a execução mais 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 (BRAVALHERI, 2008). O código PHP é embutido no HTML, ou seja, ele pode ser escrito no meiode uma página HTML que será interpretada pelo servidor. O PHP é executado noservidor, sendo enviado para o cliente apenas HTML puro. Desta maneira é possívelinteragir com bancos de dados e aplicações existentes no servidor, com a vantagemde não expor o código fonte para o cliente (BRAVALHERI, 2008). Uma das vantagens do PHP é o suporte nativo a um grande número debancos de dados, como dBase, Interbase, mSQL, mySQL, Oracle, Sybase,PostgreSQL, além disso, tem suporte a outros serviços através de protocolos comoIMAP, SNMP, NNTP, POP3 e, logicamente, HTTP. Pode-se utilizar sockets einteragir com outros protocolos (BRAVALHERI, 2008). 4.1.9. Banco de Dados Banco de Dados é um sistema de armazenamento de Dados baseado emcomputador, cujo objetivo é registrar e manter informações consideradassignificativas à Organização. O trabalho do Administrador de Banco de Dados (DBA)
  46. 46. 48contribui para a operação efetiva de todos os Sistemas que rodam utilizando-se deBanco de Dados (LIMA, 2001). 4.1.9.1. Modelo de Banco de Dados Hierárquicos GALANTE (2007) nos explica que o banco de dados hierárquico foi o primeiromodelo a ser conhecido como modelo de dados. Sua estrutura é do tipo árvore esua formação se dá através de registros e links, onde cada registro é uma coleçãode dados e o link é uma associação entre dois registros. Os registros que precedemoutros são chamados de registro pai os demais são chamados de registros filhos.Cada registro tem suas ligações, o registro pai pode ter vários filhos (1:N), o registrofilho só pode ter um pai. Caso um determinado registro filho tenha a necessidade deter dois pais é necessário replicar o registro filho. A replicação possui duas grandesdesvantagens: pode causar inconsistência de dados quando houver atualização, e odesperdício de espaço é inevitável. Para acessar registros em um modelohierárquico deve-se obedecer aos padrões desse modelo. A navegação devecomeçar no topo da árvore e da esquerda para direita. Esse modelo foi muitoimportante no sistema de banco de dados IMS (Information Management System – éo sistema de banco de dados mais antigo) da IBM. É importante ressaltar que essemodelo era superior a outros modelos da época o que o tornou bem utilizado.Apesar desse, ser o melhor da época ele tem algumas desvantagens como:complexidade dos diagramas de estrutura de árvores, limitações das ligações entreregistros - ex.: um filho só pode ter um pai, a navegação é feita através de ponteiros,complexidade na hora das consultas, ausência de facilidades de consultasdeclarativas, só trabalha com dados primitivos. 4.1.9.2. Modelo de Banco de Dados em Rede O modelo em rede surgiu para suprir algumas deficiências do modelohierárquico. O conceito de hierarquia foi abolido nesse novo modelo, o que permitiuque um registro estivesse envolvido em várias associações, ou seja, esse modeloaceitar relacionamentos (N:M), um filho pode ter mais de um pai, ele só trabalha comdados primitivos. Uma outra característica que difere esse modelo do hierárquico éque ele utiliza grafos ao invés de árvores. A Data Base Task Group da CODASYLestabeleceu uma norma para esse modelo, uma linguagem própria para definição e
  47. 47. 49manipulação de dados. As ferramentas geradoras de relatório da CODASYLpadronizaram dois aspectos importantes dos sistemas gerenciadores de dados:concorrência e segurança. Com isso, o mecanismo de segurança já permitiu queuma determinada área de banco de dados fosse bloqueada para evitar acessossimultâneos, quando necessário. No modelo em rede qualquer nó pode seracessado sem precisar passar pelo nó raiz. O sistema mais conhecido dessaimplementação é o IDMS da Computer Associates. O diagrama para essa estruturaé formado por registros e links (GALANTE, 2007). 4.1.9.3. Modelo de Banco de Dados Relacional Segundo GALANTE (2007) o modelo relacional surgiu com o propósito deaumentar a independência dos dados nos sistemas gerenciadores de banco dedados; disponibilizar um conjunto de funções apoiadas em álgebra relacional paraarmazenar e recuperar dados; permitir processamento ad hoc. A representação dobanco de dados desse modelo é feito através de coleções de tabelas. Então quandoparte para essa visão, é possível ter tabelas de valores, onde cada tabela tem umnome, e dentro de cada tabela temos as tuplas que são as linhas da tabela, e emcada tabela temos um domínio que é valor atômico, ou seja, são valores indivisíveisno que diz respeito ao modelo relacional. Cada domínio possui um formato dedados. O modelo relacional também tem algumas restrições: restrições inerentes aomodelo de dados (em uma relação não pode ter tuplas repetidas), restriçõesbaseadas em esquema – são especificações em DDL (data definition language), quesão restrições de domínio, de chave, restrições em null, restrições de integridade deentidade e restrições de integridade referencial, e restrições baseadas em aplicação. 4.1.9.4. Modelo de Banco de Dados Relacional Orientado a Objeto O modelo relacional orientado a objeto é a junção do modelo relacionalcom o modelo OO. Segue o padrão SQL 1999 e estendem a SQL para incorporar osuporte para o modelo de dados relacional-objeto, gerencia transações,processamento e otimização de consultas. Como por exemplo, ele passou a terconstrutores de tipos para especificar objetos complexos, passou a ter tuplas e
  48. 48. 50array. Os construtores set, list, bag ainda não foram adicionados ao modelo. NesseModelo passou a ter identidade de objeto (reference type), encapsulamento deoperações e foram adicionados mecanismo de herança e polimorfismo. Mesmo comtodas essas características a implementação fisicamente continua sendo feitaatravés de tabelas, ou seja, como um modelo relacional. A semântica da aplicação émodelada e representada através de objetos, enquanto sua implementação física éfeita na forma relacional. As principais extensões ao modelo relacional quecaracterizam os modelos relacionais objeto são: definição de novos sistemas detipos de dados, mais ricos, incluindo tipos de dados complexos; incorporação denovas funcionalidades ao Sistema Gerenciador de Banco de Dados (SGBD) paramanipular estes novos tipos complexos de dados, suporte a herança, possibilidadede manipulação de objetos diretamente por parte do usuário, extensões feitas nalinguagem SQL, para possibilitar manipular e consultar objetos. (GALANTE, 2007). 4.1.9.5. Modelo de Banco de Dados Orientado a Objeto Um banco de dados orientado a objeto é um banco em que cadainformação é armazenada na forma de objetos, e só pode ser manipuladas atravésde métodos definidos pela classe que esteja o objeto. O conceito de banco de dadosOO possui o mesmo conceito da linguagem orientada a objeto, havendo umapequena diferença: a persistência de dados. Existem pelo menos dois fatores quelevam a adoção desse modelo, a primeira é que banco de dados relacional se tornadifícil de trabalhar com dados complexos. A segunda é que aplicações sãoconstruídas em linguagens orientadas a objetos (java, C++, C#) e o código precisaser traduzido para uma linguagem que o modelo de banco de dados relacionalentenda, o que torna essa tarefa muito tediosa. Essa tarefa também é conhecidacomo “perda por resistência” (ELMASRI, 2005). 4.1.10. Sistema Gerenciador de Banco de Dados Um SGBD é muito importante para as aplicações nos dias de hoje. Bancosde dados são conjuntos de dados estruturados que organizam informação. Para
  49. 49. 51manipular as informações que estão contidas nesse banco de dados, é utilizado umSGBD, que é responsável pelo gerenciamento dos dados (ELMASRI, 2005). Para GALANTE (2007) as principais características de um SGBD são:controle de redundância: pode-se construir regras para que o gerenciamento sejamais eficaz evitando assim a redundância dos dados e economiza-se espaço emdisco. Por exemplo, um aluno só pode ser cadastrado uma única vez em cada curso;cada disciplina só pode ser cadastrada uma vez em um único curso; ou ainda, cadaaluno só pode se inscrever uma vez em cada matéria; restrição a acesso nãoautorizado: Em um banco de dados com vários usuários, cada um tem acesso noque lhe é permitido. Com um SGBD é possível restringir os acessos de cada usuárioou grupo de usuários, permitido assim acessos autorizados para cada usuário;garantia de armazenamento persistente: com um SGBD é possível armazenar dadosde uma forma organizada. Em muitos SGBD’s é necessário fazer a conversão detipo, porque muitos deles não conhecem o formato dos tipos da linguagem OO,então é necessário fazer a conversão. Uma das vantagens de um banco de dadosorientado a objetos é que ele reconhece esse formato não precisando fazerconversão de tipos; garantia de armazenamento de estruturas para oprocessamento eficiente de consultas: uma outra característica de um SGBD é quealém de armazenar dados ele deve prover mecanismo que facilitem a busca, ainserção ou atualização da base de dados; compartilhamento de dados: SGBD’smultiusuários devem fornecer controle de concorrência para assegurar queatualizações simultâneas resultem em modificações corretas. Um outro mecanismoque permite a noção de compartilhamento de dados em um SGBD multiusuários é afacilidade de definir visões de usuário, que é usada para especificar a porção dabase de dados que é de interesse para um grupo particular de usuários;fornecimento de múltiplas interfaces: devido aos vários tipos de usuários, comvariados níveis de conhecimento técnico, um SGBD deve fornecer uma variedade deinterfaces para atendê-los. Os tipos de interfaces incluem linguagens de consultapara usuários ocasionais, interfaces de linguagem de programação paraprogramadores de aplicações, formulários e interfaces dirigidas por menus parausuários comuns; representação de relacionamento complexo entre dados: umabase de dados pode possuir uma variedade de dados que estão inter-relacionados
  50. 50. 52de muitas maneiras. Um SGBD deve ter a capacidade de representar uma variedadede relacionamentos complexos entre dados, bem como recuperar e modificar dadosrelacionados de maneira fácil e eficiente; backup e restauração: Garantir backup erestauração de dados é tarefa essencial para qualquer SGBD. Mesmo que as falhassejam ocasionadas por falhas de software ou hardware ele deve garantir aintegridade dos dados e restrições de integridade: Num SGBD é possível imporrestrições, por exemplo, em uma tabela ALUNO que contém atributos: Nome, CPF,Endereço, Tel, o atributo Nome possa ter no máximo 50 caracteres, e que CPF podeter 11 caracteres e que Tel pode receber 11 inteiros, ou ainda, a tabela Turma deveser preenchida com dados da tabela professor e da tabela Aluno etc. 4.1.10.1. Firebird O Firebird é baseado no código fonte do InterBase 6.0 que foi liberadocomo Open Source (SO) pela Borland em Agosto de 2000. A história do Interbaseremonta aos idos de 1984, portanto, são cerca de 20 anos de experiência com basede dados relacional no produto. O Firebird permite bases de dados realmenteenormes. Bases de Dados podem se estender a múltiplos arquivos, o tamanho decada arquivo depende do SO. O limite teórico é atualmente 64TB para um únicoarquivo da base de dados, então o limite prático é normalmente o sistema dearquivos / operacional ou o espaço disponível no HD. O Firebird suporta um grandenúmero de métodos de conectividade, incluindo: Pacotes de componentes nativospara C/C++ e Delphi, ODBC, JDBC (JayBird), Driver PHP, driver OLEDB,dbExpress, net data provider e finalmente através de chamadas diretas à APIusando a biblioteca fbclient.dll/.so. O Firebird é licenciado sob a IPL (InterBasePublic License), a qual tem os mesmo termos da Mozilla Public License 1.1. OFirebird é completamente gratuito para usar e distribuir a seus clientes. Você nãoprecisa entregar o código fonte do seu sistema, independente do seu modelo delicenciamento. Se você modificar o núcleo do Firebird, entretanto, você deve liberaro acesso público ao código fonte de suas modificações (BERETA e REIS, 2003).
  51. 51. 53 4.1.10.2. Microsoft SQL Server O Microsoft SQL Server é um SGBD relacional produzido pela Microsoft, elefaz uso da linguagem Transaction-SQL (T-SQL) que implementa sobre o SQL ANSIalgumas melhorias e funcionalidades novas. Inicialmente o SQL Server foi criado apartir de um modelo do banco de dados da Sybase adquirido pela Microsoft em1988, após lançar diversas versões o SQL Server atingiu o reconhecimento demercado e grande utilização a partir da versão 7, quando o sistema incorporoudiversas funcionalidades e ferramentas até então não existentes em outros bancosde dados. Com o SQL Server 2000 a Microsoft conquistou parte do mercado debanco de dados, principalmente a mudanças de arquitetura, segurança, facilidade nouso e ferramentas, o que tornou o SQL Server um dos mais poderosos bancos dedados disponíveis (COLLA, 2005). 4.1.10.3. PostgreSQL Em 1994, foi adicionado um interpretador SQL ao Postgres por Andrew Yue Jolly Chen, e em 1995, no departamento de Ciências da Computação daUniversidade da Califórnia, em Berkeley, sendo lançado o Postgre95, voltado paraWeb, completamente escrito em ANSI C (ANSI – American National StandardsInstitute). Em 1996, o Postgre95 foi substituído pelo PostgreSQL, atualizado com asnovas versões da linguagem SQL, tornando-se um dos melhores bancos de dadospara sistema operacional GNU Linux, por ser robusto em aplicações simples ecomplexas, com suporte a várias linguagens e por permitir herança de tabelas(NEVES, 2002). O PostgreSQL é um gerenciador de banco de dados relacional queevoluiu muito nos últimos anos, incorporando características de banco de dadostradicionais como, por exemplo, o Oracle. Tornou-se muito atraente a sua utilizaçãopor ser poderoso, versátil, seguro e também por ser um banco de dados gratuito(NEVES, 2002).
  52. 52. 54 4.1.10.4. Oracle O Oracle é um sistema gerenciador de banco de dados relacional comfunções completas baseadas no ANSI SQL, segundo OLIVEIRA (2005). O SGBD da Oracle foi desenvolvido primeiramente para um projeto daNASA em 1977 e sua primeira aplicação comercial foi em 1979. É um sistemaportável para várias arquiteturas de hardware, desde mini e micro a computadoresde grande porte. Tem portabilidade para Unix, MS-DOS, Macintosh, Windows, entreoutros OLIVEIRA (2005). “O SGBDD da Oracle fornece capacidades de interligação dos bancos de dados distribuídos como se estes fossem um só. Essas capacidades incluem pesquisas, inclusões, exclusões, atualizações e transações distribuídas, retenção, replicação e particionamento de tabelas locais múltiplos”. (CERÍCOLA, 1995). Conforme a documentação oracle, o Oracle possui uma arquiteturadistribuída com execução bifásica automática, que possibilita uma transparência aousuário, mesmo tendo várias aplicações residindo em vários computadores de umarede de comunicação. 4.1.10.5. MySQL O MySQL surgiu como ferramenta para atender a uma necessidadeinterna. Com o funcionamento lento do MSQL em relação a ligações de tabelasatravés das suas rotinas ISAM, Inered Seqüencial Access Method (método deacesso seqüencial indexado), os autores trabalharam buscando uma solução, tendocomo resultado o Mysql, com muito mais recursos que o MSQL e muito mais rápido,(WELLING e THOMSON, 2004). O Mysql utiliza o modelo de dados relacional, suportando banco dedados que consistem em um conjunto de dados e relacionamentos entre si,(WELLING e THOMSON, 2004).
  53. 53. 55 O MySQL é um gerenciador de banco de dados, que suporta múltiplaslinhas de execução, que se refere à capacidade de dividir um serviço em pequenaspartes, sendo que cada parte é chamada de tria (linha de execução ou sub-processo), que pode operar de maneira independente em relação a outras. Quandoum aplicativo usa linhas de execução controladas pelo Kernel em uma máquina comvárias CPUs, ele pode distribuir o trabalho entre elas para que o executemsimultaneamente (SILVA, 2006) O MySQL possui um conjunto de API que suporta várias linguagens deprogramação, entre elas o C, C++, Java, Perl e PHP entre muitas outras. A API vemdo inglês Application Programing Interface (Interface de programação deaplicativos), e pode ser escrita para qualquer tipo de servidor ou sistemaoperacional. A API do MySQL fornece uma lista reduzida de rotinas que podem serchamadas de dentro de um programa para interagir com o banco de dados,(WELLING e THOMSON, 2004). Os índices são tabelas de pesquisas especiais mantidas pelo MySQLque possibilitam encontrar dados sem ter que procurar linha por linha de uma tabela(SILVA, 2006) 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 (SILVA, 2006) 4.1.10.6. Linguagem SQL A linguagem de consulta estruturada (Structured Query Language - SQL)está entre as linguagens para banco de dados mais utilizadas em todo o mundo. Elafoi desenvolvida pela IBM nos projetos System-R e Sequel-XRM por volta de 1974 a1977 e imediatamente foi introduzido em outros SGBDs (RAMAKRISHNAN eGEHRKE, 2000). A SQL tornou-se padrão em 1986 quando a American NationalStandards Institute (ANSI) endossou o SQL como uma linguagem padrão para osbancos de dados relacionais (LUCHTENBERG, 2002).
  54. 54. 56 Para OLIVEIRA (2005) a SQL trouxe para os bancos de dados relacionaisuma série de benefícios principalmente por incorporar recursos de programaçãoespecíficos para as necessidades de banco de dados, como: Inclusão, exclusão ealteração de dados do banco. A linguagem SQL é dividida em três tipos, são eles:Linguagem de Definição de Dados (DDL): comandos que fazem alterações nosobjetos e na estrutura da base de dados; Linguagem de Manipulação de Dados(DML): Comandos que recuperam ou manipulam os dados do banco de dados e,Linguagem de Controle de Dados (DCL): serve para gerenciar o acesso dosusuários a determinadas tabelas, e manter a integridade destas. Na DML podemos encontrar comandos como Update, Delete, Insert eSelect, comandos necessários para atualizar, excluir, inserir e selecionar dados deum ou mais objetos de um banco de dados, já na DDL encontramos comandoscomo Create Table, Alter Procedure, Add Column, Drop Table, comandos usadospara criar objetos, alterar objetos e/ou excluir os mesmos. Para a DCL alguns dosprincipais comandos são os COMMITs, ROLLBACKs, GRANTs e REVOKEs(OLIVEIRA, 2005). 4.2. Escolhas para o Desenvolvimento do Projeto A engenharia de software Cleanroom é um processo que tem por traçoprincipal ser orientado à equipe. A XP é uma metodologia que tem como basefeedback constantes e por se tratar de um projeto pequeno porte e tendo comodesenvolvedor e analista um acadêmico tornou-se dispensável. A proposta destetrabalho é desenvolver um sistema utilizando praticidade, uma vez que, este deveser desenvolvido individualmente, a Scrum, não apresenta tal característica, poisenvolve muitas variáveis técnicas e do ambiente, tornando o processo dedesenvolvimento imprevisível e complexo, requerendo flexibilidade para acompanharas mudanças. O RUP foi escolhido como base para a especificação do processoneste trabalho, pelos fatores de ser uma arquitetura que entende a UML paraespecificação de processos e por ser interativo.
  55. 55. 57 O padrão Singleton não foi escolhido para ser o padrão de projeto dessetrabalho, por ser um padrão de criação, que tem por objetivo especificar o processode criação de objetos, podem abstrair os detalhes de criação para que aimplementação seja independente dos tipos de objetos envolvidos. O TemplateMethod não está listado como padrão de projeto para este trabalho por seu umpadrão comportamental que tem por característica interações de objetos entre si, ouseja, controlam determinados tipos de ações no sistema e distribuemresponsabilidades. O Facade é o padrão de projeto escolhido para este trabalho porusar as conexões ou relacionamentos entre objetos, tendo por característicaprincipal a produção de interface simples para o cliente e uma mais complexa edinâmica para o gerente. O modelo Microkernel não fará parte desse trabalho por aplicar-se asistemas que devem se adaptar às mudanças de requisitos. A plataforma deaplicação depende da capacidade de executar aplicações escritas para um padrãoexistente. Para tanto, a plataforma deve ser capaz de emular as outras plataformaspara as quais a aplicação está sendo desenvolvida. O modelo Broker é utilizado emsistemas cuja estrutura é distribuída com desacoplamento de componentes queinteragem através de invocação remota de serviços, (BUSCHMANN et al., 1996).Por esse motivo não é o modelo escolhido para este trabalho. Este padrão MVC foiescolhido como modelo de arquitetura para este trabalho pela característica bemmarcante de sistemas de interface de usuário dos aplicativos a seremdesenvolvidos. A linguagem de modelagem aSideML não fará parte deste trabalho por seruma modelagem orientada a aspectos e tem por características oferecer uma visãoestática de um sistema. A UML foi escolhida como linguagem de modelagens deprocessos por ser uma linguagem que abrange todas as outras linguagens. Por seruma linguagem orientada a objeto. A linguagem de programação PHP e o banco de dados MySQL estãosendo requisitados para compor esse projeto, por serem software livres eprincipalmente por possuir características de sinergia com as outras escolhas.

×