02-What is SE
02-What is SE
Engineering?
CSCI 3323
Dr. Becnel
In a Nutshell
“All problems in computer science can be solved by another level of
indirection.”
David Wheeler
Software Engineering
Definition
Engineering: The use of mathematics and scientific principles to design machines and
structures used for solving problems
• Applied mathematics and science
• Focus on practical problems
Software (1) instructions (computer programs) that when executed provide desired
features, function, and performance; (2) data structures that enable the programs to
adequately manipulate information and (3) documentation that describes the operation
and use of the programs
• Software is an abstract concept and is developed or engineered
• It is not manufactured
• Software itself does not “wear out”
• Though it can show signs of deterioration
• More and more software is becoming more component based, but a majority is still custom built
Software Engineering
Overview
What is Software Engineering?
• The complete process of specifying, designing,
developing, analyzing, and maintaining a software
system.
Why is it important?
• Decomposes a complex engineering problem.
• Organizes processes and effort.
• Improves software reliability.
• Improves developer productivity
Things we do in S.E.
• Developing in an IDE and software
ecosystem
• Debugging and maintaining a software
system
• Deploying and running a software system.
• Empirically evaluating a software system
• Writing Design Docs
• …and much more
Common Task
More than just writing code
The complete process of specifying, designing, developing, analyzing,
deploying, and maintaining a software system.