2.1 Introduction


"Paradigm", an old Greek word means "example", it refers to a group of entities which have characteristic in
common.
Software engineering paradigms are also known as Software engineering models or Software Development
Models.
In order to reduce the potential chaos of developing software applications and systems, we use software
process models and paradigms that describe the activities and processes that are required for building
high-quality systems.
The specific process model or paradigms used to develop a given system depends heavily on the nature of
the target system. Use of software paradigms in the development of the software processes has many
benefits, including supporting systematic approach and the use of standard approaches and methodologies.
The software engineering paradigm which is also referred to as a software process model or Software
Development Life Cycle (SDLC) model is the development strategy that encompasses the process, methods
and tools. SDLC describes the period of time that starts with the software system being conceptualized and
ends with the software system been discarded after usage.

2.1 Introduction


The objectives of the use of software engineering paradigms include:
The software development process becomes a structured process.
Determine the order of states involved in software development and evolution, and to establish the
transitions criteria for the next stage.
The software engineering paradigm provides the guidance to the software engineer.
A paradigm specifies the particular approach or philosophy for designing, building and maintaining software.
Each paradigm has its own advantages and disadvantages which make some paradigm more suitable to be
used in developing a given software system in a given situation than another.
The techniques, tools procedures and methods in developing software systems are heavily dependent on the
selected paradigm.
There are common software process tasks, phases and activities that are modeled by software models. They
are heavily affected by selected software paradigms.

2.1 Introduction


These tasks, phases and activities include:
Requirements engineering: software specification and functional requirements obtained from the user.
Requirements analysis and modeling.
Architectural engineering, implementation and design: production of the software system as a product.
Software testing and validation: activity that assures the system requirements are met.
System delivery.
Software evolution and upgrading: system modification to meet continuing customer needs.
System documenting.
Maintenance.

2.1 Introduction


History of software paradigms
Since the development of the early projects of large software systems in the 1950's and 1960's computer
scientists started to develop Software Development Life Cycle (SDLC) models to govern the whole process of
development.
Many software process models have been developed over the years.
The purpose of these models was to be used as a guide and a conceptual scheme to manage the system
software project in a systematic, formal and procedural way.
They also provide a guide for the development of software applications.
Software models are used to guide the various tasks of the software system project through many activities
like planning, organizing, coordinating, staffing, budgeting, and managing software development activities.
A variety of different process models have evolved and improved over the years.
Each represents an attempt to bring order to an inherently chaotic activity.
Each of the models is characterized in a way that ideally assists in the control and coordination of a software
project.
The difference between various software models include that they emphasize different aspects of the stages
of the SDLC.

2.1 Introduction


And each is suitable to be used for projects that require a degree of importance in those aspects.
In the early stages of the evolution of the software models, these models were classic, traditional and
immature.
Since the 1950's and 1960's, many descriptions of the classic software life cycle have been developed. The
first software model is the "waterfall" model.
The software models are usually describes as flowcharts.
These flowcharts summarize in a single display how developing stages of large software systems are
conducted.
These flowcharts are also used to present and describe the corresponding software model to customers,
business manager, and development programmers.