SlideShare uma empresa Scribd logo
1 de 10
Baixar para ler offline
Applying aspect-extended
UML Modelling to e
Darren Galpin
The Problem

    We have testbenches which have been developed over many
    years, involving many people, much knowledge, and much re-
    use.

    Re-use typically involves adding new functionalities and
    modifying old ones -> many extensions and overrides.

    Testbenches are often moved between sites and teams – how to
    bring up new teams quickly, especially as documentation on
    testbench is often poor.

    Knowledge is often lost along the way. Contractors are used,
    people leave, knowledge isn’t documented before it is lost. Very
    different programming styles can be used.

    Testbenches are often very complex…… Might have redundant
    code as the RTL changes.

             – Need some way of making the knowledge capture and bring up easier…
22.05.2007   For internal use only   Copyright © Infineon Technologies 2007. All rights reserved.   Page 2
The Solution – UML (?)

“The Unified Modeling Language (UML) is a graphical language for
  visualizing, specifying and constructing the artifacts of a
  software-intensive system. The Unified Modeling Language offers
  a standard way to write a system's blueprints, including
  conceptual things such as business processes and system
  functions as well as concrete things such as programming
  language statements, database schemas, and reusable software
  components. “
                                                        Wikipedia

    Provides a graphical way of viewing a system, so should make it
    easier to see the program flow and interaction.

    There are commercial tools available, so can possibly just load
    the code in and view the result (wishful thinking….)

    Could design the code in tool, annotate, and use UML database
    to feed back the effects of changes. UML can write skeleton code
    for the first design, which can later be filled in.
22.05.2007   For internal use only   Copyright © Infineon Technologies 2007. All rights reserved.   Page 3
Issues

    UML was written to handle object oriented systems, but e is
    aspect oriented. How do we handle this?

    Use Theme/UML.
      Developed by Trinity College Dublin to handle AspectJ.
      AspectJ supports method and class extensions.
      However, not yet supported by a commercial tool.

    Can we use Theme/UML to model e?




22.05.2007   For internal use only   Copyright © Infineon Technologies 2007. All rights reserved.   Page 4
Problem 1 – Units and Structs

    AspectJ, like Java, is based on classes. e is based on units and
    structs.

    Units and structs are very similar, contain similar constructs and
    have similar built in methods (pre-generate(), run(), etc…)

    Handle this by having a top level class which has two child
    classes – a unit and a struct. Common methods are placed into
    the base class, any specific methods are added by extension into
    the child unit and struct “classes”.




22.05.2007   For internal use only   Copyright © Infineon Technologies 2007. All rights reserved.   Page 5
Problem 2 – extending methods

    In Theme/UML, a thread of functionality is known as a theme. An
    aspect theme adds crosscutting behaviour which modifies the
    base execution (in otherwords, “is also”, “is first” or “is only”
    extension.

                                                                    Wish to bind new aspect theme
                                                                    to the base theme, extending
                                                                    method() with extsnA() via “is
                                                                    also” extension.
                                                                    The resulting composed object is
                                                                    shown on the right.
                                                                    Have to manually draw these at
                                                                    the moment – laborious for
                                                                    complex testbenches needing to
                                                                    capture multiple extensions.



22.05.2007   For internal use only   Copyright © Infineon Technologies 2007. All rights reserved.      Page 6
How to handle type extension?

    Can simply extend types in e, but cannot in Aspect J.

    Example:
                 type dog_type : [pug,poodle];
                 extend type dog_type : [bulldog];


    Can create a new base dog class, with child classes for each
    dog_type.
         ¬ In e, the child class does not exist until generated.
         ¬ Constraints can be added so that a sub-type might never be
           generated.
         ¬ Difficult to graphically show this in UML.

    Root problem is that AspectJ just isn’t as extensible as e….




22.05.2007   For internal use only   Copyright © Infineon Technologies 2007. All rights reserved.   Page 7
Handling constraints

    Variables in e have constraints to restrict what is generated. For
    example:
                 type bark_type : [yelp, growl, howl];
                 type dog_kind : [poodle, pug, bulldog];
                 struct dog {
                   bark : bark_type;
                   dog_kind : dog_kind;
                   keep soft bark_type in [yelp,growl];
                 };
                 extend poodle dog {
                   keep bark_type=yelp;
                 };
    Constraints can be added to UML via Object Constraint
    Language. Allows ranges and implications to be added to
    variables.
    OCL cannot have aspects added to it – Theme/UML has not
    considered this. Hence the extension cannot be modelled. What
    about soft and hard constraints?

22.05.2007   For internal use only   Copyright © Infineon Technologies 2007. All rights reserved.   Page 8
Timed Behaviour

    TCM’s, TE’s and Coverage objects – model them all as methods.
         ¬ All instantiated within a unit/struct.
         ¬ Event is a method that raises a flag when emitted or when a
           sequence of other events is observed.
         ¬ A TE is a piece of boolean logic that evaluates to true or false and
           raises a flag.
         ¬ Cover objects are methods that increment counters for coverage
           purposes.

    But how to distinguish between method() and method()@clk?

    In addition, different extension rules apply for the different
    “methods”. E.g. “is only” not allowed for cover objects.

    Other timed behaviour: run-time generation, destruction of
    structs, Load order.

22.05.2007   For internal use only   Copyright © Infineon Technologies 2007. All rights reserved.   Page 9
So, in summary

    UML doesn’t work…..
             – Full Aspect-orientation does not map well, so cannot support full feature
                 set of e.
             – Aspect-orientation is not commercially supported, so need to manually
               draw AOP diagrams. Too much work….

    So don’t bother with it?
             – Diagramming small parts of the system can be useful. UML does support
               polymorphism, so can use the diagrams to describe sub-sections of the
               code.
             – A good diagram is worth a thousand words.
             – Diagrams are language neutral…….




For further info see “Modelling Hardware Verification Concerns Specified in the e-Language: An Experience
    Report”, by Darren Galpin, Cormac Driver and Siobhán Clarke, submitted to AOSD 2009.



22.05.2007   For internal use only   Copyright © Infineon Technologies 2007. All rights reserved.           Page 10

Mais conteúdo relacionado

Mais procurados

Industrial and Academic Experiences with a User Interaction Modeling Language...
Industrial and Academic Experiences with a User Interaction Modeling Language...Industrial and Academic Experiences with a User Interaction Modeling Language...
Industrial and Academic Experiences with a User Interaction Modeling Language...Marco Brambilla
 
What is UML (Unified Modeling Language)?
What is UML (Unified Modeling Language)?What is UML (Unified Modeling Language)?
What is UML (Unified Modeling Language)?Eliza Wright
 
Lecture9 domain model visualizing
Lecture9 domain model visualizingLecture9 domain model visualizing
Lecture9 domain model visualizingShahid Riaz
 
UNIFIED MODELING LANGUAGE
UNIFIED MODELING LANGUAGEUNIFIED MODELING LANGUAGE
UNIFIED MODELING LANGUAGERaval Chirag
 
Uml(unified modeling language) Homework Help
Uml(unified modeling language) Homework HelpUml(unified modeling language) Homework Help
Uml(unified modeling language) Homework HelpSteve Nash
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering Madhar Khan Pathan
 
Unified Modeling Language
Unified Modeling LanguageUnified Modeling Language
Unified Modeling Languagesurana college
 
Bridge Design Pattern
Bridge Design PatternBridge Design Pattern
Bridge Design Patternsahilrk911
 
Unified modelling language (UML)
Unified modelling language (UML)Unified modelling language (UML)
Unified modelling language (UML)Hirra Sultan
 
Uml in software engineering
Uml in software engineeringUml in software engineering
Uml in software engineeringMubashir Jutt
 
Uml Explained Step ByStep
Uml Explained Step ByStepUml Explained Step ByStep
Uml Explained Step ByStepWaseem Khan
 

Mais procurados (20)

Industrial and Academic Experiences with a User Interaction Modeling Language...
Industrial and Academic Experiences with a User Interaction Modeling Language...Industrial and Academic Experiences with a User Interaction Modeling Language...
Industrial and Academic Experiences with a User Interaction Modeling Language...
 
What is UML (Unified Modeling Language)?
What is UML (Unified Modeling Language)?What is UML (Unified Modeling Language)?
What is UML (Unified Modeling Language)?
 
Lecture9 domain model visualizing
Lecture9 domain model visualizingLecture9 domain model visualizing
Lecture9 domain model visualizing
 
Introduction to UML
Introduction to UMLIntroduction to UML
Introduction to UML
 
Unified Modeling Language
Unified Modeling LanguageUnified Modeling Language
Unified Modeling Language
 
UNIFIED MODELING LANGUAGE
UNIFIED MODELING LANGUAGEUNIFIED MODELING LANGUAGE
UNIFIED MODELING LANGUAGE
 
Uml(unified modeling language) Homework Help
Uml(unified modeling language) Homework HelpUml(unified modeling language) Homework Help
Uml(unified modeling language) Homework Help
 
UML Modeling in Java
UML Modeling in JavaUML Modeling in Java
UML Modeling in Java
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering
 
Srs
SrsSrs
Srs
 
UML Trainings
UML TrainingsUML Trainings
UML Trainings
 
Uml
UmlUml
Uml
 
Introduction to MDA
Introduction to MDAIntroduction to MDA
Introduction to MDA
 
UML
UMLUML
UML
 
En webinar jpa v2final
En webinar jpa v2finalEn webinar jpa v2final
En webinar jpa v2final
 
Unified Modeling Language
Unified Modeling LanguageUnified Modeling Language
Unified Modeling Language
 
Bridge Design Pattern
Bridge Design PatternBridge Design Pattern
Bridge Design Pattern
 
Unified modelling language (UML)
Unified modelling language (UML)Unified modelling language (UML)
Unified modelling language (UML)
 
Uml in software engineering
Uml in software engineeringUml in software engineering
Uml in software engineering
 
Uml Explained Step ByStep
Uml Explained Step ByStepUml Explained Step ByStep
Uml Explained Step ByStep
 

Destaque

[Hci] cognitive psychology 0919 mingipyo
[Hci] cognitive psychology 0919 mingipyo[Hci] cognitive psychology 0919 mingipyo
[Hci] cognitive psychology 0919 mingipyoMingi Pyo
 
Mobiz 2011 le cardio fan, premier-né d'une approche multiplateformes intégrée
Mobiz 2011   le cardio fan, premier-né d'une approche multiplateformes intégréeMobiz 2011   le cardio fan, premier-né d'une approche multiplateformes intégrée
Mobiz 2011 le cardio fan, premier-né d'une approche multiplateformes intégréePheromoneMobiz
 
Programma definitivo in pdf
Programma definitivo in pdfProgramma definitivo in pdf
Programma definitivo in pdfgandheri
 
2014 summer A 803 q
2014 summer A 803 q2014 summer A 803 q
2014 summer A 803 qbagrutonline
 
Bristol 2009 q1_boulton_richard
Bristol 2009 q1_boulton_richardBristol 2009 q1_boulton_richard
Bristol 2009 q1_boulton_richardObsidian Software
 
Salamian dv club_foils_intel_austin
Salamian dv club_foils_intel_austinSalamian dv club_foils_intel_austin
Salamian dv club_foils_intel_austinObsidian Software
 
2010 bristol q1_hybrid-formal-coverage
2010 bristol q1_hybrid-formal-coverage2010 bristol q1_hybrid-formal-coverage
2010 bristol q1_hybrid-formal-coverageObsidian Software
 
D2 audio dv_club_verification_flow
D2 audio dv_club_verification_flowD2 audio dv_club_verification_flow
D2 audio dv_club_verification_flowObsidian Software
 

Destaque (20)

[Hci] cognitive psychology 0919 mingipyo
[Hci] cognitive psychology 0919 mingipyo[Hci] cognitive psychology 0919 mingipyo
[Hci] cognitive psychology 0919 mingipyo
 
Mobiz 2011 le cardio fan, premier-né d'une approche multiplateformes intégrée
Mobiz 2011   le cardio fan, premier-né d'une approche multiplateformes intégréeMobiz 2011   le cardio fan, premier-né d'une approche multiplateformes intégrée
Mobiz 2011 le cardio fan, premier-né d'une approche multiplateformes intégrée
 
Cmp0200 ieee
Cmp0200 ieeeCmp0200 ieee
Cmp0200 ieee
 
Programma definitivo in pdf
Programma definitivo in pdfProgramma definitivo in pdf
Programma definitivo in pdf
 
Sample
SampleSample
Sample
 
1 permenpan 34 2011
1 permenpan 34 20111 permenpan 34 2011
1 permenpan 34 2011
 
Zhang rtp q307
Zhang rtp q307Zhang rtp q307
Zhang rtp q307
 
2014 summer A 803 q
2014 summer A 803 q2014 summer A 803 q
2014 summer A 803 q
 
Bristol 2009 q1_boulton_richard
Bristol 2009 q1_boulton_richardBristol 2009 q1_boulton_richard
Bristol 2009 q1_boulton_richard
 
Dv club foils_intel_austin
Dv club foils_intel_austinDv club foils_intel_austin
Dv club foils_intel_austin
 
3 d to _hpc
3 d to _hpc3 d to _hpc
3 d to _hpc
 
Dill may-2008
Dill may-2008Dill may-2008
Dill may-2008
 
Chris brown ti
Chris brown tiChris brown ti
Chris brown ti
 
Jonathan bromley doulos
Jonathan bromley doulosJonathan bromley doulos
Jonathan bromley doulos
 
Ludden power7 verification
Ludden power7 verificationLudden power7 verification
Ludden power7 verification
 
Colwell validation attitude
Colwell validation attitudeColwell validation attitude
Colwell validation attitude
 
Benjamin q4 2008_bristol
Benjamin q4 2008_bristolBenjamin q4 2008_bristol
Benjamin q4 2008_bristol
 
Salamian dv club_foils_intel_austin
Salamian dv club_foils_intel_austinSalamian dv club_foils_intel_austin
Salamian dv club_foils_intel_austin
 
2010 bristol q1_hybrid-formal-coverage
2010 bristol q1_hybrid-formal-coverage2010 bristol q1_hybrid-formal-coverage
2010 bristol q1_hybrid-formal-coverage
 
D2 audio dv_club_verification_flow
D2 audio dv_club_verification_flowD2 audio dv_club_verification_flow
D2 audio dv_club_verification_flow
 

Semelhante a Darren galpin q4_2008_bristol

Summary of Excel Skills
Summary of Excel SkillsSummary of Excel Skills
Summary of Excel Skillsjunggi784
 
Unit-II(STATIC UML DIAGRAMS).ppt
Unit-II(STATIC UML DIAGRAMS).pptUnit-II(STATIC UML DIAGRAMS).ppt
Unit-II(STATIC UML DIAGRAMS).pptganeshkarthy
 
Modeling With Eclipse @SoftShake 2011
Modeling With Eclipse @SoftShake 2011Modeling With Eclipse @SoftShake 2011
Modeling With Eclipse @SoftShake 2011Mickael Istria
 
Representing Patterns In Uml Andy Bulka 200610
Representing Patterns In Uml Andy Bulka 200610Representing Patterns In Uml Andy Bulka 200610
Representing Patterns In Uml Andy Bulka 200610melbournepatterns
 
Representing Design Patterns In Uml Andy Bulka Oct2006
Representing Design Patterns In Uml Andy Bulka Oct2006Representing Design Patterns In Uml Andy Bulka Oct2006
Representing Design Patterns In Uml Andy Bulka Oct2006tcab22
 
The Economics of OptimJ
The Economics of OptimJThe Economics of OptimJ
The Economics of OptimJPatrick Viry
 
EclipseCon EU 2015 : EMF compare + EGit = Seamless Collaborative Modeling
EclipseCon EU 2015 : EMF compare + EGit = Seamless Collaborative ModelingEclipseCon EU 2015 : EMF compare + EGit = Seamless Collaborative Modeling
EclipseCon EU 2015 : EMF compare + EGit = Seamless Collaborative ModelingObeo
 
Uml to code with acceleo
Uml to code with acceleoUml to code with acceleo
Uml to code with acceleoTarun Telang
 
Mc0083 object oriented analysis & design using uml
Mc0083 object oriented analysis & design using umlMc0083 object oriented analysis & design using uml
Mc0083 object oriented analysis & design using umlsmumbahelp
 
UML with Action Semantics
UML with Action SemanticsUML with Action Semantics
UML with Action Semanticselliando dias
 
Activity Diagram
Activity DiagramActivity Diagram
Activity DiagramAshesh R
 
Elm Detroit 9/7/17 - Planting Seeds with Elm
Elm Detroit 9/7/17 - Planting Seeds with ElmElm Detroit 9/7/17 - Planting Seeds with Elm
Elm Detroit 9/7/17 - Planting Seeds with ElmElm Detroit
 
Code Generation 2014 - ALF, the Standard Programming Language for UML
Code Generation 2014  - ALF, the Standard Programming Language for UMLCode Generation 2014  - ALF, the Standard Programming Language for UML
Code Generation 2014 - ALF, the Standard Programming Language for UMLJürgen Mutschall
 
Standards-Based Executable UML: Today's Reality and Tomorrow's Promise
Standards-Based Executable UML: Today's Reality and Tomorrow's PromiseStandards-Based Executable UML: Today's Reality and Tomorrow's Promise
Standards-Based Executable UML: Today's Reality and Tomorrow's PromiseEd Seidewitz
 
Execution Framework of the GEMOC Studio
Execution Framework of the GEMOC StudioExecution Framework of the GEMOC Studio
Execution Framework of the GEMOC StudioBenoit Combemale
 
Wireless Communication Network Communication
Wireless Communication Network CommunicationWireless Communication Network Communication
Wireless Communication Network CommunicationVrushali Lanjewar
 
Batch 21(14,64,66)
Batch 21(14,64,66)Batch 21(14,64,66)
Batch 21(14,64,66)swethadln
 

Semelhante a Darren galpin q4_2008_bristol (20)

Summary of Excel Skills
Summary of Excel SkillsSummary of Excel Skills
Summary of Excel Skills
 
Unit-II(STATIC UML DIAGRAMS).ppt
Unit-II(STATIC UML DIAGRAMS).pptUnit-II(STATIC UML DIAGRAMS).ppt
Unit-II(STATIC UML DIAGRAMS).ppt
 
Modeling With Eclipse @SoftShake 2011
Modeling With Eclipse @SoftShake 2011Modeling With Eclipse @SoftShake 2011
Modeling With Eclipse @SoftShake 2011
 
Representing Patterns In Uml Andy Bulka 200610
Representing Patterns In Uml Andy Bulka 200610Representing Patterns In Uml Andy Bulka 200610
Representing Patterns In Uml Andy Bulka 200610
 
Representing Design Patterns In Uml Andy Bulka Oct2006
Representing Design Patterns In Uml Andy Bulka Oct2006Representing Design Patterns In Uml Andy Bulka Oct2006
Representing Design Patterns In Uml Andy Bulka Oct2006
 
The Economics of OptimJ
The Economics of OptimJThe Economics of OptimJ
The Economics of OptimJ
 
EclipseCon EU 2015 : EMF compare + EGit = Seamless Collaborative Modeling
EclipseCon EU 2015 : EMF compare + EGit = Seamless Collaborative ModelingEclipseCon EU 2015 : EMF compare + EGit = Seamless Collaborative Modeling
EclipseCon EU 2015 : EMF compare + EGit = Seamless Collaborative Modeling
 
Uml to code with acceleo
Uml to code with acceleoUml to code with acceleo
Uml to code with acceleo
 
Mc0083 object oriented analysis & design using uml
Mc0083 object oriented analysis & design using umlMc0083 object oriented analysis & design using uml
Mc0083 object oriented analysis & design using uml
 
UML with Action Semantics
UML with Action SemanticsUML with Action Semantics
UML with Action Semantics
 
Activity Diagram
Activity DiagramActivity Diagram
Activity Diagram
 
Elm Detroit 9/7/17 - Planting Seeds with Elm
Elm Detroit 9/7/17 - Planting Seeds with ElmElm Detroit 9/7/17 - Planting Seeds with Elm
Elm Detroit 9/7/17 - Planting Seeds with Elm
 
IN4308 1
IN4308 1IN4308 1
IN4308 1
 
Case stydy cs701
Case stydy cs701 Case stydy cs701
Case stydy cs701
 
Code Generation 2014 - ALF, the Standard Programming Language for UML
Code Generation 2014  - ALF, the Standard Programming Language for UMLCode Generation 2014  - ALF, the Standard Programming Language for UML
Code Generation 2014 - ALF, the Standard Programming Language for UML
 
Standards-Based Executable UML: Today's Reality and Tomorrow's Promise
Standards-Based Executable UML: Today's Reality and Tomorrow's PromiseStandards-Based Executable UML: Today's Reality and Tomorrow's Promise
Standards-Based Executable UML: Today's Reality and Tomorrow's Promise
 
Execution Framework of the GEMOC Studio
Execution Framework of the GEMOC StudioExecution Framework of the GEMOC Studio
Execution Framework of the GEMOC Studio
 
Wireless Communication Network Communication
Wireless Communication Network CommunicationWireless Communication Network Communication
Wireless Communication Network Communication
 
SE UML.ppt
SE UML.pptSE UML.ppt
SE UML.ppt
 
Batch 21(14,64,66)
Batch 21(14,64,66)Batch 21(14,64,66)
Batch 21(14,64,66)
 

Mais de Obsidian Software (20)

Zehr dv club_12052006
Zehr dv club_12052006Zehr dv club_12052006
Zehr dv club_12052006
 
Yang greenstein part_2
Yang greenstein part_2Yang greenstein part_2
Yang greenstein part_2
 
Yang greenstein part_1
Yang greenstein part_1Yang greenstein part_1
Yang greenstein part_1
 
Williamson arm validation metrics
Williamson arm validation metricsWilliamson arm validation metrics
Williamson arm validation metrics
 
Whipp q3 2008_sv
Whipp q3 2008_svWhipp q3 2008_sv
Whipp q3 2008_sv
 
Vishakantaiah validating
Vishakantaiah validatingVishakantaiah validating
Vishakantaiah validating
 
Validation and-design-in-a-small-team-environment
Validation and-design-in-a-small-team-environmentValidation and-design-in-a-small-team-environment
Validation and-design-in-a-small-team-environment
 
Tobin verification isglobal
Tobin verification isglobalTobin verification isglobal
Tobin verification isglobal
 
Tierney bq207
Tierney bq207Tierney bq207
Tierney bq207
 
The validation attitude
The validation attitudeThe validation attitude
The validation attitude
 
Thaker q3 2008
Thaker q3 2008Thaker q3 2008
Thaker q3 2008
 
Thaker q3 2008
Thaker q3 2008Thaker q3 2008
Thaker q3 2008
 
Strickland dvclub
Strickland dvclubStrickland dvclub
Strickland dvclub
 
Stinson post si and verification
Stinson post si and verificationStinson post si and verification
Stinson post si and verification
 
Shultz dallas q108
Shultz dallas q108Shultz dallas q108
Shultz dallas q108
 
Shreeve dv club_ams
Shreeve dv club_amsShreeve dv club_ams
Shreeve dv club_ams
 
Sharam salamian
Sharam salamianSharam salamian
Sharam salamian
 
Schulz sv q2_2009
Schulz sv q2_2009Schulz sv q2_2009
Schulz sv q2_2009
 
Schulz dallas q1_2008
Schulz dallas q1_2008Schulz dallas q1_2008
Schulz dallas q1_2008
 
Sakar jain
Sakar jainSakar jain
Sakar jain
 

Darren galpin q4_2008_bristol

  • 2. The Problem We have testbenches which have been developed over many years, involving many people, much knowledge, and much re- use. Re-use typically involves adding new functionalities and modifying old ones -> many extensions and overrides. Testbenches are often moved between sites and teams – how to bring up new teams quickly, especially as documentation on testbench is often poor. Knowledge is often lost along the way. Contractors are used, people leave, knowledge isn’t documented before it is lost. Very different programming styles can be used. Testbenches are often very complex…… Might have redundant code as the RTL changes. – Need some way of making the knowledge capture and bring up easier… 22.05.2007 For internal use only Copyright © Infineon Technologies 2007. All rights reserved. Page 2
  • 3. The Solution – UML (?) “The Unified Modeling Language (UML) is a graphical language for visualizing, specifying and constructing the artifacts of a software-intensive system. The Unified Modeling Language offers a standard way to write a system's blueprints, including conceptual things such as business processes and system functions as well as concrete things such as programming language statements, database schemas, and reusable software components. “ Wikipedia Provides a graphical way of viewing a system, so should make it easier to see the program flow and interaction. There are commercial tools available, so can possibly just load the code in and view the result (wishful thinking….) Could design the code in tool, annotate, and use UML database to feed back the effects of changes. UML can write skeleton code for the first design, which can later be filled in. 22.05.2007 For internal use only Copyright © Infineon Technologies 2007. All rights reserved. Page 3
  • 4. Issues UML was written to handle object oriented systems, but e is aspect oriented. How do we handle this? Use Theme/UML. Developed by Trinity College Dublin to handle AspectJ. AspectJ supports method and class extensions. However, not yet supported by a commercial tool. Can we use Theme/UML to model e? 22.05.2007 For internal use only Copyright © Infineon Technologies 2007. All rights reserved. Page 4
  • 5. Problem 1 – Units and Structs AspectJ, like Java, is based on classes. e is based on units and structs. Units and structs are very similar, contain similar constructs and have similar built in methods (pre-generate(), run(), etc…) Handle this by having a top level class which has two child classes – a unit and a struct. Common methods are placed into the base class, any specific methods are added by extension into the child unit and struct “classes”. 22.05.2007 For internal use only Copyright © Infineon Technologies 2007. All rights reserved. Page 5
  • 6. Problem 2 – extending methods In Theme/UML, a thread of functionality is known as a theme. An aspect theme adds crosscutting behaviour which modifies the base execution (in otherwords, “is also”, “is first” or “is only” extension. Wish to bind new aspect theme to the base theme, extending method() with extsnA() via “is also” extension. The resulting composed object is shown on the right. Have to manually draw these at the moment – laborious for complex testbenches needing to capture multiple extensions. 22.05.2007 For internal use only Copyright © Infineon Technologies 2007. All rights reserved. Page 6
  • 7. How to handle type extension? Can simply extend types in e, but cannot in Aspect J. Example: type dog_type : [pug,poodle]; extend type dog_type : [bulldog]; Can create a new base dog class, with child classes for each dog_type. ¬ In e, the child class does not exist until generated. ¬ Constraints can be added so that a sub-type might never be generated. ¬ Difficult to graphically show this in UML. Root problem is that AspectJ just isn’t as extensible as e…. 22.05.2007 For internal use only Copyright © Infineon Technologies 2007. All rights reserved. Page 7
  • 8. Handling constraints Variables in e have constraints to restrict what is generated. For example: type bark_type : [yelp, growl, howl]; type dog_kind : [poodle, pug, bulldog]; struct dog { bark : bark_type; dog_kind : dog_kind; keep soft bark_type in [yelp,growl]; }; extend poodle dog { keep bark_type=yelp; }; Constraints can be added to UML via Object Constraint Language. Allows ranges and implications to be added to variables. OCL cannot have aspects added to it – Theme/UML has not considered this. Hence the extension cannot be modelled. What about soft and hard constraints? 22.05.2007 For internal use only Copyright © Infineon Technologies 2007. All rights reserved. Page 8
  • 9. Timed Behaviour TCM’s, TE’s and Coverage objects – model them all as methods. ¬ All instantiated within a unit/struct. ¬ Event is a method that raises a flag when emitted or when a sequence of other events is observed. ¬ A TE is a piece of boolean logic that evaluates to true or false and raises a flag. ¬ Cover objects are methods that increment counters for coverage purposes. But how to distinguish between method() and method()@clk? In addition, different extension rules apply for the different “methods”. E.g. “is only” not allowed for cover objects. Other timed behaviour: run-time generation, destruction of structs, Load order. 22.05.2007 For internal use only Copyright © Infineon Technologies 2007. All rights reserved. Page 9
  • 10. So, in summary UML doesn’t work….. – Full Aspect-orientation does not map well, so cannot support full feature set of e. – Aspect-orientation is not commercially supported, so need to manually draw AOP diagrams. Too much work…. So don’t bother with it? – Diagramming small parts of the system can be useful. UML does support polymorphism, so can use the diagrams to describe sub-sections of the code. – A good diagram is worth a thousand words. – Diagrams are language neutral……. For further info see “Modelling Hardware Verification Concerns Specified in the e-Language: An Experience Report”, by Darren Galpin, Cormac Driver and Siobhán Clarke, submitted to AOSD 2009. 22.05.2007 For internal use only Copyright © Infineon Technologies 2007. All rights reserved. Page 10