Universidade Federal de Pernambuco Centro de Informática Mestrado em Ciências da Computação UMA ANÁLISE PARA APOIO A DEFINIÇÃO DE UM PROCESSO DE REUSO DE REQUISITOS EM CLOUD COMPUTING Carlos dos Santos Portela [email protected] Disciplina: IN1149 - Qualidade, Processos e Gestão de Software Professores: Alexandre Vasconcelos e Cristine Gusmão ESTRUTURA DO ARTIGO Introdução Metodologia de Pesquisa Resultados da Pesquisa Proposta de Reutilização de RNFs – – Metodologia Feature-Oriented Domain Analysis Processo de Reuso Conclusões e Trabalhos Futuros Referências UNIVERSIDADE FEDERAL DE PERNAMBUCO 2 INTRODUÇÃO o dilúvio informacional em 2010, a quantidade de informação gerada no planeta será duas vezes maior do que o armazenamento disponível para guardá-la. e a escala do gráfico está em exabytes [são dezoito zeros] e os valores envolvidos já estão na casa dos milhares de exabytes [ou zettabytes]. todas as conversas telefônicas do planeta; todas as imagens de todas as câmeras; mais todos os livros digitados; etc. UNIVERSIDADE FEDERAL DE PERNAMBUCO Fonte: MEIRA, 2010 3 CLOUD COMPUTING Cloud Computing é baseado em uma coleção de muitos antigos e alguns novos conceitos em diversos campos de pesquisa como SOA, computação distribuída e grid, bem como a virtualização. [Youseff et al., 2010] UNIVERSIDADE FEDERAL DE PERNAMBUCO 4 CONTEXTO Computação na Nuvem está se tornando uma das mais importantes temáticas de pesquisa em Engenharia de Software; Vários estudos estão sendo realizados para analisar os impactos deste novo paradigma; Porém, há poucos trabalhos disponíveis que analisam os impactos deste no processo de desenvolvimento de software; De acordo com Breitman (2010), um bom ponto de partida seria analisar os impactos deste novo paradigma nos requisitos (RNFs). UNIVERSIDADE FEDERAL DE PERNAMBUCO 5 PROPOSTA DO ARTIGO Se os RNFs não forem tratados de maneira adequada, uma série de problemas em potencial podem vim a ocorrer [Mairiza, 2007]; E no contexto de Computação na Nuvem, a negligenciação destes RNFs é ainda mais crítica pois pode afetar seriamente a qualidade do serviço; – Implicar em eventuais penalidades previstas em SLA Objetivo da pesquisa apresentada neste artigo é: – Relatar uma revisão da literatura disponível sobre requisitos em Computação na Nuvem; – Propor uma Processo de Reuso de Requisitos para Computação na Nuvem. UNIVERSIDADE FEDERAL DE PERNAMBUCO 6 METODOLOGIA DE PESQUISA A pesquisa foi realizada em 14 fontes de informações publicadas nos últimos cinco anos; A maioria das fontes pesquisadas são: i. artigos publicados em periódicos internacionais; ii. artigos publicados em periódicos nacionais iii. iv. reconhecidos; livros publicados por editores reconhecidos; teses e dissertações. UNIVERSIDADE FEDERAL DE PERNAMBUCO 7 PORTAIS DE PERIÓDICOS UNIVERSIDADE FEDERAL DE PERNAMBUCO 8 CONCEITOS ABORDADOS “Nuvens são grandes repositórios de recursos virtualizados (hardware, plataformas de desenvolvimento e/ou serviços), facilmente acessíveis. Estes recursos podem ser reconfigurados dinamicamente de modo a se ajustar a cargas variadas, otimizando a utilização destes mesmos recursos. Este repositório de recursos é tipicamente explorado utilizando-se um modelo do tipo pagamento-por-uso, onde os fornecedores de infra-estrutura oferecem garantias no formato de SLAs customizadas.” [Vaquero et al., 2008] UNIVERSIDADE FEDERAL DE PERNAMBUCO 9 CONCEITOS ABORDADOS Requisitos Não-Funcionais podem ser definidos sob duas perspectivas diferentes [Mairiza et al., 2007]: (1) RNFs como os requisitos que descrevem as propriedades, características ou limitações que um sistema de software deve apresentar; e (2) RNFs como os requisitos que descrevem os atributos de qualidade que o produto de software deve ter. UNIVERSIDADE FEDERAL DE PERNAMBUCO 10 QUESTÕES BASES – Qual a quantidade de publicações disponíveis sobre requisitos e Computação na Nuvem? – Quais os principais requisitos de um ambiente de Computação na Nuvem? – Qual a definição e atributos destes requisitos de Computação na Nuvem? UNIVERSIDADE FEDERAL DE PERNAMBUCO 11 PALAVRAS-CHAVE DE BUSCA PALAVRAS-CHAVE SINÔNIMOS Não se aplica Cloud Computing Requirements Quality Attributes, Architecture Requirements, NonFunctional Requirements, Development Constraints, Business Rules COMBINAÇÕES “Requirements Cloud Computing” OR “Architecture Requirements Cloud Computing” OR “Quality Attributes Cloud Computing” OR “Non-Functional Requirements Cloud Computing” OR “Development Constraints Cloud Computing” OR “Business Rules Cloud Computing” UNIVERSIDADE FEDERAL DE PERNAMBUCO 12 RESULTADOS DA PESQUISA TIPOS DE LITERATURA NÚMERO DE LITERATURA Artigos publicados em períodicos internacionais 7 Artigos publicados em períodicos nacionais 2 Livros publicados por editores reconhecidos 4 Teses e dissertações 1 UNIVERSIDADE FEDERAL DE PERNAMBUCO 13 35 TIPOS DE RNFS UNIVERSIDADE FEDERAL DE PERNAMBUCO 14 ANÁLISE DOS RESULTADOS • Estes RNFs podem ser categorizados: SLAs, • • Arquitetura, Serviços, etc; Confiabilidade, Disponibilidade e Escalabilidade são os 3 principais tipos de RNFs em Cloud Computing; Alguns tipos de RNFs também são reconhecidos como atributos de outros RNFs [Mairiza et al., 2007]. UNIVERSIDADE FEDERAL DE PERNAMBUCO 15 PROPOSTA DE REUTILIZAÇÃO • De acordo com Pimentel (2008), o reuso de software é o reuso de tudo associado a um projeto de software, inclusive conhecimento; • No contexto de requisitos, reuso é um processo onde se faz o uso sistemático de documentos de requisitos visando reduzir o esforço dentro do ciclo de vida do software; UNIVERSIDADE FEDERAL DE PERNAMBUCO 16 ENGENHARIA DE DOMÍNIO • Os softwares desenvolvidos para as nuvens • são caracterizados por uma alta modularidade e configurabilidade, apresentando requisitos bastante comuns entre as aplicações; Propõe-se um processo que promova a reutilização de requisitos com base na Engenharia de Domínio. UNIVERSIDADE FEDERAL DE PERNAMBUCO 17 ENGENHARIA DE DOMÍNIO • Como entrada do processo de Análise de • Domínio, temos informações obtidas na literatura, em artefatos de sistemas já existentes, em pesquisas de mercado, em requisitos de sistemas e em especialistas; Como resultado final, temos o modelo de domínio, que pode compreender sua taxonomia, seus padrões, seus modelos funcionais e sua linguagem. UNIVERSIDADE FEDERAL DE PERNAMBUCO 18 METODOLOGIA FODA • A metodologia FODA – Feature-Oriented • Domain Analysis [Kang, 1990] se originou de um estudo de diferentes abordagens de Análise de Domínio, e provê o reuso não só de requisitos como também de arquitetura; Para atender este objetivo, FODA se divide em três fases: Análise de Contexto, Modelagem de Domínio e Modelagem de Arquitetura. UNIVERSIDADE FEDERAL DE PERNAMBUCO 19 ANÁLISE DE CONTEXTO • Define-se o escopo do domínio a ser explorado; • Analisa-se os relacionamentos entre o domínio e elementos externos, e as possíveis variações são avaliadas; • O resultado final desta fase é o documento de modelo de contexto, que define as fronteiras do domínio. UNIVERSIDADE FEDERAL DE PERNAMBUCO 20 MODELAGEM DE DOMÍNIO • Identifica-se as similaridades e as diferenças que caracterizam as aplicações do domínio. – Análise de características: nesta atividade se identifica as características dos sistemas que são visíveis ao consumidor ou usuário final; – Modelagem entidade-relacional: nesta atividade se identifica e define o conhecimento de domínio que é essencial para a implementação de aplicações nesse domínio; – Análise funcional: nesta atividade se identifica as funcionalidades em comum e diferenças funcionais das aplicações do domínio. UNIVERSIDADE FEDERAL DE PERNAMBUCO 21 MODELAGEM ARQUITETURAL • É gerado um modelo de arquitetura, a partir do qual um projeto detalhado e a construção de componentes podem ser feitos; • A arquitetura é dividida em camadas, visando facilitar o reuso; • O escopo deste trabalho não abrange a definição de arquitetura (está fase não será adotada na proposta). UNIVERSIDADE FEDERAL DE PERNAMBUCO 22 PROCESSO DE REUSO A fase de Engenharia de Requisitos diz respeito a fase já estabelecida na organização, que deseja desenvolver com reuso. UNIVERSIDADE FEDERAL DE PERNAMBUCO 23 ENGENHARIA DE REUSO A fase de Engenharia de Reuso compreende o desenvolvimento para reuso, e deve ser executada antes da primeira execução da fase de Engenharia de Requisitos. UNIVERSIDADE FEDERAL DE PERNAMBUCO 24 ANÁLISE DE CONTEXTO Analista do Domínio Especialista do Domínio Glossário Modelo de Contexto (Diagrama de Contexto) Revisão de Domínio Modelar Domínio Solicitação de Revisão Elicitar Conhecimento Modelo de Contexto (Descrição) Não Modelar Contexto Modelo de Contexto (Fontes de Informação) Identificar Fontes de Informação Sim O Modelo é satisfatório? UNIVERSIDADE FEDERAL DE PERNAMBUCO 25 MODELAGEM DE DOMÍNIO Especialista do Domínio Analista do Domínio Cliente Glossário Analisar Características Elicitar Conhecimento Modelo de Domínio (Características) Não Modelo de Contexto Modelar Modelo de Domínio Diagrama E-R (Diagrama E-R) Sim O Modelo é satisfatório? Aceitar Modelo UNIVERSIDADE FEDERAL DE PERNAMBUCO 26 CONCLUSÕES Espera-se contribuir para a comunidade de pesquisa em ES de três maneiras: (1) para melhorar a compreensão sobre a abordagem de RNFs em Computação na Nuvem; (2) para uxiliar desenvolvedores a conhecer e lidar de maneira adequada com os RNFs em projetos de softwares de Computação na Nuvem; e (3) espera-se que os principais RNFs em ambientes de Computação na Nuvem, apresentados neste trabalho possam auxiliar desenvolvedores na constituição de seus repositórios de reuso. UNIVERSIDADE FEDERAL DE PERNAMBUCO 27 TRABALHOS FUTUROS • Dissertação de mestrado, que pretende definir um Processo e um repositório de RNFs para Reuso em projetos de Computação na Nuvem; • Validação em um Estudo de Caso; • Análise detalhada dos impactos desse novo paradigma na atual Engenharia de Requisitos. UNIVERSIDADE FEDERAL DE PERNAMBUCO 28 REFERÊNCIAS • Baca, S. (2010) “Cloud Computing: What It Is and What It Can Do for • • • • You”. Global Knowledge Training LLC. Breitman, K. (2010) “Computação na Nuvem”, Em: Atualizações em Informática 2010, Editado por Wagner Meira Jr. e André C. P. L. de Carvalho & PUC-Rio, Rio de Janeiro; Sociedade Brasileira de Computação, Porto Alegre. CAPES (2010). Documento de Área – Ciência da Computação. Disponível em http://www.capes.gov.br/images/stories/download/avaliacao/COMPUT ACAO_05mar10.pdf. Último acesso em 20/10/2010. Kang, K. (1990). Feature-Oriented Domain Analysis (FODA). Software Engineering Institute, Carnegie Mellon University, Pittsburgh, EUA. Kolisco, L. (2009) “SLA in Cloud Computing”. Disponível em http://blogs.sun.com/lkolisko/entry/slas_in_cloud_computing. Último acesso em 19/10/2010. UNIVERSIDADE FEDERAL DE PERNAMBUCO 29 REFERÊNCIAS • • • • • • Lee, J. Y., Lee, J. W., Cheun, D. W., Kim, S. D. (2009) “A Quality Model for Evaluating Software-as-a-Service in Cloud Computing”. Seventh ACIS International Conference on Software Engineering Research, Management and Applications. Mairiza, D., Zowghi, D., Nurmuliani, N. (2007) “An Investigation into the Notion of Non-Functional Requiriments”. University of Technology Sydney, Australia. Motahari-Nezhad, R. H., Stephenson, B., Singhal, S. (2009) “Outsourcing Business to Cloud Computing Services: Opportunities and Challenges”. IEEE Internet Computing, Special Issue on Cloud Computing. OMG (2005) “OMG Middleware Specifications”. Software Process Engineering Metamodel, v1.1. Pimentel, J. H. C. (2008) “Adequação de um Processo de Reuso de Requisitos a uma Empresa Desenvolvedora de Software”. Trabalho de Graduação, CIn/UFPE, Recife, Brasil. Silveira, M. C. S. P. (2006) “A Reutilização de Requisitos no Desenvolvimento e Adaptação de Produtos de Software”. Dissertação de Doutorado, Faculdade de Engenharia – Universidade do Porto, Portugal. UNIVERSIDADE FEDERAL DE PERNAMBUCO 30