This document discusses engineering autonomic ensembles through model-based development. It describes modeling autonomic systems using Agamemnon and implementing components using Poem. Reinforcement learning is used to find good completions for partial programs that maximize reward. The Service Component Ensemble Language (SCEL) provides an abstract framework for ensemble programming. A case study of a robot ensemble is used to illustrate modeling the domain and requirements, selecting adaptation patterns, modeling behavior, and analyzing requirements through simulation and sensitivity analysis.