38
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville B.Shishedjiev - Génie logiciel 1 Développement de logiciel

Développement de logiciel

  • Upload
    rhonda

  • View
    34

  • Download
    0

Embed Size (px)

DESCRIPTION

Développement de logiciel. Styles de développement. Développement rapide DR incrémental DR par prototypes Développement agile Développement extrémal Développement avec réutilisation Composants. Développement rapide. Besoins - PowerPoint PPT Presentation

Citation preview

Page 1: Développement de logiciel

Le contenu est basé aux transparents du 7ème édition

de «Software Engineering» de Ian Sommerville

B.Shishedjiev - Génie logiciel 1

Développement de logiciel

Page 2: Développement de logiciel

B.Shishedjiev - Génie logiciel 2

Styles de développement

• Développement rapide– DR incrémental– DR par prototypes– Développement agile

• Développement extrémal

• Développement avec réutilisation

– Composants

Page 3: Développement de logiciel

B.Shishedjiev - Génie logiciel 3

Développement rapide

• Besoins– L’environnement n’est pas stabile et les sociétés

doivent répondre aux nouvelles circumstances. – Ça exige un développement rapide.– Les clients peuvent accepter une qualité médiocre si

la foncionalité de base est assurée vite.

• Particularités– Besoins instables– Processus itérative

Page 4: Développement de logiciel

B.Shishedjiev - Génie logiciel 4

Développement itératif

Validateincrement

Build systemincrement

Specify systemincrement

Design systemarchitecture

Define systemdeliverables

Systemcomplete?

Integrateincrement

Validatesystem

Deliver finalsystem

YES

NO

Page 5: Développement de logiciel

B.Shishedjiev - Génie logiciel 5

Développement rapide

• Avantages– Rapide– Participation des clients

• Désavantages– Gestion difficile– Contracte flou – il n’y a pas une spécification claire– Validation– Maintenance – les changement continus gâtent le

système

Page 6: Développement de logiciel

B.Shishedjiev - Génie logiciel 6

Prototypes• Particularités

– Utilisés quand on veut identifier les besoins.– Quand le besoin est spécifié le prototype est jeté et détruit

• Comparaison avec la méthode incrémentale– Incrémentale - on commence du besoin le plus claire– Prototype - on commence du besoin le plus flou

Incrementaldevelopment

Thr ow-awayprototyping

Delivered system

Executable prototype +System specification

Outlinerequirements

Page 7: Développement de logiciel

B.Shishedjiev - Génie logiciel 7

Les méthodes agiles

Page 8: Développement de logiciel

B.Shishedjiev - Génie logiciel 8

Les méthodes agiles

• Principes– Participation des clients– Produit incrémental– Les gens sont importants, pas le processus – un peu

discutable– Attends les changements– Maintiens simplicité

Page 9: Développement de logiciel

B.Shishedjiev - Génie logiciel 9

Programmation extrémal

• C’est une approche extrémale– On paut faire des nouvelles versions plusieurs fois

par jour– Les améliorations sont livrées aux clients chaque 2

semaines.– Chaque versions doit être testée. Elle n’est acceptée

sauf tous les tests ont passé.

Page 10: Développement de logiciel

B.Shishedjiev - Génie logiciel 10

Programmation extrémal• Le cycle de la version

Break downstories to tasks

Select userstories for this

releasePlan release

Releasesoftware

Evaluatesystem

Develop/integrate/test software

Page 11: Développement de logiciel

B.Shishedjiev - Génie logiciel 11

Programmation extrémal

• Pratiques– Petits incréments – Petits version délivrées– Conception simple– Développement basé aux tests automatisés– Amélioration continue du code– Programmation en paires– Possession collective du code– Soutenable rythme de travail– Présence permanente du client

Page 12: Développement de logiciel

B.Shishedjiev - Génie logiciel 12

Programmation extrémal

• Besoins– Histoires des utilisateurs– Scénarios– Tâches

• Changements– Les changements sont faits directement quand ils

sont nécessaires

Page 13: Développement de logiciel

B.Shishedjiev - Génie logiciel 13

Programmation extrémal

• Tests– Les tests d’abord

• Les tests sont écrits avant le code

• Ils sont écrits comme des programmes afin d’être exécutés automatiquement

• Tous les tests sont exécutés – les vieux et les nouveaux – quand on ajoute une nouvelle fonctionnalité.

– Les tests sont dérivés depuis les scénarios– Les utilisateurs participent– On utilise des programmes de test automatiques

Page 14: Développement de logiciel

B.Shishedjiev - Génie logiciel 14

Programmation extrémal

• Programmation en pairs– Un code est développer par paires de programmeurs

ensemble– Le code est possédé par tout l’équipe– Ça propage le savoir dans l’équipe

Page 15: Développement de logiciel

B.Shishedjiev - Génie logiciel 15

Développement appliqué rapide

• Plus traditionnelles• Application d’accès aux bases de données• Outils

– Langage de programmation de BD– Générateur d’interface– Liaisons vers application de Bureautique– Générateurs de rapports

Page 16: Développement de logiciel

B.Shishedjiev - Génie logiciel 16

Développement appliqué rapide• Environnement de développement rapide

DBprogramming

language

Interfacegenerator

Officesystems

Reportgenerator

Database management system

Rapid applicationdevelopment environment

Page 17: Développement de logiciel

B.Shishedjiev - Génie logiciel 17

Développement appliqué rapide

• Génération d’interface– Générer des formulaires complexes par des

techniques visuelles– Assurer l’enchaînement des formulaires et la

validation de la saisie

• Programmation visuelle– Problèmes

• Mauvaise structure

• Difficile de travailler en équipes

• Maintenance compliquée

Page 18: Développement de logiciel

B.Shishedjiev - Génie logiciel 18

Réutilisation

• Applications• Composants• Objets et fonctions

Page 19: Développement de logiciel

B.Shishedjiev - Génie logiciel 19

Réutilisation• Avantages

– Sécurité améliorée– Risque de processus diminué– Utilisation effective des spécialistes– Conformité aux standard– Développement plus rapide– Moins cher

• Problèmes– Maintenance plus difficile – quand le code source n’est pas

disponible– Manque des outils de support – Jalousie – Création et maintenance d’une bibliothèque de composants– Comprendre et assembler les composants

Page 20: Développement de logiciel

B.Shishedjiev - Génie logiciel 20

Différents types de réutilisation

Designpatterns

Component-baseddevelopment

Componentframeworks

Service-orientedsystems

COTSintegration

Applicationproduct lines

Legacy systemwrapping

Programlibraries

Programgenerators

Aspect-orientedsoftware development

Configurable verticalapplications

Page 21: Développement de logiciel

B.Shishedjiev - Génie logiciel 21

Approches• Modèles de conception (Design patterns)• Basé aux Composants• Structure appliquée (Application framework) • Enveloppe d’un système hérédité• Système orienté service• Intégration COTS (Commercial off the Shelf System)• Ligne de production• Application configurable verticalement• Bibliothèques de programmes• Générateur de programmes• Aspect orienté

Page 22: Développement de logiciel

B.Shishedjiev - Génie logiciel 22

Design paterns

• Il présente la description du problème et sa solution

• Eléments– Nom– Description du problème– Description de la solution – modèle qui peut être

implémenté de façons différentes– Conséquences – les résultats et les compromis qu’on

doit faire en utilisant le modèle

Page 23: Développement de logiciel

B.Shishedjiev - Génie logiciel 23

L’observateur• Nom

– Observer.

• Description– Sépare la présentation d’état d’objet de l’objet lui-même

• Description du problème– On l’utilise quand on a besoin de nombreux présentations.

• Description de la solution– Vois le diagramme UML.

• Conséquences– Optimiser pour améliorer les présentation à l’écran ne sont

pas utiles

Page 24: Développement de logiciel

B.Shishedjiev - Génie logiciel 24

Nombreux écrans

A: 40B: 25C: 15D: 20

Observer 1

A

B

C

D

Observer 2

Subject

0

50

25

A B C D

Page 25: Développement de logiciel

B.Shishedjiev - Génie logiciel 25

Le modèle observateur

Subject Observer

Attach (Observer)Detach (Observer)

Notify ()

Update ()

ConcreteSubject

GetState ()

subjectState

ConcreteObserver

Update ()

observerState

observerState = subject -> GetState ()return subjectState

for all o in observers o -> Update ()

Page 26: Développement de logiciel

B.Shishedjiev - Génie logiciel 26

Réutilisation de modèle

• Le plus abstrait et le plus générale• Types

– Générateurs du programmes– Modèles de conception

Page 27: Développement de logiciel

B.Shishedjiev - Génie logiciel 27

Générateurs de programmes

• Types– Pour application de traitements de données– Pour analyseur lexique et analyseur syntactique des

processeurs de langages – yacc, JavaCC– Les générateurs de code dans les outils CASE

Page 28: Développement de logiciel

B.Shishedjiev - Génie logiciel 28

Générateurs de programmes

Program generator Generated programApplicationdescription

Application domainknowledge Database

Page 29: Développement de logiciel

B.Shishedjiev - Génie logiciel 29

Développement aspect orienté

• On utilise des tisserands d’aspect

Generated code

Aspect 1 Aspect 2

AspectWeaver

<statements 1>Aspect 1

<statements 2>Aspect 2

<statements 3>

Input source code

<statements 1>join point 1

<statements 2>join point 2

<statements 3>

Page 30: Développement de logiciel

B.Shishedjiev - Génie logiciel 30

Structures appliquées (Frameworks)

• Ce sont des collections de classes abstraites et concrètes et les interfaces entre eux.

• Types– Infrastructure système (communication, compilateurs,

UI)– Intégration – communication entre composants et

échange de données– Application d’entreprise

• Extension • Problèmes

– Très complexes

Page 31: Développement de logiciel

B.Shishedjiev - Génie logiciel 31

Model-view controller• Modèle de GUI• Nombreux présentation d’un objet et interraction avec

les présentations individuellement

Model methods

Controller methods View methods

Userinputs

view modificationmessages

Model edits

Model queriesand updates

Controller state View state

Model state

Page 32: Développement de logiciel

B.Shishedjiev - Génie logiciel 32

Réutilisation des systèmes d’application

• Types– COTS– Ligne de production

Page 33: Développement de logiciel

B.Shishedjiev - Génie logiciel 33

COTS• Système d’acquisition

Client

Web browser E-mail system

Server

E-commercesystem

Ordering andinvoicing system

E-mail system

Adaptor

Adaptor

Page 34: Développement de logiciel

B.Shishedjiev - Génie logiciel 34

COTS

• Problèmes d’intégration– Manque de contrôle sur l’effectivité et fonctionnalité– Manque de contrôle d’évolution– Manque de support– Difficultés avec l’interopérabilité

Page 35: Développement de logiciel

B.Shishedjiev - Génie logiciel 35

Ligne de production

• Ce sont application d’une fonctionnalité générique qui peut être configurée pour les besoins du client

• Adaptation– Configuration du système ou de composants– Ajouter des nouveaux composants – Sélectionner d’une bibliothèque de composants– Modifier des composants

Page 36: Développement de logiciel

B.Shishedjiev - Génie logiciel 36

ERP • Enterprise Ressource Planning System

Configurationdatabase

System database

Generic ER

P system

Configurationplanning tool

Page 37: Développement de logiciel

B.Shishedjiev - Génie logiciel 37

Architecture

• Architecture de Ressource management System

User interface

Resourcemanagement

Resource policycontrol

Resourceallocation

Userauthentication

Querymanagement

Resource database

Resourcedelivery

T ransaction management

Page 38: Développement de logiciel

Développement d’un produit

B.Shishedjiev - Génie logiciel 38

Elicitstakeholder

requirements

Chooseclosest-fit

family memberDeliver new

family member

Renegotiaterequirements

Adapt existingsystem