Gone are the days when Java was considered a toy language for creating web games, trying to catch up to its big brothers C and C++. Now Java is everywhere, database interactions, financial domains, e-commerce, and you name it. Please look at Java 1.5, code named Tiger. It is also known as Java 5. Seems more like a completely new product than the revision of an old language. Tiger is full of dramatic and innovative changes to what you know as simply Java.

This session is built in such a way as to provide those fundamental knowledge in refactoring, designing reusable components, programming to interfaces, design patterns and some tips and tricks so that you can immediately go back and apply to your systems if you have not done so yet. The session would be suiting to those future Java programmers to get equipped with the latest trends and principles in designing and architecting efficient Object Oriented Systems.

I am going to provide a learning exercise on the use of Tiger, with some coding examples. The tutorial is structured as below:-


Objects from first principles
- The first class objects
- Collaboration is OO System - Illustration
- Metaclasses and MOP

- Interface Inheritance
- Implementation Inheritance
- Inheritance is Delegation - Illustration

- Bertrand Mayer's Open Close Principle - Illustartion
- Liskov's Substitution Principle - Illustration
- Dynamic Binding - The great benefit
- Mayer's Assertion Re-declaration Rule
- When to Introduce States in OO Systems?

Principles for good design
- Metamorphosis : Static-Dynamic Segregation
- Combination Explosion
- Dependency Inversion Principles

Taming the Tiger
- Generics
- Enumerated Types
- Autoboxing and Unboxing
- Variable Arguments
- Annotations
- Static Imports and Threading



Information About the Speaker

Ravi Shankar. N,
Senior Consultant,
Email: rshankarn@acm.org


Ravi Shankar is currently an Associate Manager in Singapore, specializing in designing and architecting advanced Java applications in the broad areas of J2SE, J2EE and J2ME, in particular in enterprise mission critical applications. From his last 12 years of excellent track record as a Software Engineer, Trainer, Senior Consultant and Senior Software Engineer in Hyderabad (first seven years) and Singapore (later five years), Ravi has a vast expertise to bring in implementing and delivering high quality systems. In addition, he had taught numerous students, who range from undergraduates to project leads and has established himself as a highly-regarded trainer and developer famed for his caliber and efficiency.

Ravi is a frequent speaker for both local and national seminars and conferences where his presentations have benefits many IT professionals. In particular, he participated and presented a paper on "Blending Mathematics and Computer Science" at ISTAM-99 (Indian Society for Theoretical and Mechanical Sciences) as well as other topics on "Implementation of Visual Media in Teaching" and "Expert Systems and Artificial Intelligence". He has also authored several tutorials on C, C++, Oracle and Java and has been a regular columnist in their local newspapers. Ravi was a selected speaker in International Java ONE conference in Japan in September 2002, where he had presented two papers on "Thoughts on Inheritance" and "Exploring Extreme Programming".

As software design and implementation goes beyond just classroom knowledge and books, Ravi's industrial experiences and know-how will undoubtedly be the key differentiator as a preferred architect. As an early adopter of Java and J2EE since their inception and with his skillful delivery and interpersonal skills the valued customer can expect to have feature rich reusable and maintainable solutions which will be equipped for the latest trends and challenges in software development.

Ravi is an ACM ( Association of Computing Machinery) Professional Member, IAENG member and he is technical committee member for OASIS's Framework for Web Services Implementation. He is a Sun Certified Java Programmer.