SENSE - Software Engineering and Security
Public Software
The goal of SENSE is to practice what we preach by developing software following or deomonstrating the techniques or methodologies we advocate. When there are no intelectual property rights conflicts we try to make our software available in free and/or open-source form. So far, we have released includes the following software projects:
  • Alitheia-Core an integrated platform for large scale software engineering studies. Alitheia Core works by importing the source code repository, mailing list archives and bug databases for a software project in a unified storage schema and running various analysis tools on the projects. Alitheia Core is free software, distributed under the 2-clause BSD license. More information can be found in the project's website.
  • CScout is a source code analyzer and refactoring browser for collections of C programs. It can process workspaces of multiple projects mapping the complexity introduced by the C preprocessor back into the original C source code files. CScout takes advantage of modern hardware advances (fast processors and large memory capacities) to analyze C source code beyond the level of detail and accuracy provided by current compilers and linkers.
  • UMLGraph allows the declarative specification and drawing of a number of UML diagrams. See also the article titled On the declarative specification of models. IEEE Software, 20(2):94-96, March/April 2003.
  • Outwit A tool suite that provides console-based access to the Windows clipboard, registry, databases, document properties, and links. See also the conference paper Outwit: Unix tool-based programming meets the Windows world. In USENIX 2000 Technical Conference Proceedings, pages 149-158, San Diego, CA, USA, June 2000. Usenix Association.
  • Socketpipe connects a remote command to local input and output processes without the data copy and context switching overhead of the customary rsh or ssh pipelines.
  • Fileprune will delete files from the specified set targeting a given distribution of the files within time as well as size, number, and age constraints. Its main purpose is to keep a set of daily-created backup files in manageable size, while still providing reasonable access to older versions. Specifying a size, file number, or age constraint will simply remove files starting from the oldest, until the constraint is met. The distribution specification (exponential, Gaussian (normal), or Fibonacci) provides finer control of the files to delete, allowing the retention of recent copies and the increasingly aggressive pruning of the older files. You can read more in the article Organized pruning of file sets. ;login:, 28(3):39-42, June 2003.
  • bib2xhtml is a program that converts BibTeX files into HTML (specifically XHTML 1.0). The conversion is mostly done by specialized BibTeX style files, derived from a converted bibliography style template. This ensures that the original BibTeX styles are faithfully reproduced.
  • SSuite is a secure suite of tools that eliminates code injeciton attacks based on a generic approach. Two applications of our approach have been presented in a journal and conference paper respectively.
  • FIRE/J is a very fast regular expression library for java. See also the article titled, Vassilios Karakoidas and Diomidis Spinellis. FIRE/J: Optimizing regular expression searches with generative programming. Software: Practice and Experience, 38(6):557-573, May 2008
  • NGCE - Network Graphs for Computer Epidemiologists Graphs are useful data structures capable of representing eficiently many technological and social networks. Because of this specific property they are utilized in the simulation-based studies of new algorithms and protocols. Inspired by the popular TGFF (Task Graphs For Free) toolkit, which creates task graphs for embedded systems, we present the NGCE, an easy to use graphical graph generator that produces graphs for the study of the propagation of viral agents in complex networks.
  • ckjm - Chidamber and Kemerer Java Metrics. The program ckjm calculates Chidamber and Kemerer object-oriented metrics by processing the bytecode of compiled Java files. The program calculates for each class the following six metrics: (1) WMC: Weighted methods per class, (2) DIT: Depth of Inheritance Tree, (3) NOC: Number of Children, (4) CBO: Coupling between object classes, (5) RFC: Response for a Class and (6) LCOM: Lack of cohesion in methods
  • Pipe Namespace in the Portal Filesystem. The portal filesystem allows a daemon running as a userland program to pass descriptors to processes that open files belonging to its namespace. It has been part of the *BSD operating systems since 4.4 BSD. I recently added a pipe namespace to its FreeBSD implementation. This allows us to perform scatter gather operations without using temporary files, create non-linear pipelines, and implement file views using symbolic links.
  • Indywiki aims to explore different ways of browsing the Wikipedia universe, through an intuitive GUI application.
  • Voting Power calculates the voting power of voters with weighted votes in an assembly.

Creative Commons License Unless otherwise expressly stated, all original material on this page created by members of the ISTLab is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 2.5 License.