ICM – Computer Science Major – Software Engineering - Part 1: Introduction and M1 Cyber Physical and Social Systems – Course unit on CPS2 engineering and development, Part 3: System Engineering
Institut Henri Fayol - MINES Saint-Étienne
Syllabus
The objective is to know some core concepts, processes, and models, that are useful to comprehend common issues and problems in the engineering of IT systems that result from the integration of existing systems (systems of systems), operate in distributed environments Web, IoT, Cloud, …
Topics:
-
Software Engineering Introduction
-
Motivations and Definitions
-
-
Software Requirements
-
Definitions
-
Elicitation, analysis, specification, validation
-
-
Software Quality
-
The ISO/IEC 25010:2011 System and software quality models
-
-
Software Engineering process
-
Software development life cycles
-
Agile methodologies
-
The Scrum methodology
-
DevOps methodologies
-
-
Software Engineering Models
-
The Unified Modeling Language
-
Evaluation for this part
-
Written exam (100 %)
Organization
See slides.
Sessions
-
professor: Maxime Lefrançois
-
professor: Guillaume Muller
-
professor: L. Gustavo Nardin
-
professor: L. Gustavo Nardin
-
Written exam
-
The exam tests your knowledge with respect to the content of the lectures, and contains exercises similar to those prepared during the tutorials.
Lectures
Lecture 1. Introduction, Requirements, Software Quality
-
Part 1: Introduction
-
60s-80s – The Software Crisis
-
Stories about software bugs
-
Productivity and quality issues in software …
-
… called for the development of Software Engineering
-
SWEBOK: Software Engineering Body of Knowledge
-
-
Part 2. Software Requirements
-
Software Requirement - definition
-
Product and Process requirements
-
Functional and Nonfunctional requirements
-
Requirements process
-
Actors
-
i) Elicitation
-
ii) Analysis
-
iii) Specification
-
iv) Validation
-
Software requirements tools
-
-
-
Part 3. The ISO/IEC 25010:2011 System and software quality models
-
Software quality models (ISO/IEC 250XX)
-
-
https://www.computer.org/web/swebok (Software Engineering Body of Knowledge IEEE, 2025)
-
https://iansommerville.com/software-engineering-book/ (Ian Sommerville: Software Engineering, 10th edition, 2015)
-
http://www.ece.rutgers.edu/\~marsic/books/SE/book-SE_marsic.pdf (Ivan Marsic: Software Engineering, 2012)
-
Bruegge & Dutoit, OO Sw Engineering, Pearson, 3ed., 2010 Pressman, Software Engineering, 8° edition, 2015
-
Arlow & Neustadt, UML2 and Unified Process, McGraw Hill, 2007
-
ISO/IEC 25010:2011 Systems and software engineering - Systems and software Quality Requirements and Evaluation (SQuaRE) - System and software quality models
-
Journals:
-
IEEE Transactions on Software Engineering
-
ACM Transactions on software Engineering and methodology
-
IEEE Software
-
Empirical Software Engineering
-
Automated Software Engineering
-
Journal of Object Technology
-
ACM SIGSOFT
-
-
Conferences:
-
Int. Conference on Software Engineering
-
International Conference of Software Engineering
-
Fundamentals of Software engineering
-
SPLASH
-
International Conference on Software and System Process
-
-
Agile Essence and Fluency by Martin Fowler
-
Agile Methods The Good, the Hype and the Ugly Part I and Part II with Bertrand Meyer
-
Spotify Software Engineering Culture (Part 1), Spotify Software Engineering Culture (Part 2) Agile/lean software development approach at Spotify (13 min each)
-
Tutorial 1 on requirements engineering
Lecture 2. Software Engineering Process, and focus on the Scrum methodology
-
Part 4: Software Engineering Process
-
Software engineering methods – definition
-
Analysis vs. Design: What vs. How
-
Software development life cycles (SDLC)
-
The waterfall development life cycle model
-
The V-model life cycle model
-
Many more SDLC models …
-
Simplest SDLC models …
-
-
Agile methods (not a SDLC model!)
-
Agile manifesto
-
Agile vs « traditional » methods
-
Agile development methods
-
Extreme Programming (XP)
-
Scrum - Framework
-
-
DevOps
-
Agile vs DevOps
-
-
-
Part 5. Focus on the Scrum methodology
-
Scrum team: Scrum Master, Product Owner, Developers
-
Framework
-
Product backlog
-
Sprint planning
-
Sprint backlog
-
Daily scrum
-
Sprint review
-
Increment and Done
-
Sprint retrospective
-
Scrum values
-
-
Tutorial 2: a SCRUM Learning Game
Lecture 3. The Unified Modeling Language
-
Part 6: the Unified Modeling Language
-
Introduction
-
Software Development Methods
-
Object-oriented Software Development methods
-
UML history and evolution
-
UML Meta-Model, vocabulary, diagrams
-
Diagrams within Views on the Software
-
-
Use case diagrams
-
Activity diagrams
-
Class diagrams
-
Sequence diagrams
-
State machine diagrams
-
Deployment diagrams
-
-
Tutorial 3 on the Unified Modeling Language
-
Practical work on UML Modeling