CpSc 372

Assignment 6

Build/Use/Buy Components

 

During the design process, decisions are made about which components in the architecture to build and which to obtain from other sources. The other sources include free resources such as the JDK from Sun or source code that has been contributed to a "community effort" such as the sourceforge.net project. Other sources also include the commercial component marketplace.

We are currently using Aspect-oriented programming for the Computational component in the architecture for the Program Representation Tool. We need to make a decision about the graph representation and presentation portions of the tool. The table below contains a partial list of criteria that would be used. The final column would contain the weights that rank the criteria for a specific decision. The total score for a choice is found by summing up the products of a weight for a criteria and the evaluation of that criteria.

 

Choices

Build needed code

Use free code available

Buy available product

Criteria weight

Criteria

 

Availability/schedule

       

Quality of code

       

Performance

       

Credibility of vendor

       

       
         

Total Score

       

 

 

Steps:

  1. Identify criteria to complete the table. Assign weights to the criteria to reflect their relative importance to the success of the component in the product.
  2. Download the openJGraph code(this is a zip file; if you can't ftp then go to my top level directory on a Unix box and copy over openjgraph-0.8.1.zip) as the free code to be evaluated. Consider this code in two pieces. The subpackage graph.visual could provide the visual portion of the architecture. The remainder of the code provides the graph representation portion of the architecture.
  3. Use the reverse engineering feature of Together to investigate the quality of the implementation. Consider a few of the most frequent operations that will be performed (at least three operations for each of the two architectural components). Investigate how those operations will be performed in this implementation. (Use the techniques we cover in class.)
  4. Locate a commercial product that has graph functionality and one that has graphical functionality.
  5. Determine a way to evaluate the quality of the code. (Use techniques discussed in class.)
  6. Write a narrative that summarizes the reverse engineering information and explains the evaluation of the local building choices, supports the other data in the table, and adds any additional information that might affect a decision. Conclude the narrative with a recommendation.

This is a two person team assignment. Hard copy is due by 4 pm Wednesday, Nov 7, 2001 in the department office.

Grading will be based on:

  1. Completeness of the analysis
  2. Correctness of the reasoning
  3. Any value added beyond the basic assignment