1) COMP 206 or COMP 268 and 2) COMP 272 or instructor's permission, which is based on 1) the student's skills in a high-level programming language such as C, C++, or Java; and 2) the student's knowledge and familiarity with data structures.
Course start date:
If you are a:
Self-funded student: register by the 10th of the month, start on the 1st of the next.
Students who are concerned about not meeting the prerequisites for this course are encouraged to contact the course coordinator before registering.
Overview
Computer Science 410 Software Engineering focuses on the principles and knowledge of software engineering. It covers the approaches taken in developing large programming projects, including requirements analysis, specification, design (e.g., top-down modularization), coding (e.g., structured programming), debugging and testing, maintenance, and thorough documentation as illustrated by examples and papers from current literature. This course will prepare students for working in teams to build quality software, and it provides the necessary hands-on practice for those who wish to enhance their knowledge base.
COMP 410 is designed for people who work or are about to work in any aspect of software development. It is also intended for people who have managerial responsibility for software development and anyone who is interested in how complex software systems are designed and built.
Outline
Unit 1: The Scope of Software Engineering
Unit 2: Software Life-Cycle Models
Unit 3: The Software Process
Unit 4: Development Teams
Unit 5: Software Engineering Tools
Unit 6: Testing
Unit 7: From Modules to Objects
Unit 8: Reusability and Portability
Unit 9: Planning and Estimating
Unit 10: Requirements
Unit 11: Classical Analysis
Unit 12: Object-Oriented Analysis
Unit 13: Design
Unit 14: Implementation
Unit 15: Post-delivery Maintenance
Unit 16: More on Unified Modeling Language (UML)
Unit 17: Emerging Technologies
Learning outcomes
Upon successful completion of this course, you should be able to
manage object-oriented and classical software construction projects including planning, scheduling, and risk assessment/management.
author software requirement documents with the appropriate content.
author formal specifications for software systems.
demonstrate proficiency in rapid software development techniques.
identify specific components of a software design that can be targeted for reuse.
demonstrate proficiency in software development cost estimation.
author software-testing plans.
explain the direction of software engineering and technologies of the future.
Evaluation
To receive credit for COMP 410, students must meet the following criteria:
a course composite grade of at least 50%
a grade of at least 50% on the final examination
an average grade of 50% on assignments
a grade of at least 50% on the participation mark.
The weighting of the composite grade is as follows:
Activity
Weight
Assignment 1
25%
Assignment 2
25%
Assignment 3
10%
Marked Quizzes
5%
Participation
10%
Final Exam
25%
Total
100%
The final examination for this course must be requested in advance and written under the supervision of an AU-approved exam invigilator. Invigilators include either ProctorU or an approved in-person invigilation centre that can accommodate online exams. Students are responsible for payment of any invigilation fees. Information on exam request deadlines, invigilators, and other exam-related questions, can be found at the Exams and grades section of the Calendar.
To learn more about assignments and examinations, please refer to Athabasca University’s online Calendar.
Materials
Schach, Stephen R. Object-Oriented and Classical Software Engineering, 8th ed. New York: McGraw-Hill, 2011. (eText)
Athabasca University reserves the right to amend course outlines occasionally and without notice. Courses offered by other delivery methods may vary from their individualized study counterparts.