SOFTWAR
E
ENGINEER
ING
WHAT DOES
SOFTWARE MEANS?
• more than just a program code.
A program is an executable code,
which serves some
computational purpose. Software
is considered to be collection of
executable programming code,
associated libraries and
documentations. Software, when
made for a specific requirement
is called software product.
WHAT DOES
ENGINEERING
MEAN?
• on the other hand, is all
about developing
products, using well-
defined, scientific
principles and methods
SOFTWARE
ENGINEERING
• an engineering branch associated
with development of software
product using well-defined
scientific principles, methods and
procedures. The outcome of
software engineering is an efficient
and reliable software product.
• Various applications software in
cloud computing, green
computing, cyber security, IoT,
EXAMP big data, distributed systems,
supercomputing, quantum
LE computing; Software, algorithms,
and software systems in
agriculture, aviation industry,
business, management,
education, health, government,
military, etc.
• Fritz Bauer, a German
Fritz computer scientist said
that Software engineering
is the establishment and
Bau use of sound engineering
principles in order to
obtain economically
er software that is reliable
and work efficiently on real
machines.
• It is the process of developing a
Softwar software product using software
engineering principles and
e methods. This includes the initial
development of software and its
maintenance and updates, till
Evolutio desired software product is
developed, which satisfies the
n expected requirements.
• Evolution starts from the
requirement gathering process.
After which developers create a
prototype of the intended
software and show it to the users
How? to get their feedback at the early
stage of software product
development. The users suggest
changes, on which several
consecutive updates and
maintenance keep on changing
too. This process changes to the
original software, till the desired
software is accomplished.
• Even after the user has desired
software in hand, the advancing
technology and the changing
requirements force the software
product to change accordingly. Re-
creating software from scratch and
to go one-on-one with requirement
is not feasible. The only feasible and
economical solution is to update
the existing software so that it
matches the latest requirements.
Lehman has given laws for software evolution. He
divided the software into three different categories:
• S-type (static-type) - This is a software, which works
strictly according to defined specifications and
solutions. The solution and the method to achieve it,
both are immediately understood before coding. The
s-type software is least subjected to changes hence
LAW this is the simplest of all. For example, calculator
program for mathematical computation.
• P-type (practical-type) - This is a software with a
S collection of procedures. This is defined by exactly
what procedures can do. In this software, the
specifications can be described but the solution is not
obvious instantly. For example, gaming software.
• E-type (embedded-type) - This software works closely
as the requirement of real-world environment. This
software has a high degree of evolution as there are
various changes in laws, taxes etc. in the real world
situations. For example, Online trading software.
Software Paradigms
• Software paradigms refer
to the methods and steps,
which are taken while
designing the software.
These can be combined
into various categories,
though each of them is
contained in one another:
Software Development Paradigm
This Paradigm is known as software engineering paradigms
where all the engineering concepts pertaining to the
development of software are applied. It includes various
researches and requirement gathering which helps the
software product to build. It consists of –
• Requirement gathering
• Software design
• Programming
Software Design Paradigm
This paradigm is a part of Software Development
and includes –
• Design
• Maintenance
• Programming
Programming Paradigm
This paradigm is related closely to programming
aspect of software development. This includes –
• Coding
• Testing
• Integration
Need of Software Engineering
• Large software - It is easier to build a wall than to a house or
building, likewise, as the size of software become large
engineering has to step to give it a scientific process.
• Scalability - If the software process were not based on scientific
and engineering concepts, it would be easier to re-create new
software than to scale an existing one.
• Cost - As hardware industry has shown its skills and huge
manufacturing has lower down the price of computer and
electronic hardware. But the cost of software remains high if
proper process is not adapted.
• Dynamic Nature- The always growing and adapting
nature of software hugely depends upon the
environment in which user works. If the nature of
software is always changing, new enhancements need to
be done in the existing one. This is where software
engineering plays a good role.
• Quality Management- Better process of software
development provides better and quality software
product.
SEATWORK
• Among those three Software Design Paradigm,
what is the most necessary part of building a
software?
• Give at least 5 P-Type (Practical type) applications,
then define what computer language used, and
what year did they developed it.
• Define the Software Development Life Cycle