Software Engineering - ESC501: - Prof. Poulami Dutta

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

Software Engineering –

ESC501
- Prof. Poulami Dutta
2 Course Outcomes
 Identify suitable life cycle model that meets specification, performance, maintenance
and quality requirements for a given software development problem.
 Construct a design model using appropriate software engineering methodologies from the
given specification.
 Analyze software requirements through a productive working relationship with various
stakeholders of the project and come up with a viable project plan to deliver the product
with optimized effort, time and cost using suitable estimation methods.
 Develop a working model for implementation which can provide quality assurance in short
and long run utilizing relevant standards and suitable testing practices.
 Design software products related to various real life problems by relating the software
architectural styles.

08/23/2021
3 ILOs (Intended Learning Outcomes)

 Identify the scope and necessity of software engineering.


 Identify the causes of and solutions for software crisis.
 Differentiate a piece of program from a software product.

08/23/2021
4 What is software engineering?

 Software engineering is composed of two words, software and engineering.


 Software is defined as a collection of programs, procedures, rules, data and associated
documentation. The s/w is developed keeping in mind certain h/w and operating system
consideration commonly known as platform.
 Engineering means systematic procedure to develop software.
 Software engineering as an engineering branch is associated with the development of
software product using well-defined scientific principles, methods and procedures. The
outcome of software engineering is an efficient and reliable software product.
 IEEE Definition: The application of a systematic, disciplined, quantifiable approach to
the development, operation and maintenance of software.

08/23/2021
Click icon to add picture

Engineering

Technology

Esoteric Past
Craft Systematic Use of Past
Experience Experience and Scientific Basis
Unorganized Use of
Past Experience
Art
5 Time

Technology Development Pattern


08/23/2021
6 Why Study Software Engineering?
 To acquire skills to develop large programs:
 Exponential growth in complexity and difficulty level with size.
 The ad hoc approach breaks down when size of software increases.
 Ability to solve complex programming problems:
 How to break large projects into smaller and manageable parts?
 Learn techniques of:
 specification, design, interface development, testing, project management, etc.
 To acquire skills to be a better programmer:
 Higher Productivity
 Better Quality Programs

08/23/2021
7 Software Quality

 Portability: to be able to work in different operating system environments, in different


machines, with other software products.
 Usability: if different categories of users (i.e. both expert and novice users) can easily
invoke the functions of the product, the software is said to be usable.
 Reusability: if different modules of the product can easily be reused to develop new
products, the software is said to be reusable.
 Correctness: if different requirements as specified in the SRS document have been
correctly implemented, the software is said to be correct.
 Maintainability: if errors can be easily corrected, new functions can be easily added to the
product, and the functionalities of the product can be easily modified, etc. the software is
said to be maintainable.

08/23/2021
8 Types of Software

 System Software: It includes the operating system & all the utilities to enable the
computer to run. Ex-OS.
 Application Software: It consists of programs to perform user oriented tasks. Ex-word
processor, database management.

08/23/2021
9 Software Crisis

 Software products:

 fail to meet user requirements.


 frequently crash.
 expensive.
 difficult to alter, debug, and enhance.
 often delivered late.
 use resources non-optimally.

08/23/2021
10 Software Crisis (cont.)

H/w cost
S/w cost

1960 Year 1999


Relative Cost of Hardware and Software
08/23/2021
Factors contributing to the software
11
crisis

 Larger problems,
 Lack of adequate training in software engineering,
 Increasing skill shortage,
 Low productivity improvements.

08/23/2021
12 Need for Software Engineering

 Large Software – It is easier to build a wall than a house or a building.


 Scalability – Program with 100 LOC and 10000 LOC.
 Cost – Hardware cost has come down but software cost continues to be on the rise.
 Dynamic Nature – New enhancements being done to an already existing software.
 Quality Management - Better process of software development provides better and
quality software product.

08/23/2021
13
Programs versus Software Products
 Set of instructions related to each other  Collection of programs designed for specific task
 Usually small in size  Large in size
 Author himself is sole user  Large number of users
 Single developer  Team of developers
 Programs are defined by individuals for  A software product is usually developed by a group of
their personal use engineers working as a team
 Lacks proper user interface  Well-designed interface
 Lacks proper documentation  Well documented & user-manual prepared
 Ad hoc development  Systematic development using principles of SE
 Limited functionality  Exhibits more functionality

08/23/2021
14 Software Engineering Principles

 Abstraction – Omit irrelevant details and consider aspects that are relevant.

08/23/2021
15 Software Engineering Principles (cont.)

 Decomposition – A complex problem is divided into several smaller problems and then the
smaller problems are solved one by one.
 Each component is solved independently.

08/23/2021
16 Emergence of Software Engineering

 Assembly Language
 High-Level Language
 Control Flow-based Design
 Data-Structure Oriented Design
 Data-Flow Oriented Design
 Object-Oriented-based Design

 Structured vs. Unstructured Programming

08/23/2021
17

08/23/2021

You might also like