Simplificação dos Modelos i* Trabalho de Fernanda Alencar Clarissa César Borba Agenda Problema Apresentado Objetivo Conceitos: i* e Aspectos Solução do Problema Trabalhos Futuros Referências Problema Apresentado Complexidade dos modelos i* para modelagem organizacional Objetivo Processo para simplificar os modelos i* utilizando os conceitos fundamentais da orientação a aspectos Melhorar graficamente a legibilidade dos modelos i* Abordagem i* Visão gráfica dos atores de um sistema de software, bem como as suas relações de dependências Oferece dois modelos: Modelo de dependência estratégica (Strategic Dependency - SD) Modelo de razões estratégicas (Strategic Rationale - SR) Exemplo de um modelo SR Aspect-Oriented Software Development - AOSD Técnicas e mecanismos para modularizar crosscutting concerns em módulos separados chamados aspectos Crosscutting concerns – interesses/preocupações transversais que não podem ser encapsulados usando os artefatos oferecidos pelas abordagens tradicionais. Ex: requisitos não funcionais Solução do problema O que foi feito? Investigação de como os modelos i* podem ser usados para identificar crosscutting concerns durante a modelagem de early requirements Como foi feito? Definição de um conjunto de guidelines para identificar, representar e modularizar crosscutting concerns nos modelos i* Simplificando os modelos i* Step 1 - Identification and representation of crosscutting concerns. i* Models SD Model Identification Guideline Guideline 2 Guideline 3 1 SR Model Step 2 – Identification of relationship among crosscuting concerns. Dependee actor X Crosscutting concerns Crosscutting concerns representation in i* Step 3 - Composition Composition rules definition Applying the rules to the crosscutting concerns Step 4 - Trade-off analysis Aspectoriented i* models The Proposed Approach Identification of crosscutting concerns Guideline 1 (Repeated dependum): if a dependum is provided by at least two dependee actors, and the operationalization corresponding to that dependum is handled in the same way in all dependee actors, then this operationalization is a crosscutting concern. Task T1 Dependum D1 Task T4 Dependum D2 Task T2 Dependum D4 Dependum D4 Dependum D1 Dependum D2 •D1, D2 and D4 dependum have multiple occurrences in the model •It is also necessary to check if that their respective operationalizations are the same Crosscutting concerns: T1, T2 and T4 Identification of crosscutting concerns Guideline 2 (Repeated tasks): if an internal task is related to an external dependency (directly or indirectly) and is required by (i.e. is a decomposition element of) two or more internal tasks (which are also related to other external dependencies), then that task is a crosscutting concern. Task T3 Task T7 •T3 and T7 tasks are reused •T3 is directly related to external dependency •T6 and T7 tasks are indirectly related to an external dependency. Crosscutting concerns: T3 and T7 Identification of crosscutting concerns Guideline 3 (Redundancy): the lists of crosscutting concerns identified by Guideline 2 and Guideline 1, need to be merged together. To avoid redundancy, multiple occurrences are deleted Task T1 Task T4 Task T3 Task T2 Task T7 •The final list is: T1, T2, T3, T4 and T7 Crosscutting concerns representation Crosscutting concerns are special types of tasks which operationalize any dependum type (goal, softgoal, resource or task). Following the principles of AOSD we should – extract and modularize these tasks, – remove them from the original actors, and – place them in a new type of model element, • The so called aspect. The final representation Simplificando os modelos i* Step 1 - Identification and representation of crosscutting concerns. i* Models SD Model Identification Guideline Guideline 2 Guideline 3 1 SR Model Step 2 – Identification of relationship among crosscuting concerns. Dependee actor X Crosscutting concerns Crosscutting concerns representation in i* Step 3 - Composition Composition rules definition Applying the rules to the crosscutting concerns Step 4 - Trade-off analysis Aspectoriented i* models The Proposed Approach Identification of relationship among crosscutting concerns Table 1. Crosscuting concerns and its dependums Only T7 is not related to any dependum; it is a internal task in B dependee actor. Dependee Actor Crosscutting Concerns T1 A T3 T4 T7 (C/D3) (C/ D4) (-/-) (C/D2) B (A/D1) C (D/D1) D T2 (D/D2), (-/D5) (A/D4) Identification of relationship among crosscutting concerns Identification of relationship among crosscutting concerns Table 1. Crosscuting concerns and its dependums There are three possibilities: (i) the pair (depender_actor/dependum), e.g. (A/D1) related with the T1 crosscutting concern; (ii) the pair (-/-) if the crosscutting concern does not have any dependency link (output dependum) or does not operationalize any dependums (input dependums). Depende e Actor Crosscutting Concerns T1 A T3 T4 T7 (C/D3 ) (C/ D4) (-/-) (C/D2) B (A/D1) C (D/D1) D T2 (A/D1) (D/D (D/D2), (-/D (-/D55)) (-/-) (A/D4) (iii) the pair (-/dependum) which means that the crosscutting concern depends on some other actor through the dependum (i.e., the dependum is an output element of the crosscutting concern), for example, the pair (-/D5) related to task T2. Identification of Internal Elements Task-Decomposition Parent (TDP) Task-Decomposition Sub-elements (TDS) Means-End (ME) Contribution (C) Table 2. Internal elements related to crosscutting concerns in i* model. Dependee Actor B Crosscutting Concerns T1 T2 T3 T4 T7 TDS(T3) TDP(T3) ME(G1), C(SG1) TDP(T1, T4), TDS(Tree 3, T2, T7) TDS(T3, G1, T6, Tree 4) TDP(T3), ME(G1), TDP(T6) Simplificando os modelos i* Step 1 - Identification and representation of crosscutting concerns. i* Models SD Model Identification Guideline Guideline 2 Guideline 3 1 SR Model Step 2 – Identification of relationship among crosscuting concerns. Dependee actor X Crosscutting concerns Crosscutting concerns representation in i* Step 3 - Composition Composition rules definition Applying the rules to the crosscutting concerns Step 4 - Trade-off analysis Aspectoriented i* models The Proposed Approach The Composition rules The third step defines a set of rules and operators to help simplifying the i* models without loosing information from the original model. The composition rules define “where” and “how” a crosscutting concern affects other concerns in a system. The Composition rules Table 3. Rules to external dependencies links in i* models R1 Aspect<aspect name> R2 Aspect<aspect name> is related to < dependum <dependum type > scattered name> <depender name> | has as with the <list of depender depender dependee name> R1 and R2 are proposed, respectively, to record (i) the depedum type that is scattered and involved with a dependency relationship (goal, task,softgoal or resource); Task T1 Dependum D1 Actor B Actor A Aspect T1 is related to scattered D1 (ii) the actors who depend upon the dependency relationship (depender actors). Aspect T1 has as depender A with the dependee B <dependee name> The Composition rules Table 4. Rule for a sub-task of a task decomposition link inside the expanded actor in i* model is a subtask of <task name> | <list of tasks name> | Aspect.<task name> | Aspect.<list of tasks name> | <list of Aspect.<task name> | <list of Aspect.<list of tasks name> R4 is decompo sed into <list of element name and its type>| <list of Aspect.<list of task name> R5 depends on is the root of R3 R6 Aspect <aspect name> Task T1 in <depen dee name> depend ee <list of dependum name and its type>| <list of Aspect.<list of task name> provid ed by <depen dee name> <sub-element name> | <list of sub-element name> | Aspect.<sub-element name> | Aspect.<list of sub-element name> | <list of Aspect.<sub-element name> | <list of Aspect.<list of subelement name> in <depen dee name> Actor B Aspect T1 is decomposed into Aspect T3 (R4) R3,R4,R5,R rules to keep the task-decomposition with its is root 6 and R<dependee 7 define R name> in related elements 7 The Composition rules Table 5.Rules for a means-end link in the SR model R8 R9 • • Aspect<name>. <aspectual task> Aspect<name>. <aspectual task> is the means of contrib utes <end name> | <list of end name> | Aspect.<end name> | Aspect.<list of end name> | <list of Aspect.<end name> | <list of Aspect.<list of end name> in <<contribution type>> <end softgoal name> | to <list of end in softgoal of internal link in the name> <dependee name> <dependee name> The means-end link is another kind i* model We are considering that the end element can be a goal or a softgoal, although it can be any type of dependum. The Composition rules Rule 8 (R8) – Means-end link Aspect T2 is the means of G1 in B Aspect T7 is the means of G1 in B. Actor B Goal G1 Rule 9 (R9) – Contribution link Aspect T2 contributes + to SG1 in B Softgoal SG1 Task T2 Task T7 Trabalhos Futuros Especificar guidelines em termos de algoritmos Aplicar esta abordagem para mais estudos de caso Realizar mudanças no plug-in para representar corretamente o estereótipo de aspectos Realizar a análise trade-off Referências Alencar, F., Silva, C., Moreira, A., Araújo, J., Castro, J.: Identifying Candidate Aspects with I-star Approach. In: Work. Of Early Aspects 2006 Alencar, F., Silva, C., Moreira, A., Araújo, J., Castro, J., Mylopoulos, J.: Towards na Approach to Integrate i* with Aspects. In: 8th Intl. BiConference Work. On Agent-Oriented Information Systems (AOIS2006) Alencar, F., Silva, C., Moreira, A., Araújo, J., Castro, J., Mylopoulos, J.: Using Aspects to Simplify i* Models. Poster in the 14th International Requirements Engineering conference RE´06 Alencar, F., Silva, C., Moreira, A., Araújo, J., Castro, J., Ramos, R.: Proposta de Simplificação dos Modelos do i* com Aspectos. WASP06 Alencar, F., Moreira, A., Araújo, J., Castro, J., Ramos, R., Silva, C.: Dealing with the i* Models with Aspects. RCIS07 Alencar, F., Moreira, A., Araújo, J., Castro, J., Ramos, R., Monteiro, C., Mylopoulos, J.: Simplifying i* Models. AOIS07