ConFlex4SP - A Framework for Controlling Flexibility in Software Processes

Data
2010
Título da revista
ISSN da revista
Título do Volume
Editora
Projetos de investigação
Unidades organizacionais
Fascículo
Resumo
Software processes represent a specifically ordered and organised set of elements and relationships that describe the development of software products. The main elements that compose such processes are activities, agents, artifacts, roles and production support tools. Descriptions of these processes can be captured and converted into process models. Process engineers usually recur to a Process Modelling Language (PML) to define and represent these models. They facilitate human understanding and communication, and provide guidance for software development team members when executing the process. Throughout the last three decades, several PMLs and software tools were developed to elicit process models and automate their support. Software processes are commonly held as dynamic entities, which often must be modified and evolved to cope with changes occurred, for instance, in the requirements of a certain software product, in the software organisation’s structure or in the rapid changing software market. Software process flexibility refers, precisely, to the ability to change parts of a process, without completely replacing it. However, in the everyday business practice, software team members do not want to have much flexibility, and would rather like to follow simple rules to complete their tasks. In fact, recent case studies elicited the need of having process engineers controlling the changes that team members make within the software process. This controlled flexibility can be defined as the ability to control which, where, how and by whom the elements that composed a software process can or cannot be changed. Current PMLs and supporting software tools do not provide enough expressiveness nor any kind of automated support, regarding controlled flexibility. This thesis proposes the ConFlex4SP framework: a holistic approach to address the challenges behind controlling flexibility in software processes. It includes a set of concepts and relationships that process engineers and software team members will share, to express and understand the controlled flexibility-related information. Next, it proposes a controlled flexibility-aware language. Process engineers use it to include controlled flexibility information within software process models. Software team members can then browse for this information in the model, and perform changes to software processes accordingly. The framework also comprises implementations regarding the controlled flexibility-aware language and supporting software tool features, in order to assess its applicability. For this, we extended an existing core PML to include our language’s new constructs, and customised an open-source process-aware software tool to support these constructs. Finally, the thesis includes an evaluation on the contributions associated with the ConFlex4SP framework, regarding the degree of fulfilment of previously defined goals and requirements.
Os processos de desenvolvimento de software apresentam um conjunto de elementos ordenados e organizados para guiar a produção de software. De entre estes elementos encontram-se actividades, agentes, artefactos, papéis e ferramentas de apoio à produção de software. As descrições destes processos podem ser capturadas e convertidas em modelos. Os engenheiros de software séniores recorrem normalmente a linguagens de modelação de processos para representar estes modelos, com o intuito de facilitarem a compreensão e a comunicação dos mesmos aos restantes membros da equipa de desenvolvimento de software. Ao longo das últimas três décadas, foram desenvolvidas várias linguagens e respectivas ferramentas que suportam a gestão de processos de software. Estes processos são dinâmicos, e têm muitas vezes de ser modificados para reflectirem alterações ocorridas, por exemplo, nos requisitos do software a desenvolver, na organização que o desenvolve, ou no mercado do software em constante evolução. No entanto, verifica-se que os membros de uma equipa de desenvolvimento não querem ter muita flexibilidade. Preferem seguir regras simples para desempenhar as suas tarefas do dia-a-dia. De facto, casos de estudo recentes tornam evidente a necessidade de haver engenheiros de software séniores que controlem as alterações que os restantes membros da sua equipa podem ou não efectuar aos processos de software. Este conceito de flexibilidade controlada baseia-se na definição da informação acerca de quais, onde, como e por quem podem ou não ser alterados os elementos que compõem um processo de software. As linguagens e respectivas ferramentas de software de suporte actuais não apresentam nem expressividade nem automatização suficientes para efectuar este controlo de flexibilidade. Este trabalho propõe a ConFlex4SP framework: uma abordagem integrada para resolver os desafios de controlar a flexibilidade nos processos de desenvolvimento de software. A framework propõe um conjunto de conceitos a serem partilhados entre os engenheiros de software séniores e a equipa de desenvolvimento, para melhor compreenderem a informação relativa ao controlo de flexibilidade. Propõe também uma linguagem com elementos que os engenheiros de software séniores poderão utilizar para definir esta informação nos modelos dos processos de software. Os membros da equipa de desenvolvimento poderão, posteriormente, procurar por esta informação nesses modelos, e efectuar as alterações aos processos em concordância. A framework inclui ainda soluções referentes às implementações da linguagem e da respectiva ferramenta de software de suporte, por forma a demonstrar a sua aplicabilidade. Para este efeito, foram estendidas soluções já existentes, por forma a virem a contemplar funcionalidades de suporte à modelação de flexibilidade controlada em processos de software. O trabalho inclui ainda uma avaliação da linguagem e correspondente ferramenta de suporte, quanto ao seu grau de satisfação em relação aos objectivos e requisitos definidos previamente.
Descrição
Tese de Doutoramento em Informática
Palavras-chave
Citação