Executable Modeling of Software Architectures