Evaluating Design 1 for Flexibility

Design 1 for reference

Design 1 for reference

Now lets discuss the next parameter ie the Flexibility

So what do you think about the Flexibility of this interaction model ? whether it is Good, Bad or Worst?

Again if you ask for my opinion the answer is "Worst".

But before commenting on the flexibility of this system, lets explore something about flexibility of systems in general.

 

Flexibility

Flexibility as a parameter defines the adaptability of a system wrt different types of changes.

So lets explore the different types of changes that can happen in a system

As systems can be defined from structural and behavioral perspective , on the same lines changes in a system can also be qualified as structural changes and behavioral changes.

Structural Change

Adding/ Removing/ Modifying a structural component within a system at a particular level of granularity is called as a Structural change.

 

Behaviorial Change

Similarly Adding/ Removing/ Modifying a behavior offered by a structural component at a particular level of granularity is called as a Behavioral change.

There is one more type of change that can happen in system and they called as the creational change. Creational changes are only specific to factory based systems. Factory based systems are those systems, the responsibility of which is to create different types of Objects.

As creational changes are only specific to factory based systems, in the context of this chapter we will only be discussing about structural and behaviorial changes which are common to most of the systems in general.

So whenever we are talking about flexibility from now onwards, we are supposed to precisely talk about structural /behavioral flexibility.

Rules for Structural Flexibility

  • Any kind of internal structural change should not have any impact on the end user or the actor should not be aware of any internal structural change. The reason is pretty clear, the system is supposed to be a black box to the end user.
  • For you to incorporate this structural change the minimal number of internal components should get impacted preferably the change should be limited to a single component.

When both the rules are satisfied , we can say our system is flexible wrt structural changes.

Examples of structural flexibility

Think about the CPU of your computer. If you ask your system administrator to increase the RAM of your computer. Can you physically see the latest RAM which the administrator had added to your CPU after it is added. or can a user see any of the structural components that you add or remove to your computer. The reason it happens is because of the first prerequisite for structural flexibility.

Also think about the number of structural components you are supposed to touch or move so as to add the new RAM, I feel there are slots within your motherboard in which you can just plug a new RAM into the corresponding slot without even touching/moving any other part of your motherboard. Its not just for RAM, I feel for every other structural part of the system which the designer want to extend, there are slots meant for the same and just by making a single change within your system you can manage the structural change.

Behavorial Flexibility

The rules for behavioral flexibility are a bit more subtle as compared to structural flexibility because we cannot say that any kind of behavioral change should not impact the end user because the end user only knows the system via its behaviors. But we also know a rule that not every other user is supposed to know about every other behavior.

Rules for behaviorial flexibility

  • Any kind of behavioral of change within the system should only be made available to those users, who are authorized to know about the same and no one else.
  • As we know structural component interaction is the cause behind behaviors offered by the system. So if there is a behavioral change , there will definitely be a structural change and because of which all the prerequisite of structural flexibility should also be true.

When both the rules are satisfied , we can say our system is flexible wrt behavioral changes.

So now lets comment on the structural flexibility of our proposed design.

As our current system is a complete white box , any kind of structural change will be visible to all the users and because of which the first perquisite of structural flexibility is not satisfied.

Similarly all the behaviors offered by the system is available to all the users because of which the first prerequisite for behavioral flexibility is not satisfied.

So from flexibility point of view this system is again a night mare.

Hence the design is "WORST" wrt Flexibility

 
Hemant Jha
Founder - VPlanSolutions
Researcher, Trainer

www.VPlanSolutions.co.in