Introduction to Software Engineering
Overview
- 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
Methods of instruction will include some or all of the following: lectures, labs, and self-directed learning (assignments and group projects).
Evaluation will be carried out in accordance with the °µÍø51 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.)
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.
Consult the °µÍø51 Bookstore for the latest required textbooks and materials.
Sample text:
Software Engineering (latest edition), Ian Sommerville, Pearson, ISBN: 9780133943238
Requisites
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 to Other Institutions
Below are current transfer agreements from °µÍø51 to other institutions for the current course guidelines only. For a full list of transfer details and archived courses, please see the .
| 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
Winter 2026
| CRN | Days | Instructor | Status | More details |
|---|---|---|---|---|
|
CRN
16787
|
Tue Thu | Instructor last name
Janzen
Instructor first name
Izabelle
|
Course status
Open
|