wiki:NovoExpresso/dvs

Version 37 (modified by viani, 3 years ago) (diff)

--

Documento de Visão do Sistema

1. Objetivo

O propósito deste documento é coletar, analisar e definir as necessidades de alto-nível e características do sistema, focando nas potencialidades requeridas pelos afetados e usuários-alvo, e como estes requisitos foram abordados no sistema. A visão do sistema documenta o ambiente geral de processos desenvolvidos para o sistema, fornecendo a todos os envolvidos uma descrição compreensível deste e suas macro-funcionalidades. O Documento de Visão do Sistema documenta as necessidades e funcionalidades do sistema.

2. Descrição do Produto

O NOVO EXPRESSO será um sistema de comunicação contemplando os principais elementos para comunicação corporativa, baseado nas funcionalidades existentes no atual expresso, porém baseado em nova estrutura tecnológica, novo design gráfico e nova arquitetura baseada na orientação a serviços, voltando-se para suportar ambientes de nuvem. O NOVO EXPRESSO combinará em uma única interface todas as características essenciais para uma colaboração eficaz e no desenvolvimento de processos de negócios. Para as empresas, instituições públicas, associações ou particulares o NOVO EXPRESSO simplificará a comunicação interna e a coordenação e gestão de tarefas, compromissos, contatos e recursos incorporando requisitos fundamentais como facilidade de uso, estabilidade e segurança são indispensáveis. Um processo de desenvolvimento orientado a testes com extensa auditoria de código deve ser utilizado para que qualidade do trabalho transpareça.

O NOVO EXPRESSO procura resolver os seguintes problemas em relação a arquitetura e versão atual:

  • Estrutura tecnológica baseada em API idealizada em 2000, com defasagem tecnológica;
  • Baseado em outra realidade de internet;
  • Baseado fortemente no conceito de processamento no Server;
  • Avanço em funcionalidades que incompatibilizaram upgrade de versão em comunidade internacional;
  • Forte acoplamento das camadas, causando grande impacto na manutenção;
  • API não disponibiliza desacoplamento da Aplicação, resultando em esforço para integração;
  • Módulos desenvolvidos por equipes independentes sem requisitos de unidade de estruturas físicas ou reutilização de classes;
  • Segurança ficou gravemente prejudicada em função do não acompanhamento da comunidade maior ou de framework que absorvesse na época estas correções;
  • A comunidade egroupware incorporou o conceito do etemplate para tratamento das interfaces com usuários na tentativa de resolver vulnerabilidades;
  • Bugs, que ao passar do tempo são reintroduzidos;
  • Foi reimplementado do Egroupware considerando premissas antigas;
  • As permissões baseadas nas classes/tabela guardam permissões misturadas de difícil manipulação;
  • Seu Framework é desconhecido pela maioria dos desenvolvedores PHP, assim como o seu criador Egroupware, em consequencia há necessidade de especialização para domínio da API que suporta a solução.
  • Codebase interno construído ficou muito difícil para mantê-lo e estendê-lo de um modo econômico.
  • Os conceitos como "testes de unidade" são possíveis, porque as classes foram atadas a muito uma a outra.
  • O eTemplate inspeciona qualquer dado recebido do lado de cliente. Ele sabe que dados ele envia ao cliente e ele sabe que dados esperar de volta do cliente.
  • 90% do tempo gasto para gerar o conteúdo de HTML necessário pelo framework eGroupWare e eTemplate. A lógica de aplicação , toma só 10 % do tempo gasto;
  • A reimplementação sempre esbarra em premissas antigas, recaindo no mesmo erro;
  • A mesma classe/tabela guarda os direitos que o usuário pode usar que aplicações, que membro de usuário do qual grupo e que usuários realmente compartilham que dados.
  • Falta manejo de timezone próprio. O eGroupWare não tem nenhum tratamento sobre timezones.
  • Toda manutenção é impactante em função da estrutura construída com o passar dos tempos;

Para análise e construção deste novo sistema, houve prospecção no sentido de solucionar as questões mencionadas acima. Dentre as várias alternativas de evolução os seguintes fatores básicos foram requeridos:

  • Baixo custo para desenvolvimento e manutenção.
  • Segurança considerada como requisito principal.
  • Funcionalidades continuadas da versão anterior.
  • Orientação a serviços.
  • Utilização de Framework sedimentado no mercado.
  • Separação absoluta das camadas MVC.
  • Interface padronizada de acesso para os diversos módulos.

Após uma etapa de prospecção optou-se pela utilização do codebase do software TINE20(www.tine.org), em função deste cobrir todos os requisitos enumerados e elencados junto a Comunidade Expresso.

Portanto este documento prevê a utilização do codebase TINE20, agregando-se as funcionalidades existentes no expresso bem como características adicionais com suporte a ambientes em nuvem.

3. Envolvimento

3.1. Abrangência

O expresso hoje tem sua maior representação na comunidade expresso (www.expressolivre.org), sua difusão engloba não somente o Serpro e seus clientes, mas uma gama enorme de empresas e entidades públicas espalhadas em todo o território nacional com a diferença que para seus clientes o Serpro provê a manutenção do produto contratualmente enquanto que para os demais a comunidade disponibiliza o software sob licença livre. O projeto visa substituir a solução atual mantendo as funcionalidades existentes.

3.2. Papel das Partes Interessadas

3.2.1. Cliente

DescriçãoParte interessada que demandará as necessidados do projeto.
Papel no desenvolvimentoDefinir o serviço que essa solução busca satisfazer.
Fornecer informações quanto ao uso e suas necessidades com relação ao sistema.
Insumos ao projeto de softwareRequisitos do sistema para atender a necessidade dos clientes internos e da comunidade.
Requisitos não-funcionais, como performance, usabilidade da interface gráfica, etc.
Representante

3.2.2. Gestor

DescriçãoParte interessada responsável pelo sistema no SERPRO
Papel no desenvolvimentoDefinir as necessidades a serem atendidas pelo sistema.
Definir o escopo das entregas.
Estabelecer as funcionalidades requeridas e restrições operacionais.
Identificar juntamente com o analista os requisitos do sistema, funcionais e não-funcionais.
Homologação das implementações
Insumos ao projeto de softwareNecessidades dos usuários (incluindo os externos).
Solicitação de Alteração de Requisitos.
Requisitos Funcionais.
Restrições de negócio.
Representante

3.2.3. Gestor de Desenvolvimento

DescriçãoPapel responsável pela liderança e supervisão do projeto no nível alto da organização
Papel no desenvolvimentoProver recursos para viabilizar e garantir a melhoria contínua do projeto.
Gerenciamento técnico / administrativo e acompanhamento do projeto como um todo.
Insumos ao projeto de softwareRecursos humanos e tecnológicos.
Representante

3.2.4. Gestor Sênior

DescriçãoPapel responsável pela liderança e supervisão do projeto no nível alto da organização
Papel no desenvolvimentoContratar do serviço que essa solução busca satisfazer.
Determinar direcionarmento estratégico do projeto.
Insumos ao projeto de softwareDiretrizes organizacionais e estratégicas.
Representante

3.2.5. Líder de Projeto

DescriçãoPapel responsável direção, controle e administração do projeto
Papel no desenvolvimentoGerenciar as etapas de desenvolvimento, e interagir com a equipe para a perfeita acomodação dos requisitos do usuário.
Representar o projeto perante o cliente. Negociar compromissos e manter informados os demais envolvidos no projeto.
Formalizar os termos, responsabilidades, acordos de nível de serviço (ANS), e garantias de uso junto a clientes e grupos envolvidos.
Coletar as lições aprendidas, e utilizá-las para a melhoria contínua do processo de desenvolvimento.
Insumos ao projeto de softwareAlocação de recursos.
Quadro de Tarefas.
Gráfico Burndown.
Plano do Projeto.
Acordos de nível de serviço.
Termos, responsabilidades e garantias de projeto.
Atas de Reunião.
Representante

3.2.6. Analista de Requisitos

DescriçãoLevantamento dos requisitos do sistema.
Papel no desenvolvimentoIdentificar e descrever as necessidades do usuário, especificando as funcionalidades do software que irão atendê-las.
Levantar os requisitos funcionais e não-funcionais do sistema.
Definir quem e o que irá interagir com o sistema.
Gerenciar o escopo e a mudança dos requisitos.
Insumos ao projeto de softwareDocumento de Visão do Sistema
Documento de Visão do Projeto
Modelo de Requisitos
Glossário
Representante

3.2.7. Desenvolvedores

DescriçãoDesenvolvimento da aplicação
Papel no desenvolvimentoCodificação dos programas.
Auxílio do levantamento de requisitos e definição de arquitetura
e conceitos a serem implementados na solução.
Insumos ao projeto de softwareProgramas desenvolvidos nas tecnologias definidas.
Representante

3.2.8. Programadores

DescriçãoImplementação da aplicação
Papel no desenvolvimentoCodificação dos programas.
Insumos ao projeto de softwareProgramas codificados nas tecnologias definidas.
Representante

3.2.9. Área de Infra-estrutura

DescriçãoFornecer a infra-estrutura necessária para o desenvolvimento
Papel no desenvolvimentoFornecer a infra-estrutura de hardware e software conforme a necessidade do projeto.
Insumos ao projeto de softwareAmbientes de hardware e software para desenvolvimento, testes e homologação.
Gestão e consultoria com relação ao processo de GRS (gestão de riscos)
Representante

3.3. Papel dos Atores

3.3.1. Usuário

DescriçãoUsuário normal do sistema sem privilégios de administração.
Papel no desenvolvimentoRegistrar informações no sistema.
Insumos ao projeto de softwareInsere dados e troca informações com outros usuários do sistema.
RepresentanteN/A

3.3.2. Administrador de Usuários

DescriçãoUsuário com privilégio de administração de perfis de usuário.
Herda as permissões de Usuário.
Papel no desenvolvimentoAdministrar contas de usuários do sistema.
Insumos ao projeto de softwareCadastra e edita usuários.
Representante N/A

3.3.3. Administrador do Sistema

DescriçãoUsuário com privilégio de administração dos módulos que compõem o sistema.
Herda as permissões de Usuário e de Administrador de Usuários.
Papel no desenvolvimentoRealizar configurações avançadas dos módulos do sistema.
Insumos ao projeto de softwareHabilita, desabilita e configura os módulos do sistema;
Representante N/A

4. Necessidades e Funcionalidades

Criticidade

Crítico - O requisito é essencial. O fracasso em sua implementação significará o não atendimento das necessidades do cliente.
Importante – O requisito é importante para o sistema. Sua não implementação afeta a satisfação do usuário e/ou o valor agregado do produto, mas não impede o funcionamento do sistema dentro dos padrões mínimos.
Útil - O requisito é útil, porém não essencial à satisfação do cliente.

1.Autenticação
O sistema deve possuir mecanismo de autenticação e autorização de usuários.
BenefícioCrítico
Id Func.Descrição das Funcionalidades/atores envolvidos
F1.1Permitir autenticação utilizando usuário e senha.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema

F1.xDisponibilizar ao usuário área de Ajuda com informações básicas de funcionamento do sistema e contatos da áreas de suporte.
Atgores: Usuário, Administrador de Usuários e Administrador do Sistema
F1.xDisponibilizar internacionalização do sistema.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
F1.xPermitir autenticar através de certificados digitais.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema


2.Módulo de Administração do sistema
Administrar os módulos e demais recursos do sistema..
BenefícioCrítico
Id Func.Descrição das Funcionalidades/atores envolvidos
F2.1Permitir o gerenciamento dos módulos do sistema.
Atores: Administrador do Sistema
F2.2Permitir a configuração do serviço de autenticação de usuários
Atores: Administrador do Sistema
F2.3Permitir a configuração do serviço de armazenamento de dados
Atores: Administrador do Sistema
F2.5Permitir a configuração da localização das contas de usuários.
Atores: Administrador do Sistema
F2.6Permitir a configuração do serviço de armazenamento de mensagens.
Atores: Administrador do Sistema
F2.7Permitir a configuração do serviço de entrega de mensagens.
Atores: Administrador do Sistema

F2.xPermitir a administração do ambiente de nuvem.
Atores: Administrador do Sistema
F2.xPermitir o gerenciamento de idiomas.
Atores: Administrador do Sistema
F2.xPermitir a configuração do registro de LOGs.
Atores: Administrador do Sistema
F2.xPermitir configuração de tarefas para execução automática.
Atores: Administrador do Sistema
F2.xPermitir configuração dos recursos de Certificação Digital.
Atores: Administrador do Sistema
F2.xPermitir a administração dos recursos de segurança.
Atores: Administrador do Sistema


3.Módulo de Administração de usuários
Administrar os recursos disponibilizados pelo sistema para os usuários.
BenefícioCrítico
Id Func.Descrição das Funcionalidades/atores envolvidos
F3.1Permitir gerenciamento de Contas de Usuários
Atores: Administrador de Usuários e Administrador do Sistema
F3.3Permitir delegação de privilégios a grupos ou usuários.
Atores: Administrador de Usuários e Administrador do Sistema
F3.7Permitir gerenciamento de Grupos de Usuários.
Atores: Administrador de Usuários e Administrador do Sistema
F3.11Permitir gerenciamento de PAPEIS.
Atores: Administrador de Usuários e Administrador do Sistema

F3.xPermitir movimentação de caixas postais de usuários entre servidores distintos.
Atores: Administrador de Usuários e Administrador do Sistema
F3.xPermitir configuração de preferências globais dos módulos para os usuários.
Atores: Administrador de Usuários e Administrador do Sistema
F3.xPermitir registro das atividades dos usuários no sistema(logs).
Atores: Administrador de Usuários e Administrador do Sistema
F3.xPermitir administração de listas de e-mail.
Atores: Administrador de Usuários e Administrador do Sistema
F3.xPermitir visualização dos usuários autenticados.
Atores: Administrador de Usuários e Administrador do Sistema
F3.xPermitir notificação de manutenção de módulos.
Atores: Administrador de Usuários e Administrador do Sistema


4.Módulo de mensagens de e-mail
O sistema permitirá o gerenciamento de mensagens de correio eletrônico..
BenefícioCrítico
Id Func.Descrição das Funcionalidades/atores envolvidos
F4.1 Permitir que as mensagens sejam excluídas
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
F4.2 Permitir a criação de mensagens
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
F4.3 Permitir a edição de mensagens
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
F4.4 Permitir salvamento de mensagens em edição
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
F4.5 Permitir envio de mensagens de e-mail
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
F4.6 Permitir visualização de listas de mensagens de e-mail
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
F4.7 Permitir que as mensagens sejam respondidas
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
F4.8 Permitir que as mensagens sejam encaminhadas
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
F4.9 Permitir visualização de mensagens
Atores: Usuário, Administrador de Usuários e Administrador do Sistema

F4.xDisponibilizar edição avançada de mensagens de e-mail.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
F4.xDisponibilizar recurso de revisão ortográfica na edição de mensagens.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
F4.xDisponibilizar consulta a catálogo de endereços na edição de mensagens.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
F4.xDisponibilizar recurso de confirmação de leitura de mensagens.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
F4.xDisponibilizar classificação de mensagens.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
F4.xDisponibilizar gerenciamento de pastas de armazenamento de mensagens.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
F4.xDisponibilizar armazenamento local de mensagens.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
F4.xPermitir mover mensagens.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
F4.xPermitir compartilhamento de caixas postais.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
F4.xPermitir notificação de ausência temporária.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
F4.xPermitir a impressão de mensagens.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
F4.xDisponibilizar suporte a mensagens cifradas.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
F4.xDisponibilizar suporte a mensagens assinadas digitalmente.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
F4.xDisponibilizar gerenciamento de regras de filtragem de mensagens recebidas.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
F4.xDisponibilizar pesquisa de mensagens.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
F4.xPermitir exportação e importação de mensagens.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
F4.xDisponibilizar alerta de mensagens recebidas.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
F4.xPermitir utilização de teclas de atalho.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
F4.xDisponibilizar recurso de modelo de mensagens.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
F4.xPermitir o envio de mensagens para listas de e-mail.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema


5.Necessidade RNF Tradução PT-BR
O sistema deve possuir suporte para idioma PT-BR para o módulo Email e Administração de Usuários
BenefícioCrítico
Id Func.Descrição das Funcionalidades/atores envolvidos
F5.1Permitir iteração no módulo Email e Administração de Usuários no idioma PT-BR.?
Atores: Usuário, Administrador de Usuários e Administrador do Sistema


6.Necessidade RNF Suportar a Banco de Dados PostgreSQL
O sistema deve possuir suporte ao banco de Dados PostgreSQL
BenefícioCrítico
Id Func.Descrição das Funcionalidades/atores envolvidos
F6.1Permitir utilização do SGBD PostgreSQL?
Atores: Usuário, Administrador de Usuários e Administrador do Sistema


7.Disponibilização de Ambientes
Disponibilizar Ambientes para suporte ao Desenvolvimento
BenefícioCrítico
Id Func.Descrição das Funcionalidades/atores envolvidos
F7.1Disponibilizar repositório de código?
Atores: Administrador do Sistema
F7.2Disponibilizar repositório de documentação?
Atores: Administrador do Sistema
F7.3Disponibilizar ferramenta de cadastramento demandas?
Atores: Administrador do Sistema
F7.4Disponibilizar ferramenta de gestão ágil ICESCRUM?
Atores: Administrador do Sistema
F7.5Implementar políticas de backup?
Atores: Administrador do Sistema
F7.6Disponibilizar ambiente e treinamento para testes e integração?
Atores: Administrador do Sistema
F7.7Disponibilizar ambiente e treinamento para Demoo?
Atores: Administrador do Sistema


x. Módulo de agenda.
O sistema deve permitir a gestão de serviço de agenda.
BenefícioCrítico
Id Func.Descrição das Funcionalidades/atores envolvidos
Fx.xPermitir o gerenciamento de compromissos individuais e em grupo.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
Fx.xPermitir que compromissos criados sejam administrados por seus participantes.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
Fx.xPermitir visualização de disponibilidade de horário de outros atores.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
Fx.xDisponibilizar recurso de alerta de compromissos.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
Fx.xDisponibilizar consulta a catálogos de endereços.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
Fx.xPermitir a manutenção de feriados.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
Fx.xPermitir o compartilhamento de agenda entre atores.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
Fx.xPermitir a pesquisa de agendamentos.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
Fx.xPermitir que a utilização de categorias para eventos.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
Fx.xPermitir visualização de agendamentos.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
Fx.xPermitir impressão de compromissos.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
Fx.xPermitir a importação e exportação de compromissos.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
Fx.xPermitir a utilização de agenda em dispositivos diversos. (global)
Atores: Usuário, Administrador de Usuários e Administrador do Sistema


x.Módulo de Contatos
O sistema disponibilizará a utilização de catálogos de endereços.
BenefícioCrítico
Id Func.Descrição das Funcionalidades/atores envolvidos
Fx.xPermitir gerenciamento de contatos.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
Fx.xPermitir gerenciamento de grupos de contatos pessoais.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
Fx.xPermitir importação e exportação de contatos.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
Fx.xPermitir armazenamento de histórico de alteração de contatos.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
Fx.xPermitir impressão de lista de contatos.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
Fx.xDisponibilizar pesquisa de contatos.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
Fx.xPermitir o compartilhamento de catálogos.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema


x.Módulo de mensagens instantâneas
O sistema permitirá a utilização de mensagens instantânea.
BenefícioCrítico
Id Func.Descrição das Funcionalidades/atores envolvidos
Fx.xPermitir troca de mensagens instantâneas.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
Fx.xPermitir troca de arquivos.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
Fx.xPermitir consulta a catálogos de endereços.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
Fx.xPermitir a configuração de status do usuário.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
Fx.xPermitir o gerenciamento de contatos.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
Fx.xPermitir o gerenciamento de grupos de contatos.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema
Fx.xPermitir o armazenamento de histórico de conversas.
Atores: Usuário, Administrador de Usuários e Administrador do Sistema


x.Outros
Necessidades Adicionais.
BenefícioCrítico
Id Func.Descrição das Funcionalidades/atores envolvidos
Fx.x
Fx.x
Fx.x
Fx.x
Fx.x
Fx.x
Fx.x