Ulisses Telemaco edited PropostaTrabalho.md  over 9 years ago

Commit id: de2f513cf6d30e12b39673b52f8532a76eb8b130

deletions | additions      

       

#Proposta de Trabalho  Em face destes desafios, este projeto tem como objetivo desenvolver uma Infraestrutura Computacional denominada ProcessHub. O ProcessHub é uma ferramenta para apoio a Governança do Processo de Software (PRESSMAN, 2007), atendendo desde a etapa da Definição do Processo, passando por Adaptação , Composição, Instanciação, Execução e Monitoramento. É possível perceber que o ProcessHub viabiliza, de fato, a materialização do modelo de gestão do processo de desenvolvimento de software (VAN DER AALST, 2013).  A Figura 1 descreve de forma abrangente as funcionalidades do ProcessHub para atender as necessidades relacionadas à Governança de Processos de Software. Nesta figura destacamos as seguintes fases:  • (a) Definição: um Processo de Desenvolvimento de Software define um conjunto de elementos que orquestram as atividades, artefatos e pessoas. Tais elementos de processo são organizados para situações específicas podendo, por exemplo, descrever Processos. Como pode ser observado na Figura 1.a, Prescritivos como o OpenUp, Processos Ágeis como o Scrum ou mesmos Processos de Reutilização de Frameworks e Procedimentos de Instalação de Sistemas. Sob a ótica do ProcessHub estes processos são independentes e armazenados em um repositório.  • (b) Adaptação e (c) Composição: Projetos de Desenvolvimento de Software estão inseridos em contextos específicos que definem por exemplo, os participantes do projeto; a disponibilidade destes participantes; restrições legais e a duração do projeto. Tipicamente tais contextos não são levados em consideração a priori quando da definição dos processos e portanto, ao se utilizar um processo, este necessita passar por um adaptação para que as peculiares do projeto sejam atendidas de forma individual (FARIAS, GARCIA, et al., 2012) (FARIAS, GARCIA e LUCENA, 2013).  • (d) Instanciação ou Planejamento: A fase de Instanciação (ou Planejamento) tipicamente define um conjunto de tarefas (WBS - Work Breakdown Structure) que precisam ser executadas para se atender aos objetivos de um projeto de software. Em um cenário onde a aderência ao processo é importante, como no ProcessHub, esta fase tem fundamental importância uma vez que as tarefas a serem executadas durante o projeto necessitam estar mapeadas nas atividades definidas do processo.  • (e) Execução: A fase de execução de um projeto permite que seus membros participantes possam acessar a lista de tarefas disponíveis em um determinado momento. É importante ressaltar que esta lista de tarefas deverá respeitar as restrições e dependências de ordem e de estado definidos no processo do projeto e na WBS.   • (f) Monitoramento: A fase de monitoramento permitirá o acompanhamento da execução do projeto.   É importante destacar que o ProcessHub se baseará na infraestrutura de BPM (Business Process Management) (Handbook on Business Process Management, 2010) (NORMANN e RAMÍREZ, 1993) que traz como ponto forte a utilização da notação BPMN (Business Process Modeling Notation) (OMG, 2013). Neste sentido, a estrutura principal de que norteará as funcionalidades para a Governança de Processos de Software no âmbito do ProcessHub será especificações em BPMN.  Um outro aspecto importante está no fato do ProcessHub ser oferecido sob o conceito SaaS (Software as a Service). O Software como Serviço, ou SaaS, é um modelo de distribuição de software onde a aplicação é disponibilizada de forma centralizada pelo fornecedor e acessada pelos clientes normalmente através da internet. Esse modelo dispensa a aquisição de licenças, instalação e configuração do software no ambiente do cliente. Ao invés disso, o software é vendido como Serviço e a responsabilidade pela disponibilização da aplicação é exclusiva do fornecedor.   Tendo em mente as funcionalidades do ProcessHub, destacamos a seguinte Lista de Objetivos:  a) Definir um Repositório de Processos especificados em BPMN (CAMPOS e OLIVERIA, 2011) (CAMPOS e OLIVEIRA, 2013) e estabelecer um conjunto de Processos Exemplo;  b) Definir uma interface amigável para a construção, adaptação (PILLAT, BASSO, et al., 2013) e composição (FARIAS, GARCIA e LUCENA, 2013) de processos especificados em BPMN;  c) Identificar procedimentos para apoiar a adaptação e composição de processos de software de modo que o processo resultante seja conforme com regras de boa formação (PILLAT, BASSO, et al., 2013).  d) Definir um procedimento e interface amigável para a construção da WBS do projeto;  e) Definir mecanismo de rastreamento (mapeamento) entre a WBS e o(s) processo(s);  f) Definir Máquina de Workflow capaz gerenciar a lista de tarefas definidas na WBS;  g) Definir Máquina de Workflow capaz de atender ao mecanismo de rastreamento definido;  h) Desenvolver interface de acesso ao ProcessHub;  i) Desenvolver mecanismo de acessos à Lista de Tarefas;  j) Desenvolver instância do ProcessHub na nuvem   k) Identificar política de acesso ao ProcessHub bem como mecanismo de tarifação;  l) Avaliar ProcessHub em um ambiente acadêmico;  m) Avaliar ProcessHub em um ambiente de produção.