SlideShare uma empresa Scribd logo
1 de 15
ROTEIRO
• Introdução
• Fundamentação teórica:
– Computação em Nuvem
– Engenharia Dirigida por Modelos (MDE)
– Teste de Software
• Problema
• Solução
• Referências
Introdução
• A importância dos campos de estudo: Computação em Nuvem,
Engenharia Dirigida por Modelo e Teste de Software.
• Computação em Nuvem: redução na quantidade de recursos físicos,
virtualização, contribuição para uma economia mais sustentável
(Dougherty et al. 2012), etc.;
• Engenharia Dirigida por Modelos: modelos formais,
interoperabilidade entre os modelos criados, garantia de qualidade,
etc.;
• Teste de Software: verificação e eliminação dos erros durante o
desenvolvimento do software, software com maior qualidade.
Introdução
• Estas áreas tem se relacionado com grande frequência nos
últimos anos, sendo objetos de muitas pesquisas.
• Esta apresentação tem por objetivo fazer uma breve
explanação destes campos de pesquisa, identificar o problema
com base no estudo realizado e propor uma solução para o
problema.
Fundamentação Teórica:
Computação em Nuvem
• Paradigma de computação que possui como principais características:
virtualização, orientação a serviço, baixo acoplamento, forte tolerância a
falhas, modelo de negócio e de fácil uso. (Gong et al. 2010)
• “Computação em Nuvem é um modelo que oferece um acesso conveniente
e sob demanda a um conjunto compartilhado de recursos computacionais
configuráveis, como redes, servidores, armazenamento, aplicações e
serviços que podem ser rapidamente ofertados e liberados com esforço
mínimo de gerenciamento ou interação do provedor do serviço.” (Priyanka
et al 2012)
• Os serviços mais comuns são:
– Software-as-a-Service (SaaS)
– Platform-as-a-Service (PaaS),
– Infrastructure-as-a-Service (IaaS)
Fundamentação Teórica:
Computação em Nuvem
Infrastructure as a Service Representa um ambiente completo e gerenciado, que
torna fácil a entrega de recursos acessíveis (como
memória e rede)
Platform as a Service Ambiente de desenvolvimento de software que permite
um usuário implantar aplicações sem custos e sem
complexidade. Oferece, por exemplo, sistemas
operacionais, bancos de dados, serviços de mensagens,
armazenamento de dados.
Software as a Service Aplicações completas que executam no ambiente de
nuvem. Caracteriza-se pelo acesso centralizado à
informação através da internet.
Tabela 1. Principais serviços da Computação em Nuvem
Fundamentação Teórica:
Computação em Nuvem
Outros tipos de serviços:
Database as a Service, Test
as a Service, Security as a
Service, Communication
as a Service, Modelling as
a Service (Brunelière et al.
2010), entre outros, que
são oferecidos como um
serviço.
Figura 1 – Hierarquia dos serviços na
Computação em Nuvem (retirado de
Hilley 2009)
Fundamentação Teórica: Engenharia
Dirigida por Modelos (MDE)
• Abordagem que coloca os modelos como os principais artefatos em
todas as fases de desenvolvimento de software;
• Possui como benefícios o baixo custo e a redução de tempo no
desenvolvimento de software.
• Lida com a complexidade das fases de desenvolvimento,
manutenção e evolução dos sistemas de software.
• Exemplos de abordagens MDE: MDA, MDT, MDD, EMF.
• Teste Dirigido por Modelo (MDT): reduzir os esforços na criação de
casos de teste de software, oferecendo geração automática de casos
de teste de software a partir dos modelos.
Fundamentação Teórica:
Teste de Software
• Teste de software consiste na verificação e eliminação de erros
nos requisitos funcionais e não funcionais presentes durante o
desenvolvimento de software.
• Teste de software é uma parte integral de um ciclo de vida de
desenvolvimento de software que se espalha sobre todas as
fases de desenvolvimento. (Inçki et al. 2012)
• Os tipos de testes mais conhecidos: testes funcionais, testes
não funcionais, testes de performance, teste de segurança, teste
de integração, entre outros.
Problema
Figura 2. Tabela retirada de Inçki et al. (2012)
Problema
• De acordo com a Figura 2, os tipos de teste mais usados na
literatura levantada por (Inçki et al. 2012) são o teste funcional
(teste das funcionalidades da aplicação) e o teste de
performance (teste do desempenho do aplicativo).
• Na literatura presente nessa Figura, podemos observar que os
testes não funcionais não foram considerados entre os tipos de
teste, fazendo com que requisitos não funcionais como
usabilidade, segurança, confiabilidade, portabilidade, etc.,
sejam colocados de lado, privilegiando apenas os requisitos
funcionais dos serviços e a performance dos mesmos.
Solução
• Diante do problema colocado, ou seja, a baixa ocorrência ou
mesmo a desconsideração com os testes não funcionais em
serviços e/ou aplicativos baseados na nuvem, torna-se
necessário desenvolver uma solução que realize a identificação
e o teste dos requisitos não funcionais de um serviço baseado
na Nuvem.
• A solução consiste na elaboração de uma metodologia que
realiza a identificação e o teste dos requisitos não funcionais
de um serviço baseado em nuvem segundo uma abordagem
MDE. Uma ferramenta será construída também com o objetivo
de implementar a metodologia.
Solução
Captura dos
requisitos não-
funcionais do
serviço da
nuvem
Geração dos
modelos e
casos de teste,
segundo a
abordagem do
Teste Dirigido
por Modelos
Utilização dos
casos de teste
não funcionais
no serviço da
nuvem para
fins de
Verificação e
Validação do
serviço.
REFERÊNCIAS
• B. Dougherty, J. White, and D. C. Schmidt. Model-driven Auto-scaling of
Green Cloud Computing Infrastructure. Future Gener. Comput. Syst.,
28(2):371-378, Feb. 2012.
• C. Gong, J. Liu, Q. Zhang, H. Chen, and Z. Gong, "The Characteristics of
Cloud Computing", 391h iEEE international Conference on Parallel
Processing Workshops 2010, IEEE Computer Society, pp. 275-279.
• D. Hilley. Cloud Computing: A Taxonomy of Platform and Infrastructure-
level Offerings. Technical Report 13, Center for Experimental Research in
Computer Systems – Georgia Institute of Technology, April 2009.
REFERÊNCIAS
• H. Brunelière, J. Cabot, and F. Houault, Combining Model-Driven
Engineering and Cloud Computing, AtlanMod, INRIA RBA Center &
EMN, France, Nantes, 2010
• K. Inçki, I. Ari, and H. Sozer, “A survey of software testing in the cloud,”
in Proceedings of the 2012 IEEE Sixth International Conference on
Software Security and Reliability Companion, ser. SERE-C ’12.
Washington, DC, USA: IEEE Computer Society, 2012, pp. 18–23.
• Kristoffer Dyrkorn and Frank Wathne. Automated testing of nonfunctional
requirements. In Companion to the 23rd ACM SIGPLAN conference on
Object-oriented programming systems languages and applications,
OOPSLA Companion ’08, pages 719–720, New York, NY, USA, 2008.
ACM.
REFERÊNCIAS
• Priyanka, I. Chana, and A. Rana, Empirical evaluation of cloud-based
testing techniques: a systematic review. ;In Proceedings of ACM SIGSOFT
Software Engineering Notes. 2012, 1-9.
• SOUSA, Helaine; LOPES, Denivaldo; ABDELOUAHAB, Zair; CLARO,
Daniela; HAMMOUDI, Slimane. An Approach for Model Driven Testing:
framework, metamodels and tools. Computer Systems Science and
Engineering, v. 26, p. 41-55, 2011. ISSN 0267-619

Mais conteúdo relacionado

Semelhante a Uma metodologia para captura e teste de requisitos não funcionais de ambientes em nuvem segundo uma abordagem mde

Tdc Future 2021 - simples soluções grandes resultados - Márcio Rogério Nizzola
Tdc Future 2021 - simples soluções grandes resultados - Márcio Rogério NizzolaTdc Future 2021 - simples soluções grandes resultados - Márcio Rogério Nizzola
Tdc Future 2021 - simples soluções grandes resultados - Márcio Rogério NizzolaDextra Sistemas / Etec Itu
 
Computação em Nuvem - Cloud Computing
Computação em Nuvem - Cloud ComputingComputação em Nuvem - Cloud Computing
Computação em Nuvem - Cloud ComputingAllan Reis
 
Teoria de Sistemas de Informação - Atividade: Tecnologia e SI
Teoria de Sistemas de Informação - Atividade: Tecnologia e SITeoria de Sistemas de Informação - Atividade: Tecnologia e SI
Teoria de Sistemas de Informação - Atividade: Tecnologia e SIAlessandro Almeida
 
Status Report of Master
Status Report of MasterStatus Report of Master
Status Report of MasterLenin Abadie
 
Eng.ª do Software - 5. Desenvolvimento rápido de software
Eng.ª do Software - 5. Desenvolvimento rápido de softwareEng.ª do Software - 5. Desenvolvimento rápido de software
Eng.ª do Software - 5. Desenvolvimento rápido de softwareManuel Menezes de Sequeira
 
Memória de aula_aula04_eng_software
Memória de aula_aula04_eng_softwareMemória de aula_aula04_eng_software
Memória de aula_aula04_eng_softwarerenatocinttra
 
Curso tecnologia em gestão da tecnologia da informação disciplina gerenciam...
Curso tecnologia em gestão da tecnologia da informação   disciplina gerenciam...Curso tecnologia em gestão da tecnologia da informação   disciplina gerenciam...
Curso tecnologia em gestão da tecnologia da informação disciplina gerenciam...Universal.org.mx
 
Aula 1 introdução à engenharia de software1 (1)
Aula 1   introdução à engenharia de software1 (1)Aula 1   introdução à engenharia de software1 (1)
Aula 1 introdução à engenharia de software1 (1)Tiago Vizoto
 
Análise Comparativa de Persistência de Dados Entre Hibernate e NHibernate
Análise Comparativa de Persistência de Dados Entre Hibernate e NHibernateAnálise Comparativa de Persistência de Dados Entre Hibernate e NHibernate
Análise Comparativa de Persistência de Dados Entre Hibernate e NHibernateRicardo Rinco
 
Introdução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NETIntrodução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NETMário Meyrelles
 
Implementing Product Line Variabilities - Presentation
Implementing Product Line Variabilities - PresentationImplementing Product Line Variabilities - Presentation
Implementing Product Line Variabilities - PresentationMichel Alves
 
TDD (Test-Driven Development)
TDD (Test-Driven Development)TDD (Test-Driven Development)
TDD (Test-Driven Development)Renato Groff
 
Desenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBANDesenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBANFernando Palma
 
Arquitetura de software - Introdução
Arquitetura de software - IntroduçãoArquitetura de software - Introdução
Arquitetura de software - IntroduçãoSergio Crespo
 
Apresentação do SCAD, Sistema Académico do DIEE
Apresentação do SCAD, Sistema Académico do DIEEApresentação do SCAD, Sistema Académico do DIEE
Apresentação do SCAD, Sistema Académico do DIEEalexculpado
 
Frameworks de desenvolvimento web
Frameworks de desenvolvimento webFrameworks de desenvolvimento web
Frameworks de desenvolvimento webArlindo Santos
 

Semelhante a Uma metodologia para captura e teste de requisitos não funcionais de ambientes em nuvem segundo uma abordagem mde (20)

Tdc Future 2021 - simples soluções grandes resultados - Márcio Rogério Nizzola
Tdc Future 2021 - simples soluções grandes resultados - Márcio Rogério NizzolaTdc Future 2021 - simples soluções grandes resultados - Márcio Rogério Nizzola
Tdc Future 2021 - simples soluções grandes resultados - Márcio Rogério Nizzola
 
Computação em Nuvem - Cloud Computing
Computação em Nuvem - Cloud ComputingComputação em Nuvem - Cloud Computing
Computação em Nuvem - Cloud Computing
 
Teoria de Sistemas de Informação - Atividade: Tecnologia e SI
Teoria de Sistemas de Informação - Atividade: Tecnologia e SITeoria de Sistemas de Informação - Atividade: Tecnologia e SI
Teoria de Sistemas de Informação - Atividade: Tecnologia e SI
 
Status Report of Master
Status Report of MasterStatus Report of Master
Status Report of Master
 
Eng.ª do Software - 5. Desenvolvimento rápido de software
Eng.ª do Software - 5. Desenvolvimento rápido de softwareEng.ª do Software - 5. Desenvolvimento rápido de software
Eng.ª do Software - 5. Desenvolvimento rápido de software
 
Memória de aula_aula04_eng_software
Memória de aula_aula04_eng_softwareMemória de aula_aula04_eng_software
Memória de aula_aula04_eng_software
 
Curso tecnologia em gestão da tecnologia da informação disciplina gerenciam...
Curso tecnologia em gestão da tecnologia da informação   disciplina gerenciam...Curso tecnologia em gestão da tecnologia da informação   disciplina gerenciam...
Curso tecnologia em gestão da tecnologia da informação disciplina gerenciam...
 
Wgp09 Apresentacao Italo
Wgp09   Apresentacao ItaloWgp09   Apresentacao Italo
Wgp09 Apresentacao Italo
 
Aula 1 introdução à engenharia de software1 (1)
Aula 1   introdução à engenharia de software1 (1)Aula 1   introdução à engenharia de software1 (1)
Aula 1 introdução à engenharia de software1 (1)
 
Análise Comparativa de Persistência de Dados Entre Hibernate e NHibernate
Análise Comparativa de Persistência de Dados Entre Hibernate e NHibernateAnálise Comparativa de Persistência de Dados Entre Hibernate e NHibernate
Análise Comparativa de Persistência de Dados Entre Hibernate e NHibernate
 
Introdução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NETIntrodução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NET
 
Implementing Product Line Variabilities - Presentation
Implementing Product Line Variabilities - PresentationImplementing Product Line Variabilities - Presentation
Implementing Product Line Variabilities - Presentation
 
TDD (Test-Driven Development)
TDD (Test-Driven Development)TDD (Test-Driven Development)
TDD (Test-Driven Development)
 
Desenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBANDesenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBAN
 
Agile mobile testing
Agile mobile testingAgile mobile testing
Agile mobile testing
 
Arquitetura de software - Introdução
Arquitetura de software - IntroduçãoArquitetura de software - Introdução
Arquitetura de software - Introdução
 
Apresentação do SCAD, Sistema Académico do DIEE
Apresentação do SCAD, Sistema Académico do DIEEApresentação do SCAD, Sistema Académico do DIEE
Apresentação do SCAD, Sistema Académico do DIEE
 
Aula 02
Aula 02Aula 02
Aula 02
 
Frameworks de desenvolvimento web
Frameworks de desenvolvimento webFrameworks de desenvolvimento web
Frameworks de desenvolvimento web
 
Eng.ª do Software - 4. Processos de software
Eng.ª do Software - 4. Processos de softwareEng.ª do Software - 4. Processos de software
Eng.ª do Software - 4. Processos de software
 

Uma metodologia para captura e teste de requisitos não funcionais de ambientes em nuvem segundo uma abordagem mde

  • 1. ROTEIRO • Introdução • Fundamentação teórica: – Computação em Nuvem – Engenharia Dirigida por Modelos (MDE) – Teste de Software • Problema • Solução • Referências
  • 2. Introdução • A importância dos campos de estudo: Computação em Nuvem, Engenharia Dirigida por Modelo e Teste de Software. • Computação em Nuvem: redução na quantidade de recursos físicos, virtualização, contribuição para uma economia mais sustentável (Dougherty et al. 2012), etc.; • Engenharia Dirigida por Modelos: modelos formais, interoperabilidade entre os modelos criados, garantia de qualidade, etc.; • Teste de Software: verificação e eliminação dos erros durante o desenvolvimento do software, software com maior qualidade.
  • 3. Introdução • Estas áreas tem se relacionado com grande frequência nos últimos anos, sendo objetos de muitas pesquisas. • Esta apresentação tem por objetivo fazer uma breve explanação destes campos de pesquisa, identificar o problema com base no estudo realizado e propor uma solução para o problema.
  • 4. Fundamentação Teórica: Computação em Nuvem • Paradigma de computação que possui como principais características: virtualização, orientação a serviço, baixo acoplamento, forte tolerância a falhas, modelo de negócio e de fácil uso. (Gong et al. 2010) • “Computação em Nuvem é um modelo que oferece um acesso conveniente e sob demanda a um conjunto compartilhado de recursos computacionais configuráveis, como redes, servidores, armazenamento, aplicações e serviços que podem ser rapidamente ofertados e liberados com esforço mínimo de gerenciamento ou interação do provedor do serviço.” (Priyanka et al 2012) • Os serviços mais comuns são: – Software-as-a-Service (SaaS) – Platform-as-a-Service (PaaS), – Infrastructure-as-a-Service (IaaS)
  • 5. Fundamentação Teórica: Computação em Nuvem Infrastructure as a Service Representa um ambiente completo e gerenciado, que torna fácil a entrega de recursos acessíveis (como memória e rede) Platform as a Service Ambiente de desenvolvimento de software que permite um usuário implantar aplicações sem custos e sem complexidade. Oferece, por exemplo, sistemas operacionais, bancos de dados, serviços de mensagens, armazenamento de dados. Software as a Service Aplicações completas que executam no ambiente de nuvem. Caracteriza-se pelo acesso centralizado à informação através da internet. Tabela 1. Principais serviços da Computação em Nuvem
  • 6. Fundamentação Teórica: Computação em Nuvem Outros tipos de serviços: Database as a Service, Test as a Service, Security as a Service, Communication as a Service, Modelling as a Service (Brunelière et al. 2010), entre outros, que são oferecidos como um serviço. Figura 1 – Hierarquia dos serviços na Computação em Nuvem (retirado de Hilley 2009)
  • 7. Fundamentação Teórica: Engenharia Dirigida por Modelos (MDE) • Abordagem que coloca os modelos como os principais artefatos em todas as fases de desenvolvimento de software; • Possui como benefícios o baixo custo e a redução de tempo no desenvolvimento de software. • Lida com a complexidade das fases de desenvolvimento, manutenção e evolução dos sistemas de software. • Exemplos de abordagens MDE: MDA, MDT, MDD, EMF. • Teste Dirigido por Modelo (MDT): reduzir os esforços na criação de casos de teste de software, oferecendo geração automática de casos de teste de software a partir dos modelos.
  • 8. Fundamentação Teórica: Teste de Software • Teste de software consiste na verificação e eliminação de erros nos requisitos funcionais e não funcionais presentes durante o desenvolvimento de software. • Teste de software é uma parte integral de um ciclo de vida de desenvolvimento de software que se espalha sobre todas as fases de desenvolvimento. (Inçki et al. 2012) • Os tipos de testes mais conhecidos: testes funcionais, testes não funcionais, testes de performance, teste de segurança, teste de integração, entre outros.
  • 9. Problema Figura 2. Tabela retirada de Inçki et al. (2012)
  • 10. Problema • De acordo com a Figura 2, os tipos de teste mais usados na literatura levantada por (Inçki et al. 2012) são o teste funcional (teste das funcionalidades da aplicação) e o teste de performance (teste do desempenho do aplicativo). • Na literatura presente nessa Figura, podemos observar que os testes não funcionais não foram considerados entre os tipos de teste, fazendo com que requisitos não funcionais como usabilidade, segurança, confiabilidade, portabilidade, etc., sejam colocados de lado, privilegiando apenas os requisitos funcionais dos serviços e a performance dos mesmos.
  • 11. Solução • Diante do problema colocado, ou seja, a baixa ocorrência ou mesmo a desconsideração com os testes não funcionais em serviços e/ou aplicativos baseados na nuvem, torna-se necessário desenvolver uma solução que realize a identificação e o teste dos requisitos não funcionais de um serviço baseado na Nuvem. • A solução consiste na elaboração de uma metodologia que realiza a identificação e o teste dos requisitos não funcionais de um serviço baseado em nuvem segundo uma abordagem MDE. Uma ferramenta será construída também com o objetivo de implementar a metodologia.
  • 12. Solução Captura dos requisitos não- funcionais do serviço da nuvem Geração dos modelos e casos de teste, segundo a abordagem do Teste Dirigido por Modelos Utilização dos casos de teste não funcionais no serviço da nuvem para fins de Verificação e Validação do serviço.
  • 13. REFERÊNCIAS • B. Dougherty, J. White, and D. C. Schmidt. Model-driven Auto-scaling of Green Cloud Computing Infrastructure. Future Gener. Comput. Syst., 28(2):371-378, Feb. 2012. • C. Gong, J. Liu, Q. Zhang, H. Chen, and Z. Gong, "The Characteristics of Cloud Computing", 391h iEEE international Conference on Parallel Processing Workshops 2010, IEEE Computer Society, pp. 275-279. • D. Hilley. Cloud Computing: A Taxonomy of Platform and Infrastructure- level Offerings. Technical Report 13, Center for Experimental Research in Computer Systems – Georgia Institute of Technology, April 2009.
  • 14. REFERÊNCIAS • H. Brunelière, J. Cabot, and F. Houault, Combining Model-Driven Engineering and Cloud Computing, AtlanMod, INRIA RBA Center & EMN, France, Nantes, 2010 • K. Inçki, I. Ari, and H. Sozer, “A survey of software testing in the cloud,” in Proceedings of the 2012 IEEE Sixth International Conference on Software Security and Reliability Companion, ser. SERE-C ’12. Washington, DC, USA: IEEE Computer Society, 2012, pp. 18–23. • Kristoffer Dyrkorn and Frank Wathne. Automated testing of nonfunctional requirements. In Companion to the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications, OOPSLA Companion ’08, pages 719–720, New York, NY, USA, 2008. ACM.
  • 15. REFERÊNCIAS • Priyanka, I. Chana, and A. Rana, Empirical evaluation of cloud-based testing techniques: a systematic review. ;In Proceedings of ACM SIGSOFT Software Engineering Notes. 2012, 1-9. • SOUSA, Helaine; LOPES, Denivaldo; ABDELOUAHAB, Zair; CLARO, Daniela; HAMMOUDI, Slimane. An Approach for Model Driven Testing: framework, metamodels and tools. Computer Systems Science and Engineering, v. 26, p. 41-55, 2011. ISSN 0267-619