36
(c) 2010 University of California, Irvine – André van der Hoek 1 February 21, 2010 – 18:05:18 Informatics 122 Software Design II Lecture 9 Nick Lopez Duplication of course material for any commercial purpose without the explicit written permission of the professor is prohibited.

(c) 2010 University of California, Irvine – André van der Hoek1February 21, 2010 – 18:05:18 Informatics 122 Software Design II Lecture 9 Nick Lopez Duplication

  • View
    213

  • Download
    0

Embed Size (px)

Citation preview

(c) 2010 University of California, Irvine – André van der Hoek 1February 21, 2010 – 18:05:18

Informatics 122Software Design II

Lecture 9

Nick Lopez

Duplication of course material for any commercial purpose without the explicit written permission of the professor is prohibited.

(c) 2010 University of California, Irvine – André van der Hoek 2February 21, 2010 – 18:05:18

Today’s Lecture

Component reuse Assignment 5

(c) 2010 University of California, Irvine – André van der Hoek 3February 21, 2010 – 18:05:18

A Critical Design Tradeoff

build(and thus design)

buy or get for free(and thus fit into a design)

(c) 2010 University of California, Irvine – André van der Hoek 4February 21, 2010 – 18:05:18

A Critical Design Tradeoff: Benefits

build(and thus design)

buy or get for free(and thus fit into a design)

full controlfull understandingflexibilitycompetitive advantage

can be instantaneousexternal support

qualitystandardization

(c) 2010 University of California, Irvine – André van der Hoek 5February 21, 2010 – 18:05:18

A Critical Design Tradeoff: Drawbacks

build(and thus design)

buy or get for free(and thus fit into a design)

timecostmaintenancestandards

Learning/licensinglack of customizability

obsolescenceurgent bugs

evaluation cost

(c) 2010 University of California, Irvine – André van der Hoek 6February 21, 2010 – 18:05:18

A Critical Design Tradeoff

build(and thus design)

buy or get for free(and thus fit into a design)

timecostmaintenancestandards

licensinglack of customizability

obsolescenceurgent bugs

evaluation cost

full controlfull understandingflexibilitycompetitive advantage

can be instantaneousexternal support

quality

(c) 2010 University of California, Irvine – André van der Hoek 7February 21, 2010 – 18:05:18

Our Focus Today

build(and thus design)

buy or get for free(and thus fit into a design)

timecostmaintenancestandards

licensinglack of customizability

obsolescenceurgent bugs

evaluation cost

full controlfull understandingflexibilitycompetitive advantage

can be instantaneousexternal support

quality

(c) 2010 University of California, Irvine – André van der Hoek 8February 21, 2010 – 18:05:18

A New Kind of Design Decision

Less fine control

More learning and using and applying

Similar to recovery

No one builds everything from scratch! The question is not if we will reuse, but what we will reuse

(c) 2010 University of California, Irvine – André van der Hoek 9February 21, 2010 – 18:05:18

Architectural Mismatch

Architectural mismatch stems from mismatched assumptions a reusable component makes about the system structure of which it is to be part of

Components– functionality– interfaces– behavior– control model

Connectors– protocols– data model

System topology Construction

– dependencies– initialization

Difficult to predict a-priori

(c) 2010 University of California, Irvine – André van der Hoek 10February 21, 2010 – 18:05:18

Architectural Mismatch

Architectural mismatch stems from mismatched assumptions a reusable component makes about the system structure of which it is to be part of

Components– functionality– interfaces– behavior– control model

Connectors– protocols– data model

System topology Construction

– dependencies– initialization

How much adaptation is too much adaptation?

(c) 2010 University of California, Irvine – André van der Hoek 11February 21, 2010 – 18:05:18

Component Reuse Process

identifypreliminaryarchitecture

identifypotentialplaces for

reuse

establishselection

criteria (perplace)

search forapplicable

components

evaluatecomponents

selectcomponent

updatearchitecture

(c) 2010 University of California, Irvine – André van der Hoek 12February 21, 2010 – 18:05:18

Identify Preliminary Architecture

Largely as if there was no reuse

Familiarity with certain reusable components /frameworks may influence the architectural choices being made

(c) 2010 University of California, Irvine – André van der Hoek 13February 21, 2010 – 18:05:18

Identify Potential Places for Reuse

There are components / open source code for just about anything– graph layout– database access– regular expression handling– numerical computing– protein visualization– speech recognition– e-mail handling– index and search– maps– geocoding

Judiciously look at your design in terms of where reusable components may fit in

(c) 2010 University of California, Irvine – André van der Hoek 14February 21, 2010 – 18:05:18

Establish Selection Criteria (Per Place)

What is the granularity of what we need? Code snippets / classes / packages / APIs / frameworks A full framework provides many things but also restricts

How is the component to fit with the rest of the architecture? Some adaptation can be accommodated

Investment– cost– future cost - technical debt!

Reputation– component provider– component itself

(c) 2010 University of California, Irvine – André van der Hoek 15February 21, 2010 – 18:05:18

Search for Applicable Components

Google is a wonderful thing– www.google.com– code.google.com

Component repositories– rich in available components

many junk some decent occasional gems

Research and professional development literature

Too many is no good Too few is no good either

– although one perfect component would solve the problem

(c) 2010 University of California, Irvine – André van der Hoek 16February 21, 2010 – 18:05:18

sourceforge.net

(c) 2010 University of California, Irvine – André van der Hoek 17February 21, 2010 – 18:05:19

apache.org

(c) 2010 University of California, Irvine – André van der Hoek 18February 21, 2010 – 18:05:19

Evaluate Components

Apply selection criteria to each of the components found– beware of the platform, deployment needs, licensing terms– matrix of criteria versus components– recommendations from peers are relevant!

Additional approaches– trial / evaluation licenses– reading component code– examine sample programs using the component (always run

the hello world before making a decision!)– writing code using the component

Examine the component’s documentation Analyze architectural impact of the component

Perhaps even prototype the integration of the component

(c) 2010 University of California, Irvine – André van der Hoek 19February 21, 2010 – 18:05:19

Select Component

Choose the optimum component– understand tradeoffs– be prepared to not choose a component and restart the

process

(c) 2010 University of California, Irvine – André van der Hoek 20February 21, 2010 – 18:05:19

Update Architecture

Design any adapters necessary to fit the component• Many types of adaptation may be required:

invocation, data, processing, cross dependencies…

Redesign other components as needed Restructure architecture as needed

Consider developers– How will they understand the implementation design of the

external components?– special role for documentation

(c) 2010 University of California, Irvine – André van der Hoek 21February 21, 2010 – 18:05:19

A Quick Sample Among the Graduate Students

JGraph JEE JMS JMX Xalan Xerces Lucene Jung Kaffe Bcel Equip JLoox Schematron GraphViz Jython Scriptalicious …

Hibernate JSF SOAP Xacml SWT JOAL Jetty Batik JmDNS Darwin Streaming Server Spook Mplayer MySQL live.com RTP/RTSP gaim im client …

(c) 2010 University of California, Irvine – André van der Hoek 22February 21, 2010 – 18:05:19

Assignment 5

The CodeOrb is a new visualization plug-in that we want to implement to extend the Eclipse platform to provide hints about code volatility

Code volatility refers to indicators for different metrics related to the code that can show the developer a level of warning associated to each line of code How buggy has the code been in the past? How often has it changed? How good is the test coverage? How many developers have changed it?

There are many components and frameworks out there that can help us figure out simple

(c) 2010 University of California, Irvine – André van der Hoek 23February 21, 2010 – 18:05:19

Assignment 5

The CodeOrb is a new visualization plug-in that we want to implement to extend the Eclipse platform to provide hints about code volatility

Code volatility refers to indicators for different metrics related to the code that can show the developer a level of warning associated to each line of code How buggy has the code been in the past? How often has it changed? How good is the test coverage? How many developers have changed it?

There are many components and frameworks out there that can help us figure out simple

What you have been given

• A prototype implementation of the CodeOrb

• A research paper explaining the philosophy of the CodeOrb• How it supports coding• Some sample warning indicators• pointers to some possible components that can be

integrated

• A high level conceptual architecture

© 2007 University of California, Irvine – André van der HoekFebruary 21, 2010 – 18:05:18

Code Orb - examples

Indicator Warning # of bugs implicatedRelative code churn

Relative ownership

Relative test coverage

0 many

low high

high low

high low

The CodeOrb

© 2007 University of California, Irvine – André van der HoekFebruary 21, 2010 – 18:05:18

CodeOrb: prototype

• A prototype is available which shows the basic functionality

• We do not expect to reuse much of what is there

© 2007 University of California, Irvine – André van der HoekFebruary 21, 2010 – 18:05:18

CodeOrb: desired architecture

© 2007 University of California, Irvine – André van der HoekFebruary 21, 2010 – 18:05:18

Outputs

Info Sources

Issue Trackers

Versioning Systems

Other support systems

Static Analysis

Dynamic Analysis

Awareness info

Transforming outputs

Updating info

Eclipse IDE

Code Orb Core

Storing info

CodeEditors

Views

Distributing info

(c) 2010 University of California, Irvine – André van der Hoek 29February 21, 2010 – 18:05:19

Assignment 5

Find components that can support the development of the CodeOrb, set up selection criteria, make a choice of the component that you believe is best, and detail how you would go about integrating the component

Specifically, research components for the following parts of the architecture– Data Collection – we want to leverage existing components

that find LOC level metrics / quality metrics / awareness info, etc…

– Data Transformation – we want to leverage existing standards/technologies and components to transform outputs from info sources into an appropriate format

– Volatility Visualization – We want to explore types of views we can integrate with in Eclipse and frameworks for creating graphs and visualizations

– Info Distribution/Update– we would like to use a data distribution mechanism with an actual real protocol and middleware that is lightweight, fast, and can handle long distance

(c) 2010 University of California, Irvine – André van der Hoek 30February 21, 2010 – 18:05:19

Assignment 5

Additional constraint– we have $25,000 in funds to spend on this project, but we

want to save money for user studies and other assorted expenses, so cost should be (somewhat) minimized

– if truly warranted, management can be requested to fund one “big ticket” component, up to possibly $75,000

(c) 2010 University of California, Irvine – André van der Hoek 31February 21, 2010 – 18:05:19

Assignment 5

Create a 10 minute presentation that describes for the first two categories and one of the other two categories (specific assignments of which category by which team on slide 26)– your search process– candidate components you considered

strengths weaknesses

– your selection criteria– the component you deem best (and why)

Create a document that describes, at the design and code level, the impact of incorporating the chosen components– from this document, someone should be able to continue the

development to integrate “effortlessly”

(c) 2010 University of California, Irvine – André van der Hoek 32February 21, 2010 – 18:05:19

Assignment 5

Presentation in class Monday, February 28th

Document due at the beginning of class Monday, February 28th

Graded on breadth and depth of component evaluation, as well as the thoroughness and insightfulness of the document

Each person also needs to submit a team evaluation (new forms available on class webpage)

(c) 2010 University of California, Irvine – André van der Hoek 33February 21, 2010 – 18:05:19

Team AssignmentsTeam 1

(Collection+Transformation + Visualization)

Andrew Ryan-waldo Danielle Song Kevin Sar Michael Cupino Lucas Kam

Team 2 (Collection+Transformation + Distribution/Update)

Evan White Danielle Yu Melody Budiono Christopher Lang Stephan Chilingaryan

Team 3 (Collection+Transformation + Visualization)

Ryan Cadavona Duncan Tsai Ramakrishnan Murthy Vatsal Shah Norik Davtian

Team 4 (Collection +Transformation + Distribution/Update)

Edward Gim Mariann Conner Kevin Huynh Jarrett Baugh Martina Mickos

Team 5 (Collection+Transformation + Visualization)

Mark Capil Masis Nguyen Aaron Donk Jordan Speer Jonathan Fuentes Candace Chen

CodeOrb prototype

© 2007 University of California, Irvine – André van der HoekFebruary 21, 2010 – 18:05:18

class codeOrb

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

«interface»Indicator

+ BUGINESS: Integer = new Integer(2)+ BUGINESS_LBL: String = "Bugginess"+ CHURN: Integer = new Integer(0)+ CHURN_LBL: String = "Code Churn"+ COVERAGE: Integer = new Integer(3)+ COVERAGE_LBL: String = "Test Coverage"+ OWNERSHIP: Integer = new Integer(1)+ OWNERSHIP_LBL: String = "Ownership"

+ getColor() : Color+ getIndicator() : double+ getIndicatorData() : List<IndicatorData>+ getLabel() : String+ getType() : Integer+ printIndicatorData() : String+ setIndicator(double) : void+ setIndicatorData(List<IndicatorData>) : void+ setType(Integer) : void

RingPlot

CodeOrbPlot

+ angles: Map<Integer, Double>+ overallWarning: double = 0- pieArea: Rectangle2D = null+ sections: Map<Integer, Shape>- state: PiePlotState

+ CodeOrbPlot(PieDataset, double)+ containedInPie(int, int) : boolean- createArcs() : void# drawItem(Graphics2D, int, Rectangle2D, PiePlotState, int) : void+ getPieArea() : Rectangle2D+ getSectionAreaForClick(int, int) : int

AbstractContributedRulerColumn

LineWarningColumn

IViewportListenerITextListener

LineWarningColumn::InternalListener

- fCachedRedrawState: boolean = true

+ textChanged(TextEvent) : void+ viewportChanged(int) : void

BasicIndicator

- indicator: double- indicatorData: List<IndicatorData> = new ArrayList<I...- type: Integer

BasicIndicatorResolver

- activeClass: String = null- activeClassIndicator: ClassIndicator- indicators: Map<String, ClassIndicator>- maxLOCChunkSize: int = 1- singleton: BasicIndicatorResolver = null- testClassIndicator: ClassIndicator = null

- BasicIndicatorResolver()+ buildRandomIndicators(String, int) : void+ getClassIndicator(String) : ClassIndicator+ getIndicators(String, int) : LOCIndicator+ getIndicatorsForActiveClass(int) : LOCIndicator+ getInstance() : BasicIndicatorResolver+ getOverallWarningColorForActiveClass(int) : RGB+ setActiveClass(String) : void- startUpTestIndicator() : void

AbstractLOCIndicator

# block: Block# indicators: Map<Integer, Indicator>

+ contains(int) : boolean+ getBlock() : Block+ getIndicator(Integer) : Indicator+ getIndicators() : Map<Integer,Indicator>+ getOverallWarning() : double+ setBlock(Block) : void+ setIndicator(Indicator) : void

ViewPartIPartListener

IPropertyListenerISelectionListener

ISelectionChangedListener

CodeOrbView

+ ID: String = "codeorb.views.... {readOnly}~ res: IndicatorResolver

+ CodeOrbView()- contributeToActionBars() : void- createChart(PieDataset) : JFreeChart+ createCodeOrbChart(String, PieDataset, boolean, boolean, double) : JFreeChart- createDataset() : PieDataset+ createPartControl(Composite) : void- fi l lContextMenu(IMenuManager) : void- fi l lLocalPullDown(IMenuManager) : void- fi l lLocalToolBar(IToolBarManager) : void- getCursorListener() : ICursorListener- handleCursorPositionChanged() : void- hookContextMenu() : void- hookDoubleClickAction() : void- makeActions() : void- modifyChart(PieDataset, LOCIndicator) : JFreeChart- modifyDataset(LOCIndicator) : PieDataset+ partActivated(IWorkbenchPart) : void+ partBroughtToTop(IWorkbenchPart) : void+ partClosed(IWorkbenchPart) : void+ partDeactivated(IWorkbenchPart) : void+ partOpened(IWorkbenchPart) : void+ propertyChanged(Object, int) : void+ selectionChanged(IWorkbenchPart, ISelection) : void+ selectionChanged(SelectionChangedEvent) : void+ setFocus() : void- showMessage(String) : void

LabelProvider

CodeOrbView::ViewLabelProv ider

~ indicators: Indicator ([])

+ getImage(Object) : Image+ getText(Object, int) : String

IStructuredContentProvider

CodeOrbView::ViewContentProv ider

~ chart: JFreeChart~ chartComposite: ChartComposite~ indicators: LOCIndicator~ parent: Composite

+ dispose() : void+ getElements(Object) : Object[]+ inputChanged(Viewer, Object, Object) : void+ ViewContentProvider(LOCIndicator, Composite, JFreeChart, ChartComposite)

MouseListenerKeyListener

«interface»CodeOrbView::ICursorListener

«interface»IndicatorResolver

+ getClassIndicator(String) : ClassIndicator+ getIndicators(String, int) : LOCIndicator+ getIndicatorsForActiveClass(int) : LOCIndicator+ getOverallWarningColorForActiveClass(int) : RGB+ setActiveClass(String) : void

«interface»LOCIndicator

+ contains(int) : boolean+ getBlock() : Block+ getIndicator(Integer) : Indicator+ getIndicators() : Map<Integer, Indicator>+ getOverallWarning() : double+ setBlock(Block) : void+ setIndicator(Indicator) : void

BasicBlock

- end: int- start: int

+ BasicBlock(int, int)+ contains(int) : boolean+ getEnd() : int+ getStart() : int

ChartComposite

CodeOrbChartComposite

- indicator: LOCIndicator- parent: Composite~ plot: CodeOrbPlot- popup: ToolTip

+ CodeOrbChartComposite(Composite, JFreeChart, LOCIndicator, CodeOrbPlot)# createPopupMenu(Indicator, Text) : Menu# displayPopupLabel(int, int, MouseEvent) : void+ mouseUp(MouseEvent) : void+ setCodeOrbPlot(CodeOrbPlot) : void+ updateIndicators(LOCIndicator) : void# updatePopup(Indicator, ToolTip) : ToolTip

FileLOCIndicator

- locInfo: LOCInfo# rawIndicators: Map<Integer, Indicator>

LOCInfo

- data: List<LOCDataPiece>- LOC: int- rawBuginess: double- rawChurn: double- rawCoverage: double- rawOwnership: double

IndicatorData

+ TYPE_AUTHOR: String = "Author:"+ TYPE_BUG: String = "Bug Info:"+ TYPE_CHURN: String = "Version/Commit...

ChangeInfoFileReader

+ readTestIndicators() : ClassIndicator

LOCDataPiece

+ ADD: int = 0+ BLOCKER: int = 6+ CRITICAL: int = 5+ DELETE: int = 2+ ENHANCEMENT: int = 0+ MAJOR: int = 4+ MINOR: int = 2+ MODIFY: int = 1+ NORMAL: int = 3+ TRIVIAL: int = 1

«interface»Block

+ contains(int) : boolean

ClassIndicator

- className: String- indicators: List<LOCIndicator>

+ addIndicator(LOCIndicator) : void+ ClassIndicator(String)+ getClassName() : String+ getIndicator(int) : LOCIndicator+ getIndicators() : List<LOCIndicator>+ setClassName(String) : void+ setIndicators(List<LOCIndicator>) : void

RandomLOCIndicator

+ RandomLOCIndicator(int, int)

NoWarningLOCIndicator

+ contains(int) : boolean+ getIndicator(Integer) : Indicator+ getIndicators() : Map<Integer,Indicator>+ getOverallWarning() : double

AbstractUIPlugin

Activator

- plugin: Activator+ PLUGIN_ID: String = "CodeOrb" {readOnly}

+ Activator()+ getDefault() : Activator+ getImageDescriptor(String) : ImageDescriptor+ start(BundleContext) : void+ stop(BundleContext) : void

~indicators

-activeClassIndicator-testClassIndicator

#block

-codeOrbPlot

-fCursorListener

-fInternalListener

~indicators

-indicator

~plot

-locInfo

~res

CodeOrb prototype

© 2007 University of California, Irvine – André van der HoekFebruary 21, 2010 – 18:05:18

class codeOrb

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

«interface»Indicator

+ BUGINESS: Integer = new Integer(2)+ BUGINESS_LBL: String = "Bugginess"+ CHURN: Integer = new Integer(0)+ CHURN_LBL: String = "Code Churn"+ COVERAGE: Integer = new Integer(3)+ COVERAGE_LBL: String = "Test Coverage"+ OWNERSHIP: Integer = new Integer(1)+ OWNERSHIP_LBL: String = "Ownership"

+ getColor() : Color+ getIndicator() : double+ getIndicatorData() : List<IndicatorData>+ getLabel() : String+ getType() : Integer+ printIndicatorData() : String+ setIndicator(double) : void+ setIndicatorData(List<IndicatorData>) : void+ setType(Integer) : void

RingPlot

CodeOrbPlot

+ angles: Map<Integer, Double>+ overallWarning: double = 0- pieArea: Rectangle2D = null+ sections: Map<Integer, Shape>- state: PiePlotState

+ CodeOrbPlot(PieDataset, double)+ containedInPie(int, int) : boolean- createArcs() : void# drawItem(Graphics2D, int, Rectangle2D, PiePlotState, int) : void+ getPieArea() : Rectangle2D+ getSectionAreaForClick(int, int) : int

AbstractContributedRulerColumn

LineWarningColumn

IViewportListenerITextListener

LineWarningColumn::InternalListener

- fCachedRedrawState: boolean = true

+ textChanged(TextEvent) : void+ viewportChanged(int) : void

BasicIndicator

- indicator: double- indicatorData: List<IndicatorData> = new ArrayList<I...- type: Integer

BasicIndicatorResolv er

- activeClass: String = null- activeClassIndicator: ClassIndicator- indicators: Map<String, ClassIndicator>- maxLOCChunkSize: int = 1- singleton: BasicIndicatorResolver = null- testClassIndicator: ClassIndicator = null

- BasicIndicatorResolver()+ buildRandomIndicators(String, int) : void+ getClassIndicator(String) : ClassIndicator+ getIndicators(String, int) : LOCIndicator+ getIndicatorsForActiveClass(int) : LOCIndicator+ getInstance() : BasicIndicatorResolver+ getOverallWarningColorForActiveClass(int) : RGB+ setActiveClass(String) : void- startUpTestIndicator() : void

AbstractLOCIndicator

# block: Block# indicators: Map<Integer, Indicator>

+ contains(int) : boolean+ getBlock() : Block+ getIndicator(Integer) : Indicator+ getIndicators() : Map<Integer,Indicator>+ getOverallWarning() : double+ setBlock(Block) : void+ setIndicator(Indicator) : void

ViewPartIPartListener

IPropertyListenerISelectionListener

ISelectionChangedListener

CodeOrbView

+ ID: String = "codeorb.views.... {readOnly}~ res: IndicatorResolver

+ CodeOrbView()- contributeToActionBars() : void- createChart(PieDataset) : JFreeChart+ createCodeOrbChart(String, PieDataset, boolean, boolean, double) : JFreeChart- createDataset() : PieDataset+ createPartControl(Composite) : void- fi l lContextMenu(IMenuManager) : void- fi l lLocalPullDown(IMenuManager) : void- fi l lLocalToolBar(IToolBarManager) : void- getCursorListener() : ICursorListener- handleCursorPositionChanged() : void- hookContextMenu() : void- hookDoubleClickAction() : void- makeActions() : void- modifyChart(PieDataset, LOCIndicator) : JFreeChart- modifyDataset(LOCIndicator) : PieDataset+ partActivated(IWorkbenchPart) : void+ partBroughtToTop(IWorkbenchPart) : void+ partClosed(IWorkbenchPart) : void+ partDeactivated(IWorkbenchPart) : void+ partOpened(IWorkbenchPart) : void+ propertyChanged(Object, int) : void+ selectionChanged(IWorkbenchPart, ISelection) : void+ selectionChanged(SelectionChangedEvent) : void+ setFocus() : void- showMessage(String) : void

LabelProvider

CodeOrbView::ViewLabelProv ider

~ indicators: Indicator ([])

+ getImage(Object) : Image+ getText(Object, int) : String

IStructuredContentProvider

CodeOrbView::ViewContentProv ider

~ chart: JFreeChart~ chartComposite: ChartComposite~ indicators: LOCIndicator~ parent: Composite

+ dispose() : void+ getElements(Object) : Object[]+ inputChanged(Viewer, Object, Object) : void+ ViewContentProvider(LOCIndicator, Composite, JFreeChart, ChartComposite)

MouseListenerKeyListener

«interface»CodeOrbView::ICursorListener

«interface»IndicatorResolver

+ getClassIndicator(String) : ClassIndicator+ getIndicators(String, int) : LOCIndicator+ getIndicatorsForActiveClass(int) : LOCIndicator+ getOverallWarningColorForActiveClass(int) : RGB+ setActiveClass(String) : void

«interface»LOCIndicator

+ contains(int) : boolean+ getBlock() : Block+ getIndicator(Integer) : Indicator+ getIndicators() : Map<Integer, Indicator>+ getOverallWarning() : double+ setBlock(Block) : void+ setIndicator(Indicator) : void

BasicBlock

- end: int- start: int

+ BasicBlock(int, int)+ contains(int) : boolean+ getEnd() : int+ getStart() : int

ChartComposite

CodeOrbChartComposite

- indicator: LOCIndicator- parent: Composite~ plot: CodeOrbPlot- popup: ToolTip

+ CodeOrbChartComposite(Composite, JFreeChart, LOCIndicator, CodeOrbPlot)# createPopupMenu(Indicator, Text) : Menu# displayPopupLabel(int, int, MouseEvent) : void+ mouseUp(MouseEvent) : void+ setCodeOrbPlot(CodeOrbPlot) : void+ updateIndicators(LOCIndicator) : void# updatePopup(Indicator, ToolTip) : ToolTip

FileLOCIndicator

- locInfo: LOCInfo# rawIndicators: Map<Integer, Indicator>

LOCInfo

- data: List<LOCDataPiece>- LOC: int- rawBuginess: double- rawChurn: double- rawCoverage: double- rawOwnership: double

IndicatorData

+ TYPE_AUTHOR: String = "Author:"+ TYPE_BUG: String = "Bug Info:"+ TYPE_CHURN: String = "Version/Commit...

ChangeInfoFileReader

+ readTestIndicators() : ClassIndicator

LOCDataPiece

+ ADD: int = 0+ BLOCKER: int = 6+ CRITICAL: int = 5+ DELETE: int = 2+ ENHANCEMENT: int = 0+ MAJOR: int = 4+ MINOR: int = 2+ MODIFY: int = 1+ NORMAL: int = 3+ TRIVIAL: int = 1

«interface»Block

+ contains(int) : boolean

ClassIndicator

- className: String- indicators: List<LOCIndicator>

+ addIndicator(LOCIndicator) : void+ ClassIndicator(String)+ getClassName() : String+ getIndicator(int) : LOCIndicator+ getIndicators() : List<LOCIndicator>+ setClassName(String) : void+ setIndicators(List<LOCIndicator>) : void

RandomLOCIndicator

+ RandomLOCIndicator(int, int)

NoWarningLOCIndicator

+ contains(int) : boolean+ getIndicator(Integer) : Indicator+ getIndicators() : Map<Integer,Indicator>+ getOverallWarning() : double

AbstractUIPlugin

Activator

- plugin: Activator+ PLUGIN_ID: String = "CodeOrb" {readOnly}

+ Activator()+ getDefault() : Activator+ getImageDescriptor(String) : ImageDescriptor+ start(BundleContext) : void+ stop(BundleContext) : void

~indicators

-activeClassIndicator-testClassIndicator

#block

-codeOrbPlot

-fCursorListener

-fInternalListener

~indicators

-indicator

~plot

-locInfo

~res

© 2007 University of California, Irvine – André van der HoekFebruary 21, 2010 – 18:05:18

class codeOrb

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version

«interface»Indicator

+ BUGINESS: Integer = new Integer(2)+ BUGINESS_LBL: String = "Bugginess"+ CHURN: Integer = new Integer(0)+ CHURN_LBL: String = "Code Churn"+ COVERAGE: Integer = new Integer(3)+ COVERAGE_LBL: String = "Test Coverage"+ OWNERSHIP: Integer = new Integer(1)+ OWNERSHIP_LBL: String = "Ownership"

+ getColor() : Color+ getIndicator() : double+ getIndicatorData() : List<IndicatorData>+ getLabel() : String+ getType() : Integer+ printIndicatorData() : String+ setIndicator(double) : void+ setIndicatorData(List<IndicatorData>) : void+ setType(Integer) : void

RingPlot

CodeOrbPlot

+ angles: Map<Integer, Double>+ overallWarning: double = 0- pieArea: Rectangle2D = null+ sections: Map<Integer, Shape>- state: PiePlotState

+ CodeOrbPlot(PieDataset, double)+ containedInPie(int, int) : boolean- createArcs() : void# drawItem(Graphics2D, int, Rectangle2D, PiePlotState, int) : void+ getPieArea() : Rectangle2D+ getSectionAreaForClick(int, int) : int

AbstractContributedRulerColumn

LineWarningColumn

IViewportListenerITextListener

LineWarningColumn::InternalListener

- fCachedRedrawState: boolean = true

+ textChanged(TextEvent) : void+ viewportChanged(int) : void

BasicIndicator

- indicator: double- indicatorData: List<IndicatorData> = new ArrayList<I...- type: Integer

BasicIndicatorResolv er

- activeClass: String = null- activeClassIndicator: ClassIndicator- indicators: Map<String, ClassIndicator>- maxLOCChunkSize: int = 1- singleton: BasicIndicatorResolver = null- testClassIndicator: ClassIndicator = null

- BasicIndicatorResolver()+ buildRandomIndicators(String, int) : void+ getClassIndicator(String) : ClassIndicator+ getIndicators(String, int) : LOCIndicator+ getIndicatorsForActiveClass(int) : LOCIndicator+ getInstance() : BasicIndicatorResolver+ getOverallWarningColorForActiveClass(int) : RGB+ setActiveClass(String) : void- startUpTestIndicator() : void

AbstractLOCIndicator

# block: Block# indicators: Map<Integer, Indicator>

+ contains(int) : boolean+ getBlock() : Block+ getIndicator(Integer) : Indicator+ getIndicators() : Map<Integer,Indicator>+ getOverallWarning() : double+ setBlock(Block) : void+ setIndicator(Indicator) : void

ViewPartIPartListener

IPropertyListenerISelectionListener

ISelectionChangedListener

CodeOrbView

+ ID: String = "codeorb.views.... {readOnly}~ res: IndicatorResolver

+ CodeOrbView()- contributeToActionBars() : void- createChart(PieDataset) : JFreeChart+ createCodeOrbChart(String, PieDataset, boolean, boolean, double) : JFreeChart- createDataset() : PieDataset+ createPartControl(Composite) : void- fi l lContextMenu(IMenuManager) : void- fi l lLocalPullDown(IMenuManager) : void- fi l lLocalToolBar(IToolBarManager) : void- getCursorListener() : ICursorListener- handleCursorPositionChanged() : void- hookContextMenu() : void- hookDoubleClickAction() : void- makeActions() : void- modifyChart(PieDataset, LOCIndicator) : JFreeChart- modifyDataset(LOCIndicator) : PieDataset+ partActivated(IWorkbenchPart) : void+ partBroughtToTop(IWorkbenchPart) : void+ partClosed(IWorkbenchPart) : void+ partDeactivated(IWorkbenchPart) : void+ partOpened(IWorkbenchPart) : void+ propertyChanged(Object, int) : void+ selectionChanged(IWorkbenchPart, ISelection) : void+ selectionChanged(SelectionChangedEvent) : void+ setFocus() : void- showMessage(String) : void

LabelProvider

CodeOrbView::ViewLabelProv ider

~ indicators: Indicator ([])

+ getImage(Object) : Image+ getText(Object, int) : String

IStructuredContentProvider

CodeOrbView::ViewContentProv ider

~ chart: JFreeChart~ chartComposite: ChartComposite~ indicators: LOCIndicator~ parent: Composite

+ dispose() : void+ getElements(Object) : Object[]+ inputChanged(Viewer, Object, Object) : void+ ViewContentProvider(LOCIndicator, Composite, JFreeChart, ChartComposite)

MouseListenerKeyListener

«interface»CodeOrbView::ICursorListener

«interface»IndicatorResolver

+ getClassIndicator(String) : ClassIndicator+ getIndicators(String, int) : LOCIndicator+ getIndicatorsForActiveClass(int) : LOCIndicator+ getOverallWarningColorForActiveClass(int) : RGB+ setActiveClass(String) : void

«interface»LOCIndicator

+ contains(int) : boolean+ getBlock() : Block+ getIndicator(Integer) : Indicator+ getIndicators() : Map<Integer, Indicator>+ getOverallWarning() : double+ setBlock(Block) : void+ setIndicator(Indicator) : void

BasicBlock

- end: int- start: int

+ BasicBlock(int, int)+ contains(int) : boolean+ getEnd() : int+ getStart() : int

ChartComposite

CodeOrbChartComposite

- indicator: LOCIndicator- parent: Composite~ plot: CodeOrbPlot- popup: ToolTip

+ CodeOrbChartComposite(Composite, JFreeChart, LOCIndicator, CodeOrbPlot)# createPopupMenu(Indicator, Text) : Menu# displayPopupLabel(int, int, MouseEvent) : void+ mouseUp(MouseEvent) : void+ setCodeOrbPlot(CodeOrbPlot) : void+ updateIndicators(LOCIndicator) : void# updatePopup(Indicator, ToolTip) : ToolTip

FileLOCIndicator

- locInfo: LOCInfo# rawIndicators: Map<Integer, Indicator>

LOCInfo

- data: List<LOCDataPiece>- LOC: int- rawBuginess: double- rawChurn: double- rawCoverage: double- rawOwnership: double

IndicatorData

+ TYPE_AUTHOR: String = "Author:"+ TYPE_BUG: String = "Bug Info:"+ TYPE_CHURN: String = "Version/Commit...

ChangeInfoFileReader

+ readTestIndicators() : ClassIndicator

LOCDataPiece

+ ADD: int = 0+ BLOCKER: int = 6+ CRITICAL: int = 5+ DELETE: int = 2+ ENHANCEMENT: int = 0+ MAJOR: int = 4+ MINOR: int = 2+ MODIFY: int = 1+ NORMAL: int = 3+ TRIVIAL: int = 1

«interface»Block

+ contains(int) : boolean

ClassIndicator

- className: String- indicators: List<LOCIndicator>

+ addIndicator(LOCIndicator) : void+ ClassIndicator(String)+ getClassName() : String+ getIndicator(int) : LOCIndicator+ getIndicators() : List<LOCIndicator>+ setClassName(String) : void+ setIndicators(List<LOCIndicator>) : void

RandomLOCIndicator

+ RandomLOCIndicator(int, int)

NoWarningLOCIndicator

+ contains(int) : boolean+ getIndicator(Integer) : Indicator+ getIndicators() : Map<Integer,Indicator>+ getOverallWarning() : double

AbstractUIPlugin

Activator

- plugin: Activator+ PLUGIN_ID: String = "CodeOrb" {readOnly}

+ Activator()+ getDefault() : Activator+ getImageDescriptor(String) : ImageDescriptor+ start(BundleContext) : void+ stop(BundleContext) : void

~indicators

-activeClassIndicator-testClassIndicator

#block

-codeOrbPlot

-fCursorListener

-fInternalListener

~indicators

-indicator

~plot

-locInfo

~res