A "use case" can be visualized with a UML diagram. UML is an approach to describe technical software. You don't need to learn UML, don't be worried. The use case diagram is the most simplest diagram you can have. It looks a bit like a mind map.
Before you start, I would recommend you to use some a uml editor. One I love very much is Violet:
It is free of charge, has a beauty interface and is easy to use. On the other hand it lacks some top-pro features, but they don't touch you. Use case diagrams are complete. So, below you see a simple use case diagram made with Violet (image taken from product homepage):
A use case is basically describing "what one can do with the software". Some elder people simple "feature" to it. Lets summarize a few use cases for a calendar software. First, you need to identify the actors. Actors can be human people or other systems. In our case we can say "Administrator", "User", "System". The last one is there for some clean up tasks. The first two are humans. Of course, a Administrator can be a User at the same time, but this does not reflect on the UML, except you have a button like "Make this user an Admin". The roles or Actors we identified are the human symbols on the screenshot.
Now the elipse are the use cases. We could draw one and write "Login" into it. The Administrator can login, the User can. The System cannot. This use case is not for it. So we draw lines from Admin and User to "Login".
Same goes for logoff. We could again draw a elipse with logoff and make some lines to it. But it would be better and more readable if we create an elipse "Authorization" and put the "logoff" and "login" elipse as a sub use case to "Authorization". Then we only need to draw lines from Admin and User to "Authorization", and "Authorization" has lines to "Logoff" and "Login".
Guess the principle is clear now.
The calendar can have more use cases:
Calendar --> Add entry
--> Delete entry
--> Show as month view
--> show as daily view
Profile --> Modify timezone
--> Reset password
Here are some of the Systems use cases:
Cleanup users who have not activate account
Cleanup entries who are older than 1 year
And so on.
To your question 2), it is not the final stage (usually). If you have agreed on which use cases you implement, you probably must estimate how long it would take. probably they want to see other more fine diagrams or at least some wireframes were they can they how you have planned the software.
To 3) I would recommend you to note down everything "one can do with the software". But not company goals, mission or something. Show every feature the software will have and organize them nicely. This will show your understanding of modules of the product and show that you have not forgotten a desired feature. And, you can make a better estimation.
To 4) As already mentioned: no.
I have made the experience that it is very helpful to make comments into the diagram. In addition I always give the use cases IDs to identify them uniquely. On the phone we can find the discussed use case better.
In addition a small document, listing the use cases with id and name is very good. It should include
- a small description of the use case in words
- necessary data to perform it (like for Login: "Username" (String, max 30 chars), "Password (String, max 30 chars))
- expected outcome of the Usecase (User is logged in and can perform all other use cases, Time entry has been stored in the database)
- Other comments (risks, for example System is deleting something a user currently views or some words on complicated tasks)
Finally include a small description of your actors, who can be a user, who is an admin.
My guess is, you need half of a page per use case.
Last tip, don't put "future" use cases in your diagram. Make a "version 1" use case diagram, and if you know already about version 2, make a second diagram extending the first one. If you show one single diagram with 1000 use cases - everybody knows it will take forever to implement it. Make smaller steps, so you can show how the software grows during the time.
Hope the helps a bit!