Intr SE
Intr SE
Intr SE
INTRODUCTION
TO
SOFTWARE ENGINEERING
Software Engineering
● Software Engineering (SE) is a profession
dedicated to designing, implementing, and
modifying software so that it is of higher
quality, more affordable, maintainable, and
faster to build.
● Systematic collection of past experience:
– Techniques,
– Methodologies,
– Guidelines.
The IEEE Definition…
• The IEEE Computer Society's
Software Engineering Body of Knowledge defines
"software engineering" as the application of a
systematic, disciplined, quantifiable approach to the
development, operation, and maintenance of
software, and the study of these approaches; that is,
the application of engineering to software.
(Project Closure)
PROGRAM vs SOFTWARE
PROGRAM SOFTWARE
• Usually small in size • Large
• Author himself is sole user • Large number of users
• Single developer • Team of developers
• Lacks proper user interface • Well-designed interface
• Lacks proper • Well documented & user-
documentation manual prepared
• Ad hoc development. • Systematic development
(Programmer Centric) (Organization/Project
Centric)
SOFTWARE
• Software consists of three components:
-Program, when executed provides
desired function and performance.
-Documents, that describe the operation
and use of the program.
-Data structure, that enable the
programs to adequately manipulate
information.
Software’s Dual Role
• Software is a product
– Delivers computing potential
– Produces, manages, acquires, modifies, displays, or
transmits information
• Software is a vehicle for delivering a product
– Supports or directly provides system functionality
– Controls other programs (e.g., an operating system)
– Effects communications (e.g., networking software)
– Helps build other software (e.g., software tools)
11/09/2023 MODULE:I INTRODUCTION TO SOFTWARE 9
ENGINEERING
Types of software:
1.System software
2.Application software/PC software
3.Engg. &scientific software
4.Real time software
5.Web based software
6.AI software
7.Embedded software
System software : Managing and controlling operation of computer
system. It frequently interact with the hardware.
Ex-OS , assembler , compiler , linker , loader etc.
Application software : used for official and personal use on daily basis
and also to solve a particular business need.
Ex-MS word ,MS office , media player , power point etc.
Real time software : observes , analyze and controls real world events
as they occur. (Time Constraint is present)
Ex- traffic light control.
Web-based software : act as interface between user and
internet .In other words it is used to develop web based
application.
Ex-HTML , ASP , web browser etc.
1. Definition phase
2. Development phase
3. Support phase
- correction
- Enhancement
- Adaptation
- Prevention
Emergence of SE
1. Early computer programming
2. High level language programming
3. Control flow based design
4. Structure oriented design
5. Data structure oriented design
6. Data flow oriented design
7. Object oriented design
8. Aspect orientation client-server design ,
embedded s/w design.
Early Computer Programming (50s)
● Every programmer developed
his own style of writing(Coding,
documentation etc.) programs:
– According to its intuition and
in an ad hoc manner.
(exploratory programming).
(build & fix)
What is Wrong with the Exploratory
Style?
● Programmers found:
– programs written by others very
difficult to understand and maintain.
● Everyone accepted:
– It is possible to solve any programming
problem without using GO TO statements.
– This formed the basis of Structured
Programming Methodology.
Structured Programming
● A program is called structured
– When it uses only the following types of
constructs:
● sequence
● selection
● iteration
Structured Programming
● Unstructured control flows are
avoided.
● Larger problems
● Lack of adequate training in software
engineering
● Increasing skill shortage
● Low productivity improvements.
● Software products
● Outsourced projects