<?xml version="1.0" encoding="utf-8" ?> 
<?xml-stylesheet type="text/xsl" href="courses.xsl" ?>
<courses name="Fawcett">

  <btitle>Aspect Oriented Programming</btitle>
  <theme src="HomeTheme.css" />

  <visible>
  <title>Masters Thesis<br/>Aspect Oriented Programming</title>
  <center><section title="Based on .Net Interception"/></center>
  <revised>04 September 2005</revised>

  <hnav/>
  <cnav/>
  <hilight>
    <ifile title="Project Topics">Projects.xml</ifile>&#32;
    <ifile title="Master's Projects">MastersProjects.xml</ifile>&#32;
    <ifile title="Master's Theses">MastersTheses.xml</ifile>&#32;
    <ifile title="Research">research.xml</ifile>&#32;
    <ifile title="References">references.xml</ifile>&#32;
    <ifile title="Cloner">Cloner.xml</ifile>&#32;
    <ifile title="Software Foundry">Foundry.xml</ifile>&#32;
  </hilight>

  <html><img src="students/RamaswamysThesis.jpg" width="100%"/></html>
  <caption>Advisor Fawcett and Candidate Krishnan-Chittur</caption>

<!--
  <quote source="Frederick Brooks, Mythical Man-Month">
    Good judgement comes from experience, and experience comes from bad judgement.
  </quote>
-->

  <html><a name="contents"/></html>
  <section title="Defense">
    Ramaswamy successfully defended this work on April 29, 2005, before his committee: Drs. Kamal Jabbour, Can Isik (chair), 
    Daniel Pease, and Jim Fawcett (advisor), all from the department of Electrical Engineering and Computer Science. 
<!--
    <p/>
    After the defense concluded I received very favorable feedback from the committee members regarding Ramaswamy's work.  His 
    presentation was clear, the delivery enthusiastic, and there was evidence of contributions in some of his novel
    applications of AOP, particularly for debugging support. 
-->
  </section>
  <section title="Thesis Documents and Code">
    <file title="Defense Presentation">../Research/AspectOrientedProgramming/AOPDefensePresentation.ppt</file>
    <file title="Thesis Document">../Research/AspectOrientedProgramming/AOP.pdf</file>
    <file title="Aspect Oriented Code">../Research/AspectOrientedProgramming/AOPcode.zip</file>
  </section>

  <section title="Summary">
    <olist>
      <litem>
        Aspect Oriented Programming (AOP) attempts to separate application code from the services on which it depends.  Usually the services
        provide system level support for transactions, security, threading, messaging, and others that are needed by the application
        but not central to its mission.
      </litem>
      <litem>
        Traditional programming provides these services through libraries and modules developed as part of the application's code.  AOP
        provides these services using intercepted calls to specific functions.  The interception processing provides the services in a way
        that is nearly transparent to the using application, leading to simpler, cleaner code.  Often interception is defined using code
        attributes in a declarative style, so instead of calls to library functions to support thread synchronization, for example, we
        simply decorate the method with a synchronizing attribute. 
      </litem>
      <litem>
        In this work, Ramaswamy investigated AOP, using .Net interception, to provide method synchronization, debugging, code coverage,
        temporal profiling, and message prioritization.
        He has shown that these services, some of which would be very hard to provide without interception, can be implemented with the .Net interception
        mechanism, and that the application part of the code is significantly simpler and easier to understand.
      </litem>
    </olist>
    <html><img src="students/RamaswamysCommittee.jpg" width="100%"/></html>
    <caption>Defense Committee with Candidate</caption>

  </section>

  </visible>
</courses>
