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
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?