C&L Lua

De Grupo de Engenharia de Requisitos PUC-Rio

Edição feita às 21h22min de 9 de novembro de 2009 por Wikieradm (Discussão | contribs)

O que é?

O C&L é um software para edição de símbolos do léxico e cenários. Este software disponibiliza um ambiente em que usuários podem interagir para construir, manter, evoluir e gerenciar projetos contendo cenários e símbolos do léxico.

O primeiro protótipo do C&L foi desenvolvido durante a disciplina Princípios de Engenharia de Software, oferecida pela PUC-Rio ao curso de Engenharia de Computação, no primeiro semestre de 2002. O software atual é o resultado da evolução deste protótipo por estudantes da graduação, mestrado e doutorado do Departamento de Informática da PUC-Rio ao longo de seis anos. O C&L foi desenvolvido desde o início com a filosofia de software livre e seu código fonte está disponível para quem quiser baixá-lo.

No ano de 2007 o C&L passou por um processo de manutenção e atualização, realizado pelos integrantes do grupo de engenharia de requisitos da PUC-Rio . Este processo corrigiu algumas de suas funcionalidades e adicionou uma nova ferramenta para geração de grafos, desenvolvida por um aluno da PUC-Rio em seu projeto final de graduação.


Arquitetura e tecnologias utilizadas

Escolhemos a linguagem Lua [Ierusalimschy03] para implementação da ferramenta. Esta escolha foi motivada por três motivos principais. O primeiro deles é que Lua provê um excelente suporte a programação funcional e acreditamos que o uso de funções se adequa mais a descrição por cenários proposta pelo nosso método. O Segundo motivo é que Lua é uma linguagem cada vez mais utilizada, e acreditamos que suas principais características (livre, rápida, extensível e pequena, dentre outras) sejam bastante úteis quando aplicadas ao desenvolvimento de sistemas Web. E por último, o C&L faz muitas comparações baseadas em expressões regulares para determinar o relacionamento entre elementos. Lua oferece um excelente suporte ao uso de expressões regulares e comparações entre strings.

Lua não foi projetada para desenvolvimento de sistema Web, por isso utilizamos a plataforma Kepler [Kepler09]. Esta plataforma disponibiliza uma série de módulos que facilitam o desenvolvimento de código Lua para Web. Dentre os módulos podemos destacar o CGILua que permite a criação de páginas dinâmicas para Web e a manipulação de dados provenientes de formulário, o LuaSQL que fornece uma interface simples para interação de Lua com alguns dos principais sistemas gerenciadores de banco de dados e, por último, o Xavante, que é um poderoso servidor Web HTTP 1.1, que usa uma arquitetura modular baseada em tratadores URI mapeados.

Para a construção da nova arquitetura adotamos o framework MVC, pois acreditamos que a divisão em camadas proporcionada por ele favorece a organização e entendimento do código fonte do software, proporcionando uma maior transparência a nível de código. Em nossa arquitura existe a divisão física do sistema em camadas e a divisão lógica em módulos. Cada um dos módulos está distribuído pelas camadas de visão, controle e modelo, como mostra a Figura abaixo.


Ferramentas pessoais
Reuniões do grupo
Languages