Khangharoth

December 20, 2006

Java Resources

Filed under: Java — khangharoth @ 5:50 pm

Hi ,

When a Fresher joins in our company , its a big task to teach him for the whole team as everyOne is overloaded with work.Probabbly this is the case in all small companies who dont recruit in batches . On net i got this list of Java Web-sites and i am hoping to keep editing it for any new finding.

1.www.freejavaguide.com
2.www.redhotjava.com
3.www.java-swing-tutorial.com
4.www.exampledepot.com
5.www.javaalmanac.com
6.www.java2s.com
7.www.javaworld.com
8.www.java.net
9.www.javaboutique.internet.com
10.www.apl.jhu.edu
11.www.ies.co.jp
12.www.javacoffeebreak.com
13.www.javaranch.com
14.www.jguru.com
15.www.programmersheaven.com
16.www.javalobby.org
17.www.onjava.com
18.java.sys-con.com
19.www.javaskyline.com
20.java.ittoolbox.com
21.www.javaworld.com
22.planetjava.org
23.www.securingjava.com
24.servlets.com
25.www.javaprepare.com
26.www.idevelopment.info
27.www.theserverside.com
28.www.javapassion.com

Hopefully now fresher will have more time to study than googling on net for material 馃檪

December 16, 2006

A Thing called UML.

Filed under: Software Design — khangharoth @ 8:30 am

UML

What is UML?

a) Was released in 1997.

b) A method to diagram software design.

c) Designed by a consortium of the best minds in object oriented analysis and

聽聽聽聽聽聽聽聽聽 design.

So in all The Unified Modeling Language (UML) is a graphical language for visualizing, specifying, constructing, and documenting the artifacts of a software-intensive system.”

Goals of UML

a) Provide users with a ready-to-use, expressive visual modeling language so they can develop and exchange meaningful models.

b) Provide extensibility and specialization mechanisms to extend the core concepts.

c) Be independent of particular programming languages and development processes.

d) Provide a formal basis for understanding the modeling language.

e) Encourage the growth of the OO tools market.

f) Support higher-level development concepts such as collaborations, frameworks, patterns and components.


Benefits of UML

a) Your software system is professionally designed and documented before it is coded. You will know exactly what you are getting, in advance.

b) Since system design comes first, reusable code is easily spotted and coded with the highest efficiency. You will have lower development costs

c) Logic ‘holes’ can be spotted in the design drawings. Your software will behave as you expect it to. There are fewer surprises.

d) The overall system design will dictate the way the software is developed. The right decisions are made before you are married to poorly written code. Again, your overall costs will be less.

e) UML lets us see the big picture. We can develop more memory and processor efficient systems.

f) When we come back to make modifications to your system, it is much easier to work on a system that has UML documentation. Much less ‘relearning’ takes place. Your system maintenance costs will be lower.

g) If you should find the need to work with another developer, the UML diagrams will allow them to get up to speed quickly in your custom system. Think of it as a schematic to a radio. How could a tech fix it without it?

h) If we need to communicate with outside contractors or even your own programmers, it is much more efficient.


UML defines the notation and semantics for the following domains:

a) The User Interaction or Use Case Model – describes the boundary and interaction between the system and users. Corresponds in some respects to a requirements model.

b) The Interaction or Communication Model – describes how objects in the system will interact with each other to get work done.

c) The State or Dynamic Model – State charts describe the states or conditions that classes assume over time. Activity graphs describe the workflows the system will implement.

d) The Logical or Class Model – describes the classes and objects that will make up the system.

e) The Physical Component Model – describes the software (and sometimes hardware components) that make up the system.

f) The Physical Deployment Model – describes the physical architecture and the deployment of components on that hardware architecture.

December 13, 2006

Quote On Software design

Filed under: Software Design — khangharoth @ 1:30 pm
  • God and Software Design ,both are beyond the capabilities of human mind.And still both have followers who claim that they knew it all.

As i am sitting in office late at night pondering about the architecture of my current Desktop Application. Its a CAD application with Graphics , 3D-Maths, Dynamic User interaction ,Multi-Threadng : i mean we have all that to make anyone’s mind spin but i am still tryng to make my way through this.

Suddenly a thought came to mind : Had i envisaged the project well , am i sufficiently Zoomed into the Design part ? And how will i be sure that i know my Software well so that their are no nasty surprises in store.

Java 5.0 ” Tiger”

Filed under: Java — khangharoth @ 3:40 am

Well as Sun is about to launch Musthang ,most of us has still not started using Java 5.0 to its full potential.

Well if you are using Eclipse than its version 3.1 onwards has incoprated the support for Tiger but default

setting are still to Jdk 1.4 which is kind of Sad as eclipse guys should have done this.Anyway you can go to

windows—>prefrences—->java —>compiler –>compiler compliance level to 5.0

Their are numerous changes but as a programmer we guys would be mainly concerned with the “Language Features”

So they are :

Generics

Enumerated types

Automatic Boxing and Unboxing of Primitive Values

Enhanced for loop

Static Import

Varargs

Just go through the links and you’ll get hang of these.Even if you are short of time i’ll recommend “Generics “

“Enhanced For Loop” as effect of these featurs on a code from readability prespective is huge.

Here their are doubts about performance while using these features so lets analyse them.

1) In Generics ,their is no impact on Run-time performance as compiler would remove them from class files!

Yes this is only compile time check and ArrayList<Interger> a=new ArrayList<Interger>(); and

ArrayList a=new ArrayList(); will be same at Run-time.Compiler will do the explict casting in the code

and not you so code will be cleaner and easier to read.

2) In AutoBoxing and unBoxing again performance will be same as whaterver casting you would have done will

be done by compiler but essentially the code will be same.

But be carefull while using this feature with Gernerics ,see the code below

ArrayList<Integer> intArraylist=new ArrayList<Integer>();

intArraylist.add(null);

int num=intArraylist.get(0);

 

And boom their will be nullPointer when ideally you were dealing with primitives.

But still this is easier to debug than nasty ClassCastException as somebody has added

some other class in ArrayList.Dont worry about this in Tiger.

One more thing worth metioning is Concurrency Utilities : A comprehensive library of concurrency utilities has been developed and included in Java 5.0

 

 

 

Create a free website or blog at WordPress.com.