Use Case diagram
Question: Can system internal process or module be described as an actor that performs certain functionality against system itself in Use Case diagram?
Added explanation for the question: We are documenting system functionalities with Use Cases, and then presenting it to customers. Some of the system functionality includes:
Auditing (on entity field change events).
开发者_运维百科User notification to inbox (by custom rules defined on system objects).
SSIS packages run automatically (updating object attributes).
Should we treat system as an actor (system process) that performs these functions or should we declare these functions in separate document section under ‘Special system functions”?
Generally no. In principle, actors live outside the system boundary while Use Cases (and the system(s) that realise them) live inside.
However, more useful is to ask why you have this scenario. Perhaps you can explain further?
Maybe. For example a cron job which performs a nightly summarisation function can be shown as an actor. As with all UML diagrams, if the diagram is useful to the people that are using it, it's OK.
UML is all about communicating a design decision to those that need to know is clear and concise manner. If it is advantageous to the clarity of this aim then using an actor to represent a sub part of the design then do it. So long as you make it very clear that this is what you are communicating and that both are part of the same model.
As an example: I have experience in designing and coding embedded systems where blocks of code might be running on different processors/controllers or even in a different enclosure. But they are all part of the same application and therefore design model. Another way of looking at it on say, a windows machine, is an application that relies on a windows service for it's normal operation. The service might be an actor to the GUI application and the application might be an actor to the service.
@sfinnie is right in principle, it is sometimes useful to communicate things outside of this rule. After all, you'll never have to compile your UML, just explain it ;) .
精彩评论