UNIVERSIDADE FEDERAL DE CAMPINA GRANDE CURSO DE CIÊNCIA DA COMPUYTAÇÃO DISCIPLINA PROJETO EM COMPUTAÇÃO I PROFESSORA: Francilene Garcia PROJETO: X-SCI - Software Conformity Inspection EQUIPE: Alexandre Sales Alexandre Nunes Maria Isabel Farias ORIENTADORES: Joseana Fechine Eustáquio Rangel Relatório Arquitetural do projeto X-SCI - eXpert Software Conformity Inspection Campina Grande, 10 de maio de 2010. 1.Introdução A fim de descrever a arquitetura do projeto X-SCI - eXpert Software Conformity Inspection, foi elaborado este relatório, que é parte da Segunda Iteração do referido projeto, da disciplina de Projeto I, do semestre 2010.1, ministrada pela Professora Francilene Garcia, na Universidade Federal de Campina Grande. O presente relatório está organizado como se segue: inicialmente será apresentada a descrição do sistema, como também a sua finalidade, baseada na exigência dos clientes. Logo depois, uma explicação sucinta sobre os Stakeholders, Requisitos Arquiteturais e, para finalizar, será explorada a visão lógica do X-SCI. 2. Finalidade do Sistema Contexto X-SCI é um sistema especialista para automação do processo de inspeção de conformidade de produtos de software para o padrão ISO 9241. Inspeção de conformidade trata-se de um tipo de avaliação onde o avaliador deve verificar o nível de conformidade que um software tem em relação a determinadas diretrizes. O avaliador, nesse contexto, deve preencher uma série de checklists de conformidade onde ele pode marcar se a diretriz foi seguida ou não e dar sugestões de melhoria quando necessário. Entretanto, o processo de avaliar software dessa forma pode se tornar enfadonho uma vez que as diretrizes necessárias podem ser extensas e complicadas e os checklists precisam ser respondidos fielmente às conclusões do avaliador. Para vencer essa dificuldade, o software X-SCI é uma ferramenta que automatiza a inspeção de conformidade de produtos de software especificamente para o padrão ISO 9241 que trata de diretrizes para a construção de interfaces gráficas. O sistema deverá criar uma interface amigável com o avaliador onde ele deve responder, para cada diretriz, qual o nível de conformidade que a ferramenta tem em relação ao padrão ISO 9241 dando como resposta o grau de aderência da ferramenta ao padrão (nível de certeza probabilístico de que a diretriz se aplica à ferramenta) e o grau de conformidade (nível de certeza probabilístico de que a diretriz está sendo seguida). O sistema, por sua vez, deverá automatizar a geração do checklist, relatórios gráficos e calcular o nível de conformidade do software usando algoritmos que têm como base o teorema de Bayes. Inicialmente, o sistema contará apenas com suporte a avaliação em relação à parte 16 do padrão ISO 9241 que trata de componentes de manipulação direta como botões, caixas de texto e caixas de checagem (checkbox). Interface do Sistema A interface entre os usuários e o sistema deverá ser desktop e os serviços fornecidos pela ferramenta são descritos abaixo: Suporte a respostas diretas quanto ao nível de aderência e conformidade da ferramenta avaliada em relação a cada diretriz do padrão ISO 9241, Parte 16. Suporte a geração de relatórios gráficos: taxa de aderência, conformidade. Suporte a geração automática dos checklists de avaliação. Suporte a inserção de comentários por parte do avaliador. Suporte a interromper uma avaliação e continuar em oportunidades posteriores (salvar o projeto). Suporte à ação de desfazer ou refazer partes da avaliação. 3. Stakeholders Diversos stakeholders estão envolvidos com o sistema X-SCI, a seguir apresentaremos uma descrição de cada um deles. Clientes: são os professores Joseana Fechine e Eustáquio Rangel. Usuários: são avaliadores e designers de interfaces gráficas. Desenvolvedores: são responsáveis por desenvolver os componentes do sistema. Testadores: são responsáveis por verificação/validação do X-SCI através de testes de “caixa branca/preta”. Gerente de projeto: é responsável por coordenar o desenvolvimento do X-SCI, bem como interagir com os demais stakeholders provendo o bom andamento do projeto, nesse sentido todos os desenvolvedores serão, seqüencialmente, gerentes. 4. Requisitos Arquiteturais Requisitos Arquiteturais Funcionais Acesso via terminal desktop. Salvamento de uma avaliação em andamento. Utilização da base regras via XML. Geração de gráficos quanto ao nível de aderência e de conformidade. Geração de checklists preenchidos de forma automática. Inserção de comentários para cada diretriz do padrão. Geração de recomendações a serem seguidas de acordo com o nível de aderência e conformidade a cada diretriz do padrão. Requisitos Arquiteturais Não Funcionais Utilização da linguagem Java com auxílio do pacote IReport para geração de relatórios. Tempo de resposta de, no máximo, 3 segundo para carregamento de cada janela. O software deve ser independente de plataforma e resolução do monitor (deve funcionar no ambiente Windows e no ambiente Linux). O software, por si, deve estar em conformidade com a parte 16 do padrão ISO 9241. 5. Visão Lógica Nesta seção, apresentaremos aspectos detalhados sobre a estrutura da arquitetura do X-SCI, tais como decisões-chave e diagramas de componentes. Por isso, tal seção se endereça aos stakeholders: clientes, usuários, desenvolvedores, testadores e gerentes de projeto. Decisões-chave para a estrutura da arquitetura Decisão-chave Utilizar linguagem Java Drivers RNF: Utilização de linguagem OO para desenvolvimento; Descrição Java é uma linguagem do paradigma OO com grande aceitação no mercado. Diferentemente das linguagens convencionais, que são compiladas para código nativo, Java é compilada para bytecode, que pode ser executado por uma máquina virtual. Vantagem Por rodar em uma máquina virtual, facilita a utilização em sistemas operacionais distintos. Utilizar Desvantagem uma máquina virtual pode tornar o sistema mais lento. Observações Decisão-chave Eclipse como IDE utilizado Drivers RNF: Utilização de IDE voltado à linguagem OO para o desenvolvimento do sistema; Descrição Eclipse é um IDE desenvolvido em Java, com código aberto para a construção de programas de computador. Forte orientação ao desenvolvimento baseado em plug-ins e o amplo suporte ao desenvolvedor com centenas de plug-ins que procuram atender as diferentes necessidades de diferentes programadores Vantagem Desvantagem Observações Decisão-chave Utilização do Subversion como sistema de controle de versões Drivers RNF: Utilização de sistema de controle de versões; Descrição Subversion é um sistema de controle de versão desenhado especificamente para ser um substituto moderno do CVS, que se considera ter algumas limitações. Vantagem Facilita integração de código; Registra todas as versões já enviadas para o repositório. Desvantagem Observações Decisão-chave Persistência de objetos será realizada a partir de arquivos Drivers Descrição Os arquivos serão salvos em formato próprio ou um formato já existente dependendo do sistema SCADA utilizado. Vantagem Fácil implementação; Independência de plataforma ; Boa eficiência Concorrência deverá ser tratada; Desvantagem Embora a persistência de arquivos possa gerar problemas de segurança, desempenho, etc.. Em relação à segurança, não é um ponto crítico do sistema e além disso, se o sistema for instalado corretamente e as permissões de arquivos forem configuradas de acordo com as diretrizes do sistema, a segurança será suficiente. Observações Riscos Arquiteturais Críticos Risco: Até o momento a persistência em arquivos está se comportando de maneira adequada. Porém, pode não se comportar de forma eficiente à medida que aumenta o número de clientes ao mesmo tempo. Forma de ataque: Realizar testes para relatar o comportamento do software. Estrutura da Arquitetura Figura 1. Arquitetura Geral Ao executar o software, o designer/avaliador terá acesso às telas, implementadas em Java, utilizando a bilbioteca Swing. As ações aqui exigidas serão enviadas para a camada lógica através de uma classe fachada (Facade) e esta acessará diretamente a camada de persistência. Com isso, ocorrerá a geração de arquivos, caso o designer deseje ver os resultados na forma de checklist.