Agentes no Processo de Requisitos
Miriam Sayão
orientador: Julio Cesar S. P. Leite
Roteiro
•
•
•
•
•
motivação
proposta
estágio atual
contribuições
trabalhos relacionados
Software Engineering Lab (LES) – PUC-Rio
2
Ambientes distribuídos de desenvolvimento
• adotado por muitas multinacionais (HP, Motorola,
Dell, Sonae, ....)
• dificuldades associadas a ambientes distribuídos de
desenvolvimento:
– diversidade cultural e diferenças lingüísticas afetam a
compreensão comum dos requisitos
– delays devidos aos diferentes fusos horários impactam
nas atividades normalmente executadas de forma
presencial (elicitação, priorização e negociação)
– informação inadequadamente compartilhada afeta a
confiança entre equipes e impacta atividades do
processo de desenvolvimento
Software Engineering Lab (LES) – PUC-Rio
3
Processo de Requisitos em ambientes
distribuídos
• processo de requisitos: intensivo em comunicação
• comunicação em projetos distribuídos:
– utiliza por volta de 22% do tempo total do
desenvolvimento [Gorton96]
– atividades de cognitive synchronization* são responsáveis
por aproximadamente 29% do tempo de desenvolvimento
[Cherry04]
– 15 a 41% do tempo total do desenvolvimento [estudos
relacionados em Cherry04]
*
atividades de comunicação entre dois ou mais desenvolvedores, visando confirmar que eles
compartilham o mesmo conhecimento ou a mesma representação do objeto em questão
Software Engineering Lab (LES) – PUC-Rio
4
Processo de Requisitos em ambientes
distribuídos: motivação
• distribuição não atinge processo de requisitos
– a) uma equipe se desloca até os usuários para a aquisição
dos requisitos
– b) essa equipe elabora o documento de requisitos e o
repassa à equipe de desenvolvimento
– c) o mesmo documento é utilizado pela equipe que
prepara e executa a bateria de testes
• isto acontece porque .....
– a) tentativa de diminuir problemas de comunicação
– b) ferramentas existentes são inadequadas para
ambientes distribuídos
Software Engineering Lab (LES) – PUC-Rio
5
Proposta: agentes no processo de requisitos
• objetivo principal: contribuir para a viabilização da
distribuição das atividades no processo de
requisitos
• nossa proposta: uso de agentes de software
– atuando como assistentes dos interessados do processo
de requisitos
– monitorando ocorrência de eventos significativos e
notificando automaticamente os interessados
– auxiliando na sistematização do conhecimento da
organização
Software Engineering Lab (LES) – PUC-Rio
6
Agentes: por quê?
• soluções com agentes são indicadas para:
– problemas complexos
– de natureza distribuída
– naqueles onde atores desempenham diferentes
papéis e interagem visando atingir diferentes
objetivos
• uso de agentes nas atividades de gerenciamento de
requisitos, com ênfase às atividades de verificação
e validação de requisitos
Software Engineering Lab (LES) – PUC-Rio
7
Resultados esperados
• efetiva distribuição do trabalho no processo de
requisitos
• diminuição das tarefas hoje executada por humanos
• diminuição dos problemas derivados de falhas na
comunicação
Software Engineering Lab (LES) – PUC-Rio
8
Processo distribuído de requisitos
• verificação: inspeção do documento de requisitos (SRS)
– inspeção: utilização de uma técnica de leitura aplicável a um
artefato, buscando a localização de erros ou defeitos no mesmo
– exemplo de técnica de leitura onde são consideradas as visões:
Perspective Based Reading
• validação: engenheiro de requisitos e representantes do
cliente e dos usuários avaliam o SRS com o objetivo de
assegurar que os requisitos relacionados no SRS
correspondem ao esperado pelos usuários e cliente
• diferentes visões na validação e verificação do SRS
• diferentes metas e intencionalidades por parte dos atores,
passíveis de modelagem com a notação i*
Software Engineering Lab (LES) – PUC-Rio
9
Processo de requisitos: diagrama SD
Goal
Resource
Softgoal
Agent
Role
Software Engineering Lab (LES) – PUC-Rio
Position
10
Estágio atual
• cada meta dos atores do SD é decomposta em
tarefas e modelada em diagramas SR
• elaboração dos diagramas SR - Strategic Rationale,
para os diversos agentes
• definição e atribuição das tarefas a agentes
• experimentos com uso da linguagem natural para:
– criação de visões dos requisitos
– tratamento da rastreabilidade
– apoio à manutenção do léxico da aplicação
• definição de características da ferramenta de apoio
Software Engineering Lab (LES) – PUC-Rio
11
Ferramenta de apoio
• características de:
– agência: diferentes papéis a serem desempenhados pelos
agentes, na representação dos interessados reais;
– serviços de comunicação: para troca de informações
entre usuários e agentes de software, e para notificação
dos interessados na ocorrência de eventos;
– serviços de monitoramento: para monitoramento de
modificações no ambiente e eventos significativos nesse
contexto;
– persistência de dados:
• base de conhecimento organizacional
• baseline para artefatos de requisitos
• informações relacionadas a projetos
Software Engineering Lab (LES) – PUC-Rio
12
stakeholders
assistentes
assistentes
mensagens
mensagens
Base de
conhecimentos
da
organização
mensagens
Repositório
do projeto
notificações
mensagens
Blackboard para comunicação
Software Engineering Lab (LES) – PUC-Rio
13
Atores e agentes assistentes
• Coordenador do projeto ou administrador - responsável
pelo cadastramento de novos usuários e definição dos
direitos de acesso aos artefatos, pela criação e
acompanhamento de projetos;
• Engenheiro de Requisitos - responsável pelo documento de
requisitos, pela organização dos processos de verificação e
validação;
• Cliente/Usuário - uma das principais fontes para requisitos,
cliente e usuário participam ativamente nos processos de
validação e verificação do documento de requisitos;
• Inspetor - papel a ser desempenhado por diferentes
usuários do sistema no processo de verificação do
documento de requisitos; deve ser parametrizado para
executar diferentes tipos de verificação;
Software Engineering Lab (LES) – PUC-Rio
14
Agentes de software
• Rastreador - responsável pela construção de matrizes de
rastreabilidade, e pela verificação destas matrizes com
aquelas fornecidas pelo engenheiro de requisitos,
apontando as divergências e apresentando a opção de tratar
ou não cada uma das divergências apontadas;
• Construtor do léxico - responsável pela manutenção do
léxico da aplicação, visando à atualização da base de
conhecimentos para o domínio da organização;
• Gerador de visões - responsável pela construção e
apresentação de visões dos requisitos, de acordo com perfil
ou interesse manifestado pelos usuários do sistema;
Software Engineering Lab (LES) – PUC-Rio
15
Agentes de software
• Observador - responsável pela observação dos artefatos e,
em caso de alteração, é o responsável por notificar os
interessados. Também é de sua responsabilidade manter a
consistência de versões entre repositórios;
• Comunicador - envia mensagens e notificações a agentes e
usuários através de diferentes meios de comunicação;
• Verificador - responsável pela coleta e distribuição dos
artefatos para a verificação, envio de notificação aos
envolvidos e consolidação parcial do relatório;
• Validador - responsável pela coleta e distribuição dos
artefatos para a validação, envio de notificação aos
envolvidos e consolidação parcial do relatório;
Software Engineering Lab (LES) – PUC-Rio
16
Agentes: definição de responsabilidades
Papel: Rastreador
Sistema: REDist
Responsabilidades
Serviço: gerar matriz RNF x RF Serviço: gerar matriz
Nome: gerarMatRast
verificacão
Nome: gerarMatTest
Recursos
Dados
Serviços requeridos
Base
Tabela
Driver
redist
Requisitos MySql
Redist
Rastros
MySql
redist
Testes
MySql
Software Engineering Lab (LES) – PUC-Rio
17
Agente gerador de visões dos requisitos
• "Topic maps are a new ISO standard for describing
knowledge structures and associating them with
information resources" - Steve Pepper
• entidades básicas: tópicos e associações
• associações podem ser utilizadas para:
– apresentação de diferentes visões dos requisitos
– mostrar a rede de dependências entre requisitos
– mostrar ligações de requisitos a outros artefatos
• documentos em XML podem ser transformados em
XTM utilizando Stylesheets
Software Engineering Lab (LES) – PUC-Rio
18
Visão dos requisitos associados ao RNF segurança
Software Engineering Lab (LES) – PUC-Rio
19
Visão dos requisitos associados ao RNF segurança
Software Engineering Lab (LES) – PUC-Rio
20
Visão dos requisitos alocados a componentes
Software Engineering Lab (LES) – PUC-Rio
21
Visão dos requisitos verificados por testes
Software Engineering Lab (LES) – PUC-Rio
22
Agente Rastreador: tratamento da rastreabilidade
• pré-rastreabilidade:
– origem do requisito é um dos atributos registrados
• matriz de rastreabilidade RF x RNF: geralmente feita de
forma manual
• para geração automática, definimos algumas heurísticas:
– análise de documentos de requisitos de uma organização que
desenvolve em ambientes distribuídos
– identificação de termos ou expressões associados a requisitos nãofuncionais
– varredura do documento de requisitos e identificação dos requisitos
funcionais associados ao requisito não-funcional
Software Engineering Lab (LES) – PUC-Rio
23
Agente Rastreador: tratamento da rastreabilidade
• matriz de rastreabilidade RF x RNF
– uso de uma das taxonomias já publicadas, associando a
cada RNF palavras ou expressões utilizados na
organização
– RNF segurança: associado às expressões logon ou login,
logoff, senha ou password, perfil de usuário, controle de
acesso, ...
Software Engineering Lab (LES) – PUC-Rio
24
Tratamento da rastreabilidade
PROJETO EXIT - MATRIZ DE RASTREABILIDADE
RF X RNF
REQUISITOS NÃO FUNCIONAIS
REQUISITOS
FUNCIONAIS NFR1 NFR2 NFR3 NFR4 NFR5 NFR6
RF1
X
X
........
RF14
X
RF15
X
RF16
X
RF17
X
X
X
.......
Software Engineering Lab (LES) – PUC-Rio
25
Tratamento da linguagem natural
• experimentos com tratamento da linguagem
natural:
– a) identificação de palavras ou expressões próprias do
domínio da aplicação, visando à construção do Universo
de Informações (offshore insourcing)
– b) explicitação das diferenças culturais entre
interessados
Software Engineering Lab (LES) – PUC-Rio
26
Tratamento da linguagem natural
• comparação de palavras e expressões com
"dicionário" resulta em:
– diferenças culturais entre Brasil e Portugal explicitadas
•
•
•
•
•
•
•
por defeito representando por default
aceder ao invés de acessar
sinalética ao invés de ícone
multibanco para tipo de pagamento
ecrã ao invés de monitor ou tela
villas significando resort
utilizador, aluguer, telemóvel, ficheiro
Software Engineering Lab (LES) – PUC-Rio
"dicionário
de
viagem"
27
Agentes verificador e construtor do léxico
• Construtor:
– identificação de palavras que deveriam constar do léxico da
aplicação
• ACE, BIZTALK, RESTEL, SAP ......
• cofidis, dossier, markup, .......
– verificação de inconsistências com o léxico existente
• Verificador:
– RNF segurança(logon ou login, logoff, password ou
senha): deve haver ao menos um requisito associado a
cada expressão do RNF segurança
Software Engineering Lab (LES) – PUC-Rio
28
Contribuições
• uso de agentes de software como assistentes dos
stakeholders, visando à automação parcial de atividades do
processo de requisitos e diminuição dos problemas de
comunicação entre sites em ambientes distribuídos
• tratamento da rastreabilidade: técnica para geração e
verificação de matrizes de rastreabilidade
• técnica para geração de visões dos requisitos, apoiando
tarefas de gerenciamento e desenvolvimento
• técnica para recuperação e sistematização do conhecimento
organizacional (UdI)
• criação de um ambiente flexível e extensível para
atividades de Gerenciamento de Requisitos
Software Engineering Lab (LES) – PUC-Rio
29
Trabalhos relacionados
• visam à criação de MTF´s para ambientes distribuídos
• abordam aspectos pontuais e não utilizam agentes
• priorização de requisitos:
– uso distribuído da técnica Quality Function Deployment (QFD) para
definição dos requisitos; comunicação entre os interessados
realizada com o uso de equipamentos de teleconferência [Hrones93]
– priorização distribuída, com objetivo de avaliar diferentes
segmentos do mercado para definir os requisitos [Regnell01]
Software Engineering Lab (LES) – PUC-Rio
30
Trabalhos relacionados
• negociação de requisitos:
– uso de um facilitador para a condução de processos de negociação
de requisitos envolvendo interessados geograficamente separados
[Damian01] [Damian03]
• verificação do documento de requisitos:
– inspeção segundo a técnica PBR, apoiada pela ferramenta IBIS. IBIS
armazena o documento a ser inspecionado, possibilita o cadastro e a
seleção dos inspetores, fornece checklists e formulários e registra os
problemas detectados por cada um deles [Lanubile03]
Software Engineering Lab (LES) – PUC-Rio
31
Trabalhos relacionados
• evolução de requisitos:
– uso de agentes móveis para controle da evolução de requisitos em
ambientes distribuídos [Chang03]
• gerenciamento de processos distribuídos:
– projeto GENESIS: uso de agentes de software, de técnicas de
workflow e de gerenciamento de documentos para gerenciamento de
projetos e comunicação entre engenheiros de software
– agentes: responsáveis pela manipulação de exceções, pela
sincronização de processos entre os sites distribuídos e pela
monitoração e coleta de informações relacionadas a processos
– uso de agentes: abordagem menos invasiva para atividades de
coordenação e controle entre sites
Software Engineering Lab (LES) – PUC-Rio
32
Conclusões
• paradigma de agentes: apropriado para o processo de
requisitos em ambientes distribuídos
• agentes atuando como assistentes de usuários, clientes,
engenheiro de requisitos, projetistas, engenheiros de
software e desenvolvedores
• pró-atividade dos agentes diminuindo parte dos problemas
decorrentes de falhas na comunicação em ambientes
distribuídos
• agentes e atores atuando visando atingir seus próprios
objetivos, e colaborando visando atingir um objetivo
comum: um documento de requisitos de qualidade e que
reflita as necessidades de clientes e usuários
Software Engineering Lab (LES) – PUC-Rio
33
Bibliografia
Chang, C.; Cai, L. "Agent based Requirements Evolution over the Internet".
In: IEEE Workshop on Software Engineering on the Internet, The IEEECS/IPSJ 2001 Symposium on Applications and the Internet (SAINT 2001),
Jan. 8-12, 2001, pp. 83-88.
Cherry, S. & Robillard, P. "Communication Problems in Global Software
Development: Spotlight on a New Field of Investigation". In: Third
International Workshop on Global Software, May 24, 2004, Edinburgh,
Scotland. Proceedings. http://gsd2004.uvic.ca/
Damian, D.; Eberlein, A.; Woodward, B.; Shaw, M. & Gaines, B. "An
empirical study of facilitation of computer-mediated distributed
requirements negotiations". In: Fifth IEEE International Symposium on
Requirements Engineering (RE '01), August 27 - 31, 2001. Toronto,
Canadá. Proceedings. pp. 128-135.
Software Engineering Lab (LES) – PUC-Rio
34
Bibliografia
Damian, D.; Eberlein, A.; Shaw, M. & Gaines, B. "Facilitation in Distributed
Requirements Engineering". Requirements Engineering Journal, 8(1),
2003, pgs 23-41.
Gorton, I. & Motwani, S. “Issues in Co-operative Software Engineering Using
Globally Distributed Teams”. In: Information and Software Technology
Journal ,vol 38(10), 1996. págs. 647-655.
Hersleb, J. & Mockus, A. "An empirical study of speed and communication in
globally distributed software development". IEEE Transactions on
Software Engineering, vol 29(6), pags. 481-494
Lanubile, F.; Mallardo, T. "Preliminary Evaluation of Tool-based Support for
Distributed Inspection". In: 26th Annual International Computer Software
and Applications Conference (COMPSAC’02). Proceedings.
Software Engineering Lab (LES) – PUC-Rio
35
Bibliografia
Leite, Julio C. S. P. – Engenharia de Requisitos – notas de aula, 1994
Leite, J. C. S. P. et al. "Enhancing a Baseline Requirements with Scenarios".
In: Third International Symposium on Requirements Engineering, 1997.
IEEE Computer Society. Proceedings. pags. 44-53
Regnell,B.; Höst, M.; Natt,J.; Beremark, P. & Hjelm, T. "An industrial case
study on distributed prioritization in market-driven requirements
engineering for packaged software". Requirements Engineering Journal
6(1), 2001, pgs. 51-62.
Sayão, M. & Leite, J. C. S. P. – Rastreabilidade de Requisitos – relatório
técnico 20/05, série Monografias em Ciência da Computação, DI/PUCRio, 2005.
Software Engineering Lab (LES) – PUC-Rio
36
Download

Media:mSayao - (LES) da PUC-Rio