Software Engineering is the science of software construction on a grand scale, that is the basic course of systems engineering.
Software Engineering aims at giving answers to the following questions:
- How to find out which characterstics a software should have (requirements engineering)
- How to describe these characteristics (specifcation)
- How to structure software so that it may be built easily and changed flexibly (design)
- How to change software which does not have such a structure or whose structure you do not understand (anymore) (reengineering)
- How to disguise defects in software (quality assurance, test)
- How to organise the tasks in a software company or department to regularly achieve cost-efficient and high-quality results (process management)
- Which (largely common) problems underlie all of these questions and which (mostly common) general approaches underlie the methods and techniques that are used
...and many similar ones.
This lecture gives an overview of the methods and provides essential basic knowledge for any computer scientist working as an engineer.
More detailed information may be found on the homepage http://www.inf.fu-berlin.de/w/SE/VorlesungSoftwaretechnik