Closed alyhasansakr closed 3 years ago
Hi @alyhasansakr ,
To start with the tasks, can you please clarify the below queries.
Regards, Shankar
@lkh5kor Our implementation here is a general implementation, it is not specific to any platform or framework. In the current step, we wish to define the existence of these elements as well as their attributes. No functionality is required here (for now).
To answer your questions:
Keep in mind that I didn't mention how they should be connected together, for example, how to specify which two locations are connected by a connection. I would be happy to see what do you have in mind here, but first do the class diagram for all of the elements.
@alyhasansakr,
Based on my understanding, I have done the initial class diagram with only members and member functions. Kindly review the same. I would proceed to the detailed class diagram(with all the connections) after the review
@lkh5kor Looks good overall, here are my comments:
@alyhasansakr please find my answers below
I still prefer one-way connections, that is only from source to destination and not the other way. Which means there should be only one throughput value, one packet value, and delay is not roundtrip. I will remove the other parameters
What is time in network limits? Time in network limits is the timestamp data. If not required, I can remove it
You don't need to mention that a connection has a source and destination locations, this should be indicated in the relationship between them (just the same as you didn't mention that a device exists in a location). Will make the changes in the detailed class diagram.
I don't understand why do we have a min and max values for requirements and limits? My idea of min value was to check that the provided value should always be greater than the min value(required value from requirement) and lesser than or equal to the max available resources. I will add additional parameter "availablecpu" and "availableMemory" to the requirements to serve the same purpose if needed.
Why did you merge the memory requirements with compute requirements but not the limits? Idea was to have a single class for requirements, I will split it into multiple classes
You don't need to mention typical setters and getters in this diagram. I will remove the setters and getters in the detailed diagram
Don't use any short names like D2S or comSpec. Change would be made in the detailed diagram. since it is one way communication that we are interested in, I don't think D2S and S2D is even required.
Device type should also be a class with attributes because we may have movable devices (phones, cars) and non-movable devices (servers). Change would be made in the detailed diagram.
@alyhasansakr ,
Please find the updated class diagram as per my understanding. Kindly review and provide feedback.
@lkh5kor Fantastic, that is a very good one. Now we should start with implementation. Branch the master, make a new folder here called Network Structure and start creating these classes. After that make a pull-request so we can discuss the code there.
Just for documentation: A relationship class should be created (only in implementation) for relationships between: location-connection, location-device, application_instance-device. A network class that contains lists of all structural elements should be created. Structural elements are: connection, location, device, application instance, and the relationships between them. The network class should implement write to and read from JSON string.
We wish to have our own independent network structure.
Basic elements that need to be implemented are:
As a start, you should define each of these elements as a separate class. Then make an output that can be used to build (piece by piece), load, and save networks as follows:
The implementation should be based on the new module definition in #69 (you may have to wait until it is finished). You may need to implement other classes than mentioned here.
Before you start implementation, write down your exact solution specifying the attributes and methods of each element (text or diagrams).
And don't forget the tests, both for the module as well as for each class.