Computer Science 203:

Software Engineering

Gregory M. Kapfhammer


Triangles 1 flickr photo by vincentag shared under a Creative Commons (BY-NC-ND) license

Color Scheme

Key Concept

Corresponding Diagram

In-Class Discussion

In-Class Activity

Details in the Textbook

Exercises in Programming Style

Chapters 16 through 19

Remember: program and review

Introspective and Reflective Programming

Introspective

Reflective

Program can "discover" itself

Program can "modify" itself

Aspect-oriented programming

Reasons for aspect-oriented?

Aspect-Oriented

Decompose problem into functions

Identify cross-cutting concerns

Weave aspects into program join-points

What are the benefits of this style?

What are the drawbacks of this style?

Aspect-Oriented

Decompose problem into functions

Identify cross-cutting concerns

Weave aspects into program join-points

Plugins for external enhancements

Plugins

Decompose problem into functions with defined hooks

Encapsulation of functions into pre-compiled packages

Dynamically load packages without implementation knowledge

Define the chosen packages according to configuration

What are the benefits of this style?

What are the drawbacks of this style?

Application to the software project