300 likes | 452 Views
Carlos dos Santos Portela csp3@cin.ufpe.br. 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.
E N D
Carlos dos Santos Portela csp3@cin.ufpe.br 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 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-OrientedDomainAnalysis • Processo de Reuso • Conclusões e Trabalhos Futuros • Referências
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. Fonte: MEIRA, 2010
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]
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).
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.
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: • artigos publicados em periódicos internacionais; • artigos publicados em periódicos nacionais reconhecidos; • livros publicados por editores reconhecidos; • teses e dissertações.
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]
Conceitos Abordados Requisitos Não-Funcionais podem ser definidos sob duas perspectivas diferentes [Mairizaet al., 2007]: • RNFs como os requisitos que descrevem as propriedades, características ou limitações que um sistema de software deve apresentar; e • RNFs como os requisitos que descrevem os atributos de qualidade que o produto de software deve ter.
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?
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].
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;
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.
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.
Metodologia FODA • A metodologia FODA – Feature-OrientedDomainAnalysis[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.
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.
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.
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).
Processo de Reuso A fase de Engenharia de Requisitos diz respeito a fase já estabelecida na organização, que deseja desenvolver com reuso.
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.
Conclusões Espera-se contribuir para a comunidade de pesquisa em ES de três maneiras: • para melhorar a compreensão sobre a abordagem de RNFs em Computação na Nuvem; • para uxiliar desenvolvedores a conhecer e lidar de maneira adequada com os RNFs em projetos de softwares de Computação na Nuvem; e • 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.
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.
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/COMPUTACAO_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.
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.