A Method Based on Petri Nets for Identification of Aspects

One of the important factors in creating complexity in software systems is the existence of crosscutting concerns. The concept of aspect orientation with presentation of a method could modulate crosscutting concerns into the single unit that is called aspect, and solve many prob- lems which are created such as tangling and scattering. However, identification and specification of crosscutting concerns and regarding them as aspects is not easy. For this reason, various methods are presented but such meth- ods are informal. In this paper, we propose a formal method based on Petri Nets for identification of aspects. In the method, a software system is expressed in terms of a number of concerns. A concern is composed of one or several requirements which realization of them cause realization of that concern. The proposed method defines requirements and concerns in the formal form by Petri Nets and named them as requirement nets and concern nets. Concern nets with dependencies which there are between requirement nets, model the final system. The execution of final modeled software system based on Petri Nets and monitoring its transitions, shows crosscutting concerns which are candidate aspects.

[1]  Ruzanna Chitchyan,et al.  Semantics-based composition for aspect-oriented requirements engineering , 2007, AOSD.

[2]  Tadao Murata,et al.  Petri nets: Properties, analysis and applications , 1989, Proc. IEEE.

[3]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[4]  Ivar Jacobson,et al.  Aspect-oriented software development with use cases , 2005, Addison Wesley object technology series.

[5]  Ian Sommerville,et al.  The viewpoints FAQ , 1996 .

[6]  John C. Grundy,et al.  Aspect-oriented requirements engineering for component-based software systems , 1999, Proceedings IEEE International Symposium on Requirements Engineering (Cat. No.PR00188).

[7]  Wil M. P. van der Aalst,et al.  The Application of Petri Nets to Workflow Management , 1998, J. Circuits Syst. Comput..

[8]  Joseph D. Gradecki,et al.  Mastering AspectJ: Aspect-Oriented Programming in Java , 2003 .

[9]  Siobhán Clarke,et al.  Theme: an approach for aspect-oriented analysis and design , 2004, Proceedings. 26th International Conference on Software Engineering.

[10]  Hao Hu,et al.  A Petri net-based approach for supporting aspect-oriented modeling , 2008, 2008 2nd IFIP/IEEE International Symposium on Theoretical Aspects of Software Engineering.

[11]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[12]  IEEE-SA Standards Board , 2000 .

[13]  Dianxiang Xu,et al.  Threat-driven modeling and verification of secure software using aspect-oriented Petri nets , 2006, IEEE Transactions on Software Engineering.

[14]  João Araújo,et al.  Modularisation and composition of aspectual requirements , 2003, AOSD '03.

[15]  Ivar Jacobson,et al.  Aspect-Oriented Software Development with Use Cases (Addison-Wesley Object Technology Series) , 2004 .

[16]  Robert V. Binder,et al.  Testing Object-Oriented Systems: Models, Patterns, and Tools , 1999 .

[17]  K. G. van den Berg,et al.  Identification of Crosscutting in Software Design , 2006 .

[18]  João Araújo,et al.  Early aspects: a model for aspect-oriented requirements engineering , 2002, Proceedings IEEE Joint International Conference on Requirements Engineering.

[19]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[20]  Stanley M. Sutton,et al.  Modeling of software concerns in Cosmos , 2002, AOSD '02.

[21]  Stanley M. Sutton,et al.  N degrees of separation: multi-dimensional separation of concerns , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).