SlideShare a Scribd company logo
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

More Related Content

What's hot

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
 
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
 
Lecture9 domain model visualizing
Lecture9 domain model visualizingLecture9 domain model visualizing
Lecture9 domain model visualizing
Shahid Riaz
 
Introduction to UML
Introduction to UMLIntroduction to UML
Introduction to UML
Paxcel Technologies
 
Unified Modeling Language
Unified Modeling LanguageUnified Modeling Language
Unified Modeling Language
Khushboo Wadhwani
 
UNIFIED MODELING LANGUAGE
UNIFIED MODELING LANGUAGEUNIFIED MODELING LANGUAGE
UNIFIED MODELING LANGUAGE
Raval Chirag
 
Uml(unified modeling language) Homework Help
Uml(unified modeling language) Homework HelpUml(unified modeling language) Homework Help
Uml(unified modeling language) Homework Help
Steve Nash
 
UML Modeling in Java
UML Modeling in JavaUML Modeling in Java
UML Modeling in Java
Daffodil International University
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering
Madhar Khan Pathan
 
Srs
SrsSrs
UML Trainings
UML TrainingsUML Trainings
Uml
UmlUml
Uml
Havi K
 
Introduction to MDA
Introduction to MDAIntroduction to MDA
Introduction to MDA
Orçun Dayıbaş
 
UML
UMLUML
En webinar jpa v2final
En webinar jpa v2finalEn webinar jpa v2final
En webinar jpa v2final
alvaro alcocer sotil
 
Unified Modeling Language
Unified Modeling LanguageUnified Modeling Language
Unified Modeling Language
surana college
 
Bridge Design Pattern
Bridge Design PatternBridge Design Pattern
Bridge Design Pattern
sahilrk911
 
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 engineering
Mubashir Jutt
 
Uml Explained Step ByStep
Uml Explained Step ByStepUml Explained Step ByStep
Uml Explained Step ByStep
Waseem Khan
 

What's hot (20)

What is UML (Unified Modeling Language)?
What is UML (Unified Modeling Language)?What is UML (Unified Modeling Language)?
What is UML (Unified 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...
Industrial and Academic Experiences with a User Interaction 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
 

Similar to Applying Aspect-Extended UML Modelling to 'e'

Summary of Excel Skills
Summary of Excel SkillsSummary of Excel Skills
Summary of Excel Skills
junggi784
 
Unit-II(STATIC UML DIAGRAMS).ppt
Unit-II(STATIC UML DIAGRAMS).pptUnit-II(STATIC UML DIAGRAMS).ppt
Unit-II(STATIC UML DIAGRAMS).ppt
ganeshkarthy
 
Modeling With Eclipse @SoftShake 2011
Modeling With Eclipse @SoftShake 2011Modeling With Eclipse @SoftShake 2011
Modeling With Eclipse @SoftShake 2011
Mickael 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 200610
melbournepatterns
 
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
tcab22
 
The Economics of OptimJ
The Economics of OptimJThe Economics of OptimJ
The Economics of OptimJ
Patrick 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 Modeling
Obeo
 
Uml to code with acceleo
Uml to code with acceleoUml to code with acceleo
Uml to code with acceleo
Tarun 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 uml
smumbahelp
 
UML with Action Semantics
UML with Action SemanticsUML with Action Semantics
UML with Action Semantics
elliando dias
 
Activity Diagram
Activity DiagramActivity Diagram
Activity Diagram
Ashesh 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 Elm
Elm Detroit
 
IN4308 1
IN4308 1IN4308 1
IN4308 1
Eelco Visser
 
Case stydy cs701
Case stydy cs701 Case stydy cs701
Case stydy cs701
Dinkar Mishra
 
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
Jü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 Promise
Ed Seidewitz
 
Execution Framework of the GEMOC Studio
Execution Framework of the GEMOC StudioExecution Framework of the GEMOC Studio
Execution Framework of the GEMOC Studio
Benoit Combemale
 
Wireless Communication Network Communication
Wireless Communication Network CommunicationWireless Communication Network Communication
Wireless Communication Network Communication
Vrushali Lanjewar
 
SE UML.ppt
SE UML.pptSE UML.ppt
SE UML.ppt
AliZaib71
 
Batch 21(14,64,66)
Batch 21(14,64,66)Batch 21(14,64,66)
Batch 21(14,64,66)
swethadln
 

Similar to Applying Aspect-Extended UML Modelling to 'e' (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)
 

More from DVClub

IP Reuse Impact on Design Verification Management Across the Enterprise
IP Reuse Impact on Design Verification Management Across the EnterpriseIP Reuse Impact on Design Verification Management Across the Enterprise
IP Reuse Impact on Design Verification Management Across the Enterprise
DVClub
 
Cisco Base Environment Overview
Cisco Base Environment OverviewCisco Base Environment Overview
Cisco Base Environment Overview
DVClub
 
Intel Xeon Pre-Silicon Validation: Introduction and Challenges
Intel Xeon Pre-Silicon Validation: Introduction and ChallengesIntel Xeon Pre-Silicon Validation: Introduction and Challenges
Intel Xeon Pre-Silicon Validation: Introduction and Challenges
DVClub
 
Verification of Graphics ASICs (Part II)
Verification of Graphics ASICs (Part II)Verification of Graphics ASICs (Part II)
Verification of Graphics ASICs (Part II)
DVClub
 
Verification of Graphics ASICs (Part I)
Verification of Graphics ASICs (Part I)Verification of Graphics ASICs (Part I)
Verification of Graphics ASICs (Part I)
DVClub
 
Stop Writing Assertions! Efficient Verification Methodology
Stop Writing Assertions! Efficient Verification MethodologyStop Writing Assertions! Efficient Verification Methodology
Stop Writing Assertions! Efficient Verification Methodology
DVClub
 
Validating Next Generation CPUs
Validating Next Generation CPUsValidating Next Generation CPUs
Validating Next Generation CPUs
DVClub
 
Verification Automation Using IPXACT
Verification Automation Using IPXACTVerification Automation Using IPXACT
Verification Automation Using IPXACT
DVClub
 
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
DVClub
 
Trends in Mixed Signal Validation
Trends in Mixed Signal ValidationTrends in Mixed Signal Validation
Trends in Mixed Signal Validation
DVClub
 
Verification In A Global Design Community
Verification In A Global Design CommunityVerification In A Global Design Community
Verification In A Global Design Community
DVClub
 
Design Verification Using SystemC
Design Verification Using SystemCDesign Verification Using SystemC
Design Verification Using SystemC
DVClub
 
Verification Strategy for PCI-Express
Verification Strategy for PCI-ExpressVerification Strategy for PCI-Express
Verification Strategy for PCI-Express
DVClub
 
SystemVerilog Assertions (SVA) in the Design/Verification Process
SystemVerilog Assertions (SVA) in the Design/Verification ProcessSystemVerilog Assertions (SVA) in the Design/Verification Process
SystemVerilog Assertions (SVA) in the Design/Verification Process
DVClub
 
Efficiency Through Methodology
Efficiency Through MethodologyEfficiency Through Methodology
Efficiency Through Methodology
DVClub
 
Pre-Si Verification for Post-Si Validation
Pre-Si Verification for Post-Si ValidationPre-Si Verification for Post-Si Validation
Pre-Si Verification for Post-Si Validation
DVClub
 
OpenSPARC T1 Processor
OpenSPARC T1 ProcessorOpenSPARC T1 Processor
OpenSPARC T1 Processor
DVClub
 
Intel Atom Processor Pre-Silicon Verification Experience
Intel Atom Processor Pre-Silicon Verification ExperienceIntel Atom Processor Pre-Silicon Verification Experience
Intel Atom Processor Pre-Silicon Verification Experience
DVClub
 
Using Assertions in AMS Verification
Using Assertions in AMS VerificationUsing Assertions in AMS Verification
Using Assertions in AMS Verification
DVClub
 
Low-Power Design and Verification
Low-Power Design and VerificationLow-Power Design and Verification
Low-Power Design and Verification
DVClub
 

More from DVClub (20)

IP Reuse Impact on Design Verification Management Across the Enterprise
IP Reuse Impact on Design Verification Management Across the EnterpriseIP Reuse Impact on Design Verification Management Across the Enterprise
IP Reuse Impact on Design Verification Management Across the Enterprise
 
Cisco Base Environment Overview
Cisco Base Environment OverviewCisco Base Environment Overview
Cisco Base Environment Overview
 
Intel Xeon Pre-Silicon Validation: Introduction and Challenges
Intel Xeon Pre-Silicon Validation: Introduction and ChallengesIntel Xeon Pre-Silicon Validation: Introduction and Challenges
Intel Xeon Pre-Silicon Validation: Introduction and Challenges
 
Verification of Graphics ASICs (Part II)
Verification of Graphics ASICs (Part II)Verification of Graphics ASICs (Part II)
Verification of Graphics ASICs (Part II)
 
Verification of Graphics ASICs (Part I)
Verification of Graphics ASICs (Part I)Verification of Graphics ASICs (Part I)
Verification of Graphics ASICs (Part I)
 
Stop Writing Assertions! Efficient Verification Methodology
Stop Writing Assertions! Efficient Verification MethodologyStop Writing Assertions! Efficient Verification Methodology
Stop Writing Assertions! Efficient Verification Methodology
 
Validating Next Generation CPUs
Validating Next Generation CPUsValidating Next Generation CPUs
Validating Next Generation CPUs
 
Verification Automation Using IPXACT
Verification Automation Using IPXACTVerification Automation Using IPXACT
Verification Automation Using IPXACT
 
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
 
Trends in Mixed Signal Validation
Trends in Mixed Signal ValidationTrends in Mixed Signal Validation
Trends in Mixed Signal Validation
 
Verification In A Global Design Community
Verification In A Global Design CommunityVerification In A Global Design Community
Verification In A Global Design Community
 
Design Verification Using SystemC
Design Verification Using SystemCDesign Verification Using SystemC
Design Verification Using SystemC
 
Verification Strategy for PCI-Express
Verification Strategy for PCI-ExpressVerification Strategy for PCI-Express
Verification Strategy for PCI-Express
 
SystemVerilog Assertions (SVA) in the Design/Verification Process
SystemVerilog Assertions (SVA) in the Design/Verification ProcessSystemVerilog Assertions (SVA) in the Design/Verification Process
SystemVerilog Assertions (SVA) in the Design/Verification Process
 
Efficiency Through Methodology
Efficiency Through MethodologyEfficiency Through Methodology
Efficiency Through Methodology
 
Pre-Si Verification for Post-Si Validation
Pre-Si Verification for Post-Si ValidationPre-Si Verification for Post-Si Validation
Pre-Si Verification for Post-Si Validation
 
OpenSPARC T1 Processor
OpenSPARC T1 ProcessorOpenSPARC T1 Processor
OpenSPARC T1 Processor
 
Intel Atom Processor Pre-Silicon Verification Experience
Intel Atom Processor Pre-Silicon Verification ExperienceIntel Atom Processor Pre-Silicon Verification Experience
Intel Atom Processor Pre-Silicon Verification Experience
 
Using Assertions in AMS Verification
Using Assertions in AMS VerificationUsing Assertions in AMS Verification
Using Assertions in AMS Verification
 
Low-Power Design and Verification
Low-Power Design and VerificationLow-Power Design and Verification
Low-Power Design and Verification
 

Recently uploaded

Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
Safe Software
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
Fwdays
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
saastr
 
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
saastr
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
AstuteBusiness
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
DianaGray10
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Neo4j
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
Neo4j
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
Ivo Velitchkov
 
Christine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptxChristine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptx
christinelarrosa
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
Edge AI and Vision Alliance
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
Miro Wengner
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
Fwdays
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
Alex Pruden
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 

Recently uploaded (20)

Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
 
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
 
Christine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptxChristine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptx
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 

Applying Aspect-Extended UML Modelling to 'e'

  • 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