Software tools

QT

Qt is defined as a cross platform application. It is a framework which is used in to develop application software. This application software is developed with the help graphical user interface. This cross platform application is also used in developing non graphical user interface programs. Some of the programs which use this application program are Google, Adobe Photoshop, Panasonic, Philips etc.  This application uses the C++ language. But Qt uses a unique code generator with many macros to enhance the language. Qt can also be used in many programming language with the help of language bindings. It is used on many platforms and is also internationally recognised. This cross platform application was developed by Trolltech but they later sold this application to Nokia. The software libraries which use this application are advanced component framework, KDELibs, LibQxt etc.

QT game screen

QT demo application

Qt has always been available through a commercial license which allows the expansion of proprietary purposes without any restriction on licensing. In addition, Qt has been steadily made open through an increasing number of other free licenses. Currently, Qt is accessible under the General Public License (GNU); this provision makes it available for utilization for both free software and proprietary. Before the 1.45 version, the source code used for Qt was published under free Qt license. This was not really viewed as amenable with the free software description of the Free Software Foundation and neither by the Open Source principle as described by the Open Source Initiative. The reason behind this was that it did not allow the distribution of other modified versions.
In 1998, many controversies broke out when it was acknowledged that KDE’s  KDE software compilation would undoubtedly become the leading desktop setting especially for Linux. Owing to the fact that it was founded on a Qt basis, many professionals who took part in the free software movement became apprehensive that an imperative component of one of a leading operating system would become proprietary.
Along with the release of the 2.0 version of the toolbox, the license was transformed to the QPL (Q Public License). QPL was a free software license but it was considered incompatible with GPL by the Free Software Foundation. Trolltech and KDE then sought out many compromises which would imply that Qt will not be regarded by any license more restrictive than QPL, even in the case Trolltech goes bankrupt. This major issue led to the invention of the free Qt foundation by KDE.

How to choose UML tools.

The story for today is about software that help you design UML diagram. How to choose UML tool is base upon the following choice..
-If you use the tool for draw UML Diagram I suggest the follow software
1. MS Visio
2. Poseidon
3. ArgoUML
4. MagicDraw
5. VisualUML
The above-mention software is not for free but however some software have community edition so you can use it for free.
– If you want to use UML tool for developing the complete software project I suggest you try Rational Rose Enterprise,Borland JBuilder Enterprise,Rational XDE or the other specific software that can generate the source code from UML Model such as iLogix,CodaGen,iUML etc.
– If you want to use OpenSource UML Tools, please try…
1.ArgoUML
2.JUDE
3.GIME (on Linux)
4.Dzine
Or visit this link
Now I will introduce popular UML tools, they are MagicDraw and Visual Paradigm.
Visual Paradigm for UML
Features:

– This software was design for varied customers such as Software Engineer, System Analysis,Business Analysis and System Architects.
– Support the latest standards of Java and UML notations.
– Can create the report Documentation in PDF or HTML format.
– It also can export the diagram to different image format (JPG,PNG,SVG etc.)
– Support sequence diagram creation from “Flow of Event” and Collaboration creation from “sequence diagram”.
– GUI (graphical user interface) of this software is easy to understand.
– Support all type of UML Diagrams.
– Visual Paradigm has a features of round-trip engineering for JAVA (Can do code generation from diagram and reverse the source code into diagram).

For more information about Visual paradigm please visit here

MagicDraw
Features:

– Support XMI for UML 2.0
– Support various kind of diagram such as Composite structure diagram , Use Case diagram , Sequence
diagram , Activity diagram , State diagram , Communication diagram ,Implementation diagram and including Component and Deployment diagrams
– Have a step by step guide, (I think this feature make it easy to use).It also has a help api that explain the command thoroughly.
– Can do the reverse engineering (Reverse from the source code back to the Sequence Diagram).This software support round-trip engineering (same as Visual Paradigm).
– It can export project file to many type of file such as GIF, JPG, PNG, PS, EPS, SVG
– Support code in many languages such as JAVA (JAVA 5.0) , C++ (& ANSI C) , C# , .net , COBRA IDL
– It has a security system and also integrate version control (CVS) into its Development Environment

Disadvantage of MagicDraw
– Use high amount of system resource (RAM, Harddisk)
– Hard to use for the person who new to UML design because its has many tools that have many details.
It is not suitable for design a small job. If you want to design a small job I suggest you use MS VISIO instead.
– It is not a Freeware, you must pay for the Full Version.For view the price please look for it here.

Thank you
Jitkasem

Software to manage subversion.

The story for today is about Subversion program and other program that can use with subversion.

I normally separate the subversion program into two groups as follow.

1. Command line subversion program is the subversion program that must use only the command to manage all operation of subversion (such as you must type the command in the “command prompt” of Windows XP) Subversion program in command line interface have many binary files used for manage the subversion system altogether such as “svn.exe”,”svnadmin.exe”,”sveserve.exe”,”svnlook.exe”.The advantage of this subversion series is that it is able to used in many operating system.You can look for the OS
that can be use the subversion in command line style at http://subversion.tigris.org/getting.html#windows.
Another advantage is that it provide the subversion server program (subversion is managed as the
client-server model, so it must set the subversion server first) used for make the subversion server service
that other clients can be connect to.The only disadvantage of this subversion series is that it is difficult
to manage because it is only the command , you must type the command to manage it!! and you also
must read the a lot of the instructions of the command too.The well-known program for this series of
subversion is come from CollabNet at here –> http://www.collab.net/downloads/subversion/

2.Graphical user interface subversion program is the subversion program used only as the subversion client software.

This series of subversion program must used as the integrator with other software or OS.The well-known subversion program in this series is TortoiseSVN (for integrate with windows explorer), Subclipse and Subversive (for integrate with Eclipse IDE),AnkhSVN and VisualSVN (for integrate with Visual Studio), RapidSVN (Cross-platform) etc…

The main advantage of GUI subversion is the ease of use because you don’t have to write the command to control the subversion system , just only use mouse to click at the command you want at the GUI subversion program.However before you can use the GUI Subversion program to control your subversion you must set subversion server service by using Apache subversion module or using the subversion server program that usually come with the subversion command line program.

Subclipse windows.

Subclipse windows.

TortoiseSVN commit windows.

TortoiseSVN commit windows.

For the subversion client software for windows I recommend to use TortoiseSVN because it is easy to use,popular and the software is cover all the necessary operation for manage the subversion system.If you use the eclipse IDE as your development environment I suggest to use Subclipse because of the ease of use and it capability is similar to TortoiseSVN.

If the subversion programs I show you in the above is not enough.I also have other suggestion programs that can be use with the subversion client software to make it better and easy to monitor.They are…

– cvs2svn http://cvs2svn.tigris.org/-> The tool to convert the CVS to SVN.

– CommitMonitor http://tools.tortoisesvn.net/CommitMonitor-> Integrate with TortoiseSVN to look for the commit and the change that happen to the repository.
– WebSVN http://websvn.tigris.org/ -> The web interface for look at the status in subversion system.
– svnnotifier http://svnnotifier.tigris.org/ -> Look for the commit and change that happen to the repository.
– StatSVN http://sourceforge.net/projects/statsvn/-> Look for the statistic of the subversion.
– Bugzilla/SVN integration http://sean-janus.optionpc.com/me/software/bugtraq/ -> scripts to integrate Bugzilla with Subversion.
– Gurtle http://code.google.com/p/gurtle/ -> TortoiseSVN issue tracker plug-in.

For more information about subversion software , please take a look at http://subversion.tigris.org/links.html#clients

By jitkasem pintaya.

Software revision control.

Today i will write the story about software revision control.

Software revision control is an important part of software development.
When we have to develop the large software project that must use many person, software
revision control will take an important role for this situation. Revision control or SCM
(source code management) is the software that have an ability to track and record the
change that happen to software development project and it will do this all the time of
developing the softwar project.

Revision control can also be used with document too.

The principle of revision control system is mostly use Optimistic Technique that is
the method to let many user can reach (Check out) to the same source code.Each user
(I mean programmer) can edit the source code that thay had download and can upload
(Check in / Commit) back to the Revision Control System. SCM has a responsibility to
check for the conflict of the data.The conflict data such as the situation that two user
edit the same file and still edit for the same fuction or the same line.Furthermore the
SCM has an ability to show the difference between the file in each version and can be
used for merge the two files altogerher. In SCM we have to build the Resository as the
data bank to store the data for SCM to use. In present there are many SCM software
such as SVN (subversion), GIT, CVS, Bazaar,IBM ClearCase, Perforce. SCM software also
has both commercial and non-commercial.

In the next article I will write about the comparison of revision control software
and the popular revision control software that are SVN (subversion) and GIT.

Tool for convert the picture file to C source code.

Today the story is about the tool that help you translate the image file into the C source
code.This tool have an advantage in that when you want to show some picture to display on the LCD of
your embedded development platform, you must translate the picture file that you can normally see on
your computer to be the array of color code that will be represented the whole pixels of that picture file (
of course , the array of color code , you can’t see it).It is “BMP2C”.You can get this
program from SourceForge.net by follow this link http://sourceforge.net/projects/bmp2c/

This program is an opensource so you can modify it to suitable for your project, or continue to
develop it to be better than the current version.This program can be used with various LCD driver and can
generate the color data that represent the color of the pixel range up to 32 bits, but it don’t provide the lcd
driver program for you , so if you want to use it you have to write the code to control the LCD driver first.

The disadvantage of this program is that it is a command line program (no gui) however it also can
run on MS windows XP (For Windows Vista  -> I don’t know) .You can easily run it by follow this step.

1. Click at the menu name “Run…” on the Start Menu of Windows XP.
2. Type the word “cmd” on the white blank and then press OK , this will open the command-line
program of Windows XP.
3. Go to the directory that you store the execute file of this program ( name “bmp2c.exe” ) and then run it.
4. follow the instruction ,  afterthis please follow the help document of this program by yourself
(the good document is already come with this program).

please note that this program can be used with the picture file extension “.bmp” only.

Thank you.

Jitkasem.

Incoming search terms for the article:

Good tool for browsing and analyze your source code

Hello, today I will present about the good source code browser & analyzer.
It is “Source Insight”.Source Insight is the program used for browse a big source code.
It can help you to easy jump to the definition of the symbols while you are currently
browsing the source code , this will help you save the time for find the value of that symbol by yourself.
(symbols are such as the variable,the function,constant variable,define directive,or
else that is the symbol in programming language)
It can look for the caller of the current function.Otherwise It can integrate with the
version control such as CVS or SVN by add the version control command to the source insight program.
For more information you can visit the website at www.sourceinsight.com. This program can browse and analysis a various langauge (such as C,C#,C++,JAVA,VHDL,etc).The current version for free Trial is 3.5 and you
can use it for free for 35 days.But if you like it and want to buy it, the price is $239
(for the hard copy,the price may increase more than this price).