You are on page 1of 36

Agentes no Processo de Requisitos

Miriam Sayo orientador: Julio Cesar S. P. Leite

Roteiro

motivao proposta estgio atual contribuies trabalhos relacionados

Software Engineering Lab (LES) PUC-Rio

Ambientes distribudos de desenvolvimento adotado por muitas multinacionais (HP, Motorola, Dell, Sonae, ....) dificuldades associadas a ambientes distribudos de desenvolvimento:
diversidade cultural e diferenas lingsticas afetam a compreenso comum dos requisitos delays devidos aos diferentes fusos horrios impactam nas atividades normalmente executadas de forma presencial (elicitao, priorizao e negociao) informao inadequadamente compartilhada afeta a confiana entre equipes e impacta atividades do processo de desenvolvimento
Software Engineering Lab (LES) PUC-Rio

Processo de Requisitos em ambientes distribudos processo de requisitos: intensivo em comunicao comunicao em projetos distribudos:
utiliza por volta de 22% do tempo total do desenvolvimento [Gorton96] atividades de cognitive synchronization* so responsveis por aproximadamente 29% do tempo de desenvolvimento
[Cherry04]

15 a 41% do tempo total do desenvolvimento [estudos


relacionados em Cherry04]

atividades de comunicao entre dois ou mais desenvolvedores, visando confirmar que eles compartilham o mesmo conhecimento ou a mesma representao do objeto em questo
Software Engineering Lab (LES) PUC-Rio

Processo de Requisitos em ambientes distribudos: motivao distribuio no atinge processo de requisitos


a) uma equipe se desloca at os usurios para a aquisio 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 comunicao b) ferramentas existentes so inadequadas para ambientes distribudos
Software Engineering Lab (LES) PUC-Rio

Proposta: agentes no processo de requisitos


objetivo principal: contribuir para a viabilizao da distribuio das atividades no processo de requisitos nossa proposta: uso de agentes de software
atuando como assistentes dos interessados do processo de requisitos monitorando ocorrncia de eventos significativos e notificando automaticamente os interessados auxiliando na sistematizao do conhecimento da organizao
Software Engineering Lab (LES) PUC-Rio

Agentes: por qu?

solues com agentes so indicadas para:


problemas complexos de natureza distribuda naqueles onde atores desempenham diferentes papis e interagem visando atingir diferentes objetivos

uso de agentes nas atividades de gerenciamento de requisitos, com nfase s atividades de verificao e validao de requisitos
Software Engineering Lab (LES) PUC-Rio

Resultados esperados

efetiva distribuio do trabalho no processo de requisitos diminuio das tarefas hoje executada por humanos diminuio dos problemas derivados de falhas na comunicao

Software Engineering Lab (LES) PUC-Rio

Processo distribudo de requisitos


verificao: inspeo do documento de requisitos (SRS)
inspeo: utilizao de uma tcnica de leitura aplicvel a um artefato, buscando a localizao de erros ou defeitos no mesmo exemplo de tcnica de leitura onde so consideradas as vises: Perspective Based Reading

validao: engenheiro de requisitos e representantes do cliente e dos usurios avaliam o SRS com o objetivo de assegurar que os requisitos relacionados no SRS correspondem ao esperado pelos usurios e cliente
diferentes vises na validao e verificao do SRS diferentes metas e intencionalidades por parte dos atores, passveis de modelagem com a notao i*
Software Engineering Lab (LES) PUC-Rio

Processo de requisitos: diagrama SD


Goal Resource Softgoal

Agent

Role

Position

Software Engineering Lab (LES) PUC-Rio

10

Estgio atual
cada meta dos atores do SD decomposta em tarefas e modelada em diagramas SR elaborao dos diagramas SR - Strategic Rationale, para os diversos agentes definio e atribuio das tarefas a agentes experimentos com uso da linguagem natural para:
criao de vises dos requisitos tratamento da rastreabilidade apoio manuteno do lxico da aplicao

definio de caractersticas da ferramenta de apoio


Software Engineering Lab (LES) PUC-Rio

11

Ferramenta de apoio
caractersticas de:
agncia: diferentes papis a serem desempenhados pelos agentes, na representao dos interessados reais; servios de comunicao: para troca de informaes entre usurios e agentes de software, e para notificao dos interessados na ocorrncia de eventos; servios de monitoramento: para monitoramento de modificaes no ambiente e eventos significativos nesse contexto; persistncia de dados:
base de conhecimento organizacional baseline para artefatos de requisitos informaes relacionadas a projetos
Software Engineering Lab (LES) PUC-Rio

12

stakeholders

assistentes

assistentes

mensagens

mensagens

Base de conhecimentos da organizao


mensagens notificaes

Repositrio do projeto

mensagens

Blackboard para comunicao


Software Engineering Lab (LES) PUC-Rio

13

Atores e agentes assistentes


Coordenador do projeto ou administrador - responsvel pelo cadastramento de novos usurios e definio dos direitos de acesso aos artefatos, pela criao e acompanhamento de projetos; Engenheiro de Requisitos - responsvel pelo documento de requisitos, pela organizao dos processos de verificao e validao; Cliente/Usurio - uma das principais fontes para requisitos, cliente e usurio participam ativamente nos processos de validao e verificao do documento de requisitos; Inspetor - papel a ser desempenhado por diferentes usurios do sistema no processo de verificao do documento de requisitos; deve ser parametrizado para executar diferentes tipos de verificao;
Software Engineering Lab (LES) PUC-Rio

14

Agentes de software
Rastreador - responsvel pela construo de matrizes de rastreabilidade, e pela verificao destas matrizes com aquelas fornecidas pelo engenheiro de requisitos, apontando as divergncias e apresentando a opo de tratar ou no cada uma das divergncias apontadas; Construtor do lxico - responsvel pela manuteno do lxico da aplicao, visando atualizao da base de conhecimentos para o domnio da organizao; Gerador de vises - responsvel pela construo e apresentao de vises dos requisitos, de acordo com perfil ou interesse manifestado pelos usurios do sistema;

Software Engineering Lab (LES) PUC-Rio

15

Agentes de software
Observador - responsvel pela observao dos artefatos e, em caso de alterao, o responsvel por notificar os interessados. Tambm de sua responsabilidade manter a consistncia de verses entre repositrios; Comunicador - envia mensagens e notificaes a agentes e usurios atravs de diferentes meios de comunicao; Verificador - responsvel pela coleta e distribuio dos artefatos para a verificao, envio de notificao aos envolvidos e consolidao parcial do relatrio; Validador - responsvel pela coleta e distribuio dos artefatos para a validao, envio de notificao aos envolvidos e consolidao parcial do relatrio;
Software Engineering Lab (LES) PUC-Rio

16

Agentes: definio de responsabilidades


Papel: Rastreador Sistema: REDist Responsabilidades Servio: gerar matriz RNF x RF Servio: gerar matriz Nome: gerarMatRast verificaco Nome: gerarMatTest Recursos Dados Servios requeridos Base Tabela Driver redist Redist redist Requisitos MySql Rastros Testes MySql MySql

Software Engineering Lab (LES) PUC-Rio

17

Agente gerador de vises dos requisitos


"Topic maps are a new ISO standard for describing knowledge structures and associating them with information resources" - Steve Pepper entidades bsicas: tpicos e associaes associaes podem ser utilizadas para:
apresentao de diferentes vises dos requisitos mostrar a rede de dependncias entre requisitos mostrar ligaes de requisitos a outros artefatos

documentos em XML podem ser transformados em XTM utilizando Stylesheets


Software Engineering Lab (LES) PUC-Rio

18

Viso dos requisitos associados ao RNF segurana

Software Engineering Lab (LES) PUC-Rio

19

Viso dos requisitos associados ao RNF segurana

Software Engineering Lab (LES) PUC-Rio

20

Viso dos requisitos alocados a componentes

Software Engineering Lab (LES) PUC-Rio

21

Viso 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 gerao automtica, definimos algumas heursticas:
anlise de documentos de requisitos de uma organizao que desenvolve em ambientes distribudos identificao de termos ou expresses associados a requisitos nofuncionais varredura do documento de requisitos e identificao dos requisitos funcionais associados ao requisito no-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 expresses utilizados na organizao RNF segurana: associado s expresses logon ou login, logoff, senha ou password, perfil de usurio, controle de acesso, ...

Software Engineering Lab (LES) PUC-Rio

24

Tratamento da rastreabilidade

PROJETO EXIT - MATRIZ DE RASTREABILIDADE RF X RNF REQUISITOS NO FUNCIONAIS REQUISITOS FUNCIONAIS NFR1 NFR2 NFR3 NFR4 NFR5 NFR6 RF1 ........ RF14 RF15 RF16 RF17 ....... X X X X X X X X

Software Engineering Lab (LES) PUC-Rio

25

Tratamento da linguagem natural


experimentos com tratamento da linguagem natural:
a) identificao de palavras ou expresses prprias do domnio da aplicao, visando construo do Universo de Informaes (offshore insourcing) b) explicitao das diferenas culturais entre interessados

Software Engineering Lab (LES) PUC-Rio

26

Tratamento da linguagem natural


comparao de palavras e expresses com "dicionrio" resulta em:
diferenas culturais entre Brasil e Portugal explicitadas
por defeito representando por default aceder ao invs de acessar sinaltica ao invs de cone multibanco para tipo de pagamento ecr ao invs de monitor ou tela villas significando resort utilizador, aluguer, telemvel, ficheiro "dicionrio de viagem"

Software Engineering Lab (LES) PUC-Rio

27

Agentes verificador e construtor do lxico


Construtor:
identificao de palavras que deveriam constar do lxico da aplicao
ACE, BIZTALK, RESTEL, SAP ...... cofidis, dossier, markup, .......

verificao de inconsistncias com o lxico existente

Verificador:
RNF segurana(logon ou login, logoff, password ou senha): deve haver ao menos um requisito associado a cada expresso do RNF segurana
Software Engineering Lab (LES) PUC-Rio

28

Contribuies
uso de agentes de software como assistentes dos stakeholders, visando automao parcial de atividades do processo de requisitos e diminuio dos problemas de comunicao entre sites em ambientes distribudos tratamento da rastreabilidade: tcnica para gerao e verificao de matrizes de rastreabilidade tcnica para gerao de vises dos requisitos, apoiando tarefas de gerenciamento e desenvolvimento tcnica para recuperao e sistematizao do conhecimento organizacional (UdI) criao de um ambiente flexvel e extensvel para atividades de Gerenciamento de Requisitos
Software Engineering Lab (LES) PUC-Rio

29

Trabalhos relacionados
visam criao de MTFs para ambientes distribudos abordam aspectos pontuais e no utilizam agentes priorizao de requisitos:
uso distribudo da tcnica Quality Function Deployment (QFD) para definio dos requisitos; comunicao entre os interessados realizada com o uso de equipamentos de teleconferncia [Hrones93]
priorizao distribuda, com objetivo de avaliar diferentes segmentos do mercado para definir os requisitos [Regnell01]

Software Engineering Lab (LES) PUC-Rio

30

Trabalhos relacionados
negociao de requisitos:
uso de um facilitador para a conduo de processos de negociao de requisitos envolvendo interessados geograficamente separados
[Damian01] [Damian03]

verificao do documento de requisitos:


inspeo segundo a tcnica PBR, apoiada pela ferramenta IBIS. IBIS armazena o documento a ser inspecionado, possibilita o cadastro e a seleo dos inspetores, fornece checklists e formulrios e registra os problemas detectados por cada um deles [Lanubile03]

Software Engineering Lab (LES) PUC-Rio

31

Trabalhos relacionados
evoluo de requisitos:
uso de agentes mveis para controle da evoluo de requisitos em ambientes distribudos [Chang03]

gerenciamento de processos distribudos:


projeto GENESIS: uso de agentes de software, de tcnicas de workflow e de gerenciamento de documentos para gerenciamento de projetos e comunicao entre engenheiros de software
agentes: responsveis pela manipulao de excees, pela sincronizao de processos entre os sites distribudos e pela monitorao e coleta de informaes relacionadas a processos uso de agentes: abordagem menos invasiva para atividades de coordenao e controle entre sites
Software Engineering Lab (LES) PUC-Rio

32

Concluses
paradigma de agentes: apropriado para o processo de requisitos em ambientes distribudos agentes atuando como assistentes de usurios, clientes, engenheiro de requisitos, projetistas, engenheiros de software e desenvolvedores pr-atividade dos agentes diminuindo parte dos problemas decorrentes de falhas na comunicao em ambientes distribudos agentes e atores atuando visando atingir seus prprios objetivos, e colaborando visando atingir um objetivo comum: um documento de requisitos de qualidade e que reflita as necessidades de clientes e usurios

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. pgs. 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 (COMPSAC02). 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.; Hst, 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. Sayo, M. & Leite, J. C. S. P. Rastreabilidade de Requisitos relatrio tcnico 20/05, srie Monografias em Cincia da Computao, DI/PUCRio, 2005.

Software Engineering Lab (LES) PUC-Rio

36