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

Organization

See slides.

Sessions

30/09
  • professor: Guillaume Muller

  • SCRUM

14/10
21/10
05/11
  • 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

All slides

Lecture 1. Introduction, Requirements, Software Quality

Outline
  • 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)

Pointers
  • http://www.sigsoft.org/index.html

  • 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)

  • Practical Test Pyramid

  • 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

Videos
Tutorial

Lecture 2. Software Engineering Process, and focus on the Scrum methodology

Outline
  • 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

Lecture 3. The Unified Modeling Language

Outline
  • 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

Lecture 4. Software Engineering Architecture

ICM only. See eCampus

Lecture 5. Software Engineering Good Practices

ICM only. See eCampus