Top Banner
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapitre 1: Software and Software Engineering
27

Object-Oriented Software Engineering Practical Software Development using UML and Java Chapitre 1: Software and Software Engineering.

Apr 04, 2015

Download

Documents

Nihel Delarue
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Object-Oriented Software Engineering Practical Software Development using UML and Java Chapitre 1: Software and Software Engineering.

Object-Oriented Software EngineeringPractical Software Development using UML and Java

Chapitre 1: Software and Software Engineering

Page 2: Object-Oriented Software Engineering Practical Software Development using UML and Java Chapitre 1: Software and Software Engineering.

© Lethbridge/Laganière 2001

Chapter 1: Software and Software Engineering

2

1.1 La Nature du Logiciel...

Le logiciel est intangible•Il est difficile de gérer l’effort de développement

Le logiciel est facile à reproduire•Tout le coût se trouve dans son développement—Pour d’autres produits, la fabrication est souvent le processus le plus coûteux

L’industrie du logiciel exige beaucoup de main d’œuvre•Le processus de développement est difficile à automatiser

Page 3: Object-Oriented Software Engineering Practical Software Development using UML and Java Chapitre 1: Software and Software Engineering.

© Lethbridge/Laganière 2001

Chapter 1: Software and Software Engineering

3

La nature du logiciel

Même des informaticiens peu qualifié peuvent arriver à bricoler quelque chose qui semble fonctionner•La qualité d’un logiciel n’est pas apparente

Un logiciel est facile à modifier•La tentation est forte d’effectuer des changements rapides sans vraiment en mesurer la portée

Un logiciel ne s’use pas•Il se détériore à mesure que des changements sont effectués—en raison de l’introduction d’erreurs —ou par une complexification indue

Page 4: Object-Oriented Software Engineering Practical Software Development using UML and Java Chapitre 1: Software and Software Engineering.

© Lethbridge/Laganière 2001

Chapter 1: Software and Software Engineering

4

La nature du logiciel

Conclusions•Beaucoup de logiciels sont mal conçus et se détériore rapidement

•La demande pour du logiciel est toujours croissante

•Le logiciel se trouve en perpétuel ‘état de crise’

•L’ingénierie du logiciel est une nécessité

Page 5: Object-Oriented Software Engineering Practical Software Development using UML and Java Chapitre 1: Software and Software Engineering.

© Lethbridge/Laganière 2001

Chapter 1: Software and Software Engineering

5

Les différentes catégories de logiciel...

Sur mesure•Pour un client spécifique

Générique•Vendu sur le marché

Embarqués•Scellé dans du matériel électronique•Difficile à modifier

Page 6: Object-Oriented Software Engineering Practical Software Development using UML and Java Chapitre 1: Software and Software Engineering.

© Lethbridge/Laganière 2001

Chapter 1: Software and Software Engineering

6

Les différentes catégories de logiciel...

Différences entre les logiciels sur mesure, génériques et embarqués

Sur mesure

Générique

Embarqué

Nombre de copies en circulation

faible moyen élevé

Effort de calcul total exigé

faible élevé moyen

Effort global de développement

élevé moyen faible

Page 7: Object-Oriented Software Engineering Practical Software Development using UML and Java Chapitre 1: Software and Software Engineering.

© Lethbridge/Laganière 2001

Chapter 1: Software and Software Engineering

7

Les différentes catégories de logiciel...

Logiciels temps-réel•e.g. systèmes de contrôle et de surveillance•Réaction immédiate requise•Environnement souvent très contraignant

Logiciels de traitement de données•Largement utilisés en administration des affaires

•Fiabilité des résultats•Sécurité dans l’accès aux données

Quelques fois les 2 aspects sont présents dans un logiciel

Page 8: Object-Oriented Software Engineering Practical Software Development using UML and Java Chapitre 1: Software and Software Engineering.

© Lethbridge/Laganière 2001

Chapter 1: Software and Software Engineering

8

1.2 Qu’est-ce que le génie du logiciel?...

Le processus visant la résolution de problèmes posés par un client par le développement systématique et l’évolution de systèmes logiciels de grande taille et de haute qualité en respectant les contraintes de coûts , de temps, et autres.

Autres définitions:•IEEE: (1) l’application d’une approche de développement, d’utilisation et de maintenance logiciel systématique, discuplinée, quantifiable. (2) L’étude des approches concernant (1).

•Canadian Standards Association: Les activités systématiques impliquant le design, l’implantation et la vérification du logiciel de façcon à en optimiser sa production et son support.

Page 9: Object-Oriented Software Engineering Practical Software Development using UML and Java Chapitre 1: Software and Software Engineering.

© Lethbridge/Laganière 2001

Chapter 1: Software and Software Engineering

9

Qu’est-ce que le génie du logiciel?...

…la résolution de problèmes posés par un client…•Voilà le but essentiel du génie logiciel•Dans certains cas, la solution peut être de ne rien développer, si un produit satisfaisant existe déjà

•Ajouter des options non requises par le client ne solutionne en rien le problème

•L’ingénieur logiciel doit établir une bonne communication afin de bien identifier et comprendre le problème à résoudre

Page 10: Object-Oriented Software Engineering Practical Software Development using UML and Java Chapitre 1: Software and Software Engineering.

© Lethbridge/Laganière 2001

Chapter 1: Software and Software Engineering

10

Qu’est-ce que le génie du logiciel?...

…par le développement systématique et l’évolution…•Tout processus d’ingénierie implique l’application de techniques bien maîtrisées de façon organisée et disciplinée

•Plusieurs pratiques reconnues ont maintenant été standardisées—e.g. IEEE ou ISO

•La plupart des projets logiciels consiste à faire évoluer un logiciel existant

Page 11: Object-Oriented Software Engineering Practical Software Development using UML and Java Chapitre 1: Software and Software Engineering.

© Lethbridge/Laganière 2001

Chapter 1: Software and Software Engineering

11

Qu’est-ce que le génie du logiciel?...

…systèmes logiciels de grande taille et de haute qualité…•Un logiciel de grande taille est un logiciel qui ne peut être compris par une seule personne

•Le travail en équipe et une bonne coordination sont essentiels

•Un des défis principaux est d’arriver à subdiviser le travail à accomplir tout en s’assurant que chacune de ces parties fonctionneront harmonieusement ensemble

•Le produit final doit rencontrer des critères de qualité bien établis

Page 12: Object-Oriented Software Engineering Practical Software Development using UML and Java Chapitre 1: Software and Software Engineering.

© Lethbridge/Laganière 2001

Chapter 1: Software and Software Engineering

12

Qu’est-ce que le génie du logiciel?...

…en respectant les contraintes de coûts , de temps, et autres.•Les ressources sont limitées•Le bénéfice résultant doit être supérieur aux coûts

•La productivité de l’équipe doit demeurer concurrentielle

•Une mauvaise estimation des coûts et de la durée du projet peut mener à l’échec du projet

Page 13: Object-Oriented Software Engineering Practical Software Development using UML and Java Chapitre 1: Software and Software Engineering.

© Lethbridge/Laganière 2001

Chapter 1: Software and Software Engineering

13

1.3 La profession d’ingénieur logiciel

Le terme Génie Logiciel a été introduit en 1968•Il s’agissait de reconnaître le fait que les principes du génie peuvent s’appliquer au développement du logiciel

Le génie est une pratique régulée par une corporation professionnel•Protection du public•Application de principes scientifiques et économiques

•Pratiques conformes à une éthique établie

Page 14: Object-Oriented Software Engineering Practical Software Development using UML and Java Chapitre 1: Software and Software Engineering.

© Lethbridge/Laganière 2001

Chapter 1: Software and Software Engineering

14

1.4 Les parties impliquées dans le génie du logiciel

1. Utilisateurs•Ceux qui se servent du logiciel

2. Clients•Ceux qui paient pour le logiciel

3. Développeurs•Ceux qui conçoivent le logiciel

4. Gestionnaires•Ceux qui supervise la production du logiciel

Tous ces rôle peuvent être remplis par la même personne

Page 15: Object-Oriented Software Engineering Practical Software Development using UML and Java Chapitre 1: Software and Software Engineering.

© Lethbridge/Laganière 2001

Chapter 1: Software and Software Engineering

15

1.5 La qualité du logiciel...Conviviabilité•Apprentissage aisé, facilité d’utilisation

Efficacité•Aucun gaspillage de ressources (mémoire, temps de calcul, …)

Fiabilité•Les tâches sont effectués sans problèmes

Facilité de maintenance•Aisé à modifier, à faire évoluer

Réutilisabilité•Ses parties peuvent être réutilisés facilement

Page 16: Object-Oriented Software Engineering Practical Software Development using UML and Java Chapitre 1: Software and Software Engineering.

© Lethbridge/Laganière 2001

Chapter 1: Software and Software Engineering

16

La qualité du logiciel...

Perception deLa qualité du logiciel

Développeur: Facile à concevoir,à maintenir, à réutiliser

Utilisateur: Facile à apprendre,utile et efficace

Client: Résoud le problèmeà un coût acceptable

Gestionnaire: Se vend bien,satisfait les clients,peu coûteux à développer

Page 17: Object-Oriented Software Engineering Practical Software Development using UML and Java Chapitre 1: Software and Software Engineering.

© Lethbridge/Laganière 2001

Chapter 1: Software and Software Engineering

17

La qualité du logiciel...

Ces différents attributs peuvent être en conflit•Accroître l’efficacité peut rendre le logiciel plus difficile à maintenir et à réutiliser

Définir des critères de qualité constitue un élément clé du génie du logiciel•La conception a alors pour objectif de rencontrer ces critères

•Trop en faire est une perte de temps et de ressources

L’optimisation du logiciel peut être nécessaire•Il faut atteindre un niveau de performance optimal en fonction des coûts budgétés

Page 18: Object-Oriented Software Engineering Practical Software Development using UML and Java Chapitre 1: Software and Software Engineering.

© Lethbridge/Laganière 2001

Chapter 1: Software and Software Engineering

18

Critères de qualité internes

•Ce sont par exemple: —le style de programmation—la quantité et la qualité des commentaires,

—la complexité du programme produit•Caractérise certains aspect de la conception du logiciel

•Ont un effet direct sur la qualité externe du produit

Page 19: Object-Oriented Software Engineering Practical Software Development using UML and Java Chapitre 1: Software and Software Engineering.

© Lethbridge/Laganière 2001

Chapter 1: Software and Software Engineering

19

Qualité à court terme vs Qualité à long terme

Court terme:•Le logiciel répond-t-il aux besoins immédiats du client?

•Peut-il faire face aux exigences actuels?

Long terme:•Maintenance•Évolution en fonction des besoins futurs

Page 20: Object-Oriented Software Engineering Practical Software Development using UML and Java Chapitre 1: Software and Software Engineering.

© Lethbridge/Laganière 2001

Chapter 1: Software and Software Engineering

20

1.6 Projets de génie logiciel

La plupart des projets consiste à faire évoluer ou à maintenir un logiciel existant dont on a hérité de la responsabilité•Projets correctifs: corriger des défauts•Projets adaptatifs: modifications à apporter au système de façon à tenir compte de changement dans—Le système d’opération—Les données ou la base de données—Les règles et procédures

•Projets d’amélioration: ajout de nouvelles options

•Projets perfectifs: changements apportés à la structure interne du programme

Page 21: Object-Oriented Software Engineering Practical Software Development using UML and Java Chapitre 1: Software and Software Engineering.

© Lethbridge/Laganière 2001

Chapter 1: Software and Software Engineering

21

Projets de génie logiciel

Développement à partir de zéro•Concevoir un nouveau produit•Il s’agit là de la minorité des projets entrepris

Page 22: Object-Oriented Software Engineering Practical Software Development using UML and Java Chapitre 1: Software and Software Engineering.

© Lethbridge/Laganière 2001

Chapter 1: Software and Software Engineering

22

Projets de génie logiciel

Certains projets consiste à concevoir un cadre d’applications•Un cadre d’applications est un logiciel général dont certains éléments demeurent ouverts.

D’autres projets sont des travaux d’assemblage•Ils impliques la mise ensemble de composantes fonctionnelles existantes

Page 23: Object-Oriented Software Engineering Practical Software Development using UML and Java Chapitre 1: Software and Software Engineering.

© Lethbridge/Laganière 2001

Chapter 1: Software and Software Engineering

23

1.7 Activités communes aux projets de génie logiciel

Définition et spécification des exigences•Ce qui inclut

—Analyse de domaine—Définition du problème—Cueillette des besoins—Analyse des besoins—Spécification formelle des exigences

Page 24: Object-Oriented Software Engineering Practical Software Development using UML and Java Chapitre 1: Software and Software Engineering.

© Lethbridge/Laganière 2001

Chapter 1: Software and Software Engineering

24

Activités communes aux projets de génie logiciel

Conception•Décider comment la technologie disponible sera utilisée pour réponde aux besoins

•Ce qui inclut:—Déterminer ce qui sera réalisé par le logiciel et par le matériel

—Mettre au point l’architecture du système, la définition des sous-systèmes et de leurs interactions

—Élaboration des éléments internes de chaque sous-système

—Conception des interfaces usagers et des bases de données

Page 25: Object-Oriented Software Engineering Practical Software Development using UML and Java Chapitre 1: Software and Software Engineering.

© Lethbridge/Laganière 2001

Chapter 1: Software and Software Engineering

25

Activités communes aux projets de génie logiciel

Modélisation•Créer des représentation du logiciel et de son domaine d’application— Modélisation de son utilisation— Modélisation de sa structure— Modélisation de sa dynamique et de son comportement

ProgrammationAssurance de qualité•Révision et inspections•Mise à l’épreuve

DéploiementGestion du processus

Page 26: Object-Oriented Software Engineering Practical Software Development using UML and Java Chapitre 1: Software and Software Engineering.

© Lethbridge/Laganière 2001

Chapter 1: Software and Software Engineering

26

1.8 Les huit termes abordés dans ce livre

1. Compréhension du client et de l’utilisateur2. Développement fondé sur des principes solides et sur des technologies favorisant la réutilisation3. Orientation objet4. La modélisation basée sur UML5. Évaluation des alternatives6. Développement itératif7. Communication reposant sur de la documentation8. Gestion du risque dans chacune des activités

Page 27: Object-Oriented Software Engineering Practical Software Development using UML and Java Chapitre 1: Software and Software Engineering.

© Lethbridge/Laganière 2001

Chapter 1: Software and Software Engineering

27

1.9 Risques et difficultés en génie du logiciel

• Complexité et quantité des éléments à tenir en compte• Incertitude concernant la technologie• Incertitude concernant les exigences• Incertitude concernant les compétences• Adaptation face aux changements• Détérioration du produit• Risques politiques