INTRODUCTION TO
SOFTWARE ENGINEERING
Prof. Reeta Koshy
Job vs Project
❖ Jobs – repetition of well-defined tasks, little uncertainty
❖ Exploration - Outcome is very uncertain, finding cure for cancer
❖ Projects – in the middle! Has challenge and routine
Types of Software Projects
❖ Two types of software projects:
❖ Products (Generic software)
❖ Services (custom software)
❖ Total business – Several Trillions of US $
❖ Half in products and half services
❖ Services segment is growing fast
Generic/Custom Software
Word Processor
Banking software
E-commerce
software
Gmail
Generic/Custom Software
Word Processor Generic
Banking software Custom
E-commerce
Custom
software
Gmail Generic
Types of Software Projects
Horizontal market
software – meets
needs of companies
❖ Packaged software Vertical market
software – designed
❖ Prewritten software
for particular
❖ Available for purchase industry
❖ Custom software
❖ Software developed on user request
❖ Developer tailors some generic solution
Market size of IT industry in India
Contribution of IT
sector to India’s
GDP rose to
approximately 9.5 %
compared to 1.2%
in 1998
Market size of IT industry in India
Market size of IT industry in India
Computer System Engineering
Structured Programming
❖ A program is called structured
❖ When it uses only the following types
of constructs:
❖ sequence
❖ selection
❖ iteration
❖ Consists of modules
Control Structure
❖ What is control structure?
❖ Sequence in which instructions are executed
❖ Design programs with good control structure
❖ Only 3 constructs are required
Data Structure based Design
❖ A program's data structures are first designed using notations for
❖ sequence, selection, and iteration
❖ The data structure design is then used
❖ To derive the program structure.
Data Flow Oriented Design
❖ Data flow-oriented techniques advocate
❖ The data items input to a system must first be identified
❖ Processing required on the data items to produce the required outputs
should be determined
Data Flow Model of a Car Assembly unit
Object Oriented Technique
❖ Object-oriented technique
❖ An intuitively appealing design approach
❖ Natural objects (such as employees, pay-roll-register, etc.) occurring in a
problem are first identified
❖ Relationships among objects:–Such as composition, reference, and
inheritance are determined
❖ Each object essentially acts as: –A data hiding (or data abstraction) entity.
Data Flow Model of a Car Assembly unit
Evolution of other Software Engineering Techniques
❖ Life cycle models
❖ Specification techniques
❖ Project management techniques
❖ Testing techniques
❖ Debugging techniques
❖ Quality assurance techniques
❖ Metrics
❖ CASE tools, etc.
Modern Software Development practices
Modern Software Development practices
Review Questions
❖ What is structured programming?
❖ What problems may appear if a large program is developed without using
structured programming techniques?
Review Questions
❖ What is structured programming?
❖ Structured programming is a programming paradigm that emphasizes the
use of well-defined control flow structures (sequence, selection, and
iteration) to create clear, maintainable, and efficient code. It aims to improve
code organization and readability by reducing the use of unstructured
jumps and promoting a logical flow of execution.
Review Questions
❖ What problems may appear if a large program is developed without using
structured programming techniques?
❖ Code uses GOTO statements, so it becomes difficult to read and debug
❖ Cost more
Software Life Cycle
Life Cycle Model
Why model Life Cycle?
Phase Entry & Exit Criteria
Phase Entry & Exit Criteria
Project Deliverable Myth and Reality
❖ Myth
❖ The only deliverable for a successful project is the working program
❖ Reality
❖ Documentation of all aspects of software development are needed to help in
operation and maintenance
Traditional Models
❖ Waterfall
❖ V model
❖ Evolutionary
❖ Prototyping
❖ Spiral model
❖ Agile model
Classical Waterfall model
Software Crisis