You will need several tools in this course:
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.
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.
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:
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.
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 @cs.colostate.edu. 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.
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.
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.
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.
You can use subversion, which can be integrated with Eclipse. Instructions were adapted from Prof. Michelle Strout's directions for CS453/CS553 (http://www.cs.colostate.edu/~mstrout/setup-notes.html) and updated by Aritra.
For more info on subversion, see http://svnbook.red-bean.com/.
class Main { public static void main(String args[]) { System.out.println("Hello World!"); } }Put Main.java into a file hierarchy with the following structure:
ProjName.svn/ trunk/ src/ Main.java branch/ tag/
This tree of files in the Project.svn directory you just created is just for having something to initialize the repository. You can delete the Project.svn after you have imported it to the repository (step 4).
// Make sure to replace $HOMEDIR with your own unix home directory. // For example, /s/parsons/d/fac/ghosh // Replace $MACHINE with a CS unix machine that you use often. // Replace $USER with your username. // creating the repository on a CS unix machine // NOTE: Each project will have its own repository. // All the project repositories for CS314 will be in // $HOMEDIR/SVNRepositories/CS314_Projects/. % cd $HOMEDIR % mkdir SVNRepositories % mkdir SVNRepositories/CS314_Projects % svnadmin create $HOMEDIR/SVNRepositories/CS314_Projects/ProjName.
% cd ProjName.svn % setenv SVN_SSH 'ssh -l $USER' // if you are using bash do the following: % export SVN_SSH='ssh -l $USER' % svn import . svn+ssh://$MACHINE.cs.colostate.edu/$HOMEDIR/SVNRepositories/CS314_Projects/ProjName -m "Initial import" $USER@$MACHINE.cs.colostate.edu's password: Adding trunk Adding trunk/src Adding trunk/src/Main.java Adding tag Adding branch Committed revision 1.
Irrespective of whether you are using the Subclipse plugin (Subversion plugin for eclipse) or the command line, step 1 through 4 are same. The plugin will not help in setting up the repository and initializing it.
Once the repository has been created, any of the team members can create eclipse projects in their own workspace and connect to the repository
If you are using the command line,
% cd $PATH_TO_YOUR_ECLIPSE_WORKSPACE/NewEclipseProject % setenv SVN_SSH 'ssh -l $USER' // if you are using bash do the following: % export SVN_SSH='ssh -l $USER' // for some reason the below command requires your password three times // I have seen this on other subversion servers as well % svn co svn+ssh://$MACHINE.cs.colostate.edu/$HOMEDIR/SVNRepositories/CS314_Projects/ProjName/trunk src
If you are using the Subclipse plugin,
If you want to work in a team for the design project, let us know, and we will assign a unix group name to your team. They will be of the form cs314a, cs314b, etc. Each team will have an account space corresponding to their team letter in the directory: /s/bach/a/class/cs314. Thus, cs314a will have its account space in /s/bach/a/class/cs314/cs314a, and so on. Whether you choose to use this space or not, and how, is up to each team. To access this shared area, connect to the CS department linux machines (e.g., beet.cs.colostate.edu and artichoke.cs.colostate.edu) using ssh and then type:
cd /s/bach/a/class/cs314/cs314aReplace the letter "a" with an appropriate letter for your team.
Make sure that the permissions on the repository are set so that everyone in your unix group can write to the repository. Assume that your unix group is cs314x. Your group will have a directory at ~cs314/cs314x. Note that the "~" automatically expands to /s/bach/a/class/. Here are the commands you need to perform to set up a repository in your group directory.
% cd ~cs314/cs314x % mkdir SVNRepositories % svnadmin create ~cs314/cs314x/SVNRepositories/Project2 // check the permissions, the cs314x, SVNRepositories, and Project2 // directories should all have group rws permissions % ls -al % ls -al SVNRepositories/ // if they don't them change the permissions % cd SVNRepositories % chmod g+rwxs . % find . -type f -print | xargs chmod g+rw % find . -type d -print | xargs chmod g+rwxs
You can also use the plugin Subclipse, which provides support for Subversion within the Eclipse IDE.