Applied Software Engineering Lehrstuhl für Angewandte Softwaretechnik
Home | People | Projects | Teaching | Publications | Internal | Changes | Index Software Engineering

Software Engineering I

Instructor: Prof. Bernd Brügge
Exercise Portal : Lilith Al-Jadiri

News:

Lecture Slides

Credits

Time & Location

 

Exam

Intended Audience

 

Prerequisites

Content: Complex and Changing Systems

The term software engineering was coined in 1968 as a response to the desolate state of the art of developing quality software on time and within budget. Software developers were not able to set concrete objectives, predict the resources necessary to attain those objectives, and manage the customers' expectations. More often than not, the moon was promised, a lunar rover built, and a pair of square wheels delivered.

The emphasis in software engineering is on both words, software and engineering. An engineer is able to build a high-quality product using off-the-shelf components and integrating them under time and budget constraints. The engineer is often faced with ill-defined problems, partial solutions, and has to rely on empirical methods to evaluate solutions. Engineers working on application domains such as passenger aircraft design and bridge construction have met successfully similar challenges. Software engineers have not been as successful.

Useful software systems are complex. To remain useful they need to evolve with the end users' need and the target environment. In this course, we describe object-oriented techniques for conquering complex and changing software systems. Key techniques include:

Literature

  • Bernd Bruegge, Allen H. Dutoit
    Object-Oriented Software Engineering: Using UML, Patterns and Java, 2nd Edition
    Publisher: Prentice Hall, Upper Saddle River, NJ, 2003; ISBN: 0-13-047110-0

Notes