KUR’ÂN-I KERİM’DEKİ SORU VE CEVAPLARIN MAKSATLARI VE METODU
1. KUR’ÂN-I KERİM’DEKİ SORU VE CEVAPLARIN MAKSATLARI
1.2. İkna Etmek
No topo da arquitetura do sistema Phoca encontra-se o m´odulo de ferramentas. Durante o desenvolvimento do sistema, este foi o m´odulo que influenciou a maior parte das decis˜oes tomadas, inclusive em rela¸c˜ao ao projeto do sistema e sua divis˜ao em m´odulos e camadas.
Neste m´odulo foram implementadas as ferramentas que permitem a intera¸c˜ao dos usu´a- rios com o sistema. ´E tamb´em neste m´odulo que se encaixam novas ferramentas que forem desenvolvidas, e mesmo plugins e m´odulos para integra¸c˜ao das funcionalidades do Phoca com ferramentas j´a utilizadas em ambientes de desenvolvimento de software, como, por exemplo, as IDEs Eclipse e NetBeans.
Duas ferramentas gr´aficas foram desenvolvidas para o sistema Phoca: um configurador de meta-modelos e um editor de documentos; tais ferramentas atendem aos casos de uso relacionados a configura¸c˜ao de meta-modelos e edi¸c˜ao de documentos. Para os outros casos de uso, foram desenvolvidas ferramentas que devem ser utilizadas diretamente na linha de comandos. Esta abordagem foi utilizada justamente porque o foco do sistema ´e fornecer as APIs que permitem a realiza¸c˜ao do controle de vers˜oes refinado e flex´ıvel para artefatos de software, sem, no entanto, obrigar os usu´arios a utilizar ferramentas propriet´arias ou uma IDE espec´ıfica do sistema. Na Figura 4.9 s˜ao mostradas as telas do editor de documentos, `a esquerda, e do configurador de meta-modelos, `a direita.
Figura 4.9. Configurador e editor de documentos do Phoca: interface gr´afica
comandos tradicionais dos sistemas de controle de vers˜oes, esta ferramenta tamb´em imple- menta comandos espec´ıficos que s˜ao utilizados devido ao fato do Phoca ser um sistema de controle de vers˜oes refinado, como o comando para atualiza¸c˜ao de links, listagem de links existentes, recupera¸c˜ao de dados relacionados `a estrutura de arquivo, compartilhamento de n´o com outro usu´ario, altera¸c˜ao do meta-modelo de documento do projeto. A descri¸c˜ao dos principais comandos disponibilizados pela ferramenta ´e listada abaixo:
• add: adiciona um novo arquivo sob controle de vers˜oes. O arquivo ´e marcado para inclus˜ao, e a inclus˜ao definitiva ´e feita ap´os a execu¸c˜ao do comando commit
• checkout: recupera uma vers˜ao do reposit´orio central, incluindo todos os n´os existen- tes. Pode ser informada uma vers˜ao do reposit´orio a ser recuperada, de qualquer uma das ramifica¸c˜oes.
• checkout structure: recupera apenas a estrutura dos arquivos do reposit´orio central. Pode ser informada uma vers˜ao do reposit´orio a ser recuperada.
• full checkout: realiza uma sincroniza¸c˜ao com o reposit´orio central, recuperando todas as vers˜oes armazenadas. Como parˆametros podem ser passadas a primeira e a ´ultima vers˜ao que devem ser recuperadas; este parˆametro deve ser numa ramifica¸c˜ao espec´ıfica. Se nenhum parˆametro for fornecido, todas as ramifica¸c˜oes s˜ao recuperadas.
• commit: salva todas as altera¸c˜oes locais no reposit´orio central, na ramifica¸c˜ao corres- pondente.
• save: salva a vers˜ao intermedi´aria de um arquivo. N˜ao interage com reposit´orio central. • load: carrega a vers˜ao intermedi´aria de um n´o, podendo corresponder a um documento
ou qualquer uma de suas partes.
• sync: realiza a sincroniza¸c˜ao de um n´o ou de um determinado diret´orio com outro usu´ario. Deve ser passado o IP do usu´ario de destino com quem ser´a feita a sincroni- za¸c˜ao, al´em da freq¨uˆencia de sincroniza¸c˜ao em segundos.
• list metamodels: lista os meta-modelos de documentos dispon´ıveis no reposit´orio central. Opcionalmente pode-se passar o tipo de arquivo a que o meta-modelo faz referˆencia.
• update metamodel: atualiza a vers˜ao do meta-modelo de documento para um ar- quivo ou conjunto de arquivos espec´ıficos. A atualiza¸c˜ao ´e enviada ao reposit´orio central. O usu´ario deve ter permiss˜ao para executar esta opera¸c˜ao. Deve ser passado como parˆametro o tipo de arquivo e a vers˜ao desejada do meta-modelo.
• update link: atualiza a vers˜ao de um n´o de liga¸c˜ao espec´ıfico. Deve ser fornecido o id do link e a nova vers˜ao do arquivo alvo desejado (a atualiza¸c˜ao do arquivo ocorre via an´alise do documento)
• list links: lista n´os de liga¸c˜ao existentes em determinado n´o ou numa determinada por¸c˜ao do reposit´orio
• update all links: atualiza todos os links de um n´o ou de um diret´orio do reposit´orio para a vers˜ao mais recente dos arquivos alvo
• update all metamodels: atualiza todos os meta-modelos de um determinado dire- t´orio do reposit´orio para a vers˜ao mais recente
A utiliza¸c˜ao das ferramentas via linha de comando ´e suficiente para testar a aplica¸c˜ao, validando suas fun¸c˜oes principais de controle de vers˜oes refinado e flex´ıvel. Entretanto, algumas funcionalidades que s˜ao oferecidas pelas APIs s˜ao dif´ıceis de serem implementadas como ferramenta de linha de comando, como, por exemplo, a edi¸c˜ao colaborativa de n´os de documentos em tempo real.
Vale ressaltar que as APIs do sistema Phoca foram desenvolvidas utilizando o padr˜ao de projeto Observer, o que facilita a constru¸c˜ao de interfaces gr´aficas de usu´ario. Isso ocorre porque este padr˜ao permite que atualiza¸c˜oes no m´odulo de Modelo sejam capturadas auto- maticamente pela interface, que pode, ent˜ao, atualizar a apresenta¸c˜ao dos dados aos usu´arios.