- CruiseControl - for Java
- Hudson - for Java
- CruiseControl.Net - for .Net
- CruiseControl.rb - for Ruby
Monday, March 1, 2010
Continuous Integration
Martin Fowler has an excellent article on Continuous Integration. This is somewhat the granted definition of CI ever since it was published. You can experience the CI yourself by using one of the following tools:
Monday, February 15, 2010
Submission guideline
For the Iteration#1 submission, I went through some hard times as I built, ran and executed your acceptance tests. Most submissions had some kind of documents explaining the situation, but it still took some time to get the project built and run. To make it conforming lets try one of the two following alternatives:
- Submit an Eclipse project. Ensure that, i) Run > Run As > Java Application runs your application and ii) Run > Run As > JUnit test runs all the tests in your application.
- Submit a project that has the following structure
- Project Root
- run - a command file (preferably unix shell or windows cmd) that loads your application.
- test - a command file that runs all the tests.
- All other folders, files as you may have
Also Important are:
- All other files, such as time spent, log files and diagrams should be sent using PDF/Word/Excel/Text/PNG/JPG only. Othewise, I might not have the software to open your submission.
- Submission should be emailed in a single email, instead of in parts. Otherwise, I may not see one of your submissions.
Large scale software development projects usually follow some standards for deploying their product frequently and frictionlessly. Thats why I mentioned using Eclipse or Maven could help you in conforming to shared standards. Lets see a few standards here:
- When built, your .class files should be separated from your .java files so that it is easy to deploy only the .class files. I know using some commands you can easily extract the class files from the source files, however, the target is to simplify the process as much as possible.
- Your acceptance and all test class files should be in a separate folder than your application class files. So that, when you deploy your application, you don't waste space in deploying the test classes.
- Most java applications are deployed as Jar files instead of a lot of class files. So, when you build one, its a good practice to make the final build output is archived to a jar file, which is easy to transport and manage.
Please comment here if I am missing something.
Wednesday, February 10, 2010
ArgoUML - for UML diagrams
You can download and use ArgoUML from this link. It will help you with diagramming UML class diagrams and managing it over time.
Monday, February 8, 2010
A sample application to try logger
A sample application to show the built in java logger in action:
https://docs.google.com/leaf?id=0B6pf6btYtM3IYWIzN2E2NmItYmYyMS00ZTRkLThhOGQtMDMxNjYyNzEyNGZk&hl=en
To run this, compile and then use:
java -Djava.util.logging.config.file=logger.properties MainClass
https://docs.google.com/leaf?id=0B6pf6btYtM3IYWIzN2E2NmItYmYyMS00ZTRkLThhOGQtMDMxNjYyNzEyNGZk&hl=en
To run this, compile and then use:
java -Djava.util.logging.config.file=logger.properties MainClass
Wednesday, February 3, 2010
Apache MAVEN - to help you manage your code and tests
Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.Find more at http://maven.apache.org/
Guice - a light-weight DI framework from google
Dependency Injection helps you to write loosely coupled object oriented code. As a side-effect, you will be able to write a better testable code. A good discussion is found at http://en.wikipedia.org/wiki/Dependency_injection
For Java there are a few alternatives when it comes to using frameworks to help you with implementing dependency injection. I found the Java community likes the Guice framework from google for this purpose. If you have some time, you can try this.
For Java there are a few alternatives when it comes to using frameworks to help you with implementing dependency injection. I found the Java community likes the Guice framework from google for this purpose. If you have some time, you can try this.
Tuesday, February 2, 2010
A few object oriented principles that you might enjoy reading about
This principles are most often called SOLID principles taking the acronym from the following five:
- Single responsibility principle.
- Open-closed principle.
- Liskov's substitution principle.
- Interface segregation principle.
- Dependency inversion principle.
Correction: Just fixed the wrong hyperlink at the Single Responsibility Principle.
Monday, February 1, 2010
Review topics
We will review the following in particular when developing our projects (and of course in marking!)
Naming
Naming
- Packages
- Files
- Classes
- Methods
- Variables
- Interfaces
- Object orientation (Encapsulation, Inheritance, Polymorphism)
- Use of Interfaces and
- Use of Abstract classes
- Acceptance tests
- Unit tests
- Use of private methods
- Comments
- Readability
Monday, January 25, 2010
Getting started with Fitnesse and Acceptance Testing
We will soon get started with Acceptance testing using Fitnesse. The getting started guide at http://schuchert.wikispaces.com/FitNesse.Tutorials.0 is a good point to start. We will eventually learn more as we go.
Wednesday, January 20, 2010
Generating JavaDoc Using Eclipse
Its possible to generate Javadoc from your source code comments. You can simply select Project > Generate Javadoc to generate the HTML documentation for your project. Once executed, this will put the html documentation under a directory called doc inside your project root folder.
The sun java link has a detailed document on various types of tokens for specifying different kinds of elements in the document.
The sun java link has a detailed document on various types of tokens for specifying different kinds of elements in the document.
RSS Readers
Its a good idea to use an RSS reader. It eases your daily learning by getting the feeds from your favorite sites right into your computer. My favorite RSS reader is NewsGator. However, if you don't want to install this software you can simply use google reader from your gmail account.
Here is a youtube embed that explains how to use the RSS readers.
Here is a youtube embed that explains how to use the RSS readers.
Practice project JUnit tests
Please download the following project. Unzip and open in your Eclipse workspace. We will try some JUnit test codes on this sample project.
https://docs.google.com/leaf?id=0B6pf6btYtM3INjI1YzdkOTYtZTU4Yy00OTY3LTk2ZGEtYzc5NDNiZjExMDFl&hl=en
https://docs.google.com/leaf?id=0B6pf6btYtM3INjI1YzdkOTYtZTU4Yy00OTY3LTk2ZGEtYzc5NDNiZjExMDFl&hl=en
Tuesday, January 19, 2010
Packaging your project's code
In any software project, its common to package the whole source code into meaningful groups. This helps the teams to deal with concurrent development, testing and separating the concerns. Here is a possible package diagram that you may follow in your projects. However, this is not an absolute requirement, its rather a suggestion. You can either follow it or come up with your own packaging that makes sense to your application.
Monday, January 18, 2010
4 Project ideas so far
- Android version/client of eHome - Java/C#/Scala
- Course scheduling system - Java (desktop based)
- Astrological image processing - Java (desktop based)
- Hockey pool management system - Java (command based UI)
- FTP client
Its good that almost all the projects are in Java, that means, the teams can get benefit from talking to each other.
SVN repository, JUnit and getting started
The following presentation is taken from Theodore. He made this slide for the SENG 301 course. You can learn how to set up an SVN at the department's server and also about JUnit installation.
Tuesday, January 12, 2010
Project Ideas
- Toronto City Bus Schedule Lookup: Data available at this Toronto open data link.
- Search a Nearby Toronto Licensed Child Care Center: Data available at this Toronto open data link.
- Automatic Twitter Feed of Toronto City Sponsored Festivals and Events. Data available at this Toronto open data link.
- A google wave like real time chatting engine.
Monday, January 11, 2010
Getting Started: Install Eclipse Galileo and Subclipse 1.6
Install Eclipse
It is a prerequisite that you have Java installed on your machine.
Then, you can download the Eclipse IDE for Java Developers from the page at http://www.eclipse.org/downloads/. Once downloaded, you can simply extract the file and thats it. You can just double click on the Eclipse icon to load the Eclipse IDE for the first time.
Install SubClipse
Testing Eclipse and SubClipse on Google Code
It is a prerequisite that you have Java installed on your machine.
Then, you can download the Eclipse IDE for Java Developers from the page at http://www.eclipse.org/downloads/. Once downloaded, you can simply extract the file and thats it. You can just double click on the Eclipse icon to load the Eclipse IDE for the first time.
Install SubClipse
- Open Eclipse
- Help > Install New Software
- Inside "Work with" field enter http://subclipse.tigris.org/update_1.6.x and wait for a while to allow retrieving the plugins list from the server.
- Select Subclipse and then you know usual next next :-)
- Once installed, it will strongly recommend (!) you to restart Eclipse. Please follow the instruction.
- Now you should be ready with SubClipse.
Testing Eclipse and SubClipse on Google Code
- Go to http://code.google.com/
- Sign in with your google account
- Click on Project Hosting under the Featured Products at the left column.
- Click Contribute to Open Source
- Click "Create Project" link and fill up the form.
- In the Version Control drop-down, select "Subversion'
- After your project is created, click on "Source" Tab. And you will see a URL of the form https://yourproject.googlecode.com/svn/trunk/ yourproject --username your_google_account and also a link to the password.
- Open Eclipse > File > Import > SVN > Next > Create a new url > Paste your URL (the portion as shown in blue at #7)
- Then specify your google user name and the generated password and continue until the wizard is over.
- Now make changes to your project by adding new files and saving them.
- To push the changes back to the Subversion Repository, Select File > Team > Commit.
Sounds a lot? Well, all these are for the first time. Once you are done with the initial setup, next time you just select File > Team > Update Head and File > Team > Commit to get the latest code and push your changes respectively.
Please comment on this post if you see any problem in following the instruction.
Subscribe to:
Posts (Atom)
