Department of Collegiate and Technical Education
Week 1 :Software Engineering
20CS44P: Software Engineering Principles and Practices
( IV Semester)
Computer Science and Engineering
Session 1
1Computer Science & Engineering – 20CS44P – Software Engineering Principles & Practices
Importance Software Engineering
Computer Science & Engineering – 20CS44P – Software Engineering Principles & Practices
Session :01
TOOLS PRODUCT
RAW MATERIAL
SKILL / ART
+
Course Outcomes: At the end of the Course, the student will be able
to learn:
CO-01Typical software development life cycle (SDLC), list and differentiate the various SDLC models
along with identifying where each model could be beneficial when applied.
CO-02Demonstrate the application of design thinking as a process, explain how it helps in
requirement engineering and mitigate risks.
CO-03Study a given application requirement, create user stories, draw the appropriate UML diagram and
validate to ensure user story/UML diagram meet with the given requirement.
CO-04Document standard test procedures and test cases for a given requirement to ensure the software
gives the desired results for which it is built.
Session :01
Today's Topics
Definition of Software Engineering.
Need of Software Engineering.
Software development paradigms.
Software Product Types
Characteristics of good software.
Definition of Software Engineering
It is an engineering approach on a software development of systematic application.
The term software engineering is the product of two words, software and engineering.
Software consists of carefully-organized instructions and code written by developers on
any of various particular computer languages.
Computer Science & Engineering – 20CS44P – Software Engineering Principles & Practices
Session :01
Definition of Software Engineering Contd…
Engineering is the application of scientific and practical knowledge to invent, design,
build, maintain, and improve frameworks, processes etc.
Software Engineering is an engineering branch related to the evolution of software
product using well-defined scientific principles, techniques, and procedures.
Computer Science & Engineering – 20CS44P – Software Engineering Principles & Practices
Session :01
Need of Software Engineering
Large software - It is easier to build a wall than to a house or building, likewise, as the
size of software become large, engineering has to step to give it a scientific process.
Scalability- If the software process were not based on scientific and engineering
concepts, it would be easier to re-create new software than to scale an existing one.
Cost- As hardware industry has shown its skills and huge manufacturing has lower
down the price of computer and electronic hardware.
Computer Science & Engineering – 20CS44P – Software Engineering Principles & Practices
SEP&P-20CS44P Session :01
Need of Software Engineering contd…
Dynamic Nature: The always growing and adapting nature of software hugely depends
upon the environment in which the user works. If the nature of software is always
changing, new enhancements need to be done in the existing one. This is where software
engineering plays a good role.
Quality Management: Better process of software development provides better and
quality software product.
Computer Science & Engineering – 20CS44P – Software Engineering Principles & Practices
SEP&P-20CS44P Session :01
Need of Software Engineering contd..
Software paradigms: Software paradigms refer to the methods and steps, which are
taken while designing the software. There are many methods proposed and are in work
today. These can be combined into various categories, though each of them is
contained in one another
Computer Science & Engineering – 20CS44P – Software Engineering Principles & Practices
SEP&P-20CS44P Session :01
Software Development Paradigms
Software paradigms refer to the methods and steps, which are taken while designing the
software. There are many methods proposed and are in work today, but we need to see
where in the software engineering these paradigms stand.
These can be combined into various categories, though each of them is contained in one
another
Computer Science & Engineering – 20CS44P – Software Engineering Principles & Practices
Session :01
Software Development Paradigm
Computer Science & Engineering – 20CS44P – Software Engineering Principles & Practices
Session :01
This Paradigm is known as software engineering paradigms where all the engineering concepts
pertaining to the development of software are applied.
It includes various researches and requirement gathering which helps the software product to build.
It consists of :
* Requirement gathering
* Software design
* Programming
Software Design Paradigm
This paradigm is a part of Software Development .
It includes:
* Design
* Maintenance
* Programming
Computer Science & Engineering – 20CS44P – Software Engineering Principles & Practices
Session :01
Programming Paradigm
This paradigm is closely related to the programming aspect of software
development.
This includes :
* Coding
* Testing
* Integration
Computer Science & Engineering – 20CS44P – Software Engineering Principles & Practices
Session :01
Software Development Paradigm
Software Development Paradigm types: A few of software development paradigms
or process models are defined as follows:
1.Waterfall model
2.Iterative model
3.Spiral model
Software Development Paradigm Contd…
1.Waterfall Model
Waterfall model is the simplest model of software development paradigm.
It says the all the phases of SDLC will function one after another in linear manner.
Software Development Paradigm Contd…
2.Iterative model
This model leads the software development process in iterations.
It projects the process of development in cyclic manner repeating every step after every cycle of
SDLC process.
Software Development Paradigm Contd…
3.Spiral Model
Spiral model is a combination of both, iterative model and one of the SDLC model.
It can be seen as if you choose one SDLC model and combine it with cyclic process
(iterative model).
Software Product Types
Computer Science & Engineering – 20CS44P – Software Engineering Principles & Practices
Session :01
S.No. Generic software product development Custom software development
1.
The generic software development is
done for developing a general purpose
software.
Customer software development is
done to develop a software product as
per the needs of particular customer.
2.
In this development process, the
software developers have to depict the
end-users specifications.
In this development process, the the
end-user requirements can be
aggregated by communicating by
them.
3.
From designing and marketing
perspective, this type of development
is very difficult.
This development does not require
marketing, because it is developed for
appropriate group of users.
4.
Large number of users may be using
this kind of software.
This type of software is used by
limited number of users.
5.
Quality of the product is not a
preference for generic software.
Quality is the main criterion in
customer software product. Best
quality of the product is focused for
customer or company.
6.
Development team controls the process
of generic software development.
Customer determines the process of
software development in this type of
product.
7.
Generally the software developed is
economical. There may be some
hidden costs such as installation and
implementation cost.
Software product is of high cost as the
particular product for customer is
developed.
8.
Example of generic software product
development is Word-editing software.
Inventory control and management
system are examples of customer
software development.
Characteristics of Good Software
Computer Science & Engineering – 20CS44P – Software Engineering Principles & Practices
Session :01
Characteristics of Good Software contd..
Computer Science & Engineering – 20CS44P – Software Engineering Principles & Practices
Session :01
1.Operational: In operational categories, the factors that decide the software performance in
operations.
It can be measured on:
●Budget
●Usability
●Efficiency
●Correctness
●Functionality
●Dependability
●Security
●Safety
Characteristics of Good Software contd..
Computer Science & Engineering – 20CS44P – Software Engineering Principles & Practices
Session :01
2.Transitional: When the software is moved from one platform to another, the factors
deciding the software quality:
Portability
Interoperability
Reusability
Adaptability
Characteristics of Good Software contd..
3.Maintenance: In this category all factors are included that describes about how
well a software has the capabilities to maintain itself in the ever changing
environment:
Modularity
Maintainability
Flexibility
Scalability
Computer Science & Engineering – 20CS44P – Software Engineering Principles & Practices
Session :01
References
Agile Software Development, principles, patterns and practices by Robert Martin
Art of agile development by James Shore & Shane Warden
Software-Engineering-9th-Edition-by-Ian-Sommerville
Becoming Agile..in an imperfect world by Greg Smith, Ahmed Sidky
scaledagileframework.com
Continuous Delivery Principles | Atlassian
www.agilealliance.org/
www.udemy.com
www. tutorialride.com
www.interaction-design.org/
www.digite.com
Computer Science & Engineering – 20CS44P – Software Engineering Principles & Practices
Session :01
Chairperson
Smt. USHA D
142-Government Women’s Polytechnic, Ramanagar
Moderator
Smt Sunandadevi V. K
109- Government Polytechnic, Kalaburgi
Subject Rewiever
Smt Banashankaramma F.L
152- Government Polytechnic, Bagalkote
Content Developers
1. Smt Farheen Jahan Aara
141- 142-Government Women’s Polytechnic, Kalaburgi
2. Shri Prakash M 114- Government Polytechnic, Karawar
3. Smt Sharanamma N 162- Government Polytechnic, Joida
4. Smt Chandrakala 165- Government Polytechnic,Karatgi
5. Shri Sharath 135- Government Residential Women’s Polytechnic, Shimoga
6. Smt Yashodha 155- Government Polytechnic, Turvekere
7. Shri.Praveen .K.B 170- Government Polytechnic Harihar
Thank You