Software Engineering
Teaching Objectives
The objective of this course is to introduce students to a systematic methodology for the analysis and design of software systems. In particular, students will learn the principles of Object-Oriented Analysis and Design and how to model software systems using the universal UML (Unified Modeling Language).
Prerequisite Knowledge
Students are expected to have basic knowledge of:
Algorithms and Data Structures
Information Systems
Object-Oriented Programming
Course Content
Chapter 1. Introduction
Definitions and objectives of Software Engineering
Principles of Software Engineering
Expected software quality attributes
Software life cycle
Software life-cycle models
Chapter 2. UML Modeling
Introduction
Modeling
Model
Object-Oriented Modeling
UML applications
General elements and mechanisms
UML diagrams
Packages
Chapter 3. UML Use Case Diagram: Functional View
Purpose and definition
Notation
Chapter 4. UML Class and Object Diagrams: Static View
Class diagram
Object diagram
Chapter 5. UML Diagrams: Dynamic View
Interaction diagrams
Sequence diagram
Communication diagram
Activity diagram
State machine diagram
Chapter 6. Other UML Concepts and Diagrams
Components, deployment, and composite structure diagrams
Extension mechanisms
OCL (Object Constraint Language)
UML Profiles
Chapter 7. Introduction to Development Methods and Reverse Engineering
RUP (Rational Unified Process)
XP (Extreme Programming)
Reverse Engineering
Assessment
Final Examination: 60%
Continuous Assessment: 40%
References
Bern Bruegge and Allen H. Dutoit, Object-Oriented Software Engineering – Using UML, Patterns, and Java, Third Edition, Pearson, 2010.
G. Booch, J. Rumbaugh, I. Jacobson, The Unified Modeling Language (UML) Reference Guide, Addison-Wesley, 1999.
G. Booch, J. Rumbaugh, I. Jacobson, The Unified Modeling Language (UML) User Guide, Addison-Wesley, 1999.
G. Booch et al., Object-Oriented Analysis and Design with Applications, Addison-Wesley.
Laurent Audibert, Cours UML 2.0, available online at Developpez.com.
M. Blaha and J. Rumbaugh, Object-Oriented Modeling and Design with UML 2, 2nd Edition, Pearson Education.
Pierre-Alain Muller, Object-Oriented Modeling with UML, Eyrolles.
Shari Lawrence Pfleeger and Joanne M. Atlee, Software Engineering, Fourth Edition, Pearson, 2010.

- Enseignant: Hamza Merouani