You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Oct 25, 2019. It is now read-only.
This project was created within the ISTIC Rennes school for the AOC module.
7
7
8
-
It corresponds to the implementation of two active object design pattern to link a generator of value and some monitor to display values asynchronously, likes a observer pattern through a network.
9
-
To manage the diffusion of a new value we used an strategy to apply different methods to transmit values, by default we can chose an atomic diffusion to always diffuse the same value to all monitors, a sequential diffusion to diffuse all value with the same sequence to all monitors and the causal diffusion to diffuse the value at the time when a get value is called.
8
+
It corresponds to the implementation of two active object design pattern to link a generator of value and some monitor to display values asynchronously, likes an observer pattern through a network.
9
+
10
+
To manage the diffusion of a new value we used a strategy to apply different methods to transmit values, by default we can chose an atomic diffusion to always diffuse the same value to all monitors, a sequential diffusion to diffuse all value with the same sequence to all monitors and the causal diffusion to diffuse the value at the time when a get value is called.
An user can change the different diffusion with the help of the radio button. The user can also generate a new value and see how each monitor will displey them.
16
+
An user can change the different diffusion with the help of the radio buttons. The user can also generate a new value and see how each monitor will display them.
17
+
16
18
Each monitor use a different retard, by default the retard is 500/800/1000/1200 ms.
17
-
Each monitor use the two same scheduler (one for update and one for get value). We can't use one scheduler, because with only one scheduler, all threads of the pool could be filled by update and all get value called by the monitors will wait indefinitely.
19
+
20
+
Each monitor use the two same scheduler (one scheduler for update and one other for get value). We can't use one scheduler, because with only one scheduler, all threads of the pool could be filled by update and all get value called by the monitors will wait indefinitely.
18
21
19
22
# Architecture
20
23
21
24
## Diagrams
22
25
23
26
The main representation of these diagrams are the active object pattern, all others patterns aren't displayed.
24
27
25
-
We have represent the workflow with 3 diagrams on different point of view:
28
+
We have represent the workflow with diagrams on different point of view:
26
29
* from the generator,
27
30
* from the scheduler,
28
31
* from the monitor.
@@ -45,7 +48,7 @@ We have represent the workflow with 3 diagrams on different point of view:
45
48
46
49
Part of this project is developed using test driven development (TDD) and pair programming.
47
50
48
-
* Design pattern used: active object, strategy, observer, memento, factory and facade.
51
+
We also used different design pattern likes active object, strategy, observer, memento, factory, and facade.
49
52
50
53
## Technology
51
54
@@ -69,6 +72,10 @@ Part of this project is developed using test driven development (TDD) and pair p
69
72
## Start
70
73
71
74
Main class: fr.istic.gm.aodp.Main
75
+
76
+
Or with a jar:
77
+
78
+
java -jar aodp.jar
72
79
73
80
### Features done
74
81
@@ -85,4 +92,6 @@ Part of this project is developed using test driven development (TDD) and pair p
85
92
## Conclusion
86
93
87
94
This project help us to make an architecture with many design pattern for the function we want to implement.
88
-
We also learned to make an interface with JavaFX.
95
+
We also learned to make an interface with JavaFX.
96
+
97
+
We also learned how the active object is, by default, integrate in the language API. This project also help us to investigate some race condition and to keep in mind that it can be difficult to found this sort of error.
0 commit comments