1 / 11

Advanced Software Development

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

ena
Download Presentation

Advanced Software Development

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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)

  3. 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)

  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

More Related