| Development of traditional software systems is usually based on platforms that are close, static and stable; however, the growing scale and thus complexity of distributed systems drive software running platforms to transform from a single-machine-oriented, close and static execution environment into a network environment which is open, dynamic and volatile. Traditional software development methods need to be expanded to accommodate changes in the development of the objective world since it is difficult for software developers following traditional software developing conventions to predict in advance the dynamic changes of software behaviors in the network execution environment. To tackle the new challenge, we need to propose novel software development methods and frameworks. Software built on such methods and architectures are supposed to monitor non-predicted environment change and behaviors during software execution, and be able to evolve both online and offline.We brought from the idea of separating-different-focusing-points in the Aspect-Oriented technology, and proposed a monitor-enabling software programming model. The model focuses on the monitoring and evolvement ability of the software developed and is constructed independently. Software developed using the new model is enabled to monitor and evolve. By injecting automatically into software the two abilities in the runtime, a good balance is achieved between constructing software execution management and software operational functions. The research work of the paper can be generalized as follows.1. Proposing a monitor-enabling software programming model with support of which software developers can construct, in the software construction stage, functioning logics that construct software operational functions, monitoring logics that gather software state information and evolving logics that check the software, and developers can as well bind all kinds of logics in the phase of compiling or runtime to do the monitoring and evolvement tasks of the software.2. Analyzing and comparing existing software development methods and software construction frameworks, studying the Aspect-Oriented Programming (AOP) technology and the fundamentals and features of the Eclipse framework integrating technology, and analyzing in detail the AspectJ and ASM(A Java bytecode engineering library)techniques which are technical means to implementing the AOP concept.3. Designing and implementing a monitor-enabling programming framework Mepframe based on the programming model proposed. Using Mepframe, software developers can use the monitoring programming language and/or embedded annotation to express monitoring requirements. Mepframe also provides evolvement processing templates to facilitate user's constructing evolvement processing behaviors. The binding-in-runtime mechanism of Mepframe binds in the runtime all kinds of logics that are constructed in the software construction stage so that all logics can associate and work as a whole.4. Based on the above work, this paper validated the Mepframe concept system using an example of ATM (Automated Teller Machine) in the bank. The experimental results show that, the software developed under Mepframe can effectively integrate the monitoring and evolvement ability, and consequently well adapt to the ever changing software running environment, which gives solid proofs to the feasibility and effectiveness of the programming model and framework proposed. |