Skip to content

The GIANT project is about the development of a fast browsing tool for large graphs with enhanced analysis features like multiple selections and a fully integrated scripting language. The development team is 6 persons, all students of the University of Stuttgart, Germany. The project is part of our studies in Software Engineering. The project wa…

License

maschwie/GIANT

Repository files navigation

REQUIREMENTS

 In order to run giant the following components need to be installed
 on the system:

  * gnat 3.14p
  * GtkAda 2.2.0
  * xmlada 0.7.1

RUN

 Run the giant script from like this: ./giant. 

INSTALL

 Copy the giant executables, the etc/ and shared/ directory to your
 favourite destination.

COMPILE

 * Linux / Solaris

   cd src; make
   
   To execute the compiled binary do:

   cd src/giant

   And call ./giant-Linux or ./giant-SunOS .


QUICKSTART

 1. Type ./giant.

    => The GIANT main window is opened.

 2. Select Project / Open.

    => "Open Project" is opened

 3. Type "samples/project.xml" into the input filed and press "OK".

 4. Double click any of the items in the window list.
 
    => A graph window is opened.

 5. Have Fun

---------------------------------------------
OLD Project Info 
http://giant.berlios.de/


Overview

The GIANT project is about the development of a fast browsing tool for large graphs with 
enhanced analysis features like multiple selections and a fully integrated scripting language. 
The development team is 6 persons, all students of the University of Stuttgart, Germany. 
The project is part of our studies in Software Engineering.

The project was started in November 2002 and ran until November 2003. 
It was supervised by the Department of Programming Languages .

GIANT was developed to display graphs that are used for reengineering purposes. These graphs are 
basically abstract syntax trees with lots of additional semantic information. 
The Project Bauhaus provides tools that can parse various programming languages and create a language independent representation called IML.

The IML graphs are made availble through a reflection interface that is supported by GIANT. 
Even for small programms these graphs can have quite a large number of nodes and edges. In example a simple stack 
implementation written in C with 39 SLOC results in a graph of 223 nodes and 683 edges. 
The IML graph for the popular download tool wget contains more that 340,000 nodes and over 770,000 edges and occupies about 200 megabytes of memory!

Besides the requirement to display large graphs the application was to be developed in Ada using GtkAda. 
Orginally GtkAda 1.2.13 was used but later replaced by 2.2.0. Other tools that were used include AUnit and XMLAda. 
The GSL parser was generated by aflex and ayacc.

For the development of GIANT a classical phase-model approache was choosen that worked out very well. 
During the course of the project important documentation like a specification and a manual were created.

This page is meant as a project documentation and will hopefully be useful for other similar projects (like other Studienprojekte).


Features

The specification contains a detailed description of GIANT's capabilities in German. See below for a list of the major features:

- Smooth navigation through large graphs (> 100,000 nodes)
- Advanced edge selection
- Extensible scripting language
- Customizable menus through GSL scripts
- Flexible and easy to replace reflection interface for graph reading
- Interruptable operations
- Available for Linux, Solaris and Windows


Requirements

The binary distribution of GIANT should work on most machines. The Linux version was compiled on a Debian GNU/Linux system. 
Please make sure you have GtkAda 2.2.0 installed if using the dynamically linked version.


The Team

A successful project requires many people to play many roles. 
Some members write code or documentation, while others are valuable as testers, submitting patches and suggestions.

The team is comprised of Members and Contributors . 
Members have direct access to the source of a project and actively evolve the code-base. 
Contributors improve the project through submission of patches and suggestions to the Members. 
The number of Contributors to the project is unbounded. 
Get involved today. All contributions to the project are greatly appreciated.


Members

The following is a list of developers with commit privileges that have directly contributed to the project in one way or another.

- Philipp Haeuser  birdy  Developer
- Steffen Keul  keulsn  Developer
- Oliver Kopp  koppor  Developer
- Gerrit Schulz  schulzgt  Developer
- Steffen Pingel  squig  Configuration Management Developer		
- Martin Schwienbacher  schwiemn  Developer Project Manager

The following tools and libraries are required in order to compile the source code. Please edit the Makefile to reflect your local settings and path locations.
- Bauhaus Tools
- GNAT 3.15
- GtkAda 2.2.0
- XMLAda 0.7.1
- AUnit 1.0.1

About

The GIANT project is about the development of a fast browsing tool for large graphs with enhanced analysis features like multiple selections and a fully integrated scripting language. The development team is 6 persons, all students of the University of Stuttgart, Germany. The project is part of our studies in Software Engineering. The project wa…

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published