Você está na página 1de 37

INSTITUTO DE ENSINO SUPERIOR DE ITAPIRA - IESI CURSO DE CINCIA DA COMPUTAO TRABALHO DE CONCLUSO DE CURSO

Sistema de Gerenciamento de Contedo

Francisco de P. P da Cunha Neto

ITAPIRA 2013

Francisco de Paula Pereira da Cunha Neto

Sistema de Gerenciamento de Contedo

Trabalho de Concluso de Curso apresentado ao curso de Cincia da Computao do IESI como parte dos requisitos necessrios para a obteno do ttulo de Bacharel em Cincia da Computao Orientador: Prof. Antnio Tupinamba

ITAPIRA 2013

Sumrio 1. Introduo .............................................................................................................. 3 1.1. Cenrio ............................................................................................................. 3 1.2. Objetivo............................................................................................................. 3 1.3. Problema .......................................................................................................... 4 1.4. Hiptese............................................................................................................ 6 1.5. Justificativa ....................................................................................................... 7 1.6. Metodologia ...................................................................................................... 7 2. Fundamentao Terica ....................................................................................... 9 2.1. Linguagens de Programao ............................................................................ 9 2.2. Linguagens Declarativa .................................................................................... 9 2.3. Linguagens de Marcao.................................................................................. 9 2.4. Programao Orientao a Objetos ou POO .................................................. 10 2.5. Hipertexto ....................................................................................................... 14 2.6. HTML ou HiperText Markup Language ........................................................... 15 2.7. XML ou Extensible Markup Language ............................................................ 16 2.8. XHTML ou eXtensible Hypertext Markup Language ...................................... 16 2.9. PHP ou PHP: Hipertext Preprocessor............................................................. 17 2.10. CSS ou Cascading Style Sheets .................................................................. 18 2.11. JavaScript ..................................................................................................... 18 2.12. Ajax ............................................................................................................... 18 2.13. Arquitetura Web 3 camadas ......................................................................... 19 2.14. Banco de Dados Relacionais ........................................................................ 21 2.15. Modelo Entidade Relacionamento ................................................................ 21 2.16. SQL ou Structured Query Language............................................................. 23 2.17. Sistema de Gerenciamento de Banco de Dados ou SGDB .......................... 24 2.18. MySQL .......................................................................................................... 24 2.19. IDE ou Integrated Development Environment ............................................... 24 2.20. Eclipse .......................................................................................................... 25 3. Requisitos ............................................................................................................ 26 3.1. Escopo ............................................................................................................ 26 3.2. Requisitos Funcionais ..................................................................................... 27

2 3.2.1. Requisitos Funcionais Criao.................................................................. 27 3.2.2 Regras de Negcios Criao ..................................................................... 27 3.2.3 Requisitos Funcionais Administrao ........................................................ 27 3.2.4 Regras de Negcios Administrao ........................................................... 28 3.2.5 Requisitos Funcionais da Apresentao .................................................... 29 3.2.6 Regras de Negcios Apresentao ........................................................... 29 3.3 Requisitos No Funcionais .............................................................................. 29 4. Modelagem do Sistema....................................................................................... 30 9. Bibliografia........................................................................................................... 30

3 1. Introduo 1.1. Cenrio Hoje em dia a web um lugar ideal para a divulgao de qualquer tipo de contedo seja ele na forma de texto, imagem, udio ou vdeo. Uma das formas mais simples para pessoas e empresas gerenciarem esse contedo de forma dinmica em suas pginas na Web, com pouco ou nenhum conhecimento em informtica, e atravs de um Sistema de Gerenciamento de Contedo ou SGC (do ingls Content Management System CMS).
Um Sistema de Gerenciamento de Contedo (do ingls Content Management System CMS) um aplicativo usado para criar, editar, gerenciar e publicar contedo de forma consistentemente organizada permitindo que o mesmo seja modificado, removido e adicionado com facilidade. (Wikipdia. Sistema de gerenciamento de contedo. 2013, online). CMS so as siglas de Content Management System, que se traduz diretamente ao portugus como Sistema de Gerenciamento de Contedos. Como seu prprio nome indica, um sistema que nos permite gerenciar contedos. Em linhas gerais, um CMS permitiria administrar contedos em meio digital e para o caso particular que nos ocupa, um CMS permitiria gerenciar os contedos de uma web. Em outras palavras, um CMS uma ferramenta que permite a um editor criar, classificar e publicar qualquer tipo de informao em uma pgina web. Geralmente, os CMS trabalham contra um banco de dados, de modo que o editor simplesmente atualiza um banco de dados, incluindo nova informao ou editando a existente. (Alvarez, 2013, online).

Ao buscar um SGC que estivesse disponvel atravs de uma licena de Cdigo Livre que atendesse s nossas necessidades reparamos que no s ns, mas muitos outros usurios brasileiros encontravam diversas dificuldades referentes aos principais SGCs hoje em dia no mercado. Estas dificuldades vo deste as tradues oferecidas a falta de uma boa documentao tanto em portugus como em ingls sobre os mesmos, por isso resolvemos por conta prpria desenvolver um SGC voltado para o mercado brasileiro. 1.2. Objetivo Desenvolver o ncleo de um SGC em Programao Orienta a Objetos, ou POO, utilizando nomes de variveis, classes, funes e constantes em portugus e com os manuais do usurio e desenvolvedor sendo publicados em portugus, e incorporando Padres de Projetos para aumentar a usabilidade, facilitar a

4 manuteno e incorporao de novos cdigos, visando o mercado brasileiro. Como adeptos do Cdigo Livre e no intuito de popularizar o mais rpido possvel nosso SGC o mesmo ser desenvolvido com uma licena de Cdigo Livre de acordo com os dez quesitos do Open Source Initiative (OSI): 1. Distribuio livre; 2. Acesso ao cdigo-fonte; 3. Permisso para criao de trabalhos derivados; 4. Integridade do autor do cdigo-fonte; 5. No discriminao contra pessoas ou grupos; 6. No discriminao contra reas de atuao; 7. Distribuio da licena; 8. Licena no especfica a um produto; 9. Licena no restritiva a outros programas; 10. Licena neutra em relao tecnologia. Para maiores detalhes consulte: http://softwarelivre.org/open-source-codigoaberto 1.3. Problema Os SGCs Open Source atualmente mais utilizados no Brasil so o WordPress e o Drupal, porm eles apresentam um problema para o mercado brasileiro seu desenvolvimento e feito em ingls e seu manuais na web encontram-se na mesma linguagem, sendo que mesmo quando existem tradues essas apresentam problemas ou encontram-se defasadas das verses mais novas do software. Quanto bibliografia deles o Drupal dispe, na lngua portuguesa, de pouca bibliografia tanto em livros como na web, sendo que a bibliografia em portugus est bem defasada em relao verso atualmente disponvel do mesmo. J o WordPress possui uma relativa quantidade de material na web e em livros, porm a mesma muito mais voltada para os usurios do que para desenvolvedores, e a maioria das vezes tambm encontra-se defasada em relao a verso atualmente disponvel do mesmo.

5 O exposto acima mostra as dificuldades apresentadas pelos dois principais SGCs Open Source do mercado tanto para usurios como para desenvolvedores brasileiros que no dominem o ingls, como bem podemos ver nesses exemplos colhidos de fruns e pginas na web:
Bom vamos l... primeiramente alterei arquivos .po e .mo do wp-content com um que eu traduzi... sem fazer backup... voltou tudo pra ingls no meu site sendo que eu s queria traduzir uma nica palavra!!! Estou possessa comigo mesma!!! Quando eu instalo no lugar certo a traduo feita no poedit ele altera muitas coisas, porm no altera o ttulo do comentrio... fica escrito "deixe uma resposta", minha cliente quer "comente" ou "comentrio". O suporte do tema disse que uma traduo automtica do wp... no entendo como no traduz isso sendo que no arquivo .po eu traduzo a frase "live a reply" para "comente". preciso de ajuda fiquei perdida agora... [Frum da Comunidade WordPress-BR. Disponvel em: http://br.forums.wordpress.org/topic/problemas-com-traducao. Acesso em: 20 de maio de 2013] Ol, salve galera! Fui instalar o Drupal hoje e aps instalar utilizando o Profile com o idioma em Portugus, "Se" e "Somente Se" eu utilizo o portugus como idioma padro do DP aparece esta mensagem de erro: "O arquivo especificado temporary://fileuBEGGn no pde ser copiado porque o diretrio de destino no esta configurado corretamente. Isto pode ser causado por um problema com permisses do arquivo ou diretrio. Maiores informaes esto disponveis no log do sistema." [Drupal Brasil. Disponvel em: http://drupal-br.org/node/6847. Acesso em: 20 de maio de 2013] Pessoal, tem vrias coisas falando sobre traduo na net at mesmo neste site, mas nada que explique com clareza. j vi este http://groups.drupal.org/node/6068 que ensina que estratgias usar e achei bem interessante, mas no esclarece tudo. Este manual tambm vago e no explica bem http://traducao.titanatlas.com/como-usar-a-traducao Baixei do site oficial do drupal no link http://ftp.drupal.org/files/projects/ptbr-6.x-1.0-rc1.tar.gz a traduo Descompactei e fui em construo de site -> traduzir interface A fui importando os arquivos de traduo de cada modulo, mas quanto mais eu vou importando, o percentual de traduo diminui. Outra coisa, tenho mesmo que importar arquivo por arquivo? Se a traduo do drupal j 100% porque que alguns blocos do ncleo ainda no ficam traduzidas ao importar a traduo? me desculpe se eu estiver sendo muito burro mas que estou achando o drupal bastante complicado, apesar de ver que ele a ferramenta que preciso, estou com dificuldades para iniciar o uso. [Drupal Brasil. Disponvel em: http://drupal-br.org/suporte/traducao/quero-entender-como-funciona-a-traducao. Acesso em: 20 de maio de 2013] Instalei a verso ingls pelo prprio provedor de hospedagem, e estou obviamente querendo o site em portugus. J fiz o seguinte: - peguei o /wp-content/languages da verso deste site daqui, e copiei

6
para o meu - mudei no wp-config.php para usar pt_BR: define ('WPLANG', 'pt_BR'); A interface administrativa t toda OK, mas o site em si... apenas apareceu um "janeiro" 12th, 2011, mas o resto t tudo em ingls. [Frum da Comunidade WordPress-BR. Disponvel em: http://br.forums.wordpress.org/topic/ dificuldade-em-transformar-o-site-p-pt_br?replies=3. Acesso em: 20 de maio de 2013]

Alm da dificuldade com relao a o idioma tanto o Drupal como o WordPress no so desenvolvidos totalmente em POO o que dificulta a manuteno do cdigo e a criao de plug-ins. Por isso apesar de usarmos algumas ideias dos mesmos resolvemos escrever um novo SGC que siga as boas tcnicas de POO. 1.4. Hiptese Com uma pesquisa realizada sobre os dois principais SGCs do mercado nos respectivos sites dos mesmos http://drupal-br.org/, https://drupal.org/,

http://br.wordpress.org/ e http://wordpress.org/ e tambm nos livros Desenvolvimento Profissional com o Drupal (VanDik; 2009), Smashing WordPress (Hedengren, 2012) e Construindo um Blog de sucesso com o WordPress 3 (Brito, 2011) pudemos tirar os principais requisitos e o que essencial em um SGC e concluir que a melhor maneira de se criar um SGC de Cdigo Livre e com a programao do ncleo em PHP e utilizando o banco de dados MySQL para a persistncia do contedo. Em uma pesquisa sobre programao web com PHP encontramos em Desenvolvimento Web (Welling e Thomsom, 2005, pag. 118) a seguinte citao: Por vrias razes, a maioria dos scripts Web infelizmente ainda projetada escrita utilizando uma abordagem ad hoc seguindo uma metodologia orientada a funes, mas, o livro propriamente no traz uma abordagem POO. Ento

decidimos estudar mais afundo o desenvolvimento PHP Orientado a Objetos e encontramos em PHP Programando com Orientao a Objetos (DallOglio, 2009) referncias a Design Pattern, ou Padres de Projetos:
O termo design pattern tem sido largamente usado no mundo da orientao a objetos para descrever formas de comunicao e relacionamento entre objetos e classes de maneira a solucionar determinados problemas de projeto. A utilizao de um design pattern no a mais simples nem a mais rpida de solucionar um problema, mas , sem dvida, a forma que traz maior flexibilidade e capacidade de reuso da soluo, trazendo benefcios a mdio e longo prazo na manutenibilidade do cdigo-fonte.

7 Seguindo a pesquisa encontramos em Aprendendo padres de projetos em PHP (Sanders, 2013) e Objetos PHP, Padres e Prticas (Zandstra, 2009) uma valiosa fonte para o desenvolvimento PHP Orientado a Objetos com Padres de Projetos. As bibliografias acima ns inspiraram a desenvolver nosso SGC em POO incorporando as vantagens de se utilizar Padres de Projetos. 1.5. Justificativa Nosso SGC vem atender aquelas pessoas que pretendem desenvolver um site, mas no dispe de recursos nem de conhecimento em ingls por isso o primeiro foco do nosso SGC que ele seja barato e fcil de entender para se popularizar entre desenvolvedores pequenos e em escolas e cursos de informtica, para isso na documentao e nos programas do projeto ser usada a lngua portuguesa sempre que possvel. Com a popularizao pretendemos chamar a ateno de empresas que desejem solues customizadas para venda de plug-ins e servios. Nosso SGC assim alm de uma contribuio social e educacional e tambm poderia se tornar algo rentvel no mdio e longo prazo. 1.6. Metodologia Um SGC se baseia no modelo web 3 camadas, sendo que as camadas podem ser definidas como: 1. Camada de Apresentao: contem tudo que necessrio para interao com o usurio como a exibio de paginas HTML; 2. Camada de Negcios: contem regras de negcios e a logica da aplicao; 3. Camada de Dados: persistncia e gerencia os dados sobre os quais esto sendo executados uma ao. A camada de apresentao com o usurio ser feita com paginas (X)HTML apresentadas por um navegador web, tais como Internet Explorer, Firefox, etc.

8 Na camada de negcios usaremos a linguagem PHP a partir de sua verso 5, pois nesta verso se encontra atualmente o melhor suporte a arquitetura Orientada a Objetos. A camada de dados ser desenvolvida usando o MySQL sistema de gerenciamento de banco de dados MySQL, podendo posteriormente ser estendida a outros banco de dados atravs da utilizao do PHP Data Object ou PDO. A interface grfica para usurios ser desenvolvida em linguagem HTML 5 e CSS, ficando disponveis atravs de pginas nos navegadores web mais utilizados no mercado. Apesar do HTML 5 ainda no ter sido aprovada pelo W3C muitas de suas funcionalidades j se encontram disponveis nos principais navegadores web e esperamos em breve sua homologao pelo W3C. Assim toda a interface administrativa ser desenvolvida j nos padres oferecidos pelo HTML 5. Tambm na camada do cliente sero desenvolvidas aplicaes JavaScript a partir da verso 1.5, para facilitar a interatividade entre o usurio e as pginas da web alm de aplicaes Ajax (Asynchronous JavaScript And XML) para aumentar a velocidade e o intercmbio de informaes entre o Cliente e o Servidor. Como ferramentas de auxlio ao desenvolvimento utilizaremos o IDE Eclipse para desenvolver nas linguagens PHP, JavaScript, HTML e CSS. O banco de dados MySQL ser desenvolvido utilizando-se o MySQL WorkBench.

9 2. Fundamentao Terica 2.1. Linguagens de Programao Computadores trabalham com base em uma linguagem binaria,

representadas atravs dos nmeros zero e um, que so de difcil compreenso para os seres humanos, para lidar com essa dificuldade foram criadas linguagens de programao utilizando um conjunto de regras sintticas e semnticas mais prximas linguagem humana. (Wikipdia. Linguagem de programa. 2013, online). As linguagens de programao so escritas em arquivos de texto denominados arquivos fontes. Esses arquivos fontes so traduzidos para um arquivo executvel, ou seja, um arquivo em linguagem de mquina que possa ser lido e executado pelo computador. Os arquivos fonte normalmente utilizam um programa denominado compilador que gera o arquivo executvel. Algumas linguagens de computador como o PHP no necessitam gerar um arquivo executvel quando o arquivo fonte traduzido ele a o mesmo tempo executado. (Andrade, 2013, online). 2.2. Linguagens Declarativa Uma linguagem declarativa diz ao computador o que voc quer obter, mas no descreve o como. Por exemplo, quando voc vai a uma padaria basta pedir um caf e o atendente simplesmente lhe traz o caf, j nas linguagens programao tradicionais seria como se voc fosse padaria e pedisse um caf, mas, voc teria que dizer ao atendente onde obter o caf e todo o modo de prepara-lo para conseguir o seu caf. (Patrick, 2002). 2.3. Linguagens de Marcao
Linguagens de marcao so utilizadas para definir formatos, maneiras de exibio e padres dentro de um documento qualquer. Normalmente, elas no possuem qualquer estrutura de controle como as linguagens de programao tradicionais (por exemplo, comandos condicionais ou de repetio). Dessa forma, elas servem basicamente para definir como um determinado contedo ser exibido na tela ou como os dados estaro estruturados ao trafegar entre os diferentes mdulos de um sistema. (PORTAL EDUCAO, 2013, online).

10 Linguagens de marcao podem ser usadas para mostrar a o computador como mostrar na tela um determinado documento. Um documento normalmente composto por contedo (texto, figuras, etc.) esse contedo deve ser estruturado mostrando que formato os ttulos e textos devem ter, os lugares e o tamanho e como as figuras devem aparecer etc. para isso utilizamos marcadores que mostram a posio estilo etc., de um ou mais componentes no documento. Outra forma de se ver uma linguagem de marcao e quanto estruturao de dados, onde as marcaes servem para definir os tipos de dados e suas estruturas como, por exemplo, definir se um determinado dado e uma sequncia de caracteres e se eles representam um nome de uma pessoa ou seu sobrenome. Exemplos dos dois casos seriam as linguagens de marcao HTML e XML. 2.4. Programao Orientao a Objetos ou POO O Paradigma Orientado a Objetos, ou Padro Orientado a Objetos teve incio dos anos 60 na Noruega com Kristen Nygaard e Ole-Johan Dahl, porm s chamou ateno a partir da Crise do Software nos anos 70 quando o nmero grande de falhas, manutenes corretivas e altos custos da produo de software, levaram produtores e clientes a buscarem novas solues para criao e manuteno de seus produtos. (Engholm, 2013). O paradigma da orientao a objetos nos faz ver o mundo como uma rede dinmica de objetos se relacionando entre si. Ele tira o foco dos procedimentos do universo e se volta aos objetos que compem esse universo e seus relacionamentos. (Engholm, 2013). Objetos devem ser vistos como objetos da vida real, como por exemplo, um carro, isso facilita a abstrao e modelagem de um sistema, pois estamos acostumados a lidar com esses objetos e seus relacionamentos no nosso dia a dia. Um objeto pode ser decomposto em mais de um, por exemplo, o objeto carro pode ser dividido em vrios outros objetos como motor, carroceria e esses objetos podem ainda ser dividido em novos objetos o que traz uma vantagem na modelagem e soluo de problemas, pois podemos decompor um problema maior em problemas menores e mais fceis de resolver. (Engholm, 2013).

11 Os objetos consistem de atributos e mtodos. Atributos so as caractersticas que esse objeto tem e mtodos representam comportamento dos objetos. (Engholm, 2013). Em termos de Programao OO podemos dizer que:
Um objeto e uma estrutura dinmica originada com base em uma classe. Apos a utilizao de uma classe para criar diversas estruturas iguais a ela, que interagem no sistema e possuem dados nela armazenados, dizemos que estamos criando objetos, ou mesmo instanciando objetos de uma classe. Diz-se que o objeto e uma instancia de uma classe, porque o objeto existe durante um dado instante de tempo - da sua criao ate a sua destruio. (DallOglio, 2009).

As classes em linguagens POO so modelos de objetos elas possuem variveis e constantes que definem os atributos do objeto e mtodos que representam as aes dos objetos, alm dos mtodos que executam aes a classes possuem um mtodo especial denominado construtor que usado para criar o objeto. Como exemplo veja a classe Funcionario de estimao, feita em PHP, abaixo: Class Funcionario { public $nome; public $sexo; public $idade; public function __construct($nome, $sexo, $idade) { $this->nome = $nome; $this->sexo = $sexo; $this->idade = $idade; } public function trabalhar() { echo "Trabalhando"; } } Aqui ns definimos trs atributos o nome do funcionrio que e recebido pela varivel $nome, o sexo na varivel $sexo, e a idade em $idade. Criamos uma classe construtora que recebe os parmetros $nome, $sexo e $idade, e os passa a os atributos $nome, $sexo e $idade da classe, aqui usamos a palavra $this para diferenciar os atributos da classe de variveis que no pertencem classe. A classe Funcionario possui ainda o mtodo trabalhar ir imprimir na tela do navegador a

12 string Trabalha, mostrando o quando esforado so nossos funcionrios.


Um construtor e um mtodo especial utilizado para definir o comportamento inicial de um objeto, ou seja, o comportamento no momento de sua criao. O mtodo construtor e executado automaticamente no momento em que instanciamos um objeto por meio do operador new. Assim, no devemos retornar nenhum valor por meio do mtodo construtor porque o mesmo retorna por definio o prprio objeto que esta sendo instanciado. (DallOglio, 2009).

Para criar o objeto funcionrio ns devemos instanciar (criar) a classe chamando seu construtor e passando os parmetros solicitados, como abaixo: $funcionario = new Funcionario(Joo da Silva, Masculino, 43); Agora que temos um objeto podemos chamar seus mtodos, no nosso caso criamos um nico mtodo trabalhar que ao ser chamado ir imprimir na tela do navegador Trabalhando: $funcionario->trabalhar(); Como vimos acima agora podemos criar vrios funcionrios para a empresa a partir da classe Funcionario, como por exemplo: $maria = new Funcionario(Maria Castro, Feminino, 34); $jose = new Funcionario(Jos Pereira, Masculino, 23); Outra vantagem apresentada pela programao orientada a objetos a herana.
Quando Falamos em herana a primeira imagem que nos aparece na memoria a de arvore genealgica com avs, pais e filhos que so transmitidas gerao aps gerao. O que devemos levar em considerao sobre herana em orientao a objetos e o compartilhamento de atributos e comportamentos entre as classes de uma mesma hierarquia (arvore). As classes inferiores da hierarquia automaticamente herdam todas as propriedades e os mtodos das classes superiores, chamadas de superclasses. (DallOglio, 2009).

Para o exemplo dado acima vamos criar uma nova classe chamada Chefe. Um chefe no deixa de ser um funcionrio, s que um chefe pode possuir mtodos e atributos que a classe Funcionario no tem, como por exemplo, o mtodo mandar, veja como fica a nossa classe Chefe:

13 Class Chefe extends Funcionario { public function __construct($nome, $sexo, $idade) { $this->nome = $nome; $this->sexo = $sexo; $this->idade = $idade; } public function mandar() { echo "Faa Isso, Faa aquilo!"; } } Repare que no precisamos declarar os atributos nome, sexo e idade na classe Chefe, estes atributos so herdados da classe pai Funcionario, alm disso a classe Chefe tambm pode usar o mtodo trabalhar, afinal de contas o chefe tem que dar o exemplo, da classe Funcionario: $chefe = new Chefe("Sergio Cunha", "Masculino", 46); $chefe->mandar(); $chefe->trabalhar();
Um dos recursos mais interessantes na orientao a objetos o encapsulamento, um mecanismo que prov a proteo de acesso aos membros da classe. (DallOglio, Pablo; 2009, pag. 107).

No nosso exemplo acima queremos que s a classe Chefe possa executar o mtodo mandar para isso temos os modificadores de acesso. Os modificadores de acesso veem antes dos mtodos e atributos e so definidos pelas palavras public, protected e private. No caso do mtodo mandar da classe Chefe bastaria alterar o atributo public para private e assim s a classe Chefe poder acessar o mtodo mandar. O modificador de atributos public permite o livre acesso aos atributos e mtodos de classe, protected permite o acesso somente a classe e suas filhas e private somente a prpria classe. (DallOglio, 2009).
Alm das classes normais, o PHP tambm possui o que chamamos de classes abstratas. Em POO e em padres de projeto, as classes abstratas proporcionam um mecanismo para organizao de seu projeto. Uma classe abstrata no pode ser instanciada. (Sanders, 2013).

Uma classe abstrata serve como uma estrutura para outras classes que herdam seus atributos e mtodos. As classes abstratas podem conter mtodos

14 abstratos, ou seja, assinatura dos mtodos, ou mtodos normais. Mas mtodos abstratos s podem existir em classes abstratas. Uma assinatura consiste do nome e dos parmetros de uma operao. As assinaturas tambm incluem o tipo de dado retornado .
(Sanders, 2013, pag. 39).

Em virtude de PHP ter uma tipagem fraca, a assinatura de um mtodo fica simplesmente assim: fazAlgumaCoisa(integer num) No caso de Java e C++, que so linguagens mais fortemente tipadas, a assinatura de um mtodo poderia ser: float fazAlgumaCoisa(integer num) Nesse caso a assinatura do mtodo fazAlgumaCoisa nos diz que o mtodo recebe como parmetro um inteiro e retorna um float, ou seja um numero no inteiro. O polimorfismo outra caracterstica da POO. Polimorfismo o fato de duas classes terem mtodos com a mesma assinatura porem executarem tarefas diferentes. (Sanders, 2013). 2.5. Hipertexto Ao longo da histria humana tanto em registros religiosos quanto em livros didticos a maioria das narrativas feitas so aquelas na forma sequencial ou linear, ou seja, a narrativa segue uma temporalidade linear, do mais antigo ao recente, de acontecimentos subsequentes por perodos histricos. (Araujo, 2013, online). Esse sistema foi criticado pelo matemtico Vanner Bush quando em 1945 publicou um ensaio As We May Think dando origem a primeira ideia formal de hipertexto. No seu ensaio Vanner Bush faz uma crtica a o sistema de armazenamento de informao da poca que funcionava da maneira linear onde para recuperar uma informao era necessrio seguir vrios volumes ou catlogos ordenados numericamente ou alfabeticamente o que segundo ele no a forma natural do crebro humano funcionar.

15
Por que "As we may Think"? Segundo Bush, a maior parte dos sistemas de indexao e organizao de informaes em uso na comunidade cientfica se lhe afiguravam como artificiais, cada item sendo classificado apenas sob uma nica rubrica, sob uma ordenao puramente hierrquica (classes, subclasses,etc.). Ora, para Vannevar Bush, a mente humana no funciona dessa forma, mas sim atravs de associaes. Ela pula de uma representao para outra ao longo de uma rede intrincada, desenha trilhas que se bifurcam, tece uma trama infinitamente mais complicada do que os bancos de dados de hoje ou os sistemas de informao de fichas perfuradas existentes em 1945. Bush reconhecia no ser possvel duplicar o processo reticular que embasa o exerccio da inteligncia. Ele propunha apenas que nos inspirssemos nele. Imaginou ento o dispositivo, que denominou Memex, para mecanizar a classificao e a seleo por associao, paralelamente ao princpio da indexao clssica. (Dias, 2013, online).

Hoje em dia a ideia de hipertexto est fortemente ligada a textos no formato digital, onde a criao de links (em portugus ligaes) ou hiperlinks dentro de um texto pode levar o leitor imediatamente a outra parte do texto ou mesmo a um documento fora do documento atual. 2.6. HTML ou HiperText Markup Language
Tim Berners-Lee trabalhava na Seo de Computao da Organizao Europeia de Pesquisa Nuclear (CERN), com sede em Genebra, na Sua, quando iniciou pesquisas visando a descobrir um mtodo que possibilitasse aos cientistas do mundo inteiro compartilhar eletronicamente seus textos e pesquisas e que esse a funcionalidade de interligar os documentos. Estavam criadas as noes web de links como so conhecidos atualmente. (Silva, 2008).

Em 1990 Tim Berners-Lee desenvolveu o primeiro prottipo de um navegador inicialmente chamado de WorldWildWeb e depois rebatizado para Nexus para evitar a confuso com a futura World Wild Web. Para trabalhar com seu navegador ele desenvolveu um software prprio e um protocolo para recuperar hipertextos surgia assim a HTML (HiperText Markup Language) e o HTTP (HyperText Transfer Protocol). Sendo assim HTML nada mais que uma linguagem de marcao para apresentao de um documento em um navegador da web que permite, alm da leitura do documento, a ligao de diferentes documentos na web atravs de hiperlinks. A verso atual do HTML a 4, mas sua futura verso o HTML 5 j se encontra em uma fase avanada de desenvolvimento, com muitas de suas

16 funcionalidades j presentes nos principais navegadores do mercado. 2.7. XML ou Extensible Markup Language
Com o advento da Web, em certo momento as limitaes da HTML se tornaram visveis. Sua falta de extensibilidade frustrava os desenvolvedores, e suas definies ambguas permitiram uma proliferao de HTMLs erradas. Comandos especficos de formatao das plataformas foram criados como extenses da HTML por fornecedores de navegadores que tentavam obter uma fatia de mercado. Em resposta a esta ameaa interoperabilidade e a escalabilidade da Web, o W3C criou uma tecnologia de folhas de estilo para HTML, as Cascading Style Sheets (CSS), que poderia ser usada no lugar de marcao de fornecedores. O W3C tambm acrescentou uma extensibilidade limitada a HTML. No entanto estas medidas se destinavam apenas a ganhar tempo. Era visvel a necessidade de uma nova linguagem, padronizada e plenamente extensvel, e estruturalmente estrita. Em razo disso, nasceu a Extensible Markup Language, a XML. (Deitel, et al.; 2003).

At a criao do World Wide Web Consortium (W3C), em outubro de 1994, o desenvolvimento do HTML corria sem nenhum controle com cada fabricante de navegador implementando sua prpria verso do HTML, alm disso, os documentos HTML so feitos para serem lidos por pessoas mas no so otimizados para o tratamento de dados por computadores surge ento o XML que pode ser facilmente lido por pessoas e computadores. 2.8. XHTML ou eXtensible Hypertext Markup Language
A XHTML e uma reformulao da HTML 4.0 como aplicao XML 1.0. Trata-se de uma linguagem de marcao que segue regras de sintaxe muito mais rgidas que as regras para a HTML e tem a caracterstica de ser extensvel, ou seja , ao escrever XHTML e permitido ampliar e modificar suas regras de sintaxe. (Silva, 2008). Em maio de 2007, o W3C reconsiderou sua deciso de encerrar o desenvolvimento da HTML em favor da XHTML e tornou publica sua deciso de retomar os estudos para o desenvolvimento da HTML 5, tomando como base o trabalho que j vinha sendo desenvolvido pelo WHATWG. (Silva, 2011).

Aparentemente o W3C abandonou o XHTML o futuro o HTML 5, que j se encontra em fase final de desenvolvimento, com muitas de suas funcionalidades j presentes nos principais navegadores do mercado. Porm enquanto o HTML 5 no se torna o padro o XHTML ainda muito usado no desenvolvimento web e ainda permanecer por muito tempo por motivos de compatibilidade com antigos navegadores.

17 2.9. PHP ou PHP: Hipertext Preprocessor Desde sua origem a linguagem de programao PHP foi desenvolvida para ser utilizada exclusivamente na web.
As origens do PHP datam de 1995, quando um empreiteiro de desenvolvimento de software independente chamado Rasmus Lerdorf desenvolveu um script Perl/CGI que possibilitou a ele saber quantos visitantes estavam lendo seu currculo online. Seu script executava duas tarefas: visualizar informao do visitante e exibir a contagem de visitantes da pagina web. Como a web que ns conhecemos hoje em dia era ainda jovem naquele tempo, ferramentas como essas no existiam, e elas estimularam emails perguntando sobre os scripts de Lerdorf. Lerdorf ent30 comeou a distribuir seu conjunto de ferramentas, nomeado de Personal Home Page (PHP). (Gilmore, 2008).

Com o sucesso do PHP Lerdorf continuou o seu desenvolvimento lanando a verso 2.0 ou o PHP/Fl (Personal Home Page/Form Interpreter - Pagina Pessoal/Interpretador de Formulrio) em 1997 onde trocou o Perl pelo

desenvolvimento em C e com uma nova caracterstica que era converter os dados de um formulrio HTML em variveis simblicas fazendo assim que o PHP pudesse interagir com os formulrios. O PHP continuou com seu grande sucesso arrematando vrios usurios alm de muitos desenvolvedores, entre os quais Andi Gutmans e Zeev Suraski. Ainda em 1997 Andi Gutmans e Zeev Suraski lanam a verso 3.0 onde toda a nova verso da linguagem foi realizada sob um novo nome, que removeu a impresso do limitado uso pessoal que o nome Personal Home Page (PHP) dava ao PHP/FI. Ela foi nomeada simplesmente 'PHP', com o significado que um acrnimo - PHP: Hypertext Preprocessor. A partir da o PHP cresceu e comeou a ser desenvolvido dentro de um ambiente empresarial at atingir seu estado atual coma verso 5 sendo considerada por muitos como um divisor de aguas pois ela amplia completamente a capacidade do PHP para Orientao a Objetos com melhorias na arquitetura de Orientao a Objetos a adio funcionais tais como, construtores e destruidores explcitos clonagem de objeto, abstrao de classe, gerenciamento de excees atravs de try/catch, suporte avanado a XML e uma srie de outras extenses e melhorias.

18 2.10. CSS ou Cascading Style Sheets


As CSS tem por finalidade devolver a (X)HTML o proposito inicial da linguagem. A HTML foi criada para ser uma linguagem exclusivamente de marcao e estruturao de contedos. Isto significa que, segundo seus idealizadores, no cabe a HTML fornecer informaes ao agente do usurio sobre a apresentao dos elementos. Por exemplo: cores de fontes, tamanhos de textos, posicionamentos e todo o aspecto visual de um documento no devem ser funo da HTML. Cabem as CSS todas as funes de apresentao de um documento, e esta e sua finalidade maior finalidade. (Silva, 2007).

CSS so scripts de estilo que definem como os elementos HTML devem ser exibidos. Os scripts CSS podem ser incorporados ao arquivo HTML ou o mais normal serem arquivos externos como nos diz a traduo desse trecho da W3Schools:
Estilos normalmente so salvos em arquivos .ccc externos. Folhas de estilo externas permitem que voc altere a aparncia e o layout de todas as pginas em um site, apenas editando um nico arquivo! (W3Schools, 2013, online. Traduo nossa).

2.11. JavaScript
JavaScript foi criada pela Netscape em parceria com a Sun Microsystems, com a finalidade de fornecer um meio de adicionar interatividade a uma pagina web. A primeira verso denominada JavaScript 1.0, foi lanada em 1995 e implementada em maro de 1996 no navegador Netscape Navigator 2D quando o mercado era dominado pela Netscape. JavaScript e uma linguagem desenvolvida para rodar no lado do cliente, isto e, a interpretao e o funcionamento da linguagem dependem de funcionalidades hospedadas no navegador do usurio. Isso e possvel porque existe um interpretador JavaScript hospedado no navegador. (Silva, 2010).

As principais caractersticas de JavaScript so ser capaz de definir, alterar e controlar de forma dinmica a apresentao de uma pagina no navegador, acessar e trabalhar com campos de formulrios e estabelecer troca de dados com o servidor. Todas essas caractersticas visam melhorar a interao dos usurios com paginas web e reduzir a necessidade de comunicao entre o cliente e o servidor, uma vez que o envio e resposta de dados ao servidor demandam mais tempo, assim tudo que puder ser executado no cliente diminui o tempo de execuo de um aplicativo. 2.12. Ajax
A palavra Ajax vem da expresso Asynchronous JavaScript and XML. o uso continuo de JavaScript e XML (entre outras tecnologias) para tornar o

19
navegador mais interativo com o usurio, utilizando-se solicitaes assncronas de informao (Niederauer, 2007).

As paginas HTML normalmente trabalham com links, ou seja, toda as solicitaes por novas informaes so feitas atravs links para outra pginas, mesmo em formulrio HTML as solicitaes so enviadas a outro programa fora da pgina dessa forma a respostas ir ser devolvida em outra com o carregamento de outra pgina HTML ou recarregando a prpria pgina. Com o uso do Ajax com JavaScript podemos solicitar e receber informaes do servidor sem a necessitada de que outra pgina seja carregada. (Niederauer, 2007). 2.13. Arquitetura Web 3 camadas Pressman, em Engenharia de Software, usa como umas das definies para arquitetura de software uma citao de Bass, Clements e Kazman, em Software Architecture in Practice:
A arquitetura de software de um programa ou sistema computacional a estrutura ou estruturas do sistema, que abrange os componentes de software, as propriedades externamente visveis desses componentes e as relaes entre eles. (Pressman, 2011).

A partir da definio acima Tanenbaum e Steen (2007), em Sistemas Distribudos, formula uma maneira de se visualizar um sistema arquitetnico: do modo como esses componentes esto conectados uns aos outros, dos dados trocados entre os componentes e, por fim, da maneira como esses elementos so configurados em conjunto para formar um sistema. (Tanenbaun, Steen; 2007; pag. 20). Um dos sistemas que surgem a partir do descrito acima a arquitetura em camadas onde uma camada L s pode acessar suas camadas adjacentes L-1 e L+1, como mostrado na figura 1:

20

Figura 1: Sistema Distribuido de n camadas. Fonte: elaborao prpria. No inicio a web era um sistema cliente- servidor 2 camadas simples, onde o cliente requisitava um documento, normalmente uma pgina HTML, o servidor buscava o documento e retornava ao cliente. Com o surgimento da interface Common Gateway Interface (Interface Comum de Gateway), ou simplesmente CGI, que definiu uma maneira pela qual o servidor web pode executar uma aplicao tendo como base dados enviados pelo usurio, normalmente um formulrio HTML, isso se altera agora aplicaes no servidor podem receber, alm da requisio de documentos, parmetros vindos do cliente, podendo processar esses parmetros e a alterar prpria pgina de resposta. Programas CGI podem ser to sofisticados quanto o desenvolvedor quiser (Tanenbaun, Steen; 2007; pag. 333). Muitos desses programas passam a operar junto com um banco de dados, surgindo assim a arquitetura web 3 camadas, figura 2, onde: 1. Camada de Apresentao: contem tudo que necessrio para interao com o usurio como a exibio de paginas HTML;

21 2. Camada de Aplicao: contem regras de negcios e a lgica da aplicao; 3. Camada de Dados: persistncia sobre os quais esto sendo executadas aes.

Figura 2: Modelo web 3 camadas. Fonte: elaborao prpria. 2.14. Banco de Dados Relacionais O Banco de Dados basicamente uma forma de armazenar dados, ou seja informaes, em um computador, que devem ser recuperadas e manipuladas no decorrer do tempo. (Date, 2004). O Relacional aqui diferente do que as pessoas podem ser levadas a pensar difere do significado empregado em um Modelo Entidade Relacionamento, ele vem de um modelo matemtico e logico, desenvolvido pelo cientista ingls Edgar Frank denominado Modelo Relacional, seu significado pode ser descrito como: 1. Os dados so vistos pelos usurios somente como tabelas e nada mais que tabelas, diferente por exemplo do modelo hierrquico onde os dados so vistos como arvores. 2. Os operadores usados pelo usurio criam novas tabelas, como exemplo um operador de unio ir unir dados de diferentes tabelas em uma nova tabela. 2.15. Modelo Entidade Relacionamento
O modelo entidade-relacionamento (E-R) tem por base a percepo de que o mundo real e formado por um conjunto de objetos chamados entidades e pelo conjunto dos relacionamentos entre esses objetos. Foi desenvolvido para facilitar o projeto do banco de dados, permitindo especificao do esquema da

22
empresa, que representa toda a estrutura lgica do banco de dados. (Siberschatz; Korth e Sundarshan; 1999).

O Modelo Entidade Relacionamento, ou MER, considerado melhor forma de se modelar um banco de dados, ele consiste de um conjunto de entidades que contm um conjunto de atributos e relacionamentos. Entidade a representao de objetos do mundo real que podem ser identificados de maneira nica, como por exemplo, cada cliente de uma vdeo locadora uma entidade. Uma entidade possui um conjunto de atributos sendo que alguns desses atributos devem ser nicos para cada entidade. No caso de um cliente da vdeo locadora seus atributos poderiam ser nome, sobrenome, endereo, telefone, etc. sendo que seu CPF seria um atributo nico para cada cliente. Como exemplo de relacionamento temos que um cliente pode estabelecer uma relao de aluguel com um ou mais filmes por vez, dentro das regras da locadora. Isso nos leva a um problema embora filmes possam ser entidades que tem como atributos o titulo, diretor, ator, atriz principal, etc. as locadoras possuem mais de um filme com os mesmos atributos, isso ns leva ao conceito de chaves: Uma superchave e um conjunto de um ou mais atributos que, tomados coletivamente. permitem identificar de maneira unvoca uma entidade em um conjunto de entidades. (Siberschatz; Korth e Sundarshan; 1999; pag. 32). Quando trabalhamos com banco de dados buscamos um nico atributo que possa identificar uma entidade de maneira unvoca, a esse atributo damos o nome de chave primaria. Os tipos de relacionamento podem ser definidos por sua cardinalidade: Um Para Um: Uma entidade A se relaciona uma nica vez com uma entidade B. Um Para Muitos: Uma entidade A se relaciona com mais de uma entidade B Muitos para Muitos: Muitas entidade A se relacionam com muitas entidades B.

23 O melhor modo de se representar um MER atravs de um diagrama, o modelo clssico usa retngulos para representar entidades, elipses para representar os atributos, losangos para representar relacionamentos e linhas que unem os conjuntos de atributos as entidades e unem os conjuntos de entidades ao conjunto dos relacionamentos, figura 3.

Figura 3: Diagrama MER clssico. Fonte: elaborao prpria. Devido simplicidade de nosso modelo iremos utilizar outra forma de diagrama para o MER, onde os retngulos representam conjuntos de entidades e as linhas representam os relacionamentos. Nessa representao os retngulos na realidade representam tabelas em nosso banco de dados relacional e as linhas as relaes entre as tabelas, assim os retngulos so divididos em duas partes sendo que a primeira contm o nome da tabela/(entidade ou relacionamento) e a segunda as colunas/atributos e as linhas indicam os relacionamentos entre tabelas, figura 4.

Figura4: Diagrama MER a ser usado. Fonte: elaborao prpria. 2.16. SQL ou Structured Query Language SQL nada mais que uma linguagem de computador para obter dados de um banco de dados relacional. Visando facilitar o seu uso e aprendizado por diversos membros de uma empresa ela foi criada como uma linguagem declarativa. (Patrick, 2002).

24 2.17. Sistema de Gerenciamento de Banco de Dados ou SGDB Sistemas de Gerenciamento de Banco de Dados so aplicaes usadas para criar e gerenciar uma base de dados. A criao e o gerenciamento de informaes implicam na definio das estruturas de armazenamento das informaes e a definio dos mecanismos para a manipulao dessas informaes. (Siberschatz, Korth, e Sundarshan; 1999; pg. 1). Alm da criao e gerencia o SGDB deve oferecer um ambiente seguro para os dados, no permitindo que pessoas no autorizadas tenham acesso aos mesmos e garantindo que a manipulao concorrente dos dados no produzam resultados anmalos. (Siberschatz, Korth, e Sundarshan; 1999). 2.18. MySQL O MySQL um dos mais populares sistema de gerenciamento de banco de dados relacional, que como j sugere o nome utiliza a linguagem SQL, porm acrescenta outros recursos prprios que no esto previstos no padro SQL. Seu sucesso se deve ao fato de poder trabalhar com grandes bases de dados de uma maneira confivel, rpida e fcil de usar, alm e claro de ser distribudo pela Oracle Corporation, uma empresa multinacional de tecnologia e informtica, sobre uma licena GPL que permite seu uso e distribuio gratuitos junto com outras aplicaes de cdigo livre. Alm disso, hoje em dia o MySQL junto com o PHP formam a base, banco de dados aplicao CGI, da maioria dos pacotes de hospedagem de sites na internet. (Manzano, Jos Augusto, 2012). 2.19. IDE ou Integrated Development Environment
IDE, do ingls Integrated Development Environment ou Ambiente Integrado de Desenvolvimento, um programa de computador que rene caractersticas e ferramentas de apoio ao desenvolvimento de software com o objetivo de agilizar este processo. Geralmente os IDEs facilitam a tcnica de RAD (de Rapid Application Development, ou "Desenvolvimento Rpido de Aplicativos"), que visa a maior produtividade dos desenvolvedores. (Wikipdia. Ambiente de Desenvolvimento Integrado. 2013, online)

25 2.20. Eclipse O Eclipse um IDE, desenvolvido pela IBM que depois o doou como software livre para a comunidade. Seu principal objetivo era o uso no desenvolvimento Java, mas com o seu grande sucesso vrios plug-ins foram desenvolvidos e hoje ele pode ser usado no s para desenvolvimento Java como tambm C++, PHP, Python etc. (Gonalves, 2006).

26 3. Requisitos 3.1. Escopo O SGC tem como funo administrar o contedo de um determinado site de forma dinmica para pessoas ou organizaes sem que elas precisem de conhecimentos avanados na rea de informtica. Para isso o SGC deve no mnimo: 1) Construir um banco de dados MySQL para o cliente e definir todos os parmetros do sistema que sejam necessrios para o bom funcionamento do site. 2) Oferecer um modelo de pginas em HTML para visualizao do site na web e disponibilizar uma maneira para que os clientes possam estender esses modelos ou mesmo substitui-los por outro modelo de visualizao de sua vontade. 3) Com relao aos modelos eles devem possuir funes simples e intuitivas para se inserir contedo e demais funcionalidades necessrias ao site. 4) Fornecer uma forma de se administrar o site atravs da prpria web. 5) Oferecer uma maneira de incluir contedo no site atravs da prpria web. 6) Oferecer uma maneira dos usurios interagirem com o site atravs de comentrios sobre o contedo publicado. 7) Oferecer uma forma de usurios se cadastrarem no site. 8) Possuir uma ferramenta de busca para o contedo. 9) O SGC deve ser feito de uma maneira que se possam incluir novas funcionalidades sem interferir nas j existentes ao longo do tempo 10) O SGC deve constar de trs tipos de usurios: os administradores, os escritores e os leitores. Sendo que os administradores como j diz o nome administraro o site, os escritores que escrevero os contedos e os leitores. As tarefas que cabem a cada um ficam assim distribudas: i. Aos administradores cabem gerenciar usurios, contedo,

comentrios e todas outras tarefas para manter o site em bom funcionamento. ii. Aos escritores cabe escrever o contedo do site e moderar os comentrios do mesmo.

27 iii. Os leitores podem ter acesso a contedo exclusivo do site e podem fazer comentrios sobre o mesmo. 3.2. Requisitos Funcionais Como vimos no escopo podemos dividir o SGC em trs partes sendo: primeira parte a de criao do SGC, a segunda corresponde parte administrativa do mesmo e a terceira a forma de apresentao na web. Sendo assim dividimos os requisitos e suas regras de negcios conforme as tabelas abaixo inspiradas em Anlise e Design: Orientados a Objetos (Hengholm, 2013). 3.2.1. Requisitos Funcionais Criao Identificao RF001 RF002 RF003 RF004 Descrio Criar conexo com o banco de dados. Criar tabelas do banco de dados. Criar o usurio administrador. Criar variveis de ambiente do site.

3.2.2 Regras de Negcios Criao Identificao Descrio Se no for possvel criar a conexo com banco de dados, RN001 deve se informar isso e recomendar a criao da conexo manualmente indicando o arquivo a ser editado. 3.2.3 Requisitos Funcionais Administrao Identificao RF005 RF006 Descrio Login de usurio. Logoff de usurio. Definir como os comentrios sero realizados, se eles RF007 sero permitidos, quem pode comentar e se eles devem passar por moderao antes de serem publicados.

28 Gerenciar usurio. Criar usurio, Ativar, desativar acesso RF008 do usurio ao site, excluir usurios e definir o nvel de acesso do mesmo. RF009 Gerenciar quaisquer outras funes para o bom

funcionamento do site Gerenciar artigo. Criar publicar ou excluir artigos. Inserir categorias e tags nos artigos. Gerenciar categorias. Criar e atribuir categorias para os artigos. Gerenciar tags. Criar e atribuir tags para os artigos. Gerenciar comentrios. Ler os comentrios, publicar ou excluir comentrios.

RF010

RF011 RF012 RF013

3.2.4 Regras de Negcios Administrao Identificao RN002 Descrio O acesso rea administrativa s deve ser feito atravs do login de usurio Para o login deve ser exigido um nome de usurio e uma senha. Os usurios definidos como administrador tem acesso a todos os requisitos funcionais. Os usurios definidos como escritores tem acesso aos RN005 requisitos RF009 at RF012 em alguns casos podero ter acesso a algumas das funes que faam parte do requisito RF012. RN006 Usurios definidos como leitores no devem ter acesso administrao. Deve-se guardar um registro de qualquer pessoa que RN007 acesse rea de administrao contendo o nome, IP e data de acesso.

RN003

RN004

29 3.2.5 Requisitos Funcionais da Apresentao Identificao RF014 RF015 RF016 Descrio Login de usurio. Logoff de usurio. Funo para cadastro de usurios. Funes definidas de maneira simples para que qualquer RF017 pessoa possa que no entenda de programao possa usar para incluso no cabealho de ttulo do site e variveis de ambiente no cabealho HTML. RF018 Funes como definidas acima para incluso de contedo nas paginas do site. Funo como definidas acima que permita criar

RF019

comentrios.

3.2.6 Regras de Negcios Apresentao Identificao RN008 Descrio O mnimo que deve ser exigido nos comentrios e um nome e um e-mail. Para cada comentrio deve se guardar o nome de quem fez o comentrio, seu e-mail, IP e data.

RN009

3.3 Requisitos No Funcionais Identificao Descrio O SGC requer um servidor web que possa rodar o PHP RNF001 verso 5.0 ou superior em conjunto com o MySQL verso 5.0 ou superior. RNF002 O SGC deve ser extensvel e de fcil manuteno. O SGC deve permitir que seus modelos HTML originais RNF003 relativos a apresentao sejam substitudos por de terceiros.

30 4. Modelagem do Sistema 4.1 Diagramas UML 4.1.1 Diagramas de Caso de Uso

Nome de Referencia

Criao do Sistema O administrador cria um banco de dados MySQL e informa o nome do banco de dados, o nome do usurio do banco de dados e a senha, para o SGC, este ento

Breve Descritivo

cria as tabelas necessrias ao site. O SGC solicita ento o nome do site e cria as variveis de ambiente. Ento ele solicita o um nome, e-mail e uma senha para criar o administrador do sistema.

Pr-Condies Atores

O administrador deve criar um banco de dados e seu usurio no MySQL. Administrador e SGC.

31

Nome de Referencia

Administrao do Sistema Escritores Os escritores fazem o login para terem acesso rea de administrao do SGC. O SGC ento grava os dados do usurio no banco de dados.

Breve Descritivo

Dentro da area de administrao os escritores podem escrever e gerenciar seus artigos, bem como gerenciar os comentrios sobre os mesmo. Alm disso, os escritores podem criar tags e categorias para os seus artigos.

Pr-Condies Atores

Os escritores devem estar cadastrados no SGC. Escritores, SGC e MySQL.

32

Nome de Referencia

Administrao do Sistema Administradores Os administradores fazem o login para terem acesso rea de administrao do SGC. O SGC ento grava os dados do usurio no banco de dados. Dentro da area de administrao os administradores podem escrever e gerenciar os artigos de qualquer

Breve Descritivo

usurio

do

sistema

podem

tambm

gerenciar

quaisquer comentrios e cabe a eles definir quem pode fazer comentrios e quais as regras para quem faz comentrios. Alm disso, os administradores podem criar tags e categorias para quaisquer artigos. Os administradores podem ainda gerenciar os usurios do sistema.

Pr-Condies Atores

Os administradores devem estar cadastrados no SGC. Administradores, SGC e MySQL.

33

Nome de Referencia

Administrao do Sistema Administradores Os administradores fazem o login para terem acesso rea de administrao do SGC. O SGC ento grava os dados do usurio no banco de dados. Dentro da area de administrao os administradores podem escrever e gerenciar os artigos de qualquer usurio do sistema.

Breve Descritivo

Os

administradores

podem

gerenciar

quaisquer

comentrios e cabe eles definir quem pode fazer comentrios. Alm disso, os administradores podem criar tags e categorias para quaisquer artigos. Os administradores podem ainda gerenciar os usurios do sistema. Pr-Condies Atores Os administradores devem estar cadastrados no SGC. Administradores, SGC e MySQL.

9. Bibliografia Alvarez, Miguel Angel . O que um CMS. CriarWeb.com. Disponvel em: http://www.criarweb.com/artigos/o-que-e-um-cms.html. Acesso em: 05 de Maio de 3013 Andrade, Gabriel. O que so Linguagens de Programao. InfoEscola. Disponvel em: http://www.infoescola.com/ informatica/o-que-sao-linguagens-de-programacao/. Acesso em: 6 de setembro de 2013 Araujo, Lindomar. Hipertexto. InfoEscola. Disponvel em: http://www.infoescola.com/informatica/hipertexto/. Acessado em: 27 de agosto de 2013 Brito, Daniela Borges de. Construindo um Blog de sucesso com o WordPress 3. 1 ed. Rio de Janeiro: Brasport, 2011.

34 Conceio , Fernando Correa da. et al. Manual do PHP. the PHP Documentation Group, 2013. Disponvel em: http://www.php.net/manual/pt_BR/index.php. DallOglio, Pablo. PHP: Programando com Orientao a Objetos. 2 ed. So Paulo: Novatec, 2009. Date, C. J. Introduo a sistemas de banco de dados. 8 ed. Rio de Janeiro: Elsevier, 2004. Deitel, H. M. et al. XML Como Programar. 1 ed. Porto Alegre: Bookman, 2003. Engholm Junior, Hlio. Anlise e Design: Orientados a Objetos. 1 ed. So Paulo: Novatec, 2013. Gilmore. W. Jason. Dominado PHP e MySQL: Do Iniciante ao Profissional. 3 ed. Rio de Janeiro: Alta Books, 2008. Gonalves, Edson. Dominado o Eclipse: tudo o que o desenvolvedor Java precisa para criar aplicativos desktop, da criao do aplicativo ao desenvolvimento de relatrios. [Rio de Janeiro: Editora Cincia Moderna Ltda, 2006] Hedengren, Thord Daniel. Smashing WordPress. 2 ed. Porto Alegre: Bookman, 2012. Manzano, Jos Augusto. MySQL 5.1 Interativo: guia prtico de orientao e desenvolvimento. 3 ed. So Paulo: rica: 2010. Patrick, John J. SQL Fundamentos. 2 ed. So Paulo: Berkeley, 2002. Portal Educao. Linguagem de Marcao. Disponvel em: http://www.portaleducacao.com.br/informatica/artigos/31639/linguagem-demarcacao#ixzz2dSrjoEMx. Acessado em: 25 de agosto de 2013 Preesman, Roger S. Engenharia de software: uma abordagem profissional. 7 ed. Porto Alegre: AMGH, 2011. Sanders, William. Aprendendo padres de projetos em PHP. 1 ed. So Paulo: Novatec, 2013. Siberschatz, Abraham; Korth, Henry F. e Sundarshan, S. Sistema de Banco de Dados. 3 ed. So Paulo: Pearson Makron Books, 1999. Silva, Maurcio Samy. Construindo sites com CSS e (X)HTML. 1 ed. So Paulo: Novatec, 2007. Silva, Maurcio Samy. Construindo sites HTML: sites de alta qualidade com HTML e CSS. 1 ed. So Paulo: Novatec, 2008. Silva, Maurcio Samy. HTML 5: A linguagem de programao para internet. 1 ed. So Paulo: Novatec, 2011. Silva, Maurcio Samy. JavaScript> guia do programador. 1 ed. So Paulo: Novatec,

35 2010. Tanenbaun, Andrew S.; Steen, Maarten van. Sistemas Distribudos: princpios e paradigmas. 2 ed. So Paulo: Pearson Prentice Hall, 2007. VanDik, Joihn K. Desenvolvimento Profissional com o Drupal. 2 ed. Rio de Janeiro: Alta Books, 2009. W3Schools. CSS Introduction. Disponvel em: http://www.w3schools.com/css/css_intro.asp. Acessado em: 8 de setembro de 2013 Welling, Luke e Thomsom, Laura. PHP e MySQL Desenvolvimento Web. 3 ed. Rio de Janeiro: Elsevier, 2005. Wikipdia. Ambiente de Desenvolvimento Integrado. Disponvel em: http://pt.wikipedia.org/wiki/Ambiente_de_Desenvolvimento_Integrado. Acessado em: 20 de agosto de 2013 Wikipdia. Ambiente de Desenvolvimento Integrado. http://pt.wikipedia.org/wiki/Ambiente_de_Desenvolvimento_Integrado. Acessado em: 20 de agosto de 2013 Wikipdia. Linguagem de programa. Disponvel em: http://pt.wikipedia.org/wiki/Linguagem_de_programa. Acessado em: 6 de setembro de 2013 Wikipdia. MySQL. Disponvel em: http://pt.wikipedia.org/wiki/MySQL. Acessado em: 3 de setembro 2013 Wikipdia. Sistema de gerenciamento de contedo. Disponvel em: http://pt.wikipedia.org/wiki/Sistema_de_gerenciamento_de_contedo. Acesso em: 05 de Maio de 3013 Zandstra, Matt. Objetos PHP, padres e prticas. 1 ed. Rio de Janeiro: Alta Books, 2009. Niederauer, Juliano. Web Interativa com Ajax e PHP. 1 ed. So Paulo: Novatec, 2007.