UML Diagram-Is sending an email within my application considered as external system

433 views Asked by At

My application have a contact option which will open the email app with the massage page and the message receiver is set to be the application support email.(I have attached a picture of what I mean) I have written it as a requirement but not sure on how to illustrate it in the system class diagram and Use case diagram.

What i have initially did in the use case diagram is: connect my user(Primary actor) to the use case "Contact Support Team" which is connected to a secondary actor "Mail system". As for the the class diagram I have attached a picture of the part of the class diagram the shows this connection.

I'm confused by it since after the implementation I’m not sure if what I documented is accurate and if the mail system is considered as an external system here, and from what I understand is that if I'm dealing with an API then it is considered as an external system so is that applicable on the situation here? Sending an email within application

Class diagram

1

There are 1 answers

0
Christophe On

The boundaries of a system are a fuzzy topic, because it depends on your definition of the system. In other words: you set the boundaries.

To take an extreme example, Ivar Jacobson, the inventor of the use-cases has written a book (The Object Advantage:business process reengineering with object technology) about applying object oriented modeling to human organisations (i.e. companies). The system under consideration is in this case a business made of components which are departments, people and IT systems. Of course, you can then zoom on the IT system (i.e a subsystem of the organisational system) and see the other elements as external. You could zoom further on one subsystem of the IT system and consider the other subsystems as external, and so on. Up to you to decide at which level you see things.

More generally, and independently of Jacobson‘s pioneering work and even object orientation, very complex systems (satellite systems, telephone networks, …) are often seen as systems of systems. There‘s even a profesional organisation fir people working in these extremely complex environments (INCOSE).

Coming back on your question: the mail system can be seen as an autonomous independent system, since it has an own purpose and can be useful independently of your app. It is therefore a candidate actor and, hence, external to your system.

On the other side, you could add an email function forwarding emails using SMTP directly from your app. So you could see the emailing system as an implementation detail of your system (and you just happen to rely on something existing). So it is a matter of viewpoint. Whatever your choice, the diagrams are not wrong and you can explain the scope that you use in your model to avoid ambiguity. The only thing, is that you should stay consistent with your own viewpoint.