code: def linkify_s_by_sd(self, services):
          
          for servicedep in self:
              # Only used for debugging purpose when loops are detected
              setattr(servicedep, "service_description_string", "undefined")
              setattr(servicedep, "dependent_service_description_string", "undefined")
  
              if getattr(servicedep, 'service_description', None) is None or\
                      getattr(servicedep, 'dependent_service_description', None) is None:
                  continue
  
              services.add_act_dependency(servicedep.dependent_service_description,
                                          servicedep.service_description,
                                          servicedep.notification_failure_criteria,
                                          getattr(servicedep, 'dependency_period', ''),
                                          servicedep.inherits_parent)
  
              services.add_chk_dependency(servicedep.dependent_service_description,
                                          servicedep.service_description,
                                          servicedep.execution_failure_criteria,
                                          getattr(servicedep, 'dependency_period', ''),
                                          servicedep.inherits_parent)
  
              # Only used for debugging purpose when loops are detected
              setattr(servicedep, "service_description_string",
                      services[servicedep.service_description].get_name())
              setattr(servicedep, "dependent_service_description_string",
                      services[servicedep.dependent_service_description].get_name())
docs: Add dependency in service objects
  
          :return: None