Summer 2024 - CMPT 276 D100

Introduction to Software Engineering (3)

Class Number: 4033

Delivery Method: In Person

Overview

  • Course Times + Location:

    May 6 – Aug 2, 2024: Mon, Wed, Fri, 1:30–2:20 p.m.
    Burnaby

  • Prerequisites:

    One W course, CMPT 225, (MACM 101 or (ENSC 251 and ENSC 252)) and (MATH 151 or MATH 150), all with a minimum grade of C-. MATH 154 or MATH 157 with at least a B+ may be substituted for MATH 151 or MATH 150.

Description

CALENDAR DESCRIPTION:

An overview of various techniques used for software development and software project management. Major tasks and phases in modern software development, including requirements, analysis, documentation, design, implementation, testing,and maintenance. Project management issues are also introduced. Students complete a team project using an iterative development process. Students with credit for CMPT 275 may not take this course for further credit.

COURSE DETAILS:

The focus is preparing students to be effective members of an industrial software development team.  The theory and practice of software development is introduced.  Students will learn various SW development methodologies.  And learn multi-person team and project challenges.

The term-long project will use approximately 4-person teams.  Each team will produce 5 major document/code drops, one every two weeks, during the last 10 weeks of the course.

Topics:

•             The software lifecycle, and challenges including estimation, maintenance/updates, and revision control.  Waterfall/plan-driven vs. agile project management.

•             Requirements gathering/elicitation, including use cases, data, states, flows. 

•             Systems analysis, with some object-oriented data normalization.  Modelling with some UML notation.  Writing a requirements specification.

•             Software and documentation revision control.

•             User/external interface design (briefly).  Write user documentation as a system external spec, before writing code.

•             High level/architectural design principles, UML notation, design patterns (briefly).  Writing module interfaces first, that others on your team can call/write to.

•             Object-oriented design (briefly), implementation, coding style.

•             Quality Assurance: Code reviews, unit and integration testing.

•             Time permitting:  Maintenance/update issue tracking systems.

Grading

NOTES:

Grading:

•             20% Midterm exam

•             40% Final exam

•             40% Team project.  Including documentation quality (e.g. spelling/grammar/version control).  Other project marking details discussed in the first week of class.

Students must attain an overall passing grade on the weighted average of the exams in order to obtain a clear course pass (C- or better).

Materials

MATERIALS + SUPPLIES:

Textbook and Required Materials:

•             No textbook will be required.

•             Required:  A purchased “course pack” of reading materials (when it becomes available), will be downloadable from SFU bookstore.

Registrar Notes:

ACADEMIC INTEGRITY: YOUR WORK, YOUR SUCCESS

SFU’s Academic Integrity website http://www.sfu.ca/students/academicintegrity.html is filled with information on what is meant by academic dishonesty, where you can find resources to help with your studies and the consequences of cheating. Check out the site for more information and videos that help explain the issues in plain English.

Each student is responsible for his or her conduct as it affects the university community. Academic dishonesty, in whatever form, is ultimately destructive of the values of the university. Furthermore, it is unfair and discouraging to the majority of students who pursue their studies honestly. Scholarly integrity is required of all members of the university. http://www.sfu.ca/policies/gazette/student/s10-01.html