Archive for July, 2013


Snippets…

So far we have learnt about the various aspects of the language such as Objects,Classes,OOP etc. Now i think we can start with basic coding such as output operations  or printing a message on the console.

Lets have a look at it.

package basics; // Name of the package

/**
*
* @author aprimit
*/
public class Print {   // Class name  starts with a capital alphabet

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
System.out.println(“Hello User”);
System.out.println(“This is my first java project”);

// TODO code application logic here
}
}

OUTPUT : Hello User

This is my first java project

Lets add,subtract,multiply,divide and find mod of two numbers  with the help of SWITCH statement….Switch statement allows to execute multiple cases with their own respective conditions.


package basics;

/**
*
* @author aprimit
*/
public class Airthematic {

public static void main(String[] args) {
System.out.println(“This program illustrates airthematical operations”);
int a = 10, b = 5, add, sub, mul, div, mod;   // variables are declared and initialised
System.out.println(“First operation is: +”);
add = a + b; //addition performed
System.out.println(add);
System.out.println(“Second operation is:-“);
sub = a – b;  //subtraction performed
System.out.println(sub);
System.out.println(“Third operation is:*”);
mul = a * b;  //multiplication performed
System.out.println(mul);
System.out.println(“Fourth opertion is:/”);
div = a / b;  //division performed
System.out.println(div);
System.out.println(“Fifht operation is:%”);
mod = a % b; //mod performed

System.out.println(mod);
}
}

OOPs…

On the very first day,i mentioned about OOP i.e. Object Oriented Programming.Let us elaborate this term and understand what are the objects  around which JAVA is oriented.

Objects are the components used to build OOP computer programs; each object represents a part of the system. Looking at your Web browser, you saw that objects can represent visible things such as buttons and scrollbars. But OOP is useful for more than merely creating user interfaces.

In an OOP program, everything of importance to the program is represented by an object. Objects can represent real things, like employees or automobile parts or apartment buildings; but objects can also represent more abstract concepts, such as relationships, times, numbers, or even black holes and transfinite dimensions.

Regardless of what kind of objects you use, you’ll want to be able to recognize an object when you meet one. That’s easy to do, because all objects have three properties:

  • Identity: who the object is
  • State: the characteristics of the object
  • Behavior: what the object can do

Let’s take some time to explore these concepts.

Object Identity

Inside your computer program, every object has its own identity . Probably the easiest way to think about identity is to think of it as the object’s name. In this respect, objects act a little bit like variables .

Variables are names we give to data elements that can vary (hence the name), or change as a program runs. You can create a pair of numeric variables in Java like this:

int littleInt, bigInt;

The variables littleInt and bigInt now represent different areas of memory where you can store integer values. If you put a value into the integer named littleInt, it won’t affect the variable bigInt at all. The two variables have different identities.

Objects are a little more complex than simple numeric variables. The name of an object does not represent a particular area of memory, as the name of a simple variable does. Instead, the name of an object refers to, or points to, a particular area of memory. Thus, the same object can have several different names.

Of course, in real life, you cope with this all the time; your children call you “Dad,” your wife calls you “Honey,” and your boss calls you by your given name, all without any confusion as to your real identity. In a similar manner, a single object can have many different names.

Object State

The second property shared by every object is state. The state of an object includes all the information about the object; that is, its attributes or characteristics. In an object-oriented program, each object stores its state in fields or instance variables.

The easiest way to understand state is to look at an example. Take a look at the “Back” button on your Web browser–the button used to return to the last Web page that you’ve visited.

The back button on a Web browser

You’ve already seen that a button is an object; let’s see if you can identify some of the fields that a backButton object (just to give it a name), needs in order to do its job.

If you take a piece of paper and start describing the button, you’ll find you need attributes such as the following:

  • Position: where the button is located on the screen
  • Size: the button’s width and height
  • Caption: any text, such as the word “Back,” that the button displays
  • Image: any icon or image that is displayed on the button’s surface
  • Clicked: whether or not the button is currently selected (pressed)

Each of these attributes can be stored in a field in the backButton object. The state of the object is represented by the combination of all of its fields. For instance, the backButtonobject may display an arrow image but no text, and, if you click on the button with your mouse, it may be depressed. When you stop clicking, the state of the object will change because the value stored in the Clicked field will change from true to false.

The attributes of an object thus remain unchanged, but the state of your object changes as the values stored in its attributes change. Your backButton will always have a Clickedattribute, but the value stored in the Clicked field–and your object’s state–can vary as your program runs.

Object Behavior

The third property shared by all objects is behavior. In Java, the behaviors of an object are represented by procedures called methods.

If you want a particular object to perform some action, you invoke one of its methods. To accent the fact that objects represent fairly self-contained, autonomous units, the process of invoking a method is called sending a message to the object. If you were writing a Web browser program and you wanted to interact with the backButton object that you previously met, you could ask it to change its size, for instance, by sending it a message with the desired size like this:

backButton.setSize(300, 100);

If the backButton object had a method called setSize() , it would obediently carry out your wishes. Unlike an object’s fields, which are generally hidden from outside view, most methods are public , readily accessible to other objects.

  • Before moving ahead,i want to raise one point that JAVA is a purely an OOP language unlike the earlier studied languages like C , C++.
 The next very important concept is CLASSES in JAVA.
If object-oriented programs are collections of cooperating objects, then just what are classes? Although often confused, the difference between classes and objects is simple:

A class represents the definition–the blueprint if you like–that is used to construct an object.

Every object is the run-time incarnation or instantiation of a particular class. A class defines the characteristics of each individual object, and each class can be used to produce many objects. The class shown here, for instance is used to define the characteristics of a laptop computer. The same formula or blueprint can be used to produce any number of individual computers. Classes are used to produce objectsIn object-oriented programs, classes represent a concept that is similar to the concept of variable types. Recall the two numeric variables, bigInt and littleInt, from earlier in this lesson? Both variables share a common type: int. Because they are ints, they can store a certain range of values. The values -12, 0, and 23 are valid ints, but the value 1.5 is not. Also, because bigInt and littleInt are integers, they have certain inherent capabilities; you can divide bigInt by littleInt, for instance.The class of an object describes its attributes (the kinds of states it can assume) and its behaviors (the kinds of operations it can perform). If you return to your Web browser again, and this time turn your attention to the “Forward” button, (let’s call it forwardButton), you’ll immediately notice that is the same “kind” of object as the backButton object you looked at previously, even though it contains a different image and a different caption. The two buttons share a common class.

As you begin writing Java programs, you’ll find that classes are very important. In fact, every Java program you write is a class definition . In your class definitions you describe the attributes that each of your objects possesses, and define the methods that each uses to carry out its actions.

As you write your class definitions, you’ll rely on three very important OOP principles: encapsulationinheritance , and polymorphism.

In the last session, we had discussed about the IDE functionality.We came to know that an IDE can compile,debug,interpret etc.Come on lets study these aspects separately so as to get close to the sequence of the processes that follow after a program has been coded.

The program that we write in the editor of an IDE is called the Source code. This source code is stored as .java file.this file is then compiled by the compiler  which then converts the Source Code written in high level language to machine level language.After compilation the machine code is stored as .class file in the same folder where the .java folder resides,until or unless any specific path is specified.This .class file stores the byte code for the interpreter.Lets have a look  at the following,this will help us to elaborate the above discussion.

Compilers

Grace HopperBy the end of the 1950s, both computers and interpreters had become widely entrenched in the business community. Interpreters and virtual assembly languages such as Speedcode, and Shortcode, allowed programmers to become much more productive. These much more productive programmers did what all productive people do–they produced more stuff; in the programmers’ case they produced bigger and better programs.

Well, bigger anyway.

As programs got bigger, the weaknesses of the interpreter approach became obvious. Because so much of the interpreter’s time was spent translating from “pseudo instructions” into machine language, interpreted programs ran much slower than hand written machine language programs. And, in those days, people were cheap, but computers were expensive.

A programmer named Grace Hopper is credited with an insight that seems obvious in retrospect. Instead of translating Speedcode into machine code every time you run the program, just do the translation once. Save the translated code on disk or tape and reuse it every time you need to run your program. This invention was called the compiler. Today, most programming languages use some form of compiler.

Hopper’s language, called Flowmatic, was the last and greatest, of the 2nd generation languages.

Machine Language

The key to understanding these early stored-program computers–as well as the computers we still use today–is to realize that every CPU understands only one language. This language is called machine language .

  • First, all machine language is a numeric language, because the memory inside your computer can only store numeric data. Even when you work with text [such as viewing this web page], the computer is working with binary numbers. Because of this, writing machine language programs is very slow, tedious, and error-prone.

The process of writing machine language programs. [click to enlarge]

  • Second, every different CPU family uses a different machine language. The machine language for the Intel Pentium is entirely different from the machine language used on the Macintosh or the Sun SPARC.

Interpreters

Computers completely lack intuition and common sense. They follow their programmed instructions in a literal–in fact, mechanical–way. You can’t just tell your computer to “print the budget report”; you have to explain every single step.In machine and assembly language, things are even worse. Something as simple as printing a sentence on the screen can take half a page of code; and often, it’s the same half page of code that you’ve written a dozen times already.

To lessen the burden of repetition, and to increase productivity, programmers started to create libraries of code that performed common tasks. Along with these libraries, they also started inventing “higher-level” versions of assembly language. In these higher level languages you could:

  • Combine many lines of assembly code into a single instruction, called a macro. Instead of writing 50 lines of code to print a single line of output, you’d use only one.
  • Avoid having to translate your program into assembly or machine language.

Even with these “high-level” assembly languages, the computer still only understood machine language. Instead of using an assembler, however, these systems used a second program running on the computer to read each “psuedo instruction” and produce machine code. This second program, called an interpreter, only generated machine code when the program actually ran.

The Process of Programming 

When programming with a high-level language, there are certain operations that must be followed. This mechanical process is called the 

edit-compile-run

 cycle of programming. Learning this process is not the same as learning how to program; you must master the process–that is necessary–but mastering the process doesn’t mean you’ll write good, or even acceptable programs.

The Edit-Compile-Run cycle [click to enlarge]

Here are the steps in the process:

Edit

When you write a program in a high-level language, you write your instructions–in the form of programming language statements–using a text editor. The document you produce at this stage is called 

Source code

Compile

Once you’ve written your program, you 

compile

it by using a software program called a compiler. The compiler turns your source code into machine language and produces another document called 

object code If your program fails to compile, (if you have “grammatical” or 
sytnaxerrors in your source code), then you must re-edit the code until it compiles correctly.Once a program compiles without errors, it is syntactically correct. It still may contain runtime errors, or logic errors, however.

Run

Once your program compiles, you 

run

it. All high-level languages require a significant amount of additional machine-language code–in addition to the code you’ve written–before your program will actually run. How this additional code is added to your program varies from language to language and from system to system. Generically, this is called 

linking

. Today, this often happens behind the scenes, and you don’t really have to worry about it.

When you run your program, the first thing you’ll want to do is to verify that it runs as you expect it. This process is called testing. It is not uncommon to find that your program has some logic errors that can only be discovered when the program runs. These errors may even make your program “crash”. These kinds of errors are called runtime errors.

To fix a runtime error, you go back to the very first step–your source code–and make changes there, repeating the edit-compile-run cycle until the program runs correctly.

JAVA & IDE…

After learning about the different kind of application programs that can be implemented in java,the next important question that arises is Where to write JAVA programs alias code…??
One place to write the code is a simple editor such as Notepad,Notepad++, Gedit etc and the other one is an IDE. IDE stands for Integrated Development Environment, as the name suggests IDE provides a user with an editor,compiler,interpreter,debugger etc. In case of former, we have to use a terminal to run programs and accordingly need to change the paths so as to locate the .java and .class files.All these tasks are automatically handled by the IDE.

I preffered NETBEANS IDE because it is :

A free, open-source Integrated Development Environment for software developers. All the tools needed to create professional desktop, enterprise, web, and mobile applications with the Java platform, as well as with C/C++, PHP, JavaScript and Groovy.

I went upto the link http://netbeans.org/ and downloaded the NetBeans IDE 7.0.1 as .sh file.

Setting Up the Project

To create an IDE project:

  1. Start NetBeans IDE.
  2. In the IDE, choose File > New Project (Ctrl-Shift-N).
  3. In the New Project wizard, expand the Java category and select Java Application.Then click Next.
  4. In the Name and Location page of the wizard,specify the NAME,LOCATION of the project folder etc.Click Next.
  5. Specify the package and the class name after completing the Step 4.
  6. Start Coding.

Introducing JAVA Tech…..

Now since we have talked about the origin and pioneers of JAVA. Its time to get yourself introduced to the language.The following statement not only defines JAVA but also mentions its various eminent features.

“A Simple, Object-oriented, Distributed, Interpreted, Robust, Secure, Architecture-neutral, Portable, High-performance, Multithreaded, Dynamic Programming Language”

The above mentioned features form the major principles of the language.

 Versions

Major release versions of Java, along with their release dates:

  • JDK 1.0 (January 23, 1996)
  • JDK 1.1 (February 19, 1997)
  • J2SE 1.2 (December 8, 1998)
  • J2SE 1.3 (May 8, 2000)
  • J2SE 1.4 (February 6, 2002)
  • J2SE 5.0 (September 30, 2004)
  • Java SE 6 (December 11, 2006)
  • Java SE 7 (July 28, 2011)

The “Three Faces” of Java

A well-known Indian legend tells the story of seven blind men describing an elephant. The one who felt the trunk thought the elephant was like a snake, the one who felt the legs thought the elephant was like a tree, and so on.

Java is a little bit like that; you’ll often hear people say things like:

  • “Java is slow” or, less often, “Java is as fast as C++”
  • Java programs look “strange”
  • Java is better for building Web applications than Microsoft .NET
  • Microsoft .NET supports Java along with other programming languages
  • Java is cross-platform while VB-script only works in Internet Explorer

Each of these statements, except the last, contains a kernel of truth; each also suffers from confusion between the three parts of the Java platform. In reality, Java is:

  • an object-oriented programming language. The Java language, like C++ or SmallTalk, can be supported on different runtime systems, like Microsoft’s .NET.
  • an interpreter-based runtime system called the Java Virtual Machine or JVM. There are several differnt kinds of JVM’s. Some use an interpreter, some use a Just In Time compiler [JIT].
  • a set of universally distributed classes called the Java Class Libraries. The class libraries provide support for GUI programming, network and file I/O, etc.

The combination of all three of these are called a Java platform. The most commonly used Java Platform is supplied by Sun [called the JRE], but there are also versions supplied by Apple, Microsoft, IBM, HP, and so on.

The three faces of Java

Types of Java Programs

There are three major types of Java programs: applets, applications, and servlets.

Applets

Java applets are Java programs that are “hosted” inside a Web page. Here’s how Java applets work:

  • The compiled machine code for your program is stored on a Web server.
  • The code is automatically downloaded when a user visits your Web page.
  • The user’s Web brower loads a Java Virtual Machine when it encounters a Java applet, and then runs the applet inside the browser’s JVM. This is similar to the way Flash/Shockwave animation, or other plugins are handled.
  • For safety sake, Java applets are prohibited from performing actions that might damage a user’s machine if used maliciously. Applets cannot read and write files on the user’s local machine, for instance.

Sometimes, you’ll hear this called “client-side” Java. In this course, most of your homework assignments will consist of Java applets.

Applications

Java applications are programs that are installed and run on the user’s local machine, in the same way you would install and run a program written in Visual Basic or C++. There are two kinds of Java applicatons:

  • Console-mode applications – These are traditional “teletype-style” programs similar to those you’d write in a Pascal or C++ class.
  • GUI applications – These graphical programs use windows, buttons, and mice to create the kind of interactive programs you’re used to.

Java actually contains two different GUI libraries, the original AWT [Abstract Window Toolkit] which uses your computer’s native look-and-feel, and the JFC [Java Foundation Classes], which provides a set of advanced components that can be made to look and feel the same on all platforms.

Server-Side Java

A third kind of Java program is called a server-side application. Server-side applications are not downloaded or installed on the user’s computer. Instead, the Java program runs on an Application Server, and only the input or output is sent to the user’s machine.Server-side applications are most often accessed through a Web browser, and are used for ecommerce and other interactive Web sites. We won’t do any server-side Java in this course.

I m going to share my experience as well as learnings in JAVA Core(J2SE) & JAVA Advanced(J2EE) through out the training period. I hope this will become a brief tutorial for my readers and I will try to present my views vividly,however I strictly suggest them, not to rule out from their reckoning the fact that I am not an experienced programmer, so please cross check the information provided here with some other source.

So shall we start..??

Here we go..!!

Before getting deeper into the programming stuff,we shall know what are we going to study.Next thing,why is it important to study this high level language.

Let me give you a brief history of JAVA .

History

Before Java, we had studied C,C++ languages.C is one of the most basic programming language taught all over.An advancement over this was C++.As the name suggests,this has some plus points over the basic C.I am listing the major differences between the two :

  • C follows the procedural programming paradigm while C++ is a multi-paradigm language(procedural as well as object oriented)
  • In case of C, the data is not secured while the data is secured(hidden) in C++
  • C is a low-level language while C++ is a middle-level language
  • C uses the top-down approach while C++ uses the bottom-up approach
  • C is function-driven while C++ is object-driven
  • C++ supports function overloading while C does not
  • We can use functions inside structures in C++ but not in C.
  •  The NAMESPACE feature in C++ is absent in case of C
  •  The standard input & output functions differ in the two languages
  •  C++ allows the use of reference variables while C does not.

Java is a programming language originally developed by James Gosling at Sun Microsystems (which has since merged into Oracle Corporation) and released in 1995 as a core component of Sun Microsystems’ Java platform. The language derives much of its syntaxfrom C and C++ but has a simpler object model and fewer low-level facilities. Java applications are typically compiled to bytecode (class file) that can run on any Java Virtual Machine (JVM) regardless of computer architecture. Java is a general-purpose, concurrent, class-based, object-oriented language that is specifically designed to have as few implementation dependencies as possible. It is intended to let application developers “write once, run anywhere” (WORA), meaning that code that runs on one platform does not need to be recompiled to run on another. Java is as of 2012 one of the most popular programming languages in use, particularly for client-server web applications, with a reported 10 million users.

James Gosling, Mike Sheridan, and Patrick Naughton initiated the Java language project in June 1991.[11] Java was originally designed for interactive television, but it was too advanced for the digital cable television industry at the time.[12] The language was initially called Oak after anoak tree that stood outside Gosling’s office; it went by the name Green later, and was later renamed Java, from Java coffee, said to be consumed in large quantities by the language’s creators.[13] Gosling aimed to implement a virtual machine and a language that had a familiar C/C++ style of notation.[14]

Sun Microsystems released the first public implementation as Java 1.0 in 1995. It promised “Write Once, Run Anywhere” (WORA), providing no-cost run-times on popular platforms. Fairly secure and featuring configurable security, it allowed network- and file-access restrictions. Major web browsers soon incorporated the ability to run Java applets within web pages, and Java quickly became popular. With the advent of Java 2 (released initially as J2SE 1.2 in December 1998–1999), new versions had multiple configurations built for different types of platforms. For example, J2EE targeted enterprise applications and the greatly stripped-down version J2ME for mobile applications (Mobile Java). J2SE designated the Standard Edition. In 2006, for marketing purposes, Sun renamed new J2 versions as Java EE, Java ME, and Java SE, respectively.


Planning & Coordination (PC) earlier known as Technical Coordination (TC) Division, was established in the early years of formation of TBRL at Sector-30,Chandigarh with an objective to coordinate all the technical activities of the laboratory.As this laboratory was entrusted with design,development and testing of armament stores so this division was the key functionary between the DRDO HQrs,various groups of this laboratory,other sister laboratories and various outside agencies for technical coordination.Till 2005,this division was also performing the duties of Human Resource Development at TBRL Office,Sector 30,Chandigarh.In order to have more effective coordination between various divisions of TBRL,DRDO HQrs and outside agencies,in May 2008,this division was shifted to TBRL Range Ramgarh where it was located in Instrumentation (old) building in Zone-1.The efficient functioning of the division has been possible due to committed and dedicated manpower with full support from top management.

Currently,Planning & Coordination is located in Advanced Research Centre Building (Old SASE buliding) and sections under Resource Management are located in 2nd floor of main building at Sector-30,Chandigarh.

Planning & Coordination is dedicated to provide quality services in the area of project planning & monitoring to utmost professionalism.

Main charter duties of Planning & Coordination

  • Tracking running projects and evolving new projects
  • Technical Correspondence with DRDO HQrs,Sister DRDO laboratoriers, and outside agencies
  • Preparation of various types of documents/reports e.g. Corporate Review Document,Technology Focus,Annual Report of TBRL/DRDO/MOD formation & processing of project proposals,organising various workshops aand visits.
  • Preparation of cases for Foreign Deputation Of Scientists.

COMPANY PROFILE

DEFENCE RESEARCH & DEVELOPMENT ORGANISATION

Defence Research & Development Organization (DRDO) works under Department of Defence Research and Development of Ministry of Defence.

Image

DRDO Bhawan, New Delhi, The Headquarter of DRDO

DRDO dedicatedly working towards enhancing self-reliance in Defence Systems and undertakes design & development leading to production of world class weapon systems and equipment in accordance with the expressed needs and the qualitative requirements laid down by the three services. DRDO is working in various areas of military technology which include aeronautics, armaments, combat vehicles, electronics, instrumentation engineering systems, missiles, materials, naval systems, advanced computing, simulation and life sciences.

DRDO was formed in 1958 from the amalgamation of the then already functioning Technical Development Establishment (TDEs) of the Indian Army and the Directorate of Technical Development & Production (DTDP) with the Defence Science Organization (DSO). DRDO was then a small organization with 10 establishments or laboratories. Over the years, it has grown multi-directionally in terms of the variety of subject disciplines, number of laboratories, achievements and stature.

Today, DRDO is a network of more than 51 laboratories which are deeply engaged indeveloping defence technologies covering various disciplines, like aeronautics, armaments, electronics, combat vehicles, engineering systems, instrumentation, missiles, advanced computing and simulation, special materials, naval systems, life sciences, training, information systems and agriculture. The organization includes more than 5,000 scientists and about 25,000 other scientific, technical and supporting personnel.

Image

DRDO VISION & MISSION

Vision:-Make India prosperous by establishing world class science and technology base and provide our Defence Services decisive edge by equipping them with internationally competitive systems and solutions.

Mission:-

Design, develop and lead to production state-of-the-art sensors, weapon systems, platforms and allied equipment for our Defence Services. Provide technological solutions to the Services to optimize combat effectiveness and to promote well being of the troops. Develop infrastructure and committed quality manpower and build strong indigenous technology base.

LABORATORIES

Aeronautics:-

  • Aeronautical Development Establishment (ADE), Bangalore
  • Aerial Delivery Research & Development Establishment (ADRDE), Agra
  • Centre for Air Borne Systems (CABS), Bangalore
  • Defence Avionics Research Establishment (DARE), Bangalore
  • Gas Turbine Research Establishment (GTRE), Bangalore
  • Center for Military Airworthiness & Certification (CEMILAC), Bangalore

Armaments:-

  • Armament Research & Development Establishment (ARDE), Pune
  • Centre for Fire, Explosive & Environment Safety (CFEES), Delhi
  • High Energy Materials Research Laboratory (HEMRL), Pune
  • Proof & Experimental Establishment (PXE), Balasore
  • Terminal Ballistics Research Laboratory (TBRL), Chandigarh

Combat Vehicles and Engineering:-

  • Combat Vehicles Research & Development Est. (CVRDE), Chennai
  • Vehicle Research & Development Establishment (VRDE), Ahmednagar
  • Research & Development Establishment (R&DE), Pune
  • Snow & Avalanche Study Estt (SASE), Chandigarh

Electronics & Computer Sciences:-

  • Advanced Numerical Research & Analysis Group (ANURAG), Hyderabad
  • Center for Artificial Intelligence & Robotics (CAIR), Bangalore
  • DRONA CELL, Delhi
  • Defence Electronics Application Laboratory (DEAL), Dehradun
  • Defence Electronics Research Laboratory (DLRL), Hyderabad
  • Defence Terrain Research Laboratory (DTRL), Delhi
  • Defence Scientific Information & Documentation Centre (DESIDOC), Delhi
  • Instruments Research & Development Establishment (IRDE), Dehradun
  • Laser Science &  Technology Centre (LASTEC), Delhi
  • Electronics & Radar Development Establishment (LRDE), Bangalore
  • Microwave Tube Research & Development Center (MTRDC), Bangalore
  • Scientific Analysis Group (SAG), Delhi
  • Solid State Physics Laboratory (SSPL), Delhi

Human Resource Development:-

  • Defence Institute of Advanced Technology (Deemed University), Pune
  • Institute of Technology Management (ITM), Mussorie

Life Sciences:-

  • Defence Agricultural Research Laboratory (DARL), Pithoragarh
  • Defence Bio-Engineering & Electro Medical Laboratory (DEBEL), Bangalore
  • Defence Food Research Laboratory (DFRL), Mysore
  • Defence Institute of Physiology & Allied Sciences (DIPAS), Delhi
  • Defence Institute of Psychological Research (DIPR), Delhi
  • Institute of Nuclear Medicine & Allied Sciences (INMAS), Delhi
  • Defence Research & Development Establishment  (DRDE), Gwalior

Materials:-

  • Defence Laboratory (DLJ), Jodhpur
  • Defence Metallurgical Research Laboratory  (DMRL), Hyderabad
  • Defence Materials & Stores Research & Development Establishment  (DMSRDE), Kanpur

Missiles:-

  • Defence Research & Development Laboratory (DRDL), Hyderabad.
  • Institute of Systems Studies & Analyses (ISSA), Delhi.
  • Integrated Test Range (ITR), Balasore
  • Research Center Imaret (RCI), Hyderabad

Naval Research & Development:-

  • Naval Materials Research Laboratory (NMRL), Ambernath
  • Naval Physical & Oceanographic Laboratory

(NPOL), Cochin

  • Naval Science & Technological Laboratory (NSTL), Vishakhapatnam