<?xml version="1.0" encoding="utf-8" ?> 
<?xml-stylesheet type="text/xsl" href="courses.xsl" ?>
<courses name="Fawcett">

  <btitle>SW Matrix</btitle>
  <theme src="HomeTheme.css" />

  <visible>
  <title>Masters Thesis<br/>The Software Matrix</title>
  <center><section title="An Architecture for Software Salvage"/></center>
  <revised>16 December 2004</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>

  <image src="students/RiddhimanGhoshDefense.jpg" size="300" />
  <caption>Advisor Fawcett and Candidate Ghosh</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">
    Riddhiman successfully defended this work on December 15, 2004, before his committee: Drs. Kamal Jabbour (chair), Roger Chen, 
    Daniel Pease, and Jim Fawcett (advisor), all from the department of Electrical Engineering and Computer Science.  
  </section>
  <section title="Thesis Documents and Code">
    <file title="Defense Presentation">../Research/SoftwareMatrix/SWMDefensePresentation.ppt</file>
    <file title="Thesis Document">../Research/SoftwareMatrix/SWMThesis.pdf</file>
    <file title="Software Matrix Code">../Research/SoftwareMatrix/swmcode.zip</file>
  </section>

  <section title="Summary">
    <olist>
      <litem>
        The Software Matrix is a framework that actively supports and promotes software salvage. Salvage is a reuse mechanism
        that focuses on software blocks that are typically significantly bigger that a single class.
      </litem>
      <litem>
        Traditional salvage operations require a lot of surgery to the salvaged code due to breakage of dependencies on the code
        from which the salvaged block is extracted.  Our approach attempts to circumvent most of this breakage.
      </litem>
      <litem>
        By employing message-passing and mediator structures and by supporting the discovery of needed types, 
        we&apos;ve built a pluggable architecture that can gracefully adapt to salvage operations.
      </litem>
    </olist>
    <images>
      <imageItem src="pictures/cell.gif" size="300" />
      <imageItem src="pictures/matrix.gif" size="300"/><br/><br/><br/><br/>
      <imageItem src="pictures/design.jpg" size="500"/>
    </images>
    <caption>Software Matrix</caption>

  </section>

  </visible>
</courses>
