Presentation is loading. Please wait.

Presentation is loading. Please wait.

Advanced Software Development Karl Lieberherr CSG 260 Fall Semester 2003 https://lists.ccs.neu.edu/bin/listinfo/

Similar presentations


Presentation on theme: "Advanced Software Development Karl Lieberherr CSG 260 Fall Semester 2003 https://lists.ccs.neu.edu/bin/listinfo/"— Presentation transcript:

1 Advanced Software Development Karl Lieberherr CSG 260 Fall Semester 2003 https://lists.ccs.neu.edu/bin/listinfo/

2 Advanced? Advanced means to me –Thinking in families of software products –Good separation of concerns, shyness between concerns –Write code that writes code (active code generators: TPP: Tip 29) –Put Abstractions in Code, Details in Metadata (TPP: Tip 38) Information about TPP: CSG 260 Resources

3 Domain Specific Language (DSL) A domain-specific language is a specialized, problem-oriented language. Need several DSLs to specify a complete application. –General modeling DSLs (e.g., synchronization) –Application oriented DSL (e.g. authorization policy) From: GP 5.5

4 DSLs Fixed, Separate DSLs –SQL, TEX Embedded DSLs –Embedded in a general purpose language, e.g. embedded SQL Modularly composable DSLs (component) –Encapsulated DSLs (e.g., embedded SQL) –Aspectual DSLs (e.g., synchronization)

5 Aspectual DSLs An aspectual DSL specification influences the semantics of other DSL specifications. Implementation of modularly composable DSLs requires a common language implementation providing the necessary infrastructure for the language plug-ins (we will use AspectJ).

6 Advantages Of modularly composable over monolithic DSLs –Reusability –Scalability –Fast feature turnover Have to survive based on their merits

7 Generative Domain Model Problem Space Domain-specific Concepts and Features Configuration Knowledge Illegal feature combination Defaults Construction rules Optimizations Solution Space

8 AOP: separating concerns What are the important concerns we need to separate? What composition mechanisms? How to capture the concerns?

9 Aspect-Oriented Decomposition Approaches Subject-oriented Programming –A subject is a partial or complete object model. –Composition rules Correspondence rules Combination rules

10 Aspect-Oriented Decomposition Approaches Composition Filters –Message filters Input (for incoming messages) Output (for outgoing messages)

11 Aspect-Oriented Decomposition Approaches Demeter/Adaptive Programming –Originally: Better separation between behavior and structure. –Then: better separation between synchronization and the behavior –Then: better separation between data transfer concern and the behavior


Download ppt "Advanced Software Development Karl Lieberherr CSG 260 Fall Semester 2003 https://lists.ccs.neu.edu/bin/listinfo/"

Similar presentations


Ads by Google