SlideShare a Scribd company logo
1 of 31
Foundation Libraries Paolo Quadrani – Daniele Giunchi – Roberto Mucci
Dynamic Libraries’ list ,[object Object],[object Object],[object Object],[object Object],[object Object]
VXL/VNL ,[object Object],[object Object],[object Object]
Qxmlrpc (Qt based, LGPL) ,[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Qt:  License LGPL
mafCore Module
 
Main Concepts ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
mafCore ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Basic Objects ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Singletons ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Core objects functionalities ,[object Object],[object Object],[object Object],[object Object],[object Object]
mafMemento ,[object Object],[object Object],[object Object],[object Object],[object Object]
mafContainerInterface mafContainer<T> ,[object Object],[object Object],[object Object],[object Object]
mafVisitor ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
mafMonitor ,[object Object],[object Object],[object Object]
mafLogger ,[object Object],[object Object],[object Object],[object Object],[object Object]
HowTos How to register and create object: mafRegisterObject(mafCore::mafObject); mafObjectBase*obj=mafNEWFromString(&quot;mafCore::mafObject&quot;); How to create an id with Id Provider: mafId myId = m_IdProvider->createNewId(&quot;TestObjectId&quot;); How to create/destroy a singleton: m_ObjectRegistry = mafObjectRegistry::instance(); m_ObjectRegistry->ShutDown();
MAF3 Quality Assurance
Test Suite Engine ,[object Object],[object Object],[object Object],[object Object]
mafQAManager ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
mafQAManager API ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Usage example Code to monitor time performance: // Initialize the profiler m_QAManager->profilerInit(); // Start the profiler with a string comment. m_QAManager->profilerStart(“Example&quot;); // snippet of code to be monitored. long int m = 0; int i = 0; for(; i < 5000000; i++) { m = calcToProfile(m); } // Stop the profiler to get the timing information m_QAManager->profilerStop(); // Show the results on console. m_QAManager->profilerViewResultsOnConsole(); Starting D:evelAF3nstallinafQATest.exe... ********* Start testing of mafQAManagerTest ********* Config: Using QTest library 4.6.2, Qt 4.6.2 PASS : mafQAManagerTest::initTestCase() PASS : mafQAManagerTest::mafQAManagerAllocationTest() QDEBUG : mafQAManagerTest::profilerTest() &quot;Function Name: mafQAManager run number 1 Location: mafQAManager run number 1 Notes: Example Call Number: 1 mSecs: 31 PASS : mafQAManagerTest::profilerTest() PASS : mafQAManagerTest::runScriptTest() PASS : mafQAManagerTest::cleanupTestCase() Totals: 5 passed, 0 failed, 0 skipped ********* Finished testing of mafQAManagerTest ********* CONSOLE OUTPUT
mafQA scripts ,[object Object],[object Object]
mafQA scripts (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
1.  Source Generation   ,[object Object],[object Object],[object Object],[object Object]
2. Generate  python scripts   ,[object Object],[object Object],[object Object],[object Object],[object Object]
3.  Execute generated scripts   ,[object Object],[object Object]
4.  Publish the results   ,[object Object],[object Object]
Implemented rules ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
QA Scripts results page ,[object Object]

More Related Content

What's hot

Running Pharo on the GemStone VM
Running Pharo on the GemStone VMRunning Pharo on the GemStone VM
Running Pharo on the GemStone VMESUG
 
Java Concurrency in Practice
Java Concurrency in PracticeJava Concurrency in Practice
Java Concurrency in PracticeAlina Dolgikh
 
Effective java - concurrency
Effective java - concurrencyEffective java - concurrency
Effective java - concurrencyfeng lee
 
CppUnit using introduction
CppUnit using introductionCppUnit using introduction
CppUnit using introductionIurii Kyian
 
Java Concurrency Gotchas
Java Concurrency GotchasJava Concurrency Gotchas
Java Concurrency GotchasAlex Miller
 
Java concurrency
Java concurrencyJava concurrency
Java concurrencyducquoc_vn
 
Современные технологии и инструменты анализа вредоносного ПО_PHDays_2017_Pisk...
Современные технологии и инструменты анализа вредоносного ПО_PHDays_2017_Pisk...Современные технологии и инструменты анализа вредоносного ПО_PHDays_2017_Pisk...
Современные технологии и инструменты анализа вредоносного ПО_PHDays_2017_Pisk...Ivan Piskunov
 
Programming with Threads in Java
Programming with Threads in JavaProgramming with Threads in Java
Programming with Threads in Javakoji lin
 
Java multi threading
Java multi threadingJava multi threading
Java multi threadingRaja Sekhar
 
Concurrency in Programming Languages
Concurrency in Programming LanguagesConcurrency in Programming Languages
Concurrency in Programming LanguagesYudong Li
 
Java Course 10: Threads and Concurrency
Java Course 10: Threads and ConcurrencyJava Course 10: Threads and Concurrency
Java Course 10: Threads and ConcurrencyAnton Keks
 
Advanced Introduction to Java Multi-Threading - Full (chok)
Advanced Introduction to Java Multi-Threading - Full (chok)Advanced Introduction to Java Multi-Threading - Full (chok)
Advanced Introduction to Java Multi-Threading - Full (chok)choksheak
 
Qt Framework Events Signals Threads
Qt Framework Events Signals ThreadsQt Framework Events Signals Threads
Qt Framework Events Signals ThreadsNeera Mital
 

What's hot (20)

Running Pharo on the GemStone VM
Running Pharo on the GemStone VMRunning Pharo on the GemStone VM
Running Pharo on the GemStone VM
 
Multithreading in Java
Multithreading in JavaMultithreading in Java
Multithreading in Java
 
Java Concurrency in Practice
Java Concurrency in PracticeJava Concurrency in Practice
Java Concurrency in Practice
 
Effective java - concurrency
Effective java - concurrencyEffective java - concurrency
Effective java - concurrency
 
04 threads
04 threads04 threads
04 threads
 
CppUnit using introduction
CppUnit using introductionCppUnit using introduction
CppUnit using introduction
 
Java Concurrency Gotchas
Java Concurrency GotchasJava Concurrency Gotchas
Java Concurrency Gotchas
 
Java concurrency
Java concurrencyJava concurrency
Java concurrency
 
ZON Dev Days 2013
ZON Dev Days 2013ZON Dev Days 2013
ZON Dev Days 2013
 
Современные технологии и инструменты анализа вредоносного ПО_PHDays_2017_Pisk...
Современные технологии и инструменты анализа вредоносного ПО_PHDays_2017_Pisk...Современные технологии и инструменты анализа вредоносного ПО_PHDays_2017_Pisk...
Современные технологии и инструменты анализа вредоносного ПО_PHDays_2017_Pisk...
 
Java Concurrency by Example
Java Concurrency by ExampleJava Concurrency by Example
Java Concurrency by Example
 
Calling functions
Calling functionsCalling functions
Calling functions
 
Programming with Threads in Java
Programming with Threads in JavaProgramming with Threads in Java
Programming with Threads in Java
 
Complete Java Course
Complete Java CourseComplete Java Course
Complete Java Course
 
Java multi threading
Java multi threadingJava multi threading
Java multi threading
 
Concurrency in Programming Languages
Concurrency in Programming LanguagesConcurrency in Programming Languages
Concurrency in Programming Languages
 
Java Course 10: Threads and Concurrency
Java Course 10: Threads and ConcurrencyJava Course 10: Threads and Concurrency
Java Course 10: Threads and Concurrency
 
Phasers to stunning
Phasers to stunningPhasers to stunning
Phasers to stunning
 
Advanced Introduction to Java Multi-Threading - Full (chok)
Advanced Introduction to Java Multi-Threading - Full (chok)Advanced Introduction to Java Multi-Threading - Full (chok)
Advanced Introduction to Java Multi-Threading - Full (chok)
 
Qt Framework Events Signals Threads
Qt Framework Events Signals ThreadsQt Framework Events Signals Threads
Qt Framework Events Signals Threads
 

Viewers also liked

Media Choice TV Reclame
Media Choice TV ReclameMedia Choice TV Reclame
Media Choice TV ReclameLuukRijnders
 
Ton Rozestraten - RTL Nederland
Ton Rozestraten - RTL NederlandTon Rozestraten - RTL Nederland
Ton Rozestraten - RTL NederlandBBP
 
#WAC2011 workshopdag: Gerwin Hendriks
#WAC2011 workshopdag: Gerwin Hendriks#WAC2011 workshopdag: Gerwin Hendriks
#WAC2011 workshopdag: Gerwin HendriksBBP
 
NOC-NSF presentation 27 Mei 2010
NOC-NSF presentation 27 Mei 2010NOC-NSF presentation 27 Mei 2010
NOC-NSF presentation 27 Mei 2010janeredivisie
 
Frank Vrijman (Infostrada) @ CMC Sport en Nieuwe Media
Frank Vrijman (Infostrada) @ CMC Sport en Nieuwe MediaFrank Vrijman (Infostrada) @ CMC Sport en Nieuwe Media
Frank Vrijman (Infostrada) @ CMC Sport en Nieuwe MediaMedia Perspectives
 
Joachim Henge (Akamai) @ CMC Sport en Nieuwe Media
Joachim Henge (Akamai) @ CMC Sport en Nieuwe MediaJoachim Henge (Akamai) @ CMC Sport en Nieuwe Media
Joachim Henge (Akamai) @ CMC Sport en Nieuwe MediaMedia Perspectives
 

Viewers also liked (8)

Maf Event Bus
Maf Event BusMaf Event Bus
Maf Event Bus
 
Media Choice TV Reclame
Media Choice TV ReclameMedia Choice TV Reclame
Media Choice TV Reclame
 
Ton Rozestraten - RTL Nederland
Ton Rozestraten - RTL NederlandTon Rozestraten - RTL Nederland
Ton Rozestraten - RTL Nederland
 
Augmented reality
Augmented realityAugmented reality
Augmented reality
 
#WAC2011 workshopdag: Gerwin Hendriks
#WAC2011 workshopdag: Gerwin Hendriks#WAC2011 workshopdag: Gerwin Hendriks
#WAC2011 workshopdag: Gerwin Hendriks
 
NOC-NSF presentation 27 Mei 2010
NOC-NSF presentation 27 Mei 2010NOC-NSF presentation 27 Mei 2010
NOC-NSF presentation 27 Mei 2010
 
Frank Vrijman (Infostrada) @ CMC Sport en Nieuwe Media
Frank Vrijman (Infostrada) @ CMC Sport en Nieuwe MediaFrank Vrijman (Infostrada) @ CMC Sport en Nieuwe Media
Frank Vrijman (Infostrada) @ CMC Sport en Nieuwe Media
 
Joachim Henge (Akamai) @ CMC Sport en Nieuwe Media
Joachim Henge (Akamai) @ CMC Sport en Nieuwe MediaJoachim Henge (Akamai) @ CMC Sport en Nieuwe Media
Joachim Henge (Akamai) @ CMC Sport en Nieuwe Media
 

Similar to Maf3 - Part 1

Testing Kafka components with Kafka for JUnit
Testing Kafka components with Kafka for JUnitTesting Kafka components with Kafka for JUnit
Testing Kafka components with Kafka for JUnitMarkus Günther
 
WMQ Toolbox: 20 Scripts, One-liners, & Utilities for UNIX & Windows
WMQ Toolbox: 20 Scripts, One-liners, & Utilities for UNIX & Windows WMQ Toolbox: 20 Scripts, One-liners, & Utilities for UNIX & Windows
WMQ Toolbox: 20 Scripts, One-liners, & Utilities for UNIX & Windows T.Rob Wyatt
 
Introduction to Dynamic Analysis of Android Application
Introduction to Dynamic Analysis of Android ApplicationIntroduction to Dynamic Analysis of Android Application
Introduction to Dynamic Analysis of Android ApplicationKelwin Yang
 
Design patterns in Magento
Design patterns in MagentoDesign patterns in Magento
Design patterns in MagentoDivante
 
systemverilog-interview-questions.docx
systemverilog-interview-questions.docxsystemverilog-interview-questions.docx
systemverilog-interview-questions.docxssuser1c8ca21
 
Taming Deployment With Smart Frog
Taming Deployment With Smart FrogTaming Deployment With Smart Frog
Taming Deployment With Smart FrogSteve Loughran
 
Workshop 23: ReactJS, React & Redux testing
Workshop 23: ReactJS, React & Redux testingWorkshop 23: ReactJS, React & Redux testing
Workshop 23: ReactJS, React & Redux testingVisual Engineering
 
Detection as Code, Automation, and Testing: The Key to Unlocking the Power of...
Detection as Code, Automation, and Testing: The Key to Unlocking the Power of...Detection as Code, Automation, and Testing: The Key to Unlocking the Power of...
Detection as Code, Automation, and Testing: The Key to Unlocking the Power of...MITRE ATT&CK
 
Terraform Modules Restructured
Terraform Modules RestructuredTerraform Modules Restructured
Terraform Modules RestructuredDoiT International
 
Terraform modules restructured
Terraform modules restructuredTerraform modules restructured
Terraform modules restructuredAmi Mahloof
 
Native Java with GraalVM
Native Java with GraalVMNative Java with GraalVM
Native Java with GraalVMSylvain Wallez
 
Java programming basics
Java programming basicsJava programming basics
Java programming basicsHamid Ghorbani
 
OSMC 2021 | inspectIT Ocelot: Dynamic OpenTelemetry Instrumentation at Runtime
OSMC 2021 | inspectIT Ocelot: Dynamic OpenTelemetry Instrumentation at RuntimeOSMC 2021 | inspectIT Ocelot: Dynamic OpenTelemetry Instrumentation at Runtime
OSMC 2021 | inspectIT Ocelot: Dynamic OpenTelemetry Instrumentation at RuntimeNETWAYS
 
Multithreading
MultithreadingMultithreading
Multithreadingbackdoor
 

Similar to Maf3 - Part 1 (20)

Testing Kafka components with Kafka for JUnit
Testing Kafka components with Kafka for JUnitTesting Kafka components with Kafka for JUnit
Testing Kafka components with Kafka for JUnit
 
Annotation processing
Annotation processingAnnotation processing
Annotation processing
 
Backtrack Manual Part6
Backtrack Manual Part6Backtrack Manual Part6
Backtrack Manual Part6
 
NIO-Grizly.pdf
NIO-Grizly.pdfNIO-Grizly.pdf
NIO-Grizly.pdf
 
WMQ Toolbox: 20 Scripts, One-liners, & Utilities for UNIX & Windows
WMQ Toolbox: 20 Scripts, One-liners, & Utilities for UNIX & Windows WMQ Toolbox: 20 Scripts, One-liners, & Utilities for UNIX & Windows
WMQ Toolbox: 20 Scripts, One-liners, & Utilities for UNIX & Windows
 
Introduction to Dynamic Analysis of Android Application
Introduction to Dynamic Analysis of Android ApplicationIntroduction to Dynamic Analysis of Android Application
Introduction to Dynamic Analysis of Android Application
 
Design patterns in Magento
Design patterns in MagentoDesign patterns in Magento
Design patterns in Magento
 
G pars
G parsG pars
G pars
 
systemverilog-interview-questions.docx
systemverilog-interview-questions.docxsystemverilog-interview-questions.docx
systemverilog-interview-questions.docx
 
Taming Deployment With Smart Frog
Taming Deployment With Smart FrogTaming Deployment With Smart Frog
Taming Deployment With Smart Frog
 
Mule ctf
Mule  ctfMule  ctf
Mule ctf
 
Workshop 23: ReactJS, React & Redux testing
Workshop 23: ReactJS, React & Redux testingWorkshop 23: ReactJS, React & Redux testing
Workshop 23: ReactJS, React & Redux testing
 
Detection as Code, Automation, and Testing: The Key to Unlocking the Power of...
Detection as Code, Automation, and Testing: The Key to Unlocking the Power of...Detection as Code, Automation, and Testing: The Key to Unlocking the Power of...
Detection as Code, Automation, and Testing: The Key to Unlocking the Power of...
 
Terraform Modules Restructured
Terraform Modules RestructuredTerraform Modules Restructured
Terraform Modules Restructured
 
Terraform modules restructured
Terraform modules restructuredTerraform modules restructured
Terraform modules restructured
 
Native Java with GraalVM
Native Java with GraalVMNative Java with GraalVM
Native Java with GraalVM
 
Java programming basics
Java programming basicsJava programming basics
Java programming basics
 
OSMC 2021 | inspectIT Ocelot: Dynamic OpenTelemetry Instrumentation at Runtime
OSMC 2021 | inspectIT Ocelot: Dynamic OpenTelemetry Instrumentation at RuntimeOSMC 2021 | inspectIT Ocelot: Dynamic OpenTelemetry Instrumentation at Runtime
OSMC 2021 | inspectIT Ocelot: Dynamic OpenTelemetry Instrumentation at Runtime
 
Introduction+To+Java+Concurrency
Introduction+To+Java+ConcurrencyIntroduction+To+Java+Concurrency
Introduction+To+Java+Concurrency
 
Multithreading
MultithreadingMultithreading
Multithreading
 

Maf3 - Part 1

  • 1. Foundation Libraries Paolo Quadrani – Daniele Giunchi – Roberto Mucci
  • 2.
  • 3.
  • 4.
  • 5.
  • 7.  
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18. HowTos How to register and create object: mafRegisterObject(mafCore::mafObject); mafObjectBase*obj=mafNEWFromString(&quot;mafCore::mafObject&quot;); How to create an id with Id Provider: mafId myId = m_IdProvider->createNewId(&quot;TestObjectId&quot;); How to create/destroy a singleton: m_ObjectRegistry = mafObjectRegistry::instance(); m_ObjectRegistry->ShutDown();
  • 20.
  • 21.
  • 22.
  • 23. Usage example Code to monitor time performance: // Initialize the profiler m_QAManager->profilerInit(); // Start the profiler with a string comment. m_QAManager->profilerStart(“Example&quot;); // snippet of code to be monitored. long int m = 0; int i = 0; for(; i < 5000000; i++) { m = calcToProfile(m); } // Stop the profiler to get the timing information m_QAManager->profilerStop(); // Show the results on console. m_QAManager->profilerViewResultsOnConsole(); Starting D:evelAF3nstallinafQATest.exe... ********* Start testing of mafQAManagerTest ********* Config: Using QTest library 4.6.2, Qt 4.6.2 PASS : mafQAManagerTest::initTestCase() PASS : mafQAManagerTest::mafQAManagerAllocationTest() QDEBUG : mafQAManagerTest::profilerTest() &quot;Function Name: mafQAManager run number 1 Location: mafQAManager run number 1 Notes: Example Call Number: 1 mSecs: 31 PASS : mafQAManagerTest::profilerTest() PASS : mafQAManagerTest::runScriptTest() PASS : mafQAManagerTest::cleanupTestCase() Totals: 5 passed, 0 failed, 0 skipped ********* Finished testing of mafQAManagerTest ********* CONSOLE OUTPUT
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.

Editor's Notes

  1. - Allow to open the URL for the specific application and allows the user compile a poll (??) -Allow retrieving the application version and other related build information.
  2. Therefore at each build session, there will be a new generation of automated scripts for the QA.
  3. The entire cycle terminates with the publishing of the QA results over internet,
  4. Most part of QA scripts takes advantage from doxygen XML output that is created as first step. A script can also base its execution over another kind of source directory like code directory, and even extract information discriminating files using regular-expression
  5. Each RuleGroup and each Rule inside a rulegroup need an initialization file in order to handle parameters. Generally the initialization file of a RuleGroup contain the file type checked and the source directory, while the rule initialization file contains parameter which depends by the rule itself.
  6. Results are subdivided into a number of files equals to the total number of rule.