0

I'm developing a 3 tier based system , the user passes data to the server which performs server side processing and queries a database etc the usual stuff. I'm wonder should I include the database in the diagram as an actor ?. I have already included the server as well as the end user

Thanks.

Aaron Bertrand
  • 272,866
  • 37
  • 466
  • 490
Shpongle
  • 983
  • 1
  • 9
  • 14

2 Answers2

1

If you're developing the full system then no, don't include the DB as an Actor. I wouldn't recommend showing the Server either.

The purpose of a UCD is to show the system context in terms of the features (Use Cases) it supports and for whom those features are provided (Actors). UCDs deliberately don't show internal structure - so you focus on the Users and their Needs without getting sidetracked by implementation concerns.

Since the Server and DB are part of your system they're "design detail" for how you realise the Use Cases. Therefore the don't sit outside your system, therefore they're not Actors. The only time I'd recommend putting other systems on a UCD is when (a) they're external to the system you're building and (b) provide or receive some value to/from it.

UML provides other diagrams for showing the internal components of the system:

  1. Deployment diagrams show physical hardware and allocation of software components to them
  2. Component Diagrams allow you to show the logical structure of the application
  3. Sequence Diagrams or Activity Diagrams allow you to show how a Use Case is realised in terms of its logical components

(Note I'm not suggesting you use all those, just what's useful).

hth.

sfinnie
  • 9,854
  • 1
  • 38
  • 44
0

i think the web servers and the database should labeled as the system, users or external third parties could be actors!

getaway
  • 8,792
  • 22
  • 64
  • 94
  • quoting wikipedia "An Actor models a type of role played by an entity that interacts with the subject (e.g., by exchanging signals and data), but which is external to the subject."[1] "Actors may represent roles played by human users, external hardware, or other subjects. Note that an actor does not necessarily represent a specific physical entity but merely a particular facet (i.e., “role”) of some entity that is relevant to the specification of its associated use cases. So I know I can use the server since it communicates with the client side via message passing. – Shpongle Dec 06 '10 at 23:41