Formal Specification Language Jpiaspectz: Looking For A Complete JPI Software Development Process
Aspect-Oriented Software Development AOSD solves modularity issues in the Object-Oriented Software Development OOSD approach. AOSD adds a few more details concerning the dependency between related modules. Join Point Interface JPI represents an AOSD methodology to solve those AOSD issues by the definition of interfaces in the middle of advisable artifacts and aspects. JPI permits developing software modules without crosscutting concerns. Looking for a JPI software development approach, this article proposes and exemplifies the use of JPIAspectZ, an extension of the formal aspect-oriented language AspectZ for the requirement specification of JPI solutions. Mainly, JPIAspectZ looks for a consistent JPI software development process. Defining join point interfaces represents a primary JPI component for explicitly associating aspects and advised modules. Classes are no longer oblivious of possible interaction with aspects, and effectiveness of aspects no more depend on signatures of advisable modules components for the use of JPI instances. JPIAspectZ fully supports these JPI principles. As JPI application examples, this article shows the formal requirements specification, structural model, and JPI code for a typical aspect-oriented application.