View
24
Download
0
Category
Preview:
DESCRIPTION
nomes http://www.teccomm.les.inf.puc-rio.br/SoCAgents. Brasil. Estudos Empíricos - Padrões OO vs. Aspectos -. Sistemas Multi-Agentes - O Domínio -. Padrões GoF. Interação Adaptação Autonomia Colaboração Mobilidade Aprendizagem. Comparação. Comparação. Resultados. Resultados. - PowerPoint PPT Presentation
Citation preview
Aspectos @ PUC-RioPUC-RioPUC-Rio
nomeshttp://www.teccomm.les.inf.puc-rio.br/SoCAgents
BrasilBrasil
Metrics Definition
Concern Diffusion over Components (CDC)
Counts the number of classes and aspects whose main purpose is to contribute to the implementation of a concern and the number of other classes and aspects that access them.
Concern Diffusion over Operations (CDO)
Counts the number of methods and advices whose main purpose is to contribute to the implementation of a concern and the number of other methods and advices that access them.
SoC
Concern Diffusion over LOC (CDLOC)
Counts the number of transition points through lines of code. A transition point is a place in the code where there is a “concern switch”.
Coupling Between Components (CBC)
Counts the number of other classes and aspects to which a class or an aspect is coupled.
Cou
pli
ng
Depth of Inheritance Tree (DIT)
Counts how far down in the inheritance hierarchy a class or aspect is declared.
Coh
esio
n
Lack of Cohesion in Operations (LCOO)
Measures the lack of cohesion of a class or an aspect in terms of the amount of method and advice pairs that do not access the same instance variable.
Lines of Code (LOC) Counts the lines of code. Number of Attributes (NOA) Counts the number of attributes of each class or aspect.
Siz
e
Weighted Operations per Component (WOC)
Counts the number of methods and advices of each class or aspect and the number of its parameters.
getXgetYgetColoraddObserverremoveObservernotifysetXsetYsetColor
PointgetP1getP2getColoraddObserverremoveObservernotifysetP1setP2setColor
Line
FigureElementFigure 1 *
updateDisplay
Screen
update
<<interface>>Observer
addObserverremoveObservernotify
<<interface>>Subject
getXgetYgetColoraddObserverremoveObservernotifysetXsetYsetColor
PointgetXgetYgetColoraddObserverremoveObservernotifysetXsetYsetColor
PointgetP1getP2getColoraddObserverremoveObservernotifysetP1setP2setColor
LinegetP1getP2getColoraddObserverremoveObservernotifysetP1setP2setColor
Line
FigureElementFigure 1 *
updateDisplay
ScreenupdateDisplay
Screen
update
<<interface>>Observer
update
<<interface>>Observer
addObserverremoveObservernotify
<<interface>>Subject
addObserverremoveObservernotify
<<interface>>Subject
Métricas- Avaliação -
Estudos Empíricos- Padrões OO vs. Aspectos -
Abordagem Gerativa
- Ver Poster 12 -
Sistemas Multi-Agentes- O Domínio -
Método para SMAs
Agent
Observable
addLC()removeLC()notifyLC()
LMS
processInformation()getLR()…
LearningComponent
Role
collaboratingAgentscollaborationProtocolgetName()addAgent()removeAgent()…
Chair
paperslearningComponentssubmissionDeadlinereviewDeadlineaddLC()removeLC()notifyLC()distributeProposal()...
Reviewer
JADEAgent
getName()moveAgent()beforeMove()
UserAgent
researchInterestspublicationsreviewslearningComponentsaddPCparticipation()addLC()removeLC()notifyLC()…
Plan
goalagent…clone()execute ()…
CVUpdatePlan
learningComponentsaddLC()removeLC()notifyLC()execute ()updateCV()...
JudgementPlan JudgementReceptionPlan
learningRateprocessInformation()…
TD-Learning
processInformation()getTD()getReward()setReward()…
Strategypattern
learningComponentsaddLC()removeLC()notifyLC()execute ()evaluateResponse()...
– learning-specific members
– methods with some learning code
learning-specific classes
Co
llab
ora
tio
n
Learning
BasicConcerns
public Result judgeProposal(...) { ...lc.processInformation();...
}
Interaction
Observerpattern
Environment
... ...
Agenda
addAppointment()…
PersistentCV
addResearchKW()addPublication()addAward()addConference()…
DSInterface
getUserAnswer()getAnswerTime()… public void addPublication(...){
...sensor.senseEvent();...
}
Effector Sensor
receive()senseEvent()...
send()...
– interaction-specific members
– methods with some interaction code
interaction-specific classes
RevisionProposal
paperdeadlinescurrentPaperInterestproposalEvaluationisAccepted()…getPaperInterest()getEvaluation()…
goalsplanssensorseffectorsaddAgent()sendMsg()receiveMsg()…
Legend:
chairNamepapersToReviewlearningComponentssetChair()addLC()removeLC()notifyLC()returnJudgement()…
learningComponentsaddLC()removeLC()notifyLC()execute ()judgeProposal()emitJudgement()...
Padrões GoF
KnowledgeUpdating
BehaviorAdaptation
Kernel
Services
KnowledgeAdaptation
TravelingMessageReception
Interaction
Adaptation
GoalCreation
ExecutionAutonomy
Autonomy
RoleBinding
CollaborationProtocol
Collaboration
Mobility
Legend:
aspectual component
component
crosscutting interface
normal interface
MessageSending
Agenthood Additional Properties
ExtrinsicKnowledge
Answerer#4
ailabilityPlan
Agent
UserAgent
InformationAgent
InterfaceAgent
MiddleAgent
#2 Evolution and Reuse Scenario
#2
Plan
SearchingPlan
Knowledge
Proposal
AutonomyAutonomy
InteractionInteraction
CollaborationCollaboration
AdaptationAdaptation
EditorEditorContentContentSupplierSupplier
Caller#4
CounterProposal
System Viewpoint
0
10
20
30
40
50
60
70
80
90
100
Per
cen
tag
e
Patterns
Aspects
Answerer#4
ailabilityPlan
Agent
UserAgent
InformationAgent
InterfaceAgent
MiddleAgent
#2 Evolution and Reuse Scenario
#2
Plan
SearchingPlan
Knowledge
Proposal
AutonomyAutonomy
InteractionInteraction
CollaborationCollaboration
AdaptationAdaptation
EditorEditorContentContentSupplierSupplier
Caller#4
CounterProposal
0
2
4
6
8
10
12
14
16
18
20
Observer Subject Mediator Colleague Context Strategy Prototype
Nu
mb
er o
f O
per
atio
ns
Before After Before After Before After Before After Before After Before After Before After
ObserverPattern
MediatorPattern
StrategyPattern
PrototypePattern
-50%
+33%
+67%
+88%
0% 0%0%
+66%
-50%
+33%
+25%-40%
+29%
Nu
mb
ero
f O
per
atio
ns
+25%
AO
OO
50
43
Interação Adaptação Autonomia
Colaboração Mobilidade Aprendizagem
Modularização
Medição Medição
Comparação Comparação
paperInterestevaluation...
getInterest()...
LearningKnowledgeRevisionProposal
reviewerpaperdeadlinesisAccepted()getReviewer()getPaper()…
<< crosscuttinginterface >>
events_()
InformationGathering
<< crosscuttinginterface >>
InformationGathering
<< crosscuttinginterface >>
init()learn()adaptKnowledge()...
Learning
init()learn()getResponse()...
ReviewerLearning TDLearning
processInformation()getTD()getReward()setReward()…
Reviewer
UserAgent
JudgementPlan
execute()judgeProposal()...
LearningComponent
learningRateprocessInformation()...
*
events_()
Automatização Automatização
Auto
mati
zaçã
o
Referências
Refinam
ento
Refinam
ento
- Arquitetura -
- Projeto - - Implementação
-
Resultados Resultados
[1] A. GARCIA, C. SANT'ANNA, C. CHAVEZ, V. SILVA, C. LUCENA, A. STAA. Separation of Concerns in Multi-Agent Systems: An Empirical Study. In: Software Engineering for Multi-Agent Systems II, Springer, LNCS 2940, March 2004, pp. 49-72.
[2] A. GARCIA, C. LUCENA, D. COWAN. Agents in Object-Oriented Software Engineering. Software: Practice & Experience, Elsevier, 34(5): 489 - 521, May 2004.
[3] C. SANT'ANNA, A. GARCIA, C. CHAVEZ, C. LUCENA, A STAA. On the Reuse and Maintenance of Aspect-Oriented Software: An Assessment Framework. Proceedings of 17th Brazilian Symposium on Software Engineering, Manaus, Brazil, October 2003, pp. 19-34.
[4] C. SANT'ANNA, A. GARCIA, U. KULESZA, C. LUCENA, A. STAA. Design Patterns as Aspects: A Quantitative Assessment. Proceedings of the XIX Brazilian Symposium on Software Engineering, Brasília, Brazil, October 2004.
[5] A. GARCIA, U. KULESZA, C. LUCENA. Aspectizing Multi-Agent Systems: From Architecture to Implementation. In: “Software Engineering for Multi-Agent Systems III”, LNCS, Springer, December 2004. (To Appear)
[6] U. KULESZA, A. GARCIA, A. LUCENA, A. STAA. Integrating Generative and Aspect-Oriented Technologies. Proceedings of the XIX Brazilian Symposium on Software Engineering, Brasília, Brazil, October 2004.
Aspectos @ PUC-RioPUC-RioPUC-Rio
Recommended