Course

Introduction to Software Engineering

Faculty
Science & Technology
Department
Computing Science
Course Code
CMPT 2276
Credits
3.00
Semester Length
15 Weeks
Max Class Size
35
Method(s) Of Instruction
Lecture
Lab
Typically Offered
To be determined

Overview

Course Description
This course provides an overview of standard paradigms and engineering practices as applied to software development. Topics include major phases incorporated in Systems Development Life Cycle (SDLC), software project management issues, and software development core activities from planning to implementation and deployment. Students will participate in a team project that employs an iterative development process and utilizes modern tools that are vital to the success of software development projects to construct a software solution to a real-world case study.
Course Content
  • An introduction to the scope and ethics of software engineering
  • Systems Development Life Cycle (SDLC) phases:
    • Planning and system investigation
    • Analysis
    • Design
    • Implementation and testing
    • Training and transition
    • Maintenance   
  • Software development paradigms and models: waterfall, incremental, prototyping, spiral, and agile
  • An introduction to software project management and software quality management
  • Software documentation: requirements, design, technical, and user documentation
  • Modern software development tools:
    • IDEs
    • Debuggers
    • Build automation
    • Graphical User Interface (GUI) designers
    • Git version control system
  • Requirements engineering:
    • Requirements gathering
    • Use cases and requirements analysis
    • Software requirements specification
  • Software design:
    • Design concepts and considerations: abstraction, modularity, information hiding, performance, scalability, etc.
    • Object-oriented design principles
    • Basics of database design: Entity-Relationship (ER) modeling and simple data normalization
    • UML
  • An introduction to software testing:
    • The testing pyramid
    • Test-driven development
    • Design-by-contract
  • An introduction to advanced software engineering:
    • Component-based systems
    • Distributed software systems
    • Service-oriented systems
    • Real-time systems
Learning Activities

Methods of instruction will include some or all of the following: lectures, labs, and self-directed learning (assignments and group projects).

Means of Assessment

Evaluation will be carried out in accordance with the Douglas College Evaluation Policy. The instructor will present a written course outline with specific evaluation criteria at the beginning of the semester. Evaluation will be based on the following.

Assignments

0% - 15%

Term Project

20% - 30%

Quizzes*

0% - 15%

Term Tests*              

20% - 35%

Final Examination*      

25% - 40%

Total

100%

* In order to pass the course, in addition to receiving an overall course grade of 50%, students must achieve a grade of at least 50% on the combined weighted examination components (including quizzes, term tests, and final examinations.)

Learning Outcomes

Upon the completion of this course, successful students should be able to:

  • Describe the scope and importance of software engineering.
  • Define technical terms used by information systems practitioners.
  • Identify and differentiate between the roles and responsibilities involved in a software development team.
  • Identify various software process models, e.g. agile vs. plan-driven development.
  • Identify the major phases included in a modern software development process.
  • Identify outcomes and deliverables of core development activities, from requirements analysis and software design to implementation and user documentation.
  • Generate a software requirements specification to detail functional and non-functional requirements.
  • Use Unified Modeling Language (UML) to model different perspectives of a software system.
  • Describe different data models and apply simple data normalization.
  • Utilize standard coding styles that are effective in pair programming and code review.
  • Identify various testing techniques and software quality management activities.
  • Describe the goals, principles, activities, and components of software quality management.
  • Implement best ethical practices for teamwork dynamics in software development.
  • Utilize a modern Integrated Development Environment (IDE) and various software development tools such as Git version control system, debuggers, and builders to promote teamwork and successfully complete software projects.
Textbook Materials

Consult the Douglas College Bookstore for the latest required textbooks and materials.

Sample text:

Software Engineering (latest edition), Ian Sommerville, Pearson, ISBN: 9780133943238

Requisites

Prerequisites

A minimum grade "C" in all of the following courses is required:

Corequisites

No corequisite courses.

Equivalencies

No equivalent courses.

Course Guidelines

Course Guidelines for previous years are viewable by selecting the version desired. If you took this course and do not see a listing for the starting semester / year of the course, consider the previous version as the applicable version.

Course Transfers

These are for current course guidelines only. For a full list of archived courses please see https://www.bctransferguide.ca

Institution Transfer Details for CMPT 2276
Alexander College (ALEX) ALEX CPSC 2XX (3)
Athabasca University (AU) AU COMP 361 (3)
Camosun College (CAMO) CAMO ICS 125 (3)
College of New Caledonia (CNC) CNC CSC 2XX (3)
College of the Rockies (COTR) COTR COMP 2XX (3)
Columbia College (COLU) COLU CSCI 275 (3)
Coquitlam College (COQU) COQU CSCI 275 (3)
Kwantlen Polytechnic University (KPU) No Credit
LaSalle College Vancouver (LCV) LCV VGP 114 (3)
North Island College (NIC) NIC CPS 2XX (3)
Northern Lights College (NLC) NLC ITEC 2XX (3)
Okanagan College (OC) No credit
Simon Fraser University (SFU) SFU CMPT 276 (3)
Thompson Rivers University (TRU) TRU COMP 3520 (3)
University Canada West (UCW) UCW CPSC 2XX (3)
University of British Columbia - Okanagan (UBCO) UBCO COSC_O 2nd (3)
University of British Columbia - Vancouver (UBCV) UBCV CPSC_V 210 (4)
University of Northern BC (UNBC) UNBC CPSC 300 (3)
University of the Fraser Valley (UFV) UFV COMP 370 (3)
University of Victoria (UVIC) UVIC SENG 2XX (1.5)
Vancouver Community College (VCC) VCC CMPT 2276 (3) or VCC CSTP 1204 (3)
Vancouver Island University (VIU) VIU CSCI 1st (3)
Yorkville University (YVU) No Credit

Course Offerings

Summer 2024