Baixe o app para aproveitar ainda mais
Prévia do material em texto
GORE Eduardo Kinder Almentero ekalmentero@gmail.com Introdução • O que são Metas? – Uma Meta é um objetivo que o sistema em construção deve alcançar. • Metas podem ser formuladas em diferentes níveis de abstração – Questões estratégicas • Ex.: – servir mais passageiros (sistema de transporte). – fornecer um serviço de retirada de dinheiro ubíquo. – Questões técnicas • Ex.: – executar sistema de aceleração no tempo correto – reter o cartão após 3 senhas incorretas. 10/06/2015 Prof. Eduardo Kinder Almentero 2 Introdução • As metas também lidam com diferentes tipos de características. – Características funcionais, relacionadas com os serviços que serão providos; – Características não funcionais, associadas com a qualidade do serviço (ex.: segurança, acurácia, performance, etc.) • Quando utilizar? – Fase inicial da engenharia de requisitos (“early requirements”). 10/06/2015 Prof. Eduardo Kinder Almentero 3 Introdução • O sistema ao qual uma meta se refere pode ser o atual ou o a ser construído. – Ambos estão envolvidos no processo de ER – Muitas vezes, compartilham as mesmas metas de alto- nível. • O sistema a ser construído compreende o software e seu ambiente e é feito de componentes ativos, como humanos, dispositivos e software, que serão chamados agentes. • Ao contrário de requisitos, as metas podem necessitar de cooperação entre agentes para que sejam alcançadas. 10/06/2015 Prof. Eduardo Kinder Almentero 4 Introdução • Um dos resultados importantes do processo de ER são as decisões sobre quais partes do sistema serão automatizadas e quais não serão. • Uma meta sob a responsabilidade de um único agente no software que será construído se torna um requisito, enquanto uma meta sob responsabilidade de um único agente do ambiente se torna uma suposição • Diferente de requisitos, suposições não podem ser garantidas pelo software a ser construído. 10/06/2015 Prof. Eduardo Kinder Almentero 5 Por que as Metas são necessárias? • Alcançar completeza de requisitos é uma questão central em ER. – Metas fornecem um critério preciso para completeza “suficiente” de uma especificação de requisitos; – A especificação é completa com relação a um conjunto de metas, se é possível provar que todas as metas podem ser alcançadas a partir de suas especificações e propriedades. 10/06/2015 Prof. Eduardo Kinder Almentero 6 Por que as Metas são necessárias? • Evitar requisitos irrelevantes, outra questão central em ER. – As metas fornecem um critério preciso para pertinência de requisitos. – Um requisito é pertinente com relação a um conjunto de metas, se sua especificação é usada para provar pelo menos uma meta. 10/06/2015 Prof. Eduardo Kinder Almentero 7 Por que as Metas são necessárias? • Explicar os requisitos aos stakeholders (outra questão importante). – Um refinamento baseado em metas fornece elos de rastreabilidade a partir de objetivos estratégicos de alto nível, até requisitos técnicos de baixo nível. – Em particular, para aplicações relacionadas aos negócios, pode ser usado para relacionar o software que será feito com o contexto organizacional e do negócio. 10/06/2015 Prof. Eduardo Kinder Almentero 8 Por que as Metas são necessárias? • O refinamento de metas provê um mecanismo natural para estruturar documentos de requisitos complexos, afim de aumentar sua leiturabilidade. – No refinamento, estão presentes diferentes níveis de abstração, com elos de rastreabilidade. Desta forma, é possível atender aos diferentes perfis de stakeholders, mantendo a consistência entre os documentos. 10/06/2015 Prof. Eduardo Kinder Almentero 9 Por que as Metas são necessárias? • Engenheiros de requisitos se deparam com várias alternativas a serem consideradas durante o processo de elaboração de requisitos. – Refinamentos de metas alternativas provê o nível certo de abstração onde tomadores de decisão podem ser envolvidos para validar escolhas. – Refinamento de metas alternativas permite a exploração de metas alternativas. 10/06/2015 Prof. Eduardo Kinder Almentero 10 Por que as Metas são necessárias? • Lidar com conflitos de pontos de vista é outra questão crítica na ER. – As metas são reconhecidas por explicitar conflitos entre requisitos; – A tarefa de resolver os conflitos também é abordada pelos métodos orientados a metas. 10/06/2015 Prof. Eduardo Kinder Almentero 11 Por que as Metas são necessárias? • A separação entre informação estável e volátil também é importante na ER. – Um requisitos representa uma maneira particular de atingir uma meta; – É mais comum que o requisito evolua através de uma nova forma de atingir a mesma meta, do que ocorrer uma mudança no próprio requisito. – Assim, quanto maior o nível de abstração da meta, mais estável ela será. – Portanto, é comum que diferentes versões do sistema compartilhem o mesmo conjunto de metas de alto-nível – O sistema atual e o sistema a ser construído representam refinamentos alternativos às metas em comum e, portanto, podem ser integrados em um único modelo. 10/06/2015 Prof. Eduardo Kinder Almentero 12 Introdução • De onde surgem as metas? – Análise preliminar do sistema atual; – Procura por palavras-chave específicas nos documentos preliminares; • Ex.: transcrições de entrevista. – Refinamento – perguntando como. – Abstração – perguntando por que 10/06/2015 Prof. Eduardo Kinder Almentero 13 Modelando Metas • Benefício – Suporta esquemas de raciocínio através de heurísticas, qualitativo ou formal durante a engenharia de requisitos. • Metas são modeladas através de: – Tipos (funcionais e não funcionais) – Atributos (nome) – Relacionamentos (relacionamento entre metas, relacionamento entre metas e outros elementos) • As metas devem ser especificadas com precisão, para dar suporte a elaboração, verificação/validação, gerência de conflitos, negociação, explicação e negociação. 10/06/2015 Prof. Eduardo Kinder Almentero 14 i* (istar) • Propõe uma abordagem orientada a agentes para a engenharia de requisitos, centrada nas características intencionais de cada agente. • Agentes atribuem propriedades intencionais (tais como objetivos, crenças , habilidades, compromissos) entre si e raciocinam sobre relacionamentos estratégicos. • As dependências entre agentes dão origem a vulnerabilidades e a oportunidades. • Os agentes podem considerar caminhos alternativos para determinar seu posicionamento estratégico no contexto social. • É composto, basicamente, de dois modelos: – Modelo SD (Strategic Dependency) – Modelo SR (Strategic Rationale) • Ferramentas: – OpenOME • http://sourceforge.net/projects/openome/ – Microsoft Visio • Estêncil no quiosque 10/06/2015 Prof. Eduardo Kinder Almentero 15 Modelo SD (Strategic Dependency) • Compreende um conjunto de nós e relacionamentos, onde: – Os nós representam atores; – O relacionamento entre dois atores indica que um ator depende do outro para alcançar uma meta. • O modelo SD é utilizado para expressar a rede de relacionamentos intencionais e estratégicos entre atores. 10/06/2015 Prof. Eduardo Kinder Almentero 16 Modelo SD (Strategic Dependency) • Ator – Entidades ativas que executam ações para alcançar metas, utilizando seu conhecimento. – O termo ator é utilizado para se referir, genericamente, a qualquer unidade para a qual dependências intencionais podem ser atribuídas. – Agentes, papéis e posições representam atores de forma mais especializada. 10/06/2015 Prof. Eduardo Kinder Almentero 17 Modelo SD (Strategic Dependency) • Papel – É uma caracterização abstrata do comportamento de um ator social.– Suas características são facilmente transferíveis para outros atores sociais. – As dependências associadas a um papel sempre se aplicam, independente do agente que desempenha o papel. 10/06/2015 Prof. Eduardo Kinder Almentero 18 Modelo SD (Strategic Dependency) • Agente – Ator com manifestações físicas concretas, como, por exemplo, um indivíduo humano. – O termo agente é utilizado para uma maior generalização, uma vez que pode ser utilizado para se referir a um ser humano ou agentes artificiais (agentes de hardware/software). – Um agente tem dependências que se aplicam, independente do papel que desempenham. – Estas características não são facilmente transferíveis para outros indivíduos. Ex.: habilidades e experiência. 10/06/2015 Prof. Eduardo Kinder Almentero 19 Modelo SD (Strategic Dependency) • Posição – Abstração intermediária que pode ser utilizada entre um papel e agente. – É um conjunto de papéis desempenhados por um agente. – Dizemos que um agente ocupa uma posição e uma posição “cobre” um papel. 10/06/2015 Prof. Eduardo Kinder Almentero 20 Relacionamentos de associação entre atores • Associação Is-part-of (“é-parte-de” ) – Permite decompor papéis, posições e agentes em subpartes. – Podem existir dependências intencionais entre o todo e suas partes. 10/06/2015 Prof. Eduardo Kinder Almentero 21 Relacionamentos de associação entre atores • Associação ISA (“é_um) – Representa uma generalização, onde um ator é um caso especializado de outro. 10/06/2015 Prof. Eduardo Kinder Almentero 22 Relacionamentos de associação entre atores • Associação Plays (“desempenha”) – Utilizada entre um agente e um papel. Significa que um agente desempenha um papel. 10/06/2015 Prof. Eduardo Kinder Almentero 23 Relacionamentos de associação entre atores • Associação Covers (“Cobre”) – Utilizada para descrever o relacionamento entre uma posição e os papéis cobertos por ela. 10/06/2015 Prof. Eduardo Kinder Almentero 24 Relacionamentos de associação entre atores • Associação Occupies (“Ocupa”) – Utilizada para indicar que um agente ocupa uma posição, o que significa que ele desempenha todos os papéis cobertos pela posição. 10/06/2015 Prof. Eduardo Kinder Almentero 25 Relacionamentos de associação entre atores • Associação INS (“instância”) – Utilizada para representar uma instância específica de uma entidade mais abstrata. – Um agente pode ser uma instância de outro agente. 10/06/2015 Prof. Eduardo Kinder Almentero 26 Dependências Estratégicas • Dependee – Ator do qual se depende em um relacionamento de dependência. • Depender – O ator que depende do outro em um relacionamento de dependência. • Dependum – Elemento em torno do qual uma relação de dependência ocorre. • Baseado no tipo de “dependum”, existem quatro tipos de dependências: dependência por tarefa, por recurso, por meta e por meta-flexível. 10/06/2015 Prof. Eduardo Kinder Almentero 27 Dependência por Meta • Na dependência por meta, o “depender” depende do “dependee” para trazer um certo estado ao mundo. • O “dependum” é descrito como um estado a ser alcançado. • O “dependee” é livre para, e é esperado que o faça, tomar quaisquer decisões necessárias para satisfazer a meta (“dependum”). • O “depender” não se importa em como o depende atinge a meta. 10/06/2015 Prof. Eduardo Kinder Almentero 28 Dependência por Tarefa • Na dependência por tarefa, o “depender” depende do “dependee” para que este execute uma tarefa. • O “dependum” é uma tarefa que especifica como a ação será realizada, mas não o porquê. • O “depender” já tomou decisões sobre como a tarefa deve ser executada. • Uma descrição de tarefa no i* não pretende ser descrição completa das etapas necessárias para executá-la. É uma restrição imposta pelo “depender” ao “dependee”, mas este ainda tem liberdade de ação dentro destas restrições. 10/06/2015 Prof. Eduardo Kinder Almentero 29 Dependência por Recurso • Utilizada quando o “depender” depende do “dependee” pela disponibilização de uma entidade (física ou informacional). • Ao estabelecer essa dependência, o “depender” ganha a habilidade de utilizar esta entidade como um recurso. • Um recurso é um produto final de um processo de deliberação-ação. • Na dependência por recurso, se assume que não há questões em aberto a serem tratadas, ou decisões a serem tomadas. 10/06/2015 Prof. Eduardo Kinder Almentero 30 Dependência por Meta-flexível • Utilizado quando o “depender” depende do “dependee” para realizar uma tarefa que satisfaça uma meta-flexível. • Uma meta-flexível é similar a uma meta, porém, não possui um critério exato de sucesso definido a priori. • O significado da meta-flexível é definido durante o curso de ações para satisfazer a meta. • O “depender” decide o que constitui a realização satisfatória da meta, utilizando o conhecimento do “dependee”. 10/06/2015 Prof. Eduardo Kinder Almentero 31 Vulnerabilidade • A vulnerabilidade está implícita nos relacionamentos de dependência. • O relacionamento de dependência indica que o “depender”, por depender de outro ator, que é o “dependee”, é capaz de alcançar metas que não poderia antes, ou não tão bem, ou não tão rápido. • Esta dependência está implícita, pois o “dependee” pode falhar em realizar o elemento em questão. • O modelo distingue três graus de força da dependência, de acordo com o nível de vulnerabilidade. 10/06/2015 Prof. Eduardo Kinder Almentero 32 Vulnerabilidade • Dependência aberta – Não obter o “dependum” afeta o “depender”, mas não seriamente. • Dependência comprometida – Não obter o “dependum” causaria uma falha em alguma ação para alcançar uma meta no “depender” • Dependência crítica – Não obter o “dependum” causa uma falha em todas as ações que o “depender” planejou para alcançar a meta. 10/06/2015 Prof. Eduardo Kinder Almentero 33 X X Exemplo Modelo SD 10/06/2015 Prof. Eduardo Kinder Almentero 34 Perguntas?
Compartilhar