METAMODELOS PARA METODOLOGIAS ÁGEIS
Autor: Andrigo | Publicado: 2011-04-06T19:10:00-03:00

               Introdução O processo de desenvolvimento ágil tem diferentes perspectivas comparando com o tradicional processo de desenvolvimento. Uma das diferenças é o detalhamento da especificação de requisitos durante o projeto. Desenvolver utilizando metodologias ágeis significa ter um foco no atendimento das expectativas e das necessidades do cliente, a entrega rápida das partes que compõem o projeto e, principalmente, a adaptação a ambientes de negócio dinâmicos. As metodologias ágeis mesmo sendo dinâmicas, apresentam características as quais um gerente de projeto não deseja aplicá-las a todos os projetos ou deseja acrescentar alguma característica não existente no método adotado, isto também significa que não existe um método único que se enquadra em todas as situações de projeto. Trabalhos estão sendo realizados com o objetivo de identificar similaridades entre diferentes métodos. Além disso, com o intuito de atender necessidades comuns sobre processos ou informações, metamodelos são construídos. Eles representam um conjunto de conceitos em um determinado domínio e realçam as propriedades dos modelos originais.  Abaixo são descritos três exemplos de construção de metamodelos com aplicações diferentes, mas utilizando metodologias ágeis:          p { margin-bottom: 0.21cm; }Gerência  de software e metodologias ágeis; Um  estudo para melhorar eficiência de métodos ágeis atravez da  rastreabilidade.Gerência de software e metodologias ágeis (Mallmann, 2010) descreve a montagem de um modelo abstrato integrando gerência de projetos utilizando a metodologia do PMBOC, juntamente com três métodos ágeis de desenvolvimento de sistemas: XP (Extreme Programming), Scrum e FDD (Feature Driven Development). A metodologia XP é direcionada para o desenvolvimento de softwares com requisitos vagos ou que se modificam rapidamente. É marcada pelo desenvolvimento em pares enfatizando a troca de conhecimento e a rápida construção e entrega de pequenas partes funcionais do projeto. Nesta metodologia os programadores tem total liberdade para comunicar-se diretamente com o usuário e estabelecer ajustes nos requisitos. A figura 1 representa o processo da metodologia XP. Figura 1 – Processo da metodologia XP (Mallman, 2010)  A metodologia Scrum contém similiaridades com a metodologia XP, voltada para o desenvolvimento rápido, trabalhando em um software com constantes mudanças. Diferenciando-se na formalidade de funções e responsabilidades bem específicas dentro do desenvolvimento de software. A figura 2 representa o processo da metodologia Scrum.  Figura 2 – Processo da metodologia Scrum (Mallmann, 2010)  A metodologia FDD é basicamente dividida em duas partes: a parte da concepção e planejamento do software e a parte da construção propriamente dita. Isto significa, que começamos a identificar critérios para o gerenciamento de um projeto como um todo, envolvendo a elaboração e execução. A figura 3 representa o processo da metodologia FDD.  Figura 3 – Processo da metodologia FDD (Mallmann, 2010)  Verificando as metodologias citadas, identificam-se características comuns e outras que poderiam ser utilizadas em específico para melhorar organizar o processo de desenvolvimento de um software com características específicas. Foi criado um metamodelo com objetivo de disponibilizar todas as orientações e controles de cada metodologia ágil estabelecida (XP, Scrum, FDD) para o ambiente de desenvolvimento de software. A figura 4 representa uma visão deste metamodelo. Figura 4 – Visão do metamodelo de gerência de projetos (Mallmann, 2010)          p { margin-bottom: 0.21cm; }  Um estudo para melhorar eficiência de métodos ágeis atravez da rastreabilidade  O estudo feito por Espinoza A, Garbajos J (2011), utiliza-se de um metamodelo já estabelecido TmM (Traceability metamodel for methodology definition), integrado com uma camada de metodologias ágeis TDD ( Test-Driven Development) e SDD (Storytest-Driven Development).  A figura 5 representa como será a integração entre o metamodelo e as metolodogias. Figura 5 – Representaçao do metamodelo estudado (Espinoza A, Garbajos J, 2011)  O metamodelo TmM é construido a partir do SEMDM (Software Engineering Metamodel for Development Methodologies) um abrangente metamodelo para definição de metodologias independente o método adotado. Seu objetivo é justamente servir de base para a construção de metamodelos mais específicos. TDD e SDD tem como objetivo o desenvolvimento de sistemas orientado ao testes. O plano de testes é o primeiro a ser elaborado. O TDD está mais direcionado ao nível de teste de unidade enquanto o SDD está direcionado a um nível mais alto de teste de aceitação, responsável pela aceitação de cada uma das histórias do software. A figura 6 representa o ciclo de vida do desenvolvimento das metodologias TDD e SDD. Figura 6 - Ciclo de vida do desenvolvimento TDD e SDD (Espinoza A, Garbajos J, 2011) Como resultado foi detalhada da integração e construção dos três níveis: metamodelo, método e projeto. No nível do método é representado métodos ágeis atravéz da rastreabilidade segundo o modelo conceitual da figura  7.  Figura 7 – Um modelo conceitual de rastreabilidade (Espinoza A, Garbajos J, 2011)           p { margin-bottom: 0.21cm; }          p { margin-bottom: 0.21cm; }   Resumo Em engenharia de software os métodos ágeis são amplamente divulgados e indicados na construção de software. Atualmente estão definidos diversos métodos com finalidades específicas, mas que objetivam em comum a satisfação do cliente, o que representa o sucesso na construção de um software. Os metamodelos estão representando um conjunto de regras finitas, resultantes da inter-ligação de metodologias e adicionando aos objetivos de cada metodologia um melhor aproveitamento das equipes de desenvolvimento de software, consequência da sua adaptabilidade e representabilidade com as características de cada projeto. Cada metodologia contém particularidades as quais não se agrupam com qualquer outra metodologia, o desafio é elaborar um metamodelo que possa se utilizar de um maior número de metodologias ou de apenas representar uma boa junção das características de metodologias diferentes como RUP e métodos ágeis.    Referências  Espinoza A, Garbajos J (2011). A study to support agile methods more effectively through traceability. Innovations Syst Softw Eng. http://www.springerlink.com/content/gh3j34krh171vp04/fulltext.pdf  Mallmann P (2010). Um modelo abstrato de gerência de software para metodologias ágeis. UNISINOS, PIPCA.  Sellers B H, Ralité J (2010). Situational Method Engineering: State-of-the-Art Review. Journal of Universal Computer Science. University of Technology, Sydney, Australia. University of Geneva, Switzerland.  Abad Z, Sadi M, Ramsin R (2010). Towards Tool Support for Situational Engineering of Agile Methodologies. 2010 Asia Pacific Software Engineering Conference. Sharif University of Technology of Tehran, Iran. http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&amp;arnumber=5693209  Jeusfeld M A, Jarke M, Mylopoulos J (2009). Metamodeling for Method Engineering. Cambridge. ISBN 9780262101080.