Abstract :
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.
Keywords :
embedded systems; programming languages; software engineering; agile development environment; aspect-oriented methodology; declarative programming; embedded systems; procedural programming; Application software; Collaborative software; Computer languages; Design methodology; Embedded computing; Embedded software; Embedded system; Functional programming; Information technology; Virtual manufacturing;