In my teaching, I do not only motivate students to learn, but also I teach them how to learn. In the fields of computing sciences and software engineering, learning about what is available today is not enough to lead to a successful career. The knowledge is changing on a daily basis and students need to develop techniques for learning by themselves. Computing sciences and software engineering students are expected, more than other students of other fields of science and engineering, to be able to learn by themselves for the rest of their career in order to cope with an ever-changing body of knowledge.

SFWR ENG 3A04 – Software Design II – Large System Design

Software design process, design and architecture of large systems, design for change and expansion; Documentation, inspection; Incremental design; Classes and objects, structured and object oriented analysis and design; Revision and version control; Project organization.
Three lectures, one tutorial (two hours); first term

Prerequisite(s): SFWR ENG 3BB3

Course Objective and the Method of Presentation of the Course Material

The main objectives of this course are:

  1. Enhance students awareness of the importance of architecture design
  2. Provide students with opportunities to develop their own design style
  3. Emphasize design strategies and practical guidelines for designing large systems
  4. Explore a complete collection of widely used software architecture styles
  5. Discuss the trade-off attributes of the presented architectural styles

The course is quite practical in flavour and it does point to the use of the introduced concepts in software systems design. A certain degree of previous programming, design, and mathematical experience is essential for survival.

Three lectures; tutorials, Winter 2015/2016