Software Engineering
Prof.Abhishek
1
Chapter 1
Importance of software Engineering
Importance of Software Engineering:
Role of Software, Categories of Software, Legacy Software, Software Myths
2
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
• Support or provide system functionality: E.g., the software in
• Controls other programs (e.g., an operating system) a washing machine controls the washing cycles.
• Effects communications (e.g., networking software) • Control other programs: Operating systems like Windows
• Helps build other software (e.g., software tools) or Linux manage and coordinate all software and hardware.
• Enable communication: Networking software like TCP/IP
stacks or communication apps enable data sharing across
networks.
• Help build other software: Software development tools like
compilers, IDEs, and debuggers support developers in creating new
programs.. 3
What is
Software?
Software is a set of items or objects
that form a “configuration” that
includes
• programs
• documents
• data ...
4
What is
Software?
• software is engineered
• software doesn’t wear out (Hardware can wear out due to some
environmental issues like dust, excessive temperature, etc. But
software cannot wear out because according to user demands,
software needs to be updated & demands may increase one after
another.)
• software is complex
5
Software Does not Wear out
increased failure
rate due to side effects The idealized curve (flat line):
Failure Suggests that if untouched, software
rate remains stable over time — it doesn’t
wear out like hardware.
• The actual curve:
Each change or update (e.g., new
change features, bug fixes) introduces the risk
of side effects or new bugs, which
actual curve causes the failure rate to spike
temporarily.
• Over time, as more changes
idealized curve are made, the cumulative side effects
increase, raising the overall failure
Time rate unless carefully managed.
1.Software is developed or engineered;it is not manufactured in the classical sense.
2.Software does not wear out
3.Although the industry is moving toward component based construction, most software continues
to be custom built.
6
Software
Applications
• system software
• application software
• engineering/scientific software
• embedded software
• product-line software
• WebApps (Web applications)
• AI software
7
Legacy Software
Why must it change?
• software must be adapted to meet the needs of new
computing environments or technology.
• software must be enhanced to implement new business
requirements.
• software must be extended to make it interoperable with
other more modern systems or databases.
• software must be re-architected to make it viable within a
network environment.
8
Software Myths
• Affect managers, customers (and other non-technical
stakeholders) and practitioners
• Are believable because they often have elements of truth,
but …
• Invariably lead to bad decisions,
therefore …
• Insist on reality as you navigate your way through software
engineering
9
Management Myths:
Myth: If we get behind schedule, we can add more programmers and catch up.
Reality: Software development is not mechanical process,to add more people.
In software, as new people are added, people who are working must spend time in educating the newcomers.
Customer Myths:
Myth: Project requirements continually change, but change can be easily accomodataed because software is
flexible.
Reality: Requirement changes are requested early, cost impact is relatively small.However as time passes , cost
impact grows rapidly.
Practioners Myths:
Myth: Once we write the program and get it work, our job is done.
Reality: Sooner you begin writing code, the longer it will take to get it done. Industry data indicate that between
60 and 80 percent of all effort expended on software will be expended after it is delivered to the customer
for the first time. 10
Developer Myth
User Myth
Result of not utilizing Software Engineering Steps
13
Intention of Software Engg is to provide a framework for
building higher quality software
14
• https://www.youtube.com/watch?v=0UDqtq6SgUg Software Development Roadmap 2024
• https://www.youtube.com/watch?v=qxv6vPlx2Cs&list=PLmAmHQ-_5ySyCjVtHdSjJ64QU2x5TH8Dy Introduction To
Software Engineering - Characteristics, Evolving role Of Software
• https://www.youtube.com/watch?v=mRnj0qEqyYo&list=PLmAmHQ-_5ySyCjVtHdSjJ64QU2x5TH8Dy&index=2
Changing Nature Of Software
• https://www.youtube.com/watch?v=DD1hG_C805k&list=PLmAmHQ-_5ySyCjVtHdSjJ64QU2x5TH8Dy&index=3
Legacy Software
• https://www.youtube.com/watch?v=EvSB_D_da6I&list=PLmAmHQ-_5ySyCjVtHdSjJ64QU2x5TH8Dy&index=4
Software Myths - Customer, Management, Developer