Ooad
Ooad
Object-Oriented Analysis and Design (OOAD) is a way to design software by thinking of everything as objects similar to real-
life things. In OOAD, we first understand what the system needs to do, then identify key objects, and finally decide how these
objects will work together. This approach helps make software easier to manage, reuse, and grow.
Q) Object Model:
Programming languages have evolved significantly over time, moving from fundamental machine-
specific code to complex languages that are simpler to write and understand. Each new generation of
programming languages has improved, allowing developers to create more efficient, human-readable,
and adaptable software. The transition from the first low-level languages to current, high-level
languages offered new tools and ideas that continue to influence how we write software today.
Generations of Programming language
There are five generations of Programming languages. They are:
First-Generation Languages :
First-generation languages, often known as machine languages, are the simplest type of computer
language. To interface directly with a computer hardware, these languages use binary code, which
consists of 0s and 1. Because machine languages are designed to be particular to the architecture of
the hardware, 1GL applications are machine-specific and will only execute on the hardware for which
they were originally developed.
Second-Generation Languages :
Second-generation languages, known as assembly languages, introduced human-readable notations,
such as mnemonics, that are easier to understand than binary code. These languages still require
conversion to machine code through an assembler before execution. Assembly language is used
primarily for writing operating systems and device drivers due to its close interaction with hardware.
Third-Generation Languages :
Third-generation languages, also known as procedural languages, are high-level programming
languages designed to be more user-friendly by utilizing syntax similar to human language. This
makes it simpler for programmers to create and understand code. Some well-known examples are C,
C++, Java, FORTRAN, and PASCAL. Before execution, these languages must be converted into
machine code using a compiler or interpreter.
Fourth Generation Languages :
Fourth-generation languages (4GL) are created to simplify programming by using syntax that is more
similar to everyday human language. These languages allow users to focus on specifying what tasks
need to be done, without needing to worry about the specific implementation details. They are widely
used for tasks such as database handling, generating reports, and building graphical user interfaces
(GUIs). Some well-known examples are SQL, Python, Perl, Ruby, and MATLAB.
Fifth Generation Languages :
Fifth-generation languages (5GL) represent the latest stage in programming evolution and focus on
visual programming and artificial intelligence. These languages use visual tools and constraint-based
logic to create programs. Instead of writing step-by-step instructions, the programmer defines goals,
and the system generates the code to achieve them. Examples of fifth-generation languages are
Prolog, OPS5, and Mercury.
The first two generations are called low-level languages. The next three generations are called high-
level languages.
1. First-Generation Language :
The first-generation languages are also called machine languages/ 1G language. This language is
machine-dependent. The machine language statements are written in binary code (0/1 form) because
the computer can understand only binary language.
Advantages :
1. Fast & efficient as statements are directly written in binary language.
2. No translator is required.
Disadvantages :
1. Difficult to learn binary codes.
2. Difficult to understand - both programs & where the error occurred.
2. Second Generation Language :
The second-generation languages are also called assembler languages/ 2G languages. Assembly
language contains human-readable notations that can be further converted to machine language using
an assembler.
Assembler - converts assembly level instructions to machine-level instructions.
Programmers can write the code using symbolic instruction codes that are meaningful abbreviations of
mnemonics. It is also known as low-level language.
Advantages :
1. It is easier to understand if compared to machine language.
2. Modifications are easy.
3. Correction & location of errors are easy.
Disadvantages :
1. Assembler is required.
2. This language is architecture /machine-dependent, with a different instruction set for different
machines.
3. Third-Generation Language :
The third generation is also called procedural language /3 GL. It consists of the use of a series of
English-like words that humans can understand easily, to write instructions. It's also called High-Level
Programming Language. For execution, a program in this language needs to be translated into
machine language using a Compiler/ Interpreter. Examples of this type of language are C, PASCAL,
FORTRAN, COBOL, etc.
Advantages :
1. Use of English-like words makes it a human-understandable language.
2. Lesser number of lines of code as compared to the above 2 languages.
3. Same code can be copied to another machine & executed on that machine by using compiler-
specific to that machine.
Disadvantages :
1. Compiler/ interpreter is needed.
2. Different compilers are needed for different machines.
4. Fourth Generation Language :
The fourth-generation language is also called a non - procedural language/ 4GL. It enables users to
access the database. Examples: SQL, Foxpro, Focus, etc.
These languages are also human-friendly to understand.
Advantages :
1. Easy to understand & learn.
2. Less time is required for application creation.
3. It is less prone to errors.
Disadvantages :
1. Memory consumption is high.
2. Has poor control over Hardware.
3. Less flexible.
5. Fifth Generation Language :
The fifth-generation languages are also called 5GL. It is based on the concept of artificial
intelligence. It uses the concept that rather than solving a problem algorithmically, an application can
be built to solve it based on some constraints, i.e., we make computers learn to solve any problem.
Parallel Processing & superconductors are used for this type of language to make real artificial
intelligence.
Examples: PROLOG, LISP, etc.
Advantages :
1. Machines can make decisions.
2. Programmer effort reduces to solve a problem.
3. Easier than 3GL or 4GL to learn and use.
Disadvantages :
1. Complex and long code.
2. More resources are required & they are expensive too