PRDS - Programa de Residência em Desenvolvimento de Software Laboratório de Engenharia de Software (LES) da PUC-Rio Carlos Lucena lucena@inf.puc-rio.br Rodrigo Paes rbp@les.inf.puc-rio.br Gustavo Carvalho guga@les.inf.puc-rio.br Cidiane Lobato cidiane@inf.puc-rio.br
Projetos
Lista de Projetos Sistema de Gerenciamento de "Issues Canais Alternativos para Report de Issues Sistema de Geração de Questionários MDA4J: MDA e Boas Práticas para Acelerar o Desenvolvimento de Aplicações Java Plataforma para Desenvolvimento de Sistemas Médicos Ambiente de Educação Imersivo e Colaborativo Sistema de Gerenciamento de Vendas On-line Sistema para Imobiliárias DynamicX 3
Sistema de Gerenciamento de "Issues"
Sistema de Gerenciamento de "Issues" Permitir um canal de comunicação do usuário com a equipe de desenvolvimento de software. Usuário pode reportar bugs, sugestões, reclamações, etc., para a equipe de desenvolvimento de software. Sistema deve permitir acompanhamento dos "issues" através do status: resolvido, em avaliação, ignorado, etc. O sistema deve gerar um relatório indicando o tempo médio que a equipe está levando para dar feedback aos clientes. 5
Sistema de Gerenciamento de "Issues" Feedback é dividido em: tempo de reação e de resolução. O primeiro se refere a quanto tempo a equipe demorou para dizer ao usuário que estava avaliando o problema. O segundo se refere ao tempo necessário para efetivamente resolver ou ignorar o problema e informar ao usuário. Pode ser generalizado para "issues" de forma geral. Se o negócio é a venda de máquinas de lavar roupas, o canal permite o feedback de clientes sobre as máquinas. Se o negócio é oferecer treinamentos, o canal permite o feedback de alunos sobre os cursos realizados. 6
Sistema de Gerenciamento de "Issues" Trabalhos Relacionados: Jira, Bugzilla: olhar documentação sobre ciclo de vida de um bug e fazer adaptações para gerar um ciclo de vida de um issue. 7
Canais Alternativos para Report de Issues
Canais Alternativos para Report de Issues Um programa pode usar uma classe Exception que, quando chamada, reporta o problema ocorrido para o sistema de gerenciamento de issues. Outro canal que deve ser realizado é o celular. Deve existir uma interface no celular que permita que os clientes reportem os "issues. 9
Sistema de Geração de Questionários
Sistema de Geração de Questionários O uso de questionários é de fundamental importância na execução de tarefas de determinadas profissões. Entre os motivos para utilizar questionários estão: identificar a satisfação de clientes com um produto adquirido; realizar análise de mercado; verificar a qualidade de cursos dados por intrutores, etc. Em geral, a criação de questionários, a publicação e a coleta das respostas é realizada de forma manual ou utilizando ferramentas que exigem retrabalho a cada novo relatório. 11
Sistema de Geração de Questionários É possível construir um conjunto de ferramentas que auxilie na criação, publicação e coleta das respostas dos questionários. Uma proposta inclui: um modelo conceitual onde são representados os tipos de questionários existentes: questões objetivas, subjetivas, do tipo verdadeiro/falso, etc.; uma linguagem que permite a especificação dos questionários; uma ferramenta gráfica que permite ao usuário definir os questionários sem precisa conhecer a linguagem; 12
Sistema de Geração de Questionários definição de templates para a publicação de questionários. Os templates contém, por exemplo, um cabeçalho com o logotipo da empresa, rodapé com informações de endereço, figuras, etc. templates que defimem como a coleta da informação deve ser realizada; um gerador de questionários, que a partir da especificação do questionário na linguagem e dos templates gera o relatório; um coletor de informações responsável por capturar as respostas e gerar os relatórios desejados. 13
Sistema de Geração de Questionários LES/PUC-Rio 14
MDA4J: MDA e Boas Práticas para Acelerar o Desenvolvimento de Aplicações Java
MDA4J Criar um ambiente de desenvolvimento para permitir: especificar bibliotecas reutilizáveis de classes de domínios específicos; a configuração do tipo de aplicação que se deseja desenvolver; a especificação de propriedades adicionais, como, por exemplo, se é necessária a geração de relatórios ou o envio de email; que através dos passos anteriores seja possível gerar código utilizando boas práticas do uso destas tecnologias. 16
MDA4J Trabalhos relacionados: AppFuse e Tecnologias de transformação. LES/PUC-Rio 17
Plataforma para Desenvolvimento de Sistemas Médicos
Plataforma para Sistemas Médicos A medicina é carente de bons sistemas. Propõe-se o desenvolvimento de uma arquitetura que permita que sejam construídos incrementalmente vários módulos de grandes sistemas médicos. Como módulos iniciais são sugeridos: módulo de prontuário eletrônico: controla o cadastro e o histórico de pacientes; módulo de controle de receitas: verifica se as receitas estão em conformidade com um conjunto pré-definido de regras: Categorias de regras: regulamentação e combinação de substâncias. 19
Ambiente de Educação Imersivo e Colaborativo
Ambiente de Educação Imersivo e Colaborativo A sala do 13o. andar da Fundação Padre Leonel Franca possui um quadro que permite a construção de aplicações. Deve ser construído um sistema que permita a execução de trabalhos colaborativamente utilizando o quadro e laptops. 21
Sistema de Gerenciamento de Vendas On-line
Sistema de Gerenciamento de Vendas On-line Frequentemente é necessário construir um site em que a venda de produtos pela internet seja possível. O objetivo deste projeto é construir um sistema que permita a venda de produtos. Permitir as seguintes formas de pagamento: cartão de crédito, boleto bancário e transferência bancária. O sistema deve possuir uma interface web para a venda dos produtos diretamente ao consumidor. 23
Sistema de Gerenciamento de Vendas On-line O sistema deve oferecer um web service permitindo que a venda se dê em um cenário B2B. Exemplos de produtos são: software, cursos, peças de artesanato, eletrodomésticos, etc. O sistema deve ser construído de forma modular, considerando que vai ser integrado a outros sistemas. Por exemplo, um site de uma empresa de software irá utilizar o sistema de gerenciamento de vendas. 24
Sistema para Imobiliárias
Sistema para Imobiliárias A grande maioria das imobiliárias possuem sistemas precários de controle dos imóveis disponíveis para a venda. O sistema deve permitir: o cadastro de imóveis com informações, fotos, preço, etc.; um módulo para busca de imóveis; um módulo que permita a indicação de quando um imóvel foi vendido e para quem foi vendido. Como envolvem valores muito altos, as vendas não devem ser realizadas através do sistema. 26
Sistema para Imobiliárias Deve ser possível, porém, colocar a imobiliária em contato com clientes interessados na compra de imóveis. O site deve ser construído utilizando internacionalização, com as línguas iniciais sendo português, inglês e espanhol. O modelo de negócio poderia ser a distribuição gratuita do software; porém, a cada venda realizada, uma comissão sobre a venda é calculada como forma de pagamento. 27
DynamicX
DynamicX A NetBureu é uma empresa que trabalha com mídia digital desde 1998. Atualmente, atua no mercado como uma empresa de comunicação digital, oferecendo: produção web; uma ferramenta de gerenciamento web denominada DynamicX (que descreveremos adiante); planejamento estratégico de comunicação, tendo como base sistemas de informação. 29
DynamicX A ferramenta Dynamicx foi desenvolvida em php e atualmente possui o seguinte funcionamento: o site www.dynamicx.com.br é acessado; com senha e login individuais, chega-se à área administrativa; em formulários web, de fácil utilização, textos são editados, fotos e gráficos são incluídos para a gerência de sites. A ferramenta também possibilita: administrar os cadastros de usuários e clientes; criar um canal de comunicação digital entre uma empresa e seu público, através de emails personalizados em HTML, que podem ser enviados para bases de categorias distintas. 30
DynamicX Principais clientes são pequenas empresas com necessidade de administração enxuta e visibilidade no mercado. A idéia deste projeto é portar o Dynamicx para Java, prevendo também as seguintes funcionalidades: estatísticas de acesso às páginas; validação de email; emissão de boleto bancário; automatização da cobrança pelos nossos serviços; geração de PDF em alguns módulos; ordenação forçada, obedecendo critérios estabelecidos por usuários; geração de base xls; 31
DynamicX gerenciador de banner, com estatísticas de "views" e de clicks ; criação de um módulo de e-commerce; desenvolvimento de ferramentas de administração de RH; estatísticas de retorno de envio de newsletters; edição de newsletters; orçamento on-line; gerenciador Corporativo, com desenvolvimento de um serviço que atenda a empresas maiores, sendo possível ao usuário implementar diversos tipos de módulo disponíveis no sistema; criação de diferentes níveis de administrador; armazenamento de newsletters; painel de controle; ADM de JOBS. 32