Formally Assessed ICTPRG506 Design application architectures