This paper describes an approach to detecting anomalies in a software architectural style that is structured with components and connectors between components. Each component is designed with tasks (concurrent or active objects), connectors between tasks, and passive objects accessed by tasks. Anomalies in the software architecture are detected twofold by each Component Monitor, which supervises objects in a component, and by a System Monitor, which monitors message communications between components. The monitors encapsulate the specifications of objects being monitored, which are represented using statecharts. The execution of statecharts in the monitors depends on notification messages from connectors between tasks, passive objects accessed by tasks in a component, and connectors between components. To demonstrate the approach, the elevator system is considered.