I have developed an android application that communicates with a server. Through the application the user authenticates on the system that the server is running and after the server is able to send information to my application.
I'm making a use case diagram (UML) for my application but I'm not sure if I should represent the server as an actor (external) or omit it from the diagram... I'm new in UML so the definitions are a little confusing to me at the moment...
Can anyone help me with this?
(Sorry if this is not the right place to put those kind of questions).
First off, who is the diagram for? And what are you trying to communicate with it?
UC diags are typically used to dscribe Users (Actors) and what they want to achieve (Use Cases). They don't focus on how the user's goals are facilitated.
Your question focuses primarily on the technology; the only discernable Use Case is "Authenticate" for the "User" Actor. That doesn't seem particularly insightful. Developing this line of thinking, the next question would be: why does the User need to be authenticated? i.e. what can he/she do once successfully authenticated? And are those things in scope for your system? Relatedly, authentication commonly comes with a set of companion UCs: registering in the first place (e.g. setting name, pwd, memorable data), resetting / retrieving lost pwd, etc.
The above all assumes you're really trying to communicate who the users are and what they need to do. It may be that's not your purpose; maybe you want to communicate the solution design (User accesses application, app sends message to server, etc.). If so then you're probably better served with sequence diagram(s) and/or component diagrams.
Note the two aren't mutually exclusive: solution design naturally flows from user needs. So it may be both are applicable. All depends on what you want to communicate.
hth.
If the server is part of your system, omit it. Otherwise, it is an external actor, and you have to put it in the use-case diagram.