From NetLogo code is it possible to get a visual flow diagram of all procedures?
Observer procedures .. agent procedures .. and links between them.
If I understand you correctly, you're asking for call graphs. Am I right?
I'm reasonably certain no such tool exists for NetLogo. (All of the tools we know about are listed on the NetLogo resources page.)
In this thread it sounds like Glen Ropella was envisioning something like that, but if he got anywhere with it, I haven't heard about it.
Related
I need to simulate a fully functional AS/RS in warehousing. Moreover, I am a complete beginner in this field. Can some please let me know if I could get readymade simulation file? Or if not, please let me know how to learn to do it.
I have checked out the Anylogic website and it's tutorials (They are too lengthy).
fortunately for you, i have developed an AS/RS example that is a ready-made downloadable model for you, available at https://cloud.anylogic.com/model/1f5c7d1f-8782-40ac-957d-d3ba97bf6bf0?mode=SETTINGS
In general, when you want a model example, the first thing you should do is check the anylogic cloud, and if you are lucky the model is downloadable. Unfortunately, most people don't share
It really depends on what type of ASRS you are modeling (shuttle versus unit load) and level of detail you need. Do you need specific slotting and inventory tracking, or simplier black box delays with the assumption inventory is always available? The level of detail you need depends on questions you are asking, and should be addressed prior to starting development. If results from the model are critical and urgent, and you need anything more than simple black box delays, you should consider outsourcing to an experienced professional until you can get your AnyLogic skills up to speed.
Looking for a Netlogo-file to understand how an agent(UAV) interacts with another agent in monitoring purpose.
Sujan, can you explain what kind of interaction you want to see? There are 2000 models in the Modeling Commons, and over 100 in the library:
http://ccl.northwestern.edu/netlogo/models/index.cgi
You can try many of these over the web to see what they do, without downloading anything, and look at the code that runs the model, here:
http://www.netlogoweb.org/launch
I asked a similar question to Anylogic linkedin forum so sorry for multiple posting (possibly for some of you). I just heard about the Anylogic program. My purpose is not simulation I want to visualize a log file. I want to allow the admin-user (who will be the user of the Anylogic model) to enter some settings which will cause some filtering and I want to visualize the whole file with Anylogic.
The file is a communication file. Possibly I will show communication attendees and interactions using Anylogic. I want to emphasize unnormal patterns in the log using visual and interactive properties of Anylogic. There may also some need for like zooming in and out during the execution of the model.
Is it something very difficult to do? I am a Java developer. I can understand that I should have to learn Anylogic. What other skills and development and test environments (Ide etc.) do I need?
I plan to do a serial of implementations for several log file types and currently I am trying to find the best tool which will allow me to make changes in visualization part of the models easily till I find the best representation of the data.
There are some examples of Anylogic which are installed built-in but I couldn't see an example which suits my situation. I do not know where to start. If someone helps me to start the design I would be very happy :)
Thank you for your attention..
Edit:
I am attaching a sample stereoscopic view model and a sample view. I want to do something similar to this. Is it ok with AnyLogic?
Ferda
simple answer: yes its possible.
Some more comments:
I am currently working on a very similar project actually. For me as an experienced AnyLogic user, it is very natural and AnyLogic offers all the features you ask for.
Is it something very difficult to do?
That depends on how quickly you can learn AL. But if you are experienced with Java, it will not be too hard, I imagine.
What other skills and development and test environments (Ide etc.) do I need?
None, really. You need to figure out how to use the visual elements of AL. All of them can be changed statically via the AL IDE but you can always change them dynamically via Java code. That is very important to realize and play around with.
I am attaching a sample stereoscopic view model and a sample view. I want to do something similar to this. Is it ok with AnyLogic?
Yes, that can be done.
I suggest you try checking the example models that come with AL. If you find something that looks like what you need, try to figure out how they did it. Then try to recreate it in a simple example model for yourself.
There are some Topics on Stackoverflow already related on how to model different Threads in UML, for example: Is there an inituitive UML approach to depict threads.
However I still feel, that my case has not been already discussed, even though it should be pretty common:
I am creating an iPhone Application, where I am obviously have a Main-UI-Thread and I am also using Background-Threads to perform Remote-Calls, etc. I basically have 4 different aspects that I like to display within my diagramm:
The UI that is shown to the User.
The Tasks that are being performed by the Main-UI-Thread (therefore blocking the UI)
The Tasks that are performed by Background-Threads
Updates of the UI, which are performed by the UI-Thread, but can be triggered by Background-Threads. For example: new Information loaded from Server, which needs to be displayed on the UI
Has anybody ran into a similiar issue and therefore might show me an example or give me some best practises on how to solve my problem? I am not even sure if I should use a sequence-diagram, an activity-diagram or maybe even some other type.
Well Pascal,
This is not an UML question. It is a design question.
UML just helps you
To understand hard and crtical section of your program/design and to
explore alternative solutions , while writing your code. with the power of visual modeling.
So..
First, ask yourself what kind of parallelism or concurrency exist in
your problem? To investigate this:
Draw a simple activity diagram with partions in which each partions
used to represent different operating system threads or processes.The
object nodes can be used to model the shared objects and data.Forking can be used to model the creation and parallel execution of multiple threads or processes.
Then ask yourself(using that diagram)
What are my shared data? What are my active classes? (threads)What kind of "concurency" problems" may
accour? What may go wrong? What are synronization points? etc..Based on this Explore different alternatives, designs.
The last thing you should worry is UML and its sytax(symbols).
The best UML diagrams are the one that wake up the desire of "asking question" in your mind.
At first forget about Uml. Ask core questions about your problem. If you like visual modeling and your mind like visual thinking use Uml for better understand and investigate possible design solutions.
UML can not design for you...
I found this research papers while searching for same thing
M-UML: an extension to UML for the modeling of mobile
agent-based software systems
May be it can help you
I recently became part of a complex embedded project team for which I will be developing a part. For the part which is my responsibility there is only old code and not much documentation.
I am keen to make a good start but shyness and fear of appearing stupid makes it difficult to ask questions. How to ask questions ?
I wanted to ask what techniques do you guys use to understand a project ? I mean there are of lots of technical details which one must remember and keep in context in order to make a design. Your read the code and get some facts but how to move ahead ?
For instance you read the code and the document(s) and get some facts A and fact B . How to reach suitable conclusion X for which you may or may not have needed to take into account facts C and D also ?
Code-reading can be particularly difficult if there is not enough documentation and the code is poorly documented and badly written. I guess the best way now is to find the entry point of the code, and slowly understand its flows and what data it uses. I would keep a look out for
Structure - are there any partitioning of entities/system? Where in the code (and how) do they communicate with each other?
Data - what sort of structures are used to hold the global data? How are the data accessed and saved?
If you are doing C or C++, it is also important to find out how memory is handled and for C++ (and other related non-managed memory OOP languages, I guess), how are object ownership contained.
Since it is an embedded project, are there any non-standard code or coding constructs used?
Reading the code is balanced by writing the documentation.
Write the documentation that your replacement will need. Imagine someone who knows less than you. Explain it for that person.
When you cannot explain something to your replacement, ask questions.
When you have a complete description, you will "know" the system.
And you will have produced complete documentation.
You don't mention what kind of tests exist. If there are test cases, modify them and trace how this would affect the end result.
You might want to look at diagrams which give the entire picture of the logical structure of the system, like, for example, looking at class diagrams in an OOP system would be of great help. Looking at the design diagrams of large and complex apps gives you a clear understanding of how the internal modules of the system are organized and this way its makes the task of figuring out what functionality does a particular piece of code does much much easier. In the absence of diagrams, you're best bet would be to start from the entry point of the app, like main() and proceed from there while you draw(literally draw or write down on paper) your own conclusions about the system(this way you can have your own documentation) and ask your peers if they're correct.
My experience is that it's best to start with some kind of task -- a bug fix or other small change. That will provide focus to your learning. I find it hard to read through a binder or sift through pages of source code or documentation without having a way to apply it.
If you have a sandbox where you can play with changes that you've made without messing up the code base, that can be even more helpful.