Software Engineering - Introduction
Constantine Roussos, Ph. D., Professor of Computer Science
Lynchburg College, Lynchburg, Virginia, U.S.A.
for Mar Athanasios College For Advanced Studies, Thiruvalla, India
Presented to
International Workshop on Software Engineering

Software Engineering - Introduction
Available at http://cs-netlab-01.lynchburg.edu/courses/MACFAST/SoftwareEngineering

Software Engineering, as we know it, is the systematic approach to the development, operations, maintenance, and retirement of software. It includes the following processes:

I would like to be able to report that I have the all of the answers to your software engineering problems.
Unfortunately, I do not, and judging from the lack of agreement among SE practitioners I doubt if anyone does. There is, however, no lack of products and methodologies that purport to be the answer to at least some of the SE challenges.

For example, there are literally hundreds if not thousands of tools available.
Here are some.

In this workshop we will conduct a brief overview of many of the most well-known theories and methodologies and products. We will also apply or examine an application of some of the most basic techniques in solving a simple programming problem.

One may ask the legitimate question, "Why is there no consensus on how to engineer software?".
Perhaps the discipline is in its infancy or perhaps the problem is just "too tough".

So why do we bother?

Because the consequences of poor software engineering can be extreme if not fatal.

What makes things more difficult is that it's not just the software that needs engineering but the entire application environment.
There are many examples of the consequences of poor SE. We will examine a select few of them.

Those who venture into this field need to be aware of the principles of software engineering so they can evaluate the latest and greatest "solutions" whether they be tools or methodologies.