The successful creation and evolution of software systems depends on many factors. A solid understanding of object-oriented techniques is only one of them. The quality of requirements, seamless translation of requirements into design, the choice of a flexible architecture, and the selection of an appropriate process are also essential factors. This course in Advanced Topics of Software Construction (ATSC) teaches methodologies and crafts supporting these factors. We plan to focus on the conceptual consistency of the approaches from the customer requirements through the architecture down to the design. As some of the latest technologies such as model driven architecture, product lines and aspect-oriented software development are especially helpful to this goal, this lecture will also contain a first introduction to them.