CS3201 and CS3202 focus on practice of software engineering in the Software Development Life Cycle (SDLC). These two modules together provide students with hands-on experience in working in project groups through a complete SDLC to develop a well-designed, well-tested, large-scale software system. This first part focuses on applying best software engineering practices on the analysis and design of software systems. The students will practice the analysis of user’s needs, formulation of computing requirements to meet the user’s needs, modeling and design of the computer system according to the requirements, and evaluation of the design.
You will find here all the needed information for CS3201 and CS3202. Please do not check CS3202 IVLE page.
You can quickly find out about the approach taken in this project course, and about experiences teaching it in the paper "Teaching an Advanced Design, Team-oriented Software Project Course", published in the Proceedings of the 26th Conference on Software Engineering Education and Training (2013).
CS3201/CS3202 replaces the former CS3215 that was offered in a single term and was worth 8 modular credits. CS3201 and CS3202 are each worth 4 modular credits. The two modules, taken in the same semester, look deeper into software architecture issues, and to do team work with elements of individual assessment during requirements analysis and architecture design.
The essence of this course is advanced software design in action. Students learn to apply design principles and "best development practices" in practice. Architectural design, design specifications and evaluation of alternative design solutions that lead to quality code are emphasized throughout the course. The problem students work on is carefully selected to demonstrate the application of design principles. The size of the problem and iterative development style make it difficult to succeed in the project without applying a principled and systematic approach to design, documentation, development and testing.
Specific objectives are:
- Apply software engineering principles in practice
- Follow the SDLC according to the "best software engineering practices"
- Define and document software architecture, justify design decisions
- Apply and consolidate what students have learned in these three programming courses: CS1101, CS1102 and CS2103
- Develop an ability to work as part of a group in a project of substantial size and complexity
- Enhance project planning skills
- Develop writing skills
- Develop a well-tested, production-quality software system in iterative development
- Prepare students for industrial projects