110 likes | 292 Views
Advanced Software Development. Karl Lieberherr CSG 260 Fall Semester 2003 https://lists.ccs.neu.edu/bin/listinfo/. Information about TPP: CSG 260 Resources. Advanced?. Advanced means to me Thinking in families of software products Good separation of concerns, shyness between concerns
E N D
Advanced Software Development Karl Lieberherr CSG 260 Fall Semester 2003 https://lists.ccs.neu.edu/bin/listinfo/
Information about TPP: CSG 260 Resources 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)
From: GP 5.5 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)
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)
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).
Advantages • Of modularly composable over monolithic DSLs • Reusability • Scalability • Fast feature turnover • Have to survive based on their merits
Generative Domain Model Problem Space Domain-specific Concepts and Features • Configuration Knowledge • Illegal feature combination • Defaults • Construction rules • Optimizations Solution Space
AOP: separating concerns • What are the important concerns we need to separate? • What composition mechanisms? • How to capture the concerns?
Aspect-Oriented Decomposition Approaches • Subject-oriented Programming • A subject is a partial or complete object model. • Composition rules • Correspondence rules • Combination rules
Aspect-Oriented Decomposition Approaches • Composition Filters • Message filters • Input (for incoming messages) • Output (for outgoing messages)
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