Hugo Tekeng
INF1011Fall 2025Software
← Back to university path

Software Engineering

Detailed view of the course, studied concepts, technologies used, and major academic work associated with it.

Code

INF1011

Session

Fall 2025

Domain

Software

Overview

Course focused on the fundamental principles of software engineering and the production of quality software. It helped me deepen my understanding of reusable and maintainable design, quality assurance, testing, software project management, and software evolution, while applying design patterns and design principles in a session project.

Technologies used

UMLGRASPSOLIDDesign PatternsTests unitaires

Key concepts covered

  • Fundamental principles and concepts of software engineering
  • Software product and quality characteristics
  • Software engineering processes
  • Lifecycle models
  • Prototyping
  • Standards and process maturity
  • Lightweight processes and agile methods
  • Encapsulation, types, and interfaces
  • Composition versus inheritance
  • Unit testing
  • Dependency inversion
  • GRASP design principles
  • SOLID design principles
  • Software reuse
  • Design patterns
  • Object-oriented programming
  • Other programming paradigms
  • Validation and verification
  • Testing process: techniques, strategies, planning, and execution
  • Software quality and metrics
  • Quality control
  • Software project management
  • Software maintenance and evolution
  • Reengineering
  • Technical documentation
  • Teamwork on a software project

Coursework and evaluated components

  • Team session project
  • Project phase 1 with presentation
  • Project phase 2 with final presentation
  • Case studies and exercises on design principles
  • Midterm exam
  • Final exam