Software Architecture Notes

Master
Note: this description currently contains the previous CourseDescription description.

Description

Software Engineering covers such a wide variety of topics that choices can be made. In this description four alternatives are discussed, depending on what students are supposed to learn. First, students can be supported in their role as developer by giving them tools and methods to better develop programs. Second, students can be given techniques for a role as consultant (currently done in SoftwareArchitecture). Third, students can be given background theory on topics not immediately applicable in practical situations. And, finally, an existing course can be bought.

Topics

  • Consultancy focus. The current SoftwareArchitecture course in cooperation with SERC.
  • Technical focus. Which can be further divided into a practical and theoretical part. The practical part would support the student to be a better developer. If material is not immediately related to the daily development practice it is labeled (here) as theoretical.
    • Content (practical): version/configuration management, personal software process (PSP), extreme programming (XP), testing (a la XP)
    • Content (theoretical): testing theory (e.g. predicting amount of errors), reliability, software metrics, planning (predicting workamount, splitting up, ...)
  • No focus. Use existing course with existing material (suggestion: OU).
    • Content: see (e.g.) Software Engineering, Sommerville

Material

For the consultancy focus, see http://www.cs.uu.nl/docs/vakken/swa

Dependencies

  • Requires
    • SoftwareProject?

Lecturer

History

Evolved from

  • SoftwareArchitecture in different varieties. The incarnation before the current one included topics like: design patterns and specific systems (for their design).

Discussion

Some questions: which alternative? what do we want (as ST group)? This topic/course seems not to be the primary focus of the ST group but probably sells well. Should we let others do it in cooperation (currently SERC does the major part), or completely give it away, or do the things we like but can only with some tweaking be called software engineering?