1 Cs 504
1 Cs 504
Why is it important?
Some of the major areas in which software has
played an important role are identified as under.
Business decision-making: Software systems have
played a major role in businesses where you have to
analyze your data and on the basis of that analysis
you have to make business decisions. This process
of data analysis and decision-making has become
very accurate and easy by the use of software.
Modern scientific investigation and engineering
problem solving: Scientific investigations and
engineering problem solving require an intensive
amount of calculations and data analysis. The
accuracy of these analyses is also very important in
scientific applications. This process has become very
easy and accurate by the use of software. For
example software systems are becoming more
involved in bioinformatics and the process of DNA
decoding is only possible by the use of software
systems. Similarly many astronomical observations
are being recorded and analyzed by the software
systems these days.
Games: We see many computer games these days
that interests people of all ages. All these games are
drive through software systems.
Embedded systems: We see many kinds of
gadgets being employed in our daily used things,
like small microcontrollers used in our cars,
televisions, microwave ovens etc. All these systems
are controlled through the software.
Engineering
“The process of productive use of scientific
knowledge is called engineering.”
Difference between Computer Science and
Software Engineering
There are many engineering fields like electrical,
mechanical and civil engineering. All these branches
of engineering are based on physics. Physics itself is
not engineering but the use of physics in making
buildings, electronic devices and machines is
engineering. When we use physics in constructing
buildings then it is called civil engineering. When we
use physics in making machines like engines or cars
then it is called mechanical engineering. And when
we apply the knowledge of physics in developing
electronic devices then the process is called
electrical engineering. The relation of computer
science with software engineering is similar as the
relation of physics with the electrical, mechanical or
civil engineering or for that matter the relation of
any basic science with any engineering field. So in
this context we can define software engineering as:
”This is the process of utilizing our knowledge of
computer science in effective production of
software systems.”
Computer Software
Aspect
Science Engineering
Practical
Theoretical
application of
foundations of
Focus engineering to
computation and
software
algorithms
development
To understand To design, build,
how computers and maintain
Main Goal
work and solve reliable software
problems systems
Core Subjects Algorithms, data Software
structures, theory development,
Computer Software
Aspect
Science Engineering
project
of computation, AI management,
testing, QA
Research and Application and
Approach
theory-driven process-driven
Engineering
Programming, methods,
Tools &
mathematics, development
Techniques
simulations models (like
Agile, Waterfall)
Researcher, Data Software
Scientist, AI/ML Developer, QA
Career Paths
Engineer, Systems Engineer, Project
Analyst Manager
“How can we
“How does this
Example build this app
algorithm improve
Question efficiently and
performance?”
with fewer bugs?”
Follows the full
Not always
Development SDLC (Software
involved in the full
Life Cycle Development Life
software life cycle
Cycle)
Mathematics More theoretical Some math, but
Computer Software
Aspect
Science Engineering
math (e.g., discrete more focus on
math, logic) process and tools
Summary:
Computer Science is about understanding
computers.
Software Engineering is about building
software.
comparison between Software and Other
Systems (like hardware, mechanical, or
electrical systems):
Other Systems
Software (e.g., Hardware,
Aspect Systems Mechanical,
Electrical)
Nature Intangible – Tangible –
code, data, physical
algorithms components like
Other Systems
Software (e.g., Hardware,
Aspect Systems Mechanical,
Electrical)
circuits, machines,
parts
Easy to modify, Changes require
Change/Update update, and physical repair or
deploy remotely replacement
Involves coding,
Involves physical
Development testing,
manufacturing,
Process debugging,
assembly, testing
versioning
May cause
May cause data mechanical
Failure Impact loss, crashes, or breakdown,
security issues injury, or power
failure
Examples Operating Cars, engines,
systems, apps, electrical circuits,
Other Systems
Software (e.g., Hardware,
Aspect Systems Mechanical,
Electrical)
games, web smartphones,
browsers CPUs
Programming CAD tools,
languages, IDEs, blueprints,
Design Tools
version control physical modeling
tools tools
Done using
Physical testing in
simulations, test
Testing labs or field
cases,
environments
automation
Mostly involves Requires physical
Maintenance code patches inspection, repair,
and updates or replacement
Deployment Instantly via Requires
internet or distribution of
storage devices physical parts or
Other Systems
Software (e.g., Hardware,
Aspect Systems Mechanical,
Electrical)
machines
High – code can Limited – physical
be reused parts often
Reusability
across multiple custom or use-
applications specific
Summary:
Software is virtual, flexible, and easy to
change.
Other systems are physical, rigid, and harder to
modify.
Source of Inherent Complexity of Software
The inherent complexity of software arises from its
need to model complex, ever-changing real-world
problems. Unlike physical systems, software is
invisible and intangible, making it harder to
understand and manage. It must conform to many
external constraints like hardware, regulations, and
legacy systems. Software components are highly
interconnected, so small changes can lead to
unexpected effects. Additionally, human factors
such as miscommunication and varying skill levels
add to this complexity, making software
development naturally challenging.