@staticmethod
def _compute_score(system_score, requested_radl):
    """
        Computes the score of a concrete radl comparing with the requested one.

        Args:

        - system_score(tuple(radl.system, int)): System object to deploy and the score
        - requested_radl(radl.system): Original system requested by the user.

        Return(tuple(radl.system, int)): System object to deploy and the new computed score
        """
    concrete_system, score = system_score
    req_apps = requested_radl.getApplications()
    inst_apps = concrete_system.getApplications()
    score *= 10000
    if inst_apps:
        for req_app in req_apps:
            for inst_app in inst_apps:
                if inst_app.isNewerThan(req_app):
                    score += 100
    if inst_apps:
        for inst_app in inst_apps:
            if inst_app in req_apps:
                for req_app in req_apps:
                    if req_app.isNewerThan(inst_app):
                        score -= 1
            elif inst_app.getValue('version'):
                score -= 1
    return concrete_system, score
