COMP 3521: Software Engineering
Students are introduced to the different software process models and management of modular intercommunication, software engineering tools, software testing and project management including resource estimation, team organization and review. Students learn software engineering techniques for dependable and secure systems, reliability engineering, software evolution, software maintenance, quality management, configuration management, reuse, and ethical issues in software engineering. By the end of the course, students will demonstrate the necessary skills of effective leadership and teamwork required in the software engineering discipline.
Learning outcomes
- Explain the different practices that are key components of various process models.
- Apply the basic principles of software project management in a team environment.
- Understand a variety of strategies for testing of simple programs.
- Identify the principle issues associated with software evolution and explain their impact on the software lifecycle.
- Identify methods that will lead to the creation of a software architecture that achieves a specified level of reliability, dependability, and security.
- Demonstrate an understanding of ethical issues in software development, including the application of ethical and responsible leadership approaches.
- Apply knowledge and understanding of the theories underpinning teamwork and leadership.
- Incorporate research-informed practice into the application of team-based projects.
- Apply effective leadership skills (for example: interpersonal, administrative, and conceptual skills).
Course topics
- Unit 1: Introduction to Software Engineering
- Unit 2: Dependability and Security
- Unit 3: Advanced Software Engineering
- Unit 4: Software Management
- Unit 5: Computer Reliability and Ethics
Required text and materials
The following materials are required for this course:
- Sommerville I. (2016) Software Engineering (10th Ed.), Pearson Higher Education Inc.
Type: Textbook. ISBN-10: 0-13-394303-8
Assessments
Please be aware that should your course have a final exam, you are responsible for the fee to the online proctoring service, ProctorU, or to the in-person approved Testing Centre. Please contact exams@tru.ca with any questions about this.
To successfully complete this course, students must achieve a passing grade of 50% or higher on the overall course, and 50% or higher on the final mandatory exam.
Note: The final exam for this course is only available as a paper exam and must be taken in person at an approved Testing Centre. Please email exams@tru.ca with any questions.
Assignment 1: Software Process Model | 7% |
Assignment 2: Software Testing and Software Evolution | 7% |
Assignment 3: Security Engineering | 7% |
Assignment 4: Software Reuse | 7% |
Assignment 5: Project Management and Planning | 7% |
Assignment 6: Professional Ethics | 7% |
Quizzes (6 at 2% each) | 12% |
Final Exam (mandatory) | 46% |
Total | 100% |
Open Learning Faculty Member Information
An Open Learning Faculty Member is available to assist students. Students will receive the necessary contact information at the start of the course.