OOM-NFR: Transformando Modelos i* em oo-method Com Base em Requisitos Não-funcionais - BUARQUE, Almir da Silva Moreira (2012)
Nos últimos anos, o paradigma de desenvolvimento de software dirigido a modelos tem se consolidado e ganho popularidade. Desta forma, um produto de software pode ser obtido através de transformações dos modelos de mais alto nível de abstração para os de mais baixo nível, sendo essa transformação guiada por metamodelos. Por exemplo, requisitos iniciais de um sistema de software podem ser transformados em modelos conceituais deste sistema. Observamos que, tanto a abordagem de modelagem de requisitos i* (iStar) como a linguagem de modelagem conceitual OO-Method (OO-M), têm ganho notoriedade no âmbito acadêmico e industrial. Nesta dissertação, estamos interessados em transformar modelos de requisitos iniciais, descritos em i*, em modelos conceituais especificados em OO-Method. Em particular, investigaremos como os requisitos não-funcionais (NFR) de produto, relacionados a softgoals internos a um ator sistema do i*, poderão ser analisados nas abordagens que transformam modelos de requisitos i* em modelos conceituais descritos em OO-Method. Erros e omissões dos requisitos não-funcionais têm impacto bastante negativo na qualidade do produto final: custos elevados de correção pós-implantação e inviabilização do projeto de software. Esses requisitos estão entre os mais caros e difíceis de corrigir. Nesta dissertação, é apresentada a proposta OOM-NFR, que analisa os softgoals internos a um ator sistema em modelos i* para verificar conflitos, prioridades e satisfação dos mesmos. Além disso, com base nos metamodelos i* de origem e OO-Method de destino, a proposta especifica um processo de transformação contendo regras que convertem uma instância de um modelo i* em outra instância do modelo OO-Method. Com o processo OOM-NFR, o modelo OO-M gerado reflete as prioridades dos softgoals especificados em i*. Para ilustrar e validar a proposta, foi concebido um exemplo de uma aplicação baseada num sistema real, utilizando-se a linguagem de transformação de modelos Query/View/Transformation (QVT) para automatizar e implementar essas transformações.