Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| research:mao [2011/06/17 12:42] – ebodden | research:mao [2012/06/03 12:32] (current) – ebodden | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | name suggestions: | ||
| + | |||
| + | * x modules: actually, what about **X-Modules**? | ||
| + | * aspectual modules: | ||
| + | * aspect(ual) shells | ||
| + | * aspect(ual) capsules | ||
| + | |||
| + | ---- | ||
| + | |||
| + | * [[research: | ||
| + | * [[research: | ||
| + | * [[research: | ||
| + | * [[research: | ||
| + | * [[research: | ||
| + | * [[research: | ||
| + | * [[research: | ||
| + | * [[research: | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== General Design Principles/ | ||
| + | |||
| + | Following Ungar' | ||
| + | |||
| + | * values (what you care about, what you want, what you like) | ||
| + | * teamwork | ||
| + | * reuse | ||
| + | * change | ||
| + | * simplicity | ||
| + | |||
| + | * design principles (general rules for achieving values) | ||
| + | * uniformity/ | ||
| + | * separate development, | ||
| + | * loose coupling (RC) | ||
| + | * modular reasoning (TRC) | ||
| + | * make it hard to shoot yourself in the foot / avoid surprises (S) [loops, double jps] | ||
| + | * support for shared libraries (R) | ||
| + | * coarse-grained quantification (S) | ||
| + | * abstraction (TRCS) | ||
| + | |||
| + | * specific practices (specific things to do) | ||
| + | * modules encompassing classes/ | ||
| + | * modules can both advise and exhibit (us) | ||
| + | * join point types (as, mr, lc, sdsc) | ||
| + | * functional join point types (no structs) (as) | ||
| + | * explicit declaration of exhibited jpts (as) | ||
| + | * join point subtypes (a) | ||
| + | * explicit join points / block jps (a, as) | ||
| + | * " | ||
| + | * compile-time checks for potential loops (as) | ||
| + | * execution levels / or notion of cflow based on use-relation (as) | ||
| + | |||
| + | |||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Examples ====== | ||
| + | |||
| + | * [[research: | ||
| + | * translate good examples from IIIA, closure jp paper, PPPJ explicit jp paper, open modules paper(s), XPI paper | ||
| + | * [[research: | ||
| + | * case study: | ||
| + | * Racer / Profiler | ||
| + | * AJHotDraw | ||
| + | * Berkeley DB | ||
| + | * AspectOptima | ||
| + | * HealthWatcher | ||
| + | * iBatis | ||
| + | * MobileMedia | ||
| + | |||
| + | ====== Pending ====== | ||
| + | |||
| + | * TODO: each class contained in only one module? Java8: different namespaces/ | ||
| + | * Study the Java8 proposal (link?) | ||
| + | * explicit declaration of used modules (sdsc, lc) [removed?!] | ||
| + | * references: XPIs, Open Modules, ECeasarJ/ | ||
| + | |||
| + | ====== Paper outline ====== | ||
| + | modular reasoning / implicit invocation / AOP | ||
| + | * motivation from IIIA | ||
| + | * overview of IIIA and limitations/ | ||
| + | * overview of X-Modules (model, boxes and arrows) | ||
| + | * X-Modules in practice: addressing IIIA issues | ||
| + | * implementation: | ||
| + | * case study | ||
| + | * related work | ||

