Anonyme RegisteredUser Register Authenticate Manage contacts List contacts Create contact Modify contact Delete contact Write message Read messages UserPojo login:String password:String System +register(login, pass):UserPojo +login(login):UserPojo UserManager +register(login, pass):UserPojo +login(login):UserPojo DB +exists(login:String):bool +persist(object:Object):Serializable +match(login:String,password:String):bool User System UserManager DB UserPojo register(login, pass)register(login, pass)exists(login) alt true"Login Taken""Choose another login" altfalsenew()UserPojopersist()altPersistExceptionUserException"Retry later ?"altOKUserPojoUserPojo