SlideShare a Scribd company logo
1 of 18
Download to read offline
S.Ducasse 1
Stateful Traits
A. Bergel, S. Ducasse, O. Nierstrasz, R.Wuyts
S.Ducasse 2
Roadmap
Traits in a nutshell
Trait limits
Stateful traits
Open questions
Conclusion
S.Ducasse 3
What are Traits?
• Traits are parameterized behaviors
• Traits provide a set of methods
• Traits require a set of methods
• Traits are purely behavioral (Traits do not specify any
state)
TCircle
area
bounds
diameter
hash
...
radius
radius:
center
center:
S.Ducasse 4
Composing Classes out of Traits
Traits are the behavioral building blocks of classes
Class = Superclass + State + Traits + Glue Methods
The composing class retains control of the composition
Object
ColoredCircle
TColor
TCircle
S.Ducasse 5
Composition Rules
Class methods take precedence over trait methods
ColoredCircle
TColor
hue
rgb
draw
ColoredCircle
TColor
hue
rgb
TCircle
draw
radius
drawdraw
TCircle
draw
radius
S.Ducasse 6
Conflicts are explicitly resolved
Override the conflict with a glue method
Aliases provide access to the conflicting methods
Avoid the conflict
Exclude the conflicting method from one trait
ColoredCircle
TColor
hash
TCircle
hashhash -> circleHash
hash
ColoredCircle
TColor
hash
TCircle
hash
hash
hash -> circleHash
hash -> colorHash
S.Ducasse 7
Trait limits
• Trait users should define missing traits state
• Important required methods and required state are
mixed
• Boilerplate glue code
• Propagation of required accessors
S.Ducasse
Example
8
TSyncReadWrite
lockinitialize
syncRead
syncWrite
read
write
lock:
lock
SyncFile
lock
lock:
lock
read
write
SyncStream
lock
lock:
lock
read
write
SyncSocket
lock
lock:
lock
read
write
syncRead
| value |
self lock acquire.
value := self read.
self lock release.
^ value
syncWrite
| value |
self lock acquire.
value := self write.
self lock release.
^ value
Duplicated code
Use of trait
initialize
super initialize.
self lock: Lock new
S.Ducasse
Stateful traits
• Instance variables are per default private to the trait
• Via composition
• Client classes may get access to state
• Client classes may merge the accessed state
9
S.Ducasse
By default state is private
10
T1
getXT1
setXT1:
x
T2
getXT2
setXT2:
x
C
getX
setX:
x
c := C new.
c setXT1: 1.
c setXT2: 2.
c setX: 3.
{ Now:
c getXT1 = 1
c getXT2 = 2
c getX = 3 }
S.Ducasse
But can be accessed
11
@@{ xFromT1 -> x }
T1
getXT1
setXT1:
x
@@{ xFromT2 -> x }
c := C new.
c setXT1: 1.
c setXT2: 2.
{ Now:
c getXT1 = 1
c getXT2 = 2
c sum = 3 }
sum
^ xFromT1 + xFromT2
T2
getXT2
setXT2:
x
sum
C
S.Ducasse
And merged
12
T1
getX
setX:
x
T2
getY
setY:
y
C
getW
setW:
@@{w -> x}
@@{w -> y}
c := C new.
c setW: 3.
{ Now:
c getX = 3
c getY = 3
c getW = 3 }
S.Ducasse
An example
13
SyncStream
isBusy
hash
TSyncReadWrite
lock
initialize
syncRead
syncWrite
hash
read
write
@{hashFromSync -> hash}
@@{syncLock -> lock}
TStream
read
write
hash
@{hashFromStream -> hash}
syncRead
| value |
lock acquire.
value := self read.
lock release.
^ value
syncWrite
| value |
lock acquire.
value := self write.
lock release.
^ value
isBusy
^ syncLock isAcquired
hash
^ self hashFromSync
bitAnd: self hashFromStream
initialize
super initialize.
lock := Lock new
Uses trait
Trait Name
provided
methods
required
methods
S.Ducasse
Analysis
• Stateless traits are just a special case of stateful traits
• No accessor required
• No boiler plate code
• Trait can be “complete”
• Flattening property can be rescued using instance
variable mangling
14
S.Ducasse
A word of implementation
15
T1
x, y, z
getX
T2
v, x
getV
T4
Memory layout
Model
T4
getX
^ x
getV
^ v
@@ { v -> y }
@@ { v -> v }
T1.x val1
T1.y, T2.v val2
T1.z val3
T2.x val4
S.Ducasse
Open Questions
• Do we really need merge?
• Do we need stateful traits if we get private methods?
16
S.Ducasse
Conclusion
• Traits and state reconciled
• Traits are complete
• State is private but can be made accessible at
composition time
17
S.Ducasse 18
Flattening Property
The semantics of a method does not depend of whether
it is defined in a trait or in a class that uses the trait
ColoredCircle
TColor
TCircle
draw
rgb
draw
hue
radius
Object
ColoredCircle
Object
rgb
hue
radius
draw
equivalent
Structured view Flat view

More Related Content

What's hot

Standard deviation
Standard deviationStandard deviation
Standard deviationRahul Sharma
 
Special Right Triangles
Special Right TrianglesSpecial Right Triangles
Special Right TrianglesFidelfo Moral
 
Example Two - Evaluate a Composite Function
Example Two - Evaluate a Composite FunctionExample Two - Evaluate a Composite Function
Example Two - Evaluate a Composite Functionmaddie271
 
4.11.2 Special Right Triangles
4.11.2 Special Right Triangles4.11.2 Special Right Triangles
4.11.2 Special Right Trianglessmiller5
 
Assignment grouping 2(bungee jumping) (edit)
Assignment grouping 2(bungee jumping) (edit)Assignment grouping 2(bungee jumping) (edit)
Assignment grouping 2(bungee jumping) (edit)Eqah Ihah
 
Linear Regression
Linear RegressionLinear Regression
Linear RegressionVARUN KUMAR
 
Microscopic Mechanisms of Superconducting Flux Quantum and Superconducting an...
Microscopic Mechanisms of Superconducting Flux Quantum and Superconducting an...Microscopic Mechanisms of Superconducting Flux Quantum and Superconducting an...
Microscopic Mechanisms of Superconducting Flux Quantum and Superconducting an...Qiang LI
 
W2 Example 4 Answers
W2 Example 4 AnswersW2 Example 4 Answers
W2 Example 4 Answersjcocks
 
Learning object 1
Learning object 1Learning object 1
Learning object 1Lyndon Won
 
Distance Between Two Points.pptx
Distance Between Two Points.pptxDistance Between Two Points.pptx
Distance Between Two Points.pptxMartinGeraldine
 
Cramer row inequality
Cramer row inequality Cramer row inequality
Cramer row inequality VashuGupta8
 

What's hot (20)

Standard deviation
Standard deviationStandard deviation
Standard deviation
 
Special Right Triangles
Special Right TrianglesSpecial Right Triangles
Special Right Triangles
 
Example Two - Evaluate a Composite Function
Example Two - Evaluate a Composite FunctionExample Two - Evaluate a Composite Function
Example Two - Evaluate a Composite Function
 
Example 2
Example 2Example 2
Example 2
 
Exampl
ExamplExampl
Exampl
 
4.11.2 Special Right Triangles
4.11.2 Special Right Triangles4.11.2 Special Right Triangles
4.11.2 Special Right Triangles
 
Assignment grouping 2(bungee jumping) (edit)
Assignment grouping 2(bungee jumping) (edit)Assignment grouping 2(bungee jumping) (edit)
Assignment grouping 2(bungee jumping) (edit)
 
Linear Regression
Linear RegressionLinear Regression
Linear Regression
 
Ch07b entropy
Ch07b entropyCh07b entropy
Ch07b entropy
 
Microscopic Mechanisms of Superconducting Flux Quantum and Superconducting an...
Microscopic Mechanisms of Superconducting Flux Quantum and Superconducting an...Microscopic Mechanisms of Superconducting Flux Quantum and Superconducting an...
Microscopic Mechanisms of Superconducting Flux Quantum and Superconducting an...
 
W2 Example 4 Answers
W2 Example 4 AnswersW2 Example 4 Answers
W2 Example 4 Answers
 
Lo 1
Lo 1Lo 1
Lo 1
 
Learning object 1
Learning object 1Learning object 1
Learning object 1
 
Recurrence relation
Recurrence relationRecurrence relation
Recurrence relation
 
Permutations 2020
Permutations 2020Permutations 2020
Permutations 2020
 
Raj
RajRaj
Raj
 
surekha1
surekha1surekha1
surekha1
 
Statistics formula
Statistics formulaStatistics formula
Statistics formula
 
Distance Between Two Points.pptx
Distance Between Two Points.pptxDistance Between Two Points.pptx
Distance Between Two Points.pptx
 
Cramer row inequality
Cramer row inequality Cramer row inequality
Cramer row inequality
 

Viewers also liked

Starting fresh every morning
Starting fresh every morningStarting fresh every morning
Starting fresh every morningESUG
 
Gstreamer
GstreamerGstreamer
GstreamerESUG
 
TypePlug -- Practical, Pluggable Types
TypePlug -- Practical, Pluggable TypesTypePlug -- Practical, Pluggable Types
TypePlug -- Practical, Pluggable TypesESUG
 
The Reflectivity
The ReflectivityThe Reflectivity
The ReflectivityESUG
 
News from Squeak
News from SqueakNews from Squeak
News from SqueakESUG
 
SCL
SCLSCL
SCLESUG
 
Glass
GlassGlass
GlassESUG
 
Modular ObjectLens
Modular ObjectLensModular ObjectLens
Modular ObjectLensESUG
 
Spyware-ridden software development
Spyware-ridden software developmentSpyware-ridden software development
Spyware-ridden software developmentESUG
 

Viewers also liked (9)

Starting fresh every morning
Starting fresh every morningStarting fresh every morning
Starting fresh every morning
 
Gstreamer
GstreamerGstreamer
Gstreamer
 
TypePlug -- Practical, Pluggable Types
TypePlug -- Practical, Pluggable TypesTypePlug -- Practical, Pluggable Types
TypePlug -- Practical, Pluggable Types
 
The Reflectivity
The ReflectivityThe Reflectivity
The Reflectivity
 
News from Squeak
News from SqueakNews from Squeak
News from Squeak
 
SCL
SCLSCL
SCL
 
Glass
GlassGlass
Glass
 
Modular ObjectLens
Modular ObjectLensModular ObjectLens
Modular ObjectLens
 
Spyware-ridden software development
Spyware-ridden software developmentSpyware-ridden software development
Spyware-ridden software development
 

Similar to Stateful Traits

Integer_Functions .pdf
Integer_Functions .pdfInteger_Functions .pdf
Integer_Functions .pdfJainggaPotla
 
A Comparison Of Methods For Solving MAX-SAT Problems
A Comparison Of Methods For Solving MAX-SAT ProblemsA Comparison Of Methods For Solving MAX-SAT Problems
A Comparison Of Methods For Solving MAX-SAT ProblemsKarla Adamson
 
CLIQUE Automatic subspace clustering of high dimensional data for data mining...
CLIQUE Automatic subspace clustering of high dimensional data for data mining...CLIQUE Automatic subspace clustering of high dimensional data for data mining...
CLIQUE Automatic subspace clustering of high dimensional data for data mining...Raed Aldahdooh
 
Developing Expert Voices
Developing Expert VoicesDeveloping Expert Voices
Developing Expert Voicessuzanne
 
Adequate Numerical Solution Of Air Pollution Problems By Positive Difference ...
Adequate Numerical Solution Of Air Pollution Problems By Positive Difference ...Adequate Numerical Solution Of Air Pollution Problems By Positive Difference ...
Adequate Numerical Solution Of Air Pollution Problems By Positive Difference ...Cheryl Brown
 
Trig substitution
Trig substitutionTrig substitution
Trig substitutiondynx24
 
Calculus 08 techniques_of_integration
Calculus 08 techniques_of_integrationCalculus 08 techniques_of_integration
Calculus 08 techniques_of_integrationtutulk
 
Joint blind calibration and time-delay estimation for multiband ranging
Joint blind calibration and time-delay estimation for multiband rangingJoint blind calibration and time-delay estimation for multiband ranging
Joint blind calibration and time-delay estimation for multiband rangingTarik Kazaz
 
Ordinary Differential Equation
Ordinary Differential EquationOrdinary Differential Equation
Ordinary Differential Equationnur fara
 
Introdution to differential forms
Introdution to differential formsIntrodution to differential forms
Introdution to differential formsDunga Pessoa
 
Hierarchical matrices for approximating large covariance matries and computin...
Hierarchical matrices for approximating large covariance matries and computin...Hierarchical matrices for approximating large covariance matries and computin...
Hierarchical matrices for approximating large covariance matries and computin...Alexander Litvinenko
 
New data structures and algorithms for \\post-processing large data sets and ...
New data structures and algorithms for \\post-processing large data sets and ...New data structures and algorithms for \\post-processing large data sets and ...
New data structures and algorithms for \\post-processing large data sets and ...Alexander Litvinenko
 
“Electric Flux Density & Applications3.1.-converted.pptx
“Electric Flux Density & Applications3.1.-converted.pptx“Electric Flux Density & Applications3.1.-converted.pptx
“Electric Flux Density & Applications3.1.-converted.pptxHASNAINNAZIR1
 
Related rates ppt
Related rates pptRelated rates ppt
Related rates pptRon Eick
 

Similar to Stateful Traits (20)

Cs345 cl
Cs345 clCs345 cl
Cs345 cl
 
Integer_Functions .pdf
Integer_Functions .pdfInteger_Functions .pdf
Integer_Functions .pdf
 
A Comparison Of Methods For Solving MAX-SAT Problems
A Comparison Of Methods For Solving MAX-SAT ProblemsA Comparison Of Methods For Solving MAX-SAT Problems
A Comparison Of Methods For Solving MAX-SAT Problems
 
CLIQUE Automatic subspace clustering of high dimensional data for data mining...
CLIQUE Automatic subspace clustering of high dimensional data for data mining...CLIQUE Automatic subspace clustering of high dimensional data for data mining...
CLIQUE Automatic subspace clustering of high dimensional data for data mining...
 
Developing Expert Voices
Developing Expert VoicesDeveloping Expert Voices
Developing Expert Voices
 
Adequate Numerical Solution Of Air Pollution Problems By Positive Difference ...
Adequate Numerical Solution Of Air Pollution Problems By Positive Difference ...Adequate Numerical Solution Of Air Pollution Problems By Positive Difference ...
Adequate Numerical Solution Of Air Pollution Problems By Positive Difference ...
 
Trig substitution
Trig substitutionTrig substitution
Trig substitution
 
Advance algebra
Advance algebraAdvance algebra
Advance algebra
 
Calculus 08 techniques_of_integration
Calculus 08 techniques_of_integrationCalculus 08 techniques_of_integration
Calculus 08 techniques_of_integration
 
Joint blind calibration and time-delay estimation for multiband ranging
Joint blind calibration and time-delay estimation for multiband rangingJoint blind calibration and time-delay estimation for multiband ranging
Joint blind calibration and time-delay estimation for multiband ranging
 
Ordinary Differential Equation
Ordinary Differential EquationOrdinary Differential Equation
Ordinary Differential Equation
 
Rand final
Rand finalRand final
Rand final
 
Introdution to differential forms
Introdution to differential formsIntrodution to differential forms
Introdution to differential forms
 
Hierarchical matrices for approximating large covariance matries and computin...
Hierarchical matrices for approximating large covariance matries and computin...Hierarchical matrices for approximating large covariance matries and computin...
Hierarchical matrices for approximating large covariance matries and computin...
 
CALCULUS 2.pptx
CALCULUS 2.pptxCALCULUS 2.pptx
CALCULUS 2.pptx
 
New data structures and algorithms for \\post-processing large data sets and ...
New data structures and algorithms for \\post-processing large data sets and ...New data structures and algorithms for \\post-processing large data sets and ...
New data structures and algorithms for \\post-processing large data sets and ...
 
“Electric Flux Density & Applications3.1.-converted.pptx
“Electric Flux Density & Applications3.1.-converted.pptx“Electric Flux Density & Applications3.1.-converted.pptx
“Electric Flux Density & Applications3.1.-converted.pptx
 
AJMS_384_22.pdf
AJMS_384_22.pdfAJMS_384_22.pdf
AJMS_384_22.pdf
 
Related rates ppt
Related rates pptRelated rates ppt
Related rates ppt
 
Ppt
PptPpt
Ppt
 

More from ESUG

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingESUG
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in PharoESUG
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapESUG
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoESUG
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...ESUG
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsESUG
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6ESUG
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingESUG
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesESUG
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportESUG
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsESUG
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector TuningESUG
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FutureESUG
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the DebuggerESUG
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing ScoreESUG
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptESUG
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocESUG
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsESUG
 

More from ESUG (20)

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
 

Recently uploaded

COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Websitedgelyza
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioChristian Posta
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPathCommunity
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxGDSC PJATK
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsSeth Reyes
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostMatt Ray
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Will Schroeder
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1DianaGray10
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsSafe Software
 
99.99% of Your Traces Are (Probably) Trash (SRECon NA 2024).pdf
99.99% of Your Traces  Are (Probably) Trash (SRECon NA 2024).pdf99.99% of Your Traces  Are (Probably) Trash (SRECon NA 2024).pdf
99.99% of Your Traces Are (Probably) Trash (SRECon NA 2024).pdfPaige Cruz
 
100+ ChatGPT Prompts for SEO Optimization
100+ ChatGPT Prompts for SEO Optimization100+ ChatGPT Prompts for SEO Optimization
100+ ChatGPT Prompts for SEO Optimizationarrow10202532yuvraj
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1DianaGray10
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?IES VE
 
Governance in SharePoint Premium:What's in the box?
Governance in SharePoint Premium:What's in the box?Governance in SharePoint Premium:What's in the box?
Governance in SharePoint Premium:What's in the box?Juan Carlos Gonzalez
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8DianaGray10
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024D Cloud Solutions
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintMahmoud Rabie
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IES VE
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024SkyPlanner
 

Recently uploaded (20)

COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Website
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and Istio
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
 
99.99% of Your Traces Are (Probably) Trash (SRECon NA 2024).pdf
99.99% of Your Traces  Are (Probably) Trash (SRECon NA 2024).pdf99.99% of Your Traces  Are (Probably) Trash (SRECon NA 2024).pdf
99.99% of Your Traces Are (Probably) Trash (SRECon NA 2024).pdf
 
100+ ChatGPT Prompts for SEO Optimization
100+ ChatGPT Prompts for SEO Optimization100+ ChatGPT Prompts for SEO Optimization
100+ ChatGPT Prompts for SEO Optimization
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?
 
Governance in SharePoint Premium:What's in the box?
Governance in SharePoint Premium:What's in the box?Governance in SharePoint Premium:What's in the box?
Governance in SharePoint Premium:What's in the box?
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership Blueprint
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
 

Stateful Traits