0% found this document useful (0 votes)
6 views33 pages

Overview of Software Engineering Concepts

The document introduces software engineering concepts, distinguishing between jobs, projects, and types of software projects, which include products and services. It discusses the growth of the IT industry in India and various software development techniques such as structured programming, data flow-oriented design, and object-oriented techniques. Additionally, it highlights the importance of documentation and various life cycle models in software development.

Uploaded by

naman.mathukia23
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views33 pages

Overview of Software Engineering Concepts

The document introduces software engineering concepts, distinguishing between jobs, projects, and types of software projects, which include products and services. It discusses the growth of the IT industry in India and various software development techniques such as structured programming, data flow-oriented design, and object-oriented techniques. Additionally, it highlights the importance of documentation and various life cycle models in software development.

Uploaded by

naman.mathukia23
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

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

You might also like