SIAT C++ CSIP Presentation

46
September 6, 200 1 NASA Software IV&V Facili ty 1 AVERSTAR GROUP SIAT C++ CSIP Presentation

description

SIAT C++ CSIP Presentation. What is SIAT?. SIAT = Software Interface Analysis Tool SIAT provides language construct, variable set/usage, type usage, function usage, and dependency query capabilities to enhance analysis productivity - PowerPoint PPT Presentation

Transcript of SIAT C++ CSIP Presentation

Page 1: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 1

AVERSTAR GROUP

SIAT C++ CSIP Presentation

Page 2: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 2

AVERSTAR GROUP

What is SIAT?• SIAT = Software Interface Analysis Tool

– SIAT provides language construct, variable set/usage, type usage, function usage, and dependency query capabilities to enhance analysis productivity

– SIAT facilitates understanding of source code by providing call, dependency, type hierarchy, and data flow graph capabilities

– SIAT has a syntax colored, hyperlinked web browser interface to a centralized source code repository for performing code, external interface, impact, and sustaining engineering analysis for multiple libraries

Page 3: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 3

AVERSTAR GROUP

Code Analysis Tool ComparisonsFeature Understand for C++

McCabe Integrated Quality Tool

Software Interface Analysis Tool

Cost ~ $395 per license ~ $4600 per license Dev costs only

License Required X X

Web Based X

Syntax highlighted source code listings X X

Text search capability X X

Searches for particular type constructs X

Call graphs X X X

Type hierarchy trees X X X

File inclusion trees X X

Data flow graphs X

Control flow graphs X X

Cross reference information (definitions, declarations, references) X X X

Metrics X X

Page 4: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 4

AVERSTAR GROUP

Why SIAT?• Provide analysis/engineering tool with no client side

licensing costs• Tool is controlled by IV&V – we can be responsive to

specialized IV&V analysis needs• Tool focuses on V&V and system assurance needs

– Not development/test needs (e.g. McCabe test paths)– Aids in understanding how code is structured– Pictorially presents calling structure, type hierarchy, file

dependencies, data flow, control flow– Query capabilities – constructs, symbol usage, strings

Page 5: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 5

AVERSTAR GROUP

Version 1.0 Functionality• Source code file browsing

– Syntax coloring, hyperlinked symbol references, context sensitive symbol definition/declaration menus

• Symbol usage queries– Definition, declarations, uses, modifications

• Function call graphs• Type hierarchy graphs• Source file dependency graphs (#include’s)• Data flow graphs (not officially in 1.0)

Page 6: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 6

AVERSTAR GROUP

Milestones/Deliverables Review

Page 7: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 7

AVERSTAR GROUP

Milestones/Deliverables Review• Past/Current

– SIAT C++ Software Requirements Specification (10/00)– SIAT C++ Software Design Document (12/00)– SIAT C++ Interface Design Review (12/00)– SIAT Version 1.0 Software Test Descriptions (3/01)– SIAT Version 1.0 Execution Software/Libraries (6/01)– SIAT Version 1.0 Users Guide (6/01)– SIAT Version 1.0 Demonstration (Today – 6/01)

Page 8: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 8

AVERSTAR GROUP

Milestones/Deliverables Review• Future

– SIAT Version 1.1 Execution Software Libraries (9/01)– SIAT Version 1.1 Version Description Document (9/01)– SIAT Version 1.1 Installation Guide (9/01)– SIAT Version 1.1 Demonstration (9/01)– GFY2001 CSIP End-of-Year Report (9/01)

• GFY2002 Center Initiative for additional SIAT C/C++ functionality has been submitted

Page 9: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 9

AVERSTAR GROUP

System Architecture

Page 10: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 10

AVERSTAR GROUP

Host Platform Requirements

• Server (SIAT C++ Host Machine)– Sun server running Solaris 2.5.1 or

higher– Netscape Enterprise Server 3.5 or

higher

• Client (Software Analyst’s Host Machine)

– Desktop Machine with network connection

– Netscape Navigator 4.5+– Internet Explorer 5+ (informally

supported)

Software Analyst’s Host Machine

SIAT C++ Host Machine

Any network supporting TCP/IP (e.g. Ethernet LAN or Internet)

Data and control are HTTP over TCP/IP

Legend:

Primary Network

Processor

Software Analyst’s Host Machine

Software Analyst’s Host Machine …

Page 11: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 11

AVERSTAR GROUP

Client / Server System Architecture• Server

– SIAT C++ Analyzer• EDG C++ Front End Compiler• Custom Perl/UNIX shell scripts

– SIAT C++ Engine• One session/process per analyst• Custom C code application

– Netscape Enterprise Server• COTS Web Server• DSM - Custom C code plug-in (for

session management)

• Client– Web Brower

• Netscape Navigator 4.5+• Internet Explorer 5+ (informally

supported)analysis datahtml markedup source

analysis requestbrowse sourcerequest

browsesourcerequest

analysisrequest

analysis requestbrowse source request

html markedup source

analysisdata

C/C++ Source Code

Static SIAT C++Files (html, java,javascript, css, gif)

C/C++ Source CodeMetadata (html, xref,…)

1.SIAT C++Analyzer

3.SIAT C++Engine(s)

2.NetscapeEnterpriseServer

4. WebBrowser

Software Analyst

Library Maintainer

install sourcelibraries request

Legend:

FlowProcess

TerminatorStore

analysis datahtml markedup source

installation status

SIAT C++ Level 1Data Flow Diagram

Page 12: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 12

AVERSTAR GROUP

Version 1.1 / 2.X Enhancements

Page 13: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 13

AVERSTAR GROUP

Version 1.1 Enhancements• Part of GFY2001 Center Software Initiative

Effort – Delivery date 9/01• Ability to query for all instances of particular

constructs– classes, structs, unions, pointers, derived classes,

try statements, throw statements, catch statements• Ability to search for text strings

– Search all source text/ code only/ comments only

Page 14: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 14

AVERSTAR GROUP

Version 2.X Possible Enhancements• GFY2002 CSIP submitted for enhancements• Purchase/Integrate latest EDG C++ Front End

– More complete C++ language support• Complete support for data flow graphs• Control flow graphs for functions• Global data flow using global identifier data• Bookmark source code

Page 15: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 15

AVERSTAR GROUP

Version 2.X Possible Enhancements• Support for saving analysis session context• Ability to attach /view analysis notes on lines

in files• Ability to view differences between versions

of files• Personal user presentation format preferences• Login security to verify users

Page 16: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 16

AVERSTAR GROUP

Version 2.X Possible Enhancements• Calculate metrics such as cyclomatic

complexity and essential complexity• Show type usage information that is more

specific than “referenced”, such as “used to define object” or “used as base class in child class definition”

Page 17: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 17

AVERSTAR GROUP

SIAT C++ Version 1.0 Demo

Page 18: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 18

AVERSTAR GROUP

SIAT C++ URL• SIAT C++ has been deployed on the host

shenandoah in Fairmont• URL is

http://shenandoah.ivv.nasa.gov:2222/siat

Page 19: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 19

AVERSTAR GROUP

Click here Click here to enter to enter

SIAT C++.SIAT C++.

Page 20: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 20

AVERSTAR GROUP

Enter your Enter your login login

information information and click here.and click here.

Page 21: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 21

AVERSTAR GROUP

Click here to Click here to start a new start a new

session.session.

Page 22: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 22

AVERSTAR GROUP

1.) Select the Libraries 1.) Select the Libraries (CSCIs) that you would like to (CSCIs) that you would like to add to your Master Library.add to your Master Library.

If a Library has multiple If a Library has multiple versions, select the version versions, select the version from the dropdown list.from the dropdown list.

For this example, only the For this example, only the “shape” Library, version 1.0 “shape” Library, version 1.0 should be selected.should be selected.

2.) Click here to 2.) Click here to view the Master view the Master Library.Library.

Page 23: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 23

AVERSTAR GROUP

The Master Library View displays The Master Library View displays the Libraries you have selected.the Libraries you have selected.

Click a Library link to begin Click a Library link to begin browsing that Library.browsing that Library.

In this example, only the “shape” In this example, only the “shape” Library was selected.Library was selected.

Page 24: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 24

AVERSTAR GROUP

The Library View displays the global identifiers The Library View displays the global identifiers associated with a given Library. The identifier’s associated with a given Library. The identifier’s name, kind, and containing source file are listed. name, kind, and containing source file are listed.

Click on an identifier or its containing source file’s Click on an identifier or its containing source file’s name to browse the source code. For this example name to browse the source code. For this example click the identifier for the symbol “main()”.click the identifier for the symbol “main()”.

Page 25: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 25

AVERSTAR GROUP

The Source View contains:The Source View contains:1.) The Navigation Bar1.) The Navigation Bar2.) The Source File Outline2.) The Source File Outline3.) The Hyperlinked Source Listing3.) The Hyperlinked Source Listing

Notice that “main()” is located at the Notice that “main()” is located at the top of the Source Listing.top of the Source Listing.

11

22 33

Click the “Ellipse” Click the “Ellipse” identifier identifier

reference to reference to locate its locate its definition.definition.

Page 26: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 26

AVERSTAR GROUP

When an When an identifier identifier

reference is reference is clicked, the clicked, the

definition of the definition of the identifier is identifier is

displayed at the displayed at the top of the top of the

Source Listing.Source Listing.

Page 27: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 27

AVERSTAR GROUP

When an identifier definition or When an identifier definition or declaration is clicked, the user declaration is clicked, the user

is presented with a list of is presented with a list of analysis actions that can be analysis actions that can be performed for that identifier.performed for that identifier.

Click on “Ellipse” Click on “Ellipse” and select “Find and select “Find

References->All” to References->All” to view all references view all references

to the identifier to the identifier within the Library.within the Library.

Page 28: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 28

AVERSTAR GROUP

A list of all identifier references A list of all identifier references for “Ellipse” within the Library are for “Ellipse” within the Library are displayed as a result of the “Find displayed as a result of the “Find References->All” command.References->All” command.

The user could have chosen to The user could have chosen to view only references in which the view only references in which the identifier was used or modified as identifier was used or modified as well.well.

Click on a reference in Click on a reference in the list to browse to the list to browse to the location in the the location in the Library’s source code Library’s source code where that identifier is where that identifier is referenced.referenced.

In this example, select In this example, select the reference the reference occurring on Line 71 occurring on Line 71 of “shape.h”.of “shape.h”.

Page 29: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 29

AVERSTAR GROUP

The reference to the The reference to the “Ellipse” identifier on “Ellipse” identifier on Line 71 of “shape.h” is Line 71 of “shape.h” is displayed at the top of displayed at the top of the source file listing. the source file listing. This location is also This location is also added to the list of added to the list of recently viewed items in recently viewed items in the Navigation Bar.the Navigation Bar.

Page 30: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 30

AVERSTAR GROUP

Click on the “Circle” Click on the “Circle” identifier in the definition identifier in the definition of the “Circle” class. The of the “Circle” class. The popup menu is displayed popup menu is displayed again. This time, choose again. This time, choose “Find Declaration” from the “Find Declaration” from the menu.menu.

Page 31: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 31

AVERSTAR GROUP

A list of all declarations of the “Circle” A list of all declarations of the “Circle” class is displayed to the user.class is displayed to the user.

In this case, only the declaration that is In this case, only the declaration that is also the definition of the class is also the definition of the class is displayed in the list.displayed in the list.

Click the hyperlink to return to the Click the hyperlink to return to the “shape.h” file on Line 71.“shape.h” file on Line 71.

Page 32: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 32

AVERSTAR GROUP

In the “shape.h” source In the “shape.h” source listing, scroll up to Line listing, scroll up to Line 62 and click the 62 and click the declaration of the declaration of the “Ellipse::draw” “Ellipse::draw” function. Again, the function. Again, the menu is displayed. This menu is displayed. This time, select “Find time, select “Find Definition” to locate the Definition” to locate the definition of this definition of this function in the Library.function in the Library.

Page 33: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 33

AVERSTAR GROUP

The definition of The definition of the “Ellipse::draw” the “Ellipse::draw” function is function is displayed at the displayed at the top of the Source top of the Source Listing.Listing.

Page 34: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 34

AVERSTAR GROUP

Return to the first Return to the first location you location you browsed by browsed by selecting the last selecting the last item from the item from the Recent list.Recent list.

Page 35: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 35

AVERSTAR GROUP

The Source Listing is The Source Listing is displayed with “main()” displayed with “main()” positioned at the top.positioned at the top.

Click on the identifier for Click on the identifier for “main()” and select “main()” and select “Show Call Graph” from “Show Call Graph” from the menu that appears to the menu that appears to view a function call graph view a function call graph for the “main” function.for the “main” function.

Page 36: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 36

AVERSTAR GROUP

The Graph View displays The Graph View displays data as both indented data as both indented textual list and graphical textual list and graphical formats. The textual lists formats. The textual lists are always displayed first, are always displayed first, followed by the graphical followed by the graphical version.version.

Scroll down to view the Scroll down to view the graphical view of the data.graphical view of the data.

Page 37: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 37

AVERSTAR GROUP

This is an example of the graphical view of graph data. This is an example of the graphical view of graph data. Information in this view is represented as a collection of Information in this view is represented as a collection of nodes connected by edges. The scrollbars and the nodes connected by edges. The scrollbars and the controls to the left and at the bottom of the graph can be controls to the left and at the bottom of the graph can be used to manipulate the graph for better viewing.used to manipulate the graph for better viewing.

Page 38: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 38

AVERSTAR GROUP

The Call Graph displays The Call Graph displays functions called by functions called by “main()” and the Caller “main()” and the Caller Graph displays functions Graph displays functions that call “main()” (none, that call “main()” (none, of course!).of course!).

Click on the hyperlink for Click on the hyperlink for the function named the function named “Line::draw(Drawable &)” “Line::draw(Drawable &)” in the Call Graph.in the Call Graph.

Page 39: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 39

AVERSTAR GROUP

The Source Listing is The Source Listing is displayed with the displayed with the definition of “Line::draw” definition of “Line::draw” positioned at the top.positioned at the top.

Click “Rectangle” in the Click “Rectangle” in the definition for the definition for the “Rectangle” class on Line “Rectangle” class on Line 32. Next, select “Show 32. Next, select “Show Type Hierarchy” from the Type Hierarchy” from the menu that appears.menu that appears.

Page 40: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 40

AVERSTAR GROUP

The Ancestors Graph shows those types from which The Ancestors Graph shows those types from which “Rectangle” inherits and the Descendents Graph “Rectangle” inherits and the Descendents Graph shows those types that inherit from “Rectangle”.shows those types that inherit from “Rectangle”.

Click on the node for the class named “Shape” in the Click on the node for the class named “Shape” in the Ancestors Graph.Ancestors Graph.

Page 41: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 41

AVERSTAR GROUP

The source file containing The source file containing the definition of the “Shape” the definition of the “Shape” class will be displayed. class will be displayed. Scroll to the top of the Scroll to the top of the Source Listing or click on Source Listing or click on “shape.h” in the Source “shape.h” in the Source Outline.Outline.

At the top of the Source At the top of the Source Listing you will see a Listing you will see a hyperlink for the current hyperlink for the current source file (shape.h). Click source file (shape.h). Click this hyperlink and select this hyperlink and select “Show Dependency” from “Show Dependency” from the menu that appears.the menu that appears.

Page 42: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 42

AVERSTAR GROUP

The Files Included Graph The Files Included Graph shows the files included by shows the files included by “shape.h” and the Files “shape.h” and the Files Included By Graph shows the Included By Graph shows the files that include “shape.h”.files that include “shape.h”.

Click on the hyperlink for the Click on the hyperlink for the file named “shapetest.cc” at file named “shapetest.cc” at Line 3 in the Files Included By Line 3 in the Files Included By Graph.Graph.

Page 43: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 43

AVERSTAR GROUP

The #include statement The #include statement for “shape.h” on Line 3 for “shape.h” on Line 3 is positioned at the top is positioned at the top of the Source Listing.of the Source Listing.

Click the variable Click the variable named “c” on Line 7 named “c” on Line 7 and select “Find and select “Find Related” from the Related” from the menu that appears.menu that appears.

Page 44: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 44

AVERSTAR GROUP

The Related Items View displays source code The Related Items View displays source code identifiers that have been related by PUIIs. Each identifiers that have been related by PUIIs. Each PUII is listed as well as the Library and Version PUII is listed as well as the Library and Version to which the PUII applies. The symbols that are to which the PUII applies. The symbols that are related by the PUII are listed in the last column.related by the PUII are listed in the last column.

The user can click a PUII name to find out more The user can click a PUII name to find out more about a specific PUII. The related symbols can about a specific PUII. The related symbols can also be clicked to perform the same operations also be clicked to perform the same operations that can be performed from the Source View.that can be performed from the Source View.

Page 45: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 45

AVERSTAR GROUP

To end a SIAT C++ session, click the “SIAT C+To end a SIAT C++ session, click the “SIAT C++” menu in the menu bar at the top of the page +” menu in the menu bar at the top of the page and select the “Exit SIAT C++” menu option.and select the “Exit SIAT C++” menu option.

Notice: This is the Notice: This is the onlyonly proper way to exit from proper way to exit from the SIAT C++ application!the SIAT C++ application!

Page 46: SIAT C++ CSIP Presentation

September 6, 2001 NASA Software IV&V Facility 46

AVERSTAR GROUP

Wrap-up/Discussion