Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 12

Program vs.

software
products &
emergence of
software engineering
AMAN KUMAR SINGH

2819381
Program
 The use and need of computers is widespread in today’s world.

 The computer system is however incapable of working on its own and needs certain instructions to
do anything.
 These instructions are provided to the computer system by a computer programmer.

 A collection of instructions meant to perform a specific task, written by a computer programmer is


called a program.
Product
It is made only on the request of an enterprise.

 The team of developers undertakes the making of the product (called project).

 A software product is the finished project which was made after performing the various software
development life cycle stages.

 After the completion of these stages the product comes into existence.

 It is then made in more numbers, for distribution.

 The software product is made to solve a specific problem.


Program v/s Product
Program contains a set of instructions designed to Product is the final manufacture and production of
complete a specific task. the project.

They are usually small in size. They are lines of Very big inside. The lines of codes are in thousands
code or maybe 100 to 2000 lines codes on little To lacs maybe more, depends on Software Product.
more.
It is handled by the program managers. It is handled by product managers.

Developer himself is sole user. Large or vast number of users.

There is no or lacks proper user interface. There is proper and full well designed user
interface.
Emergence of software
engineering
There are mainly Six Stages of the Emergence of Software Engineering:

1. Early Computer Programming.

2. High-level Language Programming.

3. Control Flow-based Design.

4. Data Structure-oriented Design.

5. Data Flow-oriented Design.

6. Object-oriented Design.
Early Computer Programming
 Programs were being written in assembly language.

 Programs were limited to  about a few hundreds of lines of assembly code.

 Every programmer developed his own style of writing programs.

 Program lengths typically limited to about a few hundred lines of monolithic assembly code.

 Every programmer developed his individualistic style of writing programs.

 According to his intuition and used this style ad hoc while writing different programs.
High-level Language Programming
Computers became faster with the introduction of semiconductor technology in the
early 1960s.

Faster semiconductor transistors replaced the prevalent vacuum tube-based circuits in a


computer.

With the availability of more powerful computers, it became possible to solve larger and
more complex problems.
Control Flow-based Design
A program’s control flow structure indicates the sequence in which the program’s
instructions are executed.

To help develop programs having good control flow structures, the flowcharting
technique was developed.

Even today, the flowcharting technique is being used to represent and design
algorithms.
Data Structure-oriented Design
Computers became even more powerful with the advent of Integrated Circuits (ICs) in
the early 1970s.

These could now be used to solve more complex problems.

Software developers were tasked to develop larger and more complicated software,
which often required writing more than several tens of thousands of lines of source
code.
Design techniques based on this principle are called Data Structure-oriented Design.
Data Flow-oriented Design
As computers became still faster and more powerful with the introduction of very large
scale integrated (VLSI) Circuits and some new architectural concepts, more complex and
sophisticated software was needed to solve further challenging problems.
 Software developers looked out for more effective techniques for designing software
and Data Flow-Oriented Design techniques proposed.
The functions also called processes and the data items that exchanged between the
different functions represented in a diagram known as a Data Flow Diagram (DFD).
Object-oriented Design.
Object-oriented design technique is an intuitively appealing approach.

Where the natural objects (such as employees, etc.) relevant to a problem are first
identified.
Then the relationships among the objects such as composition, reference, and
inheritance are determined.

Each object essentially acts as a data hiding also known as data abstraction.
Thank you…

You might also like