Challenged by market and technical advance, the requirements of embedded products will keep changing throughout the whole process of development. How to introduce agility to the development process, to adapt to these changes? In this paper, we proposed an architecture-based, aspect-oriented methodology of agile software development, which takes expressivity and efficiency as two major concerns of embedded applications; expressivity yields agility, and efficiency meets the constraints of resources. Under the separation of concerns, we differentiate the system into functional aspect and several technical aspects which give supports to the functional one. Different concerns need different programming paradigms. At the functional aspect, we takes declarative programming, and at the technical aspects procedural programming. An abstract machine, as a pivotal of the architecture, weaves all these aspects dynamically at runtime, to achieve all the functionalities of the system.
展开▼