Real world systems are normally considered as hierarchically organized, for example, we see those as hierarchies of systems including subsystems. Examples on this can be seen in organizations where people act in environments and carry within themselves their own internal subsystem of thinking processes. Another example relates to robotics where robots may be seen as hierarchical constructions, both physically and logically. As in the case of human actors, we can see robots as autonomous entities that need to perform internal reasoning and planning to conform well to the environment in which they act. Furthermore, actions on different levels are often inherently parallel and may be more or less independent. Object-Oriented (OO) technologies have proved to be appropriate tools in software development. Programming these kinds of hierarchical concurrent systems should therefore be gained by suitable Object-Oriented software support that reflects system level-dependent behavior. For instance, actions in a robot control system should relate to real time, while a robotÕs planning system actions relate to simulated time. However, existing OO software support mainly reflects one-level sequential systems which only by exhaustive work may conform to such hierarchically organized systems. Existing architectural design proposals that address hierarchical compositions often cover ways of collecting objects, but do normally not address issues such as concurrency and different time semantics. We have developed concepts and software support to meet the need for modeling and implementing hierarchically organized systems with concurrent level-dependent autonomous entities. We have approached the problem from two directions, i.e., on one hand from a conceptual and principle perspective, and on the other hand from a software engineering perspective. Concepts and principles are mainly treated in the context of the, so called, Model-Orientated Programming project. Model-Orientation (MO), can be seen as an extension to Object-Orientation to support concurrent models especially. We use the term model for a software representation of an autonomous entity. A model may define its own view upon matters such as time and communication, and may furthermore include further models to represent hierarchical system compositions. Within the project of Model-Oriented Programming we also develop programming language elements relating to the developed concepts. Software engineering aspects are mainly studied within the project of Hierarchical Concurrent Systems. A developed Java-based framework especially reflects hierarchical properties of systems. A general concept of timebase may be specified as either based on a real time or a simulated time concept. This implies that software of one hierarchical level may act in real-time in a control system, while an internal hierarchical level may reason about future state based on a simulated time axis. Furthermore, within the framework we also regard communication, distribution and process management as hierarchical level-dependent properties. This impels ways of software components to flexibly adjust themselves to the context they are intended to act within. Our approach, based on investigations on both modeling and implementation, has been experimented on in several case studies. Those show that encapsulating our concepts and solutions within well defined software units provide software that is both flexible and scalable.