imagix 4d presented by: elliott harrington derek larson matt heinzelman cheneng vang
TRANSCRIPT
iMaGix 4DiMaGix 4DPresented by: Elliott Harrington Presented by: Elliott Harrington
Derek Larson Derek Larson Matt Heinzelman Matt Heinzelman
Cheneng VangCheneng Vang
Imagix CorporationImagix Corporation
Headquartered in San Luis Obispo, CAHeadquartered in San Luis Obispo, CA Products for reverse-engineering, quality Products for reverse-engineering, quality
analysis and documentation of softwareanalysis and documentation of software Applied in deep space communication, air Applied in deep space communication, air
traffic control systems, billing and traffic control systems, billing and management info. Systems, computer management info. Systems, computer peripherals, communication devices and peripherals, communication devices and medical instrumentsmedical instruments
Customers include…Customers include…
BoeingBoeing General DynamicsGeneral Dynamics IntelIntel LucentLucent NokiaNokia SiemensSiemens ToshibaToshiba
Air ForceAir Force NASANASA JPLJPL FAAFAA Sandia National LabsSandia National Labs
What is Imagix 4D?What is Imagix 4D?
A software to help software developers…A software to help software developers… Understand complex/legacy C & C++ softwareUnderstand complex/legacy C & C++ software Reverse engineer codeReverse engineer code Document CodeDocument Code Eliminate bugsEliminate bugs
A comprehensive program understanding A comprehensive program understanding tooltool
AdvantagesAdvantages
Rapidly check or systematically study your Rapidly check or systematically study your software on any levelsoftware on any level
Ability to visually explore your softwareAbility to visually explore your software Review software metrics and sourceReview software metrics and source Automatically creates design documentsAutomatically creates design documents Spend more time engineeringSpend more time engineering Get new hires on board faster Get new hires on board faster Reduces the cost of software maintenanceReduces the cost of software maintenance
FeaturesFeatures
VisualizationVisualization UML DiagramsUML Diagrams Control FlowControl Flow MetricsMetrics HTML DocsHTML Docs
UML Diagrams
Class Diagram•Unified Modeling Language notation
•Classes
•Class’s members
•Class Hierarchy
• Can add relevant detailed member-level relationships (associations)
UML Diagrams
File Diagram•Same UML diagram format as the class diagrams
•Displaying package / member information at the file level
•physical location of the files
•Add in build dependencies
UML Diagrams
Built-In Abstractions •One mechanism to address the problem of scope.
•abstracting member to member relationships to the members‘ containers
•example, if classA::methodA calls classB::methodB, you're able to view a higher level graph where classA is shown as calling classB. You thereby can avoid becoming deluged in the details of the design
Control Flow AnalysisControl Flow Analysis
Control Flow mode provides the next level Control Flow mode provides the next level of detail beyond a call graphof detail beyond a call graph
Shows the order that all the function calls Shows the order that all the function calls are madeare made
See where a call is made all the time or See where a call is made all the time or just under some conditionsjust under some conditions
Able to accurately understand the Able to accurately understand the dependencies in complex or sequence dependencies in complex or sequence critical codecritical code
Flow ChartsFlow Charts
Shows the complete control flow, or program Shows the complete control flow, or program logic occurring in each functionlogic occurring in each function
Helps you quickly grasp the internal logic of a Helps you quickly grasp the internal logic of a routineroutine
Sorts through if conditions, switch statements, Sorts through if conditions, switch statements, and do loopsand do loops
Linked to the File Editor so changes can be Linked to the File Editor so changes can be made quickly and easilymade quickly and easily
By seeing the source code in combination with By seeing the source code in combination with the logic, you're able to understand and modify the logic, you're able to understand and modify the function much more quickly and accuratelythe function much more quickly and accurately
Function Pointer SupportFunction Pointer Support
Any variable with data containing function Any variable with data containing function names is marked as a function pointernames is marked as a function pointer
All functions are recorded as being All functions are recorded as being potentially called from a function pointerpotentially called from a function pointer
If a function makes a call through the If a function makes a call through the function pointer, then the function is shown function pointer, then the function is shown as calling the function pointer variableas calling the function pointer variable
You can see the potential call tree by You can see the potential call tree by following the call relationship from the following the call relationship from the function to the function pointer variablefunction to the function pointer variable
The result is that you end up with a The result is that you end up with a complete and accurate understanding of complete and accurate understanding of your software.your software.
Software MetricsSoftware Metrics
Use to analyze all the measurements taken by Use to analyze all the measurements taken by Imagix 4DImagix 4D
Can list, sort, compare, and rank all files, Can list, sort, compare, and rank all files, classes, functions, and variablesclasses, functions, and variables
Has many different general categories:Has many different general categories: Lines of Source CodeLines of Source Code Lines of CommentsLines of Comments Comments to Code RatioComments to Code Ratio Number of Variables in a FileNumber of Variables in a File Number of Declarations in a FileNumber of Declarations in a File Etc.Etc.
Also, has many specific categories:Also, has many specific categories: Halstead’s MetricsHalstead’s Metrics
Mental Effort, Program Difficulty, and Intelligence Mental Effort, Program Difficulty, and Intelligence ContentContent
Inherited and Derived ClassesInherited and Derived Classes Class CouplingClass Coupling Lack of Cohesion Between ClassesLack of Cohesion Between Classes McCabe Cyclomatic ComplexityMcCabe Cyclomatic Complexity Etc.Etc.
Software MetricsSoftware Metrics
Software MetricsSoftware Metrics
Display in different formats: Absolute, Display in different formats: Absolute, Relative, and GraphRelative, and Graph
Can also change the thresholds of the Can also change the thresholds of the data founddata found
Documentation Using ImagixDocumentation Using Imagix
Five to Fifteen percent of development Five to Fifteen percent of development goes into documentationgoes into documentation
Imagix automates the system by using the Imagix automates the system by using the data gathered and the source codedata gathered and the source code
Outputs into three formats:Outputs into three formats: ASCIIASCII RTF (Rich Text Format)RTF (Rich Text Format) HTMLHTML
Documentation Using ImagixDocumentation Using Imagix
Sorted into nine categories:Sorted into nine categories: ProjectProject FilesFiles ClassesClasses Functions (also Library)Functions (also Library) MacrosMacros VariablesVariables Types (also Pre-Defined)Types (also Pre-Defined)