Analysis to goal-driven design

Aspect-oriented languages provide great flexibility for software modularization. When choosing from many alternatives we can find the designs that better meet our needs; however there is also a greater risk to misuse this flexibility, thus leading to designs which are too complicated. In this paper we show that there can be different solutions to a single problem depending on the assumed design goals. Here we will emphasize on the best design with respect to the stated design goals; and the success of design largely depends on proper selection of design goals. We believe that the design process could be improved by making goal analysis more explicit. Non-functional requirements should be specialized up to specific design goals that constrain implementation decisions. These goals should be documented and used for understanding and evaluating designs.