Software Tools

You will need several tools in this course:

1. Java IDE

You can use any editor, compiler and runtime environment. One option is to install an editor (notepad, wordpad, emacs, vi, vim, etc), and use Sun's JDK and JRE to compile and run the programs. You are strongly encouraged to use the Eclipse Integrated Development Environment to do all the programming activities. The advantage is that Eclipse provides a good editor and debugger. It can also be integrated with version control software. Eclipse is the preferred IDE in our department. You can download Eclipse for free from here.

2. Version control

Version control and source code control is very useful when you are working in a team. Even if you are not, it still helps to be able to retrieve an older version of a file that used to work when the current version is lost or broken. In this course we will use GitHub.

We have created an organization called CSU-CS314-FA2015, and we will create private repositories for each project team under that organization. We need to add each student to the repositories. For that we need to have your individual Git accounts. You must first create an account for yourself at Do not create any repository - these have to be created in the CS314 organization in order to be private. You then need to send your GitHub user name to You will then be added to your appropriate team in the organization, and have read/write access to your team's repository. Your personal GitHub account user name and password will be needed to interact with the GitHub repository to clone it, fetch/pull information from it, and push to it. You will be notified once the teams and repositories are created.

Here is a useful reference on GitHub originally prepared by Dr. Geri Georg for CS314, Spring 2014. It has undergone a few revisions since then.

3. UML Drawing Tools

There are several tools available commercially and in the free software domain for drawing UML diagrams. Examples are Visio, Topcased, Eclipse-Omondo, ArgoUML, Poseidon, Visual Paradigm, and Rational Software Modeler. A list of some UML tools can be found on Wikipedia. Below is a select set of tools that support the modeling activities covered in our software engineering classes (e.g., CS314, CS414). Visio may be the best option for most of you. As long as you use a tool that exports diagrams to image files that can be inserted into a word / PDF document, you should be fine.

2.1 Visio

Microsoft Visio is installed on the Windows PCs in the department. You can also get it for free as described below.

MSDN Academic Alliance Program enables CSU Computer Science faculty members, undergraduate majors, graduate students, and certain classes to acquire software at minimal cost. This service is provided using ELMS (e-academy License Management System) and supports multiple distribution schemes.

Currently there are two distribution schemes available to CSU Computer Science users:

  1. Media Sales: Under this scheme you pay for the cost of the media (cd-roms) and shipping and the disks containing the requested software is delivered to you.

  2. Download: Under this scheme you will download the desired software at no you are issued a product using either distribution scheme you are required to get approval to reacquire that product (even if attempting to use the same scheme). This means that you are entitled to only one copy of a given product.

Anyone taking CS classes has a CS email account. Your CS email address is your CS login added to Password is the same as your CS account.

To get started, visit the ELMS website.

The EID or CSUID plays no part in MSDNAA. Login to MSDNAA is your CS email address. If you have forgotten your password, you can ask MSDNAA to send it to you. Click here. The password will be sent to your CS email account.

Quick access to CS email is available here.

2.2 Topcased

A modeling environment developed as part of an EU project. It was built to primarily support the development of critical embedded software. You can download it from here.

2.3 Papyrus

Papyrus is intended to be the standard eclipse UML modeling environment. The UML features are similar to those found in Topcased. You can download it from here.

2.4 Visual Paradigm

Another option, which has both a free and a trial version (free, time-limited, but has more functionality) is Visual Paradigm's SDE.

This is a pretty good UML tool that integrates with Eclipse, JBuilder, and a few other IDEs. The more functional versions also provide code-generation, so this might help out with the implementation.