Design 3 - Solving the problems in Design 2 using Boundary Entities

Now, you all are equipped to solve the following problem. By this time my participants tell me what has to be done to make this design much better.

How can we increase the behavioral usability, flexibility and security of any system?

There is only one technical rule which can help increase the usability, flexibility and security of any system.

"Use one more level of indirection."

The following figure shows the modified design to solve the problems of the previous design.

Design 3 using boundary entities

Design 3 using boundary entities

Again in this design we are just adding one more level of indirection to increase the behavioral usability, flexibility and security of the system.

The level of indirection we introcduce in this design are called the boundary entities of the systems.

Boundary Entities

Boundary entity models the different types of actors within the system

OR

Boundary Entities are internal system representatives of the different types of actors who are supposed to use the system. Ie there is a one to one mapping between the actors of the system and in the boundary entities.

In this example there are three actors who are supposed to use our system ie Railway Reservation Clerk (RRC), Travel Agent(TA) and Online Customer (OC)

So we will have three Boundary Entities (CBE, TABE, OCBE) each of which represents the different actors within the system respectively.

The responsibility of each of the boundary entity is to only expose those behaviors which that corresponding actor is authorized to use.

So if the RRC is supposed to invoke every other behavior, then the CBE will expose all the behaviors which the clerk is authorized to use.

If the travel agent (TA) is supposed to just reserve a ticket and cancel a ticket, then the TABE will only expose these behaviors.

In this arrangement the actors will interact with the corresponding boundary entities which in turn will interact with the control entities depending upon the mapping between the actors and the behaviors and each of these control entities will interact with different domain entities depending upon the business logic of each of these behaviors.

 
Hemant Jha
Founder - VPlanSolutions
Researcher, Trainer

www.VPlanSolutions.co.in