Esse artigo faz parte da revista Engenharia de Software 16 edição especial. Clique aqui para ler todos os artigos desta edição



Engenharia de Requisitos

Abordagens Baseadas em Objetivos: Visão Panorâmica

 

 

De que trata o artigo:

  Apresentar a abordagem baseada em objetivos. Diferente das análises de sistemas tradicionais que determinam quais características o sistema deve suportar, a abordagem baseada em objetivos focam o porquê os sistemas são construídos.

 

Para que serve:

  Este tipo de abordagem possibilita uma análise mais ampla do contexto onde o sistema será implementado. Focar objetivos, ao invés de requisitos específicos permite a comunicação entre analistas e stakeholders, através de uma linguagem baseada em conceitos que ambos têm conhecimento.

 

Em que situação o tema útil:

         Quando se deseja modificar a forma de definição dos requisitos de um sistema empregando uma abordagem que facilita a comunicação entre analistas e stakeholders. Para isso três abordagens baseadas em objetivos para construção de casos de uso e/ou cenários serão explicadas.

 

 

Ao se criar um software, não se planeja e não se desenvolve apenas um artefato, criam-se novas possibilidades para ações e interações humanas [CAR 95]. Todo software é uma ferramenta. Como boa ferramenta, deve suportar o trabalho de alguém, tornar o trabalho mais fácil, mais rápido, mais simples e mais flexível. Para desenvolverem-se sistemas que suportam adequadamente o uso, trabalhos de pesquisa enfatizam que se precisa entender melhor as tarefas realizadas pelas pessoas e aplicar de maneira mais eficiente a compreensão das tarefas no processo de desenvolvimento de software.

As atividades de pessoas, no trabalho, podem ser descritas como “tarefas”. Segundo [STO 95] o termo “tarefa” é definido como: “uma tarefa é um objetivo junto com conjuntos ordenados de ações que o satisfariam em contextos apropriados”. Baseando-se na teoria da ação, sabe-se que, antes de executar uma seqüência de ações, elaboram-se planos, e o ponto inicial de um plano é a formulação de um objetivo [CAR 95]. Seguindo esta perspectiva, está claro que, para desenvolver um sistema interativo, é necessário, em primeiro lugar, conhecer os objetivos dos usuários para, então, propor a especificação dos mecanismos que sustentarão as tarefas necessárias para alcançá-los.

Enquanto análises de sistema tradicionais focam “quais” características um sistema irá suportar, abordagens baseadas em objetivos focam “por que” sistemas são construídos, provendo motivação e argumento para justificar os requisitos de software [ANT 96]. Possibilitam assim uma análise mais ampla do contexto no qual o sistema irá operar. Focar objetivos, ao invés de requisitos específicos, permite analistas comunicarem com stakeholders - pessoas envolvidas no sistema em desenvolvimento -, usando uma linguagem baseada em conceitos que ambos têm familiaridade [ANT 96]. Todavia, especificar os requisitos de um sistema, a partir dos objetivos dos usuários, não é uma tarefa trivial. Objetivos são estados finais desejáveis de serem alcançados, não ações a serem realizadas [ANT 96]. O refinamento de objetivos em soluções de projeto é um processo de múltiplos estágios; vagos objetivos de alto nível devem ser refinados em concretos objetivos formais [KAV 96]. Isto é necessário, pois somente objetivos primitivos podem ser operacionalizados - traduzidos em ações atômicas do usuário, do hardware ou do sistema – para, então, se tornarem requisitos operacionais na especificação final de requisitos [POT 95].

Um dos fatores positivos de se enfatizarem objetivos, como fontes para o desenvolvimento, é que eles são consideravelmente estáveis [ANT 96]. Vários sistemas podem ser propostos para serem realizados os objetivos dos usuários: eles diferirão basicamente em como os objetivos são operacionalizados, ou seja, quais ações serão executadas para que os objetivos sejam alcançados e quem ou o que as realizará. Isto implica que é possível, a partir dos objetivos, especificar as futuras tarefas com o sistema, ou seja, as tarefas interativas [PIM 97].

Deve-se considerar que a operacionalização dos objetivos não deve ser predominantemente top-down, por ser altamente interativa [KAV 96]. Derivação de casos de uso e refinamento de objetivos são atividades do desenvolvimento de software que se apóiam mutuamente [POT 95, ROL 98b]. O conhecimento teleológico preocupa-se com os propósitos específicos para os quais o sistema foi projetado, enquanto a análise de casos de uso é dedicada a preencher a lacuna entre tais propósitos abstratos e a real estrutura e comportamento do sistema [KAV 96].

Casos de uso especificam um modo de operacionalizar um objetivo. Assim, é possível obter um conjunto de casos de uso, analisando objetivos, alocação de objetivos etc. Reciprocamente, é possível retornar e elaborar objetivos, quando se caminha através de um caso de uso, já que ele é uma forma natural para se descreverem as circunstâncias nas quais um objetivo pode falhar ou ser bloqueado, facilitando a descoberta de novos objetivos e a consideração de alternativas para a operacionalização dos mesmos. A análise do caso de uso pode fornecer percepções concretas sobre o comportamento do macrosistema - ambiente geral no qual o software é desenvolvido e deve operar - e as razões para tal, possibilitando a identificação de soluções mais plausíveis [POT 95, ANT 98a].

Trabalhos de pesquisa já reconhecem a importância da relação entre objetivos e casos uso. Segundo Kaindl, somente se podem entender as interações descritas em um caso de uso, quando se conhece seu objetivo [KAI 95]. Quando se está familiarizado com um sistema, os objetivos das interações parecem óbvios; todavia, no processo de elicitação de requisitos e modelagem de tarefas de um novo sistema, ainda desconhecido, saber o objetivo é uma informação crucial para a compreensão de cada caso de uso. De acordo com a abordagem [KAI 95] os propósitos da utilização de casos de uso são claramente definidos, já os propósitos das interações descritas nestes, geralmente são ignorados ou deixados implícitos. Faltam representações adequadas de objetivos em casos de uso. ...

Quer ler esse conteúdo completo? Tenha acesso completo