Course2 GL
Course2 GL
Engineerin
g
Chapter 1
2024/2025
Table of content
01 02 03
Introductio History, Principles of
n definitions and Software
objectives Engineering
04 06
Software Software life
Quality cycle
Criteria
Introduction
What is a software?
Software consists of a series of
instructions (programs) and data
(such as files, images, and databases)
that a computer automatically
executes to complete a specific task.
Software everywhere!!
Introduction
Our life depends very heavily on the quality of the software that manages it.
Poorly made software can lead to various issues, including system crashes, data
loss, security vulnerabilities, and user frustration, ultimately affecting productivity
and trust in the technology.
Examples: 01
The life cycle enables early error detection, allowing for better control over software
quality, production timelines, and associated costs.
Software Life Cycle
All development projects have common activities: Analysis
Design
Implementation
Testing
Deployment
Maintenance
Software Life Cycle
Analysis: Gather and analyze user requirements to understand what the software needs to
accomplish.
Design: Enrich the software description with implementation details to achieve a description very
close to that of a program (describing the "how").
- Architectural design aims to decompose the software into simpler components defined by
their interfaces and functions (the services they provide).
- Detailed design provides a description for each component regarding how functions or
services are implemented: algorithms and data representation.
Implementation:
- Choice of the development environment, programming language(s), and development
standards...,
- Write and compile the code based on the design specifications.
Software Life Cycle
Testing: Conduct various tests to identify and fix bugs or issues. This includes unit testing,
integration testing, and user acceptance testing.
- Unit tests : These allow you to individually verify that each subset of the software is
implemented according to specifications.
- Integration tests : The objective is to ensure the interfacing of the different elements
(modules) of the software.
- User acceptance tests: verification of the conformity of the software to initial specifications
(Validation by the buyer).
Deployment: Release the software to users, which may involve installation, configuration, and
training.
Maintenance: Address any issues that arise after deployment, implement updates, and add new
features as needed. This phase can continue for the software's entire lifecycle.
To limit maintenance time and costs, efforts must be focused on the earlier stages.
Software Life Cycle
Document Activity
Final user manual Implementation
Architectural design document Design
Source code Implementation
Specification document Requirements analysis
Preliminary user manual Requirements analysis
Detailed design document Design
Test report Testing
Implementation documentation Functional specification
Specification
Software Life Cycle Models
The cascade model (waterfall)
One of the first models offered (1970) inspired by the construction industry (no turning back).
each phase ends on a specific date with the production of certain documents or software.
A phase can only start if the previous one has finished. The results are subject to an in-depth
review and we only move on to the next phase if they are deemed satisfactory
There's no going back (or little).
Suitable for small projects, where the domain is well mastered (stable needs, new versions
of a project, etc.).
Note : The testing phase comes late (discovering errors, or changing specifications
requires redoing all the work)
Software Life Cycle Models
The V model:
Design and deliver to the customer a minimal and functional sub-assembly of the system
We start by developing the most stable, most important parts…
Proceed by adding minimal increments until the end of the development process
Benefits:
better integration of the client in the development process.
Product meets expectations.
Software Life Cycle Models
The spiral model (iterative):
Development takes up the different stages of the V (evolutionary) cycle. By implementing
successive versions, the cycle begins again by offering an increasingly complete and robust
product.
The spiral cycle, however, places more emphasis on risk management.
The start of each iteration includes a risk analysis phase . This is made necessary by the
fact that, during cyclical development, there is a greater risk of undoing
Requires a lot of experience.