Home
Uma Linguagem de Domínio Específico para AORE
Contents
1. ALPH Aspect Language for Pervasive Healthcare AMPLE Aspect Oriented Model Driven Product Line Engineering AOP Aspect Oriented Programming AOSD Aspect Oriented Software Design AORE Aspect Oriented Requirements Engineering API Application Programming Interface ASF Algebraic Specification Formalism ATMOL ATmospheric MOdeling Language CASE Computer Aided Software Engineering CODA Context Oriented Domain Analysis CTADEL Code generation Tool for Applications based on Differential Equations using high level Language DARE Domain Specific Analysis and Reuse Environment DFD Data Flow Diagram DSAL Domain Specific Aspect Language DSL Domain Specific Language DSOA Desenvolvimento de Software Orientado a Aspectos DSPL Dinamic Software Product Line DSSA Domain Specific Software Architectures EBNF Extended Backus Naur Form EMF Eclipse Modeling Framework ER Engenharia de Requisitos ER Entity Relashionship EROA Engenharia de Requisitos Orientada a Aspectos EROO Engenharia de Requisitos Orientada a Objectivos FAST Family Oriented Abstractions Specification and Translation FODA Feature Oriented Domain Analysis XI GAL Graphics Adaptor Language GME Generic Modeling Environment GPL General Purpose Language GUI Graphical User Interface IDE Integrated Development Environmen
2. of ConcemsAggregationlWodule hasCM 0 a name EString a description EString O metamodelo introduzido at aqui representa a sintaxe abstracta da LDE VisualAORE Em seguida s o introduzidos os s mbolos que representam algumas das classes do metamodelo no editor final assim como os cones que est o associados a estas O mecanismo de atribuir cones e imagens aos elementos da linguagem d origem sua sintaxe concreta A Tabela 5 3 cont m os s mbolos atribu dos s classes que extendem as classes abstractas Contraint Action Contraint Operator e Outcome Action do metamodelo VisualAORE Na Tabela 5 4 pode se consultar o cone atribu do a cada classe do metamodelo que possui uma representa o visual no editor q H Weighs a weight Weight inH T ax Viewpoint cl cuts VP 2 RE e or da gt o Id Eint out gt name EString outH o focus EString e source EString E Haslmpact a name EString Eg 0 0 hasVI haslmpact E ViewpointsAggregationiWdodulel0 name EString description esting hasVM hasWeight hasViewpointsAggragation odule hasCpncernsAggregationModule H AORE Figura 5 7 Rela es entre concerns e viewpoints 57 Tabela 5 3 Imagens externas dos conceitos das regras de composi o S mbolo Descri o Imagem das classes que estendem a classe abstracta Co
3. 1 O sistema deve ser compativel com os dispositivos actuadoyes e sensoregineh 1 0 sistema necessita de ter seguran a de preven o de crimes na identifica o dos habitantes e do administrador 1 0 administrador escolhe uma op o de configura o i A We oi pe A esos 2 O telem vel deve ser compat vel com a operadora 2 O sistema necessita de ter seguran a de preven o de incidentes ao dar as permiss es correctas a cada habitante e ao administrado 2 Se o administrador selecciona a op o de alterar configura o de utilizador 3 O sistema deve ser compativel com a operadora Weight 07 3 O utilizador administrador ou habitante acede ao sistema depois de fazer login no sistema e introduz a senha 2 1 Insere os novos dados V Actuador de Portas 3 1 Se o utilizador inserir o login e a senha correctamente t m acesso ao sistema E 22 Confirma as novas configura es 1 Se o sistema central receber informa o das condi es necess rias para que as portas sejam fechadas o actuador de portas fecha as poi 3 2 Se o utilizador inserir o login e ou a senha incorrectamente t m mais duas possibilidades de voltar a inserir a senha correcta st Se o administrador selecciona registar novo utilizador 2 Se o sistema central receber informa o das condi es necess rias para que as portas sejam abertas o actuador de portas abre as po
4. abstract class ConstraintOperator attr String name ref FRequirement COperatorTOFRequirement ref FRModule COperatorTOFRAggModule ref Viewpoint COperatorTOViewpoint abstract class AppliedProvide extends ConstraintAction ref For 1 ForTOAppliedProvide AppliedProvideTOFor abstract class OnBetween extends ConstraintOperator ref Enforce 1 EnforceTOOnBetween OnBetweenTOEn force abstract class DuringWithIn extends ConstraintOperator ref Ensure 1 EnsureTODuringWithIn DuringWithInTOEnsure class Applied extends AppliedProvide class Enforce extends ConstraintAction ref OnBetween 1 OnBetweenTOEnforce EnforceTOOnBetween class Ensure extends ConstraintAction ref DuringWithIn 1 DuringWithInTOEnsure EnsureTODuringWithIn class Exclude extends ConstraintAction ref ConstraintOperator 1 ExcludeToCOperator class Provide extends AppliedProvide class Between extends OnBetween class During extends DuringWithIn class For extends ConstraintOperator ref AppliedProvide AppliedProvideTOFor ForTOAppliedProvide class In extends DuringWithIn class On extends OnBetween class With extends DuringWithIn class Xor extends ConstraintOperator enum Weight Zero 0 ZeroUm 1 ZeroDois 2 ZeroTres 3 ZeroQuatro 4 ZeroCinco 5 ZeroSeis 6 143 ZeroSete 7 ZeroOito 8 ZeroNove 9 Um 10 class Weighs attr W
5. 14 A Figura 2 4 ilustra a especifica o da composi o do assunto Tempo de Resposta Aqui o requisito 1 de Tempo de Resposta deve ser for ado entre Constraint action enforce operator between os requisitos 1 e 2 de Ve culo e o resultado Outcome action satisfied a satisfa o do requisito 1 de Gizmo incluindo os seus filhos children include lt xml version 1 0 gt lt Composition gt Requirement aspect Tempo de Resposta id 1 1 gt lt Constraint action enforce operator between gt lt Requirement viewpoint Veiculo id 1 gt lt Requirement viewpoint Veiculo id 2 gt lt Constraint gt lt Outcome action satisfied gt lt Requirement viewpoint Gizmo id 1 children include gt lt Outcome gt lt Requirement gt lt Composition gt Figura 2 4 Composi o de Tempo de Resposta com ve culo Se forem detectados conflitos entre dois concerns que afectam o mesmo viewpoint pesos com valores entre zero e um devem ser dados a cada concern num mesmo viewpoint como ilustrado na Tabela 2 3 No exemplo h um conflito entre Tempo de Resposta e Seguran a como vis vel na Tabela 2 2 o qual afecta o viewpoint Cliente Da Tabela 2 3 pode afirmar se que o viewpoint Cliente possui um maior impacto do concern Seguran a do que do concern Tempo de Resposta Tabela 2 3 Rela o dos concerns com os viewpoints EE Ve culo Cliente Concerns Tempo
6. N s ConcernsAggregationModule Representa um m dulo para agregar um ou v rios concerns Possui os atributos Name e Description CompositionrulesA ggregationModule Representa um m dulo de agrega o de uma ou mais de regras de composi o Possui os atributos Name e Description ViewpointsAggregationModule Representa um m dulo de agrega o de um ou v rios viewpoints Possui os atributos Name e Description Concern Representa um concern Possui os atributos Name e Id Aspect Representa um aspecto Possui os atributos Name e Id Viewpoint Representa um viewpoint Possui os atributos Name Id Focus e Source FRequirement Representa um requisito funcional que comp e a especifica o de um viewpoint Possui os atributos Id e Description NFRequirement Representa um requisito n o funcional utilizado na especifica o de um concern ou aspecto Possui os atributos Id e Description FRAModule Representa um m dulo de agrega o de requisitos funcionais Possui os atributos Name Id e Description CompositionRule Representa uma regra de composi o Possui os atributos Name Id e Description Contraint Representa a restrig o que existe dentro de uma regra de composi o Possui o atributo Name Applied Utilizado para descrever as regras que se aplicam a um conjunto de requisitos de um viewpoint e que podem alterar o seu resultado Todos os elementos
7. significativa e portanto capaz de originar conclus es fi veis Para uma certifica o dos resultados obtidos seria interessante avaliar a LDE com base num n mero mais significativo de utilizadores De focar que o question rio preenchido pelos utilizadores foi devidamente supervisionado pelos orientador e co orientador desta disserta o minimizando o risco de erros 7 3 Sum rio Neste cap tulo foi detalhada a fase de avalia o da linguagem e do editor propostos nesta disserta o Esta fase foi feita atrav s de um teste efectuado a v rios utilizadores que posteriormente preencheram um question rio acerca do teste efectuado Na sec o 7 1 introduzida cada quest o do question rio de forma individual seguida da sua explica o e objectivos Por fim apresentado o resultado obtido na respectiva quest o A sec o 6 3 foca alguns aspectos que s o considerados amea as valida o efectuada 117 118 8 Conclus o Nesta disserta o foi elaborada uma LDE gr fica para a metologia AORE denominada VisualAORE A linguagem VisualAORE foi realizada no ambiente de desenvolvimento Eclipse na plataforma GMF EMF e com o auxilio dos plug ins Emfatic e EuGENia O seu desenvolvimento assentou na elabora o de um metamodelo para linguagem que abrange todos os conceitos do m todo AORE e um novo conceito o conceito de m dulo de agrega o Este novo conceito permite a agrega o de elementos do mesmo tipo
8. A maioria dos utilizadores que n o possuem experi ncia na utiliza o de editores desenvolvidos na plataforma GMF mostrou uma dificuldade consider vel na utiliza o do plug in VisualAORE que se prende com as limita es da plataforma tais como organizar os modelos de forma user friendly e definitiva Quest o C5 Como se sentiu em rela o a efectuar mudan as nos modelos How did you feel about performing changes A quest o C5 pretende avaliar o processo de efectuar altera es aquando do desenho de modelos AORE O valor 1 significa que muito dif cil efectuar mudan as nos modelos e o valor 5 significa que muito f cil efectuar mudan as nos modelos 104 C5 Como se sentiu em rela o a efectuar mudan as nos modelos 9 N Pessoas Classifica o Figura 7 12 An lise da capacidade em realizar altera es nos modelos Atrav s da observa o da Figura 7 12 conclui se que os utilizadores n o consideram dif cil efectuar mudan as nos modelos AORE Quest o C6 Qual o esfor o f sico necess rio para efectuar o caso de estudo How physically demanding was performing the case study A quest o C6 pretende avaliar o esfor o mental necess rio para realizar o modelo AORE do caso de estudo Via Verde O valor 1 significa que muito dif cil desempenhar o caso de esstudo e o valor 5 significa que muito f cil C6 Qual o esfor o f sico necess rio para efectuar o caso de
9. Lamsweerde et al 1991 A Lamsweerde A Dardenne B Delcourt e F Dubisy The KAOS Project Knowledge Acquisition in Automated Specification of Software In Proceedings AAAI Spring Symposium Series Design of Composite Systems Universidade de Stanford p gs 59 62 Mar o de 1991 Lara e Vangheluwe 2002 J Lara e H Vangheluwe Using AToM as a Meta CASE Tool Escola de Computa o Cient fica Universidade Aut noma de Madrid 2002 Ledeczi et al 2001 A Ledeczi M Maroti A Bakay G Karsai J Garrett C Thomason G Nordstrom J Sprinkle e P Volgyesi The Generic Modeling Environment em Proceedings of WISP 2001 Budapense Hungria Maio de 2001 126 Marot e Wuyts 2008 A Marot e R Wuyts A DSL to declare aspect execution order Workshop DSAL 08 Bruxelas B lgica Abril de 2008 Mernik et al 2005 M Mernik J Heering e A Sloane When and How to Develop Domain Specific Languages em ACM Computing Surveys V 37 N 4 p gs 316 344 Dezembro de 2005 Munnelly e Clarke 2007 J Munnelly S Clarke ALPH A Domain Specific Language for Crosscutting Pervasive Healthcare Concerns em DSAL 07 Vancouver Canad Mar o de 2007 Nakatani e Jones 1997 L Nakatani e M Jones Jargons and infocentrism em DSL 97 1 Workshop ACM SIGPLAN em Linguagens de Dom nio Espec fico em associa o com POPL 97 Paris Fran a Janeiro de 1997 Neighbors 1984 J Neighbors The Draco approach to constru
10. Sensor de fumo e fogo 3 Detecta presen a aus ncia de fumo e fogo 4 Envia informa o para o sistema central Sensor de janelas 1 Detecta estado das janelas 2 Envia informa o do estado para o sistema central Sensor de persianas 1 Detecta estado das persianas 2 Envia informa o do estado para o sistema central Sensor de portas 1 Detecta estado das portas 2 Envia informa o do estado para o sistema central Sensor de luzes 1 Detecta estado das luzes 2 Envia informa o do estado para o sistema central Sensor de Sprinkler 1 Detecta estado do sprinkler 2 Envia informa o do estado do sprinkler para o sistema central 157 Sensor de temperatura exterior 1 Detecta temperatura no exterior da casa 2 Envia informa o para o sistema central Sensor de temperatura interior 1 Detecta temperatura no interior da casa 2 Envia informa o para o sistema central Concerns Compatibilidade 1 O sistema deve ser compat vel com os dispositivos actuadores e sensores 2 O telem vel deve ser compat vel com a operadora 3 O sistema deve ser compat vel com a operadora Disponibilidade 1 O sistema deve garantir a disponibilidade dos sensores O sistema deve garantir a disponibilidade dos dispositivos O sistema deve garantir a disponibilidade dos actuadores 2 3 4 O sistema deve garantir a disponibilidade do sistema central 5 O sistema deve garantir a disponibilidade da
11. es o utilizador deve escolher o elemento que pretende utilizar Finalmente surgem as rela es que s o feitas entre os n s Para cada tipo de associa o de elementos da restri o ou seja para cada combina o poss vel de Constraint Action e Constraint Operator existe uma rela o distinta lt 2 Palette as Palette Kaap gt Objects A Aspect C Concern NER Non Functional Requirement 3 Connections gt Contribution Figura 5 10 Menu do sub editor do elemento ConcernsA ggregationModule Na Figura 5 13 pode observar se o menu do sub editor do m dulo de agrega o de viewpoints Este menu cont m os conceitos Viewpoint Functional Requirement e Functional Requirement Aggregation Module 65 gt Palette Raap gt Generic Objects CR Composition Rule C Constraint Constraint Action Applied Enf Enforce Ens Ensure Exe Exclude P Provide gt Constraint Operator B Between D During F For Un O On W With X Xor amp Outcome Action Fulfilled Satisfied 2 Connections gt Applied Provide gt For CAction gt Xor gt Enforce gt On Between gt Ensure gt Figura 5 12 Menu do sub editor do elemento CompositionRulesAggregationModule 66 o Palette gt Raap 3 Objects x V Viewpoint FR Functional Requirernent ERASO Functional Requirements Aggregation Module Figura 5 13 Menu do sub editor do elemento ViewpointsA
12. Je Ovga NOM Si gt Universidade Nova de Lisboa Faculdade de Ci ncias e Tecnologia Departamento de Inform tica Uma Linguagem de Dominio Espec fico para AORE N 30226 Ana Rita Duarte Oliveira Orientador Prof Doutor Jo o Baptista da Silva Ara jo J nior Co Orientador Prof Doutor Vasco Miguel Moreira do Amaral Disserta o apresentada na Faculdade de Ci ncias e Tecnologia da Universidade Nova de Lisboa para obten o do grau de Mestre em Engenharia Inform tica 2 Semestre de 2009 2010 28 de Julho de 2010 II N do aluno 30226 Nome Ana Rita Duarte Oliveira T tulo da disserta o Uma Linguagem de Dom nio Espec fico para AORE Palavras Chave e Engenharia de Requisitos Orientada a Aspectos e Desenvolvimento Orientado a Modelos e Linguagem de Dom nio Espec fico e Metamodela o Keywords e Aspect Oriented Requirements Engineering e Model Driven Development e Domain Specific Language e Metamodeling MI IV Agradecimentos Gostaria de agradecer a todas as pessoas que durante este ultimo ano de trabalho me acompanharam e tornaram poss vel a realiza o desta disserta o de mestrado Especialmente gostaria de agradecer ao meu orientador Jo o Ara jo pela proposta de trabalho sugerida e por todo o apoio disponibilidade e boa disposi o que me ofereceu em todas as fases desta disserta o Em seguida mas n o menos importante queria agradecer ao meu co orientador Vasco Amar
13. anteriormente especifica os elementos do m todo atrav s de templates XML A linguagem VisualAORE torna a metodologia AORE mais compreens vel e facilita a especifica o de modelos AORE atrav s de uma representa o gr fica O editor que suporta a linguagem melhora o processo de modela o de requisitos atrav s da t cnica AORE para o Engenheiro de Software comum dada a sua prefer ncia por modelos visuais 8 1 Limita es Tal como grande parte das ferramentas de modela o de sistemas a ferramenta desenvolvida nesta disserta o apresenta problemas ao n vel da escalabilidade dos modelos Este facto evidente quando se pretende visualizar os modelos na sua integridade como um todo A modela o de sistemas origina modelos de tamanho elevado o que complica a sua visualiza o No entanto o plug in VisualAORE oferece a possibilidade de ocultar informa o e visualizar e ou editar determinadas por es de informa o em editores separados Esta caracter stica facilita a leitura dos modelos quando esta feita por partes O plug in VisualAORE suportado pelo ambiente de desenvolvimento Eclipse pelo que a sua utiliza o est condicionada ao uso do mesmo A plataforma GMF fornece algumas limita es pois possui uma curva de aprendizagem um pouco acentuada pelo que se torna por vezes dif cil aprender a utilizar os plug ins que esta suporta Uma vez que se trata de uma plataforma em desenvolvimento espera se que a
14. contr rio de uma especifica o por procedimentos ou step by step 4 3 5 Uma LDE para drivers de dispositivos de videos Neste trabalho proposta uma framework para desenvolvimento de geradores de aplica es que engloba duas alternativas a abordagem baseada em compiladores e a abordagem baseada em interpretadores Ela tamb m estruturada em dois n veis o primeiro consiste na defini o de uma m quina abstracta cujas opera es podem ser visualizadas como uma componente gen rica que captura as opera es importantes do dom nio e o segundo a defini o de uma micro linguagem em termos de operadores de uma m quina abstracta mas fornecendo uma interface de alto n vel para a m quina abstracta Este artigo Thibault et al 1997 descreve uma aplica o real stica da framework descrita para a gera o autom tica de drivers para placas de v deo Este dom nio forma uma fam lia de programas para as quais as LDEs s o bem adaptadas feito o desenho e a defini o completa de uma LDE para adaptadores de v deo mostrado como uma avalia o parcial pode qualificar drivers eficientes e assegurando se que todos os motores gerados podem ser comprovados para finalizar e definir algumas an lises que podem aumentar a sua fiabilidade As LDEs cumprem a promessa de fornecer um elevado retorno em termos de reutiliza o de software an lise autom tica de programas e Engenharia de Software A linguagem GAL foi a
15. o de cores dos elementos permitindo uma f cil e r pida distin o e identifica o dos mesmos e O modelo mais preciso pois a ferramenta restringe o acontecimento de alguns erros e O modelo permite identificar a ocorr ncia de erros mais facilmente e O modelo oferece uma melhor compreens o da rela o entre os viewpoints e os concerns e O modelo oferece uma maior interactividade facilidade de correc o e evolu o do padr o e O modelo obtido pode ser integrado com outras ferramentas para verifica o e transforma o e O editor ao evoluir poder fornecer uma assist ncia maior ao processo de cria o de modelos Quest o C10 E as desvantagens And the disadvantages A quest o C10 pretende obter as desvantagens do modelo feito no plug in VisualAORE em rela o especifica o textual fornecida e O modelo n o tem a plena liberdade e extensibilidade da descri o em papel e As limita es do GMF reflectem se no desenvolvimento e resultados das solu es e Efectuar o print de solu es grandes pode tornar se complicado 107 e A exist ncia de uma curva de aprendizagem um pouco acentuada para utilizadores com poucos conhecimentos nas reas de Linguagens de Dom nio Espec fico e Engenharia de Requisitos e Desenho de Software e Ao ser menos textual o modelo pode correr o risco de ser menos explicativo Quest o C11 O modelo especificado no plug in cont m toda a informa o da espe
16. Do you consider the tool helpful A quest o C19 tem o objectivo de avaliar o grau de utilidade da ferramenta em teste O valor 1 significa que a ferramenta n o definitivamente til e o valor 5 significa que a ferramenta muito til C19 Considera a ferramenta til N Pessoas Classifica o Figura 7 23 An lise da utilidade da ferramenta VisualAORE A maioria dos utilizadores considerou a ferramenta muito til Tr s utilizadores consideraram a ferramenta apenas razoavelmente til 113 Quest o C20 Qual a sua aprecia o global da LDE VisualAORE What is your overall appreciation of the VisualAORE DSL A quest o C20 tem como objectivo obter a aprecia o global da ferramenta VisualAORE O valor 1 significa aprecia o global muito negativa e o valor 5 significa aprecia o global ptima C20 Qual a sua aprecia o global da LDE VisualA ORE N Pessoas Classifica o Figura 7 24 An lise da aprecia o global da LDE A maioria dos utilizadores atribui uma boa aprecia o global ferramenta Cinco utilizadores atribu ram mesmo uma ptima aprecia o As quest es que se seguem s o de resposta livre O objectivo avaliar a opini o dos utilizadores em rela o a algumas caracter sticas da ferramenta Quest o C21 Quais s o na sua opini o as fraquezas dificuldades do plug in VisualAORE What are in your opinion the weaknesses difficul
17. Se o utilizador pretende configurar o sistema atrav s do telem vel 2 1 Recebe chamada do habitante 2 2 Efectua comunica o entre o habitante e o sistema central Sensor de movimento 1 Detecta movimento no interior da casa 2 Envia informa o de exist ncia de movimento e da s divis o divis es em que esta foi detectada para o sistema central Alarme 1 Se o sistema central receber informa o das condi es necess rias para que o alarme seja activado ele activa se 2 Se o sistema central receber informa o das condi es necess rias para que o alarme seja desactivado ele desactiva se Sprinkler 1 Se o sistema central receber informa o das condi es necess rias para que o sprinkler seja activado ele activa se 2 Se o controlo remoto receber informa o das condi es necess rias para que o sprinkler seja desactivado ele desactiva se Os assuntos concerns identificados para o sistema s o Seguran a seguran a de preven o de crimes alarme anti roubo c maras de videovigil ncia etc Safety seguran a de preven o de incidentes alarmes de fogo inunda o etc Disponibilidade Tempo de Resposta Compatibilidade e Usabilidade Abaixo encontra se a especifica o dos assuntos Seguran a e Tempo de Resposta tamb m esta realizada de forma informal Lembramos que um concern em PRE view n o funcional Seguran a 1 O sistema necessita de ter seguran a de preven o d
18. com mais pormenor e feito um resumo de tr s outras LDEs Por ltimo s o apresentados trabalhos que focam a constru o de LDEs noutros dom nios Em todos estes trabalhos s o evidenciadas as vantagens de utilizar este tipo de linguagem notando se um aumento significativo da sua utiliza o 46 5 LDE VisualAORE A LDE VisualAORE uma linguagem visual que disponibiliza um editor para a cria o de modelos visuais AORE O desenvolvimento da LDE VisualAORE foi realizado segundo a sequ ncia de fases descrita na sec o 5 do Cap tulo 3 Deste modo foi realizada uma an lise de dom nio que se encontra descrita na sec o seguinte deste cap tulo Na sec o 5 2 descrita a fase de desenho da linguagem que consistiu em criar o seu metamodelo e a sec o 5 3 aborda a fase da sua implementa o 5 1 An lise do dom nio A an lise do dom nio objectiva estabelecer a terminologia e os conceitos da linguagem assim como efectuar uma an lise das variac es combina es e da similaridade Neste trabalho a an lise de dom nio foi elaborada atrav s do m todo FODA que consistiu na constru o de um diagrama de features Figura 5 1 47 1 4 0 4 0 7 1 E Viewpoints Aggregation Module Concerns Aggregation Module Composition Rules Aggregation Module Hasimpact r Name mee fal Da a Megane od Name id ce Non Functional Non Functional Requirement Constraint Operator Functional Funct
19. do elemento que se encontra abaixo para com aquele que se encontra acima No caso da figura 5 14 n o existe uma rela o de contribui o inversa pelo que o segundo par metro da rela o Contribution null Como se pode observar um m dulo de agrega o de concerns representado por um rect ngulo verde com as extremidades num tom verde mais carregado Tanto os concerns como os aspectos s o representados por um rect ngulo cinzento no entanto possuem as extremidades com diferentes tons de verde Os requisitos n o funcionais s o representados por um rect ngulo cinzento cuja extremidade cinzenta Estas caracter sticas surgem com o objectivo de facilitar a aprendizagem da linguagem A Figura 5 15 ilustra um m dulo de agrega o de viewpoints Este m dulo denominado de Toll Gate e cont m as especifica es dos viewpoints de todas as cancelas existentes no sistema Via Verde As especifica es dos viewpoints s o efectuadas atrav s de requisitos funcionais Como se pode observar na Figura 5 15 um m dulo de agrega o de viewpoints representado por um rect ngulo vermelho com as extremidades num tom carregado Os viewpoints s o representados por um rect ngulo cinzento cuja extremidade apresenta um tom 67 de vermelho mais leve Cada viewpoint possui dois compartimentos o primeiro compartimento suporta a adi o dos requisitos funcionais enquanto o segundo suporta a adi o de m dulos de agrega o
20. e Aumento da fiabilidade e Flexibilidade As constru es de alto n vel da ATMOL s o declarativas e com efeito colateral livre o que requerido pelas aplica es de transforma es para traduzir e optimizar as fases interm dias do modelo e do seu c digo A sua expressividade permite a formula o de modelos de alto e baixo n vel como construtores de linguagem para problemas de refinamentos e s ntese de c digo A ferramenta restrita e requer a inser o dos objectos antes de serem usados A ATMOL basicamente uma linguagem de transforma o com que as opera es sem nticas dos operadores dos modelos s o definidas Todos os operadores PDE built in m todos de solu o e algoritmos s o escritos em ATMOL e fornecidos como constru es pr definidas As constru es da linguagem ATMOL est o englobadas em cinco diferentes n veis de abstrac o Meta level Model declarations a Coordinate free scalar PDE problem The numerial schemes e Program Code e permitem especifica es de modelos com uma mistura de n veis de abstrac o 45 4 4 Sum rio Neste cap tulo apresentado o estado da arte atrav s da introdu o de alguns trabalhos na rea sobre a qual esta disserta o vai incidir Na sec o 1 s o apresentadas LDEs para abordagens de requisitos como o caso da LDE para i e da LDE para KAOS Na sec o 2 s o apresentadas LDEs para programa o orientada a aspectos Aqui apresentada uma LDE
21. es ou coment rios de mbito geral O question rio pode ser consultado no Anexo I Na sec o seguinte s o apresentadas as quest es do question rio atrav s de uma breve explica o do que se pretende avaliar com cada uma Por fim feita uma an lise estat stica das mesmas 95 7 1 An lise das quest es e dos resultados obtidos O objectivo do grupo de quest es A obter o grau de compet ncia dos utilizadores na rea de LDEs e o seu gosto pela mesma Quest o Al Quantas vezes possu u contacto com um pacote de ferramentas de desenvolvimento de LDEs How often did you use a DSL workbench tool Nesta quest o pretende se saber quantas vezes que um utilizador j possuiu contacto com um ambiente de desenvolvimento de LDESs O valor 1 significa que o utilizador j possu u imensos contactos com um ambiente de desenvolvimento de LDEs e o valor 5 significa que o utilizador n o possu u qualquer contacto Al Quantas vezes possu u contacto com um ambiente de desenvolvimento de LDEs E o N Pessoas un o 1 2 3 4 5 Classificac o Figura 7 1 An lise da frequ ncia de utilizag o de ambientes de desenvolvimento de LDEs No gr fico da Figura 7 1 observa se que existem 6 utilizadores com conhecimento na rea de LDEs 2 utilizadores com bom conhecimento e 2 utilizadores com conhecimento razo vel Quest o A1 1 Durante quanto tempo utilizou How long have you used it Com esta
22. gt COperator Constraint gt 0Action gt Satisfied gt COperator gt COperator gt FRModule 777 COperator gt FRequirement gt COperator gt Viewpoint gt OAction gt FRModule gt OAction gt FRequirement TOM etica JIE Figura 1 3 Menu do editor base x Para dar inicio constru o de um modelo o utilizador deve colocar os m dulos de agrega o no editor base uma vez que s o os elementos que suportam o modelo Os elementos podem ser colocados no editor por duplo clique no elemento desejado no menu ou por arrasto para o editor De notar que elementos que s o postos dentro de outros elementos apenas podem ser colocados por arrasto Ap s colocar os m dulos no editor o utilizador pode ent o colocar os elementos dentro dos respectivos m dulos Cada m dulo de agrega o presente no editor base possui um sub editor associado Deste modo o utilizador pode editar um m dulo no editor base ou editar num editor em separado onde apenas vis vel a informa o que lhe pertence Para editar um m dulo em separado necess rio efectuar um duplo clique com o bot o direito do rato no rebordo do m dulo em quest o Feito isto disponibilizado um novoeditor automaticamente com um menu que cont m os elementos que podem ser utilizados nesse editor Sempre que o utilizador desejar voltar ao editor base para visualizar editar o modelo global deve fechar e guardar as edi es efectuadas nos su
23. name label icon false label placement external tool description Create a new Applied Constraint Action node class Applied extends AppliedProvide gmf node figure figures EnforceFigure label name label icon false label placement exinternal tool description Create a new Enforce Constraint Action node class Enforce extends ConstraintAction gmf link tool small bundle Aore edit tool small path icons full obj16 EnforceToOnOrBetween gif tool large bundle Aore edit tool large path icons full obj16 EnforceToOnOrBetween gif style solid 147 width 1 target decoration arrow color 0 0 0 tool name Enforce gt On Between tool description Create a new link from the Constraint Action Enforce node to the Constraint Operator node On or Between ref OnBetween 1 OnBetweenTOEnforce EnforceTOOnBetween gmf node figure figures EnsureFigure label name label icon false label placement external tool description Create a new Ensure Constraint Action node class Ensure extends ConstraintAction gmf 1link tool small bundle Aore edit tool small path icons full obj16 EnsureTODuringORWithORIn gif tool large bundle Aore edit tool large path icons full obj16 EnsureTODuringORWithORIn gif style solid width 1 target decoration arrow color 0 0 0 tool name Ensure gt During With In tool description Create a new link from the Constraint Action En
24. o deste ltimo Quest o C1 Quanto tempo despendeu a desenvolver o modelo atrav s do plug in VisualAORE What time did you spent in developing the model through the VisualAORE plug in Nesta quest o pretende se obter a dura o m dia necess ria para elaborar o caso de estudo fornecido na ferramenta Tabela 7 2 Dura o da elabora o do caso de estudo ALSO N pessoas minutos p O tempo m dio gasto para efectuar o modelo AORE da Via Verde foi de uma hora e 30 minutos Quest o C2 Qual a facilidade com que elaborou o modelo AORE How easily did you create the AORE model A quest o C2 possui o objectivo de avaliar a facilidade em criar modelos AORE na ferramenta VisualAORE O valor 1 significa muito dif cil e o valor 3 significa muito f cil 102 C2 Qual a facilidade com que elaborou o modelo jo AORE N Pessoas o ul Classificac o Figura 7 9 An lise da facilidade de elaborag o de modelos AORE Por observa o da Figura 7 9 pode concluir se que de forma geral existe facilidade em criar modelos AORE Quest o C3 Como avalia o processo de elaborar um modelo no plug in VisualAORE How do you evaluate the process of creating a model in the VisualAORE plug in A quest o C3 tem como objectivo recolher a opini o dos utilizadores quanto ao processo de elaborar modelos AORE atrav s do plug in VisualAORE O valor 1 indica que o processo muito mau e o valo
25. significa que o requisito 2 de Tempo de Resposta deve ser imposto aos requisitos do viewpoint Sprinkler e o resultado desta composi o o cumprimento dos requisitos do Sprinkler A regra de composi o 3 significa que o requisito 3 de Tempo de Resposta deve ser imposto aos requisitos do Alarme e o resultado desta composi o o cumprimento destes ltimos requisitos A regra de composi o 4 significa que o requisito 4 de Tempo de Resposta deve ser imposto aos requisitos do viewpoint Sensor de Movimento e o resultado desta composi o o cumprimento dos requisitos deste viewpoint 90 VAgoM EntidadesExternas V Operadora 1 Em caso de emerg ncia 1 1 Recebe informa o do tipo de emerg ncia 1 2 Recebe informa o do local da ocorr ncia 1 3 Faz chamada de emerg ncia 2 Se o utilizador pretende configurar o sistema atrav s do telem vel 2 1 Recebe chamada do habitante 2 2 Efectua comunica o entre o habitante e o sistema central 1 Compatib CR2 2 Compatib CR3 3 TempoResp CR1 1 3 Faz chamada de emerg ncia 2 2 Efectua comunica o entre o habitante e o sistema central CAggM ConcernsModule A Tempo de resposta 1 O sistema deve possuir um bom tempo de resposta ao comunicar com a operadora sesessespefee 2 O sistema deve possuir um bom tempo de resposta para ligar desligar o sprinkler s f f 3 O sistema deve responder atempadamente para ligar desligar o alarme sff 4 O sensor d
26. 131 Tabela A 3 Descri o das Outcome ACtiONMS oooconocnnncnnnnnnonnnnnnnonancnnnnnnnnnnnanonn nono n ron n rra rra 132 Table di Impact A A QUO ci 164 Table 2 Contlicts unitat oi cia daria aid 164 Table 3 Conflicts Resol tion alot in 164 XXI XXII 1 Introdu o 1 1 Contexto e Motiva o A Engenharia de Requisitos ER a rea da Engenharia de Software que trata da defini o e especifica o dos requisitos de software Um requisito uma funcionalidade propriedade ou atributo do sistema uma descri o de como o sistema se deve comportar ou dos servi os disponibilizados ainda a defini o de restri es existentes no sistema e capazes de condicionar o seu comportamento e desenvolvimento Sommerville 2007 Os requisitos s o classificados como requisitos do utilizador e requisitos do sistema sendo que estes ltimos se dividem em requisitos funcionais n o funcionais e de dom nio Os requisitos funcionais s o os servi os que o sistema deve produzir assim como o modo como deve reagir a determinados eventos Os requisitos n o funcionais s o compostos pelos requisitos de produto organizacionais e externos e finalmente os requisitos de dom nio surgem do dom nio da aplica o do sistema reflectindo as caracter sticas do seu dom nio Sommerville 2007 O objectivo da ER conseguir obter um conjunto de metodologias capazes de lidar cada vez melhor com a problem tica da identifica o e tratamento d
27. 2 significa que o requisito 1 2 de Compatibilidade deve ser assegurado no que diz respeito ao requisito 2 e sub requisitos do viewpoint Operadora e todos os requisitos do viewpoint Telem vel O resultado desta composi o o cumprimento dos requisitos 2 de Operadora e o viewpoint Telem vel A regra de composi o 3 significa que o requisito 1 3 de Compatibilidade deve ser assegurado no que diz respeito ao requisito 1 e seus sub requisitos do viewpoint Operadora O resultado desta composi o o cumprimento do requisito 1 do viewpoint Operadora Para o aspecto Safety foram realizadas as regras de composi o dos requisitos 2 e 3 A regra de composi o 2 significa que o requisito 2 de Safety deve ser proporcionado aos requisitos do viewpoint Sprinkler e o resultado desta composi o o cumprimento destes ltimos requisitos A regra de composi o 3 significa que o requisito 3 de Safety deve ser fornecido aos requisitos do viewpoint Alarme e o resultado desta composi o o cumprimento destes ltimos requisitos A especifica o apresentada na Figura 6 5 n o possui a representa o dos pesos entre o aspecto Tempo de Resposta e os viewpoints dos actuadores do Habitante e do Administrador 92 VAgoM EntidadesExternas V Bombeiros 1 Se o sistema central efectuar uma chamada de emerg ncia para os bombeiros eles dirigem se ao local da chamada prestando aux lio V Pol cia 1 Se o sistema central ef
28. An lise da informa o obtida comparando com a especifica o feita textual e TTA IM AA te ae A E thi BAe bi ES a 108 Figura 7 17 An lise da frequ ncia com que o utilizador recorreu ao supervisor 109 Figura 7 18 An lise da confian a dos utilizadores durante a elabora o do caso de estudo RN 109 Figura 7 19 An lise da frequ ncia com que o utilizador se sentiu confuso durante a execug o d caso de ES Ud A A Ae A AAA ea eae 110 Figura 7 20 An lise do esfor o mental necess rio para realizar o caso de estudo 110 XVIII Figura 7 21 An lise da correc o do caso de estudo eee 111 Figura 7 22 An lise da utiliza o da ferramenta ARCADE 112 Figura 7 23 An lise da utilidade da ferramenta VisualAORE 0ococnncccccnoccconncncnnnnnonananonnncnos 113 Figura 7 24 An lise da aprecia o global da LDE ooonoccccnnococonocacooncnononcnononcnonananononanonnnanos 114 Figura I 1 Cria o de um novo project eceescecesscecesececesececesecececeecesececseceecsseeecsseeeenaeees 176 Figura I 2 Cria o do diagrama AORE ceccceecsesseeeseeceseceeeseeeeescecsaeceaeeseeeeeaeecsaeeneenaes 176 Figura I 3 Menu do editor base cui id Au gaia Dai id 177 Figura I 4 Elementos a colocar no sub editor do m dulo de agrega o de concerns 178 XIX XX Indice de Tabelas Tabela 2 1 Rela o entre os concerns OS viewpoints coocooooncccnnncncnnannnnnnnnnnn
29. Brand et al 2001 M Brand A Deursen J Heering H Jong M Jonge T Kuipers P Klint L Moonen P Olivier J Scheerder J Vinju E Visser e J Visser The ASF SDF 123 Meta environment A Component Based Language Development Environment V 2027 2001 pags 365 370 Editora Springer Berlin Heidelberg Janeiro de 2001 Brito 2008 I Brito Aspect Oriented Requirements Analysis Disserta o apresentada para obten o do grau de Doutor em Inform tica pela Universidade Nova de Lisboa Faculdade de Ci ncia e Tecnologia Quinta da Torre Caparica Portugal 2008 Brito e Moreira 2003 I Brito A Moreira Advanced Separation of Concerns for Requirements Engineering em VIII Jornadas de Engenharia de Software e Bases de Dados JISBD Alicante Espanha 2003 Budinsky ef al 2003 F Budinsky S Brodsky e E Merks Eclipse Modeling Framework Editora Pearson Education 2003 Chauvel et al 2007 F Chauvel Z DreyEngineer e F Fleurey Kermeta Language Overview The Triskell Metamodeling Language 31 de Janeiro de 2007 Chitchyan et al 2007 R Chitchyan A Rashid P Rayson R Waters Semantics based Composition for Aspect Oriented Requirements Engineering AOSD 07 Vancouver Canad Mar o de 2007 Clarke e Baniassad 2005 S Clarke e E Baniassad Aspect Oriented Analysis and Design The Theme Approach Editora Addison Wesley 2005 Cook et al 2007 S Cook G Jones S Kent A Wills
30. ConcernTOCAction ConcernToCActionOP 152 ref NFRequirement NFRequirementTOCAction NFReqToCActionOp abstract class ConstraintOperator attr String name ref FRequirement COperatorTOFRequirement ref FRAggregationModule COperatorTOFRModule ref Viewpoint COperatorTOViewpoint abstract class AppliedProvide extends ConstraintAction ref For 1 ForTOAppliedProvide AppliedProvideTOFor abstract class OnBetween extends ConstraintOperator ref Enforce 1 EnforceTOOnBetween OnBetweenTOEn force abstract class DuringWithIn extends ConstraintOperator ref Ensure 1 EnsureTODuringWithIn DuringWithInTOEnsure class Applied extends AppliedProvide class Enforce extends ConstraintAction ref OnBetween 1 OnBetweenTOEnforce EnforceTOOnBetween class Ensure extends ConstraintAction ref DuringWithIn 1 DuringWithInTOEnsure EnsureTODuringWithIn class Exclude extends ConstraintAction ref ConstraintOperator 1 ExcludeToCOperator class Provide extends AppliedProvide class Between extends OnBetween class During extends DuringWithIn class For extends ConstraintOperator ref AppliedProvide AppliedProvideTOFor ForTOAppliedProvide class In extends DuringWithIn class On extends OnBetween class With extends DuringWithIn class Xor extends ConstraintOperator enum Weight Zero 0 ZeroUm 1 ZeroDois 2 ZeroTres 3 ZeroQuatro 4 ZeroCinco 5 ZeroSei
31. Description uma ou mais features Concern zero ou mais features Aspect e zero ou mais features Contribution A feature Concern composta pelas features Name e Id sendo que Name obrigat ria tamb m constitu da por uma ou mais features Non Funcional Requirement Uma feature Non Functional Requirement composta obrigatoriamente pelas features Description e Id A feature Contribution representa uma rela o de contribui o entre dois concerns e composta por uma feature Type que representa o tipo de contribui o Type toma obrigatoriamente um e um s valor entre os valores null null null e null A feature Composition Rules Aggregation Module composta por uma feature obrigat ria Name as features opcionais Id e Description e por uma ou v rias features Composition Rule Esta ltima composta por uma feature Constraint uma feature Outcome Action e opcionalmente uma feature Constraint Operator A feature Constraint composta por uma feature Constraint Action e uma feature Constraint Operator A feature Constraint Action de um e um s tipo de entre as features Applied Enforce Ensure Exclude e Provide A feature Constraint Operator de um dos tipos entre o conjunto formado por Between During In On e Xor A feature Outcome Action Satisfied ou Fulfilled mas n o ambas A feature Weight representa uma rela o de atribui o de pesos entre um concern e um viewpoint e compos
32. Domain specific development with visual studio dsl tools Editora Addison Wesley Professional 1 Edi o 2007 Czarnecki e Helsen 2006 K Czarnecki e S Helsen Feature based survey of model transformation approaches em IBM Systems Journal V 45 N 3 2006 Deusen et al 2000 A Deursen P Klint e J Visser Domain Specific Languages An Annotated Bibliography SIGPLAN Not V 35 p gs 26 36 Amsterd o Holanda Junho de 2000 Dias 2009 A Dias Uma Linguagem Especifica do Dominio para uma abordagem Orientada aos Objectivos baseada em KAOS Disserta o de Mestrado em Engenharia Inform tica Departamento de Inform tica Universidade Nova de Lisboa Faculdade de Ci ncias e Tecnologia Quinta da Torre Caparica Portugal 2009 124 Dinkelaker et al 2010 T Dinkelaker R Mitschke K Fetzer e M Mezini A Dynamic Software Product Line Approach using Aspect Models at Runtime AOSD 10 Rennes e Saint Malo Franga 2010 Engelen 2001 R Engelen ATMOL A Domain Specific Language for Atmospheric Modeling Departamento de Computa o Cient fica Florida State University EUA 2001 EuGENia 2008 EuGENia http www eclipse org gmt epsilon doc articles eugenia gmf tutorial 2008 Faith et al 1997 R Faith L Nyland e J Prins KHEPERA A System for Rapid Implementation of Domain Specific Languages em Proceedings of the Conference on Domain Specific Languages Santa B rbara Calif rnia Outubr
33. Pol SAI SPe SFF SJa SLu SMo SPo SSp STE STIn Spr Tim Concern Seguranca y y Safety y y y y y y y y y y y y y Compatibilidade Y y y y y y y y y y y y y y y y y y y Disponibilidade y y y y y y y y y y y y y y y y y y y y Usabilidade y y TE JIN IN VINIS O O y y y esposta Legenda AJa Actuador de Janelas APe Actuador de Persianas APo Actuador de Portas Ad Administrador Ala Alarme AC Ar Condicionado Bo Bombeiros Hab Habitante Int Interruptor Ope Operadora Pol Pol cia SAla Sensor de Alarme SPe Sensor de Persianas SFF Sensor Fumo e Fogo SJa Sensor de Janelas SLu Sensor de Luz SMo Sensor de Movimento SPo Sensor de Portas SSp Sensor Sprinkler STE Sensor de Temperatura Externa 83 STIn Sensor de Tempreratura Interna Spr Sprinkler Tim Telem vel A Tabela 6 2 possui as rela es de contribui o entre os concerns Pode observar se a titulo de exemplo que existe um conflito entre os concerns Seguran a e Tempo de Resposta uma vez que contribuem negativamente um para o outro Tabela 6 2 Contribui es entre os concerns Concern iene E E Tempo de Gone Seguran a Safety Compatibilidade Disponibilidade Usabilidade Resposta Seguran a i i Safety E J Compatibilidade T t Disponibilidade i E i Usabilidade T Tempo de E Resposta A Tabel
34. Time NFRequirement 1 2 Constraint Action enforce Constraint Constraint Operator between Requirement Viewpoint Gizmo FRequirement 1 include children Outcome Action Satisfied Constraint Operator xor Requirement Viewpoint PayingToll FRequirement 1 2 165 3 Rule Aspect Response Time NFRequirement 1 3 Constraint Action enforce Constraint Constraint Operator between Requirement Viewpoint Paying Toll FRequirement 1 Requirement Viewpoint Vehicle FRequirement 3 Outcome Action Satisfied Requirement Viewpoint PayingToll FRequirement 4 include children 4 Rule Aspect Response Time NFRequirement 1 4 Constraint Action enforce Constraint Constraint Operator between Requirement Viewpoint Paying Toll FRequirement 2 Requirement Viewpoint Vehicle FRequirement 4 Outcome Action Satisfied Requirement Viewpointy Unhautorized FRequirement 1 5 Rule Aspect Response Time NFRequirement 1 5 Constraint Action enforce Constraint Constraint Operator between Requirement Viewpoint Paying Toll FRequirement 2 Requirement Viewpoint Vehicle FRequirement 4 Outcome Action Satisfied Requirement Viewpoint Paying Tool FRequirement 3 166 6 Rule Aspect Response Time NFRequirement 1 6 Constraint Action enforce Constraint Constraint Operator on Requirement Viewpoint ATM FRequirement 1 include children Outcome Action fullfiled 167 Help General e To view edit the p
35. UML Editora Addison Wesley Boston EUA 1998 Weiss e Lay 1999 D Weiss e C Lay Software ProductLine Engineering Editora Addison Wesley 1999 Whittle e Jayaraman 2007 J Whittle e P Jayaraman MATA A Tool for Aspect Oriented Modeling based on Graph Transformation Workshop em Aspect Oriented Modeling MODELS Nashville TN EUA 2007 YU 1995 E YU Modelling Strategic Relationships for Business Process Reengineering Tese Doutorado Departamento de Ci ncias Computacionais Universidade de Toronto Canad 1995 129 130 Anexo A Tabelas dos Construtores da Linguagem de Composi o A Tabela A 1 cont m as Constraint Actions da linguagem de composi o Nesta tabela pode ler se uma descri o de cada tipo de Constraint Action e os aspectos aos quais cada tipo se pode aplicar Tabela A 1 Descri o das Constraint actions Constraint Action Aspectos a que se pode aplicar Descri o enforce Usado para impor uma condi o adicional sobre um conjunto de Tempo de Resposta requisitos de um viewpoint ensure Usado para afirmar que uma condi o que deve existir para um conjunto Disponibilidade de requisitos de um viewpoint j existe compatibilidade Correcc o provide Usado para especificar caracter sticas adicionais a serem incorporadas Seguran a Acesso num conjunto de requisitos de um viewpoint M ltiplo applied Usado para descrever as regras que se aplicam a um conjunt
36. ZeroQuatro 4 ZeroCinco 5 ZeroSeis Zerosete ZeroOito ZeroNove Um 10 r ll to 00 JO r r r egmf link label weight source inW target outW style dash color 100 100 100 width 2 target decoration filledclosedarrow tool name Weigh tool description Create a new Weight link class Weighs attr Weight weight 0 ref Viewpoint 1 outW ref Concern 1 inW gmf link label name source inH target outH tool small bundle Aore edit tool small path icons full obj16 HasImpact gif tool large bundle Aore edit tool large path icons full obj16 HasImpact gif width 2 style dot target decoration filledclosedarrow color 0 0 0 tool name Has Impact In tool description Create a new link from a Concern node to a Viewpoint node class HasImpact attr String name ref Viewpoint 1 outH ref Concern 1 inH 139 140 Anexo C Modelo Emfatic do sub editor do elemento ConcernsAggregationModule gmf foo bar namespace uri AORE prefix AORE package aore class AORE val Weighs hasWeight val HasImpact hasImpact val Viewpoint hasViewpoint val Concern hasRNFConcern val CompositionRule hasCompositeRule val ConcernsAggregationModule hasConcernsModule val ViewpointsModule hasViewpointsModule val CompositionRulesModule hasCompositionRulesModule class ViewpointsModule attr String name val
37. a fase da Composi o em que s o definidas detalhadamente as regras de composi o que relacionam os requisitos dos stakeholders e dos assuntos Estas regras operam ao n vel do requisito individualmente e n o do m dulo que os envolve De seguida d se a fase do Tratamento de Conflitos que engloba a constru o de uma tabela de contribui es entre os assuntos a atribui o de pesos aos aspectos que entram em conflito e finalmente a resolu o dos conflitos Nesta fase poss vel haver uma revis o da especifica o dos requisitos A tabela de contribui es cont m apenas os assuntos e as contribui es entre eles em que atrav s do s mbolo se exprime que existe uma contribui o positiva para os outros aspectos e atrav s do s mbolo se representa uma contribui o negativa para com eles A atribui o de pesos feita atrav s de um n mero real no intervalo 0 1 e representa a prioridade do aspecto em rela o aos requisitos do stakeholder de notar a recente exist ncia de uma formula o matem tica Sardinha et al 2010 capaz de resolver a escalabilidade e a tend ncia a erro presentes na resolu o de conflitos mostrada pelos m todos existentes da Engenharia de Requisitos Orientada a Aspectos Esta formula o matem tica pode ser implementada atrav s de uma t cnica baseadas em pesquisa denominada Algoritmo Gen tico Para concluir o processo s o especificadas as dimens es do aspect
38. activa a abertura de janelas em caso de fumo fogo 4 2 Se pretende configurar o sistema de climatiza o 4 2 1 Activa a op o de regula o pela temperatura exterior e insere as divis es da casa em que deve ser ligado ou define a temperatura m nima e m xima e as divis es pretendidas 5 Se o habitante escolhe a op o de ajustar as luzes 5 2 Se pretende configurar o sistema de ilumina o 5 2 1 Insere a data e hora em que ligam e desligam as luzes assim como as divis es da casa onde se deseja esse efeito 5 3 Se pretende configurar o sistema de simula o de presen a 5 3 1 Insere as divis es da casa insere data e hora de in cio e fim da simula o a dura o e frequ ncia de cada simula o e selecciona a op o de activar servi o de simula o 6 Se o habitante escolhe a op o de ajustar as portas 6 2 Se pretende configurar o sistema de fumo e fogo 6 2 1 Insere as divis es da casa em que deve ser ligado e activa desactiva a op o de portas anti fogo em caso de fumo fogo 6 3 Se pretende configurar o sistema de seguran a 6 3 1 Activa desactiva sistema de alarme para detec o de entrada de intrusos na casa atrav s das portas 7 Se o habitante escolhe a op o de ajustar alarme 155 7 2 Se pretende configurar o sistema de fumo e fogo 7 2 1 Activar desactivar sistema de alarme em caso de fumo e ou fogo 7 2 2 Activar desactivar sistema de chamadas de emerg ncia para bombeiros 7 2 3 Inse
39. dentro de um elemento chamado m dulo de agrega o Nesta disserta o foram propostos tr s m dulos de agrega o m dulo de agrega o de viewpoints m dulo de agrega o de concerns e m dulo de agrega o de regras de composi o Cada m dulo de agrega o referido cont m um sub editor associado O conceito de m dulo de agrega o foi tamb m utilizado para agrupar requisitos funcionais dentro de um viewpoint que participem numa mesma regra de composi o A utiliza o de um m dulo de agrega o de requisitos funcionais diminui o n mero de rela es existentes no modelo aumentando a sua escalabilidade Os m dulos de agrega o de forma geral fornecem uma maior organiza o aos modelos pois permitem a sua minimiza o ocultando a informa o que agregam Esta caracter stica facilita a leitura dos modelos AORE A introdu o de sub editores nos m dulos de agrega o de viewpoints concerns e regras de composi o facilita a edi o de modelos AORE pois oferece a possibilidade de editar os elementos num editor em separado Os sub editores permitem tamb m a visualiza o dos elementos de cada m dulo separadamente o que facilita a sua leitura A linguagem proposta nesta disserta o oferece uma nota o gr fica t cnica AORE atrav s de uma linguagem visual e de um editor que suporta a linguagem Actualmente a metodologia AORE suportada somente pela ferramenta ARCaDe que como foi referido 119
40. dentro do programa e escolhido onde que o aspecto deve ser associado Estes s o os chamados join points Dado que os aspectos s o tratados em separado ent o numa fase de pr compila o eles s o ligados a estes pontos de liga o Clarke e Baniassad 2005 Este facto favorece a programa o pois torna a n o invasiva Desta forma para adicionar ou remover funcionalidades a um sistema n o necess rio remodelar nem analisar o c digo todo mas apenas o m dulo que se deseja alterar ou proceder realiza o de um novo m dulo que se queira adicionar As t cnicas de DSOA englobam as actividades de Decomposi o Representa o e Composi o Na Decomposi o decomp e se o problema e identificam se os aspectos Na Representa o especifica se e implementa se cada aspecto num m dulo separado Por fim na Composi o comp e se ou integram se os aspectos com os restantes m dulos do sistema O DSOA tem as seguintes vantagens Clarke e Baniassad 2005 e Aumento da capacidade de pensar sobre um dominio de um problema e respectiva solu o e Redu o do tamanho de c digo da aplica o dos custos de desenvolvimento e do tempo de manuten o e Aumento da reutiliza o de c digo e Reutiliza o dos requisitos arquitectura e n vel de desenho e Aumento da capacidade para Linhas de Produto de Engenharias e Disponibiliza o de uma adapta o a aplica es sens veis ao contexto e Aumento dos
41. e Atrav s de uma gram tica que implemente a sem ntica pretendida e um parser capaz de efectuar a tradu o e Utilizando uma linguagem base e definir as suas expens es como no caso do TCL TK ou Perl e Utilizando XML atrav s da utiliza o de tags que representam os elementos do dom nio 3 6 Avalia o de uma LDE A avalia o de uma LDE consiste num processo composto por fases Reisner 1981 como ilustra a Figura 3 4 O processo iniciado na fase Recrutamento de Assuntos Nesta fase os assuntos s o agrupados em categorias claras e s o constru dos grupos de dez utilizadores A fase Prepara o das Tarefas consiste na organiza o da avalia o atrav s da elabora o de tarefas e testes capazes de obter os resultados esperados A tarefa Sess o Piloto como que uma simula o de um exame obtido o material de treino confirmada a organiza o dos processos de avalia o e s o controladas as restri es de tempo e outras vari veis externas tais como equipamento apropriado para que n o haja interfer ncias com os resultados e para que as condi es simulem um ambiente real A Sess o de Treino a primeira fase da avalia o propriamente dita Nesta fase dada uma sess o de forma o na qual se apresenta a LDE Testes de compreens o e revis o podem ser introduzidos nesta fase e algum material slides ou exerc cios deve ser realizado e distribu do de forma a auxiliar os utilizadores Segue se a fa
42. estudo N Pessoas O N 0009 1 2 3 4 5 Classifica o Figura 7 13 An lise do esfor o f sico necess rio realiza o do caso de estudo Os utilizadores consideraram que f cil desempenhar o caso de estudo Quest o C7 O resultado reflecte o que esperava The outcome reflects what you were expecting Esta quest o pretende obter a capacidade da LDE em permitir que os peritos do dom nio realizem tarefas espec ficas com precis o e perfei o avaliando a sua efic cia O valor 1 significa que o resultado n o reflecte o que o utilizador esperava e o valor 5 significa que o resultado corresponde exactamente ao que o utilizador esperava 105 C7 O resultado reflecte o que esperava m e ONFDWO N Pessoas Classifica o Figura 7 14 An lise dos resultados esperados Atrav s da observa o da Figura 7 14 pode se constatar que na maioria das vezes o resultado obtido no teste foi o esperado Quest o C8 Quantas vezes se sentiram incapaz de exprimir o que pretendia How often did you feel unable to express what you intended Na quest o seguinte pretende se avaliar se a LDE compacta e restrita ao exprimir as inten es do utilizador O valor 1 significa que o utilizador nunca se sentiu incapaz de exprimir o que desejava e o valor 5 significa que o utilizador se sentiu sempre incapaz de exprimir o que desejava C8 Quantas vezes se sentiu incapaz de exprimir o que p
43. facilidades oferecidas pelo plug in VisualAORE Os pontos fortes identificados s o os seguintes e O plug in possui uma forte sintaxe visual muito agrad vel e bastante directa e O plug in oferece facilidade de identifica o dos m dulos e dos restantes elementos atrav s das cores e O plug in oferece a possibilidade de colapsar as entidades dos modelos e O plug in oferece o conceito de sub editores onde se pode definir cada objecto com mais pormenor e evitar a ocorr ncia de alguns erros e O plug in oferece o encapsulamento de conceitos o que permite uma melhor organiza o e gest o dos conceitos e O plug in oferece a possibilidade de visualizar as liga es entre aspectos e viewpoints o que facilita a valida o da pr pria composi o das regras e A plataforma do Eclipse boa permitindo a cria o de plug ins com facilidade e O plug in oferece facilidade de uso Quest o C23 Quais s o as inova es oferecidas pelo plug in VisualAORE What are the innovations brought by the VisualAORE plug in Os utilizadores consideram que o plug in VisualAORE oferece as seguintes inova es 115 e Trata se de uma linguagem visual para efectuar especifica o de modelos AORE e Facilidade de especifica o e Facilidade de inserir e eliminar elementos e Permite a agrega o de entidades Quest o C24 O que sugere que pode melhorar o plug in VisualAORE What do you suggest that can improve the Vi
44. fase deve se reiniciar o Eclipse para que os plug ins sejam carregados O ficheiro Visual AORE zip deve conter os seguintes ficheiros e Aore jar e AoreC jar e AoreCR jar e AoreV jar e AoreEdit jar e AoreEditor jar e AoreDiagram jar e FiguresAore jar Neste momento est o reunidas as condig es necess rias para utilizar a ferramenta VisualAORE Assim para abrir um editor VisualAORE o utilizador deve iniciar o Eclipse dirigir se ao tab File e escolher New gt Project gt General gt Project como ilustra a Figura J 1 Em seguida deve clicar em Next fornecer um nome ao projecto e clicar em Finish Seguidamente deve clicar com o bot o direito do rato no projecto criado e escolher New gt Example gt AoreDiagram tal como ilustra a Figura J 2 Deve posteriormente fornecer um nome ao ficheiro e clicar em Finish Encontra se neste momento pronto para dar iniciar o processo de modela o na ferramenta 175 Select a wizard gt Create a new project resource g Wizards type filter text 2S Java Project a Java Project from Existing Ant Buildfile 22 Plug in Project 4 2 General ES Project gt ATL gt amp cvs gt gt Eclipse Modeling Framework gt gt Ecore Tools gt amp Graphical Modeling Framework 5 Java gt JET Transformations Os MAD dalin RAD SUA Tunas n non ee m o a Figura I 1 Cria o de um novo projecto Select a wizard gt
45. ferramenta VisualAORE Na sec o 5 1 introduzida a an lise de dom nio realizada atrav s de um diagrama de features Nesta fase feita uma an lise dos conceitos que a linguagem abrange Na sec o 5 2 abordada a fase de desenho da ferramenta VisualAORE onde introduzido o metamodelo proposto para a linguagem A sec o 5 3 fornece os detalhes principais da implementa o da ferramenta incidindo na explica o do procedimento da cria o de sub editores A ferramenta apresentada na sec o 5 4 atrav s da modela o do caso de estudo Via Verde 75 76 6 Caso de Estudo O caso de estudo utilizado para validar a ferramenta VisualAORE a modela o de um sistema para uma Smart Home Este caso de estudo foi retirado do projecto Europeu AMPLE e encontra se descrito em seguida Na Europa habitual encontrarem se casas com uma vasta gama de dispositivos el ctricos e electr nicos Exemplos destes s o luzes term statos interruptores el ctricos sensores de fogo e de quebra de vidros entre outros Os sensores s o dispositivos que medem as propriedades f sicas do ambiente e as tornam dispon veis para o sistema Smart Home Os actuadores activam os dispositivos cujos estados podem ser geridos e alterados Zz O objectivo dos projectos na rea das casas inteligentes interligar os dispositivos e disponibilizar aos seus habitantes a sua gest o e controlar atrav s de v rias interfaces Uma solu o m
46. fico visual diagram tica 1 2 Objectivos O principal objectivo desta disserta o consiste em elaborar uma LDE para a metodologia AORE Para tal necess rio especificar um metamodelo para esta abordagem A especifica o da LDE com o aux lio de uma ferramenta gerativa neste caso o Eclipse d origem a um editor de suporte linguagem que permite elaborar modelos visuais AORE de acordo com o metamodelo especificado tornando a abordagem mais f cil de utilizar por engenheiros de software e mais f cil de se integrar em ambientes de desenvolvimento orientado a modelos A abordagem AORE ficar mais precisa e com possibilidade de oferecer uma nota o gr fica atrav s de uma ferramenta que suporte a LDE Isto facilita o processo de modela o dos requisitos ao Engenheiros de Software comum 1 3 Organiza o do documento Os restantes Cap tulos desta disserta o est o organizados como descrito em seguida e Cap tulo 2 Neste Cap tulo introduzido o conceito Desenvolvimento de Software Orientado a Aspectos com destaque na abordagem Engenharia de Requisitos Orientada a Aspectos aplicada esta abordagem ao caso de estudo Smart Home e s o posteriormente introduzidas outras abordagens da EROA menos significativas para esta disserta o e Cap tulo 3 Neste Cap tulo s o abordados os temas Linguagem de Dom nio Espec fico e Desenvolvimento Orientado a Modelos S o posteriormente apresentadas algumas vantagens
47. figures ForFigure label name label icon false label placement external tool description Create a new For Constraint Operator node class For extends ConstraintOperator ref AppliedProvide AppliedProvideTOFor ForTOAppliedProvide gmf node figure figures InFigure label name label icon false label placement external tool description Create a new In Constraint Operator node class In extends DuringWithIn gmf node figure figures OnFigure label name label icon false label placement external tool description Create a new On Constraint Operator node class On extends OnBetween 148 enum Weight Zero 0 ZeroUm 1 ZeroDois 2 ZeroTres 3 ZeroQuatro 4 ZeroCinco 5 ZeroSeis 6 ZeroSete 7 ZeroOito 8 ZeroNove 9 Um 10 class Weighs attr Weight weight 0 ref Viewpoint 1 outW ref Concern 1 inW class HasImpact attr String name ref Viewpoint 1 outH ref Concern 1 inH 149 150 Anexo E Modelo Emfatic do sub editor do elemento ViewpointsAggregationModule gmf foo bar namespace uri AORE prefix AORE package aore class AORE val Weighs hasWeight val HasImpact hasImpact val Viewpoint hasViewpoint val Concern hasRNFConcern val CompositionRule hasCompositeRule val ConcernsModule hasConcernsModule val ViewpointsAggregationModule hasViewpointsModule val CompositionRul
48. frequ ncia com que o utilizador recorreu ao supervisor A Figura 7 17 mostra que a maioria dos utilizadores n o necessitou de recorrer ajuda do supervisor No entanto uma quantidade um pouco significativa necessitou de efectuar um pouco mais de perguntas As quest es seguintes pretendem testar a facilidade em aplicar a ferramenta ao caso de estudo fornecido A quest o C13 tem o objectivo de obter o grau de confian a na ferramenta aquando da especifica o de um caso de estudo O valor 1 significa que os utilizadores n o se sentiram confiantes e o valor 5 significa que os utilizadores se sentiram muito confiantes Quest o C13 Qual o grau de confian a que sentiu durante a execu o do caso de estudoen rio How confident did you feel during the case study execution Esta quest o possui a finalidade de obter o grau de confian a dos utilizadores aquando da utiliza o do plug in C13 Qualo grau de confian a que sentiu durante a execu o do caso de estudo 8 N Pessoas O N A QO Classifica o Figura 7 18 An lise da confian a dos utilizadores durante a elabora o do caso de estudo De acordo com a Figura 7 18 a maioria dos utilizadores sentiu se confiante aquando da execu o do caso de estudo Este resultado permite concluir que a ferramenta oferece um n vel bom de confian a produ o de modelos AORE 109 Quest o C14 Quantas vezes se sentiu incapaz ou confuso durante
49. gizmo i not present oynali C iy 4 The amount being Sebted is displayed it the pame y 4 the de The amount being debited depends on the class of the bebvcte as E nu i EE E ERAGOM L Medl TAgreen fight ic tumed on d the gizmo is vald TV Entry Toll A o l Uo Figura 5 19 Modelo AORE do caso de estudo Via Verde 13 O m dulo de agrega o de concerns possui a especifica o dos concerns Response Time Compatibility e Correctness Dentro deste poss vel observar as rela es de contribui o existentes entre os concerns Uma rela o de contribui o existe caso haja uma rela o de contribui o m tua de valor positivo ou negativo ou apenas de um dos lados Para escolher o tipo de contribui o poss vel necess rio recorrer se ao tab Property Views do editor e alterar o valor da vari vel type do link Contribution para o valor desejado dentro daqueles que lhe s o oferecidos pelo tipo enumerado Os m dulos de agrega o de viewpoints s o denominados Vehicles Toll Gate e Viewpoints Dentro do m dulo Vehicles est o presentes os viewpoints Vehicle e Unhauthorized Vehicle O viewpoint Vehicle possui no seu segundo compartimento o m dulo de agrega o de requisitos funcionais Modl pois a regra de composi o ResponseTime Regl 1 refere se a dois requisitos deste viewpoint O m dulo de agrega o de viewpoints Toll Gate possui os viewpoints Entry Tol Exit Toll Single Tol
50. id atributos onde se pode escolher um valor de um tipo enumerado entre outros Com vista a efectuar liga es entre os elementos deve se seleccionar a liga o desejada no menu em seguida deve se clicar no elemento de origem e por fim no elemento de destino A zona dos elementos onde se deve clicar no cabe alho ou ao longo do rebordo 178 179
51. linguagem desenvolvida neste trabalho Foram demonstrados os benef cios desta linguagem mostrando como a GAL atinge o n vel de abstrac o da especifica o de um driver e identificando algumas an lises que podem ser desempenhadas na especifica o GAL pois espec fica ao dom nio Uma contribui o adicional deste trabalho a valida o da framework atrav s da sua aplica o a esta fam lia de programas para fornecer uma implementa o da linguagem GAL 44 Dado que a implementa o baseada em avalia o parcial isso n o s forneceria um interpretador completo para prototipagem de dispositivos drivers mas tamb m gera automaticamente dispositivos drivers com sucesso 4 3 6 ATMOL Este trabalho Engelen 2001 descreve o desenho e a implementa o de uma LDE para formular e implementar modelos atmosf ricos Com o objectivo de garantir a facilidade de uso uma nota o concisa e a adop o de nota es convencionais comuns a linguagem foi desenvolvida em colabora o com meteorologistas do Instituto Meteorol gico de Royal Netherlands A linguagem ATMOL foi traduzida e compilada em c digos num ricos eficientes com CTADEL Esta ferramenta de s ntese de c digo capaz de gerar c digo de especifica es de alto n vel de modelos baseados em PDE Partial Differential Equations As vantagens da s ntese de c digo s o consideradas as seguintes e Aumento da Produtividade e Manuten o melhorada
52. no seu uso e desenvolvimento Uma das reas mais afectadas a rea financeira Os custos associados ao desenvolvimento de uma LDE s o geralmente elevados pois o desenho a implementa o a manuten o e a instru o dos utilizadores das LDEs geralmente ultrapassam os custos inicialmente previstos Da que apenas 16 dos trabalhos planeados consigam chegar ao fim cumprindo o calend rio proposto e com o or amento previsto 31 dos projectos s o cancelados e 53 possuem custos maiores que os planeados Deusen et al 2000 A reduzida informa o dispon vel acerca de como e quando desenvolver uma LDE tamb m uma desvantagem deste tipo de linguagem e v rias s o as quest es que nessa rea continuam por obter resposta Deusen et al 2000 Uma LDE acaba por ser uma linguagem de disponibilidade limitada dado que se foca apenas no dom nio pretendido dom nio este que por vezes se torna dif cil de definir 23 As linguagens LDEs possuem ainda dificuldade em encontrar um equil brio com as GPLs pois s o linguagens bastante diferentes geralmente n o Turing Complete Assim pode dizer se que em alguns casos existe uma potencial perda de efici ncia quando comparando software feito com LDEs com software feito com GPLs Deusen et al 2000 3 2 1 LDE versus GPL Quando comparamos uma Linguagem de Dom nio Espec fico com uma Linguagem de Prop sito Geral v rias s o os aspectos que se podem discutir Uma LD
53. o aspecto o diagrama e Atrav s da aplica o da regra R1 obt m se a composi o e A segunda composi o tem como base o diagrama d que atrav s da regra R2 e R1 vai dar origem composi o c 18 c Application of rules R1 and R2 b MATA rule R2 Figura 2 5 Modelo MATA Whittle e Jayaraman 2007 2 4 4 Abordagens de use cases com Aspectos Por use cases Jacobson 1987 entende se a especifica o de requisitos de um sistema atrav s de modelos usando actores rela es entre eles e rela es entre os pr prios use cases Tal como nas abordagens referidas anteriormente tamb m eles podem atravessar outros use cases e criar casos de conflitos Desta forma pode ser inclu do novamente o conceito de aspecto com vista a resolver os casos de atravessamento Em Jacobson e NG 2004 proposta uma rela o entre aspectos e use cases em que um use case representa um aspecto e utilizado um mecanismo de separa o e composi o de assuntos Nesta abordagem os aspectos s o separados em peers e extens es Os peers s o diferentes entre si pelo que nenhum deles mais importante que um outro nem necessita dele para existir Por outro lado as extens es s o servi os ou caracter sticas adicionais que s o definidas no topo de uma base Com a finalidade de obter os assuntos separados deve se modelar e estruturar os assuntos recorrendo se utiliza o de use cases durante a fase de requisitos e
54. o de Objectivos Modela o de Objectos Modela o de Agentes e Operacionaliza o e compreende os n veis meta n vel n vel de dom nio e n vel de inst ncia O KAOS possui tamb m um m todo para defini o de modelos de requisitos baseado na mesma linguagem Para tal serve se dos conceitos Agente Objecto Conflito Condi o Fronteira Obst culo Propriedades do Dom nio Ac o Restri o Opera o e Objectivo Os modelos existentes s o o modelo de Objectivos Objectos Responsabilidades e Opera es Presentemente existem algumas ferramentas tais como a Dia e a Objectiver que s o capazes de modelar diagramas KAOS No entanto estas ferramentas n o s o suficientemente escal veis pois os modelos constru dos atrav s deste m todo tendem a ser complexos devido ao aumento do n mero de elementos que o constitui N o existe ainda nenhuma ferramenta capaz de verificar a consist ncia dos modelos relativamente sua sintaxe Em alguns casos essas ferramentas permitem erros de modela o permitindo a constru o de modelos imprecisos Neste trabalho procurou se uma solu o para os problemas acima focados Assim foi objectivo do mesmo a defini o de um novo metamodelo para o KAOS adicionando alguns conceitos De destaque a defini o do conceito Compartimento para lidar com o problema da escalabilidade Ap s a defini o do metamodelo melhorado obteve se tamb m uma LDE e um editor onde poss vel especi
55. o habitante e o sistema central 1 Compatib CR2 2 Se o utilizador pretende configurar o sistema atrav s do telem vel 2 1 Recebe chamada do habitante 2 2 Efectua comunica o entre o habitante e o sistema central 2 2 Efectua comunica o entre o habitante e o sistema central 2 Compatib CR3 1 Em caso de emerg ncia 1 1 Recebe informa o do tipo de emerg ncia 1 3 Faz chamada de emerg ncia 3 TempoResp CR1 1 3 Faz chamada de emerg ncia 2 2 Efectua comunica o entre o habitante e o sistema central V Telem vel 1 Se o utilizador pretender configurar o sistema por telem vel efectua uma liga o ao sistema central Figura 6 1 M dulo de agrega o de entidades externas 87 CAggM ConcernsModule A Compatibilidade A Seguran a Sis EEVEE EEEE COI odiana MEL REDEE SEIS ares 1 O sistema necessita de ter seguran a de preven o de crimes na identifica o dos habitantes e do administrador A as aa ig IC C4ntribution nqu 2 O sistema necessita de ter seguran a de preven o de incidentes ao dar as permiss es correctas a cada habitante e ao administrador A lavas ia 3 O utilizador administrador ou habitante acede ao sistema depois de fazer login no sistema e introduz a senha Contributions 3 1 Se o utilizador inserir o login e a senha correctamente t m acesso ao sistema 3 2 Se o utilizador inserir o login e ou a senha incorrectamente t m mais duas possibilidades de
56. or not 1 1 1 In case of unsuccessful activation or reactivation the ATM is notified of the reasons for the failure Vehicle 1 The vehicle enters the system when it is within ten meters of the toll gate 2 The vehicle enters the toll gate 3 The vehicle leaves the toll gate 4 The vehicle leaves the system when it is twenty meters away from the toll gate Unauthorised Vehicle 1 The vehicle number plate will be photographed Gizmo 1 The gizmo identifier is read by the system 1 1 The gizmo identifier is validated by the system 1 2 The gizmo is checked by the system for being active or not 162 Tool Gate Paying Toll 1 A green light is turned on if the gizmo is valid 2 A yellow light is turned on if the gizmo is not present or invalid 3 An alarm is sounded if the gizmo is not present or invalid 4 The amount being debited is displayed if the gizmo is valid 4 1 The amount being debited depends on the class of the vehicle Single Toll 1 The amount being displayed is fixed Exit Toll 1 A yellow light is shown if the vehicle did not enter using a green lane 2 The amount being debited depends upon the entry point Entry Toll 1 No signals are shown on passing an entry point Concerns Correctness 1 The system must ensure correctness of the data 1 1 calculated within the system 1 2 exchanged with the environment Aspects Compatibility 1 The system must be compatible with systems used to 1 1 act
57. paradigma de modela o s o Pastas FCOs Modelos tomos Conjuntos Refer ncias e Rela es Regras Restri es e Aspectos As linguagens de modela o s o compostas por inst ncias destes conceitos 2 O metamodelo constru do no pr prio ambiente da ferramenta baseado em UML As defini es sint cticas s o modeladas por diagramas de classes e a sem ntica est tica definida com restri es recorrendo ao uso de OCL O metamodelo usado para gerar automaticamente o ambiente de dom nio espec fico desejado Este novo ambiente ser utilizado para construir modelos e obter as aplica es desejadas pelo processo model interpretation O GME possui uma base de dados onde guarda os modelos sendo que quando um modelo criado guardado e visto como um novo tipo ou classe que pode posteriormente ser instanciado tantas vezes quantas as que o utilizador desejar Este pacote de ferramentas possui uma estrutura modular baseada numa arquitectura de componentes A componente principal a Core que implementa duas outras componentes fundamentais Meta e MGA A Meta define os paradigmas de modela o e a MGA implementa os conceitos para o paradigma dado 30 3 7 2 DSL Tools O pacote de ferramentas Microsoft DSL Tools Cook et al 2007 uma solu o que permite definir LDEs gr ficas e geradores de c digo Trata se de um workbenck que faz parte do Visual Studio SDK 2005 e que permite uma defini o diagr
58. que se englobam nesta sec o herdam o atributo Name Enforce Utilizado para impor uma condi o adicional sobre um conjunto de requisitos de um viewpoint Ensure Usado para afirmar que uma condi o que deve existir para um conjunto de requisitos de um viewpoint j existe Constraint Action Exclude Utilizado para excluir alguns viewpoints ou requisitos funcionais Provide Utilizado para especificar caracteristicas adicionais a serem incorporadas num conjunto de requisitos de um viewpoint On Descreve 0 ponto no tempo depois de um conjunto de requisitos funcionais ter sido satisfeito Todos os elementos que se englobam nesta sec o herdam o atributo Name Between Descreve o intervalo de tempo compreendido entre a satisfa o de dois requisitos funcionais O intervalo come a quando o primeiro requisito satisfeito e termina quando o segundo est a come ar a ser satisfeito For Descreve que caracter sticas adicionais v o complementar os requisitos do viewpoint During Descreve o intervalo de tempo em que um conjunto de requisitos est a ser satisfeito Constraint Operator With Descreve que uma condi o vai ser suportada por dois conjuntos de requisitos um em rela o ao outro In Descreve que uma condi o vai ser assegurada por um conjunto de requisitos que foram satisfeitos Xor Ou Exclusivo quando cada requisito satisfeito
59. quest o pretende se saber o per odo de tempo que cada utilizador que j utilizou um ambiente de desenvolvimento de LDEs esteve em contacto com o mesmo 96 Tabela 7 1 Per odo de tempo de utiliza o de um ambiente de desenvolvimento de LDEs Per odo de Tempo N Pessoas semestres 2 Quest o A1 2 Gostou de utilizar Have you enjoyed it A1 2 Gostou de utilizar N Pessoas O N 009 Classifica o Figura 7 2 An lise do gosto dos utilizadores pela rea de LDEs Do conjunto de utilizadores peritos na rea de LDEs not vel um elevado gosto pela mesma Quest o A1 3 Em que circunst ncias utilizou What for Todos os utilizadores tiveram o seu primeiro contacto com a rea de LDEs na cadeira de Linguagens e Dom nios Espec ficos leccionada na Faculdade de Ci ncias e Tecnologia da Universidade Nova de Lisboa onde foi realizada uma LDE textual capaz de oferecer um comportamento ao robot Lego NXT Ap s esta experi ncia 4 utilizadores trabalharam na rea ao longo da sua disserta o de mestrado Existem ainda 2 pessoas que trabalharam nessa rea ap s concluir a disserta o de mestrado feita na rea Existe uma pessoa que n o efectuou a disserta o na rea de LDEs mas trabalhou em projectos da rea posteriormente De forma geral os utilizadores afirmam que utilizam ambientes de desenvolvimento de LDEs para desenhar especificar e implementar linguagens visuais ou textuais e ainda
60. textual and manually Yes No Don t Know C12 How often did you perform questions to the supervisor Never 1 2 3 4 5 Always C13 How confident did you feel during case study execution Not Confident 1 2 3 4 5 Very Confident C14 How often did you find trapped or confused during the case study Never 1 2 3 4 5 Always C15 How mentally demanding was the case study Very Difficult 1 2 3 4 5 Very Easy C16 What did you feel more difficult to reason perform C17 How do you feel about the correctness of the performed case study Not Correct 1 2 3 4 5 Very Correct C18 Have you ever used the Arcade tool If your answer is No please go to question C19 Yes No Don t Know 171 C18 1 How do you rate de VisualAore plug in comparing with the Arcade tool Very Worse 1 2 3 4 5 Very Better C18 2 The VisualAore plug in contains more information than the one that is provided by the Arcade Yes No Don t Know C18 3 The VisualAore tool contains less information than the one provided by the Arcade Yes No Don t Know C18 4 Comparing VisualAore with Arcade what s the tool you think that offers a faster and better understanding of the models C18 5 Do you feel the VisualAore tool is a value added compared to Arcade Yes No Don t Know C18 6 Why C19 Do you consider the tool helpful Not Helpful 1 2 3 q 5 Very Helpful C20 What is your overall appreciation of the VisualAore DSL Very Bad 1 2 3
61. uma linguagem tipificada e din mica que fornece caracter sticas expressivas de meta programa o Os construtores da programa o orientada a aspectos desenvolvidos desta forma facilitam a instancia o din mica dos aspectos e o desenvolvimento com estrat gias de dom nio expressivo JPPAL Sousa e Sobral 2010 uma linguagem para programa o paralela implementada semelhan a de uma biblioteca de aspectos reutiliz veis Trata se de uma linguagem implementada utilizando AspectJ que fornece uma forma simples de exprimir paraleliza es atrav s de anota es Java A abordagem Linhas de Produto de Software Din mico utilizando Modelos Aspectuais em Tempo de Execu o Dinkelaker et al 2010 utiliza modelos de features para descrever a variabilidade da DSLP e uma linguagem de dom nio espec fico para implementar de forma declarativa as varia es e as suas restri es uma abordagem que combina v rios conceitos da programa o orientada a aspectos tais como aspectos din micos modelos de aspectos em tempo de execu o e detec o e resolu o de interac es aspectuais 4 3 Outras LDEs 4 3 1 ALPH Aplica es na rea da sa de pervasiva utilizam as caracter sticas da computa o ub qua para obter uma tecnologia avan ada neste sector Tal como v rias outras ind strias a sa de tem reconhecido os ganhos obtidos pela utiliza o das tecnologias Para desenvolver aplica es nesta rea v rias di
62. voltar a inserir a senha correcta A Disponibilidade Es 3 2 1 Se o utilizador n o inserir o login e ou a senha correctamente em nenhuma das tentativas efectuadas pode pedir assist ncia remota para se identificar no sistema Contribution null 1 O sistema deve garantir a disponibilidade dos sensores 2 O sistema deve garantir a disponibilidade dos dispositivos 3 O sistema deve garantir a disponibilidade dos actuadores A Tempo de resposta 4 O sistema deve garantir a disponibilidade do sistema central 1 O sistema deve possuir um bom tempo de resposta ao comunicar com a operadora 5 O sistema deve garantir a disponibilidade da pol cia 2 O sistema deve possuir um bom tempo de resposta para ligar desligar o sprinkler 6 O sistema deve garantir a disponibilidade dos bombeiros 3 O sistema deve responder atempadamente para ligar desligar o alarme 7 O sistema deve garantir a disponibilidade nas comunica es 4 O sensor de movimento deve responder atempadamente na detec o de movimento 5 O sensor de fumo e fogo deve responder atempadamente na detec o de fumo e fogo 6 Os actuadores devem responder atempadamente aos pedidos do sistema 7 A pol cia deve responder atempadamente aos pedidos de emerg ncia 8 Os bombeiros devem responder atempadamente aos pedidos de emerg ncia 9 O sistema deve responder atempadamente identifica o dos habitantes e do administrador A Safety 10 O sistema deve responder atempad
63. 4 5 Very Good C21 What are in your opinion the weaknesses difficulties of the VisualAore plug in 172 C22 What are in your opinion the strengths facilities of the VisualAore plug in C23 What are the innovations brought by the VisualAore plug in C24 What do you suggest that can improve the VisualAore plug in C25 Suggestions global comments 173 174 Anexo I Manual do utilizador da LDE VisualAORE 1 Introdu o Este manual tem o objectivo de auxiliar o utilizador da LDE VisualAORE em duas vertentes na vertente da instala o e na vertente da utiliza o Na sec o 1 2 deste manual explicado o procedimento para a instala o do plug in VisualAORE e na sec o 1 3 s o pormenorizadas as instru es de utiliza o da ferramenta 1 1 Instru es de instala o Para realizar a instala o do plug in VisualAORE necess rio possuir o ambiente de desenvolvimento Eclipse instalado no computador Preferencialmente o utilizador deve efectuar o download da vers o Eclipse Modeling Tools Eclipse Galileo Sr2 Packages em http www eclipse org downloads packages release galileo sr2 A vers o do Eclipse acima mencionada j provida dos plugins GMF e EMF pelo que n o necess rio efectuar qualquer actualiza o do mesmo Seguidamente o utilizador deve descompactar o ficheiro VisualAORE zip e colocar os seus ficheiros na pasta plug ins do Eclipse p e C galileo eclipse plugins Nesta
64. 5 O sistema deve garantir seguran a quando efectua ch madas de emerg ncia L Le 1 t T f j 1 Seca I oe Ga Ec ic PA E 2 1 o E Dres Fulfilled 1 1 1 Meios I 1 1 f oe 4 r l I I V Sensor de janelas gr d ge Sensor de estores 1 l l 1 Detecta estado das janelas 1 Detecta estado dos estores 1 1 4 i l i i a bada esada pari o ro EO Lol l l I 1 e 1 l L HV Sensor de fumo e fogo V sengor de movimento 1 i li 1 Detecta presen a aus ncia de fumo e fogo 1 Detbcta movimento no intlrior daicasa l dada o vimento f da div o dsbes em questa fo detectada para o sistema cet t l WL Sensor de Sprinkler V Sensor de temperatura exterior V Sensor de temperatura interior V Sensor de alarme 1 Detecta estade do sprinkler 1 Detecta temperatura no exterior da casa 1 Detecta temperatura no interior da casa 1 Detecta estado do alarme 2 Envia informa o para o sistema central 2 Envia informa o para o sistema central 2 Envia informa o do estado para o sistema central weight 16 2 Envia informa o do estado do sprinkler para o sistema central welght 07 Figura 6 5 Modelo AORE do caso de estudo Smart Home 93 6 3 Sumario Neste cap tulo apresentado o caso de estudo Smart Home Na sec o 6 1 o caso de estudo
65. ALPH foi mapeada numa linguagem de aspectos AspectJ e lida inicialmente apenas com as no es de aspectos pointcuts joinpoints e advice Estra tradu o feita utilizando um tradutor dinamicamente extens vel O resultado destra tradu o um ou mais aspectos compilados que s o posteriormente inseridos na aplica o base em execu o nos pontos especificados pelos contructores da LDE Como resultado a aplica o corre com a funcionalidade de sa de pervasiva necess ria inclu da Os aspectos podem conter c digo gerado atrav s de uma biblioteca de aspectos existentes de assuntos transversais A LDE definida capaz assim de identificar os assuntos transversais de dom nio espec fico o que elimina a necessidade de implementar os assuntos transversais atrav s da aplica o base aumentando a modularidade 4 3 2 Mawl Um servi o Form based descreve o fluxo de dados entre o servi o e o utilizador atrav s de uma sequ ncia de perguntas e respostas de interac o ou forms Um form fornece uma interface ao utilizador que lhe apresenta dados do servi o recolhe informa o do utilizador e retorna dados ao servico O objectivo deste trabalho consiste em conseguir programar estes servigos de forma independente e com um elevado poder de abstrac o separando o servi o l gico da descri o da interface do utilizador Uma LDE oferece uma solug o mais completa para os problemas de engenharia de software atrav s das
66. B3 1 Which one did you find inadequate B4 How do you identify the text representing the concepts Very Bad 1 2 3 4 5 Very Good 169 B5 How often did you find committing errors due to symbols similarity Never 2 3 4 5 Always B6 How often did you find committing errors due to ambiguous vocabulary Never 1 2 3 4 5 Always B7 What changes or additions do you propose to the language Usability Validation C1 What time did you spent in developing the model through the VisualAore plug in C2 How easily did you create the Aore model Very Difficult 1 2 3 4 gt Very Easy C3 How do you evaluate the process of creating a model in the VisualAore plug in Very Bad 1 2 3 4 5 Very Good C4 Did you have difficulty using the VisualAore plug in Yes No C4 1 If yes what s the biggest difficulty you found C5 How did you feel about performing changes Very Difficult 1 2 3 i 5 Very Easy C6 How physically demanding was performing the case study Very Difficult 1 2 3 4 5 Very Easy C7 The outcome reflects what you were expecting Definitely Not 1 2 3 4 5 Absolutely C8 How often did you feel unable to express what you intended 9 Never 1 3 4 5 Always 170 C9 What are the advantages of the model obtained in the plug in relatively to the specification done textual and manually C10 And the disadvantages C11 When creating the model in the plug in did you kept all the information specified
67. BN 978 9978 325 10 0 Cuenca Equador Abril de 2010 125 Harel e Rumpe 2000 D Harel e B Rumpe Modeling Languages Syntax Semantics and All That Stuff Agosto de 2000 Herndon e Berzins 1998 R Herndon e V Berzins The realizable benefits of a language prototyping language em IEEE Transactionson Software Engineering V 14 p gs 803 809 1988 Jacobson 1987 I Jacobson Object Oriented Development in as Industrial Environment Engineering em Proceedings of OOPSLA S7 pags 183 191 Outubro de 1987 Jacobson 1991 I Jacobson Object Oriented Software Engineering Editora Addisson Wesley 1991 Jacobson e NG 2004 I Jacobson e PW Ng Aspect Oriented Software Development with Use Cases Editora Addison Wesley Professional 2004 Kang et al 1990 K Kang S Cohen J Hess W Novak A Peterson Feature Oriented Domain Analysis FODA Feasibility Study Instituto de Engenharia de Software Universidade de Cargegie Mellon Pittsburg Novembro de 1990 Kelly et al 2006 S Kelly K Lyytinen e M Rossi MetaEdit A fully configurable Multi User and Multi Tool CASE and CAME Environment Departamento de Computa o Cient fica e Sistemas de Informa o Universidade de Jyvaskyla Finl ndia 2006 Lamsweerde 2001 A Lamsweerde Goal Oriented Requirements Enginnering A Guided Tour Artigo Convidado para RE 01 5th IEEE International Symposium on Requirements Engineering Toronto Canad Agosto de 2001
68. Concern hasConc val ConcernsModule hasCM 151 val Contributes hasC class Concern val NFRequirement CcontainsNFR attr String name attr int Id 1 class NFRequirement attr String Id 1 attr String description ref ConstraintAction NFReqToCActionOp NFRequirementTOCAction class Aspect extends Concern ref Viewpoint 2 crosscutsVP enum Type PosPos NegNeg PosNeg NegPos Wo wNHO e ne class Contributes attr Type type ref Concern 1 in ref Concern 1 out class CompositionRulesAggregationModule attr String name val CompositionRule hasCR val CompositionRulesAggregationModule hasCRM class CompositionRule attr int Id 1 attr String name val Constraint 1 hasConstraint val OutcomeAction 1 hasOutcAct val ConstraintOperator hasCo class Constraint attr String name val ConstraintAction 1 hasConstAction val ConstraintOperator 1 hasConsOper ref OutcomeAction 1 ConstraintTOOAction abstract class OutcomeAction attr String name class Fulfilled extends OutcomeAction class Satisfied extends OutcomeAction ref Viewpoint 1 OActionTOViewpoint ref FRAggregationModule OActionTOFRModule ref FRequirement OActionTOFRequirement ref ConstraintOperator SatisfiedTOCOperator abstract class ConstraintAction ref Xor 1 CActionTOXor attr String name ref Concern
69. Create a new Between Constraint Operator node class Between extends OnBetween gmf node figure figures DuringFigure label name label icon false label placement external tool description Create a new During Constraint Operator node class During extends DuringWithIn gmf node figure figures ForFigure label name label icon false label placement external tool description Create a new For Constraint Operator node class For extends ConstraintOperator ref AppliedProvide AppliedProvideTOFor ForTOAppliedProvide gmf node figure figures InFigure label name label icon false label placement external tool description Create a new In Constraint Operator node class In extends DuringWithIn gmf node figure figures OnFigure label name label icon false label placement external tool description Create a new On Constraint Operator node class On extends OnBetween gmf node figure figures WithFigure label name label icon false label placement external tool description Create a new With Constraint Operator node class With extends DuringWithIn gmf node figure figures XorFigure label name label icon false label placement external tool description Create a new Xor Constraint Operator node class Xor extends ConstraintOperator enum Weight Zero 0 ZeroUm 1 ZeroDois 2 138 ZeroTres 3
70. Creates Aore diagram m Wizards type filter text ld Aore Diagram D AoreC Diagram D AoreCR Diagram D AoreV Diagram 4 gt Acceleo Plug ins Ecore to Python UML to Java 4 3 ATL Public to private Example 4 gt Eclipse Modeling Framework igi Capabilities Example i Extended Library Model Example Cee ee ee eee eee o 49 lt Back Finish Figura I 2 Cria o do diagrama AORE 1 2 Instru es de utiliza o Para iniciar a utiliza o do plug in VisualAORE o utilizador deve come ar por observar o menu do editor base Este menu composto por 5 separadores tal como ilustra a Figura J 3 No separador Modules o utilizador escolhe o m dulo de agrega o de elementos que deseja consoante os elementos que pretende agregar No separador Concern o utilizador possui os 176 elementos relacionados com concerns tal como nos separadores Composition Rule e Viewpoint O separador Connections possui todas as liga es poss veis de efectuar num modelo lt 2 Palette b N a Q E gt E gt Modules CAggM Concerns Aggregation Module CRAgoM Composition Rules Aggregation Module VAggM Viewpoints Aggregation Module Concern gt Composition Rule gt Viewpoint 3 Connections gt Contribution P Has Impact In gt Weigh 2 NFRequirement gt CAction gt Applied Provide gt For CAction gt Xor gt Enforce gt On Between gt Ensure gt During With In Exclude
71. DE Finalmente s o enunciadas v rias ferramentas que podem ser utilizadas na defini o de uma LDE tais como GME DSL Tools EMF GMF MetaEdit e outras como AToM e Meta Sketch 36 4 Trabalho relacionado Dentro da rea cient fica em que se vai desenvolver esta disserta o existem trabalhos desenvolvidos relacionados com o desenvolvimento de LDEs com a Engenharia de Requisitos Orientada a Aspectos EROA e existe tamb m uma elevada contribui o de trabalhos que aborda os dois temas em parceria 4 1 LDEs para abordagens de requisitos 4 1 1 Uma Linguagem de Dom nio Espec fico para a framework i Uma Linguagem de Dom nio Espec fico para a framework i Nunes 2009 Nunes et al 2009 um trabalho que implementa uma LDE capaz de lidar com a framework i A framework i uma t cnica de modela o de dados orientada para os objectivos Trata se de uma abordagem sim trica que identifica requisitos n o funcionais Esta framework possui uma modela o ou uma representa o dos seus elementos e das suas rela es atrav s de um metamodelo que bastante incoerente Desta forma em programas espec ficos e g OME para trabalhar com a framework o metamodelo d origem a modelos com falhas e inconsist ncias Para resolver estas incoer ncias um estudo foi feito com vista a melhorar o metamodelo existente Foi tamb m objectivo do trabalho fazer uma pesquisa de todas as ferramentas capazes de trabalhar com esta
72. E reduz o dom nio e a experi ncia necess ria para programar oferecendo uma maior facilidade de uso e expressividade Contrariamente s GPLs as LDEs podem n o ser execut veis e as suas t cnicas de desenvolvimento s o mais variadas De uma forma geral as LDEs n o s o eficientes fora do ambiente para o qual foram especificadas no entanto as GPLs por serem linguagens gen ricas fornecem solu es gerais para um vasto mbito de problemas ainda que apenas uma delas seja considerada a melhor solu o Deusen et al 2000 3 3 Sintaxe e Sem ntica 3 3 1 Sintaxe abstracta e concreta Uma linguagem definida atrav s de um conjunto de sequ ncias de caracteres de um determinado alfabeto A sua sintaxe Harel e Rumpe 2000 especifica quais as sequ ncias que a linguagem cont m atrav s da defini o dos seus conceitos ou palavras A sintaxe dividida em sintaxe concreta e abstracta A sintaxe abstracta define os conceitos da linguagem as rela es os atributos e as regras de boa forma o Consiste no metamodelo da linguagem que pode ser obtido a partir da sintaxe concreta A sintaxe concreta definida atrav s de um conjunto de regras representadas por uma gram tica livre de contexto geralmente EBNF tratando se de um documento informal Pode ser textual utilizando se express es regulares e gram ticas ou visual diagram tica sendo representada atrav s de meta modela o com por exemplo modelos UML regras OCL e g
73. Et ia 120 Bo rapalho Furo aa ao Sa E tT tenis 120 De IDOL FRASE ERR ASR REPRESA AU RD AE RR ANA A AR RE RARA T 123 Anexo A Tabelas dos Construtores da Linguagem de Composi o sscsccscsesessseeseee 131 Anexo B Modelo Emfatic do editor base e eesessessosoesossossesossossescosoesessossesossossesossossessessssose 133 Anexo C Modelo Emfatic do sub editor do elemento ConcernsA ggregationModule 141 Anexo D Modelo Emfatic do sub editor do elemento CompositioRulesA ggregationModule ooooommmssmess 145 Anexo E Modelo Emfatic do sub editor do elemento ViewpointsAggregationModule 151 Anexo F Especifica o Vextitallsciscsssessccosssssesscsnutecsedicabssnncacdbeesisceabsosuthedetssabssvessedsssonccebsccanciece 155 Anexo G Instru es para Teste sisssssss ssicciedscsksevscoosascassubiconenscskebubensuspasossionsbebasspseseasvisssbansesone 161 Anexo H QUESTION ii idad 169 Anexo I Manual do utilizador da LDE VisualAORE ooonocnoonoonocononononnnconocononanconoconononooncoonos 175 XV XVI Indice de Figuras Figura 2 Modelo AORE IA Cacia a ra ane 12 Figura 2 2 Viewpoint Ve culo em AMI 0 iii 13 Figura 2 3 Concern Tempo de Resposta em XML ou eeescecssececeseeeceeeeeceeececseeeecseeeeeneeeeees 14 Figura 2 4 Composi o de Tempo de Resposta com ve culo 15 Figura 2 5 Modelo MATA Whittle e Jayaraman 2007 19 Figura 3 1 Modelo de features de Carro eccceescccessseceecece
74. Jo 1 O sistema necessita de ter seguran a de preven o de crimes na identifica o dos habitantes e do administrador 2 O sistema necessita de ter seguran a de preven o de incidentes ao dar as permiss es correctas a cada habitante e ao administrador 3 O utilizador administrador ou habitante acede ao sistema depois de fazer login no sistema e introduz a senha 3 1 Se o utilizador inserir o login e a senha correctamente t m acesso ao sistema 3 2 Se o utilizador inserir o login e ou a senha incorrectamente t m mais duas possibilidades de voltar a inserir a senha correcta 3 2 1 Se o utilizador n o inserir o login e ou a senha correctamente em nenhuma das tentativas efectuadas pode pedir assist ncia remota para se identificar no sistema comemos CRAggM Seguran a VAgoM Utilizadores C Constraint A T LON gt e t GOS Provide C Constraint A Lay gt Gan gt x t F eC Cng Satisfied Provide C Constraint Ln gt d gt Z gi Provide Figura 6 3 Regras de composi o do concern Seguran a 89 Como a Figura 6 4 indica o aspecto Tempo de Resposta apenas foi composto nos seus requisitos 1 2 3 e 4 A regra de composi o 1 significa que o requisito 1 de Tempo de Resposta deve ser imposto aos requisitos 1 3 e 2 2 do viewpoint Operadora e o resultado desta composi o o cumprimento destes ltimos requisitos A regra de composi o 2
75. Operator description EString name EString ARONSSON e name EString o name EString p A perator A A CcontainBNFR CActionTOXor 1 Concern El 5 Xor o name EString 8 o ld Elnt B Enforce B Exclude B Ensure B AppliedProvide 0 1 h AppliedProvideT Tr OnBetweenTOEntorce 1 DuringWithInTOEnsure EnsureTODuringwithinm 4 EnforceTOOnBetween B DuringWithln ForTOAppliedProvide H OnBetween Figura 5 6 Liga es entre os elementos das regras de composi o Na Figura 5 7 s o ilustradas as poss veis liga es entre concerns e viewpoints O link HasImpact representa a exist ncia de um impacto de um concern num viewpoint A rela o Contribution representa a contribui o que dois concerns exercem entre si A rela o Weights surge com o objectivo de resolver situa es de conflito detectadas com a rela o Contribution Deste modo esta rela o atribui um peso aos viewpoints afectados pelos concerns em conflito Este excerto do metamodelo VisualAORE mostra ainda a rela o de generaliza o entre um elemento Concern e um Aspecto A diferen a entre estes consiste no facto de que um Aspecto atravessa pelo menos dois viewpoints ao passo que um Concern apenas influencia um viewpoint Esta restri o ilustrada atrav s da rela o crosscutsVP exposta na figura abaixo 56 o name EString o ld Elnt Contributes o type Type
76. Posteriormente aborda se o tema Engenharia de Requisitos Orientada a Aspectos onde explicada a abordagem AORE a sua origem as suas fases e a ferramenta principal que lhe d aux lio ARCaDe Para uma maior compreens o da metodologia aplicada a t cnica AORE ao caso de estudo Smart Home Pretendendo fornecer um conhecimento mais abrangedor da EROA foram brevemente introduzidas outras abordagens orientadas a aspectos 20 3 LDE Uma Linguagem de Dominio Especifico LDE tamb m designada de forma nao consensual de micro linguagem e linguagem pequena uma linguagem focada em dom nios espec ficos geralmente pequena e declarativa que apresenta um elevado poder de express o Deusen et al 2000 Este tipo de linguagem permite especificar software e ou outros sistemas modelando e exprimindo de um modo formal os conceitos chave de um determinado dom nio Um dom nio uma rea de interesse restrita um ponto de vista concreto ou uma fam lia de produtos relacionados caracterizada por um conjunto de terminologias e conceitos Thibault 1998 O principal objectivo de uma LDE oferecer solu es que aquando da especifica o do problema reduzem a sua abstrac o Thibault 1998 permitindo aos peritos uma f cil compreens o valida o modifica o da linguagem e at mesmo desenvolver outras LDEs A abstrac o portanto a caracter stica principal de uma LDE pois permite uma compacta o de
77. Requirement Liga o cuja origem um elemento Outcome Action e o destino um requisito funcional OActionTOFRAModule Liga o cuja origem um elemento Outcome Action e o destino um m dulo de agrega o de requisitos funcionais OActionTO Viewpoint Liga o cuja origem um elemento Constraint Operator e o destino um viewpoint 53 hasCRlv hasCM E ConcemsAggregationModuld E CompositionRulesAggregationModul E ViewpointsAggregationModule gras VM 0 name EString o name EString o name EString 0 E description EString _ description EString 0 a description EString 1 x E hasConcernsAggregationModule hasCompositionfAylesAggregationModule hasView ointsAggregationlModule Figura 5 3 Excerto do metamodelo AORE que foca os m dulos de agrega o O conceito de m dulo de agregac o foi tamb m utilizado para agrupar dois ou mais requisitos funcionais de um viewpoint presentes numa regra de composi o O excerto do metamodelo que cont m esta informa o ilustrado na Figura 5 4 onde se constata que um m dulo de agrega o de requisitos funcionais constitu do por dois ou mais requisitos funcionais Nesta figura observa se tamb m que um viewpoint composto por um ou v rios requisitos funcionais e por zero ou mais m dulos de agrega o de requisitos funcionais O conceito de m dulo de agrega o aplicado nest
78. Right click on created project gt New gt Example gt AoreDiagram Thanks for your colaboration 161 Case Study Via Verde In a road traffic pricing system drivers of authorized vehicles are charged at toll gates automatically The gates are placed at special lanes called green lanes A driver has to install a device a gizmo in his her vehicle The registration of authorized vehicles includes the owner s personal data bank account number and vehicle details The gizmo is sent to the client to be activated using an ATM that informs the system upon gizmo activation A gizmo is read by the toll gate sensors The information read is stored by the system and used to debit the respective account When an authorized vehicle passes through a green lane a green light is turned on and the amount being debited is displayed If an unauthorized vehicle passes through it a yellow light is turned on and a camera takes a photo of the plate used to fine the owner of the vehicle There are three types of toll gates single toll where the same type of vehicles pay a fixed amount entry toll to enter a motorway and exit toll to leave it The amount paid on motorways depends on the type of the vehicle and the distance travelled Viewpoints ATM 1 The ATM sends the customer s card number account number and gizmo identifier to the system for activation and reactivation 1 1 The ATM is notified if the activation or reactivation was successful
79. Viewpoint hasVP val ViewpointsModule hasWM class Viewpoint val FRequirement contains attr int Id 1 attr String name attr String focus attr String source val FRModule hasCM class FRequirement attr String Id 1 attr String description class FRModule attr int Id 1 attr String name val FRequirement containsRF gmf diagram foo bar class ConcernsAggregationModule attr String name val Concern hasConc val ConcernsAggregationModule hasCAggM val Contributes hasC gmf node label name label pattern 0 color 240 240 240 border width 3 border color 57 183 15 tool name Concern tool description Create a new Concern node class Concern gmf compartment layout list val NFRequirement CcontainsNFR attr String name attr int Id 1 gmf node figure rectangle label Id description label pattern 0 1 label icon false border color 240 240 240 color 240 240 240 tool name Non Functional Requirement tool description Create a new Non Funcional Requirement node class NFRequirement 141 attr String 19 i attr String description ref ConstraintAction NFReqToCActionOp NFRequirementTOCAction gmf node color 240 240 240 border color 0 140 0 tool name Aspect tool description Create a new Aspect node class Aspect extends Concern ref Viewpoint 2 crosscutsVP
80. a gera o dos diagramas de todos os editores Com vista restringir o comportamento do elemento Contribution foi adicionada uma regra OCL no modelo Gmgmap do editor base e do sub editor do m dulo de agrega o de concerns Esta uma rela o entre elementos do mesmo tipo e como tal foi necess rio proibir que o elemento de origem fosse o mesmo que o elemento de destino A regra OCL utilizada vis vel na Figura 5 9 Property Value Body self lt gt oppositeEnd Language ocl Figura 5 9 Regra OCL para o elemento Contribution 62 5 4 Apresenta o da ferramenta A apresenta o da ferramenta efectuada neste sub cap tulo recorre ao caso de estudo Via Verde Este caso de estudo real e o seu prop sito implementar o sistema Via Verde ao n vel de auto estradas e parques de estacionamento Neste trabaho considerada a vertente do caso de estudo direccionada ao funcionamento de auto estradas Num sistema Via Verde os utilizadores que usufruem do servi o s o cobrados automaticamente nas portagens Para tal o sistema implementado em faixas especiais onde o utilizador pode passar sem ter que parar Para que este processo seja poss vel necess rio que o utilizador possua um dispositivodenomidado de Identificador na sua viatura Este Identificador possui os dados do seu propriet rio assim como o n mero da conta banc ria que lhe est associada e alguns detalhes do ve culo Na fase inicial o I
81. a 6 3 possui a resolu o dos conflitos identificados Esta resolu o feita atrav s da atribui o de pesos aos viewpoints que s o influ nciados pelos concerns que entram em conflito Pode observar se o caso do conflito entre o concern Seguran a e Tempo de Resposta em que dada prioridade Seguran a pois concern que considerado mais importante a ter em considera o neste ponto da especifica o do sistema Os viewpoints influenciados por este concern obt m o peso 1 e quando s o influenciados pelo concern Tempo de Resposta obt m o peso 0 9 84 Tabela 6 3 Resolu o dos conflitos Viewpoint Rm Aja APe APo Ad Ala AC Bo Hab Int Ope Pol SAI SPe SFF SJa SLu SMo SPo SSp STE STIn Spr Tim Concern Seguran a 1 1 Safety 0 6 0 6 0 6 06 06 06 0 6 0 7 0 6 0 6 0 6 0 6 0 6 Compatibilidade Y y y y y y y y y y y y y y y y y y y Disponibilidade 09 09 09 09 07 09 08 0 9 1 os 08 07 08 07 0 7 1 0 7 0 8 0 7 0 7 07 Usabilidade 0 9 0 9 ey os 08 08 08 08 08 08 09 08 08 08 09 07 0 7 0 9 0 7 0 8 85 6 2 Especifica o na ferramenta VisualAORE Com o objectivo de obter uma avalia o da ferramenta o caso de estudo Smart Home foi especificado na ferramenta VisualAORE conforme mostra a figura Nesta especifica o os viewpoints foram divi
82. a Linguagem Espec fica do Dominio para uma abordagem orientada aos objectivos baseada em KAOS uan ques aca Sana dies anca a 38 4 2 LDEs para Programa o Orientada a ASpectOS ooococnnocccnoncccnoncnononcnonancnnnnnccnonnccnnnnccnnnos 39 4 2 1 Uma DSL para especificar a ordem de execu o de aspectos 39 Ao QuirasDSALS ca A A a le ad Pad 40 AS Outras LDES ect e e ciate 40 AS ALPH umas ras asa AL da lag La ada a isa aa 40 4 3 2 MW 41 4 3 3 PAD aia 42 4 3 4 Uma LDE para modelos de din mica de paisagens ocooconcoccccnonccononccnnnnncnonnccnnnnnos 43 4 3 5 Uma LDE para drivers de dispositivos de videos oooooocccoonccononcnononanonnnncnnnnacinnnnos 44 436 ATMOL ii 45 AAs SUNAO a e a a Dade A a ada Gilets Dada alleen ee pad aa 46 5 LDE VISUAIA OREA AAA dan ciganas 47 Dales o O 47 5 2 Metamodelo da linguagem VisualAORE oooococnnocccnoncccnoncnonnncnononcnonnnnconnncnnnnnc nono nccinnnnss 50 Sede APENAS O es 60 54 Apresenta o da ferramenta veses Iran ledensweavecsceesndyedeatens 63 5 3 SMTA ini daba 75 6 A TO 77 6 l Especificacio textual ii E E aa iaa 79 6 2 Especifica o na ferramenta VisualAORE ooooccnoncnoccnnonnconncnoncnnnnnonn corn ncnonnnnnncnnn ccoo ccoo 86 6 3 SUM O is 94 Te A a AMA A A O 95 7 1 An lise das quest es e dos resultados obtidos errar 96 T2 AMEA AS A AVAL ACAO sess ith Saletan e CA hs Ce dada 117 Th UM ias 117 A A TO 119 Sol
83. a execu o do caso de estudo How often did you find trapped or confused during the case study A quest o C14 tem o objectivo de avaliar o grau de confus o dos utilizadores durante a execu o do caso de estudo O valor 1 significa que o utilizador nunca se sentiu confuso aquando da execu o do caso de estudo e o valor 5 significa que o utilizador se sentiu sempre confuso C14 Quantas vezes se sentiu incapaz ou confuso durante a execu o do caso de estudo 10 N Pessoas ON 000 Classifica o Figura 7 19 An lise da frequ ncia com que o utilizador se sentiu confuso durante a execu o do caso de estudo Os resultados mostrados na Figura 7 19 apontam para o facto de os utilizadores n o se sentirem confusos ou pouco confusos aquando da execu o do caso de estudo Quest o C15 Qual o esfor o mental necess rio para executar o caso de estudo How mentally demanding was the case study A quest o C15 possui a finalidade de avaliar a dificuldade mental em executar o caso de Zz estudo O valor O significa que a dificuldade muito elevada e o valor 5 significa que a dificuldade nula C15 Qual o esfor o mental necess rio para executar 0 10 aso de estudo N Pessoas o ul Classificac o Figura 7 20 An lise do esforgo mental necess rio para realizar o caso de estudo 110 De acordo com a Figura 7 20 a maioria dos utilizadores considerou o caso de estudo f c
84. abel name border width 3 border color 14 105 3 color 205 250 190 tool name Concerns Aggregation Module tool description Create a new Concerns Aggregation Module node class ConcernsAggregationModule attr String name attr String description gmf compartment foo bar val Concern hasConc gmf compartment foo bar val ConcernsAggregationModule hasCM val Contributes hasC gmf node label name label pattern 0 color 240 240 240 border width 3 border color 57 183 15 tool name Concern tool description Create a new Concern node class Concern gmf compartment layout list val NFRequirement CcontainsNFR attr String name attr int Id 1 gmf node figure rectangle label Id description label pattern 0 1 label icon false border color 240 240 240 color 240 240 240 tool name Non Functional Requirement tool description Create a new Non Funcional Requirement node class NFRequirement attr String Id 1 attr String description gmf link tool small bundle Aore edit tool small path icons full obj16 NFRequirementTOCAction gif tool large bundle Aore edit tool large path icons full obj16 NFRequirementTOCAction gif style dot width 2 target decoration arrow color 0 140 0 tool name NFRequirement gt CAction tool description Create a new link from a Non Functional Requirement to a Constraint Action r
85. ach to requirements engineering Annals of Software Engineering p gs 101 130 1997 Sommerville ef al 1998 I Sommerville P Sawyer e S Viller Viewpoints for requirements elicitation a practical approach Departamento de Computa o da Universidade de Lancaster Reino Unido 1998 Sousa e Sobral 2010 E Sousa J L Sobral JPPAL Java Parallel Programming Annotation Library AOSD 10 Rennes e Saint Malo Fran a 2010 128 Stahl e Volter 2006 T Stahl e M Volter Model Driven Software Development technology engineering management Editora John Wiley amp Sons Ltd Hoboken EUA 2006 Taylor et al 1995 R Taylor W Tracz e L Coglianese Software Development Using Domain Specific Software Architectures em Software Engineering Notes V 20 N 5 p g 27 Dezembro de 1995 Thibault 1998 S Thibault DomainSpecific Languages Conception Implementation and Application Tese de Doutoramento Universidade de Rennes Fran a 1998 Thibault et al 1997 S Thibault R Marlet e C Consel 4 Domain Specific Language for Video Device Drivers from Design to Implementation em Proceedings of the Conference on Domain Specific Languages Santa B rbara Calif rnia EUA Outubro de 1997 Thomas e Hunt 2000 D Thomas e A Hunt Programming Ruby the pragmatic programmer s guide Addison Wesley 2000 Warmer e Kleppe 1998 J Warmer e A Kleppe The object constraint language precise modeling with
86. aintAction NFReqToCActionOp NFRequirementTOCAction class Aspect extends Concern ref Viewpoint 2 crosscutsVP 145 enum Type PosPos NegNeg PosNeg NegPos w V H O Se no ne class Contributes attr Type type ref Concern 1 in ref Concern 1 out gmf diagram foo bar class CompositionRulesAggregationModule attr String name attr String description val CompositionRule hasCR val CompositionRulesAggregationModule hasCRM gmf node figure rounded label Id name label pattern 0 1 color 240 240 240 border color 128 128 192 border width 3 tool name Composition Rule tool description Create a new Composition Rule node class CompositionRule attr int Id 1 attr String name attr String description gmf compartment foo bar val Constraint 1 hasConstraint gmf compartment foo bar val OutcomeAction 1 hasOutcAct gmf compartment foo bar val ConstraintOperator hasco gmf node figure rounded label name color 240 240 240 border color 64 0 128 border width 2 tool name Constraint tool description Create a new Constraint node class Constraint attr String name gmf compartment foo bar val ConstraintAction 1 hasConstAction gmf compartment foo bar val ConstraintOperator 1 hasConsOper gmf link tool small bundle Aore edit tool small path icons full obj16 ConstraintTOOA
87. ais rudimentar permite controlar os dispositivos atrav s de certas reas t cnicas dentro da casa e executa aplica es centradas na casa Por outro lado uma solu o mais ambiciosa integra mais tipos de dispositivos e inclui uma plataforma externa que disponibiliza acesso remoto e servi os externos Tarefas como factura o registo de utilizadores e gest o da plataforma fazem parte desta segunda solu o A rede segundo a qual a casa funciona permite que dispositivos controlem o seu comportamento com o objectivo de executar as tarefas complexas O estado dos dispositivos pode tamb m ser alterado pelos habitantes atrav s de uma interface a eles destinada ou pelo sistema usando pol ticas predefinidas Estas pol ticas permitem que o sistema reaja de forma aut noma a certos eventos Por exemplo em caso de detec o de fumo as janelas devem fechar se as portas devem ser desbloqueadas e os bombeiros devem ser chamados AMPLE Ample Project http ample holos pt 2007 77 Independentemente do nivel de intelig ncia da casa a sua personaliza o um problema Um utilizador deve ser capaz de definir as suas prefer ncias e o sistema deve facilitar a configura o dos dispositivos Pode ser necess rio oferecer determinados servi os apenas a determinadas pessoas Deste modo s o necess rios mecanismos de autoriza o e autentica o sendo que esta ltima se torna ainda mais importante quando o sistema cont m uma
88. al por todo o aux lio prestado ao longo deste trabalho Agrade o ao Vasco Sousa pela disponibilidade e ajuda que me forneceu e a todos os meus colegas que participaram na fase de avalia o da ferramenta proposta neste trabalho assim como aos que me ofereceram qualquer outro tipo de ajuda Agrade o aos meus colegas que trabalharam comigo quase diariamente tais como a Sara e outros pois tornaram a elabora o desta disserta o mais leve e bem disposta Finalmente agrade o minha fam lia em especial aos meus pais e irm os por todo o apoio dedica o disponibilidade e bons momentos que me proporcionaram e que assim tornaram este trabalho n o s poss vel como muito agrad vel VI Resumo A Engenharia de Requisitos Orientada a Aspectos EROA consiste em identificar modularizar especificar e compor assuntos transversais crosscutting concerns conhecidos como aspectos A abordagem AORE Aspect Oriented Requirements Engineering foi uma das abordagens pioneiras de EROA uma abordagem sistem tica usada para descobrir e estruturar requisitos com base em viewpoints e aspectos No entanto h muito por fazer em termos de investiga o sobre a AORE como uma representa o diagram tica de seus modelos j que a representa o actual puramente textual tornando a abordagem mais f cil de utilizar por engenheiros de software e mais f cil de se integrar em ambientes de desenvolvimento orientado a modelo
89. am tica atrav s de uma formata o XML que sem qualquer programa o manual d origem ao c digo necess rio implementa o dos modelos gr ficos da LDE O utilizador define os conceitos da linguagem o modo usado para processar esses conceitos no ambiente de edi o diagram tico e os componentes auxiliares usados para carregar e salvar o modelo para integrar a nova ferramenta no Visual Studio e gerar o c digo e os outros artefactos dos modelos criados com a ferramenta No DSL Tools as LDEs definidas s o usadas para criar modelos que servem de input aos geradores de c digo A gera o de c digo nesta ferramenta facilitada em rela o a outras ferramentas utilizadas para o mesmo efeito pois existem recursos de abstrac o oferecidos pelas linguagens actuais como a disponibiliza o e verifica o de tipo est tico heran a fun es virtuais e classes parciais A linguagem CH o exemplo de maior realce pois permite a compila o e jun o de uma classe definida em v rios pacotes numa nica classe O pacote DSL Tools permite uma evolu o inicial facilitada uma implementa o simples oferece a possibilidade de utilizar mecanismos de compila o vincula o e depura o de c digo Tamb m a personaliza o do c digo facilitada pois directa Com o DSL Tools a interpreta o directa dos modelos dispensa a fase de compila o o que torna a troca dos modelos antigos pelos novos uma tarefa directa I
90. amente na verifica o e aceita o das configura es feitas pelo habitante 1 O sistema deve garantir a seguran a dos sensores 11 O sistema deve responder atempadamente na verifica o e aceita o da altera o de dados de utilizadores registados e na verifica o e aceita o do registo de novos utilizadores 2 O sistema deve garantir a seguran a na activa o desactiva o do sistema de extin o de inc ndios 3 O sistema deve garantir a seguran a na activa o desactiva o do alarme Contribution A Usabilidade 4 O sistema deve garantir a seguran a na abertura fecho de portas janelas e estores 1 O sistema deve possuir uma interface f cil de usar e compreender 5 O sistema deve garantir seguran a quando efectua chamadas de emerg ncia Figura 6 2 M dulo de agrega o de concerns 88 O aspecto Seguran a foi composto apenas nos seus requisitos 1 2 e 3 como mostra a Figura 6 3 A regra de composi o significa que o requisito 1 de Seguran a deve ser proporcionado aos requisitos dos viewpoints Administrador e Habitante e resultado desta composi o o cumprimento deste viewpoints A regra de composi o 2 significa que o requisito 2 de Seguran a deve ser proporcionado aos requisitos dos viewpoints Administrador e Habitante e o resultado desta composi o o cumprimento destes ltimos requisitos A regra 3 semelhante s anteriores CAggM ConcernsModule A Seguran a
91. an lise No entanto a dada altura do desenvimento de software necess rio compor os assuntos separados Para tal usada a unidade modular use case slice que cont m os elementos que s o espec ficos realiza o de um use case Assim para cada use case existir um use case slice ortogonal ao modelo de desenho que pode ser adicionado ou retirado consoante se pretende adicionar ou remover o seu conte do do topo do modelo 19 Na abordagem use cases com aspectos Ara jo e Moreira 2003 existem 5 fases fundamentais Nestas fases s o identificados os requisitos funcionais tal como se fazia nos modelos de use cases e RNFs A fase final consiste em identificar os assuntos candidatos a aspectos Isto acontece em casos onde um use case esteja relacionado com mais do que um caso de uso que seja um candidato a aspecto Um use case um aspecto se restringe estende ou inclu do por mais que um use case Ara jo e Moreira 2003 A problem tica desta abordagem a quantidade de casos de uso identificados que pode ser excessiva complicando o diagrama de casos de uso e assim a compreens o do sistema 2 5 Sum rio Neste Cap tulo descreve se o Desenvolvimento de Software Orientado a Aspectos e os conceitos que este envolve tal como concerns crosscuting concerns scattering tangling e join points Com o objectivo de contextualizar e dar a conhecer melhor o DSOA s o colocadas as suas vantagens e desvantagens em t picos
92. anismo de composi o desta ferramenta os requisitos e os aspectos s o referenciados atrav s de um nome e de um identificador nico dentro do seu mbito Cada viewpoint e aspecto possuem um nome nico e engloba um conjunto de requisitos e sub requisitos Cada requisito possui um n mero de identifica o nico no mbito do viewpoint ou aspecto que o cont m No entanto os requisitos s o inicialmente preparados para a composi o para que a qualquer requisito constante que seja de interesse para esta lhe seja atribu do um identificador separadamente Esta propriedade leva exist ncia de fragilidades neste processo pois a adi o ou remo o de requisitos pode alterar os seus identificadores dando origem a requisitos que coincidem de forma indesejada Simultaneamente ao assumir que os requisitos s o imut veis ou n o reutiliz veis o uso de quantificadores pode fazer coincidir requisitos adicionados recentemente ou continuar a tentar fazer a correspond ncia com requisitos j removidos comprometendo a integridade da an lise de dom nio Rashid et al 2003 A ferramenta usa apenas especifica es em XML que n o f ceis de ser entendidas rapidamente por analistas de sistemas onde a utiliza o de diagramas mais aceite 2 4 Outras abordagens 2 4 1 AORA A abordagem AORA Aspect Oriented Requirements Analysis Brito e Moreira 2003 tem como objectivo oferecer m todos para identificar modularizar representar e
93. ardas de transi es O uso do OCL d origem a modelos mais consistentes e fi veis Um exemplo de uma restri o OCL sobre uma classe Cliente que possui o atributo idade pode ser context Cliente inv idade gt 18 and self idade lt 100 Neste exemplo o contexto a classe Cliente e a restri o incide sobre o atributo idade sendo que um cliente tem que possuir no m nimo 18 anos e no m ximo 99 anos 3 5 Desenvolvimento de uma LDE O desenvolvimento de uma LDE pode ser feito atrav s de um sistema de desenvolvimento de linguagens ou toolkit Estes sistemas possuem os mesmos princ pios de funcionamento mas revelam diferentes graus de capacidade Contudo todos eles possuem a mesma finalidade sendo esta gerar uma ferramenta para uma linguagem descritiva As ferramentas podem ser um verificador e interpretador um ambiente de desenvolvimento integrado IDE entre outros 23 Abaixo encontram se as quatro fases que comp em o desenvolvimento de uma LDE sendo elas a An lise de Dom nio o Desenho da Linguagem e a Implementa o 3 5 1 An lise do dom nio Uma LDE inicia se efectuando se uma an lise de dom nio Desta fase faz parte a an lise da similaridade das varia es e das combina es E habitual fazer esta an lise de uma forma informal no entanto mais correcto efectu la formalmente como explicado mais abaixo Existem diversos m todos para representar formalmente a an lise de dom nio Exe
94. as ferramentas que v o estar dispon veis na palete do editor Com vista a estabelecer qual o elemento da palete que cria cada elemento do editor procede se defini o do Mapping Model Este passo feito atrav s da instru o combine e neste modelo que se obt m o mapeamento entre os modelos gr fico e de ferramentas No final deste IBM http www ibm com developerworks library os ecl gmf index html 2005 33 processo transforma se o mapeamento obtido no modelo de gera o do editor do diagrama atrav s da instru o Transform e obt m se o ficheiro de gera o do editor do diagrama Diagram Editor Generation Model Ap s a obten o deste pode se gerar o c digo do editor atrav s da op o Generate Editor Diagram e obter o plug in do editor visual pretendido Actualmente existem dois novos plug ins que oferecem suporte ao GMF sendo eles o Emfatic e o EuGENia EuGENia 2008 O Emfatic engloba v rios plug ins do Eclipse que incluem um editor e um parser para a linguagem Trata se de uma linguagem para representar modelos EMF Ecore numa forma simples e textual A sua vantagem que consegue representar um modelo Ecore completo em apenas um ficheiro de c digo e utiliza uma sintaxe semelhante ao Java que familiar a v rios programadores Os plug ins permitem ainda que um ficheiro Emfatic seja compilado num modelo Ecore e vice versa A ferramenta EuGENia gera automaticamente e simultaneamente os mode
95. b editores para que estas sejam carregadas 177 Para saber quais os elementos que podem ser colocados num editor ou dento de um elemento basta clicar com o bot o esquerdo do rato no local onde se deseja colocar o novo elemento e clicar na op o desejada dentro das op es que s o disponibilizadas A t tulo de exemplo a imagem abaixo ilustra os elementos que podem ser colocados no sub editor do m dulo de agrega o de concerns sendo estes Aspectos e Concerns tal como os s mbolos indicam Figura 1 4 Elementos a colocar no sub editor do m dulo de agrega o de concerns Ao clicar com o bot o direito do rato num editor o utilizador acede a v rias op es Algumas delas s o descritas em seguida File permite que o utilizador exporte o conte do do editor para uma imagem Caso o utilizador seleccione um elemento e em seguida clique nele com o bot o direito do rato poss vel exportar apenas o elemento seleccionado Delete from Model permite eliminar todo o conte do do editor ou caso se seleccione previamente um elemento eliminado apenas o elemento seleccionado Tamb m poss vel eliminar um elemento efectuando a sua selec o e pressionando a tecla Delete Select permite seleccionar todos os elementos do editor Arrange All permite dispor todos os elementos ao longo do editor Show Property Views mostra o separador que cont m as propriedades dos elementos do editor Estas propriedades podem ser nome
96. bel icon false label placement external tool description Create a new Satisfied Outcome Action node class Satisfied extends OutcomeAction gmf link tool small bundle Aore edit tool small path icons full obj16 0ActionTOViewpoint gif tool large bundle Aore edit tool large path icons full obj16 OActionTOViewpoint gif style solid width 2 target decoration arrow color 215 0 0 tool name OAction gt Viewpoint tool description Create a new link from an Outcome Action to a Viewpoint ref Viewpoint OActionTOViewpoint gmf link tool small bundle Aore edit tool small path icons full obj16 0ActionTOFRAggModule gif tool large bundle Aore edit tool large path icons full obj16 0ActionTOFRAggModule gif style solid width 2 target decoration arrow color 215 0 0 tool name OAction gt FRAggModule tool description Create a new link from an Outcome Action to a Functional Requirements Aggregation Module Node ref FRAggregationModule OActionTOFRModule gmf link tool small bundle Aore edit tool small path icons full obj16 OActionTOFRequirement gif tool large bundle Aore edit tool large path icons full obj16 OActionTOFRequirement gif style solid width 2 target decoration arrow color 215 0 0 tool name OAction gt FRequirement tool description Create a new link from an Outcome Action to Functional Requirement ref FRequirement OActionTOFRequi
97. cal GMF Graphical Modeling Framework http www eclipse org modeling gmf 2004 32 Editing Framework e suporta uma infra estrutura que fornece uma componente de gera o e tempo de execu o para desenvolver editores gr ficos O GMF usa como input um metamodelo e o seu processo de execu o est descrito na Figura 3 5 Develop graphical definition gmigraph Create generator model Develop tooling definition Create GMF D Dona gmfgen Adjust generaton parameters Develop mapping definition Generate diagram plug ins O gmimap Figura 3 5 Processo GMF Para obter o editor visual gerado pelo GMF necess rio seguir um procedimento regrado Este processo feito com o aux lio do Dashboard que guia o utilizador de forma a efectuar o processo pela ordem correcta Inicialmente importa se o metamodelo desejado para se iniciar o processo de gera o No Dashboard selecciona se o metamodelo seguindo se a deriva o do modelo de dom nio Domain Model modelo gr fico Graphical Model e finalmente do modelo de ferramentas Tool Model O modelo de dom nio um modelo conceptual que descreve as v rias entidades envolvidas num sistema e as rela es entre elas O modelo gr fico descreve as componentes que v o constar de cada modelo feito no editor visual tal como a sua apar ncia Por fim o modelo de ferramentas possui a defini o de todas
98. caracter sticas abstracg o e restrig o que ela fornece A escolha de uma abstracg o apropriada facilita as fases de requisitos desenho implementa o e manuten o atrav s da introdu o de entidades de alto n vel e rela es que se enquadram de perto no dominio A restri o da expressividade da linguagem permite uma an lise autom tica e o suporte de verifica o modifica o e manuten o 41 A LDE Mawl Atkins et al 1999 foi assim constru da com o objectivo de resolver problemas espec ficos da cria o de servi os web din micos a falta de garantias de tempo de compila o sobre os servi os e o pequeno n vel de programa o envolvido em desenvolver programas CGI Trata se de uma linguagem para programar servi os baseados em forms num modo independente de dispositivos que fornece aux lio a servi os form based para web e telefone A introdu o do form obriga a que haja uma separa o de assuntos entre o servi o l gico e a interface do utilizador O dom nio desta LDE todo o conjunto de servi os em que o utilizador interage com um computador remoto com o objectivo de completar alguma transac o o que pode envolver a pesquisa de informa o a selec o de op es ou itens fornecer respostas a perguntas entre outros Um servi o pode ser t o simples como inserir um nome para obter um n mero de telefone ou t o complexo como ordenar um cat logo Neste trabalho dado realce abstrac o fo
99. ch used to discover and structure requirements based on viewpoints and aspects However there are lots of work that remain to be done in terms of research on AORE such as a diagrammatic representation of their models as the current representation is purely textual making the approach easier to use for software engineers and easier to integrate into model driven development environments the complete specification of its metamodel and specification and rigorous implementation of a tool support for the approach To achieve this goal this work proposes to specify a Domain Specific Language DSL A DSL aims to specify and model concepts in a given field with several advantages over the general area of languages such as allowing expressing a problem in the desired language and level of abstraction delegating the specificationof how to solve for the lower levels of abstraction In order to create a DSL successfully it is usually necessary to start by specifying its abstract syntax using a model called metamodel This model express how to form the models of the same DSL in this case the AORE metamodel and it will be given as an input to the workbenches of the language that will generate the appropriate editor With a proper editor for the language we can specify models with the defined diagrammatic notation In conclusion this dissertation aims to design and develop a DSL for the AORE approach Lista de Acr nimos
100. cifica o feita textual e manualmente When creating the model in the plug in did you kept all the information specified textual and manually A quest o C11 pretende avaliar se o modelo feito na ferramenta capaz de garantir toda a informa o da especifica o textual fornecida n o havendo portanto perdas de informa o C11 O modelo especificado no plug in cont m toda a informa o da especifica o feita textual e manualmente Yes No Don t now Classifica o k Figura 7 16 An lise da informa o obtida comparando com a especifica o feita textual e manualmente A maioria dos utilizadores s o da opini o de que o modelo efectuado na ferramenta possui toda a informa o da especifica o fornecida textualmente No entanto existem 3 utilizadores que n o conseguiram responder a esta quest o Quest o C12 Quantas vezes fez quest es ao supervisor How often did you perform questions to the supervisor A quest o C12 pretende obter o poder da LDE em ser assimilada e compreendida atrav s da an lise da necessidade de ajuda aquando da especifica o de modelos O valor 1 significa que nunca houve necessidade de pedir ajuda ao supervisor para a execu o do teste e o valor 5 significa que foi sempre necess rio pedir ajuda ao supervisor 108 C12 Quantas vezes fez quest es ao supervisor N Pessoas ORNUWUBRUO 1 2 3 4 5 Classifica o Figura 7 17 An lise da
101. compor 16 assuntos E uma das primeiras abordagens de requisitos com aspectos e possui essencial destaque pela integra o de requisitos funcionais com requisitos n o funcionais Trata se de um m todo sim trico uma vez que aborda os assuntos transversais e n o transversais da mesma forma A AORA introduz o conceito match point que representa os pontos onde s o introduzidas as composi es um match point um ponto num sistema onde um ou mais assuntos podem necessitar de ser compostos composto por um conjunto de assuntos que necessitam de estar juntos Um desses assuntos possui o papel de assunto base com o qual o comportamento dos outros assuntos deve estar relacionado Brito 2008 A rela o entre os assuntos expressa atrav s de uma tabela bidimensional de Assuntos vs Assuntos Necess rios Este um modelo iterativo e incremental na medida em que os assuntos s o especificados nas fases seguintes e a qualquer momento que surja um novo assunto o ciclo volta ao in cio A fase inicial da AORA a identifica o de assuntos em que se elicitam os requisitos e se reutilizam os cat logos A fase seguinte consiste em especificar os assuntos em que se identificam as responsabilidades as contribui es entre assuntos as prioridades os assuntos requeridos e se constr em os modelos de assuntos Na terceira fase identificam se os match points e os assuntos transversais 2 4 2 Theme Para antecipar a ident
102. conceitos e uma redu o ess ncia do problema contrariamente a outras linguagens como Java entre outras As LDEs s o essencialmente usadas em programas de pequeno porte que pretendem ter uma proximidade a uma determinada rea reduzindo assim a dist ncia entre o espa o do problema e a linguagem utilizada para exprimir a solu o geralmente linguagens de prop sito geral As LDEs t m sido bastante usadas como foco essencial juntamente com as Transforma es de Modelos no Desenvolvimento Orientado a Modelos Model Driven Development MDD Stahl e Volter 2006 21 3 1 Desenvolvimento Orientado a Modelos Ao longo das ltimas d cadas v rios t m sido os esfor os para tornar as t cnicas orientadas a modelos numa forma de melhorar o desenvolvimento de software Estas t cnicas de forma simples e clara pretendem que o sistema seja desenhado atrav s de modelos de forma a se obter o seu aspecto ou estrutura global Este diagrama ou modelo posteriormente utilizado para implementar o sistema 2 Um modelo B zivin 2005 de uma forma mais concreta a representa o simples e abstracta da estrutura de um sistema funcionalidade ou comportamento devendo ser visual ou gr fico e declarativo Trata se de informa o a um particular n vel de abstrac o da realidade capaz de expressar a qualidade ou as caracter sticas de um objecto ou inst ncia sem no entanto se focar em nenhum deles Um modelo possui elemento
103. cting software from reusable components em IEEE Transactions on Software Engineering pags 564 74 Setembro de 1984 N brega et al 2006 L N brega N Nunes e H Coelho The Meta Sketch Editor em Proceedings CADUI p gs 201 204 Bucareste Rom nia Junho de 2006 Nunes 2009 C Nunes Uma Linguagem de Dom nio Espec fico para a Framework i Mestrado em Engenharia de Software Departamento de Inform tica DI Faculdade de Ci ncias e Tecnologia da Universidade Nova de Lisboa Quinta da Torre Caparica Portugal 2009 Nunes et al 2009 C Nunes J Ara jo V Amaral C Silva A Domain Specific Language for the I Framework em ICEIS2009 p gs 158 163 Mil o It lia Maio de 2009 Pelechano et al 2006 V Pelechano M Albert J Mufioz C Cetina Building Tools for Model Driven Development Comparing Microsoft DSL Tools and Eclipse Modeling Plug Ins Departamento de Informa o Sistemas e Computa o Universidade T cnica de Val ncia Espanha 2006 Rashid et al 2002 A Rashid P Sawyer A Moreira e J Ara jo Early Aspects A Model for Aspect Oriented Requirements Engineering em Proceedings of the IEEE Joint International Conference on Requirements Engineering pags 199 202 Essen Alemanha Setembro de 2002 127 Rashid et al 2003 A Rashid A Moreira e J Ara jo Modularization and composition of aspectual requirements em Proceedings of the International Conference on Aspect or
104. ction gif tool large bundle Aore edit tool large path icons full obj16 ConstraintTOOAction gif style solid width 1 target decoration arrow color 0 0 0 tool name Constraint gt OAction tool description Create a new link from a Constraint node to an Outcome Action node ref OutcomeAction 1 ConstraintTOOAction abstract class OutcomeAction attr String name gmf node figure figures FulfilledFigure label name label icon false label placement external tool description Create a new Fulfilled Outcome Action node class Fulfilled extends OutcomeAction 146 gmf node figure figures SatisfiedFigure label name label icon false label placement external tool description Create a new Satisfied Outcome Action node class Satisfied extends OutcomeAction ref Viewpoint OActionTOViewpoint ref FRModule OActionTOFRAggModule ref FRequirement OActionTOFRequirement Ggmf link tool small bundle Aore edit tool small path icons full obj16 SatisfiedTOCOperator gif tool large bundle Aore edit tool large path icons full obj16 SatisfiedTOCOperator gif style solid width 1 target decoration arrow color 0 0 0 tool name Satisfied gt COperator tool description Create a new link from a Constraint node to an Outcome Action node ref ConstraintOperator SatisfiedTOCOperator abstract class ConstraintAction gmf 1link tool small bundl
105. d 1 attr String name attr String description gmf compartment foo bar val Constraint 1 hasConstraint gmf compartment foo bar val OutcomeAction 1 hasOutcAct gmf compartment foo bar val ConstraintOperator hasco gmf node figure rounded label name color 240 240 240 border color 64 0 128 border width 2 tool name Constraint tool description Create a new Constraint node class Constraint attr String name gmf compartment foo bar val ConstraintAction 1 hasConstAction gmf compartment foo bar val ConstraintOperator 1 hasConsOper gmf link tool small bundle Aore edit tool small path icons full obj16 ConstraintTOOAction gif tool large bundle Aore edit tool large path icons full obj16 ConstraintTOOAction gif style solid width 1 target decoration arrow color 0 0 0 tool name Constraint gt OAction tool description Create a new link from a Constraint node to an Outcome Action node ref OutcomeAction 1 ConstraintTOOAction gmf node label name label icon false label placement internal abstract class OutcomeAction attr String name gmf node figure figures FulfilledFigure label name label icon false label placement external tool description Create a new Fulfilled Outcome Action node class Fulfilled extends OutcomeAction 135 gmf node figure figures SatisfiedFigure label name la
106. de Resposta Y 0 8 Seguranca 1 0 No Anexo A apresentam se os construtores existentes para a linguagem de composic o uma linguagem que pode ser dif cil de usar em parte por ser puramente textual mas tamb m por ter muitos operadores Nesta disserta o pretende se definir uma linguagem mais visual e mais simples implementada com uma Linguagem de Dom nio Espec fico Linguagens de Dom nio Espec fico s o descritas no Cap tulo 3 15 2 3 1 Ferramenta ARCaDe A ferramenta ARCaDe Aspectual Requirements Composition and Decision Rashid et al 2003 uma ferramenta de suporte abordagem AORE usada para definir os requisitos dos viewpoints e dos aspectos assim como as regras de composi o atrav s de templates pr definidos em XML Estes m dulos de encapsulamento de informa o s o posteriormente guardados num sistema de base de dados XML A ferramenta facilita a verifica o e valida o das regras de composi o certificando se de que as regras se referem a viewpoints aspectos e requisitos que existem na base de dados Permite a modulariza o dos assuntos viewpoints e regras de composi o e ainda capaz de identificar poss veis casos de conflito para sua posterior resolu o Esta ferramenta utiliza XML pois evidenciada uma necessidade de definir ac es espec ficas para assuntos e operadores de composi o para conseguir obter as regras de composi o No mec
107. de requisitos funcionais Os m dulos de agrega o de requisitos funcionais s o representados por um rect ngulo cinzento cujas extremidades s o azuis A separa o entre os compartimentos do viewpoint realizada atrav s da linha vermelha que se encontra ap s a sua especifica o Os requisitos funcionais dos viewpoints s o tamb m representados por um rect ngulo cinzento cuja extremidade cinzenta Um m dulo de agrega o de regras de composi o pode ser visualizado na Figura 5 16 CAggM ConcernsAggregationModule Contribution null A Response Time Correctness 1 The system needs to react in time in order to 1 The system must ensure correctness of the data read the gizmo Identifier turn on the light to green or yellow display the amountto be pald photograph the plate number from the rear sound the alarm respond to gizmo activation and reactivation 1 1 calculated within the system 1 2 exchanged with the environment A Compatibility 1 The system must be compatible with systems used to 1 1 activate and reactivate gizmos 1 2 deal with infraction incidents Figura 5 14 M dulo de agrega o de concerns do caso de estudo Via Verde VAggM Toll Gate V Paying Toll 1 A green light is turned on if the gizmo is valid 2 Ayellow light is turned on if the gizmo is not valid 3 An alarm is sounded if the gizmo is not present or invalid 4 The amount being debited is
108. de sistemas complexos ou seja que possuem um elevado n mero de componentes cuja estrutura e comportamento n o pode ser descrito por um simples formalismo O AToM tem como tarefas essenciais a meta modela o e a transforma o de modelos e funciona ao n vel do metamodelo e do meta metamodelo O metamodelo o resultado da meta modela o e permite a constru o de modelos v lidos de acordo com um formalismo sendo que o meta metamodelo usado para definir os pr prios formalismos A transforma o de modelos refere se ao processo autom tico de converter um modelo num dado formalismo ou noutro modelo que pode ou n o estar no mesmo formalismo 35 Esta ferramenta possui diferentes formalismos ao nivel da meta modela o A partir destes gerada uma ferramenta para processar os modelos descritos no formalismo especificado Os modelos s o representados atrav s de grafos de sintaxe abstracta e as opera es que lhes s o feitas optimiza o de modelos transforma o de modelos entre outros podem ser expressas atrav s de modelos de gram ticas de grafos Alguns exemplos de meta metamodelos para esta ferramenta s o ER Petri Nets e DFD A componente principal do AToM o processador pois ele que manipula os modelos e gera o c digo para as ferramentas Outra ferramenta usada para modela o de dom nios espec ficos a Meta Sketch N brega et al 2006 Trata se de uma aplica o que permite o r pi
109. dentificador fornecido ao propriet rio e este necessita de o activar atrav s de uma esta o multibanco para que seja feita a liga o entre o sistema Via Verde e a conta banc ria do propriet rio O Identificador geralmente localizado no vidro da frente do ve culo onde pode ser facilmente lido pelos sensores Cada passagem feita pelo identificador nas faixas da Via Verde lida pelos sensores e enviada informa o para o sistema Aquando das passagens do identificador pelos corredores Via Verde v rios cen rios podem acontecer Se o ve culo for autorizado uma luz verde mostrada e o valor a ser debitado exibido Caso o ve culo n o seja autorizado mostrada uma luz amarela e uma fotografia tirada matr cula do ve culo para que este seja penalizado No sistema Via Verde exitem 3 tipos de cancelas cancela nica cancela de entrada e cancela de sa da A cancela nica utilizada por exemplo nos parques de estacionamento onde o mesmo tipo de ve culo paga uma quantia fixa A cancela de entrada utilizada aquando da entrada numa auto estrada e a cancela de sa da utilizada aquando da sua sa da De notar que o montante pago numa auto estrada depende do tipo de ve culo e da dist ncia percorrida E com base nesta informa o que foi elaborado um pequeno excerto do caso de estudo Via Verde na ferramenta VisualAORE A LDE VisualAORE composta por um editor base e tr s sub editores como j foi
110. dentificar o texto que representa os conceitos A maioria dos utilizadores considerou que o texto representativo dos conceitos f cil de identificar Quest o B4 1 Qual o texto que achou inadequado Which one did you find inadequate Alguns utilizadores consideraram que o nome Module associado aos m dulos de agregac o n o sugestivo pois n o fornece a ideia de agrupamento Para resolver esse conflito foi adicionado Agreggation ao nome dos m dulos A t tulo de exemplo o nome ViewpointsModule dado ao m dulo de viewpoints foi alterado para ViewpointsAggregationModule Quest o B5 Quantas vezes cometeu erros devido a semelhancas entre s mbolos How often did you find committing errors due to symbols similarity A quest o B5 pretende avaliar se existem conceitos cujos s mbolos s o semelhantes levando a erros na elabora o dos modelos O valor 1 indica que nunca foram cometidos erros e o valor 5 indica que foram cometidos com elevada frequ ncia 100 B5 Quantas vezes cometeu erros devido a semelhan as entre s mbolos N Pessoas O N E O OW 1 2 3 4 5 Classifica o Figura 7 7 An lise de erros devido a semelhan a entre s mbolos Atrav s da observa o da Figura 7 7 conclui se que apenas 2 pessoas cometeram uma percentagem razo vel de erros As restantes pessoas de forma geral n o cometeram erros Esta an lise indica que de forma geral a sintaxe concreta da l
111. didos em cinco m dulos de agrega o m dulo de agrega o de entidades externas actuadores sensores dispositivos e finalmente m dulo de agrega o de utilizadores Na ferramenta foram especificados todos os viewpoints e concerns e apenas algumas regras de composi o A Figura 6 1 ilustra o m dulo de agrega o de entidades externas Este m dulo cont m os viewpoints Bombeiro Pol cia Operadora e Telem vel No viewpoint Operadora podem se observar os m dulos de agrega o de requisitos funcionais utilizados nas regras de composi o dos concerns Compatibilidade e Tempo de Resposta O m dulo de agrega o de concerns pode ser observado na Figura 6 2 onde poss vel visualizar a especifica o de todos os concerns do caso de estudo assim como as contribui es que exercem entre si 86 VAgoM EntidadesExternas V Bombeiros 1 Se o sistema central efectuar uma chamada de emerg ncia para os bombeiros eles dirigem se ao local da chamada prestando aux lio V Pol cia 1 Se o sistema central efectuar chamada de emerg ncia para a pol cia ela dirige se para o local da chamada e presta aux lio V Operadora 1 Em caso de emerg ncia 1 1 Recebe informa o do tipo de emerg ncia 1 2 Recebe informa o do local da ocorr ncia 1 3 Faz chamada de emerg ncia 2 Se o utilizador pretende configurar o sistema atrav s do telem vel 2 1 Recebe chamada do habitante 2 2 Efectua comunica o entre
112. displayed if the gizmo is valid 4 1 The amount being debited depends on the class of the vehicle 1 Mod1 1 A green light is turned on if the gizmo is valid 2 Ayellow light is turned on if the gizmo is not valid 2 Mod2 4 The amount being debited is displayed if the gizmo is valid 4 1 The amount being debited depends on the class of the vehicle V Exit Toll 1 Ayellow light is shown if the vehicle did not enter using a green lane 2 The amount being debited depends upon the entry point V Single Toll 1 The amount being displayed is fixed V Entry Toll 1 No signals are shown on passing an entry point Figura 5 15 M dulo de agrega o de viewpoints do caso de estudo Via Verde CRAggM Response Time CR 1 ResponseTime Reql 1 C Constraint Mi E y Eno SN gt Satisfied Enforce Between CR 1 ResponseTime Reg1 2 C Constraint e Eno Satisfied Enforce Between Figura 5 16 M dulo de agrega o de regras de composi o do caso de estudo Via Verde sem rela es com os viewpoints nem com os concerns Os m dulos de agrega o de regras de composi o as regras de composi o e as restri es s o representados atrav s de rect ngulos Cada rect ngulo possui uma diferente tonalidade da cor roxa para que sejam facilmente distinguidos Os restantes elementos que constituem as regras de composi o s o representados por de imagens externas conforme foi mostrado ante
113. do No entanto os aspectos surgem muito mais cedo no ciclo de vida do software pelo que necess rio trat los anteriormente mais precisamente na fase de tratamento e an lise de requisitos Na maioria dos sistemas de grande porte pode tornar se complicado manter uma rela o coerente entre os requisitos do sistema na medida em que um simples requisito pode ser implementado por v rias componentes do sistema ou seja pode estar disperso pelos v rios m dulos que o constituem O Desenvolvimento de Software Orientado a Aspectos DSOA fornece uma metodologia para separar os assuntos concerns do sistema a fim de obter sistemas mais modularizados e portanto mais preparados para a sua evolu o Rashid et al 2003 Um assunto pode ser visto como uma funcionalidade do sistema propriedade que o sistema deve fornecer ou algo que tem que ser considerado Filman et al 2005 A necessidade de obter solu es para a separa o dos assuntos na fase de Engenharia de Requisitos inexistentes nos m todos tradicionais fez com que surgisse este novo m todo que tem como base o aspecto O DSOA surge para solucionar o problema da modulariza o incidindo em especifica es de software que possuem assuntos que s o dif ceis de separar os chamados assuntos transversais ou crosscutting concerns Rashid et al 2002 Por crosscutting concern entende se um assunto cuja especifica o se encontra dispersa entre v rios outros a
114. do dominio Literatura t cnica An lise eee i Inqu ritos ao cliente Dominio Aconselhamento de um perito Requisitos actuais e futuros Figura 3 2 An lise de Dom nio 3 5 2 Desenho da Linguagem A forma mais simples de desenhar uma LDE consiste em base la numa nota o formal ou informal previamente existente no dom nio e amplamente usada pelos seus experts Deste modo a implementa o fica mais facilitada e a familiaridade dos utilizadores em alguns casos aumenta No entanto nem sempre existem LDE s no dom nio desejado e os utilizadores da nova linguagem podem n o ser os mesmos que realizaram a linguagem base Mernik et al 2005 O desenho de uma linguagem Figura 3 3 pode ser formal ou informal O desenho informal feito geralmente em linguagem natural enquanto o desenho formal feito atrav s de m todos de defini o da sem ntica Estes m todos incluem a defini o de express es regulares e gram ticas para a especifica o sint ctica da LDE Existem ainda gram ticas de atributos sistemas de reescrita e m quinas de estados abstractas para se obter a especifica o sem ntica da linguagem De salientar que uma LDE pode ser visual textual ou ambas as op es 27 An lise de Dominio Terminologia Conceitos Dados comuns Varia es Figura 3 3 Desenho da Linguagem 3 5 3 Implementa o A implementa o de uma LDE pode ser feita de tr s formas
115. do desenvolvimento de linguagens de modela o cuja tecnologia baseada em OMG composta por tr s componentes sendo estas o editor o merger e o designer O editor a parte essencial da ferramenta e utilizada para definir tanto o modelo como o metamodelo O merger utilizado no metamodelo com o objectivo de englobar todos os pacotes utilizados na defini o do metamodelo em apenas um pacote O designer encontra se ainda em constru o e ir permitir a defini o gr fica da sintaxe concreta da linguagem Actualmente esta defini o feita em ficheiros XML 3 8 Sum rio Este Cap tulo aborda os assuntos LDE e Desenvolvimento Orientado a Modelos tal como os conceitos que destes prov m Estes conceitos s o explicados focando quando s o podem ser utilizados e quais as suas mais valias Posteriormente s o detalhadas as vantagens e desvantagens de uma LDE e feita uma compara o entre estas e as GPL Neste Cap tulo abordam se ainda os conceitos Sintaxe e Sem ntica de uma linguagem definindo se cada uma delas e d se a no o de OCL como uma linguagem capaz de impor restri es e complementar modelos ou linguagens Para que se compreenda melhor o processo de desenvolvimento de uma LDE s o detalhadas as fases que este abrange sendo elas a An lise de Dom nio o Desenho da Linguagem e a Implementa o tamb m descrito de forma pormenorizada o processo que se deve realizar para avaliar formalmente uma L
116. e Aore edit tool small path icons full obj16 CActionTOXor gif tool large bundle Aore edit tool large path icons full obj16 CActionTOXor gif style solid width 1 target decoration arrow color 0 0 0 tool name CAction gt Xor tool description Create a new link from a Constraint Action node to the Constraint Operator Xor ref Xor 1 CActionTOXor attr String name ref NFRequirement NFRequirementTOCAction NFReqToCActionOp abstract class ConstraintOperator attr String name ref FRequirement COperatorTOFRequirement ref FRModule COperatorTOFRAggModule ref Viewpoint COperatorTOViewpoint abstract class AppliedProvide extends ConstraintAction gmf link tool small bundle Aore edit tool small path icons full obj16 AppliedORProvideTOFor gif tool large bundle Aore edit tool large path icons full obj16 AppliedORProvideTOFor gif style solid width 1 target decoration arrow color 0 0 0 tool name Applied Provide gt For tool description Create a new link from the Constraint Action Applied or Provide node to the Constraint Operator For ref For 1 ForTOAppliedProvide AppliedProvideTOFor abstract class OnBetween extends ConstraintOperator ref Enforce 1 EnforceTOOnBetween OnBetweenTOEn force abstract class DuringWithIn extends ConstraintOperator ref Ensure 1 EnsureTODuringWithIn DuringWithInTOEnsure gmf node figure figures AppliedFigure label
117. e contexto importante pois reduz a quantidade de relacionamentos no modelo na medida em que nas regras de composi o que implicam mais do que um requisito do mesmo viewpoint a liga o efectuada ao m dulo e n o a cada requisito de forma individual Este facto contribui para a diminui o da complexidade dos modelos E FRequirement Ed EString E 1 description EString j contains containsRF 0 E Viewpoint le ER FRAggregationModule o ld Elnt hasFRAM o ld Elnt a name EString a name EString o focus EString a description EString a source EString Figura 5 4 Excerto do metamodelo AORE que foca o m dulo de agrega o dos requisitos funcionais As regras de composi o est o organizadas de acordo com a Figura 5 5 Existe um elemento chamado Composition Rule que cont m um e um s element Constraint apenas um elemento Outcome Action e opcionalmente um elemento Constraint Operator O element Constraint possui um elemento Constraint Action e um elemento Constraint Operator Para efectuar a conex o l gica entre estes elementos s o utilizados relacionamentos entre as regras de composi o concerns e viewpoints Deste modo cada requisito ou sub requisito de cada concern possui uma liga o a um elemento Constraint Action Este elemento Constraint Action relaciona se com um elemento Constraint Operator que se relaciona com um 54 viewpoin
118. e crimes na identifica o dos habitantes e do administrador 2 O sistema necessita de ter seguran a de preven o de incidentes ao dar as permiss es correctas a cada habitante e ao administrador 3 O utilizador administrador ou habitante acede ao sistema depois de fazer login no sistema e introduz a senha 3 1 Se o utilizador inserir o login e a senha correctamente t m acesso ao sistema 3 2 Se o utilizador inserir o login e ou a senha incorrectamente t m mais duas possibilidades de voltar a inserir a senha correcta 80 3 2 1 Se o utilizador n o inserir o login e ou a senha correctamente em nenhuma das tentativas efectuadas pode pedir assist ncia remota para se identificar no sistema Tempo de resposta 1 O sistema deve possuir um bom tempo de resposta ao comunicar com a operadora O sistema deve possuir um bom tempo de resposta para ligar desligar o sprinkler O sistema deve responder atempadamente para ligar desligar o alarme O sensor de movimento deve responder atempadamente na detec o de movimento 2 3 4 5 O sensor de fumo e fogo deve responder atempadamente na detec o de fumo e fogo 6 Os actuadores devem responder atempadamente aos pedidos do sistema 7 A pol cia deve responder atempadamente aos pedidos de emerg ncia 8 Os bombeiros devem responder atempadamente aos pedidos de emerg ncia 9 O sistema deve responder atempadamente identifica o dos habitantes e do administrador 10 O sist
119. e desvantagens de uma LDE assim como uma 3 breve compara o com as linguagens GPL Aborda se a Sintaxe e a Sem ntica de uma linguagem e introduz se a linguagem OCL Em seguida dada uma explica o acerca das fases que o desenvolvimento de uma LDE abrange e por fim s o focadas algumas ferramentas teis ao seu desenvolvimento Cap tulo 4 dado o estado da arte atrav s de breves resumos explicando alguns trabalhos relacionados com o trabalho que se est a desenvolver desta disserta o Cap tulo 5 Neste cap tulo descrito o plug in VisualAORE Inicialmente introduzido o metamodelo da linguagem em pormenor e em seguida explicado como se obteve o editor atrav s do metamodelo Finalmente com o objectivo de introduzir a linguagem e o editor aplicada a linguagem ao caso de estudo Via Verde Cap tulo 6 O cap tulo 6 aborda a avalia o da linguagem e do editor Na sec o 6 1 efectuada a avalia o recorrendo ao caso de estudo Smart Home e na sec o 6 2 exposto o resultado da avalia o feita atrav s de testes realizados a um grupo de utilizadores Cap tulo 7 No cap tulo 7 s o abordadas as conclus es do trabalho efectuado as suas limita es e poss veis trabalhos futuros Anexo A Este anexo cont m as tabelas que possuem os construtores da linguagem de composi o ou seja a tabela da descri o das Constraint Actions a tabela de descri o dos Constraint Operators e por fim a tabela de desc
120. e movimento deve responder atempadamente na detec o de movimento 5 O sensor de fumo e fogo deve responder atempadamente na detec o de fumo e fogo 6 Os actuadores devem responder atempadamente aos pedidos do sistema 7 A pol cia deve responder atempadamente aos pedidos de emerg ncia 8 Os bombeiros devem responder atempadamente aos pedidos de emerg ncia 9 O sistema deve responder atempadamente identifica o dos habitantes e do administrador 10 O sistema deve responder atempadamente na verifica o e aceita o das configura es feitas pelo habitante 11 O sistema deve responder atempadamente na verifica o e aceita o da altera o de dados de utilizadores registados e na verifica o e aceita o do registo de novos utilizadores CRAggM Tempo de Resposta 4 ts o a gt gt gt gt PS N p Lo emo Cee Ena Enforce Fulfilled Fulfilled emo Fulfilled Fulfilled V Sensor de movimento Figura 6 4 Regras de composi o do concern Tempo de Resposta 91 Como se pode ver de forma mais geral na Figura 6 5 foi realizada a composi o para todos os requisitos do aspecto Compatibilidade A regra de composi o 1 significa que o requisito 1 1 de Compatibilidade deve ser assegurado no que diz respeito a todas as exig ncias dos actuadores sensores e dispositivos O resultado desta composi o o cumprimento dos viewpoints focados A regra de composi o
121. e uma condi o vai ser assegurada por um ensure Correc o ensure in conjunto de requisitos que foram satisfeitos XOR Ou Exclusivo quando cada requisito satisfeito mas Qualquer Qualquer um n o ambos um Descri o 131 A Tabela A 3 cont m a descri o das Outcome Actions e os aspectos a que se podem aplicar Tabela A 3 Descri o das Outcome Actions Outcome Action Aspectos a que se pode aplicar Descri o satisfied Usado para afirmar que um conjunto de requisitos de um viewpoint v o ser Qualquer um satisfeitas ap s serem aplicadas as restri es do requisito aspectual fulfilled Usado para afirmar que as restri es de um requisito aspectual foram Qualquer um aplicadas com xito 132 Anexo B Modelo Emfatic do editor base gmf foo bar namespace uri AORE prefix AORE package aore gmf diagram foo bar class AORE val Weighs hasWeight val HasImpact hasImpact val Viewpoint hasViewpoint val Concern hasRNFConcern val CompositionRule hasCompositeAggRule val ConcernsAggregationModule hasConcernsAggregationModule val ViewpointsAggregationModule hasViewpointsAggregationModule val CompositionRulesModule hasCompositionRulesAggregationModule gmf node figure rounded label name border width 3 border color 187 0 0 color 255 206 206 tool name Viewpoints Aggregation Module tool description Create a new Viewpo
122. e uma ordem de execu o errada pode mudar o objectivo do aspecto Desta forma podem ocorrer interac es indesejadas entre aspectos que podem levar a programas mal constru dos por estes motivos que este trabalho se centra na ordena o de advices volta de um join point considerado que os problemas de composi o aspectual devem ser tratados atrav s de um aspecto composto O modelo que trata a ordem de execu o dos advices em torno de um join point uma abordagem baseada em regras de composi o que declaram restri es na ordem de execu o As regras possuem uma prioridade e a que obtiver uma maior prioridade obtem preced ncia em caso de conflito Estas regras s o definidas nos pr prios aspectos se um aspecto necessita de ordenar os seus advices ent o ele declara as suas pr prias regras Para lidar e gerir as restri es que atravessam os aspectos ent o necess rio criar um novo aspecto dedicado ao assunto de composi o aspectual este aspecto que ir posteriormente declarar as regras sobre os advices dos diferentes aspectos A linguagem de dom nio espec fico para composi o de aspectos proposta neste trabalho baseada nos conceitos regras de composi o restri es e contextos que lidam directamente com a composi o 39 4 2 2 Outras DSALs A linguagem TwisteR Achencach e Ostermann 2010 um exemplo de uma DSAL com desenvolvimento din mico para Ruby Thomas e Hunt 2000 Ruby
123. ectuar chamada de emerg ncia para a pol cia ela dirige se para o local da chamada e presta auxilio V Operadora 1 Em caso de emerg ncia Weight E 11 Recebe informa o do tipo de emerg ncia 1 12 Recebe informa o do local da ocorr ncia V Ar Condicionado 1 3 Faz chamada de emerg ncia Weight 0a 1 1 Se o sistema central receber informa o das condi es necess rias para que o AC seja ligado ou o seu term stato indicar que atingiu o limite de temperatura dado pelo utilizador o AC liga se 2 Se o utilizador pretende configurar o sistema atrav s do telem vel I 2 Se o sistema central receber informa o das condi es necess rias para que o AC seja desligado ou o seu term stato indicar que atingiu o limite de temperatura dado pelo utilizador o AC desliga se 2 1 Recebe chamada do habitante 2 2 Efectua comunica o entre o habitante e o sistema central V Alarme 1 Se o sistema central receber informa o das condi es necess rias para que o aldrme seja activado ele activa se 2 Se o sistema central receber informa o das condi es necess rias para que o alqrme seja desactivado ele desactiva se 1 Se o sistema central receber informa o das condi es necess rias para quelo sprinkler seja activado ele actida se 2 Se o controlo remoto receber informa o das condi es necess rias para ad o pre seja desactivado eldesaciva se 4
124. ef ConstraintAction NFReqToCActionOp NFRequirementTOCAction gmf node color 240 240 240 border color 0 140 0 tool name Aspect tool description Create a new Aspect node class Aspect extends Concern ref Viewpoint 2 crosscutsVP enum Type POSPOS NegNeg PosNeg NegPos PosNull NullPos NegNull NullNeg WNRO Se ne me r 4 5 6 7 r ll r gmf link label type source in target out style solid width 1 color 50 50 50 source decoration filledclosedarrow target decoration filledclosedarrow tool name Contribution tool description Create a new Contribution link class Contributes attr Type type 134 ref Concern 1 in ref Concern 1 out gmf node figure rounded label name border width 3 border color 111 0 221 color 234 213 255 tool name Composition Rules Aggregation Module tool description Create a new Composition Rules Aggregation Module node class CompositionRulesModule attr String name attr String description gmf compartment foo bar val CompositionRule hasCR gmf compartment foo bar val CompositionRulesModule hasCRM gmf node figure rounded label Id name label pattern 0 1 color 240 240 240 border color 128 128 192 border width 3 tool name Composition Rule tool description Create a new Composition Rule node class CompositionRule attr int I
125. eight weight 0 ref Viewpoint 1 outW ref Concern 1 inW class HasImpact attr String name ref Viewpoint 1 outH ref Concern 1 inH 144 Anexo D Modelo Emfatic do sub editor do elemento CompositioRulesAggregationModule gmf foo bar namespace uri AORE prefix AORE package aore class val val val val val val val val AORE Weighs hasWeight HasImpact hasImpact Viewpoint hasViewpoint Concern hasRNFConcern CompositionRule hasCompositeRule ConcernsModule hasConcernsModule ViewpointsModule hasViewpointsModule CompositionRulesAggregationModule hasCompositionRulesModule class ViewpointsModule attr String name val val Viewpoint hasVP ViewpointsModule hasVM class Viewpoint val FRequirement contains attr int Id 1 attr String name attr String focus attr String source val FRModule hasCM class FRequirement attr String Id 1 attr String description class FRModule attr int Id 1 attr String name val FRequirement containsRF class ConcernsModule attr String name val val val Concern hasConc ConcernsModule hasCM Contributes hasC class Concern val NFRequirement CcontainsNFR attr String name attr int Id 1 class NFRequirement attr String Id 1 attr String description ref Constr
126. ela o A Figura 5 11 ilustra o menu do sub editor do m dulo de agrega o de concerns Neste menu est o contidos os n s Aspect Concern Non Functional Requirement e a rela o Contributes Esta ltima utilizada para efectuar a liga o de contribui o entre concerns e ou aspectos 64 kaap gt Modules CAggM Concerns Aggregation Module CRAgaM Composition Rules Aggregation Module VAggM viewpoints Aggregation Module Concern Composition Rule gt Viewpoint 2 Connections gt Contribution mane Has Impact In Weigh gt NFRequirement gt CAction gt Applied Provide gt For CAction gt Xor gt Enforce gt On Between Ensure gt During With In Exclude gt COperator gt Constraint gt OAction gt Satisfied gt COperator gt COperator gt FRModule gt COperator gt FRequirement gt COperator gt Viewpoint gt OAction gt FRModule QAction gt FRequirement a PES ATA Figura 5 11 Menu do editor base Na Figura 5 12 ilustrado o menu do sub editor do m dulo de agregac o de regras de composic o Este menu encontra se organizado de acordo com a ordem pela qual os elementos devem ser inseridos no editor Assim surgem inicialmente os conceitos Composition Rule e Constraint na secg o de elementos gen ricos Em seguida surgem no menu as sec es Contraint Action Constraint Operator e Outcome Action Dentro de cada uma destas sec
127. em aplicadas as restri es do requisito aspectual Assim o requisito 1 1 do aspecto Response Time deve ser cumprido no intervalo de tempo entre os requisitos do m dulo de agrega o de requisitos funcionais Mod do viewpoint Vehicle O resultado desta composi o o cumprimento dos requisitos do viewpoint Gizmo 70 VAgoM Vehicles CAggM Via Verde Concerns Module V Vehicle CRAggM Response Time 1 The vehicle enters the system when it is within ten meters of the toll gate A Response Time GR 1 ResponseTime Req1 1 4 a 1 The system needs to react in time in orderto 2 The vehicle enters the toll gate C Constraint 1 1 read the gizmo Identifier 3 The vehicle leaves the toll gate a H ee 4 The vehicle leaves the system when it is twenty meters away from the toll gate 1 2 turn on the light to green or yellow MES Ls 1 3 display the amountto be pald Enforce m 1 Mod1 F Between 1 4 photograph the plate number from the rear 2 The vehicle enters the toll gate 1 5 sound the alarm j 3 The vehicle leaves the toll qate 1 6 respond to gizmo activation and reactivation VAggM viewpoints V Gizmo 1 The Gizmo identifier is read by the system 1 1 The gizmo identifier is validated by the system 1 2 The gizmo is checked by the system for being active or not V ATM 1 The ATM sends the customer s card number account number and gizmo identifier to the system for activation a
128. ema deve responder atempadamente na verifica o e aceita o das configura es feitas pelo habitante 11 0 sistema deve responder atempadamente na verifica o e aceita o da altera o de dados de utilizadores registados e na verifica o e aceita o do registo de novos utilizadores O passo seguinte consiste em elaborar as regras de composi o ao n vel dos requisitos individuais e n o apenas dos m dulos que os encapsulam viewpoints e concerns com vista a compor os requisitos do concern em estudo com os requisitos dos viewpoints As regras de composi o como a abordagem AORE foca devem ser especificadas em XML no entanto tamb m estas ser o nesta disserta o feitas em linguagem informal Abaixo pode ler se a especifica o da composi o dos assuntos Seguran a e Tempo de Resposta Composi o de Seguran a 1 O requisito 1 do concern Seguran a deve ser satisfeito antes de todos os requisitos do viewpoint Administrador e do viewpoint Habitante 2 O requisito 2 do concern Seguran a deve ser satisfeito antes de todos os requisitos do viewpoint Administrador e do viewpoint Habitante 3 O requisito 3 do concern Seguran a deve ser satisfeito antes de todos os requisitos do viewpoint Administrador e do viewpoint Habitante Composi o de Tempo de Resposta 1 O requisito 1 do concern Tempo de Resposta deve restringir os requisitos 1 3 e 2 2 da viewpoint Operadora 2 O requisito 2 do concern Tempo de Respo
129. ent NFRequiremENTOCAction COperatorTOFRequirement 0 2 Id EString n a hasCongOper 0 1 containsRF description EString NFReqTjoCAktionOp has ConstraintTOPAction n 1 hasOutfAct b e uirement FERA neu contains a Id EString ee o description EString name EString regationModul o ld Elnt ni hasCongtraint a name EString Ccontaing NFR 0 e description EString CompositionRule Kapaa ald Eint hapFRAggM out 1 ET a name EString Ll Ci name EString 1 oO Esto COperatorTPViewpoint q o ld Elnt 1 inH h jewpoint crosscutsVP Pe ld Elm 0 OActionTOViewpoint e inw o name EString 0 hasCqne a focus EString ntributes je outH 1 o source EString o type Type haC Weighs h k lt enumeration gt o weight Weight BEM hasCR as Weight EStri Zero 0 4 o name EString Um x ZeroDois oncermsAggregationModul j ompositionRulesAggregationModul iewpointsAggregationModul ZeroTres o name EString hasimpaci name EString o name EString ZeroQuatro PosNull o description EString o description EString o description EString ZeroCinco NullPos ZeroSeis NegNull 1 q 1 ZeroSete NullNeg le i ZeroOito hasWeight hbsCompositionRulesAggregationodule ZeroNove hasViewpointsAggragationModule Um hasCpncernsAggregationModute Figura 5 2 Metamodelo AORE 51 Tabela 5 1 Classes do metamodelo que representam n s no editor VisualAORE e sua descri o Classes do metamodelo Descri o
130. enum Type Bosbosa NegNeg PosNeg NegPos NegNull NullNeg PosNull NullPos ll Il wNHO JO UT ds se 5 ll ll ll SE 6 Sa Sq 5 gmf link label type source in target out style solid color 50 50 50 source decoration filledclosedarrow target decoration filledclosedarrow tool name Contribution tool description Create a new Contribution link class Contributes attr Type type ret Concer nmin im ref Concern 1 out class CompositionRulesModule attr String name val CompositionRule hasCR val CompositionRulesModule hasCRM class CompositionRule attr int Id 1 attr String name val Constraint 1 hasConstraint val OutcomeAction 1 hasOutcAct val ConstraintOperator hasco class Constraint attr String name val ConstraintAction 1 hasConstAction val ConstraintOperator 1 hasConsOper ref OutcomeAction 1 ConstraintTOOAction abstract class OutcomeAction attr String name class Fulfilled extends OutcomeAction class Satisfied extends OutcomeAction ref Viewpoint 1 OActionTOViewpoint ref FRModule OActionTOFRModule ref FRequirement OActionTOFRequirement ref ConstraintOperator SatisfiedTOCOperator abstract class ConstraintAction ref Xor 1 CActionTOXor 142 width 1 attr String name ref Concern ConcernTOCAction ConcernToCActionOP ref NFRequirement NFRequirementTOCAction NFReqToCActionOp
131. er used the ARCaDe tool 111 A quest o C18 pretende avaliar o conhecimento dos utilizadores em ferramentas que lidam com a metodologia AORE C18 J utilizou a ferramenta ARCaDe 15 Dn a A 10 oO os Zz 0 Yes No Don t know Classifica o Figura 7 22 An lise da utiliza o da ferramenta ARCaDe Apenas duas pessoas j trabalharam com a ferramenta ARCaDe Quest o C18 1 Como classifica o plug in VisualAORE rela o ferramenta ARCaDe How do you rate de VisualAORE plug in comparing with the ARCaDe tool Esta quest o tem como objectivo comparar as ferramentas VisualAORE e ARCaDe O valor 1 significa uma m classifica o e o valor 5 significa uma excelente classifica o As duas pessoas que conhecem a ferramenta ARCaDe consideram que a ferramenta apresentada nesta disserta o possui o valor 4 quando comparada com a ferramenta ARCaDe Quest o C18 2 O plug in VisualAORE cont m mais informa o do que a ferramenta ARCaDe The VisualAORE plug in contains more information than the one that is provided by the ARCaDe Os utilizadores consideram que uma vez que se trata de uma ferramenta visual mais r pido obter e compreender a informa o No entanto a informa o ainda que representada de modo diferente a mesma e portanto n o existe mais informa o Quest o C18 3 O plug in VisualAORE cont m menos informa o do que a ferramenta ARCaDe The VisualAORE to
132. erramenta introduzida em seguida de um viewpoint para o sistema Via Verde Rashid et al 2003 ilustrando o viewpoint Ve culo lt xml version 1 0 gt Viewpoint name Veiculo gt lt Requirement id 1 gt 0 ve culo entra no sistema quando est a dez metros de distancia da portagem lt Requirement gt lt Requirement id 2 gt O ve culo entra na portagem lt Requirement gt lt Requirement id 3 gt O ve culo sai da portagem Requirement gt lt Requirement id 4 gt O ve culo sai do sistema quando se encontra a vinte metros de dist ncia da portagem lt Requirement gt lt Viewpoint name VeiculoDesautorizado gt lt Requirement id 1 A matr cula do ve culo fotografada lt Requirement gt lt Viewpoint gt lt Viewpoint gt Figura 2 2 Viewpoint Ve culo em XML Na Figura 2 3 apresenta se a especifica o de um concern Tempo de Resposta 13 lt xml version 1 0 gt lt Concem name Tempo de Resposta gt Requirement id 1 gt O sistema necessita de reagir atempadamente com o objective de lt Requirement id 1 1 gt ler o identificador lt Requirement gt lt Requirement id 1 2 gt ligar a luz de forma a ficar verde ou amarela Requirement gt lt Requirement id 1 3 gt mostrar a quantia a pagar lt Requirement gt lt Requirement id 1 4 gt fotografar a matr cula traseira do veiculo lt Requirement gt lt Requirement id 1 5 gt disparar o alarme lt Requirement gt lt Re
133. esAggregationModule hasCompositionRulesModule gmf diagram foo bar class ViewpointsAggregationModule attr String name attr String description val Viewpoint hasVP val ViewpointsAggregationModule hasVM fgmf node label name label pattern 0 color 240 240 240 border color 215 0 0 border width 3 tool name Viewpoint tool description Create a new Viewpoint node class Viewpoint gmf compartment layout list val FRequirement contains attr int Id 1 attr String name attr SEciInNg FOCUS attr String source gmf compartment foo bar val FRAggregationModule hasCM gmf node figure rectangle label Id description label pattern 0 1 label icon false border color 240 240 240 color 240 240 240 tool name Functional Requirement tool description Create a new Funcional Requirement node class FRequirement attr String d iw attr String description gmf node figure rounded label Id name border width 2 label pattern 0 1 color 240 240 240 border color 0 0 160 tool name Functional Requirements Aggregation Module tool description Create a new Funcional Requirements Aggregation Module node class FRAggregationModule attr audit Ike Alp attr String name attr String description gmf compartment layout list val FRequirement containsRF class ConcernsModule attr String name val
134. essados no formato Ad Hoc As bases de dados tradicionais e os sistemas XML fornecem infra estruturas para processamento de dados no entanto existem car ncias quando se lida com formatos Ad Hoc Em primeiro lugar os analistas que recebem dados Ad Hoc n o possuem possibilidade de os pedir num formato tratado pois os dados s o fornecidos tal como est o Em segundo lugar a documenta o do formato pode n o existir ou pode estar desactualizada e ainda os dados cont m erros frequentemente devido a v rios factores Finalmente os recursos de dados Ad Hoc podem ter um elevado volume O objectivo deste trabalho consiste ent o em desenvolver um parser para tratar este tipo de dados Tende se a utilizar a linguagem C ou Perl para esta tarefa o que se torna numa tarefa tediosa propensa a erros e complicada devido falta de documenta o Desta forma o sistema PADS torna a vida facilitada para os analistas de dados fornecendo uma linguagem de descri o de dados que permite descrever o esbo o f sico dos seus dados A linguagem tamb m permite descrever propriedades sem nticas esperadas dos seus dados de modo a que os desvios podem ser sinalizados como erros O objectivo permitir ao analista capturar nas descri es PADS tudo o que eles sabem sobre um conjunto de dados fornecido e disponibilizar aos analistas uma biblioteca de rotinas teis em troca 4 3 4 Uma LDE para modelos de din mica de paisagens O estudo da din mica na
135. estes requisitos Abaixo encontram se descritos alguns tipos de abordagens actualmente existentes e ER Orientada a Objectivos Lamsweerde 2001 oferece mecanismos de levantamento de requisitos baseados na identifica o de objectivos para melhor traduzir o que um requisito contempla Fornece um elevado n vel de abstrac o e os seus objectivos podem ser funcionais ou n o funcionais Como exemplo destacam se os m todos i Yu 1995 e KAOS Lamsweerde et al 1991 e ER Orientada a Objectos nesta abordagem um objecto representa um requisito que cont m informa o acerca do processo produto e da sua funcionalidade Rumbaugh et al 1991 Como exemplo de abordagens tradicionais foco a OOSE Jacobson 1991 e a OMT Rumbaugh et al 1999 Actualmente as abordagens s o baseadas em UML Rumbaugh et al 1999 1 e ER Orientada a Viewpoints abordagem em que os viewpoints encapsulam a informa o de cada perspectiva do sistema atrav s de requisitos que cont m a sua especifica o e g PREview Sawyer et al 1996 e ER Orientada a Aspectos esta abordagem efectua a identifica o modulariza o e composi o de assuntos transversais crosscutting concerns ou aspectos Isto facilita a sua identifica o e tratamento dando origem a processos de desenvolvimento de software mais modularizados Como exemplo real o abordagem AORE Rashid et al 2003 O foco deste trabalho na Engenharia de Requisitos Or
136. fas mmm Question rio Final An lise dos Resultados Figura 3 4 Fases da avaliag o de uma LDE Sess o de avalia o Por linguagem O processo descrito o processo formal utilizado para avaliar uma LDE de uma forma emp rica ou tamb m dita experimental Apesar de se tratar de um processo essencial para validar a linguagem normalmente estas avalia es n o s o feitas com tanto rigor Gabriel et al 2010 29 3 7 Ferramentas de suporte para construir LDEs Existem diversas ferramentas para proceder ao desenvolvimento de uma LDE Algumas s o mais antigas tal como a Draco Neighbors 1984 ASF SDF Brand et al 2001 Kephera Faith et al 1997 Kodiyak Herndon e Berzins 1988 IrffoWiz Nakatani e Jones 1997 entre outras encontrando se desactualizadas Presentemente s o utilizadas as ferramentas abaixo enumeradas 3 71 GME O GME Generic Modeling Environment Ledeczi et al 2001 um pacote de ferramentas configur vel para modela o de dom nios espec ficos atrav s de um ambiente visual Suporta v rias configura es baseadas num conjunto de conceitos implementados pelo pr prio GME e cada uma delas acompanhada por um metamodelo que especifica o paradigma do dom nio da aplica o a modelar O paradigma engloba a sint ctica a sem ntica e toda a informa o sobre o dom nio conceitos rela es entre eles e outros Os principais conceitos usados para definir um
137. ficar modelos KAOS Foi portanto conseguida uma nova ferramenta capaz de lidar com os novos conceitos introduzidos e capaz de verificar a consist ncia sint ctica dos modelos Tamb m a introdu o do conceito Compartimento foi muito bem conseguida pois 38 dada a sua capacidade de colapsa o torna se poss vel resolver o problema da escalabilidade dos modelos de tamanho elevado 4 2 LDEs para Programa o Orientada a Aspectos 4 2 1 Uma DSL para especificar a ordem de execu o de aspectos O objectivo da programa o orientada a aspectos a separa o de assuntos onde cada assunto pode ser desenvolvido por um perito no dom nio do problema abordado por aquele Este trabalho Marot e Wuyts 2008 destaca a programa o orientada a aspectos sabido que a programa o orientada a aspectos AOP possui o problema da composi o de m ltiplos aspectos que em geral dif cil de efectuar Por este motivo apresentado um modelo em que os problemas da composi o s o considerados como assuntos transversais tratados por um aspecto composto implementado utilizando uma linguagem de dom nio espec fico para composi o de aspectos Esta linguagem declarativa e permite trocar a ordem da composi o durante o tempo de execu o especialmente se os aspectos compostos foram desenvolvidos isoladamente Quando v rios advices executam no mesmo join point importante considerar a ordem pela qual eles executam dado qu
138. ficuldades devem ser ultrapassadas o que inclui tanto a computa o ubiqua como problemas inform ticos relacionados com a sa de A incorpora o dos assuntos da computa o ub qua requer a adop o de quest es tais como a mobilidade e a sensibiliza o para o contexto Estas quest es s o inerentemente transversais dado que toda a aplica o deve adaptar o seu comportamente em v rios pontos da sua funcionalidade base As aplica es de sa de pervasiva t m sido geralmente desenvolvidas utilizando t cnicas de programa o tradicionais Com a chegada de v rios middlewares ub quos e frameworks o desenvolvimento computacional tem sido ajudado apesar de ainda ser induficiente 40 A linguagem ALPH Munnelly e Clarke 2007 foi elaborada com o objectivo de fornecer uma programa o mais eficiente e dentro de um dom nio espec fico Constru es de alto n vel desempenham tarefas espec ficas ao dom nio e fornecem um elevado n vel de abstrac o para os peritos Isto leva a um c digo mais expressivo e facilita o desenvolvimento das aplica es Tamb m o uso de LDEs em vez de linguagens de prop sito geral GPLS reduz o esfor o necess rio para aprender os conhecimentos espec ficos exigidos ao perito dado que as constru es s o mais intuitivas e representativas semanticamente Esta nova linguagem ambiciona fornecer constru es que representem tarefas ou entidades de dom nio espec fico Neste trabalho a linguagem
139. framework descobrir as suas incoer ncias objectivos e funcionalidades para assim conseguir a constru o de um metamodelo capaz de resolver as falhas existentes Este metamodelo tem como objectivo fundamental gerir a escalabilidade dos modelos criados e para tal foi realizada a especifica o de uma LDE O melhoramento do metamodelo da framework i foi resolvido atrav s da constru o de um novo metamodelo e de novos mecanismos que d o aux lio escalabilidade dos modelos gerados Foi tamb m introduzido o conceito de compartimento de forma a visualizar melhor as depend ncias entre os actores 37 Os objectivos deste trabalho foram cumpridos pois dele surgiu uma nova ferramenta capaz de implementar de forma total a framework em estudo garantindo que todos os modelos sao correctos e aceites de acordo com o metamodelo elaborado 4 1 2 Uma Linguagem Espec fica do Dom nio para uma abordagem orientada aos objectivos baseada em KAOS A disserta o Uma Linguagem Espec fica do Dom nio para uma abordagem Orientada aos objectivos baseada em KAOS Dias 2009 surge com o objectivo de melhorar a qualidade das especifica es e da linguagem da metodologia KAOS O KAOS um m todo da EROO que permite a defini o de objectivos com diferentes n veis de abstrac o e que possui um modelo conceptual para adquirir e estruturar os requisitos atrav s de uma linguagem de aquisi o Este processo compreende as fases Elabora
140. ga o cuja origem pode ser o elemento Applied ou o elemento Provide de Constraint Action e o destino o elemento Constraint Operator For Liga o cuja origem pode ser qualquer elemento de Constraint Action e o CActionToXor ae destino o elemento Constraint Operator Xor Liga o cuja origem o elemento Constraint Action Enforce e o destino EnforceToOnBetween e e f pode ser o elemento Constraint Operator On ou Between E e Ligac o cuja origem o elemento Constraint Action Ensure e o destino EnsureTODuringWithIn e i E i y A pode ser o elemento Constraint Operator During With ou In Liga o cuja origem o elemento Constraint Action Exclude e o destino ExcludeTOCOperator a E pode ser qualquer elemento Constraint Operator ConstraintTOO Action Liga o cuja origem o elemento Constraint e o destino pode ser qualquer elemento Outcome Action SatisfiedToCOperator Liga o cuja origem o elemento Outcome Action Ensure e o destino pode ser qualquer Constraint Operator COperatorTOFRequirement Liga o cuja origem um elemento Constraint Operator e o destino um requisito funcional COperatorTOFRA Module Liga o cuja origem um elemento Constraint Operator e o destino um m dulo de agrega o de requisitos funcionais COperator TOViewpoint Liga o cuja origem um elemento Constraint Operator e o destino um viewpoint OActionTOF
141. ggregationModule Com o objectivo de proceder a uma explica o da LDE VisualAORE recorreu se ao caso de estudo Via Verde apresentado no Cap tulo 2 desta disserta o A ferramenta VisualAORE composta por n s e links Os links s o representados atrav s de setas e a maioria dos n s s o representados por rect ngulos No entanto existem n s que s o representados por imagens adicionadas de forma externa atrav s de um plug in criado no decorrer deste trabalho denominado AOREFigures A Figura 5 14 ilustra o conte do de um m dulo de agrega o de concerns Neste m dulo pode visualizar se o concern Correctness e a sua especifica o atrav s de requisitos n o funcionais O m dulo cont m tamb m os aspectos Response Time e Compatibility e suas respectivas especifica es O aspecto Response Time exerce uma contribui o negativa sobre o concern Correctness que representada pela rela o Contribution null A rela o Contribution uma rela o bidireccional e como tal o primeiro par metro corresponde contribui o do elemento que se encontra esquerda em rela o quele que est direita e a segunda contribui o do elemento que se encontra mais direita para com o que se encontra mais esquerda Caso os concerns se encontrem alinhados verticalmente o primeiro par metro da contribui o do elemento que se encontra acima para com o elemento que se encontra abaixo e a segunda contribui o
142. ientada a Aspectos EROA A EROA tem o aspecto como conceito base e possui a vantagem de suportar a separa o de assuntos Um aspecto um crosscutting ou seja um assunto cuja funcionalidade se encontra dispersa por m ltiplos m dulos do sistema Deste modo os assuntos podem ser modularizados tratados e compreendidos separadamente o que facilita a evolu o dos requisitos Este tema abrangido pelo Desenvolvimento de Software Orientado a Aspectos DSOA discutido no Cap tulo 3 e possui diversas abordagens que o suportam como poss vel constatar adiante Algumas das abordagens que o DSOA contempla n o possuem uma representa o visual n o podendo ser esquematizadas nem definidas com elevada precis o Uma das abordagens mais conhecidas a AORE Aspect Oriented Requirements Engineering orientada a aspectos com viewpoints No entanto a AORE um exemplo de abordagem que n o possui representa o visual dos seus modelos e n o especifica os meta dados atrav s de um metamodelo Dado que se trata de uma abordagem cujos modelos s o textuais e portanto eventualmente memos atractivos para a sua utiliza o seria conveniente a especifica o de uma ferramenta constru da atrav s de uma linguagem visual e mais abstracta e que suporte os conceitos espec ficos ou seja uma LDE Linguagem de Dom nio Espec fico Uma LDE uma linguagem com um elevado n vel de abstrac o cujo objectivo modelar e especificar o
143. iented Software Development pags 11 20 Boston EUA 2003 Reisner 1981 P Reisner Human Factors Studies of Database Query Languages A Survey and Assessment Computing Surveys ACM V 13 N 1 p gs 13 31 Mar o de 1981 Rumbaugh et al 1991 J Rumbaugh M Blaha W Premerlani F Eddy W Lorensen Object Oriented Modeling and Design Editora West Prentice Hall Nova Iorque EUA 1991 Rumbaugh et al 1999 J Rumbaugh I Jacobson e G Booch The Unified Modeling Language Reference Manual C 13 pags 484 485 Editora Addison Wesley 1999 Sardinha et al 2010 A Sardinha J Ara jo A Moreira A Rashid Conflict Management in Aspect Oriented Requirements Engineering Workshop em Early Aspects AOSD 2010 Rennes Fran a Mar o de 2010 Sawyer et al 1996 P Sawyer I Sommerville e S Viller PREview Tackling the Real Concerns of Requirements Engineering Cooperative Systems Engineering Group Relat rio T cnico CSEG Departamento de Computa o da Universidade de Lancaster Reino Unido 1996 Simos 1996 M Simos Organization Domain Modeling ODM Domain Engineering as a Co Methodology to Object Oriented Techniques em Fusion Newsletter V 4 p gs 13 16 Laborat rios Hewlett Packard 1996 Sommerville 2007 I Sommerville Software Engineering Addison Wesley 8 Edi o 2007 Sommerville e Sawyer 1997 I Sommerville e P Sawyer Viewpoints principles problems and a practical appro
144. ifica o de aspectos surge a abordagem Theme que visualiza as rela es entre os comportamentos num documento de requisitos Clarke e Baniassad 2005 A abordagem Theme Clarke e Baniassad 2005 identifica aspectos atrav s de verbos ac es utilizada ao n vel da Engenharia de Requisitos quando poss vel efectuar uma an lise sint ctica da documenta o inicial dos requisitos do sistema Trata se de uma abordagem que resolve essencialmente os assuntos transversais funcionais Os assuntos n o funcionais dado que por vezes n o se encontram na forma de verbo podem ser reescritos para ser poss vel a identifica o das ac es Um Theme uma ac o ou seja um elemento de desenho um aglomerado de estruturas e comportamentos representativos de uma funcionalidade do sistema Clarke e Baniassad 2005 Quando se fala em Theme n o se deve considerar um sin nimo de aspecto Os Themes s o mais gerais e abrangem de forma mais estreita os assuntos tratando se de encapsulamento dos mesmos Sommerville 2007 17 O processo Theme contempla tr s fases An lise Desenho e Composi o Na primeira fase feita uma an lise com via a identificar os temas A fase de Desenho consiste em desenhar Themes usando UML Na ltima fase especificado o modo como os Themes s o combinados ou relacionados 2 4 3 MATA O MATA uma nota o e ferramenta que utiliza essencialmente diagramas de classe sequ ncia e de estad
145. igura 7 3 An lise do grau de compreens o da linguagem VisualAORE 98 Figura 7 4 An lise da facilidade em aprender os conceitos da linguagem 99 Figura 7 5 An lise da facilidade de reconhecimento dos simboloS ccsceeeteeeeeeeeeeeesees 99 Figura 7 6 An lise da dificuldade em identificar o texto que representa os conceitos 100 Figura 7 7 An lise de erros devido a semelhan a entre s mbolos ooooonconincnincninccninccconannnos 101 Figura 7 8 An lise de erros causados devido a vocabul rio amb guo 101 Figura 7 9 An lise da facilidade de elabora o de modelos AORE 103 Figura 7 10 An lise da qualidade do processo de elabora o de modelos atrav s do plug in VEURE spill tae liao saree lances Sec OE Da aU aa nado A 103 Figura 7 11 An lise da dificuldade em utilizar o plug in VisualA ORE 104 Figura 7 12 An lise da capacidade em realizar altera es nos modelos 105 Figura 7 13 An lise do esfor o f sico necess rio realiza o do caso de estudo 105 Figura 7 14 An lise dos resultados esperados e eeeeerereeereranars 106 Figura 7 15 An lise da frequ ncia com que o utilizador se sentiu incapaz de exprimir o que DESC AV A anistia tel pad ted eileen A prados A lel paid a aaa pad ees 106 Figura 7 16
146. il No entanto duas pessoas consideraram o caso de estudo dif cil E poss vel que estas ltimas pessoas n o possuam conhecimentos significativos na rea de ERDS Quest o C16 Em que que sentiu mais dificuldade de desempenho ou racioc nio What did you feel more difficult to reason perform A quest o C16 tem o objectivo de recolher as maiores dificuldades encontradas na utiliza o da ferramenta para a elabora o do caso de estudo As dificuldades encontradas foram e Relembrar conceitos j esquecidos e Organizar a informa o no editor de modo a ser mais facilmente visualizada e Realizar as regras de composi o Quest o C17 Qual a sua opini o acerca da correc o do caso de estudo efectuado How do you feel about the correctness of the performed case study A quest o C17 tem o objectivo de avaliar a correc o dos modelos efectuados atrav s da ferramenta VisualAORE O valor 1 significa que o utilizador considera que o modelo obtido n o correcto o valor 5 significa que o modelo muito correcto C17 Qual a sua opini o acerca da correc o do cen rio efectuado 15 N Pessoas un Classificac o Figura 7 21 An lise da correcg o do caso de estudo De acordo com os resultados obtidos pode afirmar se que a maioria dos utilizadores considera que a ferramenta oferece um elevado n vel de correcg o Quest o C18 J utilizou a ferramenta ARCaDe Have you ev
147. implementa o final gerada a partir dele 22 3 2 Vantagens e Desvantagens de uma LDE Uma linguagem LDE permite solu es que podem ser expressas no idioma e ao n vel de abstrac o do dom nio do problema Deste modo os peritos conseguem compreender validar ou at mesmo desenvolver LDEs Permite assim a valida o e a optimiza o ao n vel do dom nio As altera es ao n vel dos requisitos tamb m s o rapidamente feitas pelo perito pois basta proceder altera o da parte do modelo afectada pela mudan a Deusen et al 2000 Os programas elaborados com LDEs s o concisos documentam se e podem ser reutilizados para diferentes prop sitos Isto facilita o seu desenvolvimento ao n vel de perda de tempo na realiza o da documenta o e permite a compreens o imediata do programa Devido elevada facilidade de uso e programa o considerada simples e reduzida as LDEs aumentam a produtividade confian a manuten o e portabilidade Tornam se tamb m facilmente constru das por algu m que n o seja necessariamente um programador end users Deste modo aumentam a capacidade de teste seguindo determinadas abordagens Deusen et al 2000 As LDEs d o forma a um dom nio de conhecimento e disponibilizam a conserva o e a reutiliza o deste conhecimento Deusen et al 2000 Apesar de ser uma linguagem que possui todas as vantagens apontadas anteriormente existem tamb m algumas desvantagens
148. inguagem n o leva a confus es entre os s mbolos devido sua poss vel semelhan a Quest o B6 Quantas vezes cometeu erros devido a vocabul rio amb guo How often did you find committing errors due to ambiguous vocabulary A quest o B6 pretende avaliar se frequente cometer se erros devido exist ncia de um vocabul rio amb guo O valor 1 significa que n o foram cometidos erros e o valor 5 significa que foram cometidos erros sempre B6 Quantas vezes cometeu erros devido a vocabul rio amb guo N Pessoas un Classificac o Figura 7 8 An lise de erros causados devido a vocabul rio amb guo Apenas duas pessoas cometeram alguns erros devido a exist ncia de vocabul rio ambiguo A esmagadora maioria n o cometeu erros Esta an lise indica que o vocabul rio utilizado na linguagem n o amb guo e portanto n o leva produ o de erros aquando da especifica o de modelos Quest o B7 Que mudan as ou caracter sticas adicionais prop e linguagem What changes or additions do you propose to the language A quest o B7 tem como objectivo recolher sugest es de altera o linguagem em teste 101 Alguns utilizadores consideram que seria interessante colocar numera o autom tica nos requisitos Tamb m foi sugerido alterar o nome Module para Group As quest es do grupo C avaliam a usabilidade da linguagem e do editor assim como as funcionalidades de modela
149. ints Aggregation Module node class ViewpointsAggregationModule attr String name attr String description gmf compartment foo bar val Viewpoint hasVP gmf compartment foo bar val ViewpointsAggregationModule hasVM gmf node label name label pattern 0 color 240 240 240 border color 215 0 0 border width 3 tool name Viewpoint tool description Create a new Viewpoint node class Viewpoint gmf compartment layout list val FRequirement contains attr int Id 1 attr String name attr String focus attr String source gmf compartment foo bar val FRAggregationModule hasCM gmf node figure rectangle label Id description label pattern 0 1 label icon false border color 240 240 240 color 240 240 240 tool name Functional Requirement tool description Create a new Funcional Requirement node class FRequirement attr String Id 1 attr String description gmf node figure rounded label Id name border width 2 label pattern 0 1 color 240 240 240 border color 0 0 160 tool name Functional Requirements Aggregation Module tool description Create a new Funcional Requirements Aggregation Module node class FRAggregationModule attr int Id 1 attr String name attr String description gmf compartment layout list 133 val FRequirement containsRF gmf node figure rounded l
150. ional Requirement 0 71 Functional Requirements Aggregation Module Functional Requirement Name Constraint Action Constraint Operator Functional Requirement Constraint Operator Outcome Action Constraint Action Applied Figura 5 1 Diagrama de features 48 No diagrama da Figura 5 1 observa se que um modelo AORE composto por uma ou v rias features Viewpoints Aggregation Module uma ou v rias features Concerns Aggregation Module uma ou mais features Composition Rules Aggregation Module zero ou mais features HasImpact e zero ou mais features Weight A feature Viewpoints Aggregation Module representa um m dulo de agrega o de viewpoints e portanto composta por uma ou mais features Viewpoint Possui a feature Name e opcionalmente a feature Description A feature Viewpoint composta pelas features Focus Name Source e Description sendo que apenas a feature Name obrigat ria tamb m composta por uma ou mais features Functional Requirement e zero ou mais features Functional Requirements Aggregation Module A feature Functional Requirement composta obrigatoriamente pelas features Description e Id A feature Functional Requirements Aggregation Module possui obrigatoriamente a feature Name e no m nimo duas features Functional Requirement A feature Concerns Aggegation Module representa um m dulo de agrega o de concerns e composta por uma feature obrigat ria Name uma opcional
151. iormente s era poss vel em fases finais do seu desenvolvimento O processo de desenvolvimento da LDE no ambiente de desenvolvimento Eclipse foi semelhante ao apresentado na sec o 3 do Cap tulo 3 apresentando no entanto ligeiras altera es devido utiliza o dos plug ins Emfatic e EuGENia O procedimento seguinte ilustra a sequ ncia de passos efectuada 1 Criar o metamodelo Ecore ou a especifica o do modelo ecore Emf A partir de qualquer um destes modelos poss vel obter o outro 2 Com o aux lio do Dashboard gerar o modelo Genmodel atrav s do metamodelo Ecore Deve fazer se Generate All no modelo obtido para que seja gerado o c digo fonte correspondente aos elementos do metamodelo 3 Atrav s do ficheiro Ecore obter os modelos Gmftool Gmfgraph e Gmfmap 4 Obter o modelo Gmfgen a partir do modelo Gmfmap 5 Gerar o diagrama recorrendo ao modelo Gmfgen gt Eclipse Galileo http www eclipse org downloads packages release galileo sr2 2009 60 O metamodelo da linguagem VisualAORE deu origem ao editor base e a tr s sub editores O editor base cont m anota es em todas as suas classes concretas tal como vis vel no Anexo B Os sub editores foram feitos a partir de uma c pia do modelo ecore Emf do editor base e cada um deles possui anota es apenas nas classes que constam do respectivo sub editor Assim no caso do sub editor do elemento ConcernsAggregationModule a classe ConcernsAggregati
152. is checked by the systern for being active or not Ss Satisfied Enforce Between VAggM Toll Gate V Paying Toll 1 A green light is turned on if the gizmo is valid 2 A yellow light is turned on if the gizmo is not valid CA ggM Via Verde Concerns Module 3 An alarm is sounded if the gizmo is not present or invalid A Response Time 4 The amount being debited is displayed if the gizmo is valid 1 The system needs to react in time in order to 4 1 The amount being debited depends on the class of the vehicle 11 read the gizmo Identifier 1 2 turn on the light to green or yellow 1 Mod1 1 3 display the amount to be pald 1 A green light is turned on if the gizmo is valid TN aerea ra aU late ano EEE 2 A yellow light is turned on if the gizmo is not valid 1 5 sound the alarm 2 Mod2 1 6 respond to gizmo activation and reactivation 4 The amount being debited is displayed if the gizmo is valid 4 1 The amount being debited depends on the class of the vehicle Figura 5 18 Regra de composi o do requisito 1 2 do concern Tempo de Resposta O Anexo F ilustra o modelo AORE do caso de estudo Via Verde Neste modelo vis vel um m dulo de agrega o de concerns tr s m dulos de agrega o de viewpoints e dois m dulos de agrega o de regras de composi o 72 A A A ere eee ee O E EAD DA E a PEO 1 The Gamo identifier is read by the system 11 The gamo identifie
153. ivate and reactivate gizmos 1 2 deal with infraction incidents 1 3 charge for usage ResponseTime 1 The system needs to react in time in order to 1 1 the gizmo identifier 1 2 turn on the light to green or yellow 1 3 display the amount to be paid 1 4 photograph the plate number from the rear 1 5 sound the alarm 1 6 gizmo activation and reactivation 163 Table 1 Impacts Vp Concern Cee eM Ts pa Ta TAS nas nen Response Time y y y y y y V y Correctness y y y y y Compatibility y Table 2 Conflicts Apects Aspects Response Time Correctness Compatibility Response Time Correctness Compatibility Table 3 Conflicts Resolution Vp Concern Cramo ANM ar ol a el chicks Sal Response Time 1 0 1 0 1 0 1 0 1 0 V V Correctness 0 8 1 0 1 0 1 0 1 0 Compatibility 164 Composition Compatibility 1 Rule Aspect Compatibility NFRequirement 1 1 Constraint Action ensure Constraint Constraint Operator with Requirement Viewpoint ATM FRequirement all Outcome Action fulfilled Tempo de Resposta 1 Rule Aspect Response Time NFRequirement 1 1 Constraint Action enforce Constraint Constraint Operator between Requirement Viewpoint Vehicle FRequirement 1 2 Outcome Action Satisfied Requirement Viewpoint Gizmo FRequirement include children 2 Rule Aspect Response
154. l e Paying Toll Este tlimo cont m dois m dulos de agrega o de requisitos funcionais denominados Mod e Mod2 A atribui o de pesos a viewpoints para a resolu o de conflitos existentes entre concerns feita atrav s da rela o Weight Esta rela o tem como origem um concern e como destino um viewpoint Ap s se inserir a rela o deve se recorrer ao tab Property Views do editor e alterar o valor da vari vel weight para o valor desejado dentro dos valores oferecidos pelo tipo enumerado Caso haja um concern que exer a um impacto em determinado viewpoint utilizada a rela o HasImpact para ilustrar esse impacto As setas que possuem cor vermelha s o rela es de liga o a requisitos funcionais m dulos de requisitos funcionais ou viewpoints Destas as que s o tracejadas estabelecem rela es cuja origem um operador de restri o ou Constraint Operator As setas com linha preenchida representam liga es cuja origem uma ac o resultante ou Outcome Action A seta verde ponteada destinada a estabelecer a liga o entre os requisitos n o funcionais dos concerns e as ac es de restri o de cada regra de composi o De notar que os elementos das regras de composi o se encontram relacionados entre s atrav s de uma seta simples com o objectivo de estabelecer a ordem l gica da regra de composi o 74 5 5 Sumario Neste capitulo detalhado o processo de desenvolvimento da
155. lassifica o Figura 7 5 An lise da facilidade de reconhecimento dos s mbolos Pelos resultados do gr fico da Figura 7 5 not rio que a identifica o dos s mbolos foi feita de forma facilitada n o havendo problemas significativos Quest o B3 1 Qual o s mbolo que considerou inadequado Which one did you find inadequate A quest o B3 1 tem o objectivo de obter os s mbolos da linguagem que n o s o capazes de representar os conceitos de forma sugestiva e n o amb gua Alguns utilizadores consideram que os cones amarelos que representam os elementos Constraint Operator s o pouco leg veis pois s o demasiado claros Foi tamb m referido que os cones dos elementos Constraint Actions Enforce Ensure e Exclude deveriam ser 99 diferentes dado que para todos ele o s mbolo igual Houve tamb m quem considerasse que a sintaxe concreta atribu da aos m dulos de Viewpoints e aos Viewpoints era confusa Quest o B4 Como identifica o texto que representa os conceitos How do you identify the text representing the concepts Esta quest o possui a finalidade de avaliar se a sintaxe concreta adequada ou seja se oferece um f cil reconhecimento dos conceitos atrav s do seu texto O valor 1 significa muito dif cil e o valor 5 significa muito f cil B4 Como identifica o texto que representa os conceitos N Pessoas un Classificac o Figura 7 6 An lise da dificuldade em i
156. los VisualAORE 121 122 9 Bibliografia AMPLE 2007 AMPLE Ample Project http ample holos pt 2007 Achenbach e Ostermann 2010 M Achenbach K Ostermann Growing a Dynamic Aspect Language in Ruby em AOSD 10 Rennes e Saint Malo Fran a 2010 Ara jo e Moreira 2003 J Ara jo e A Moreira An Aspectual Use Case Driven Approach em VIII Jornadas de Engenharia de Software e Bases de Dados JISBD pags 463 468 Thompson Novembro de 2003 Ara jo et al 2005 J Ara jo E Baniassad P Clements A Moreira A Rashid B Tekinerdogan Early Aspects The Current Landscape Relat rio T cnico Fevereiro de 2005 Atkins et al 1999 D Atkins T Ball G Bruns K Cox Mawl a Domain specific Language for Form based services em IEEE Transactions on Software Engineering V 25 N 3 p gs 334 346 Maio e Junho de 1999 Baniassad e Clarke 2002 E Baniassad e S Clarke Theme An Approach for Aspect Oriented Analysis and Design em Proceedings of the International conference on RE IEEE CS Press pags 199 202 Departamento de Computa o Cient fica Universidade de Trinity Dublin Irlanda 2002 Baniassad et al 2006 E Baniassad P Clements J Ara jo A Moreira A Rashid B Tekinerdogan Discovering Early Aspects em IEEE Software Fevereiro de 2006 B zivin 2005 J B zivin On the unification power of models ATLAS Group INRIA amp LINA Universidade de Nantes Fran a 2005
157. los gmfgraph gmftool e gmfmap necess rios implementa o de um editor GMF tendo como base um metamodelo Ecore Esta fornece nota es de alto n vel capazes de facilitar a gera o de editores Algumas destas nota es s o e gmf aplicado ao pacote de topo e especifica que s o esperadas anota es GMF nos elementos do modelo e gmf diagram especifica a classe raiz do metamodelo e gmf node especifica que a classe em quest o representada no editor como um n Suporta v rios detalhes tais como label label icon figure color border color border width tool name tool description entre outros e gmf link especifica que a classe em quest o representada no editor como um link Suporta v rios detalhes tais como label pattern source target source decoration width tool name tool description entre outros e gmf compartment especifica que a referencia contida na classe vai criar um compartimento onde s o colocados os elementos do tipo da referencia e gmf label especifica labels adicionais classe em quest o Emfatic http wiki eclipse org Emfatic 2008 34 3 7 4 MetaEdit A ferramenta MetaEdit Kelly et al 2006 a ferramenta do tipo Meta CASE mais usada actualmente Contrariamente aos plug ins do Eclipse ela j implementa graficamente o comportamento gen rico CASE para os objectos e para as rela es incluindo o Diagram Editor Object e Graph Browsers O utili
158. m todos de modela o O DSOA tem as seguintes desvantagens Clarke e Baniassad 2005 e N o ainda uma t cnica usada intensivamente na ind stria de software e Os processos de verifica o e valida o tornam se dif ceis obrigando a um melhor conhecimento da rela o entre os aspectos e as propriedades n o funcionais do sistema Na pr xima sec o sumarizam se os princ pios b sicos da Engenharia de Requisitos Orientada a Aspectos e seguidamente descrevem se algumas abordagens EROA com nfase na abordagem AORE 2 2 Engenharia de Requisitos Orientada a Aspectos A Engenharia de Requisitos Orientada a Aspectos constitu da pelas v rias t cnicas AORE com viewpoints AORA MATA Theme use cases com Aspectos entre outras que tratam os assuntos transversais dos requisitos funcionais e n o funcionais numa primeira fase do desenvolvimento de software O seu objectivo fornecer uma melhor separa o dos assuntos transversais Dado que estes est o presentes em v rias funcionalidades de um sistema fundamental dividir o tratamento que lhes dado em duas fases e Identifica o de cada assunto em separado ou seja modula o dos assuntos transversais em aspectos e Reflex o sobre cada aspecto estudo do impacto entre eles encontrando as contribui es negativas e positivas que causam entre si e estudo do impacto que originam nos requisitos onde est o presentes A identifica o de aspectos n
159. ma o das condi es necess rias para que as luzes sejam ligadas os interruptores de luzes ligam as luzes 2 Se o sistema central receber informa o das condi es necess rias para que as luzes sejam desligadas o interruptor de luzes desliga as luzes Actuador de Portas 1 Se o sistema central receber informa o das condi es necess rias para que as portas sejam fechadas o actuador de portas fecha as portas 156 2 Se o sistema central receber informa o das condi es necess rias para que as portas sejam abertas o actuador de portas abre as portas Actuador de Persianas 1 Se o sistema central receber informa o das condi es necess rias para que os estores sejam abertos o actuador de estores abre os estores 2 Se o sistema central receber informa o das condi es necess rias para que os estores sejam fechados o actuador de estores fecha os estores Dispositivos Ar Condicionado 1 Se o sistema central receber informa o das condi es necess rias para que o AC seja ligado ou o seu term stato indicar que atingiu o limite de temperatura dado pelo utilizador o AC liga se 2 Se o sistema central receber informa o das condi es necess rias para que o AC seja desligado ou o seu term stato indicar que atingiu o limite de temperatura dado pelo utilizador o AC desliga se Sensores Sensor de alarme 1 Detecta estado do alarme 2 Envia informa o do estado para o sistema central
160. mas n o ambos 32 Usado para afirmar que as restri es de um requisito aspectual foram aplicadas com xito Todos os elementos que se englobam nesta sec o herdam o atributo Name Ss 3 Fullfiled lt vo E o Satisfied O Usado para afirmar que um conjunto de requisitos de um viewpoint v o ser satisfeitas ap s serem aplicadas as restri es do requisito aspectual Tabela 5 2 Rela es do metamodelo que representam links e a sua descri o Classes do metamodelo Descri o iga es L Representa uma liga o bi direccional entre dois concerns indicando a contribui o que cada um efectua no outro Possui o atributo type que do Contributes A Z a tipo Type Este tipo um tipo enumerado que cont m as poss veis contribui es entre dois concerns Representa a exist ncia de um impacto de um concern para com um HasImpact j viewpoint Representa a liga o cuja origem um concern e o destino um viewpoint Weight indicando a exist ncia de um peso no impacto exercido Possui o atributo eights weight do tipo Weight Este tipo um tipo enumerado que cont m todos os valores de contribui o poss veis NFRequirementTOCAction Liga o cuja origem um requisito n o funcional de um concern e o destino um elemento do tipo Constraint Action Trata se da primeira liga o de uma regra de composi o AppliedProvideToFor Li
161. mplos destes m todos s o DARE Frakes et al 1998 DSSA Taylor et al 1995 FAST Weiss e Lay 1999 ODE Falbo et al 2002 e ODM Simos 1996 O m todo mais utilizado o FODA Feature Oriented Domain Analysis Kang et al 1990 Este m todo consiste em criar um modelo de caracter sticas feature model constitu do pelas caracter sticas features ou propriedades do sistema que s o relevantes Estas caracter sticas podem ser obrigat rias ou vari veis Um modelo de caracter sticas constitu do por um diagrama de caracter sticas pela sua defini o sem ntica regras de composi o das caracter sticas e alguma l gica na sua escolha A Figura 3 1 um exemplo de um modelo de features Caracter sticas Obrigat rias Caracter sticas Opcionais Caracter sticas Alternativas Manual Autom tica Regra de Composi o Ar Condicionado requer Pot ncia gt 100 Racional Mais eficiente de combust vel manual Figura 3 1 Modelo de features de Carro Ar condicionado O input da an lise de dom nio est focada na Figura 3 2 e o seu output toda a terminologia e conceitos do dom nio em estudo uma lista de varia o indicando a informa o necess ria para a especifica o de uma inst ncia do sistema e a defini o das caracter sticas em comum ou seja os modelos e primitivas da linguagem Figura 3 3 26 M todos da Andlise de Dominio Recursos do conhecimento
162. mponente que agrupa informa o distincta consoante se trata de um m dulo de agrega o de concerns viewpoints ou regras de composi o A organiza o dos m dulos de agrega o vis vel no excerto do metamodelo AORE da Figura 5 3 Nesta figura vis vel que um modelo AORE deve conter no m nimo um m dulo de cada tipo de m dulo existente sendo que dentro de cada um pode eventualmente existir um ou mais m dulos do mesmo tipo A inser o deste novo conceito importante pois permite o agrupamento de elementos do mesmo tipo dentro de uma estrutura o que facilita a organiza o dos elementos e consequentemente origina modelos mais organizados um conceito que contribui tamb m para o aumento da escalabilidade dos modelos devido ao facto de possuir um compartimento que pode ser minimizado ocultando a informa o do m dulo 50 DuringWithinTOEnsure EnsureTODuringWithIn OnBetweenTOEntorce ForTOAppliedProvide liedProvide TOFor Enforce Applied Provide Ensure Exclude E App HE g Enforce TOOnBetween 1 B On H Between For H During E With Bln 0 1 pledProvide ExcludeToCQperator Fulfilled Satisfied ringWithin OnBeiween Xor OActionTOFReqhirement CActionTOXor nstraintAction meAction o name EString a 5 a name EString 0 x nstraintOperatoi no hasConstAction o name EString Satisfied TOCOperator equirem
163. nd reactivation 1 1 The ATM Is notified If the activation or reactivation was successful or not 1 1 1 In case of unsuccessful activation or reactivation the ATM Is notified of the reasons for the failure Figura 5 17 Regra de composi o do requisito 1 1 do concern Response Time 71 A regra de composi o do requisito 1 2 do aspecto Response Time pode ser observada na Figura 5 18 Esta denominada ResponseTime Regl 2 e composta pela ac o de restri o Enforce pelo operador de restri o Between e pela ac o resultante Satisfied que se encontra associada ao operador de restri o Xor Esta regra de composi o id ntica regra anterior no entanto difere no resultado final Nesta ltima a ac o resultante Satisfied est associada a um operador de restri o Xor Esta associa o indica que s um dos requisitos funcionais associado ao operador Xor que satisfeito a cada altura e n o ambos De forma resumida o requisito 1 2 do aspecto Response Time deve ser cumprido no intervalo de tempo entre os requisitos do viewpoint Gizmo O resultado desta composi o o cumprimento de apenas um dos requisitos do m dulo Mod do viewpoint PayingToll CRAggM Response Time VAggM Viewpoints V Gizmo CR 1 ResponseTime Req1 2 1 The Gizmo identifier is read by the system C Constraint 11 The gizmo identifier is validated by the system q F 1 2 The gizmo
164. ngineering AORE o modelo usado para tratar os assuntos transversais baseado em PREview Process and Requirements Engineering viewpoints Sawyer et al 1996 e portanto utiliza um modelo de viewpoints para tratar os requisitos O m todo PREview encapsula informa o parcial do sistema em viewpoints mas n o toda a informa o acerca do sistema A estrutura deste m todo a seguinte e Identificar os assuntos que afectam o sistema e Derivar um conjunto de quest es que assegurem que a informa o obtida para satisfazer os assuntos suficiente e Realizar o levantamento e negociar requisitos o que assegura que o sistema satisfaz os assuntos identificados O novo modelo proposto em AORE adiciona o processo de composi o ao j existente PREview processo que realizado numa base XML Rashid et al 2003 No modelo abaixo Figura 2 1 focam se as seis fases da t cnica AORE e as suas sub fases Na fase de Identifica o e Especifica o s o identificados e especificados os assuntos essencialmente os requisitos n o funcionais e os requisitos funcionais com base nas perspectivas viewpoints dos stakeholders atrav s da an lise dos requisitos iniciais Ap s esta fase s o identificadas as rela es entre os assuntos e os stakeholders para uma posterior identifica o dos assuntos candidatos a aspectos ou seja aqueles que afectam mais do que um stakeholder 11 Dada a identifica o dos aspectos segue se
165. nnnonanenonnnn cnn nnnnnns 14 Tabela 2 2 Rela o de contribui o entre os CONCETNS oooooococcccnnncncnnncncnnnanonnnn conan nonnnn cnn nnnnnns 14 Tabela 2 3 Rela o dos concerns com OS viewpoints coccooococoncccnnnnncnnnnnonnnnnonnnnnnnnnnncnnnc cnn accio 15 Tabela 5 1 Classes do metamodelo que representam nos no editor VisualAORE e sua DESCRI O dor T ei hs eile a gfe i ls Sige ie ee eh ae OR ie Racha 52 Tabela 5 2 Rela es do metamodelo que representam links e a sua descri o 53 Tabela 5 3 Imagens externas dos conceitos das regras de composi o 58 Tabela 5 4 cones da linguagem VisualAQRE ccccscsscssesseseesesseseesesscssessssesssssssseeeesessesees 58 Tabela 6 1 Impacto entre viewpoints e CONCETIS oocnoccconcccnnnnncnnnnnnnnnnncnnnnnonnnn conan no nnnn cra nccnns 83 Tabela 6 2 Contribui es entre os concerns esceceessecessceeesncecesneecesneeceeeeecseececseeeecsueeeeneeeeess 84 Tabela 6 3 Resolu o dos conflitos 2 0 ceescceescecesnceceeececeeneecesecececeeceeceecseeeeceeeeeceneeeeeeeeens 85 Tabela 7 1 Per odo de tempo de utiliza o de um ambiente de desenvolvimento de LDEs 97 Tabela 7 2 Dura o da elabora o do caso de estudo rece 102 Tabela A 1 Descri o das Constraint actions sesmaria sane A A A dd 131 Tabela A 2 Descri o dos Constraint Operators ooooocnocononiccnnnancnnnnnonnnnncnnnn conan no nnnn nro nnnnns
166. ns full obj16 EnsureTODuringORWithORIn gif tool large bundle Aore edit tool large path icons full obj16 EnsureTODuringORWithORIn gif style solid width 1 target decoration arrow color 0 0 0 tool name Ensure gt During With In tool description Create a new link from the Constraint Action Ensure node to the Constraint Operator node During With or In ref DuringWithIn 1 DuringWithInTOEnsure EnsureTODuringWithIn 137 gmf node figure figures ExcludeFigure label name label icon false label placement external tool description Create a new Exclude Constraint Action node class Exclude extends ConstraintAction gmf link tool small bundle Aore edit tool small path icons full obj16 ExcludeToCOperator gif tool large bundle Aore edit tool large path icons full obj16 ExcludeToCOperator gif style solid width 1 target decoration arrow color 0 0 0 tool name Exclude gt COperator tool description Create a new link from the Constraint Action Exclude node to any Constraint Operator node ref ConstraintOperator 1 ExcludeToCOperator gmf node figure figures ProvideFigure label name label icon false label placement external tool description Create a new Provide Constraint Action node class Provide extends AppliedProvide gmf node figure figures BetweenFigure label name label icon false label placement external tool description
167. nstraint Action Imagem das classes que estendem a classe abstracta Constraint Operator Imagem das classes que estendem a classe abstracta Outcome Action Tabela 5 4 cones da linguagem Visual AORE cone Descri o CAggM cone que representa a classe ConcernsA ggregationModule CRAggM cone que representa a classe CompositionRulesAggregationModule VAggM cone que representa a classe ViewpointsAggregationModule A cone que representa a classe Aspect C cone que representa a classe Concern NFR cone que representa a classe NFRequirement CR cone que representa a classe CompositionRule C cone que representa a classe Constraint A cone que representa a classe Applied Enf cone que representa as classes Enforce Ens cone que representa as classes Ensure Exe cone que representa as classes Exclude 58 Icone que representa a classe Provide P B cone que representa a classe Between D cone que representa a classe During F cone que representa a classe For l cone que representa a classe In o cone que representa a classe On WwW cone que representa a classe With x cone que representa a classe Xor cone que representa a classe Fullfiled cone que representa a classe Satisfied v cone que representa a classe Viewpoint FR cone que representa a classe FRequirement cone
168. o ou seja descreve se o seu impacto em termos de mapeamento e influ ncia Esta fase consiste em determinar a influ ncia que um aspecto possui em fases mais avan adas do desenvolvimento do software e identificar o seu mapeamento numa fun o decis o ou aspecto do sistema Identificar e Especificar Concerns e Viewpoints Tratar Conflitos Especificar as Dimens es dos Aspectos Figura 2 1 Modelo AORE 12 Na realidade a t cnica AORE gen rica sendo que nesta disserta o usada a abordagem orientada a viewpoints Rashid et al 2003 estendendo a abordagem previamente existente PREview Um viewpoint um encapsulamento parcial de informa o do sistema visto apenas de uma perspectiva Segundo Sommerville e Sawyer 1997 um viewpoint composto pelas componentes name focus concerns sources requirements e history Esta abordagem importante na medida em que permite que o sistema seja analisado por todas as perspectivas dos humanos ou outros sistemas que com ele interagem os stakeholders Um stakeholder portanto qualquer pessoa ou sistema que possui um contacto ou influ ncia directa ou indirecta com o sistema Sommerville 2007 O primeiro passo a realizar na utiliza o do m todo AORE orientado a Viewpoints a identifica o e especifica o dos assuntos e dos requisitos dos stakeholders em XML A Figura 2 2 exemplifica uma especifica o realizada na ferramenta ARCaDe f
169. o de requisitos de um viewpoint e que podem alterar o seu resultado exclude Usado para excluir alguns viewpoints ou requisitos se o valor all foe Qualquer um especificado Os elementos Constraint Operators podem ser observados na Tabela A 2 onde efectuada uma descri o de cada tipo de Constraint Operator s o focadas as Constraint Actions com que estes podem ser utilizados e os aspectos com que estas combina es podem ser usadas Tabela A 2 Descri o dos Constraint Operators Constraint Operator Aspectos V lidos Action combina es action operator Descreve o intervalo de tempo em que um conjunto de ensure Disponibilidade ensure requisitos est a ser satisfeito during between Descreve o intervalo de tempo compreendido entre a enforce Tempo de Resposta satisfa o de dois requisitos O intervalo come a enforce between quando o primeiro requisito satisfeito e termina quando o segundo est a come ar a ser satisfeito on Descreve o ponto no tempo depois de um conjunto de enforce Tempo de Resposta requisitos ter sido satisfeito enforce on for Descreve que caracter sticas adicionais v o applied Assuntos Legais complementar os requisitos do viewpoint provide applied for Seguran a provide for Acesso M ltiplo provide for with Descreve que uma condi o vai ser suportada por dois ensure Compatibilidade ensure conjuntos de requisitos em rela o um ao outro with in Descreve qu
170. o de 1997 Falbo et al 2002 R Falbo G Guizzardi e K Duarte An Ontological Approach to Domain Engineering em Proceedings of 14 Int Conference on Software Engineering and Knowledge Engineering SEKE 02 Ischia It lia 2002 Fall e Fall 2001 A Fall e J Fall A domain specific language for models of landscape Dynamics School of Resource and Environmental Management Universidade de Simon Fraser Burnaby Canada Abril de 2001 Filman et al 2005 R Filman T Elrad S Clarke M Aksit Aspect Oriented Software Development Editora Addison Wesley Pearson Education 2005 Fisher e Gruber 2005 K Fisher R Gruber PADS A Domain Specific Language for Processing Ad Hoc Data em PLDI 05 Chicago Illinois EUA Junho de 2005 Frakes et al 1998 W Frakes R Prieto Diaz e C Fox DARE Domain analysis and reuse environment em Journal Annals of Software Engineering pags 125 141 V 5 N 1 Editora Springer Holanda Janeiro de 1998 Gabriel 2010 P Gabriel Software Languages Engineering Experimental Evaluation Disserta o de Mestrado em Engenharia Inform tica Departamento de Inform tica Universidade Nova de Lisboa Faculdade de Ci ncias e Tecnologia Lisboa 2010 Gabriel et al 2010 P Gabriel M Goul o e V Amaral Do Software Languages Engineers Evaluate their Languages em Proceedings of the XIII Congreso Iberoamericano en Software Engineering CIbSE 2010 Universidade de Azuay IS
171. ointsAggregationModule o 66 Figura 5 14 M dulo de agrega o de concerns do caso de estudo Via Verde 68 Figura 5 15 M dulo de agrega o de viewpoints do caso de estudo Via Verde 68 XVII Figura 5 16 M dulo de agrega o de regras de composi o do caso de estudo Via Verde sem rela es COM os viewpoints nem com os concerns ssscssecesecesreesscecnseceseeeeeeeeseesnaeeneeeees 69 Figura 5 17 Regra de composi o do requisito 1 1 do concern Response Time 71 Figura 5 18 Regra de composi o do requisito 1 2 do concern Tempo de Resposta 12 Figura 5 19 Modelo AORE do caso de estudo Via Verde ia 13 Figura 6 1 M dulo de agrega o de entidades externas cccescccessceseceeeeeeeeceeceeeeeeeeenaees 87 Figura 6 2 M dulo de agrega o de Concerns coooococoncccnononcnnnanonnnnncnnnnncnnnnn conan nonnnnnonanc conan necios 88 Figura 6 3 Regras de composi o do concern Seguran a ccesceceseeeseceeeeeeseeeeaecnseeeeeeesaees 89 Figura 6 4 Regras de composi o do concern Tempo de Resposta 91 Figura 6 5 Modelo AORE do caso de estudo Smart HOM oooooooccccnocccooonccnonnnononcnononcnonnncnnnns 93 Figura 7 1 An lise da frequ ncia de utiliza o de ambientes de desenvolvimento de LDEs 96 Figura 7 2 An lise do gosto dos utilizadores pela rea de LDES ooooonnnococnnocccionccononcnonnnannnns 97 F
172. ol contains less information than the one provided by the ARCaDe Os utilizadores consideram que a informag o a mesma Quest o C18 4 Comparando a ferramenta VisualAORE com a ARCaDe qual na sua opini o oferece uma melhor e mais r pida compreens o dos modelos Comparing 112 VisualAORE with ARCaDe what s the tool you think that offers a faster and better understanding of the models Ambos os utilizadores s o da opini o de que a ferramenta VisualAORE fornece uma maior compreens o dos modelos Quest o C18 5 Considera que a ferramenta VisualAORE uma ferramenta de valor acrescentado quando comparada com a ARCaDe Do you feel the VisualAORE tool is a value added compared to ARCaDe Ambos os utilizadores consideram que sim Quest o C18 6 Porqu Why Os utilizadores s o da opini o de que A ARCaDe uma ferramenta que usa templates em XML o que obriga a uma compreens o e dom nio nesta linguagem al m de que facilmente uma pessoa se perde nas estruturas dos templates O VisualAORE consegue contornar esta quest o apresentando um aspecto visual bastante conseguido Como a ferramenta VisualAORE n o baseada em texto torna se mais atractiva e devido ao facto de ser baseada na metodologia drag amp drop a constru o de modelos facilitada tamb m mais f cil visualizar as rela es entre os conceitos Quest o C19 Considera a ferramenta til
173. om o sistema de alarme 6 1 Especifica o textual Os viewpoints identificados para o sistema s o Habitante Administrador Bombeiros Pol cia Operadora Telem vel Sensores de Luzes Persianas Portas Janelas Movimento Fumo e Fogo Temperatura Externa e Interna Alarme e Sprinkler Actuadores de Portas Luzes Janelas Persianas e Interruptores e dispositivos Ar Condicionado AC Alarme e Sprinkler Tal como focado na descri o da abordagem AORE os viewpoints s o especificados em XML No entanto nesta disserta o a especifica o dos mesmos feita de forma informal embora estruturada com o objectivo de facilitar a sua leitura e compreens o Nesta sec o s o apresentados alguns viewpoints e concerns considerados mais relevantes sendo que os restantes podem ser consultados no Anexo F Abaixo pode ler se a especifica o dos viewpoints Administrador Operadora Sensor de Movimento Alarme e Sprinkler Administrador 1 O administrador escolhe uma op o de configura o 2 Se o administrador selecciona a op o de alterar configura o de utilizador 2 1 Insere os novos dados 2 2 Confirma as novas configura es 3 Se o administrador selecciona registar novo utilizador 3 1 Insere os dados 3 2 Confirma os dados 79 Operadora 1 Em caso de emerg ncia 1 1 Recebe informa o do tipo de emerg ncia 1 2 Recebe informa o do local da ocorr ncia 1 3 Faz chamada de emerg ncia 2
174. onModule possui a anota o gmf diagram indicando que esta a classe raiz do metamodelo As classes Concern Aspect e NFRequirement s o anotadas como emfnode e a classe Contribution como gmf link O sub editor do elemento ViewpointsAggregationModule possui a classe ViewpointsAggregationModule como classe raiz do metamodelo e as classes Viewpoint FRequirement e FRAggModule s o anotadas como gmf node O sub editor do elemento CompositionRulesA ggregationModule possui esta classe como raiz do metamodelo e possui as classe CompositionRule Constraint e as classes que extendem as classes abstractas ConstraintAction ConstraintOperator e OutcomeAction como gmf nodes Todas as classes que representam rela es entre os elementos das regras de composi o s o anotadas com gmf link Os metamodelos ecore Emf dos sub editores podem ser visualizados nos anexos C D e E O anexo C cont m o metamodelo do sub editor do elemento m dulo de agrega o de concerns o anexo D cont m o metamodelo do sub editor do elemento m dulo de agrega o de regras de composi o e finalmente o anexo E descreve o metamodelo do sub editor do m dulo de agrega o de viewpoints O processo de criar um sub editor semelhante ao de criar o editor base Nesta disserta o foi criada uma pasta para cada editor dentro do projecto da LDE Realizou se o processo descrito anteriormente para cada sub editor em separado at fase da gera o do modelo Gmfgen Quando todos
175. oncluir que o plug in efectuado nesta disserta o obteve uma boa aceita o na medida em 116 que se trata de uma ferramenta Util e que oferece um elevado nivel de expressividade aos peritos contrariamente nica ferramenta desenvolvida na rea at agora ARCaDe 7 2 Amea as avalia o Um processo de avalia o pode conter amea as que colocam em causa os resultados e as conclus es obtidas A avalia o efectuada nesta disserta o teve como base os testes efectuados a um grupo de 16 alunos da faculdade que possuem pouca ou nenhuma experi ncia profissional Estes utilizadores est o em contacto permanente com as tecnologias mais actualizadas que nem sempre existem na ind stria Este facto visto como uma mais valia para o processo de avalia o realizado No entanto n o consta deste processo qualquer valida o na rea industrial pelo que seria conveniente efectuar uma avalia o da LDE no seio empresarial e industrial Esta experi ncia forneceria um maior grau de confian a nos resultados obtidos pois os testes seriam efectuados a uma amostra composta por profissionais experientes na rea abrangida pelo plug in Um refor o da avalia o na rea empresarial permitiria ainda a generaliza o dos resultados ao meio profissional O n mero de casos de teste efectuado 16 pode ser visto como uma amea a avalia o da ferramenta por se tratar de uma amostra reduzida Ainda assim esta amostra de estes j
176. os Torna se diferente de algumas abordagens j referidas na medida em que n o utiliza joinpoints expl citos Nesta abordagem cada modelo pode ser um joinpoint e a composi o um caso especial de transforma o de modelos Whittle e Jayaraman 2007 A vantagem desta abordagem conseguir lidar com a identifica o precoce de erros inconsist ncias ou ambiguidades Na abordagem MATA existe sempre uma composi o entre um aspecto e uma base Estes s o antes da composi o individualmente e geralmente representados por um diagrama de sequ ncia UML e compostos por mecanismos de transforma es de grafos Dado que a problem tica a base ser atravessada por um aspecto aplicando as regras de composi o MATA a base e o aspecto formam uma modelo composto As regras r LHS gt RHS definem o padr o esquerdo indicando os pointcuts ou seja os pontos onde o novo modelo deve ser adicionado Whittle e Jayaraman 2007 Assim o aspecto deve identificar os pontos na base onde o comportamento deve ser mudado e deve especificar o comportamento a ser inserido O modelo direito define os novos elementos a serem adicionados e como o deve ser feito no modelo base Whittle e Jayaraman 2007 A Figura 2 5 ilustra a aplica o da abordagem MATA atrav s de diagramas de sequ ncia dado ser a forma mais comum Nesta imagem a representa a regra R1 b representa a regra R2 e c representa a composi o final A base o diagrama d e
177. os modelos Gmfgen dos sub editores se encontravam gerados foi realizado o mesmo processo para o editor base e foi efectuada a liga o entre o editor base e os sub editores Para efectuar a liga o entre os editores foi necess rio carregar os ficheiros Gmfmap dos sub editores no editor base atrav s da op o load do modelo Gmfmap do editor base Feito isto foi necess rio editar as propriedades dos elementos que possuem um sub editor no modelo Gmfgen do editor base Para tal acedeu se ao modelo Gmfgen do editor base abriu se o separador Gen Editor Generator Aore diagram em seguida o separador Gen Diagram AoreEditPart e seleccionou se o n que possui o sub editor A t tulo de exemplo no caso do n ConcernsA ggregationModule seleccionou se Gen Top Level Node ConcernsModuleEditPart e abriu se o separador Open diagram Behaviour ConcernsModuleDiagramEditPolicy S o vis veis as propriedades deste separador na Figura 61 5 8 Nestas propriedades foi necess rio editar os campos Diagram Kind Editor Id e Edit Policy Class Name Property Value Diagram Kind AoreC Editor ID aoreC diagram part AoreCDiagramEditorlD Edit Policy Class Name AoreCDiagramEditPolicy Open As Eclipse Editor sx true Figura 5 8 Propriedades editadas no modelo Gmfgen Este processo foi realizado para cada sub editor Finalmente feitas as liga es entre os editores foi necess rio sincronizar o Gmfgen do editor base e em seguida efectuou se
178. para definir e validar metamodelos Associado especifica o da linguagem vem a produ o de editores de modela o e transforma o e o dom nio de sistemas de controlo complexos Estes ambientes de desenvolvimento s o portanto utilizados para produzir linguagens e ferramentas essencialmente na rea de Engenharia de Software 97 As quest es do grupo B t m o objectivo de fornecer uma valida o ao nivel conceptual Este grupo de quest es pretende obter o grau de compreens o e facilidade que linguagem VisualAORE oferece Quest o B1 Compreendeu a linguagem VisualAORE Did you understand the VisualAORE language Esta quest o tem o objectivo de avaliar se a linguagem VisualAORE facil de compreender No gr fico abaixo Figura 7 3 o valor 1 corresponde a uma compreens o muito fraca da LDE VisualAORE e o valor 5 corresponde a uma ptima compreens o da mesma B1 Compreendeu a linguagem VisualAORE 10 S 8 A zo Classifica o Figura 7 3 An lise do grau de compreens o da linguagem VisualAORE Como se pode verificar no gr fico 9 utilizadores consideram que a linguagem VisualAORE f cil de compreender e 4 utilizadores consideraram mesmo muito f cil Quest o B1 1 Caso n o tenha compreendido o que faltou If not what was missing Os utilizadores que compreenderam a linguagem de forma razo vel apontam o problema ao facto de n o estarem muito familiarizados com a me
179. plataforma externa e servi os externos Os requisitos funcionais mais importantes para uma plataforma Smart Home s o gerir e alterar o estado dos dispositivos automaticamente gerir as mudan as feitas manualmente permitir que o sistema reaja de forma aut noma de acordo com pol ticas pr definidas personaliza o autoriza o e autentica o Os dispositivos que devem ser utilizados s o luzes interruptores de luzes dispositivos de abertura de janela sensores de janelas persianas sensores de quebra de vidro radiadores e term statos sensores de portas e dispositivos de abertura de portas detectores de movimento e de luz sensores de presen a detectores de fumo e fogo sistema sprinkler sistema de extin o de inc ndios e dispositivos de alarme O sistema Smart Home deve oferecer um alto n vel de funcionalidade em que v rios sensores e actuadores trabalham em conjunto Este alto n vel deve ser opcional mas se for seleccionado requer que determinados dispositivos sejam instalados na casa As principais fun es podem ser e Sistema de energia term statos aquecimento dispositivos de abertura de janelas dispositivos de abertura de portas e electrodom sticos devem ser combinados de forma a gastar o m nimo de energia poss vel e Sistema de controlo de temperatura aquecimento term statos persianas e janelas devem ser combinadas para obter uma temperatura preferida nas divis es da casa e Sistema de segu
180. pol cia 6 O sistema deve garantir a disponibilidade dos bombeiros 7 O sistema deve garantir a disponibilidade nas comunica es Safety 1 O sistema deve garantir a seguran a dos sensores O sistema deve garantir a seguran a na activa o desactiva o do sistema de extin o de inc ndios O sistema deve garantir a seguran a na activa o desactiva o do alarme O sistema deve garantir a seguran a na abertura fecho de portas janelas e estores Gi RN O sistema deve garantir seguran a quando efectua chamadas de emerg ncia Usabilidade 1 O sistema deve possuir uma interface f cil de usar e compreender Regras de Composi o Composi o de Usabilidade 1 O requisito 1 de usabilidade deve restringir todos os requisitos do utilizador e do administrador Composi o de Compatibilidade 1 O requisito 1 de compatibilidade deve restringir todos os requisitos dos actuadores sensores e dispositivos 2 O requisito 2 de compatibilidade deve restringir o requisito 2 da operadora e todos os do telem vel 3 O requisito 3 de compatibilidade deve restringir o requisito 1 da operadora Composi o de Safety 1 O requisito 1 de safety deve restringir todos os requisitos dos sensores 158 AE NODO O requisito 2 de safety deve restringir todos os requisitos do sprinkler O requisito 3 de safety deve restringir todos os requisitos do alarme O requisito 4 de safety deve restringir todos os requisitos de porta
181. que representa a classe FRAggModule PES cone que representa a rela o Contribution gt cone que representa a rela o Weight sin gt cone que representa a rela o HasImpact me cone que representa a NFRequirementTOCAction oa cone que representa a rela o NFRAggModuleTOCAction 59 cone que representa as rela es que existem dentro de uma regra de composi o Estas s o ConstraintTOOAction EnforceToOnOrBetween EnsureTODuringORWithORIn 3 ExcludeToCOperator SatisfiedTOCOperator SatisfiedTOCOperator SatisfiedTOCOperator cone que representa as rela es OActionTOFRequirement OActionTOFRAggModule e OActionTOViewpoint cone que representa as rela es COperatorTOFRequirement OperatorTOFRAggModule COperatorTOViewpoint gt 5 3 Implementa o O ambiente de desenvolvimento utilizado para desenvolver a LDE VisualAORE foi o Eclipse Galileo a sua plataforma EMF GMF e os plug ins Emfatic e EuGENia Esta escolha deve se ao facto do Eclipse possuir as caracter sticas desejadas para a elabora o de uma Linguagem de Dom nio Espec fico possuir tamb m uma elevada quantidade de documenta o dispon vel para ajuda e ser uma ferramenta open source A introdu o dos plug ins Emfatic e EuGENia foi tamb m um factor determinante pois estes facilitam o processo de cria o da LDE permitindo especificar as suas propriedades ao n vel do metamodelo o que anter
182. quirement id 1 6 gt responder a activa o e reativa o do identificador lt Requirement gt lt Requirement gt lt Concem gt Figura 2 3 Concern Tempo de Resposta em XML O segundo passo do m todo AORE consite em relacionar os viewpoints e os concerns As relac es entre os viewpoints e concerns s o obtidas por an lise dos requisitos de cada um A representa o das rela es feita atrav s de uma tabela semelhante Tabela 2 1 onde feita a rela o entre os assuntos e os requisitos observando se os assuntos que est o presentes em cada viewpoint P e na Tabela 2 1 o assunto Tempo de Resposta est presente nos viewpoints Ve culo e Cliente Esta fase consiste tamb m em relacionar os concerns entre s atrav s da atribui o de contribui es para encontrar situa es de confito Na Tabela 2 2 observa se que o assunto Tempo de Resposta contribui negativamente para o assunto Seguran a e vice versa o que d origem a um coflito A fase de identifica o e especifica o de requisitos permite come ar a haver uma no o dos assuntos que podem ser transversais Rashid et al 2003 Tabela 2 1 Rela o entre os concerns e os viewpoints Menos Ve culo Cliente Concerns Tempo de Resposta L Y Seguranca Y Tabela 2 2 Rela o de contribui o entre os concerns Concerns EE Tempo de Resposta Seguran a Tempo de Resposta Seguran a
183. r 5 indica que o processo muito bom C3 Como avalia o processo de elaborar um modelo no plug in VisualAORE 10 a N Pessoas Classifica o Figura 7 10 An lise da qualidade do processo de elabora o de modelos atrav s do plug in VisualAORE A maioria dos utilizadores considera que o processo de elaborar um modelo na ferramenta bom Quest o C4 Possuiu dificuldade a utilizar o plug in VisualAORE Did you have difficulty using the VisualAORE plug in A quest o C4 tem o objectivo de avaliar se houve dificuldades em utilizar o plug in VisualAORE 103 C4 Possuiu dificuldade a utilizar o plug in VisualAORE N Pessoas Figura 7 11 An lise da dificuldade em utilizar o plug in VisualAORE Como se pode observar na Figura 7 11 a grande maioria de utilizadores n o obteve dificuldades na utiliza o do plug in VisualAORE Quest o 4 1 Se sim qual a maior dificuldade que encontrou If yes what s the biggest difficulty you found A quest o C4 1 tem o objectivo obter as dificuldades espec ficas que os utilizadores sentiram ao utilizar o plug in VisualAORE Alguns utilizadores sentiram dificuldade na medida em que alguns conceitos da t cnica AORE j se encontravam esquecidos Um utilizador considerou que dif cil encontrar um link espec fico entre aqueles que o menu disponibiliza No entanto as necessidades mais sentidas foram na elabora o das regras de composi o
184. r is vabdated by the system 12 The gumo is checked by the system for being active or not UA nnii Vaio VAggM Vide 1 The vehicie enters _ 2 The wehucle enters the tall gate eo 3 The vehicle leaves the toll gate r mir 4 The vehicle leaves the system when itis tw e fp mm ad CRAGGM Respome Bee L The ATM jendi the customers card number accourt number and gumo idestsher to the system for actwvation and eractwabory LL The ATM ls Mide mon or reactwabon was succesiful or net LLL In case of upuaccessful actwabon or reactrvabon the ATM Es matted of the reason foe the fadure 1 The system needs to react in tme in order to 1 1 read the gizmo ldentber 1 The system must ensure correctness of the data pee ER TD EN See pm LL calculated within the system 1 2 tm om the aja fo groon exyetiond 12 exchanged with the envesnment 1 13 display the amount to be paid eon pH VA phetogragh the plate number bom he rea i i 15 sound the alarm had it 16 respond to gizmo activation and reactvution rosca H I i ee co E E ES REE ER A i y is TIRA 2 i Ee Saal DES A gt Vena t T o l LA green lightis tumed on d be gizmo is vabd I LA yellow hight ic shown if the vehicle did not enter using a green lane EJ E Ayetow tats tamad an ta gizmo i natal pazo 2 Tht amount being debited Depend upon the entry pont i 3 An arm iz sounded de
185. ra especificar como os assuntos devem ser compostos V rias t cnicas podem ser usadas tal como a AORE com viewpoints An lise feita uma an lise dos aspectos modularizados para se proceder identifica o e compreens o dos conflitos com outros requisitos e poss veis inconsist ncias A import ncia dos Early Aspects tamb m notada em fases posteriores do desenvolvimento de software para que se consiga ter uma vis o mais ampla do sistema melhorar a rastreabilidade assim como a forma de tratar e negociar os conflitos De uma forma geral a falta de tratamento dos assuntos transversais pode originar a inibi o adaptabilidade e fraca evolu o do software 10 Dentro da Engenharia de Requisitos Orientada a Aspectos existem varias abordagens pelo que o tema final deste Capitulo ser abordar algumas delas Uma abordagem AORE caracterizada pelas quatro caracter sticas seguintes Ara jo et al 2005 e Exist ncia de meios eficazes para identificar as propriedades transversais numa especifica o de requisitos e Exist ncia de habilidade para modularizar as propriedades transversais e Exist ncia de meios adequados para representar os aspectos do n vel dos requisitos e Capacidade de compor os requisitos aspectuais e n o aspectuais para compreender o efeito cumulativo dos aspectos do n vel dos requisitos noutros requisitos do sistema 2 3 A Abordagem AORE Na abordagem Aspect Oriented Requirement E
186. ram ticas de grafos Pode afirmar se que uma sintaxe possui apenas uma sem ntica 3 3 2 Sem ntica A sem ntica dividida no dom nio sem ntico e no mapeamento sem ntico O conceito mapeamento sem ntico relaciona os conceitos sint cticos com os conceitos do dom nio 24 sem ntico mapeando cada cria o sint ctica num elemento sem ntico Harel e Rumpe 2000 A sem ntica est tica relaciona se apenas com o significado de uma linguagem durante a sua execu o ou seja descreve as caracter sticas de um programa v lido ou sintacticamente correcto Geralmente a sem ntica est tica definida atrav s de um sistema de infer ncia de tipos 3 4 OCL O OCL Object Constraint Language Warmer e Kleppe 1998 uma linguagem tipada cujas express es dependem de tipos definidos nos esquemas classes interfaces entre outros O seu objectivo estabelecer restri es em metamodelos ou diagramas de classes que de outra forma n o se conseguem impor Permite a defini o de consultas valores de refer ncia e estado das condi es e regras Geralmente utiliza se esta linguagem pois uma forma de estabelecer as restri es que n o se conseguem impor atrav s de modelos usado para especificar invari ncias entre classes e tipos num diagrama de classes especificar invari ncias de tipo para esteri tipos descrever pr e p s condi es sobre opera es e m todos especificar restri es sobre opera es e gu
187. ran a sensores de vidros partidos sensores de portas e detectores de movimento devem ser usados para detectar se alguma pessoa que n o tem autoriza o para entrar em casa o tentou fazer Se a casa detectar intrus o ela deve dar um alarme ou com sirenes ou campainhas ou informar a pol cia ou uma empresa de seguran a e Sistema de Fumo e Fogo detectores de fogo e fumo sistema de sprinkler sensores de janela e portas e dispositivos de abertura e fecho dispositivos de alarme e comunica o devem trabalhar juntos para prevenir danos humanos em caso de 78 fogo e fumo Al m disso o fogo deve ser extinto e os bombeiros devem ser chamados O sistema deve ser inteligente o suficiente para n o come ar a extinguir fogo caso haja apenas algumas pessoas a fumar numa sala e Sistema de alarme o sistema de seguran a controlado atrav s de um painel no hall de entrada Este painel tamb m funciona como uma m quina de resposta da casa O uso do alarme ir activar o sistema central de bloqueamento Isto ir fechar todas as janelas e portas e pode desligar qualquer dispositivo Pode desligar as luzes quaisquer luzes que ficaram ligadas do dia O sistema de seguran a pode ser usado atrav s de um telefone interno ou por liga o para a casa de uma linha externa Nestas situa es os comandos de voz actual do mesmo modo que usando o painel directamente Qualquer um dos dispositivos do controlo remoto pode ser utilizado para lidar c
188. referido Os sub editores est o presentes nos elementos ConcernsAggregationModule CompositionRulesAggregationModule e ViewpointsAggregationModule Um sub editor permite editar e ou visualizar o conte do de um m dulo num editor em separado o que 63 simplifica a edi o leitura dos seus elementos Cada editor cont m no seu menu os conceitos que podem ser editados no m dulo em quest o Para aceder ao sub editor de cada elemento necess rio efectuar um duplo clique com o bot o esquerdo do rato no rebordo do elemento As figuras abaixo Figuras 5 10 5 11 5 12 e 5 13 ilustram os menus dos v rios editores Na Figura 5 10 pode observar se o menu do editor base Este encontra se dividido em v rias sec es e Modules sec o onde se pode aceder aos v rios m dulos de agrega o existentes e Concern sec o onde est o colocados todos os conceitos que devem constar de um m dulo de agrega o de concerns e Composition Rule sec o que cont m todos os conceitos necess rios elabora o das regras de composi o e que devem constar de um m dulo de agrega o de regras de composi o e Viewpoint sec o onde est o colocados todos os conceitos que devem constar de um m dulo de agrega o de viewpoints e Connections sec o que cont m todas as rela es poss veis de efectuar num modelo AORE Esta sec o encontra se divivida segundo as situa es em que s o utilizadas e por tipo de r
189. rement gmf link tool small bundle Aore edit tool small path icons full obj16 SatisfiedTOCOperator gif tool large bundle Aore edit tool large path icons full obj16 SatisfiedTOCOperator gif style solid width 1 target decoration arrow color 0 0 0 tool name Satisfied gt COperator tool description Create a new link from a Constraint node to an Outcome Action node ref ConstraintOperator SatisfiedTOCOperator abstract class ConstraintAction gmf link tool small bundle Aore edit tool small path icons full obj16 CActionTOXor gif tool large bundle Aore edit tool large path icons full obj16 CActionTOXor gif style solid width 1 target decoration arrow color 0 0 0 tool name CAction gt Xor tool description Create a new link from a Constraint Action node to the Constraint Operator Xor ref Xor 1 CActionTOXor attr String name ref NFRequirement NFRequirementTOCAction NFReqToCActionOp abstract class ConstraintOperator attr String name gmf link tool small bundle Aore edit tool small path icons full obj16 COperatorTOFRequirement gif tool large bundle Aore edit tool large path icons full obj16 COperatorTOFRequirement gif style dash width 2 target decoration arrow color 215 0 0 tool name COperator gt FRequirement tool description Create a new link from a Constraint Operator node to a Functional Requirement node ref FRequiremen
190. resolvido textualmente Na sec o 6 2 apresentada uma proposta de resolu o visual do caso de estudo na ferramenta VisualAORE e dada uma breve explica o da mesma recorrendo ao modelo obtido 94 7 Avalia o Experimental Com vista a efectuar a avalia o da LDE foi efectuado um question rio a um grupo de 16 utilizadores Estes utilizadores testaram a ferramenta atrav s da modela o do caso de estudo Via Verde O caso de estudo foi fornecido aos utilizadores com uma solu o textual pr feita que pode ser consultada no Anexo H para que estes se pudessem dedicar inteiramente explora o da ferramenta Zz O grupo de utilizadores convidado a efectuar o teste composto por pessoas com conhecimento em LDEs Engenharia de Requisitos e Desenho de Software ou ambos Este grupo de utilizadores frequenta ou frequentou no ano lectivo 2008 2009 o Mestrado em Engenharia Inform tica na Faculdade de Ci ncias e Tecnologia da Universidade Nova de Lisboa Ap s o teste da LDE os utilizadores foram convidados a preencher um question rio relativo ao teste efectuado O question rio consiste numa adapta o de Gabriel 2010 e divide se em 3 partes Na primeira parte obtido o grau de conhecimento dos utilizadores na rea de LDEs A segunda parte consiste numa avalia o conceptual com quest es directamente relacionadas com a linguagem Por fim surgem as quest es relacionadas com a usabilidade da ferramenta e sugest
191. retendia O N A Ooo N Pessoas Classifica o Figura 7 15 An lise da frequ ncia com que o utilizador se sentiu incapaz de exprimir o que desejava A Figura 7 15 mostra que na maioria das vezes os utilizadores sentiram se capazes de exprimir o que desejavam No entanto houve 2 experi ncias em que os utilizadores se sentiram incapazes de exprimir o que desejavam Este facto pode dever se a serem utilizadores que estavam menos familiarizados com a t cnica AORE ou com LDEs Quest o C9 Quais as vantagens do modelo obtido atrav s do plug in relativamente especifica o feita textual e manualmente What are the advantages of the model obtained in the plug in relatively to the specification done textual and manually 106 A quest o C9 tem a finalidade de obter as vantagens do modelo feito no modelo AORE relativamente especifica o textual fornecida As principais vantagens referidas pelos utilizadores s o e O modelo possui uma especifica o esquematizada e O modelo possui uma melhor organiza o visual e O modelo possui maior facilidade e rapidez de compreens o e modelado mais rapidamente e O modelo permite a visualiza o dos m dulos de agrega o envolvidos no modelo separadamente sub editores e O modelo feito numa ferramenta que oferece uma f cil utiliza o e O modelo permite obter uma ideia imediata de todos os elementos que o constituem e O modelo oferece a distin
192. ri o das Outcome Actions Anexo B O anexo B cont m o modelo Emfatic que deu origem ao editor base da ferramenta VisualAORE Anexo C O anexo C cont m o modelo Emfatic do sub editor que acenta no elemento ConcernsA ggregationModule da ferramenta VisualAORE Anexo D Neste anexo pode observar se o modelo Emfatic do sub editor presente no elemento CompositionRulesA ggregationModule da ferramenta desenvolvida Anexo E Este anexo cont m o modelo Emfatic do sub editor presente no elemento ViewpointsAggregationModule da ferramenta desenvolvida Anexo F No anexo F est contida parte da especifica o textual caso de estudo Smart Home Anexo G Este anexo cont m um exemplar das intru es de teste que foram fornecidas aos utilizadores aquando da fase de avalia o da ferramenta desenvolvida nesta disserta o Anexo H No anexo H pode observar se um exemplar do question rio fornecido aos utilizadores que testaram a ferramenta VisualAORE Anexo I Finalmente o Anexo I possui o manual de utiliza o da ferramenta proposta neste trabalho 2 Engenharia de Requisitos Orientada a Aspectos 2 1 DSOA O Desenvolvimento de Software Orientado a Aspectos do ingl s Aspect Oriented Software Development AOSD Filman et al 2005 um dos m todos mais recente no desenvolvimento de software Geralmente foca se na fase de implementa o do ciclo de vida do software onde os peritos identificam aspectos a partir de c digo j realiza
193. riormente O m dulo representado acima denomina se Response Time pois possui as regras de composi o dos requisitos n o funcionais deste aspecto Para cada requisito n o funcional do aspecto necess rio efectuar uma regra de composi o pois cada requisito n o funcional restringe o comportamento de um requisito funcional de um viewpoint v rios requisitos funcionais do mesmo viewpoint ou de viewpoints diferentes ou mesmo de um ou mais viewpoints na sua totalidade No m dulo da Figura 5 16 est o representadas apenas as regras de composi o os requisitos 1 1 e 1 2 do aspecto Response Time A regra de composi o do requisito 1 1 do aspecto Response Time e as suas liga es com os viewpoints e o concern que nela interferem podem ser observadas na Figura 5 17 Esta regra denominada ResponseTime Regl 1 e composta pela Constraint Action Enforce e pelo 69 Constraint Operator Between A ac o de restri o Enforce indica que vai existir uma condi o adicional sobre um conjunto de requisitos funcionais de um viewpoint O operador de restri o Between indica que o requisito aspectual deve restringir o intervalo de tempo que se inicia com a satisfa o do primeiro requisito funcional e termina no instante em que o segundo requisito funcional est a iniciar a sua satisfa o A ac o que resulta desta restri o Satisfied o que indica que um conjunto de requisitos de um viewpoint v o ser satisfeitos ap s ser
194. rir Divis es da casa pretendidas 7 3 Se pretende configurar o sistema de seguran a 7 3 1 Escolher o tipo de alarme 7 3 2 Activar desactivar sistema de alarme para detec o de movimento 7 3 3 Activar Desactivar alarme para detec o de vidros quebrados 7 3 4 Inserir Divis es da casa pretendidas 7 3 5 Activar desactivar sistema de chamadas de emerg ncia para pol cia 8 Seo habitante escolhe a op o de ajustar sprinkler 8 2 Se pretende configurar o sistema de fumo e fogo 8 2 1 Activar desactivar sprinkler activar desactivar sistema de chamadas de emerg ncia para bombeiros 8 2 2 Inserir divis es da casa pretendidas Telem vel 1 Se o utilizador pretender configurar o sistema por telem vel efectua uma liga o ao sistema central Pol cia 1 Se o sistema central efectuar chamada de emerg ncia para a pol cia ela dirige se para o local da chamada e presta aux lio Bombeiros 1 Se o sistema central efectuar uma chamada de emerg ncia para os bombeiros eles dirigem se ao local da chamada prestando aux lio Actuadores Actuador de Janelas 1 Se o sistema central receber informa o das condi es necess rias para que as janelas sejam abertas o actuador de janelas abre as janelas 2 Se o sistema central receber informa o das condi es necess rias para que as janelas sejam fechadas o actuador de janelas fecha as janelas Interruptores de Luzes 1 Se o sistema central receber infor
195. rm da Mawl e mostrado como ela suporta o ciclo de vida do software atrav s de uma abstrac o apropriada restri o e suporte de compila o discutida a forma como uma LDE tem apoiado a resolver v rios problemas de engenharia de software que surgem com a cria o de servi os web e telef nicos Quando aplic vel descreve se como que estes resultados se generalizam a outros dom nios Finalmente s o consideradas as car ncias e pontos fracos da Mawl e das LDEs em geral A abstrac o baseada em forms fornece solu o para v rios problemas e Boa forma o de servi os web e Implementa o flexibilidade e independ ncia da plataforma e Servi os de prototipagem e Teste e valida o e Suporte de m ltiplos dispositivos e Composi o de servi os web e An lise de uso 4 3 3 PADS PADS Fisher e Gruber 2005 uma linguagem declarativa de descri o de dados que permite a an lise de dados para descrever tanto o esbo o f sico dos recursos de dados Ad Hoc como propriedades sem nticas destes dados O compilador PADS gera bibliotecas e 42 ferramentas para manipula o de dados incluindo rotinas para parsing ferramentas estat sticas programas de tradu o para produzir formatos bem formados como XML ou aqueles requeridos para carregar bases de dados relacionais e ferramentas para correr XQueries sobre fontes de dados brutos PADS V rios conte dos de dados utiliz veis s o guardados e proc
196. roperties of the elements right click on canvas editable surface and select Show Properties View e To distribute the element in canvas righ click on canvas and select Arrange All useful when returning to the editor after editing on a sub editor Requirements e To delete FRequirements or NFRequirements right click on it and click delete e To add FRequirements or NFRequirements through the pallete click below the requirements already entered and above the separator bar compartment FRAggModules e Used to aggregate some viewpoint requirements used in the composition rules Sub Editors e To acess the external editor left click on the border of the modules Composition Rule Module Viewpoint Module or Concern Module e Sub editors must be saved before exit Composition Rules e The elements of the Composition Rules must all be connected 168 Anexo H Question rio Al How often did you use a DSL workbench tool If your answer is 1 please go to question Bl Never 1 2 3 4 5 Always A1 1 How long have you used it A1 2 Have you enjoyed it Not Really 1 2 3 4 5 A lot A1 3 What for Conceptual Validation B1 Did you understand the VisualAore language Very Bad 1 2 3 4 5 Very Well B1 1 If not what was missing B2 How easy did you find learning the concepts Very Difficult 1 2 3 i 5 Very Easy B3 How do you identify the symbols representing the concepts Very Bad 1 2 3 4 5 Very Good
197. rovide AppliedProvideTOFor abstract class OnBetween extends ConstraintOperator ref Enforce 1 EnforceTOOnBetween OnBetweenTOEn force abstract class DuringWithIn extends ConstraintOperator ref Ensure 1 EnsureTODuringWithIn DuringWithInTOEnsure gmf node figure figures AppliedFigure label name label icon false label placement external tool description Create a new Applied Constraint Action node class Applied extends AppliedProvide gmf node figure figures EnforceFigure label name label icon false label placement exinternal tool description Create a new Enforce Constraint Action node class Enforce extends ConstraintAction gmf link tool small bundle Aore edit tool small path icons full obj16 EnforceToOnOrBetween gif tool large bundle Aore edit tool large path icons full obj16 EnforceToOnOrBetween gif style solid width 1 target decoration arrow color 0 0 0 tool name Enforce gt On Between tool description Create a new link from the Constraint Action Enforce node to the Constraint Operator node On or Between ref OnBetween 1 OnBetweenTOEnforce EnforceTOOnBetween gmf node figure figures EnsureFigure label name label icon false label placement external tool description Create a new Ensure Constraint Action node class Ensure extends ConstraintAction gmf link tool small bundle Aore edit tool small path ico
198. rtas ae A Disponibilidade 3 2 1 Se o utilizador n o inserir o login e ou a senha correctamente em nenhuma das tentativas efectuadas pode pedir assist ncia remota para se identificar no sistema 1 Insere os dados 2 Confirma os dados 1 O sistema deve garantir a disponibilidade dos sensores 2 O sistema deve garantir a disponibilidade dos dispositivos V Actuador de Janelas H i 1 Se o sistema central receber informa o das condi es necess rias para que as janelas sejam abertas o actuador de janelas abre as janeli 3 O sistema deve garantir a disponibilidade dos actuadores 1 O sistema deve possuir um bom tempo de resposta ao comunicar com a operadora 4 O sistema deve garantir a disponibilidade do sistema central 2 O sistema deve possuir um bom tempo de resposta para ligar desligar o sprinkler 5 05 ema deve garantir a disponibilidade da pol cia 6 O sistema deve garantir a disponibilidade dos bombeiros V Interruptores de luzes 7 O sistema deve garantir a disponibilidade nas comunica es 1 Se o sistema central receber informa o das condi es necess rias para que as luzes sejam ligadas os interruptores de luzes ligam as luz S O sarsar de fumo efaga devs responder sternpadamante na EE da fuma e fogs 2 Se o sistema central receber informa o das condi es necess rias para que as luzes sejam desligadas o inter
199. ruptor de luzes desliga as luzes 6 Os actuadores devem responder atempadamente aos pedidos do sistema 7 pol cia deve responder atempadamente aos pedidos de emerg ncia V Actuador de Persianas 8 Os bombeiros devem responder atempadamente aos pedidos de emerg ncia 1 Se o sistema central receber informa o das condi es necess rias para que os estores sejam abertos o actuador de estores abre os estores 9 O sistema deve responder atempadamente identifica o dos habitantes e do administrador i Joes e a ape ei 2 Se o sistema central receber informa o das condi es necess rias para que os estores sejam fechados o actuador de estores fecha os estores A Safety 10 O sistema deve responder atempadamente na verifica o e aceita o das configura es feitas pelo habitante 1 0 sistema deve garantir a seguran a dos sensores 11 O sistema deve responder atempadamente na verifica o e aceita o da altera o de dados de utilizadores registados e np verifica o e aceita o do registo de novos utilizadores 2 O sistema deve garantir a seguran a na activa o desactiva o do sistema de extin o de inc ndios 3 O sistema deve garantir a seguran a na activa o desdctiva o do alarme A Usabilidade 17 4 O sistema deve garantir a seguran a na abertura fechd de portas janelas e estores 1 O sistema deve possuir uma interface f cil de usar e compreender
200. s 6 153 ZeroSete 7 ZeroOito 8 ZeroNove 9 Um 10 class Weighs attr Weight weight 0 ref Viewpoint 1 outW ref Concern 1 inW class HasImpact attr String name ref Viewpoint 1 outH ref Concern 1 inH 154 Anexo F Especificacao Textual Viewpoints Habitante 1 O administrador escolhe uma op o de configura o 2 Seo habitante escolhe a op o de configurar o AC 2 1 Se pretende configurar o sistema de energia 2 1 1 Insere data e hora a que pretende ligar o AC assim como as divis es da casa em que deve ser ligado 2 2 Se pretende configurar o sistema de climatiza o 2 2 1 Activa a op o de regula o pela temperatura exterior e insere as divis es da casa em que deve ser ligado ou define a temperatura m nima e m xima e as divis es pretendidas 3 Seo habitante escolhe a op o de ajustar as janelas 3 1 Se pretende configurar o sistema de fumo e fogo 3 1 1 Insere as divis es da casa em que deve ser ligado e activa a abertura de janelas em caso de fumo fogo 3 2 Se pretende configurar o sistema de climatiza o 3 2 1 Activa a op o de regula o pela temperatura exterior e insere as divis es da casa em que deve ser ligado ou define a temperatura m nima e m xima e as divis es pretendidas 4 Se o habitante escolhe a op o de ajustar os estores 4 1 Se pretende configurar o sistema de fumo e fogo 4 1 1 Insere as divis es da casa em que deve ser ligado e
201. s a especifica o completa do seu metamodelo e a especifica o e implementa o rigorosa de uma ferramenta de suporte abordagem Para atingir estes objectivos este trabalho prop e a especifica o de uma Linguagem de Dom nio Espec fico LDE para AORE Uma LDE tem o prop sito de especificar e modelar conceitos num determinado dom nio tendo vantagens em rela o s linguagens de dom nio geral tais como permitir expressar um problema na linguagem e no n vel de abstrac o desejados delegando a especifica o de como resolver o problema para os n veis de abstrac o inferiores Para se criar uma LDE necess rio come ar por especificar a sua sintaxe abstracta recorrendo a um modelo denominado metamodelo Este metamodelo expressa como se formam os modelos dessa mesma LDE no caso o metamodelo da AORE e ser dado como input para os workbenches da linguagem que v o gerar o editor correspondente Com um editor apropriado para a linguagem podemos especificar modelos diagram ticos com a nota o definida Concluindo esta disserta o pretende desenhar e desenvolver uma LDE para a abordagem AORE VI Vill Abstract The Requirements Engineering Aspect Oriented area consists of identifying modularizing specifing and composing crosscutting issues crosscutting concerns also known as aspects The approach AORE Aspect Oriented Requirements Engineering was a pioneering approach to EROA It is a systematic approa
202. s janelas e estores O requisito 4 de safety deve restringir todos os requisitos de operadora Composic o de Disponibilidade 1 2 3 4 5 6 O requisito 1 de disponibilidade deve restringir todos os requisitos dos sensores O requisito 2 de disponibilidade deve restringir todos os requisitos dos dispositivos O requisito 3 de disponibilidade deve restringir todos os requisitos dos actuadores O requisito 5 de disponibilidade deve restringir o requisito 1 da pol cia O requisito 6 de disponibilidade deve restringir o requisito 1 dos bombeiros requisito 7 de disponibilidade deve restringir todos os requisitos da operadora 159 160 Anexo G Instru es para Teste Introduction The purpose of this test is to assess how easy is to learn and use the VisualAore LDE This evaluation is done in two ways e Concept Validation how adequate are the concepts and the easiness to learn them e Usability Validation easy to understand and use the plugin To perform this test it s used the Via Verde case study specified next To facilitate the testing process the case study is given with a reduced solution The testers are only asked to use this solution to get the final model in the VisualAore plugin To start the test the file VisualAore zip must be unzipped into the plugins folder of Eclipse To start with the tool the following steps should be followed 1 File gt New gt Project gt General gt Project 2
203. s conceitos de um dado dom nio Usando a abordagem orientada a modelos atrav s da especifica o do modelo que descreve como devem ser os modelos da pr pria LDE ou metamodelo poss vel usar ferramentas gerativas para obter um editor Este editor permite desenhar modelos que obedecem especifica o do metamodelo tanto ao n vel da forma textual como diagram tica com base no metamodelo que se obt m uma valida o dos modelos desenhados A t cnica AORE enquadra se na rea da Engenharia de Requisitos Orientada a Aspectos como tal fundamental ter em conta as necessidades b sicas e as prefer ncias do engenheiro 2 de software comum Deste modo ir se proceder realiza o de uma LDE visual diagramatica ao inv s de uma LDE textual De notal que a nica ferramenta que fornece suporte t cnica AORE a ferramenta ARCaDe introduzida no Cap tulo 2 que uma ferramenta textual e que utiliza templates XML para especificar os elementos da t cnica Nas reas de desenho de software d se prefer ncia utiliza o de modelos visuais para obter as especifica es dos sistemas pois h um aumento da abstrac o dos problemas a resolver e consequentemente uma maior percep o do sistema como um todo Pelos motivos focados esta disserta o adopta a metodologia AORE na sua vertente orientada a viewpoints com o objectivo de obter a representa o da mesma atrav s de uma Linguagem de Dom nio Espec
204. s e liga es entre os elementos e cada elemento ignora os detalhes que n o s o relevantes para o ponto de vista em quest o e encapsula e descreve os detalhes relevantes Estes elementos s o relacionados posteriormente atrav s de liga es consoante a rela o que possuem entre si Estas rela es geralmente possuem uma identifica o e a cada elemento dado um nome distinto A abstrac o portanto a caracter stica fundamental de um modelo pois vem resolver o problema da elevada complexidade e duplica o B zivin 2005 Uma LDE suporta um desenvolvimento orientado a modelos pois numa das primeiras fases do seu desenvolvimento criado um modelo de forma rigorosa que processado por m quina para produzir modelos de baixo n vel de abstrac o sendo assim utilizados no processo de automa o do desenvolvimento de software O modelo para representar uma LDE denominado metamodelo e consiste na descri o dos conceitos existentes no dom nio que podem ser usados na linguagem usado para se referir a um tipo de metadados Trata se de uma defini o das regras e das constru es necess rias cria o de modelos sint cticos utilizados tamb m para compreender e analisar sistemas S o assim fundamentais para impelir induzir guiar e restringir o comportamento da LDE B zivin 2005 Este tipo de modelo equiparado ao c digo de um programa executado numa GPL General Purpose Language no sentido em que a
205. se de exame Nesta fase s o realizadas quest es envolvendo actividades de 28 escrita da linguagem Deve haver uma observa o do question rio e registo das actividades em curso por parte do supervisor anotando os tempos de execu o e as taxas de erros obtidas O objectivo obter o grau de facilidade em aprender e utilizar a linguagem em avalia o Deve tamb m ser feito um question rio de auto avalia o com via a captar o sentimento de correc o das respostas dos pr prios utilizadores Ap s cada grupo ter feito a sess o de forma o e o exame os utilizadores que participaram s o convidados a fazer uma reuni o de balan o sob a forma de question rio para classificar prefer ncias e obter coment rios O objectivo deste question rio obter uma reac o global linguagem taxa de facilidade do uso de aspectos espec ficos e outros poss veis coment rios informais que possam ser dados com a finalidade de conseguir melhorias Finalmente efectua se uma an lise qualitativa e quantitativa dos resultados Nesta fase considerada a efic cia e a precis o do utilizador atrav s das observa es dos erros produzidos E tamb m feita uma medida da efici ncia atrav s da medi o dos tempos necess rios para a realiza o das tarefas Por fim avaliada a satisfa o do utilizador atrav s das suas respostas aos question rios e inferida a adequa o ou necessidade de melhoria da LDE Prepara o das tare
206. sncecesnceceeeeecseeeeceeeeecsueeecseeeeeneeeees 26 Figura 3 2 An lise de Dom nio s ioiicicii idiotas iia 21 Figura 3 3 Desenho da Lina iia iii tc 28 Figura 3 4 Fases da avalia o de uma LDE 0ooonnccncccccoccconccoonaconononnnoonncconocono cono conocia cnc cnncnnnnno 29 Figura D5 Processo EMP cadeia tea Spade wade tents agen es totes 33 Figura 5 1 Diagrama de features iia E aa cad Lage apa radiais 48 Figur 32 Metamodelo AORE rias A E pe cae ae on 31 Figura 5 3 Excerto do metamodelo AORE que foca os m dulos de agrega o 54 Figura 5 4 Excerto do metamodelo AORE que foca o m dulo de agrega o dos requisitos o RP ent RE RA MG SPEA RA RN E E a E 54 Figura 5 5 Excerto do metamodelo AORE para as regras de composi o 55 Figura 5 6 Liga es entre os elementos das regras de composi o 56 Figura 5 7 Rela es entre concerns viewpoints oooocooccnocnnonnnannnnnanonancnnnnnnnnnnna nono n non nnrnnn rra 57 Figura 5 8 Propriedades editadas no modelo Gmfgen errar 62 Figura 5 9 Regra OCL para o elemento Contribution ssssssessseseeeesersereerersesererrersersresrersesse 62 Figura 5 10 Menu do sub editor do elemento ConcernsAggregationModule cc1cccee 65 Figura 5 110 Menu do editor base sia an sarao arica 65 Figura 5 12 Menu do sub editor do elemento CompositionRulesAggregationModule 66 Figura 5 13 Menu do sub editor do elemento Viewp
207. ssuntos atravessando v rios conjuntos de requisitos ou unidades da especifica o do sistema Tem assim um efeito em v rios requisitos causando consequ ncias em fases finais do desenvolvimento do sistema fase em que s o geralmente identificados n vel da implementa o Por este motivo os crosscutting concerns devem ser encapsulados em m dulos separados chamados aspectos An aspect is a concern whose functionality is triggered by other concerns and in multiple situations Sommerville 2007 Um aspecto portanto um mecanismo de abstrac o As consequ ncias que os crosscutting concerns originam s o essencialmente a falta de localiza o dos assuntos independentemente num s m dulo o que impossibilita a sua composi o e estudo da influ ncia na especifica o do sistema originando casos dif ceis de compreender e manter Desta forma surge o efeito scattering dispers o ou seja a inclus o dos assuntos transversais em v rias especifica es de outros assuntos Este facto indesejado pois d origem ao efeito tangling emaranhamento nas especifica es Especifica es emaranhadas s o especifica es que cont m propriedades diferentes de assuntos diferentes A separa o de concerns o princ pio b sico do desenho de software pois este deve ser desenhado para que cada unidade ou componente realize uma e uma s tarefa Na programa o orientada a aspectos os aspectos s o implementados
208. sta deve restringir todos os requisitos do viewpoint Sprinkler 3 O requisito 3 do concern Tempo de Resposta deve restringir todos os requisitos do viewpoint Alarme 4 O requisito 4 do concern Tempo de Resposta deve restringir todos os requisitos do viewpoint Sensor de Movimento 5 O requisito 5 do concern Tempo de Resposta deve restringir todos os requisitos do viewpoint Sensor de Fumo e Fogo 6 O requisito 6 do concern Tempo de Resposta deve restringir todos os requisitos dos actuadores 7 O requisito 7 do concern Tempo de Resposta deve restringir o requisito 1 do viewpoint Pol cia 81 8 O requisito 8 do concern Tempo de Resposta deve restringir o requisito 1 do viewpoint Bombeiros 9 O requisito 9 do concern Tempo de Resposta deve restringir todos os requisitos do viewpoint Habitante 10 O requisito 10 do concern Tempo de Resposta deve restringir todos os requisitos do viewpoint Administrador A Tabela 6 1 ilustra as rela es entre os viewpoints e os concerns tal como foi introduzido no Cap tulo 2 Como exemplo pode observar se que o concern Seguran a possui impacto nos viewpoints Administrador e Habitante Esta tabela fornece uma ideia inicial dos concerns que podem ser aspectos como o caso do concern Seguran a 82 Tabela 6 1 Impacto entre viewpoints e concerns Aja APe APo Ad Ala AC Bo Hab Int Ope
209. sto acontece sempre mesmo quando o sistema se encontra em execu o Pelechano et al 2006 3 7 3 EMF GMF A plataforma EMF Eclipse Modeling Framewok Budinsky et al 2003 uma ferramenta de modela o e gera o de c digo que permite a constru o de ferramentas e outras aplica es baseadas em modelos de dados estruturados O seu objectivo fornecer um editor e para tal necess rio fornecer lhe como input uma especifica o de um modelo em XMI Um padr o XMI ou XML Metadata Interchange um standard OMG Object Management Group para troca de informa de metadados baseada em XML eXtensible Markup l Eclipse Modeling Framework http www eclipse org modeling emf project emf 2004 31 Language Este padrao essencialmente utilizado para fazer a troca de metadados entre as ferramentas baseadas em UML Unified Modeling Language e MOF Meta Object Facility Assim torna se facilmente possivel salvar modelos UML em formato XML e fornecer formas para mover modelos UML entre ferramentas O EMF fornece ferramentas e tempo de execu o para produzir um conjunto de classes Java para o modelo um conjunto de classes adaptadoras que permitem a visualiza o do modelo um editor para o modelo baseado em comandos e um editor b sico Esta ferramenta tem tamb m a capacidade de fornecer a base para a interoperabilidade com outras ferramentas baseadas no EMF A ferramenta em foco possui tr s componentes f
210. sua usabilidade melhore passando a ser mais f cil lidar com este tipo de ferramentas O facto da avalia o da LDE VisualAORE n o ter sido efectuada num ambiente industrial empresarial pode ser tamb m uma limita o a considerar 8 2 Trabalho futuro O metamodelo proposto neste trabalho pode ser estendido com vista a abranger algumas caracter sticas do m todo VAODA Com esta integra o a metodologia AORE ficaria mais completa pois resolveria problemas de crosscuting concerns n o funcionais e funcionais O metamodelo proposto nesta disserta o pode tamb m ser utilizado para obter uma linguagem textual e um editor que a suporte de forma a obter uma ferramenta textual mais simples que a ARCaDe A avalia o efectuada ao plug in VisualAORE poderia ser refeita ao n vel empresarial industrial abrangendo um maior n mero de testes Esta avalia o forneceria resultados mais precisos e abrangentes 120 Com o objectivo de melhorar a usabilidade da plataforma GMF EMF devem ser efectuadas mudan as essencialmente ao n vel da visualiza o dos elementos e da organiza o dos modelos num editor Seria interessante a realiza o de um novo mecanismo de disposi o de elementos autom tico de acordo com o espa o dispon vel e os elementos possu dos Dado que a ferramenta ARCaDe a nica ferramenta que d suporte ao m todo AORE seria interessante elaborar um mecanismo de tradu o entre os modelos XML obtidos e mode
211. sualAORE plug in Os utilizadores sugeriram as seguintes melhorias ao plug in VisualAORE e Reduzir para apenas uma ferramenta o grupo das ferramentas e Utilizar views ao inv s de sub editores e introduzir c digo para facilitar a filtragem das views e Proteger a identifica o dos requisitos n o permitindo que haja requisitos com o mesmo identificador e Melhorar aspectos de usabilidade e Utilizar uma ferramenta stand alone ao inv s de usar um plug in e Diminuir o n mero de rela es representadas por setas e Introduzir o auto complete das regras de composi o disponibilizando apenas as liga es poss veis aquando das liga es e Melhorar os s mbolos das regras de composi o efectuando um s mbolo diferente para cada elemento Quest o C25 Sugest es coment rios gerais Suggestions global comments A quest o C25 a ltima quest o do question rio como tal tem o objectivo de recolher poss veis sugest es ou coment rios que os utilizadores n o tenham tido oportunidade de expor at ent o Os coment rios obtidos foram os seguintes o Trata se de uma ferramenta bastante til o Oferece um elevado n vel de expressividade aos peritos o Disponibilidade de uma ferramenta que suporta a especifica o de elementos usados normalmente Ferramenta interessante de utilizar e conhecer As respostas a esta quest o possuem um car cter de coment rio geral Deste modo pode se c
212. sure node to the Constraint Operator node During With or In ref DuringWithIn 1 DuringWithInTOEnsure EnsureTODuringWithIn gmf node figure figures ExcludeFigure label name label icon false label placement external tool description Create a new Exclude Constraint Action node class Exclude extends ConstraintAction gmf 1link tool small bundle Aore edit tool small path icons full obj16 ExcludeToCOperator gif tool large bundle Aore edit tool large path icons full obj16 ExcludeToCOperator gif style solid width 1 target decoration arrow color 0 0 0 tool name Exclude gt COperator tool description Create a new link from the Constraint Action Exclude node to any Constraint Operator node ref ConstraintOperator 1 ExcludeToCOperator gmf node figure figures ProvideFigure label name label icon false label placement external tool description Create a new Provide Constraint Action node class Provide extends AppliedProvide gmf node figure figures BetweenFigure label name label icon false label placement external tool description Create a new Between Constraint Operator node class Between extends OnBetween gmf node figure figures DuringFigure label name label icon false label placement external tool description Create a new During Constraint Operator node class During extends DuringWithIn gmf node figure
213. t COperatorTOFRequirement gmf link tool small bundle Aore edit tool small path icons full obj16 COperatorTOFRAggModule gif tool large bundle Aore edit 136 tool large path icons full obj16 COperatorTOFRAggModule gif style dash width 2 target decoration arrow color 215 0 0 tool name COperator gt FRModule tool description Create a new link from a Constraint Operator node to a Functional Requirements Aggregation Module node ref FRAggregationModule COperatorTOFRModule gmf link tool small bundle Aore edit tool small path icons full obj16 COperatorTOViewpoint gif tool large bundle Aore edit tool large path icons full obj16 COperatorTOViewpoint gif style dash width 2 target decoration arrow color 215 0 0 tool name COperator gt Viewpoint tool description Create a new link from a Constraint Operator node to a Viewpoint node ref Viewpoint COperatorTOViewpoint abstract class AppliedProvide extends ConstraintAction gmf link tool small bundle Aore edit tool small path icons full obj16 AppliedORProvideTOFor gif tool large bundle Aore edit tool large path icons full obj16 AppliedORProvideTOFor gif style solid width 1 target decoration arrow color 0 0 0 tool name Applied Provide gt For tool description Create a new link from the Constraint Action Applied or Provide node to the Constraint Operator For ref For 1 ForTOAppliedP
214. t JPPAL Java Parallel Programming Annotation Library KAOS Knowledge Acquisition in AutOmated Specification Keep All Objectives Satisfied LDE Linguagem de Dominio Especifico LHS Left Hand Side MATA Modeling Aspects Using a Transformation Approach MDD Model Driven Development MDA Model Driven Architecture MOF Meta Object Facility OCL Object Constraint Language ODE Ontology based Domain Engineering ODM Organization Domain Modeling OME Organization Modelinh Environment OMG Object Management Group OMT Object Modeling Technique PADS Processing Ad hoc Data Sources PDE Partial Differential Equation RHS Right Hand Side RNF Requisito Nao Funcional SDF Syntax Definition Formalism TCL Tool Command Language TK ToolKit UML Unified Modeling Language VAODA Viewpoints and Aspect Oriented Domain Analysis XML eXtensible Markup Language XII Indice de Conte dos 1 folia GUC AO SON RO DT RR AS CE Ra RO RS PR PROA RPM AD RE RAS RNA AR SR DI JE A 1 Lo Contexto ea el yale Ais IE 1 12 MODIS CU VOS tds 3 13 UTSanizacio d OCO aa OR O e ae 3 Engenharia de Requisitos Orientada a ASpectOS ccommmm 7 Zola DSO A a E E E E RE A E a EE 7 2 2 Engenharia de Requisitos Orientada a Aspectos ocooocccnoncccooncccnoncnononcnonnnccnnnncnnnnnccnnnncnns 9 2 3 AvAbordagem AORE vaninn seie irer E E AS LEETE S 11 ds Ferramenta AR Cale a A ae ae ea E E 16 LE CS ADOTU O aa sis a weal ye entered ate sau a sida 16 2AT AORA s
215. t m dulo de agrega o de requisitos funcionais ou requisito funcional em que interfere Finalmente o elemento Constraint est ligado ao Outcome Action Caso o Outcome Action seja o elemento Satisfied a Constraint ligada ao mesmo Satisfied e este pode ser posteriormente ligado a um Constraint Operator No caso de se tratar apenas de um element Satisfied este ligado ao viewpoint m dulo de agrega o de requisitos funcionais ou requisito funcional No caso de existir um elemento Constraint Operator a liga o feita a este ltimo Se o Outcome Action for o elemento Fulfilled n o efectuada qualquer liga o a outro elemento pelo que a regra de composi o termina neste elemento E CompositionRule ld Elm name EStrinc description EStrinc hasQonstraint y hasCO hasOutcAct E Constraint name EStrinc has ConsOper N X E Xor 11 hasCanstAction q 03 y 1 q y Y E Failed E OutcomeAction B CEEE POE DonsiramniOnarata E For ue name EStrinc name EStrinc S name EStrinc A A Hb si amp E Satisfied l l E During Withh E Enforce E Exclude E Ensure E ApoliedProwde E OnBetween E with E In amp Applied E Provide H Between E On Figura 5 5 Excer
216. ta por uma feature WeightValue Esta ltima a feature descritiva do 49 valor num rico do peso da rela o e toma apenas um valor do conjunto de valores 0 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 e 1 0 5 2 Metamodelo da linguagem VisualAORE A an lise de dom nio detalhada na sec o anterior foi introduzida como input na fase de desenho abordada nesta sec o Com base nas caracter sticas identificadas no modelo de features foi elaborado um metamodelo Ecore para a linguagem VisualAORE que tem a fun o de relacionar estas caracter sticas e adicionar restri es ao seu comportamento A linguagem VisualAORE foi criada a partir do metamodelo Ecore da Figura 5 2 A classe Diagram deste metamodelo a classe AORE e agrega as classes ConcernsA ggregationModule CompositionRulesAggregationModule ViewpointsAggregationModule HasImpact e Weights Uma lista dos conceitos do metamodelo que representam n s e o seu significado podem ser consultados na Tabela 5 1 A Tabela 5 2 cont m os conceitos que representam liga es e uma breve explica o de cada um Com o objectivo de obter uma boa organiza o e visualiza o dos dados um novo conceito foi introduzido na linguagem VisualAORE o conceito de m dulo de agrega o Este conceito surge com o intuito de organizar e agrupar dados semelhantes num m dulo de informa o melhorando a organiza o dos modelos e facilitando a sua leitura Um m dulo de agrega o uma co
217. ties of the VisualAORE plug in O objectivo da quest o C21 obter as fraquezas ou as dificuldades encontradas no plug in VisualAORE As respostas a esta quest o focaram os seguintes pontos e O plug in possui alguma instabilidade e modela o redundante dentro e fora dos sub editores e O plug in possui um menu complex0 e O plug in permite agrega es dentro de agrega es desnecess rias e A complexidade visual em caso de modelos grandes pois pode ser dificil relacionar as entidades do modelo como um todo essencialmente quando o zoom normal 100 114 e O posicionamento dos elementos especialmente quando eles n o est o colapsados devia ajustar se automaticamente ao modelo e O espa o de edi o dentro de cada objecto pequeno e por vezes os objectos filhos ficam cortados n o sendo poss vel v los na sua totalidade no entanto este problema defeito do EMF GMF e n o do VisualAORE e O plug in possui bugs de usabilidade devido ao GMF e O GMF imp e muitas limita es gr ficas e O facto de se tratar de um plug in faz com que a ferramenta ser sempre dependente do Eclipse e A cria o das regras de composi o o processo mais dif cil Quest o C22 Quais s o na sua opini o os pontos fortes facilidades do plug in VisualAORE What are in your opinion the strengths facilities of the VisualAORE plug in A questao C22 tem como objectivo saber quais os pontos fortes ou as
218. to do metamodelo AORE para as regras de composi o A Figura 5 6 ilustra as liga es entre os elementos das regras de composi o Com a finalidade de restringir quais os elementos que se podem ligar entre si v rias liga es do mesmo tipo foram efectuadas Este processo poderia ter sido feito de outra forma recorrendo utiliza o de OCL No entanto esta op o foi tomada com o objectivo de auxiliar o utilizador a compreender quais as poss veis formas de combinar os elementos das regras de composi o dado que se trata de um processo restricto 55 IFReqToCActionOp NFRequirementTOCAction H Viewpoint o Id Elnt o name EString a focus EString source EString qe OActionTOViewpolt COperatorTOViewpoint OActionTOFRModule H FRModule o Id Elnt a name EString o description EString contains E OutcomeAction E Satisfied o name EString lt yF ConstraintTOOAction SatisfiedTOCOpeyator OActionTOFRequirementcontalsRF COperatqrTOFRIModule E FRequirement o Id EString a description EString 0 COperatorTOFRequirement 01 de x E NFRequirement 0 1 o g 0 o Id EString E ConstraintActione hasConstAct a E Constraint hasConsOper_1 E Constraint
219. todogia AORE no geral Alguns utilizadores n o compreenderam de imediato a diferen a entre um elemento Viewpoint e um ViewpointModule Tamb m as regras de composi o n o foram percebidas de imediato por uma minoria dos utilizadores Quest o B2 Qual o grau de facilidade em aprender os conceitos da linguagem How easy did you find learning the concepts Com a quest o B2 pretende se avaliar se os conceitos da linguagem s o f ceis de compreender e assimilar O valor 1 significa que os conceitos s o demasiado dif ceis de aprender e o valor 5 significa que os conceitos s o muito f ceis de aprender 98 B2 Qual o grau de facilidade em aprender os conceitos da linguagem N Pessoas 1 2 3 4 5 Classifica o Figura 7 4 An lise da facilidade em aprender os conceitos da linguagem A maioria dos utilizadores considera que os conceitos da linguagem s o f ceis de assimilar e compreender 5 pessoas consideram mesmo muito f ceis Quest o B3 Como identifica os s mbolos que representam os conceitos How do you identify the symbols representing the concepts Nesta quest o avalia se se a sintaxe concreta adequada ou seja se oferece um f cil reconhecimento dos conceitos atrav s dos seus s mbolos O valor 1 significa muito dif cil e o valor 5 significa f cil B3 Como identifica os s mbolos que representam os conceitos 15 o 0 o F 0 5 1 2 3 4 N Pessoas C
220. tots segura sae stants SO RA lad hoa aoe eens Pi E 16 A TheMe sos te tenascin ora prai SR sa aa OD ie Nek ets med A etl eae att esheets 17 Det dia MA Fairlane doula cea yee cleat a TU a asec ee Seat ade 18 2 4 4 Abordagens de use cases COM Aspectos ecceceseceeseececesececeeeeeceeeeeesteeeeteeeesaeeees 19 2 DUAL EEE SE o CS ad e BL fe 20 DD A DRE RE E E RAD SAS EPP SEDA RP DR SE ADE REAR SAD 21 3 1 Desenvolvimento Orientado a Modelos iio 22 3 2 Vantagens e Desvantagens de uma LDE asia sai A a 23 Sl EDE Vers Ws CP re E aA E des 24 A e Semantica Ava Ce ee E a RG OG Bde 24 3 3 1 Sintaxe abstracta e concreta oooooooococonoccnononononnnononconononannnnnnnnnonononno no nononccnononnnnonoss 24 3 32 Sem Nti Cassinis tise NG A PE dada a 24 3 5 Desenvolvimento de uma LDE 0d abs 25 Sede do y AMAS do COMO A AA AAA AAA de s 26 39 2 Desenho O tio 27 3 53 implementacion 28 3 6 Avalia o de uma EDESA E a SS ES 28 3 7 Ferramentas de suporte para construir LDES eee 30 Dot A a T A E 30 3 1 2 DSL VOOS ii a sa aa da a AA E AEEA rea Rd ira das nadas 31 De Fades BEMBOME a i 31 Dele Meta it ad o 35 O A DS RESENDE DECR RREO PODRE RR UR PRP ERR RP sS 35 Dee SUMA O 36 4 Trabalho relacionados oscdecssvaccsesdesacecaswodssesdosseesssusscbs ani Ra dae did 37 4 1 LDEs para abordagens de requisitos i 37 4 1 1 Uma Linguagem de Dom nio Espec fico para a framework 1 37 4 1 2 Um
221. tural de paisagens envolve tamb m o uso de modelos de simula o para explorar potenciais mudan as ao longo dos tempos e reas extensas de territ rio No entanto colmatar a lacuna entre os modelos conceptuais de paisagens din micas e a sua simula o em computadores pode levar a alguns inconvenientes Se esta implementa o for feita usando uma linguagem de prop sito geral o modelo subjacente fica escondido nos detalhes do c digo tornando dif cil a compara o entre os modelos conceptuais e implementados e a modifica o dos modelos As linguagens de dom nio espec fico t m sido desenvolvidas em v rias reas para facilitar a constru o de modelos a um n vel perto do modelo conceptual tornando a implementa o do modelo mais acess vel aos peritos neste contexto que surge a LDE descrita neste trabalho 43 O objectivo deste trabalho Fall e Fall 2001 foi criar uma linguagem para modela o de paisagens din micas que fornece aos ecologistas e urbanistas uma ferramenta adequada para resolver alguns dos problemas que surgem no desenvolvimento dos modelos Esta linguagem estruturada e de alto n vel separa a especifica o do comportamento dos modelos dos mecanismos da sua implementa o facilitando o trabalho dos modeladores de paisagens e permitindo lhes que se foquem no modelo subjacente Dado o car cter declarativo desta linguagem ela permite uma representa o clara do modelo conceptual ao n vel sem ntico ao
222. uma fase inicial do desenvolvimento de software importante e d origem ao conceito Early Aspect Baniassad et al 2006 Estes aspectos est o dispersos pelos modelos de requisitos e surgem antes da fase de implementa o do software isto nas fases de an lise de dom nio an lise de requisitos e desenho arquitectural A sua identifica o e gest o nestas fases do desenvolvimento do software contribuem para Baniassad ef al 2006 Aumentar a modularidade Aumentar a consist ncia entre requisitos e os modelos arquitecturais e posteriormente com a implementa o Fornecer uma base racional de rastreabilidade para os aspectos atrav s das actividades do seu ciclo de vida Assegurar que os assuntos transversais do sistema s o capturados como aspectos na implementa o As actividades que comp em o tratamento dos aspectos s o Baniassad et al 2006 Identifica o Nesta fase existe uma procura de termos geralmente atributos de qualidade que apontam para a exist ncia de aspectos Deve procurar se o impacto dos requisitos com vista a descobrir sobreposi es e por fim deve procurar se os assuntos scattered ou seja os termos conceitos ou comportamentos que aparecem em diversos requisitos Captura Fase em que existe uma reorganiza o dos requisitos para que cada modelo de requisitos seja relativo a apenas um assunto Composi o Esta fase consiste em declarar formalmente o impacto dos requisitos pa
223. undamentais Uma delas a framework EMF CORE que inclui o metamodelo ecore e fornece tempo de execu o e notifica es das altera es do modelo assim como suporte com serializa o XMI por defeito Disponibiliza ainda uma API eficiente e reflexiva para manipular de forma gen rica os objectos EMF 2 Outro elemento fundamental do EMF o EMF Edit que possui classes gen ricas reutiliz veis que originam os editores correspondentes aos modelos fornecidos como input Fornece vistas do modelo ajuda a integrar os modelos e disponibiliza uma interface bastante atractiva ao utilizador oferecendo por exemplo comandos para avan ar e retroceder Contudo a componente fundamental do EMF o EMF Codegen pois respons vel pela gera o do c digo necess rio para o core e para a constru o do editor a partir de um modelo dado O EMF suporta tr s n veis de gera o de c digo gt N vel Modelo fornece classes de interface e de implementa o para todos os elementos do modelo e um pacote para os meta dados gt N vel Adaptadores gera as classes de implementa o capazes de adaptar as classes do modelo para serem editadas e visualizadas gt Nivel Editor respons vel por produzir a estrutura b sica do editor do EMF que pode depois ser personalizada O GMF Graphical Modeling Framework Budinsky et al 2003 um plug in do Eclipse Eclipse 2009 baseado no EMF Eclipse Modeling Framework e no GEF Graphi
224. zador obt m os conceitos e s mbolos atrav s da ferramenta GUI e tem apenas que especificar a sua linguagem de modela o Nesta fase o utilizador pode por exemplo criar novos objectos atribuir lhe nomes propriedades e rela es Assim n o h necessidade de efectuar c digo pois esta ferramenta apenas segue a linguagem definida tal como o Word segue os seus templates A MetaEdit fornece tamb m a op o de importar e exportar ficheiros XML uma API para dados e controlo de acesso s suas fun es e um gerador de c digo gen rico Como o gerador de c digo aceita qualquer linguagem de modela o linguagem de c digo ou framework sobre a qual o c digo executado o utilizador tem toda a liberdade para produzir o melhor c digo poss vel para os modelos Kelly et al 2006 A ferramenta descrita possui uma caracter stica essencial que a separa o de assuntos sendo perita em produzir as funcionalidades de uma ferramenta CASE enquanto o utilizador perito no seu dom nio Esta separa o inexistente nas ferramentas CASE de m todos fixos e nas frameworks que suportam o c digo das LDEs Kelly et al 2006 3 7 5 Outras Outras ferramentas tamb m utilizadas para produzir LDEs s o AToM Lara e Vangheluwe 2002 e Meta Sketch N brega et al 2006 Segundo Lara e Vangheluwe 2002 AToM A Tool for Multi Formalism and Meta Modelling uma ferramenta de meta modela o visual que suporta a modela o
Download Pdf Manuals
Related Search
Related Contents
Copyright © All rights reserved.
Failed to retrieve file