The EUML-ARC programming model shows that the increasing parallelism available on multi-core processors requires evolutionary (not... Show moreThe EUML-ARC programming model shows that the increasing parallelism available on multi-core processors requires evolutionary (not revolutionary) changes in software design. The EUML-ARC programming model combines and extends software technology available even before the introduction of multi-core processors to provide software engineers with the ability to specify software systems that expose abstract platform-independent parallelism. The EUML-ARC programming model is a synthesis of Executable UML, the Actor model, role-based modeling, split objects, and aspect-based coordination. Computation in the EUML-ARC programming model is structured in terms of semantic entities composed of actor-based agents whose behaviors are expressed in hierarchical state machines. An entity is composed of a base intrinsic agent and multiple extrinsic role agents, all with dedicated conceptual threads of control. Entities interact through their role agents in the context of featureoriented collaborations orchestrated by coordinator agents. The conceptual threads of control associated with the agents in a software system expose both intra-entity and inter-entity parallelism that is mapped by the EUML-ARC model compiler to the hardware threads available on the target multi-core processor. The hardware and software e ciency achieved with representative benchmark systems show that the EUML-ARC programming model and its compiler can exploit multi-core parallelism while providing a productive model-driven approach to software development. Ph.D. in Computer Science, July 2014 Show less