**2. Evolvable systems**

Evolution is often an intrinsic, feedback-driven, property of a software-based system. The meta-structure (as mentioned in Section 1), within which a system evolves, contains a number of feedback relationships (we will see more details in Section 3). The organization and environmental feedbacks transmit the evolutionary pressure to yield the continuing change in the process. The rate at which a program executes, the frequency of usage, user interactions with the operating environment, and economic and social dependencies of external processes on the system in production-all these cause its deficiencies be exposed over a period of time (Lehman, 1980). Therefore, these deficiencies to eventually become

Dynamics of System Evolution 27

their will, while traversing through the system workflow.

towards his/her own expectations from the service provider.

Conceptual models are the means by which software intensive systems are conceived, architected, designed, and built (Dori, 2003). To realize such a conceptual model, we introduce a wrapper system that interacts with the system itself and its surrounding environment. This interaction is a great source of valuable indications about the system dynamics. A system cannot be successful unless it can effectively communicate with its environment. Therefore, it is important to establish a controlled link between the system and the environment (Lehman, 1986) and collect the interaction behavior as completely and efficiently as possible. Data should be collected from any sort of direct/indirect feedbacks, inquiries, error logs, usage patterns, and real-time analytics – all with timestamps saved into knowledgebase so that the underlying meta-structure is able to produce meaningful insights about the system's current state, performance, and any noticeable changes in the usage patterns. Cultural changes, over a period of time (in the surrounding environment) also affect how users view and perform their works and interact with other groups of users and

Systems and models are intimately related. Modeling is a set of abstract artifacts representing systems (Dori, 2003). Therefore, we can develop a meta-model while designing a system that will abstract out the system specifications by carrying over the underlying adjustable parameters. This mechanism may impose additional tasks at the developers end, and will incur further expenses; however it will open up a wide door for any future

Involve users in various phases of system development life cycle (including post development activities) and deployment activities; distribute significant real-time system usage statistics to the users while using the system; present analytical summary reports at the relevant areas in the system workflow to enable users to become more aware of the dynamicity of the system

Users are informed with ongoing development and new upcoming changes, and infrequent requests for feedbacks or suggestions from them. It can also implicitly encourage them to drop few responses to very simple questions at

System is able to personalize each user's experience based on the system usage patterns from activity log; this would help a user to feel as if it is molded

The meta-structure should be able to provide instant pictures of the system from various viewpoints. This dynamicity is also a form of self-advertisement, as it tends to attract all user groups, developers and stakeholders where they are able to view real-time results of interests; and thereby help all in the community to further promote the services in a more guided way.

User is both aware of necessary changes and is engaged with the system's flexibility and openness for incorporating new adjustments in the future.

Descriptions

Table 1. Desirable Characteristics of an Evolvable System

components and their interactions.

System Characteristics

Actively participate in system feedbacks

state

Experience of uniqueness

Ability to provide current system

Flexibility in the incorporation of new features

service providers.

**3.1 System reconfiguration**

**3. Operational environment** 

Encourage a highdegree of user involvements

newly emerged system requirements that need be addressed to ensure the sustainability of the system.

Program maintenance is generally used to describe all changes made to a system after its deployment. With maturity of software development practices, maintainability of the resulting products (i.e. software-driven systems) has become one of the most important concerns in recent years. This is because we need systems to be evolvable to avoid any failed investments. Evolutionary behavior relates to attributes of relevant software processes, their components and relevant domains or environment. Attributes (such as system size, complexity, efforts applied, and the rate of changes) reflect aspects of its evolutionary behavior. Measurement or estimation of these attributes has provided a basis for the study of software evolution dynamics (Ramil & Lehman, 1999). By classifying programs according to their relationship to the environment in which they are executed, the sources of evolutionary pressure on computer-based applications and programs can be identified (Lehman, 1980).

The dynamic evolutionary nature of computer-based applications, the software that implements them, and the process that produces, introduce the concept of system lifecycle management as a whole. In studying system evolution, the repetitive phenomena that define a lifecycle can be observed on different time scales representing various levels of abstractions (Lehman, 1980). The laws of system evolution include: (1) continuing change, (2) increasing complexity, (3) system dynamicity (which is subject to measures of system attributes that are self-regulating with statistically determinable trends and invariance.), (4) conservation of the organizational stability, and (5) conservation of familiarity (Lehman, 1980). Since they arise from the habits and practices of users and organizations, their modification or change requires involving the surrounding environment, and cross into the realm of sociology, economics and management.

Each system can evolve differently, based on the type of its functionalities, services and the way it is used or consumed by the users. Therefore, the impact of foreseeable evolutionary changes varies with the nature of the system itself. For example recurring usage cycles (eg. yearly event), continuous roll-over usages (eg. viewlist online), or aperiodic/ad-hoc usage (eg. on-demand services).

### **2.1 Prerequisites of evolvable system**

Like the dynamic evolutionary nature of complex social networks or economic systems and the processes of their subsistence, any software-driven system should have enabling processes to sustain itself over a longer period of time. For a system to be evolvable, it needs to be more flexible in interaction with not only the end users, but also various self-contained meta-data collecting agents or data-loggers (Lehman, 1986). These might include automated survey agents, probing points, or task request history (Mubin & Luo, 2010a). Table 1 lists some of the desirable characteristics of an evolvable system.

The characteristics mentioned in Table 1 strongly suggest that there should be a wrapper system responsible for both collecting meta-data, as well as applying the desired changes. Such a wrapper system should be built in parallel to the system itself (Mubin & Luo, 2010b) with equal emphasis.

26 Real-Time Systems, Architecture, Scheduling, and Application

newly emerged system requirements that need be addressed to ensure the sustainability of

Program maintenance is generally used to describe all changes made to a system after its deployment. With maturity of software development practices, maintainability of the resulting products (i.e. software-driven systems) has become one of the most important concerns in recent years. This is because we need systems to be evolvable to avoid any failed investments. Evolutionary behavior relates to attributes of relevant software processes, their components and relevant domains or environment. Attributes (such as system size, complexity, efforts applied, and the rate of changes) reflect aspects of its evolutionary behavior. Measurement or estimation of these attributes has provided a basis for the study of software evolution dynamics (Ramil & Lehman, 1999). By classifying programs according to their relationship to the environment in which they are executed, the sources of evolutionary pressure on computer-based applications and programs can be identified

The dynamic evolutionary nature of computer-based applications, the software that implements them, and the process that produces, introduce the concept of system lifecycle management as a whole. In studying system evolution, the repetitive phenomena that define a lifecycle can be observed on different time scales representing various levels of abstractions (Lehman, 1980). The laws of system evolution include: (1) continuing change, (2) increasing complexity, (3) system dynamicity (which is subject to measures of system attributes that are self-regulating with statistically determinable trends and invariance.), (4) conservation of the organizational stability, and (5) conservation of familiarity (Lehman, 1980). Since they arise from the habits and practices of users and organizations, their modification or change requires involving the surrounding environment, and cross into the

Each system can evolve differently, based on the type of its functionalities, services and the way it is used or consumed by the users. Therefore, the impact of foreseeable evolutionary changes varies with the nature of the system itself. For example recurring usage cycles (eg. yearly event), continuous roll-over usages (eg. viewlist online), or aperiodic/ad-hoc usage

Like the dynamic evolutionary nature of complex social networks or economic systems and the processes of their subsistence, any software-driven system should have enabling processes to sustain itself over a longer period of time. For a system to be evolvable, it needs to be more flexible in interaction with not only the end users, but also various self-contained meta-data collecting agents or data-loggers (Lehman, 1986). These might include automated survey agents, probing points, or task request history (Mubin & Luo, 2010a). Table 1 lists

The characteristics mentioned in Table 1 strongly suggest that there should be a wrapper system responsible for both collecting meta-data, as well as applying the desired changes. Such a wrapper system should be built in parallel to the system itself (Mubin & Luo, 2010b)

the system.

(Lehman, 1980).

realm of sociology, economics and management.

(eg. on-demand services).

with equal emphasis.

**2.1 Prerequisites of evolvable system**

some of the desirable characteristics of an evolvable system.


Table 1. Desirable Characteristics of an Evolvable System
