Short Description
In this unit, which builds upon the Software Engineering 1 unit, students will further develop their understanding of the concepts and methods required for developing large software intensive systems. The main focus of this unit is to give students practical experience of software engineering as a practice. To do this, students will be undertaking a group project where they will be working in a small agile team developing software.
You’ll learn to:
- Critically evaluate and contrast contemporary software engineering paradigms for defined software engineering problems, given a set of relevant development constraints
- Compare and contrast the roles, responsibilities, benefits, and drawbacks of different team organization structures for software development, given a set of relevant development constraints
Topics covered in this unit may include (but are not limited to) the following:
- The building blocks of software
- Software design paradigms: Waterfall, Iterative, Agile, (for example: Scrum, XP, Kanban), Test-Driven Development (TDD)
- The effect of the programming language on design and implementation issues. Team structures.