You are on page 1of 8

a.

) Waterfall model:-This Model also called Linear sequential


Development Model, this model suggest a systematic Sequential
approach to Software development that begins at the different level and
progress through analysis, design, coding ,testing , and support .Here a
stage cannot begin unless the preceding stage is completed  like in a
waterfall, water flows down to from the upper steps. 

i) Requirement Analysis- This is the most crucial phase for the


whole project, here project team along with the customer makes a
detailed list of user requirements. The project team chalks out the
functionality and limitations(if there are any) of the software they
are developing, in detail. 
ii) system  Design- Before a starting for actual coding, it is highly
important to understand what we are going to create and what it
should look like? The requirement specifications from first phase
are studied in this phase and system design is prepared. This step
is used for hardware and software interfaces.
iii) Implementation and Unit Testing:Now that we have system
design, code generation begins. Code generation is conversion of
design into machine-readable form. If designing of software and
system is done well, code generation can be done easily. 
iv) Integration and System testing:Now the units of the software are
integrated together and a system is built. So we have a complete
software at hand which is tested to check if it meets the functional
and performance requirements of the customer.
v) Operation & maintenance: client feedbacks are taken and any
changes,if required, are made in this phase. This phase goes on till
the software is retired.
Advantages
 Easy to understand, easy to use.
 Appropriate for small Software.
Disadvantages
 Not appropriate for large Software.
 When any changes need than we have to go to initial phase.
Prototyping model:-
  Here, a prototype is made first and based on it final
product is developed. A prototype is a model or a program which is not
based on strict planning, but is an early approximation of the final
product or software system. A prototype acts as a sample to test the
process. From this sample we learn and try to build a better final
product.

It begins with requirements gathering. Developer and Customers meet


and define the overall objectives of the software, identify whatever
requirements are known and identify the areas which require further
definition. In many instances the client only has a general view of what
is expected from the software product. In such a scenario where there is
an absence of detailed information regarding the input to the system, the
processing needs and the output requirements, the prototyping model
may be employed. This model reflects an attempt to increase the
flexibility of the development process by allowing the client to interact
and experiment with a working representation of the product.

advantages:
1) When prototype is shown to the user, he gets a proper clarity and 'feel'
of the functionality of the software and he can suggest changes and
modifications. 
2) This type of approach of developing the software is used for non-IT-
literate people. They usually are not good at specifying their
requirements, nor can tell properly about what they expect from the
software.
Disadvantages:
 1)Too much involvement of client, is not always preferred by the
developer.
 2)Too many changes can disturb the rhythm of the development team.
3)It is like college development projects. we would produce something
that performed the required functions, looked good, but usually was not
the best quality. 

AGILE DEVELOPMENT MODEL:-


Agile model believes that every project needs to be handled
differently and the existing methods need to be tailored to best
suit the project requirements. In Agile, the tasks are divided to
time boxes (small time frames) to deliver specific features for a
release.

The Agile thought process had started early in the software


development and started becoming popular with time due to its
flexibility and adaptability.
Following are the Agile Manifesto principles −
 Individuals and interactions − In Agile development, self-
organization and motivation are important, as are interactions
like co-location and pair programming.
 Working software − Demo working software is considered
the best means of communication with the customers to
understand their requirements, instead of just depending on
documentation.
 Customer collaboration − As the requirements cannot be
gathered completely in the beginning of the project due to
various factors, continuous customer interaction is very
important to get proper product requirements.
 Responding to change − Agile Development is focused on
quick responses to change and continuous development.
 Pros:
The advantages of the Agile Model are as follows −
1. Is a very realistic approach to software development.
2. Promotes teamwork and cross training.
3. Functionality can be developed rapidly and demonstrated.
4. Resource requirements are minimum.
5. Suitable for fixed or changing requirements
6. Delivers early partial working solutions.
7. Good model for environments that change steadily.
8. Minimal rules, documentation easily employed.
9. Enables concurrent development and delivery within an
overall planned context.
10. Little or no planning required.
11. Easy to manage.
Cons:-
1. Not suitable for handling complex dependencies.
2. More risk of sustainability, maintainability and extensibility.
3. An overall plan, an agile leader and agile PM practice is a
must without which it will not work.
4. Strict delivery management dictates the scope, functionality to
be delivered, and adjustments to meet the deadlines.
5. Depends heavily on customer interaction, so if customer is not
clear, team can be driven in the wrong direction.
6. There is a very high individual dependency, since there is
minimum documentation generated.
Object:-
An object can be considered a "thing" with some attributes
and  can perform a set of related activities. The set of activities
that the object performs defines the object's behavior. For
example,Dogs have state (name, color, breed, hungry) and
behavior (barking, fetching, wagging tail). Bicycles also have
state (current gear, current pedal cadence, current speed) and
behavior (changing gear, changing pedal cadence, applying
brakes).

Class:-
In the real world, you'll often find many individual objects all of
the same kind. There may be thousands of other bicycles in
existence, all of the same make and model. Each bicycle was
built from the same set of blueprints and therefore contains the
same components. In object-oriented terms, we say that your
bicycle is an instance of the class of objects known as bicycles.
A class is the blueprint from which individual objects are
created. So it can be said as collection of same type of
objects.for example in java,
Inheritance 
Inheritance is mainly used for code reusability.In the real world
there are many objects that can be specialized. In OOP, a parent
class can inherit its behavior and state to children classes.
Inheritance means using the Predefined Code. This is very main
feature of OOP, with the advantage of Inheritance we can use
any code that is previously created..  Lets say we have a class
called Car and Racing Car . Then the attributes like engine no. ,
color of the Class car can be inherited by the class Racing Car .
The class Car will be Parent class , and the class Racing Car will
be the derived class or child class
Types
single inheritance:-one derived class inherits property from one base
class
multiple :- one derived class inherits property from many base classes.
multi level :-in this many derived classes are inherited from many base
classes
hierarchical:-under this many derived classes can be inherited from
single base class
hybrid       :-it’s a combination of hierarchical and multilevel.

Abstraction 
Abstraction is simplifying complex reality by modeling classes
appropriate to the problem. In other words it means representing
only the important details without including all the details. It is
a Process of exploring relevant details and hiding irrelevant
details this feature is known as Abstraction. In other way
making simplicity to use complex system. One does not want to
understand how to engine works. Similarly one does not have to
understand the internal implementation of the software objects.

Encapsulation
           The wrapping up of data and functions into a single unit
is called as encapsulation. Encapsulation means putting together
all the variables and the methods into a single unit called Class.
The class acts like a container encapsulating the properties. It
can be described as a protective barrier that prevents the code
and data being randomly accessed by other code defined outside
the class. Access to the data and code is tightly controlled by an
interface. For example the class car has a method turn ()  .The
code for the turn() defines how the turn will occur . So we don’t
need to define how Mercedes will turn and how the Ferrari will
turn separately. Turn () can be encapsulated with both.

Polymorphism
Its an important OOPs concept , Polymorphism means taking
more than one forms .Polymorphism gives us the ultimate
flexibility in extensibility. The ability to define more than one
function with the same name is called Polymorphism.
Polymorphism allows the programmer to treat derived class
members just like their parent class’s members. More precisely,
Polymorphism in object-oriented programming is the ability of
objects belonging to different data types to respond to calls of
methods of the same name .If a Dog is commanded to speak(),
this may elicit a bark(). However, if a Pig is commanded to
speak(), this may elicit an oink(). Each subclass overrides the
speak() method inherited from the parent class Animal.

You might also like