In EUDP we generally uses UML and SysML diagrams.
Tutorials and Software
For Tutorials Please use your favourite search engine to search for "Tutorial UML" or "Tutorial SysML" if what is described below is fulfilling your needs..
Over at Tutorialspoint you can find excellent tutorials in general and also for UML.
If you are running Linux you'll just have to install it from the repositories provided by your specific distribution. E.g. in Centos execute
]$ sudo yum install dia
Another free tool in most Linux'es is Modelio, which also supports UML diagrams.
If you are running KDE as tour desktop kdesk-umbrello may also be a useful choice for you. If you are running on top of Gnome just search for umbrello
For SysML it is a bit harder to locate on-line resources suitable for self study.
Eclipse hosts Papyrus, which is a SysML and UML drawing tool of high quality, but maybe not that easy to get familiar with. There is a guide in the project space on Eclipse.org, which can be used for getting started with SysML and UML Diagrams. Downloads are located in the same project space.
Block diagrams can be made in any text editor or drawing program like Libre Office Writer or Draw.
Again Dia proves to be a useful tool.
Flow charts are often used as a method of illustrating a flow in a piece of software. Find over at Tutorialspoint a brief introduction to flow charts.
Dia is a useful tool for drawing flow charts.
Find below a few examples of diagram types prepared in Dia
Note: The diagrams may look a little bit different depending on the tool at hand, when preparing the diagrams as the different tools put more or less effort in the looks of the different shapes. But basically one should be able to determine the diagram type by looking at it.
An example of a Flow chart made in Dia - here with all drawing objects selected (Ctrl+A)
An example of a Class Diagram in Dia - in this diagram the Attributes and Operations are not shown.
This can represent the first basic Block or Class Diagram before details are known.
Detailed Class Diagram
An example of a Class Diagram with Attributes and Operations filled in and visible
Note: One can abstract from classes and use the classes as blocks, because a block shall be described with its responsibility (attributes) and functionality (Operations). If classes are interpreted as blocks only use lines with arrows.
An example of a Deployment Diagram - in this case only one platform to deploy on.
An example of a Statechart Diagram.
Note: EventExit will trigger a transition from either states to the exit point if it happens.
An example of a Sequence Diagram.
Note: The dotted line indicates a time shift.