About U of O
Prospective Students
News & Events
Alumni & Friends
FrançaisLibrariesMapsKeyword Search and DirectoriesCoursesU of O Home

Current calendars

Faculty calendars

Health Sciences
Law (Civil Law)
Law (Common Law)
Social Sciences


Archived Calendars

See List

Contact Information

Tabaret Hall
75 Laurier Av. E.
Ottawa, ON, Canada
K1N 6N5

Tel: 613-562-5630
Toll-free phone:


Tel: 613-562-5315
Toll-free phone:
1-877-868-8292 (#5315)

Calendars > Courses > SOFTWARE ENGINEERING


2100 2101 2500 2501 2901 2910 2911 3100 3110 3120
3150 3201 3202 3203 3255 3300 3310 3500 3510 3520
3550 3601 3602 3603 3655 3700 3710 3901 3902 4100
4111 4140 4155 4210 4289 4500 4511 4540 4555 4610
4689 4901 4902 4910 4911 4912 4913      

SEG2100 Introduction to Software Engineering (3,1.5,1.5) 4 cr.
Principles of software engineering: Requirements, design and testing. Review of principles of object orientation. Object oriented analysis using UML. Frameworks and APIs. Introduction to the client-server architecture. Analysis, design and programming of simple servers and clients. Introduction to user interface technology.
SEG2101 Software Construction (3,1.5,1.5) 4 cr.
BNF and basic theory of grammars and parsing. Use of parser generators. Design of simple languages for applications and programming languages. State-transition based software design. Experience in the use of industrial-strength design toolsets. Software design methods for handling concurrency and interprocess communications.
Prerequisites: CSI2210, SEG2100
SEG2500 Introduction au génie logiciel (3,1.5,1.5) 4 cr.
Les principes du génie logiciel : Requis, conception et tests. Revue des principes de l'orientation objet. Analyse orienté objet avec UML, des cadres de conception et des interfaces. Introduction à l'architecture client-serveur. Analyse, conception et programmation de clients et serveurs simples. Introduction à la technologie des interfaces utilisateurs.
Préalable: ITI1621.
SEG2501 Construction de logiciels (3,1.5,1.5) 4 cr.
BNF et théorie de base des grammaires et de l'analyse syntaxique. Utilisation de générateurs d'analyseurs syntaxiques. Conception de langages d'application et de langages de programmation simples. Conception de systèmes informatiques par transitions d'états. Utilisation d'outils de développement industriels. Méthodes de conception de logiciel pour des systèmes avec concurrence et des communications inter-processus.
Préalables: CSI2610, SEG2500
SEG2901 Rapport de stage coop I / Co-op Work Term Report I 3 cr.
SEG2910 Pratique de la profession d'ingénieur logiciel / Professional Software Engineering Practice (1,0,0) 1 cr.
Principles of professional software engineering practice and ethics, societal and environmental obligations of the software engineer.
SEG2911 Pratique de la profession d'ingénieur logiciel / ProfessionalSoftware Engineering Practice (3,0,0) 3 cr.
Principles of professional software engineering practice and ethics, societal and environmental obligations of the software engineer.
SEG3100 Software Development for Large-Scale Systems (3,0,3) 4 cr.
The software development life cycle. Introduction to software project management: cost estimation and project planning. Software specification and requirements analysis. Comparison of software architectures. Design principles such as coupling and cohesion. Introduction to software metrics. Software quality assurance strategies: the personal-software process, reviews, testing and inspections. Assessing software designs for safety, security, performance and economic viability. Use of static and dynamic analysis tools.
Prerequisite: SEG2101 or SEG3300.
SEG3110 Advanced Object Oriented Analysis and Design (3,0,3) 4 cr.
Advanced approaches to object oriented analysis and design. Frameworks and design patterns. Design for reusability. Advanced object oriented programming techniques. Design using object oriented databases and distributed object architectures. Design of software agents. Project involving object oriented analysis, design and implementation.
Prerequisites: (SEG3100 or SEG3310), CSI3317.
SEG3120 Analysis and Design of User Interfaces (3,1.5,1.5) 4 cr.
Psychological principles of human-computer interaction. Evaluation of user interfaces. Usability engineering. Task analysis, user-centered d esign and prototyping. Conceptual models and metaphors. Software desig n rationale. Design of windows, menus and commands. Voice and natural language I/O. Response time and feedback. Colour, icons and sound. Int ernationalization and localization. User interface architectures and A PIs. Case studies and project.
Prerequisite : SEG2100
SEG3150 Telecommunications Software Engineering (3,0,3) 4 cr.
Principles of information transfer. Error control, flow control, congestion control, routing algorithms. Principles of telecommunications system software design and analysis.
Prerequisites: MAT2343, SEG2101, CSI2114.
SEG3201 Software Requirements Analysis (3,1.5,1.5) 4 cr.
Techniques for eliciting requirements. Languages and models for representing requirements. Analysis and validation techniques, including need, goal and use-case analysis. Requirements in the context of system engineering. Specifying and measuring external qualities: performance, reliability, availability, safety, security, etc. Specifying and analyzing requirements for various types of systems: embedded systems, consumer systems, web-based systems, business systems, systems for scientists and other engineers. Resolving feature interactions. Requirements documentation standards. Traceability. Human factors. Requirements in the context agile processes. Requirements management: Handling requirements changes.
Prerequisite: SEG2100
SEG3202 Software Design and Architecture (3,1.5,1.5) 4 cr.
An in-depth look at software design. Continuation of the study of design patterns, frameworks and architectures. Survey of current middleware architectures. Design of distributed systems using middleware. Designing for qualities such as performance, safety, security, reusability, reliability, etc. Measuring internal qualities and complexity of software. Evaluation and evolution of designs. Basics of reengineering and reverse engineering.
SEG3203 Software Quality Assurance (3,1.5,1.5) 4 cr.
Quality: how to assure it and verify it, and the need for a culture of quality. Avoidance of errors and other quality problems. Inspections and reviews. Testing, verification and validation techniques. Process assurance vs. Product assurance. Quality process standards. Product and process assurance. Problem analysis and reporting.
Prerequisite: SEG2100
SEG3255 Communication and Networking (3,1.5,1.5) 4 cr.
Basics of information theory. Communications concepts: Fourier transforms, signal analysis. Protocols. The OSI reference model. Data transmission: analog-digital conversion, channel capacity, bandwidth, signal encoding, transmission media. Error detection and correction. Flow control; error control. Data link layer protocols and multiplexing. Medium Access Control; LAN architectures. Circuit vs. packet switching. Network layer. Congestion control and traffic management. TCP/IP.
Prerequisite: MAT2377
SEG3300 Introduction to Software Engineering (3,0,0) 3 cr.
The software development life cycle. Project management issues. Software specification and requirements analysis. Software design techniques. Cost estimation. Software metrics. Software testing strategies. Software maintenance.
Prerequisite: CSI2115 or CSI3125.
SEG3310 Object-Oriented Analysis, Design and Programming (3,0,1.5) 3 cr.
Quality criteria for modular design. Subtyping and inheritance. Object-oriented analysis, object-oriented modelling and design. Object-oriented programming methodology. Object repositories and reuse.
Prerequisite: CSI2115 or CSI3125 or SEG2101.
SEG3500 Développement de systèmes informatiques de taille industrielle (3,0,3) 4 cr.
Le cycle de vie d'un logiciel. Introduction à la gestion de projets informatiques: estimation des coûts et planification de projets. Spécification de logiciels et analyse des besoins. Comparaison d'architectures logicielles. Principes de conception tels que couplage et cohésion. Introduction aux métriques du logiciel. Stratégies de garantie de qualité: processus personnel de développement de logiciels (PSP), examen, test et inspections. Évaluation des qualités concernant la sécurité, la performance et la viabilité économique. Utilisation d'outils d'analyse statiques et dynamiques.
Préalable : SEG2501 ou SEG3700.
SEG3510 Concepts avancés en programmation orientée objet (3,0,3) 4 cr.
Approches approfondies pour l'analyse et la conception orientées objet. Cadres et modèles. Conception en vue de la réutilisation. Techniques de programmation avancées. Conception utilisant les bases de données orientées objet et les architectures d'objets distribués. Agents logiciels. Projet.
Préalables : (SEG3500 ou SEG3710), CSI3717.
SEG3520 Conception et analyse des interfaces usagers (3,1.5,1.5) 4 cr.
Principes psychologiques de l'interaction humains-machines. Évaluation des interfaces, ingénierie de l'utilisabilité. Analyse des tâches. Co nception basée sur l'usage et prototypage. Modèles conceptuels et mét aphores. Ingénierie rationelle d'un logiciel. Conception de fenêtres, menus et commandes. Entrées/sorties vocales en language naturel. Tem ps de réponse et rétroaction. Couleurs, icônes, sons. Localisation et internationalisation. Architectures des interfaces usagers et biblioth èque d'application. Études de cas et projet.
Préalable : SEG2500
SEG3550 Ingénierie des logiciels de télécommunication (3,0,3) 4 cr.
Principes de transport de l'information. Contrôle d'erreur, contrôle d e flux, contrôle de congestion, algorithmes de routage. Principes de c onception et d'analyse des logiciels pour les systèmes de télécommunic ations.
Préalables : MAT2743, SEG2501, CSI2514.
SEG3601 Ingénierie des exigences (3,1.5,1.5) 4 cr.
Techniques pour l'élicitation d'exigences. Langages et modèles pour représenter les exigences. Techniques d'analyse et de validation, incluant l'analyse de besoins, de buts et de cas d'utilisations. Exigences dans le contexte de l'ingénierie des systèmes. Spécification et mesure de qualités externes: performance, fiabilité, disponibilité, sûreté, sécurité, etc. Spécification et analyse d'exigences pour divers types de systèmes: embarqués, grand public, d'applications Web, d'affaires, pour scientifiques et autres ingénieurs. Résolution d'interactions entre services. Normes de documentation d'exigences. Traçabilité. Facteurs humains. Exigences dans le contexte de processus agiles. Gestion des exigences et des changements.
Préalable : SEG2500
SEG3602 Architecture et conception de logiciels (3,1.5,1.5) 4 cr.
Regard approfondi sur la conception des logiciels. Suite de l'étude de patrons de conception, de cadres de développement et d'architectures. Survol d'architectures intergicielles contemporaines. Conception de systèmes répartis à l'aide d'intergiciels. Conception pour des qualités externes: performance, sûreté, sécurité, réutilisabilité, fiabilité, etc. Mesure de qualités internes et complexité logicielle. Évaluation et évolution de conceptions. Notions de réingénierie et d'ingénierie inverse.
SEG3603 Assurance de la qualité logicielle (3,1.5,1.5) 4 cr.
Qualité: comment s'en assurer et la vérifier, et le besoin d'une culture de la qualité. Évitement d'erreurs et d'autres problèmes de qualité. Inspections et revues. Techniques de test, de vérification et de validation. Assurance de processus vs assurance de produit. Normes de qualité des processus. Rapport et analyse de problèmes.
Préalable: SEG2500
SEG3655 Communication et Résautage (3,1.5,1.5) 4 cr.
Fondements de la théorie de l'information. Concepts de base en communication: transformées de Fourier, analyse du signal, échantillonnage. Protocoles. Le modèle de référence OSI. Transmission de données: conversion analogue-numérique, capacité de canal, bande passante, encodage, média de transmission. Détection et correction d'erreur. Contrôle de flux, contrôle d'erreurs. Prototoles de la couche liaison et multiplexage. Contrôle d'accès au support; architecture de réseau local. Commutation de circuits et de paquets. Couche réseau. Congestion et gestion du trafic. TCP/IP.
Préalable: MAT2777
SEG3700 Introduction au génie logiciel (3,0,0) 3 cr.
Cycle de développement de logiciels. Gestion de projet. Estimation des coûts. Métrique des logiciels. Spécifications des logiciels et analyse des besoins. Techniques de conception de logiciels. Stratégies de test. Maintenance des logiciels.
Préalable : CSI2515 ou CSI3525.
SEG3710 Analyse, conception et programmation orientée objet (3,0,1.5) 3 cr.
Critères de qualité pour la conception modulaire. Hiérarchies de types et héritage. Analyse orientée objet; modélisation et conception orientée objet. Méthodologie de programmation orientée objet. Archives d'objets et réutilisation.
Préalable : CSI2515 ou CSI3525 ou SEG2501.
SEG3901 Rapport de stage coop II / Co-op Work Term Report II 3 cr.
SEG3902 Rapport de stage coop III / Co-op Work Term Report III 3 cr.
SEG4100 Software Project Management (3,1.5,1.5) 4 cr.
Advanced project planning, cost estimation and scheduling. Project management tools. Factors influencing productivity and success. Productivity metrics. Analysis of options and risk. Planning for change. Management of expectations. Release and configuration management. Software process standards. Software contracts and intellectual property. Approaches to maintenance and long-term software development. Reengineering and reverse engineering. Case studies of real industrial projects.
Prerequisites : SEG2100 plus two third year SEG or CSI courses.
SEG4111 Software Quality Engineering (3,0,3) 4 cr.
Requirements gathering techniques. Formal approaches to specification of requirements. Use of specification languages and CASE tools to model requirements. Handling uncertain and changing requirements. Certification, verification and validation techniques. Advanced testing techniques. Regression testing. Software metrics. Statistical software reliability engineering.
Prerequisites: (SEG3100 or SEG3300), MAT2343, (MAT2375 or MAT2377).
SEG4140 Real Time and Embedded Software Design (3,1.5,1.5) 4 cr.
The nature of hard and soft real time systems. Avoidance, detection and resolution of deadlocks and races. Strategies for guaranteeing timely response. Architectures for real-time systems, including control and monitoring systems. Real-time monitors, operating systems and run-time environments. Languages and tools for designing, constructing and analysing real-time systems. Device drivers and other embedded software that interacts in real-time with hardware. Case studies of a wide variety of real time systems.
Prerequisites: CEG2131, CSI3310, SEG2101.
SEG4155 Telecommunications Software Design and Analysis (3,1.5,1.5) 4 cr.
Formal models for telecommunications software design and analysis. Protocol specification, design and validation. Protocol verification and testing. Conformance testing. Protocol synthesis. Protocol conversion.
Prerequisites:SEG2101, SEG3255
SEG4210 Advanced Software Design and Reengineering (3,1.5,1.5) 4 cr.
Aspect-oriented design and metaprogramming. Model driven architecture. Reverse engineering, program understanding, re-engineering, automated program transformation and refactoring. Other advanced techniques for design and generation of software systems.
Prerequisite: SEG3202
SEG4289 Introduction to Electronic Commerce (3,1.5,1.5) 4 cr.
Basic e-commerce concepts, business models, and functional architectures. Internet infrastructure and tools (including support for wireless). XML and related technologies. Secure electronic transactions. Public key Infrastructure. Emerging standards and consortiums to support electronic commerce. Introduction to technical, legal and business issues in e-commerce (agents, auctions, privacy, digital rights etc.) Case studies.
Prerequisite: CSI3240
SEG4500 Gestion de projets en génie logiciel (3,1.5,1.5) 4 cr.
Notions avancées de planification de projet, estimation des coûts et délais. Outils de gestion de projet. Facteurs influençant la productivité et le succès. Mesures de productivité. Analyse des options et des risques. Planification des changements. Gestion des attentes. Gestion de version et de configuration. Normes du processus de développement. Contrats de développement de logiciel et propriété intellectuelle. Approches à la maintenance et le développement à long terme. Ré-ingénierie et retro-ingénierie. Études de cas de projets industriels réels.
Préalables: SEG2500 plus deux cours de troisième année en SEG ou CSI.
SEG4511 Contrôle de qualité des logiciels (3,0,3) 4 cr.
Techniques d'obtention de besoins. Approches formelles pour la spécification de besoins. Utilisation de langages de spécification et d'outils de conception de logiciels. Le traitement de besoins imprécis et changeants. Techniques pour la certification, la vérification et la validation de logiciels. Techniques de test avancées. Tests de régression. Métriques du logiciel. Ingénierie statistique de la fiabilité de logiciels.
Préalables : (SEG3500 ou SEG3700), MAT2743, (MAT2775 ou MAT2777).
SEG4540 Conception de systèmes embarqués et en temps réel (3,1.5,1.5) 4 cr.
Nature des systèmes en temps réel dur et en temps réel mou. Évitement, détection et résolution de situations d interblocage et de concurrence critique. Stratégies pour garantir des réponses ponctuelles. Architectures pour systèmes en temps réel, y compris les systèmes de contrôle et de surveillance. Moniteurs temps réel, systèmes d exploitation et environnements d exécution. Langages et outils pour concevoir, construire et analyser des systèmes en temps réel. Pilotes et autres logiciels embarqués qui interagissent en temps réel avec le matériel. Études de cas d une grande variété de systèmes en temps réel.
Préalables: CEG2531, CSI3710, SEG2501
SEG4555 Conception et analyse de logiciels de télécommunications (3,0,3) 4 cr.
Modèles théoriques pour la conception et l'analyse de logiciels de télécommunications. Spécification, conception et validation de protocoles. Vérification et test de protocoles. Test de conformité. Synthèse et transformation de protocoles.
Préalables: SEG2501, SEG3655
SEG4610 Conception avancée de logiciels et réingénierie (3,1.5,1.5) 4 cr.
Conception orientée aspect et métaprogrammation. Architecture guidée par modèle. Ingénierie inverse, compréhension de programmes, réingénierie, transformations de programmes automatisées et réusinage. Autres techniques avancées pour la conception et la génération de systèmes à base de logiciels.
Préalable: SEG3602
SEG4689 Introduction au commerce élecronique (3,1.5,1.5) 4 cr.
Modèles de base en commerce électronique. Infrastructures de l'Internet et outils. TCP/IP, serveurs Web, moteurs de recherche. Cryptographie. Infrastructure à clé publique. Gestion des clés et autorités de certification. Protocoles SSL et SET. Présentation de contenu: XML. Protocole OTP. Agents mobiles intelligents. Enchères et négotiations. Études de cas.
Préalable: CSI3640
SEG4901 Rapport de stage coop IV / Co-op Work Term Report IV 3 cr.
SEG4902 Rapport de stage coop V / Co-op Work Term Report V 3 cr.
SEG4910 Projet génie logiciel de fin d'études 1ère partie / Software Engineering Capstone Project - Part 1 (1,0,6) 3 cr.
Formation of teams and development of the first intertions of a significant software system. Work includes project management, analysis, quality assurance, design, and implementation. Deliverables include written documentation and presentations in class. Work is guided by a professor, but is performed for an external entily designated the custumer, who must be satisfied with the group's work. Students are expected to address any risks of societal concerns raised by their project (legal liability, financial costs, community impact) in keeping with the obligations and responsibilities expected of a professonal engineer.
Prerequisites: Completion of all 3000 series SEG courses required by the SEG program. Note: The project started in SEG 4910 must be completed in SEG 4911; if a student has to start a new project, SEG4910 must be repeated.
SEG4911 Projet génie logiciel de fin d'études 2ème partie / Software Engineering Capstone Project - Part 2 (1,0,6) 3 cr.
Prerequisite: SEG 4910, taken the previous semester, working on the same project with the same group for the same customer.
SEG4912 Projet génie logiciel de fin d'études 1re partie / Software Engineering Capstone Project - Part 1 (1,0,6) 4 cr.
Formation of teams and development of the first iterations of a significant software system. Work includes project management, analysis, quality assurance, design, and implementation. Deliverables include written documentation and presentations in class. Work is guided by a professor, but is performed for an external entity designated the 'customer', who must be satisfied with the group's work. Students are expected to address any risks or societal concerns raised by their project (legal liability, financial costs, community impact) in keeping with the obligations and responsibilities expected of a professional engineer.
Prerequisites: Completion of all 3000 series SEG courses required by the SEG program. Note: The project started in SEG 4910 must be completed in SEG 4911; if a student has to start a new project, SEG4910 must be repeated.
SEG4913 Projet génie logiciel de fin d'études 2e partie / Software Engineering Capstone Project - Part 2 (1,0,6) 4 cr.
Completion of work started in SEG 4910. Work includes project management, analysis, quality assurance, design, implementation and a final report. Deliverables include written documentation and presentations in class.
Prerequisite: SEG4912, taken the previous semester, working on the same project with the same group for the same customer.


About U of O | Prospective Students | Students | Services | Academics | Research | News and Events | Alumni and Friends

System requirements | Feedback | Privacy Policy | Accessibility

© University of Ottawa
If you are looking for additional information, please contact us.
Technical questions or comments about this site? Last updated: 2015.08.06