4.1.développement méthodique du Logiciel
3ODQGXFKDSLWUH ,QWURGXFWLRQ 1. Production du logiciel 1.1 1.2 1.3 1.4
Génie logiciel Cycle de vie du logiciel Maintenance d’un logiciel Production industrielle du logiciel
2. Conception structurée descendante 2.1 2.2 2.3 2.4 2.5
Critère simple d’automatisation Analyse méthodique descendante Analyse ascendante Programmation descendante avec retour sur un niveau Machines abstraites et niveaux logiques
3. Notion d’ALGORITHME
3.1 Langage algorithmique 3.2 Objets de base d'un langage algorithmique 3.3 Opérations sur les objets de base d'un langage algorithmique
4. Un langage de description d’algorithme : LDFA 4.1 4.2 4.3 4.4
Atomes du LDFA Information en LDFA Vocabulaire terminal du LDFA Instructions simples du LDFA
5. Le Dossier de développement 5.1 Enoncé et spécification
5.2 5.3 5.4 5.5
Méthodologie Environnement Algorithme en LDFA Programme en langage Pascal
6. Trace formelle d’un algorithme
6.1 Espace d’exécution d’une instruction composée 6.2 Exemple avec trace formelle
7. Traducteur élémentaire LDFA - Pascal 7.1 Traducteur 7.2 Exemple 7.3 Sécurité et ergonomie
8. Facteurs de qualité du logiciel
,QWURGXFWLRQ /HERQVHQVHVWODFKRVHGXPRQGHODPLHX[SDUWDJpHODGLYHUVLWpGHQRVRSLQLRQVQHYLHQWSDVGHFHTXHOHVXQV VRQWSOXVUDLVRQQDEOHVTXHOHVDXWUHVPDLVVHXOHPHQWGHFHTXHQRXVFRQGXLVRQVQRVSHQVpHVSDUGLYHUVHVYRLHVHW QHFRQVLGpURQVSDVOHVPrPHVFKRVHV&DUFHQ HVWSDVDVVH]G DYRLUO HVSULWERQPDLVOHSULQFLSDOHVWGH O DSSOLTXHUELHQ
5'HVFDUWHV'LVFRXUVGHODPpWKRGHSUHPLqUHSDUWLH
3DQQHDX3URJ$OJRGLI?3UHV3URJ$OJRH[H
/HGpYHORSSHPHQWPpWKRGLTXHG¶XQORJLFLHOSDVVHDFWXHOOHPHQWSDUXQH GpPDUFKHGHGHVFHQWHFRQFUqWHGHODFRQQDLVVDQFHTXHO¶KXPDLQDVXUOD SUREOpPDWLTXHGXVXMHWYHUVO¶DFWLRQpOpPHQWDLUHH[pFXWpHSDUXQ RUGLQDWHXU/HWUDYDLOGXSURJUDPPHXUpWDQWDORUVUDPHQpjXQHWUDGXFWLRQ SHUPDQHQWHGHVDFWLRQVKXPDLQHVHQDFWLRQVPDFKLQHVGpFULWHVDYHFGHV RXWLOVGLIIpUHQWV 1RXVSRXYRQVHQSUHPLqUHDSSUR[LPDWLRQGLIIpUHQWLHUFHWWHGHVFHQWH FRQFUqWHHQXQFODVVHPHQWVHORQTXDWUHQLYHDX[G¶DEVWUDFWLRQ
GHGHVFHQWHFRQFUqWH 1RXVYR\RQVTXHWRXWHDFWLYLWpGHSURJUDPPDWLRQFRQVLVWHjWUDQVIRUPHUXQ SUREOqPHVHORQXQHGHVFHQWHJUDGXHOOHGHO¶KXPDLQYHUVODPDFKLQH,FLQRXV DYRQVUpVXPpFHWWHGpFRPSRVLWLRQHQQLYHDX[/DQRWLRQGHSURJUDPPDWLRQ VWUXFWXUpHHVWXQHUpSRQVHjFHW\SHGHGpFRPSRVLWLRQJUDGXHOOHG¶XQ SUREOqPH/¶DOJRULWKPLTXHHVWODIDoRQGHGpFULUHFHWWHPpWKRGHGHWUDYDLO 1. Production du logiciel
1.1 Génie logiciel $XQHFHUWDLQHpSRTXHjVHVGpEXWVO¶DFWLYLWpG¶pFULWXUHGXORJLFLHOQH UHSRVDLWTXHVXUO¶HIILFDFLWpSHUVRQQHOOHGXSURJUDPPHXUODLVVpSUDWLTXHPHQW VHXOGHYDQWODSURJUDPPDWLRQG¶XQSUREOqPH 'HQRVMRXUVOHSURJUDPPHXUGLVSRVHG¶RXWLOVHWGHPpWKRGHVOXLSHUPHWWDQW GHFRQFHYRLUHWG¶pFULUHGHVORJLFLHOV/HWHUPHORJLFLHOQHGpVLJQHSDV VHXOHPHQWOHVSURJUDPPHVDVVRFLpVjWHOOHDSSOLFDWLRQRXWHOSURGXLWLO
GpVLJQHHQSOXVODGRFXPHQWDWLRQQpFHVVDLUHjO LQVWDOODWLRQj O XWLOLVDWLRQDXGpYHORSSHPHQWHWjODPDLQWHQDQFHGHFHORJLFLHO3RXUGH JURVV\VWqPHVOHWHPSVGHUpDOLVDWLRQSHXWrWUHDXVVLORQJTXHOHWHPSVGX GpYHORSSHPHQWGHVSURJUDPPHVHX[PrPHV /HJpQLHORJLFLHOFRQFHUQHO HQVHPEOHGHVPpWKRGHVHWUqJOHVUHODWLYHVjOD SURGXFWLRQUDWLRQQHOOHGHVORJLFLHOV/ DFWLYLWpGHGpYHORSSHPHQWGX ORJLFLHOYXOHVFRWVTX HOOHLPSOLTXHHVWGHYHQXHXQHDFWLYLWppFRQRPLTXH HWGRLWGRQFrWUHSODQLILpHHWVRXPLVHjGHVQRUPHVVLQRQjGHVDWWLWXGHV pTXLYDOHQWHVjFHOOHVTXHO RQDGDQVO LQGXVWULHSRXUQ LPSRUWHTXHO SURGXLW& HVWSRXUTXRLGDQVFHFRXUVOHPRWFOHIHVWOHPRWFRPSRVDQW ORJLFLHOTXLWLHQWjODIRLVGHO DFWLYLWpFUpDWULFHGHO KXPDLQHWGX FRPSRVDQWLQGXVWULHOLQFOXDQWXQHDFWLYLWpGLVFLSOLQpHHWRUGRQQpHEDVpH SRXUFHUWDLQHVWkFKHVVXUGHVRXWLOVIRUPDOLVpV ' DXWUHSDUWOHJpQLHORJLFLHOLQWHUYLHQWORUVTXHOHORJLFLHOHVWWURSJUDQG SRXUTXHVRQGpYHORSSHPHQWSXLVVHrWUHFRQILpjXQVHXOLQGLYLGXFHTXL Q HVWSDVOHFDVSRXUGHVGpEXWDQWVjTXLLOQ HVWSDVFRQILpO pODERUDWLRQ GHJURVORJLFLHOV7RXWHIRLVLOHVWSRVVLEOHGHVHQVLELOLVHUOHOHFWHXU GpEXWDQWjO¶KDELWXGHG¶pODERUHUXQORJLFLHOG¶XQHPDQLqUHV\VWpPDWLTXHHW UDWLRQQHOOHjO¶DLGHG¶RXWLOVVLPSOHV
1.2 Cycle de vie du logiciel &RPPHLOIDXWXQWHPSVWUqVLPSRUWDQWSRXUGpYHORSSHUXQJUDQGV\VWqPH ORJLFLHOHWTXHG¶DXWUHSDUWFHORJLFLHOHVWSUpYXSRXUrWUHXWLOLVp SHQGDQWORQJWHPSVRQVpSDUHILFWLYHPHQWGHVpWDSHVGLVWLQFWHVGDQVFHV SpULRGHVGHGpYHORSSHPHQWHWG¶XWLOLVDWLRQ/HPRGqOHGLWGHODFDVFDGHGH 5R\FH DFFHSWpSDUWRXWOHPRQGHLQIRUPDWLTXHHVWXQERQRXWLOSRXUOH GpEXWDQW6¶LOHVWXWLOLVpSRXUGHJURVSURMHWVLQGXVWULHOVHQVXSSULPDQW OHVUHFHWWHVHWOHVYDOLGDWLRQVHQILQGHFKDTXHSKDVHQRXVGLVSRVRQVHQ LQLWLDWLRQG¶XQFDGUHPpWKRGRORJLTXH,OVHSUpVHQWHDORUVVRXVIRUPHGH GLDJUDPPHVRXSKDVHV
1.3 Maintenance d’un logiciel 'DQVEHDXFRXSGHFDVOHFRWGXORJLFLHOFRUUHVSRQGjODPDMHXUHSDUWLHGX FRWWRWDOG XQHDSSOLFDWLRQLQIRUPDWLTXH'DQVFHFRWGXORJLFLHOOD PDLQWHQDQFHDHOOHPrPHXQHSDUWSUpSRQGpUDQWHSXLVTX HOOHHVWHVWLPpHGH QRVMRXUVDXPLQLPXPjGXFRWWRWDOGXORJLFLHO
/DPDLQWHQDQFHHVWGHWURLVVRUWHV DGDSWDWLYHV¶DGDSWHUjXQQRXYHOHQYLURQQHPHQW FRUUHFWLYHFRUUHFWLRQVG¶HUUHXUV SHUIHFWLYHDPpOLRUDWLRQVGHPDQGpHVSDUOHFOLHQW
1.4 Production industrielle du logiciel /DSURGXFWLRQGXORJLFLHOpWDQWGHYHQXHXQHDFWLYLWpLQGXVWULHOOHHWGRQF pFRQRPLTXHHOOHQ¶pFKDSSHSDVDX[GRQQpHVpFRQRPLTXHVFODVVLTXHV2Q UpSHUWRULHXQHQVHPEOHGHFDUDFWpULVWLTXHVDVVRFLpHVjXQSURMHWGH GpYHORSSHPHQWFKDTXHFDUDFWpULVWLTXHVHYR\DQWDWWULEXHUXQUDWLRGH SURGXFWLYLWp Le ratio de productivité d’une caractéristique
&¶HVWOHUDSSRUWHQWUHODSURGXFWLYLWpH[SULPpHHQQRPEUHG¶,QVWUXFWLRQV 6RXUFHV/LYUpHVSDUKRPPHHWSDUPRLV G¶XQSURMHWH[SORLWDQWDXPLHX[ FHWWHFDUDFWpULVWLTXHHWODSURGXFWLYLWpG¶XQSURMHWQ¶H[SORLWDQWSDVGX WRXWFHWWHFDUDFWpULVWLTXH/HWDEOHDXVXLYDQWHVWWLUpG¶XQHpWXGHGH %%RHKP5HYXH76,OHVIDFWHXUVGHFRWGXORJLFLHO
7DEOHDXFRPSDUDWLIGHVGLYHUVUDWLRVGHSURGXFWLYLWp%%RHKP 9RXVDXUH]UHPDUTXpHQOLVDQWOHJUDSKLTXHSUpFpGHQWTXHOHIDFWHXUOHSOXV LPSRUWDQWQ HVWSDVO H[SpULHQFHG XQODQJDJHHUUHXUFRPPLVHSDUOHV QpRSK\WHV &HTXLH[SOLTXHHQWUHDXWUHVDUJXPHQWVTXHO HQVHLJQHPHQWGHOD SURJUDPPDWLRQQHVRLWSDVO HQVHLJQHPHQWG XQODQJDJH,ODSSDUDvWTXHOH IDFWHXUOHSOXVFRWHX[UHVWHXQIDFWHXUVXUOHTXHOODWHFKQRORJLHQ D DXFXQHSULVHO DSWLWXGHTX RQWGHVLQGLYLGXVjFRPPXQLTXHUHQWUHHX[ 3RXUO¶pODERUDWLRQG¶XQORJLFLHOQRXVDOORQVXWLOLVHUGHX[GpPDUFKHV FODVVLTXHVODPpWKRGHVWUXFWXUpHRXDOJRULWKPLTXHHWSOXVWDUGXQH H[WHQVLRQRULHQWpHREMHWGHFHWWHGpPDUFKH 2. Conception structurée descendante
2.1 Critère simple d’automatisation
8QSUREOqPHHVWDXWRPDWLVDEOHWUDLWDEOHSDULQIRUPDWLTXH VL O RQSHXWSDUIDLWHPHQWGpILQLUOHVGRQQpHVHWOHVUpVXOWDWV O RQSHXWGpFRPSRVHUOHSDVVDJHGHFHVGRQQpHVYHUVFHV UpVXOWDWVHQXQHVXLWHG RSpUDWLRQVpOpPHQWDLUHVGRQWFKDFXQH SHXWrWUHH[pFXWpHSDUXQHPDFKLQH
'DQVOHFDGUHG¶XQHLQLWLDWLRQjODSURJUDPPDWLRQGDQVOHF\FOHGHYLHGpMj SUpVHQWpSOXVKDXWQRXVQHFRQVLGpUHURQVTXHOHVSKDVHVjHQVXSSRVDQW
TXHODIDLVDELOLWpHVWDFTXLVHHWTX¶HQILQOHVSKDVHVGHPLVHHQRHXYUHHW GHPDLQWHQDQFHVRQWPLVHVjSDUW 'DQVFHWWHSHUVSHFWLYHOHVFKpPDGHODSURJUDPPDWLRQG¶XQSUREOqPHVH UpGXLWjSKDVHV
/DSKDVHGHVSpFLILFDWLRQXWLOLVHUDOHVW\SHVDEVWUDLWVGHGRQQpHV7$' ODSKDVHFRUUHVSRQGDQWDX[SKDVHVHWGXF\FOHGHYLH XWLOLVHUDOD PpWKRGHGHSURJUDPPDWLRQDOJRULWKPLTXHODSKDVHFRUUHVSRQGDQWjOD SKDVHVGXF\FOHGHYLH XWLOLVHUDXQWUDGXFWHXUPDQXHOSDVFDOODSKDVH FRUUHVSRQGDQWjODSKDVHVGXF\FOHGHYLH FRUUHVSRQGUDDXSDVVDJHVXUOD PDFKLQHDYHFYpULILFDWLRQHWMHX[GHWHVWV 1RXVXWLOLVHURQVXQODQJDJHDOJRULWKPLTXHSRXUODGHVFULSWLRQG¶XQ DOJRULWKPHUpVROYDQWXQSUREOqPH,OV¶DJLWG¶XQRXWLOWH[WXHOSHUPHWWDQWGH SDVVHUGHODFRQFHSWLRQKXPDLQHjODFRQFHSWLRQPDFKLQHG¶XQHPDQLqUHVRXSOH SRXUOHSURJUDPPHXU 1RXVSRXYRQVUpVXPHUGDQVOHWDEOHDXFLGHVVRXVOHVpWDSHVGHWUDYDLOHWOHV RXWLOVFRQFHSWXHOVjXWLOLVHUORUVG¶XQHWHOOHGpPDUFKH 0DWpULHOHWPR\HQVWHFKQLTXHVjGLVSRVLWLRQ
(7$3(6 35$7,48(6
3DSLHU&UD\RQ,QWHOOLJHQFH+DELWXGH
$QDO\VH
0LVHHQIRUPHGH
&¶HVWO¶DERXWLVVHPHQWGHO¶DQDO\VH
O¶DOJRULWKPH
HVSULWORJLTXHHWUDWLRQQHO
'HVFULSWLRQ
8WLOLVDWLRQSUDWLTXHGHVRXWLOVG¶XQHPpWKRGHGH SURJUDPPDWLRQLFLODSURJVWUXFWXUpH
7UDGXFWLRQ
7UDQVIHUWGHVpFULWXUHVDOJRULWKPLTXHVHQODQJDJHGH SURJUDPPDWLRQLFLHQ3DVFDO
7HVWVHWPLVHDXSRLQW
0LVHDXSRLQWGXSURJUDPPHVXUGHVYDOHXUVWHVWVRX jSDUWLUGHSURJUDPPHVVSpFLDOLVpV
([pFXWLRQ
3KDVHILQDOHOHSURJUDPPHV¶H[pFXWHVDQVHUUHXU
2.2 Analyse méthodique descendante /HVHFRQG>SUpFHSW@GHGLYLVHUFKDFXQHGHVGLIILFXOWpVTXHM H[DPLQHUDLVHQDXWDQWGHSDUFHOOHVTX LOVHSRXUUDLWHW
TX LOVHUDLWUHTXLVSRXUOHVPLHX[UpVRXGUH
5'HVFDUWHV'LVFRXUVGHODPpWKRGHVHFRQGHSDUWLH
'pILQLUOHSUREOqPHjUpVRXGUH H[SOLFLWHUOHVGRQQpHV SUpFLVHUOHXUQDWXUH OHXUGRPDLQHGHYDULDWLRQ OHXUVSURSULpWpV H[SOLFLWHUOHVUpVXOWDWV SUpFLVHUOHXUVWUXFWXUH OHXUUHODWLRQVDYHFOHVGRQQpHV ILQGpILQLU
'pFRPSRVHUOHSUREOqPHHQVRXVSUREOqPHV 3RXUFKDTXHVRXVSUREOqPHVLGHQWLILpIDLUH VLVROXWLRQpYLGHQWHDORUVpFULUHOHPRUFHDXGH SURJUDPPH VLQRQDSSOLTXHUODPpWKRGHDXVRXVSUREOqPH IVL ISRXU démarche proposée par J.Arsac &HWWHGpPDUFKHPpWKRGLTXHDO DYDQWDJHGHSHUPHWWUHG LVROHUOHVHUUHXUV ORUVTX RQHQFRPPHWHWHOOHVGHYUDLHQWrWUHSOXVUDUHVTX HQSURJUDPPDWLRQ HPSLULTXHDQFLHQVRUJDQLJUDPPHV ,ODSSDUDvWGRQFSOXVLHXUVQLYHDX[GHGpFRPSRVLWLRQGXSUREOqPHQLYHDX[ G DEVWUDFWLRQGHVFHQGDQWV &HVQLYHDX[SHUPHWWHQWG DYRLUXQHGHVFULSWLRQ GHSOXVHQSOXVGpWDLOOpHGXSUREOqPHHWGRQFGHVHUDSSURFKHUSDU UDIILQHPHQWVVXFFHVVLIVG XQHGHVFULSWLRQSUrWHjODWUDGXFWLRQHQ LQVWUXFWLRQVGHO RUGLQDWHXU $ILQGHSRXYRLUGpFULUHODGpFRPSRVLWLRQG XQSUREOqPHjFKDTXHQLYHDXQRXV DYRQVXWLOLVpXQODQJDJHDOJRULWKPLTXHHWQRQSDVXQODQJDJHGH SURJUDPPDWLRQ TXLHPSUXQWHEHDXFRXSDXODQJDJHQDWXUHOOHIUDQoDLVSRXU QRXV
2.3 Analyse ascendante
/HWURLVLqPH>SUpFHSW@GHFRQGXLUHSDURUGUHPHVSHQVpHVHQFRPPHQoDQWSDUOHVREMHWVOHVSOXVVLPSOHVHWOHV SOXVDLVpVjFRQQDvWUHSRXUPRQWHUSHXjSHXFRPPHSDUGHJUpVMXVTX jODFRQQDLVVDQFHGHVSOXVFRPSRVpVHW VXSSRVDQWPrPHGHO RUGUHHQWUHFHX[TXLQHVHSUpFqGHQWSRLQWQDWXUHOOHPHQWOHVXQVOHVDXWUHV
5'HVFDUWHV'LVFRXUVGHODPpWKRGHVHFRQGHSDUWLH
1RXVHVVDLHURQVGHSDUWLUGHO¶H[LVWDQWOHVILFKLHUVVRXUFHVGpMjpFULWV VXUOHPrPHVXMHW HWGHUHFRQVWUXLUHSDUpWDSHVODVROXWLRQ/HSUREOqPH GDQVFHWWHPpWKRGHHVWG¶DVVXUHUXQHERQQHFRKpUHQFHORUVTXHO¶RQUDVVHPEOH OHVPRUFHDX[/HVPpWKRGHVREMHWVTXHQRXVDERUGHURQWSOXVORLQVRQWXQERQ H[HPSOHGHFHWWHGpPDUFKH1RXVQ HQGLURQWSDVSOXVGDQVFHSDUDJUDSKHHQ UHQYR\DQWOHOHFWHXULQWpUHVVpDXFKDSLWUHGHODSURJUDPPDWLRQRULHQWpH REMHWGHFRXUV
2.4 Programmation descendante avec retour sur un niveau &RPPHSDUWRXWDLOOHXUVXQHDWWLWXGHDSSX\pHVXUOHVGHX[GpPDUFKHVHVWOH JDJHG¶XQHFHUWDLQHVRXSOHVVHGDQVOHWUDYDLO1RXVDGRSWHURQVXQHGpPDUFKH G¶DQDO\VHHVVHQWLHOOHPHQWGHVFHQGDQWHDYHFODSRVVLELOLWpGHUHPRQWHUHQ DUULqUHGqVTXHOHGpYHORSSHPHQWSDUDvWWURSFRPSOH[H 1RXVDGRSWHURQVGDQVWRXWOHUHVWHGXFKDSLWUHXQHWHOOHPpWKRGHGHVFHQGDQWH DYHFTXHOTXHVUHWRXUVDVFHQGDQWV 1RXVODGpQRPPHURQVSURJUDPPDWLRQ DOJRULWKPLTXH 1RXVXWLOLVRQVOHVFRQFHSWVGH%0H\HUSRXUGpFRPSRVHUXQSUREOqPHHQ QLYHDX[ORJLTXHVSXLVHQUDIILQDQWVXFFHVVLYHPHQWOHVGLIIpUHQWHVpWDSHV 2.5 Machines abstraites et niveaux logiques 3ULQFLSH 2QGpFRPSRVHFKDFXQHGHVpWDSHVGXWUDYDLOHQQLYHDX[G¶DEVWUDFWLRQV ORJLTXHV2QVXSSRVHHQRXWUHTX¶jFKDTXHQLYHDXORJLTXHIL[pLOH[LVWHXQH PDFKLQHDEVWUDLWHYLUWXHOOHFDSDEOHGHFRPSUHQGUHHWG¶H[pFXWHUOD GHVFULSWLRQGXSUREOqPHVRXVODIRUPHDOJRULWKPLTXHHQFRXUV$LQVLHQ GHVFHQGDQWGHO¶DEVWUDFWLRQYHUVOHFRQFUHWRQSDVVHJUDGXHOOHPHQWG¶XQ pQRQFpGHSUREOqPHDXQLYHDXKXPDLQjXQpQRQFpGXPrPHSUREOqPHjXQQLYHDX RODPDFKLQHGHYLHQWFDSDEOHGHO¶H[pFXWHU 1LYHDXORJLTXH 0DFKLQHDEVWUDLWH (QRQFpGXSUREOqPHHQ
Q
Q
M
O¶KXPDLQ
M
A
MQ
ODQJDJHQDWXUHO
A
PDFK$EVWUDLWH
MQ
ODQJDOJRULWKPLTXH
PDFKLQH26
PDFKLQHSK\VLTXH
AQ
ODQJDJHpYROXp
A Q
ODQJDJHELQDLUH
$SDUWLUGHFHWWHGpFRPSRVLWLRQRQFRQVWUXLWXQDUEUHGHSURJUDPPDWLRQUHSUpVHQWDQW JUDSKLTXHPHQWOHVKLpUDUFKLHVGHVPDFKLQHVDEVWUDLWHV
9RLFLXQH[HPSOHG¶XWLOLVDWLRQGHFHWWHGpPDUFKHGDQVOHFDVGHODUpVROXWLRQJpQpUDOHGH O¶pTXDWLRQGXVHFRQGGHJUpGDQV5 /HSUREOqPHVHGpFRPSRVHHQGHX[VRXVSUREOqPHUpVROXWLRQG¶XQHpTXDWLRQGXSUHPLHUGHJUp VWULFWRXSUREOqPHUpVROXWLRQG¶XQHpTXDWLRQGXVHFRQGGHJUpVWULFW
HU ILJXUHGHODEUDQFKHG¶DUEUH
GHJUp
ILJXUHGHODEUDQFKHG¶DUEUHqPHGHJUp
1RXVDYRQVXWLOLVpFRPPHODQJDJHGHGHVFULSWLRQGHVpWDSHVLQWHUPpGLDLUHVXQODQJDJH DOJRULWKPLTXHEDVpVXUOHIUDQoDLV1RXVOHGpWDLOOHURQVSOXVWDUG
3. Notion d’ALGORITHME
'pILQLWLRQ'(.QXWK 8QDOJRULWKPHHVWXQHQVHPEOHGHUqJOHVTXLGpFULYHQWXQH VpTXHQFHG¶RSpUDWLRQVHQYXHGHUpVRXGUHXQSUREOqPHGRQQp ELHQVSpFLILp8QDOJRULWKPHGRLWUpSRQGUHDX[ FDUDFWpULVWLTXHVVXLYDQWHV /DILQLWXGH /DSUpFLVLRQ /HGRPDLQHGHVHQWUpHV /HGRPDLQHGHVVRUWLHV /¶H[pFXWDELOLWp 1RWRQVTX¶XQDOJRULWKPHH[SULPHGRQFXQSURFpGpVpTXHQWLHORUGDQVODYLH FRXUDQWHWRXWQ¶HVWSDVQpFHVVDLUHPHQWVpTXHQWLHOFRPPHSDUH[HPSOHpFRXWHU XQHQVHLJQHPHQWHWSHQVHUDX[SURFKDLQHVYDFDQFHV HWQHWUDYDLOOHTXHVXU GHVSUREOqPHVGpMjWUDQVIRUPpVGHODSKDVHjODSKDVHOD VSpFLILFDWLRQ ,OQ¶HVWSDVGHPDQGpDX[GpEXWDQWVGHWUDYDLOOHUVXUFHWWH pWDSHGXSURFHVVXV&¶HVWSRXUTXRLODSOXSDUWGHVH[HUFLFHVGHGpEXWDQWVRQW GpMjVSpFLILpVGDQVO¶pQRQFpRXELHQOHXUVSpFLILFDWLRQHVWWULYLDOH /HQRPEUHG¶pWDSHVG¶XQDOJRULWKPHGRLWrWUHILQL/HWHPSVG¶H[pFXWLRQ SRXUUDrWUHpYDOXp &KDTXHpWDSHGRLWrWUHSDUIDLWHPHQWGpILQLH7RXWHVOHVDFWLRQV pOpPHQWDLUHVGRLYHQWrWUHFRQQXHV /HFKDPSGHVGRQQpHVG¶HQWUpHGRLWrWUHVSpFLILp 8QDOJRULWKPHD\DQWXQUpVXOWDWLOIDXWGRQQHUOHVFKDPSV FRUUHVSRQGDQWVDX[UpVXOWDWVGHVRUWLHRXGXPRLQVOHVUHODWLRQVHQWUH OHVGRQQpHVG¶HQWUpHHWOHVGRQQpHVGHVRUWLH 8QDOJRULWKPHGRLWGpERXFKHUVXUXQSURJUDPPHH[pFXWDEOHHQXQWHPSV ILQLHWUDLVRQQDEOH (QYLURQQHPHQW 2QDSSHOOHHQYLURQQHPHQWG¶XQDOJRULWKPHO¶HQVHPEOHGHVHQWLWpVXWLOLVpVSDU OHSURFHVVHXUSHQGDQWOHGpURXOHPHQWGHO¶DOJRULWKPH 1RXVDOORQVGpILQLUXQODQJDJHGHGHVFULSWLRQGHVDOJRULWKPHVTXLQRXV SHUPHWWUDGHGpFULUHOHVDUEUHVGHSURJUDPPDWLRQHWOHIRQFWLRQQHPHQWGHV PDFKLQHVDEVWUDLWHVGHODSURJUDPPDWLRQVWUXFWXUpH 3.1 Langage algorithmique 9RLFLFODVVLTXHPHQWFHTXHWRXVOHVDXWHXUVXWLOLVHQWFRPPHV\VWqPHGH GHVFULSWLRQG¶XQDOJRULWKPHORUVTX¶LOVOHIRQWDYHFXQODQJDJH/HV SDUDJUDSKHVHWLQGLTXHQWOHVpOpPHQWVIRQGDPHQWDX[G¶XQWHOODQJDJHOH
SDUDJUDSKHHQFRQVWUXLWXQ1RXVYHUURQVTXHO¶DOJRULWKPLTXHHVWSDUQDWXUH SOXVSURFKHGHO¶pWXGLDQWTXHODPDFKLQH(QHIIHWGDQVODVXLWHGXFRXUV O¶pWXGLDQWV¶DSHUFHYUDTXHOHVQRPEUHVUDWLRQQHOVQHVRQWSDVUHSUpVHQWDEOHV VLPSOHPHQWHQPDFKLQHHQFRUHPRLQVOHVQRPEUHVUpHOV/HODQJDJH G¶LPSOpPHQWDWLRQpWXGLp3DVFDO pWDQWUHODWLYHPHQWSDXYUHjFHWpJDUG /¶pWXGLDQWQHGRLWSDVFURLUHTXHO¶LQIRUPDWLTXHV¶HVWUpVLJQpHjQH WUDYDLOOHUTXHVXUOHVHQWLHUVHWOHVGpFLPDX[PDLVSOXW{WVHUHQGUHFRPSWH TX¶LOH[LVWHXQHSDOHWWHLPSRUWDQWHGHFHUWDLQVSURGXLWVLQIRUPDWLTXHVTXL WUDLWHQWSOXVRXPRLQVHIILFDFHPHQWOHVLQVXIILVDQFHVGHVODQJDJHV FODVVLTXHVSDUH[HPSOHYLVjYLVGHVUDWLRQQHOVOHVV\VWqPHVGHFDOFXO IRUPHOFRPPH0$3/(pWXGLpHQ7DXSH 0$7+(0$7,&$VRQWXQHUpSRQVHjFH JHQUHG¶LQVXIILVDQFH 1RXVQHQRXVSUpRFFXSRQVDEVROXPHQWSDVGDQVXQSUHPLHUWHPSVHQ DOJRULWKPLTXHQLGHODYpULILFDWLRQQLGXFRQWU{OHQLGHVUHVWULFWLRQV G¶LPSODQWDWLRQGHVGRQQpHV1RWUHSUpRFFXSDWLRQSUHPLqUHHVWG¶pFULUHGHV DOJRULWKPHVMXVWHVTXLIRQFWLRQQHQWVXUGHVGRQQpHVMXVWHV
3.2 Objets de base d'un langage algorithmique Contenant 1RXVDSSHORQVFRQWHQDQWWRXWHFHOOXOHPpPRLUHG¶XQH PDFKLQHDEVWUDLWHG¶XQQLYHDXIL[p Contenu 1RXVDSSHORQVFRQWHQXO¶LQIRUPDWLRQUHSUpVHQWpHSDU O¶pWDWGXFRQWHQDQW Atomes 3RXUXQFRQWHQDQWIL[pRQQRWH$O¶HQVHPEOHGHWRXVVHV pWDWVSRVVLEOHVRQGLWDXVVLHQVHPEOHGHVDWRPHVGX QLYHDXQQLYHDXGXFRQWHQDQW 5HPDUTXHV
D XQDWRPHGHQLYHDXQHVWGRQFXQpWDWSRVVLEOHG¶XQFRQWHQDQW E SRXUXQQLYHDXORJLTXHIL[pLO\DXQQRPEUHG¶DWRPHVILQL F ORUVTXHO¶RQHVWDXQLYHDXPDFKLQH OHFRQWHQDQWHVWjSSRVLWLRQVELQDLUHVSHVWOHQRPEUHGHELWVGX PRWS! $ ^`[[^`SIRLV
Adresse fictive 7RXWHPDFKLQHDEVWUDLWHGHQLYHDXIL[pGLVSRVHG¶DXWDQW GHFHOOXOHVPpPRLUHVTXHQpFHVVDLUH(OOHVVRQWUHSpUpHV SDUXQHDGUHVVHILFWLYHjODTXHOOHQRXVQ¶DYRQVSDV DFFqV Nom
3DUGpILQLWLRQjWRXWHDGUHVVHQRXVIDLVRQVFRUUHVSRQGUH ELMHFWLYHPHQWSDUO¶RSpUDWLRQQRPXQLGHQWLILFDWHXU XQLTXHGpILQLVVDQWSRXUO¶XWLOLVDWHXUODFHOOXOHPpPRLUH UHSpUpHSDUFHWWHDGUHVVH
1RXVGpILQLVVRQVDXVVLXQFHUWDLQQRPEUHGHIRQFWLRQV
(WDW$GUHVVH→$WRPHGRQQHO¶pWDWDVVRFLpjXQHDGUHVVH YDOHXULGHQWLILFDWHXU→$WRPHGRQQHO¶pWDWDVVRFLpjXQ LGHQWLILFDWHXURQGLWODYDOHXU FRQWHQX$WRPH→LQIRUPDWLRQGRQQHOHFRQWHQXLQIRUPDWLRQQHO GHO¶DWRPH VLJQLILFDWLRQLGHQWLILFDWHXU →LQIRUPDWLRQVpPDQWLTXHGH O¶LGHQWLILFDWHXU
/HVIRQFWLRQVSUpFpGHQWHVVRQWOLpHVSDUOHVFKpPDVXLYDQW
3.3 Opérations sur les objets de base d'un langage algorithmique /HVSDUHQWKqVHVG¶pQRQFpHQ/')$VHURQWDOJROOLNHQRXVGLVSRVHURQVG¶XQ GHEXWHWG¶XQHILQ
Exécutant ou processeur algorithmique 1RXVDSSHORQVH[pFXWDQWRXSURFHVVHXUODSDUWLHGHOD PDFKLQHDEVWUDLWHFDSDEOHGHOLUHUpDOLVHUH[pFXWHUGHV RSpUDWLRQVVXUOHVDWRPHVGHFHWWHPDFKLQHFHFLj WUDYHUVXQODQJDJHDSSURSULp 5HPDUTXHO¶RSpUDWHXUIRUPHOH[pFXWDQWGpSHQGGXWHPSV
Instruction simple
&¶HVWXQHLQVWUXFWLRQH[pFXWDEOHHQXQWHPSVILQLSDUXQ SURFHVVHXUHWHOOHQ¶HVWSDVGpFRPSRVDEOHHQVRXVWkFKHV H[pFXWDEOHVRXHQDXWUHVLQVWUXFWLRQVVLPSOHV&HFLHVW YDODEOHjXQQLYHDXIL[p
Instruction composée &¶HVWXQHLQVWUXFWLRQVLPSOHRXELHQHOOHHVW GpFRPSRVDEOHHQXQHVXLWHG¶LQVWUXFWLRQVHQWUH SDUHQWKqVHV Composition séquentielle 6LLMWUHSUpVHQWHQWGHVLQVWUXFWLRQVVLPSOHVRX FRPSRVpHVQRXVpFULURQVODFRPSRVLWLRQVpTXHQWLHOOHDYHF GHV/DVXLWHG¶LQVWUXFWLRQVLMW HVWDSSHOpHXQHVXLWHG¶LQVWUXFWLRQVVpTXHQWLHOOHV Schéma fonctionnel
&¶HVW VRLWXQLGHQWLILFDWHXU VRLWXQDWRPH VRLWXQHDSSOLFDWLRQ LGHQWLILFDWHXU S→ LGHQWLILFDWHXURS!
Espace d’exécution /¶HVSDFHG¶H[pFXWLRQG¶XQHLQVWUXFWLRQF¶HVWOHQXSOHW GHVQLGHQWLILFDWHXUVD\DQWDXPRLQVXQHRFFXUUHQFHGDQV O¶LQVWUXFWLRQFHFLjXQQLYHDXIL[p 6RLWXQHLQVWUXFWLRQLN O¶HQVHPEOH(N GHVYDULDEOHV D\DQWDXPRLQVXQHRFFXUUHQFHGDQVO¶LQVWUXFWLRQLN HVW QRWp(N ^[ [ [S`
Environnement &¶HVWO¶HQVHPEOHGHVREMHWVHWGHVVWUXFWXUHVQpFHVVDLUHV jO¶H[pFXWLRQG¶XQWUDYDLOGRQQpSRXUXQSURFHVVHXUIL[p QLYHDXLQIRUPDWLRQ Action &¶HVWO¶RSpUDWLRQRXOHWUDLWHPHQWGpFOHQFKpSDUXQ pYpQHPHQWTXLPRGLILHO¶HQYLURQQHPHQWRXELHQWRXWH PRGLILFDWLRQGHO¶HQYLURQQHPHQW Action primitive 3RXUXQSURFHVVHXUGRQQpG¶XQHPDFKLQHDEVWUDLWHG¶XQ QLYHDXIL[p XQHDFWLRQHVWGLWHSULPLWLYHVLO¶pQRQFpGH FHWWHDFWLRQHVWjOXLVHXOVXIILVDQWSRXUTXHOH SURFHVVHXUSXLVVHO¶H[pFXWHUVDQVDXWUHpOpPHQWV VXSSOpPHQWDLUHV8QHDFWLRQSULPLWLYHHVWGpFULWHSDUXQH LQVWUXFWLRQVLPSOHGXSURFHVVHXU Action complexe
3RXUXQSURFHVVHXUGRQQpG¶XQHPDFKLQHDEVWUDLWHG¶XQ QLYHDXIL[p XQHDFWLRQFRPSOH[HHVWXQHDFWLRQ QRQSULPLWLYHTXLHVWGpFRPSRVDEOHHQDFWLRQVSULPLWLYHV jODILQGHODSKDVHGHFRQFHSWLRQHOOHSRXUUDrWUH H[SULPpHVRLWSDUXQPRGXOHGHWUDLWHPHQWVRLWSDUXQH LQVWUXFWLRQFRPSRVpH
5HPDUTXHV &HTXLHVWDFWLRQSULPLWLYHSRXUXQHPDFKLQHDEVWUDLWHGH QLYHDXQSHXWGHYHQLUXQHDFWLRQFRPSOH[HSRXUXQHPDFKLQH DEVWUDLWHGHQLYHDXQTXLHVWO¶H[SUHVVLRQGHODSUpFpGHQWH jXQSOXVEDVQLYHDXG¶DEVWUDFWLRQ /HVLQVWUXFWLRQVGXODQJDJHGRLYHQWrWUHOHVPrPHVSRXUWRXV OHVQLYHDX[GHPDFKLQHDEVWUDLWHVLQRQODSURJUDPPDWLRQ GHYLHQWWURSORXUGHjJpUHU 7RXWODQJDJHGHGHVFULSWLRQGHPDFKLQHDEVWUDLWHQ¶HVWSDV LPSODQWDEOHVXURUGLQDWHXUHQWRXWFDVSDUWLHOOHPHQWVLQRQFH VHUDLWXQODQJDJHGHSURJUDPPDWLRQ ,OQHSHXWVHUYLUTX¶j GpFULUHHQSDUWLHODVSpFLILFDWLRQHWODFRQFHSWLRQ'HSOXV LOGRLWXWLOLVHUOHVLGpHVGHODSURJUDPPDWLRQVWUXFWXUpH GHVFHQGDQWHPRGXODLUH
4. Un langage de description d’algorithme : LDFA AVERTISSEMENT
/ DSSUHQWLVVDJHG XQODQJDJHGHSURJUDPPDWLRQQHVHUWTX DX[SKDVHV HWWUDGXFWLRQHWH[pFXWLRQ HWQHGRLWSDVrWUHFRQIRQGXDYHF O XWLOLVDWLRQG XQODQJDJHDOJRULWKPLTXHTXLSUpSDUHOHWUDYDLOHW Q HVWXWLOLVpTXHFRPPHSODQGHWUDYDLOSRXUODSKDVHGH WUDGXFWLRQ(QXWLOLVDQWODFRQVWUXFWLRQG XQHPDLVRQFRPPH DQDORJLHLOVXIILWGHELHQFRPSUHQGUHTX DYDQWGHFRQVWUXLUHOD PDLVRQOHFKHIGHFKDQWLHUDEHVRLQGXSODQG DUFKLWHFWHGHFHWWH PDLVRQSRXUSDVVHUjODSKDVHG DVVHPEODJHGHVPDWpULDX[LOHQ HVWGHPrPHHQSURJUDPPDWLRQ
9RLFLO¶pQRQFpG¶XQODQJDJHVLPSOHH[WHQVLEOHTXLVHUDXWLOLVpGDQVWRXW OHUHVWHGXGRFXPHQWHWTXLYDVHUYLUjGpFULUHOHVDOJRULWKPHV1RXVOH GpQRWHURQVSDUODVXLWH/')$SRXU/DQJDJHGH'HVFULSWLRQ)RUPHO G¶$OJRULWKPHWHUPLQRORJLHQRQVWDQGDUGXWLOLVpHSDUO DXWHXUSRXUGpQRPPHU UDSLGHPHQWXQODQJDJHDOJRULWKPLTXHSUpFLV
4.1 Atomes du LDFA /HVHQVHPEOHVGHQRPEUHVFRPPH1=45OHVYUDLVHQVHPEOHVFODVVLTXHV GHVPDWKpPDWLTXHVHWOHXUVVWUXFWXUHVFRQQXHV /DJUDPPDLUHPDWKpPDWLTXHHWFHOOHGXIUDQoDLV ^9)`FRPPHpOpPHQWVORJLTXHV^9)`¬ ∧ ∨ pWDQWXQHDOJqEUHGH %RROH /HVSUpGLFDWV /HVFDUDFWqUHVGXIUDQoDLVHWOHVFKDvQHVGHFDUDFWqUHVCGHVPDFKLQHV
4.2 Information en LDFA 2QUDSSHOOHTX¶XQHLQIRUPDWLRQHQ/')$HVWREWHQXHSDUOHFRQWHQXG¶XQDWRPH HWVHFRQVWUXLWjO¶DLGHGH ODJUDPPDLUHGXIUDQoDLVHWOHVHQVFRPPXQGHVPRWV OHVWKpRUqPHVHWOHVUpVXOWDWVREWHQXVGHVWKpRULHVPDWKpPDWLTXHVOH VHQVpWDQWOHVHQVKDELWXHOGRQQpjWRXVOHVV\PEROHV WRXWHVOHVPDQLSXODWLRQVJpQpUDOHVDOJRULWKPHVHQSDUWLFXOLHU VXUOHV VWUXFWXUHVGHGRQQpHV 4.3 Vocabulaire terminal du LDFA 97 ^← , Ω , OLUH HFULUH VLWDQWTXHDORUVIWDQWIDLUHIVLVLQRQVRUWLU6L SRXUUHSHWHUISRXUMXVTXHHQWUpHVRUWLH$OJRULWKPHORFDOJOREDOSULQFLSDO PRGXOHVVSHFLILFDWLRQVW\SHVDEVWUDLWVGHEXWILQ >@ ¬ ∧∨` ,16758&7,2166,03/(6'8/')$
/DQFHUO $3,DVVRFLp 4.4.1 Instruction vide 4.4.2 Affectation 4.4.3 Lecture 4.4.4 Ecriture 4.4.5 Condition 4.4.6 Boucle tantque 4.4.7 Boucle répéter 4.4.8 Boucle pour 4.4.9 Sortie de boucle 4.4.10 Exemple récapitulatif
4.4.1 Instruction vide V\QWD[HΩ VpPDQWLTXHQHULHQIDLUHSHQGDQWXQWHPSVGHEDVHGX SURFHVVHXU 4.4.2 Affectation
V\QWD[HD←α RD∈ LGHQWLIHWα HVWXQVFKpPDIRQFWLRQQHO VpPDQWLTXH 1) VL α LGHQWLILFDWHXUDORUVYDOD YDOα VLα HVWXQDWRPHDORUVYDOD α VLα HVWXQHDSSOLFDWLRQα LGLGS → DLGLGS DORUVYDOD α’YDOLG YDOLGS R α’ HVWO¶LQWHUSUpWDWLRQGHα GDQVO¶HQVHPEOHGHV YDOHXUVGHVYDOLGN)
4.4.3 Lecture (OOHSHUPHWG¶DWWULEXHUXQHYDOHXUjXQREMHWHQDOODQWOLUHVXUXQ SpULSKpULTXHG¶HQWUpHHWHOOHUDQJHFHWWHYDOHXUGDQVO¶REMHW V\QWD[HOLUHD RD ∈ LGHQWLI VpPDQWLTXHOHFRQWH[WHGHODSKUDVHSUpFLVHRO¶RQOLW SRXUUHPSOLUDVLQRQRQLQGLTXHOLUHD GDQV
4.4.4 Ecriture 2UGRQQHDXSURFHVVHXUG¶pFULUHVXUXQSpULSKpULTXH(FUDQ,PSULPDQWH3RUW )LFKLHUHWF V\QWD[HHFULUHD RD ∈ LGHQWLI VpPDQWLTXHOHFRQWH[WHGHODSKUDVHSUpFLVHRO¶RQpFULW SRXUYRLUDVLQRQRQLQGLTXHHFULUHD GDQV
4.4.5 Condition
V\QWD[HVL3DORUV(VLQRQ(IVL R3HVWXQSUpGLFDWRXSURSRVLWLRQIRQFWLRQQHOOH (HW(VRQWGHX[LQVWUXFWLRQVFRPSRVpHV
VpPDQWLTXHFODVVLTXHGHO¶LQVWUXFWLRQFRQGLWLRQQHOOH VLOHSURFHVVHXUQ¶HVWSDVOLpDXWHPSVRQSHXWpFULUH VL3DORUV(VLQRQ Ω IVL≡ VL3DORUV(IVL 1RXVQRWRQV≡ ODUHODWLRQG¶pTXLYDOHQFHHQWUHLQVWUXFWLRQV ,OV¶DJLWG¶XQHpTXLYDOHQFHVpPDQWLTXHFHTXLVLJQLILH TXHOHVGHX[LQVWUXFWLRQVGRQQHQWOHVPrPHVUpVXOWDWVVXU OHPrPHHQYLURQQHPHQW
4.4.6 Boucle tantque V\QWD[HWDQWTXH3IDLUH(IWDQW R3HVWXQSUpGLFDWHW(XQHLQVWUXFWLRQFRPSRVpH
VpPDQWLTXH WDQWTXH3IDLUH(IWDQW ≡ VL3DORUV(WDQWTXH3IDLUH( IWDQW IVL 5HPDUTXHV DXVXMHWGHODUHODWLRQ≡TXLHVWODQRWDWLRQSRXU O¶pTXLYDOHQFHVpPDQWLTXHHQ/')$RQFRQVLGqUHXQSURJUDPPH /')$QRQSDVFRPPHXQHVXLWHG¶LQVWUXFWLRQVPDLVFRPPHXQ HQYLURQQHPHQWGRQQpDYHFXQpWDWLQLWLDO(SXLVRQpYDOXHOD PRGLILFDWLRQGHFHWHQYLURQQHPHQWTXHFKDTXHDFWLRQSURYRTXHVXU OXL → ^(N`→ ^(N` ^(`→ ^(`→ ^(`→ ...........→ RDFWLRQQ^(Q`→ ^(Q`2QREWLHQWDLQVLXQHVXLWH G¶LQIRUPDWLRQVVXUO¶HQYLURQQHPHQW(((N 1RXVGLURQVDORUVTXHGHX[LQVWUXFWLRQVVLPSOHVRXFRPSRVpHV VRQW VpPDQWLTXHPHQWpTXLYDOHQWHVQRWDWLRQ≡ VLOHXUVDFWLRQVDVVRFLpHVVXUOH PrPHHQYLURQQHPHQWGHGpSDUWSURYRTXHQWODPrPHPRGLILFDWLRQ$FKDTXH LQVWUXFWLRQHVWDVVRFLpHXQHDFWLRQVXUO¶HQYLURQQHPHQWF¶HVWOHUpVXOWDW TXLHVWOHPrPHPrPHpWDWGHO¶HQYLURQQHPHQWDYDQWHWDSUqV 6RLHQW,QVWU→DFWLRQDFWLRQDVVRFLpHj,QVWU ,QVWU→DFWLRQDFWLRQDVVRFLpHj,QVWU (HW(¶GHX[pWDWVGHO¶HQYLURQQHPHQW VLQRXVDYRQV^(`DFWLRQ^(¶`HW^(`DFWLRQ^(¶`DORUV,QVWUHW,QVWU VRQWVpPDQWLTXHPHQWpTXLYDOHQWHVQRXVOHQRWHURQV
,QVWU≡,QVWU
4.4.7 Boucle répéter V\QWD[HUHSHWHU(MXVTXD3 R3HVWXQSUpGLFDWHW(XQHLQVWUXFWLRQFRPSRVpH VpPDQWLTXH UHSHWHU(MXVTXD3 ≡ (WDQWTXH¬P IDLUH(IWDQW ([HPSOHG¶pTXLYDOHQFHHQWUHLWpUDWLRQV
WDQWTXH3IDLUH(IWDQW≡ VL3DORUVUHSHWHU(MXVTXD¬P IVL UHSHWHU(MXVTXD3 ≡ (WDQWTXH¬P IDLUH(IWDQW SDUGpILQLWLRQ
4.4.8 Boucle pour V\QWD[HSRXU[ ←DMXVTXDEIDLUH(ISRXU R(HVWXQHLQVWUXFWLRQFRPSRVpH[XQHYDULDEOHDHWE GHVH[SUHVVLRQVGDQVXQHQVHPEOHILQL)WRWDOHPHQW RUGRQQpODUHODWLRQG¶RUGUHpWDQWQRWpH≤OHVXFFHVVHXU G¶XQpOpPHQW[GDQVO¶HQVHPEOHHVWQRWp6XFF[ HWVRQ SUpGpFHVVHXUSUHG[ VpPDQWLTXHV &HWWHERXFOHIRQFWLRQQHjODIRLVHQVXLYDQW DXWRPDWLTXHPHQWO¶RUGUHFURLVVDQWGDQVO¶HQVHPEOHILQL) RXHQVXLYDQWDXWRPDWLTXHPHQWO¶RUGUHGpFURLVVDQWFHOD GpSHQGUDGHODSRVLWLRQUHVSHFWLYHGHGpSDUWGHODERUQHD HWGHODERUQHE/DYDULDEOH[HVWDSSHOpHXQLQGLFHGH ERXFOH
VpPDQWLTXHGDQVOHFDVRUGUHFURLVVDQWjSDUWLUGXWDQWTXH [←D WDQWTXH[≤VXFFE IDLUH ( [←VXFF[ IWDQW
VpPDQWLTXHGDQVOHFDVRUGUHGpFURLVVDQWjSDUWLUGX
WDQWTXH [←D WDQWTXH[ ≥SUHGE IDLUH ( [←SUHG[ IWDQW ([HPSOHVLPSOH ( 1HQWLHUVQDWXUHOV HWODUHODWLRQG¶RUGUH≤ LQIpULHXURXpJDO GDQV1 SRXUL ←[MXVTXj\IDLUH5)LQ3RXU LFLLSUHQGUDWRXWHVOHVYDOHXUVVXFFHVVLYHVGDQV1FRPSULVHVHQWUH[ HW\VRLHQW[\YDOHXUVHWV¶LQFUpPHQWHUDGHjFKDTXHIRLV
4.4.9 Sortie de boucle V\QWD[H6RUWLU6L3R3HVWXQSUpGLFDW QHSHXWrWUH XWLOLVpHTX¶jO¶LQWpULHXUG¶XQHLWpUDWLRQ WDQWTXHUpSpWHUSRXU VpPDQWLTXHWHUPLQHSDUDQWLFLSDWLRQHWLPPpGLDWHPHQW O¶H[pFXWLRQGHODERXFOHGDQVODTXHOOHO¶LQVWUXFWLRQ 6RUWLU6LVHWURXYH 4.4.10 Exemple récapitulatif 5HSUHQRQVO¶H[HPSOHSUpFpGHQWGHO¶pTXDWLRQGXVHFRQGGHJUpHQGpFULYDQW GDQVO¶DUEUHGHSURJUDPPDWLRQO¶DFWLRQGHODPDFKLQHDEVWUDLWHGHFKDTXH QLYHDXjO¶DLGHG¶LQVWUXFWLRQV/')$
ILJXUHGHODEUDQFKHG¶DUEUHqPHGHJUp
ILJXUHGHODEUDQFKHG¶DUEUHHUGHJUp (QUHOLVDQWFHWDUEUHVHORQXQSDUFRXUVHQSUpRUGUHLOV¶DJLWGHSDUFRXULU O¶DUEUHHQSDUWDQWGHODUDFLQHHWGHVFHQGDQWWRXMRXUVSDUOHILOVOHSOXVj JDXFKHSXLVHQVXLWHGHSDVVHUDXILOVGURLWVXLYDQWHWF« O RQREWLHQW DSUqVDYRLUFRPSOpWpO¶DOJRULWKPHXQHpFULWXUHOLQpDLUHFRPPHVXLW
$OJRULWKPH(TXDWLRQ (QWUpH$%&∈5 6RUWLH; ;∈5 ∈ /RFDO∆ ∈5 GpEXW OLUH$%& 6L$ DORUV^$ ` GpEXW 6L% DORUV 6L& DORUV pFULUH5HVWVROXWLRQ 6LQRQ^& ≠` pFULUHSDVGHVROXWLRQ )VL 6LQRQ^% ≠` GpEXW ;←&% pFULUH; ILQ )VL ILQ 6LQRQ^$ ≠` GpEXW ∆ ←%ð $ & 6L ∆DORUV pFULUHSDVGH VROXWLRQ 6LQRQ^ ∆≥` 6L ∆ DORUV GpEXW ; ←% $ pFULUH; ILQ 6LQRQ^ ∆!` GpEXW ;←%VTUW∆ $ ;←%VTUW∆ $ pFULUH;; ILQ )VL )VL ILQ )VL )LQ(TXDWLRQ 1RXVUHJURXSRQVWRXWHVOHVLQIRUPDWLRQVGHFRQFHSWLRQGDQVXQGRFXPHQWTXH QRXVDSSHORQVOHGRVVLHUGHSURJUDPPDWLRQ
'HVDOJRULWKPHVFRPSOHWVH[pFXWDEOHVSDVjSDVGDQVO DVVLVWDQWH[HPSOHV G DOJRULWKPHV
5. Le Dossier de développement &¶HVWXQGRFXPHQWGDQVOHTXHOVHWURXYHQWFRQVLJQpVWRXVOHVpOpPHQWV UHODWLIVjODFRQVWUXFWLRQHWjO¶pFULWXUHGHO¶DOJRULWKPHHWGXSURJUDPPH UpVROYDQWOHSUREOqPHFKHUFKp1RXVOHGLYLVRQVHQSDUWLHV
5.1 Enoncé et spécification (QRQFpGXSUREOqPHUpVROXSDUFHORJLFLHO 6SpFLILFDWLRQVRSpUDWLRQQHOOHVGHVDEVWUDFWLRQVGHSOXVKDXWQLYHDXGX ORJLFLHOHQH[SULPDQWFHOOHVFLjO DLGHGHW\SHVDEVWUDLWVHWGH VSpFLILFDWLRQVGHSOXVEDVQLYHDX 6SpFLILFDWLRQVGHVW\SHVDEVWUDLWVGHGRQQpHVXWLOLVpV 6SpFLILFDWLRQVG LQWHUIDFHSRXUOHVDEVWUDFWLRQVGHSOXVEDVQLYHDX
2QXWLOLVHUDFHVWURLVWHFKQLTXHVGHVSpFLILFDWLRQGHPDQLqUHGHVFHQGDQWH TXLWWHjUHPRQWHUFRUULJHUGHVVSpFLILFDWLRQVGHQLYHDXSOXVKDXWORUVTXH GHVHUUHXUVVHURQWDSSDUXHVGDQVXQHVSpFLILFDWLRQGHSOXVEDVQLYHDX&HV VSpFLILFDWLRQVVRQWGHVWLQpHVDXQLYHDXFRQFHSWHXUGHORJLFLHOSOXW{W TX jO XWLOLVDWHXU&HWWHSDUWLHUDVVHPEOHOHVGpILQLWLRQVDEVWUDLWHVGHV FRPSRVDQWV8QXWLOLVDWHXUGHEDVHQ D\DQWjSULRULSDVjFRQVXOWHUFH SDUDJUDSKHOHVWHUPHVHPSOR\pVVHURQWOHVSOXVULJRXUHX[SRVVLEOHV UHODWLYHPHQWjXQIRUPDOLVPHpYHQWXHO $QDO\VHGHVEHVRLQV VRQXWLOLWpSULQFLSDOHHVWGHIRXUQLUjO XWLOLVDWHXUODGHVFULSWLRQGHV VHUYLFHVTXHOXLUHQGUDFHORJLFLHO/HVWHUPHVXWLOLVpVGRLYHQWrWUH FRPSULVSDUO XWLOLVDWHXU
5.2 Méthodologie 'DQVFHSDUDJUDSKHVHVLWXHQWWRXVOHVGRFXPHQWVHWOHVH[SOLFDWLRQVTXLRQW SXPHQHUjODGpFLVLRQGHUpVRXGUHOHSUREOqPHSRVpSDUODPpWKRGHTXHO RQ DFKRLVLH/HSURJUDPPHXUGLVSRVHLFLGHWRXWODWLWXGHSRXUV H[SULPHUj O DLGHGHWH[WHHQODQJXHQDWXUHOOHGHUHSUpVHQWDWLRQJUDSKLTXHG RXWLOV RXGHVXSSRUWVSHUPHWWDQWDXOHFWHXUGHVHIDLUHXQHLGpHSUpFLVHGX SRXUTXRLGHVFKRL[HIIHFWXpV
5.3 Environnement
/¶pWXGLDQWSRXUUDSUpVHQWHUVRXVIRUPHG¶XQWDEOHDXOHVSULQFLSDOHV LQIRUPDWLRQVFRQFHUQDQWOHVGRQQpHVGHVRQDOJRULWKPH ([HPSOH
1RP
JHQUH
ORFDOLVDWLRQ
XWLOLVDWLRQ
3+7
UHHO
(QWUpH
SUL[KRUVWD[H
79$
UHHO
ORFDO
79$HQ
377&
UHHO
VRUWLH
3UL[77&
5.4 Algorithme en LDFA ,FLVHVLWXHODGHVFULSWLRQGHO DOJRULWKPHSURSRVpSRXUUpVRXGUHOH SUREOqPHSURSRVp,OHVWREWHQXHQWUHDXWUHjSDUWLUGHO¶DUEUHGH SURJUDPPDWLRQFRQVWUXLWSHQGDQWO¶DQDO\VHHWODFRQFHSWLRQ $OJRULWKPH;<=7 JOREDO ORFDO HQWUpH VRUWLH PRGXOHVXWLOLVpV 6SpFLILFDWLRQV7$' 7\SHV$EVWUDLWVGH'RQQpHVXWLOLVpV GpEXW FRUSVG DOJRULWKPHHQ/')$ ILQ;<=7 1RXVYHUURQVDLOOHXUVFHTXHUHSUpVHQWHQWOHVQRWLRQVGH7$'HW GHPRGXOH
5.5 Programme en langage Pascal 'DQVFHSDUDJUDSKHQRXVIHURQVILJXUHUODWUDGXFWLRQHQ3DVFDOGH O¶DOJRULWKPHGXSDUDJUDSKHSUpFpGHQWODWUDGXFWLRQHVWSRVVLEOHGDV EHDXFRXSG DXWUHVODQJDJHV
6. Trace formelle d’un algorithme (WOHGHUQLHU>SUpFHSW@GHIDLUHSDUWRXWGHVGpQRPEUHPHQWVVLHQWLHUVHWGHVUHYXHVVLJpQpUDOHVTXHMHIXVVH DVVXUpGHQHULHQRPHWWUH
5'HVFDUWHV'LVFRXUVGHODPpWKRGHVHFRQGHSDUWLH
1RXVSURSRVRQVDXGpEXWDQWGHYpULILHUO H[DFWLWXGHGHFHUWDLQHVSDUWLHVGH VRQDOJRULWKPHHQXWLOLVDQWXQSHWLWRXWLOSHUPHWWDQWO H[pFXWLRQIRUPHOOH F HVWjGLUHVXUGHVYDOHXUVDOJpEULTXHVRXV\PEROLTXHVSOXW{WTXH QXPpULTXHV GHVRQDOJRULWKPH/DWUDFHQXPpULTXHHWOHVYpULILFDWLRQV DVVRFLpHVVHURQWHIIHFWXpHVORUVGHO H[pFXWLRQSDUODPDFKLQH
6.1 Espace d’exécution d’une instruction composée 2QDSSHOOHHVSDFHG¶H[pFXWLRQG¶XQHVpTXHQFHRXG¶XQEORFG¶LQVWUXFWLRQV LLQ O¶HQVHPEOH LN
R(N HVWO¶HVSDFHG¶H[pFXWLRQGHO¶LQVWUXFWLRQ
5DSSHORQVTXHO¶RQSHXWFRQVLGpUHUXQSURJUDPPH/')$VRXVXQDXWUHSRLQW GHYXHQRQSDVFRPPHXQHVXLWHG¶LQVWUXFWLRQVPDLVFRPPHXQHQYLURQQHPHQW GRQQpDYHFXQpWDWLQLWLDO(SXLVRQpYDOXHODPRGLILFDWLRQGHFHW HQYLURQQHPHQWTXHFKDTXHLQVWUXFWLRQSURYRTXHVXUOXL2QFRQVLGqUHOHV LQVWUXFWLRQVLNFRPPHGHVWUDQVIRUPDWHXUVG¶HQYLURQQHPHQW → ^(N`→ ^(N` ^(`→ ^(`→ ^(`→ ...........→ RLQ^(Q`→ ^(Q`
&HVDFWLRQVGpWHUPLQHQWDORUVXQHVXLWHG¶pWDWVGHO¶HQYLURQQHPHQW (((N TXHO¶RQSHXWREVHUYHU &¶HVWFHSRLQWGHYXHTXLSHUPHWG¶H[pFXWHUXQVXLYLG¶H[pFXWLRQV\PEROLTXH G¶XQDOJRULWKPH1RXVOHQRPPHURQVWUDFHIRUPHOOH 2QDGRSWHUDSRXUXQHWUDFHIRUPHOOHXQHGLVSRVLWLRQHQWDEOHDXGHO¶HVSDFH G¶H[pFXWLRQFRPPHVXLW (WDWV
9
9
9Q
(
\
(
[
\
/DFRORQQH(WDWVUHSUpVHQWHGRQFOHVpWDWVVXFFHVVLIVGHO¶HQYLURQQHPHQWRX HVSDFHG¶H[pFXWLRQ ILJXUpLFLSDUOHVYDULDEOHV999Q/HVFRQWHQXV GHVFHOOXOHVGXWDEOHDXVRQWOHVYDOHXUVV\PEROLTXHVGHVYDULDEOHVDXFRXUV GXGpURXOHPHQWGHO¶H[pFXWLRQ
6.2 Exemple avec trace formelle (QRQFp
&DOFXOHU6
VDQVXWLOLVHUGHIRUPXOHRQVDLWTXH6 Q Q
6SpFLILFDWLRQIOX[G¶LQIRUPDWLRQ (Q(QWUpH 8QQRPEUHQ∈1 (Q6RUWLH (FULUHODVRPPHYRXOXH6 0pWKRGRORJLH
6XLWHUpFXUUHQWH (QYLURQQHPHQW
1RP
JHQUH
ORFDOLVDWLRQ
XWLOLVDWLRQ
1
(QWLHU
(QWUpH
1RPEUHG¶pOpPHQWVjVDLVLU
6
(QWLHU
6RUWLH
9DULDEOHGHFXPXOSRXUOD VRPPH
L
(QWLHU
ORFDO
*HVWLRQGHVERXFOHV FRPSWHXU
$OJRULWKPH $OJRULWKPH6RPHQWLHU 1 ∈1 6,∈ 1 'pEXW$OJR ^LQLWLDOLVDWLRQV` ( /LUH1 ( 6 ← ( , ← ( 7DQW4XH, ≤"""IDLUH ( 6←6, ( ,←, ( )LQ74 ( (FULUH6 )LQ6RPHQWLHU
&HFLHVWXQDOJRULWKPHGDQVOHTXHORQDGpMjLQWHUFDOpOHVpWDWV(Q HQWUH OHVLQVWUXFWLRQV2QQHVDLWSDVH[DFWHPHQWTXHOVHUDOHWHVWG¶DUUrWGHOD ERXFOHUHPSODFpSDU""" RQVDLWVHXOHPHQWTXHF¶HVWODYDOHXUGHLTXL OHIRXUQLUD 8WLOLVDWLRQGHODWUDFHIRUPHOOH 1RXVDOORQVPRQWUHUjO¶DLGHGHODWUDFHIRUPHOOHTXHFHWDOJRULWKPHIRXUQLW ELHQODVRPPHGHVQSUHPLHUVHQWLHUVGDQVODYDULDEOH6UHODWLYHPHQWDX[ SUpFRQGLWLRQV^6 HWL `1RXVDOORQVGRQFIDLUHGHODGpPRQVWUDWLRQ GHSURJUDPPH^6 HWL `$OJRULWKPH^6
`
7RXWG¶DERUGQRXVVXSSRVHURQVTXHOHWHVWQ¶HVWMDPDLVIUDQFKLF¶HVWjGLUH TXHO¶RQD,!1([pFXWRQVPDQXHOOHPHQWHWSDVjSDVO¶DOJRULWKPH SUpFpGHQWYRLFLOHGpEXWGHVUpVXOWDWVGHVDWUDFHIRUPHOOHGDQVOHWDEOHDX FLGHVVRXV (WDWV
,
1
6
(
(
Q
(
Q
(
Q
Q
(
Q
(
Q
Q
(
Q
(
Q
Q
(
(
(
(
(
(HWF
LVRORQVOHVGHX[SUHPLHUVWRXUVGHERXFOH (
(
Q
(
(
Q
1RXVYR\RQVTXHMXVWHDYDQWODVRUWLHGHERXFOHpWDW( DXSUHPLHUWRXU L HW6 DXGHX[LqPHWRXUL HW6
QRXVSRVRQVO¶K\SRWKqVHGHUpFXUUHQFHTX¶DXNqPHWRXUL NHW6 VRPPH GHVNSUHPLHUVHQWLHUV 1RXVDOORQVXWLOLVHUO¶H[pFXWLRQIRUPHOOHSDVjSDV G¶XQWRXUGHERXFOHDILQGHYRLUVLDSUqVXQWRXUGHSOXVFHWWHK\SRWKqVHVH
YpULILHDXUDQJN (WDWV
,
1
6
( (
N
Q
6
(
(
2U6
N
Q
N
6
N
6
N
Q
N
ODVRPPHGHVNSUHPLHUVHQWLHUV
1RXVYHQRQVGRQFGHPRQWUHUTX¶jO¶pWDW(FHWDOJRULWKPHGRQQH (WDWV
,
1
(
N
Q
6
6
ORUVTXHN QQRXVDYRQVGDQV6ODVRPPHGHVQSUHPLHUVHQWLHUV
∀QQ!6
(WDWV
,
1
(
Q
Q
6
6
(QSOXVFHWDEOHDXQRXVSHUPHWLPPpGLDWHPHQWGHWURXYHUODYDOHXUH[DFWHGH ODYDULDEOHGHFRQWU{OHGHODERXFOHLFLODYDULDEOHLTXLYDXWQ HW GRQFG¶pFULUHXQWHVWG¶DUUrWGHERXFOHMXVWH 2QSHXWDORUVFKRLVLUFRPPHWHVW,!QRXELHQ,QHWFRXWRXWDXWUH SUpGLFDWpTXLYDOHQW ,OpWDLWSRVVLEOHGHSURJUDPPHUGLUHFWHPHQWFHWDOJRULWKPHDYHFOHVGHX[ DXWUHVERXFOHVSRXUHWUpSHWHU &HFLHVWSURSRVpHQH[HUFLFHDX
OHFWHXU
7. Traducteur élémentaire LDFA - Pascal 1RXVYHQRQVGHYRLUTX¶XQDOJRULWKPHGHYDLWVHWUDGXLUHHQODQJDJHGH SURJUDPPDWLRQGLWpYROXp 1RXVIRXUQLURQVLFLXQWDEOHDXGHTXLVHUDXWLOH jO¶pWXGLDQWSRXUODWUDGXFWLRQGHVLQVWUXFWLRQVDOJRULWKPLTXHVHQ3DVFDO VLPSOH
7.1 Traducteur 9RLFLOHWDEOHDXGHWUDGXFWLRQ/')$HQ3DVFDOVLPSOLILpUHODWLYHPHQWDX[ LQVWUXFWLRQVVHXOHPHQW 3HVWXQSUpGLFDWHW(XQHLQVWUXFWLRQFRPSRVpH
LDFA Ω (instruction vide)
Pascal pas de traduction
debut i1 ; i2; i3; ...... ; ik fin
begin i1 ; i2; i3; ...... ; ik end
x ← a
x := a
;
(ordre d'exécution) ;
Si P alors E1 sinon E2 Fsi
if P then E1 else E2 ( attention défaut, pas de fermeture !)
Tantque P faire E Ftant
while P do E ( attention, pas de fermeture)
répeter E jusquà P
repeat E until P read(fichier,x1,x2,x3......,xn )
lire (x1,x2,x3......,xn )
readln(x1,x2,x3......,xn ) Get(fichier)
write(fichier,x1,x2,x3......,xn ) ecrire (x1,x2,x3......,xn )
writeln(x1,x2,x3......,xn ) Put(fichier)
for x:=a to b do E (croissant) pour x<-a jusquà b faire E Fpour
for x:=a downto b do E (décroissant) ( attention, pas de fermeture)
SortirSi
if P then Break
P
N
(entiers naturels)
integer
Z
(entiers relatifs)
integer
Q
(rationnels)
real
R
(réels)
real
{ Vrai,Faux }
(logique)
boolean
caractère
char
+ , - , / , *
+ , - , / , *
> , < , = , ≠
> , < , = ,<>
≥≤ ¬∧∨
! not , and , or
&HWDEOHDXGHWUDGXFWLRQSHUPHWGpMjG¶pFULUHWUqVUDSLGHPHQWGHVSURJUDPPHV 3DVFDOVLPSOHVjSDUWLUG¶DOJRULWKPHVpWXGLpVHWpFULWVDXSDUDYDQW
7.2 Exemple (QDSSOLTXDQWOHWUDGXFWHXUjO¶DOJRULWKPHGHO¶pTXDWLRQGXVHFRQGGHJUp QRXVREWHQRQVOHSURJUDPPH3DVFDOVXLYDQW SURJUDPHTXDWLRQ YDU $%&UHDO ;;UHDO 'HOWDUHDO EHJLQ UHDGOQ$%& LI$ WKHQ^$ ` LI% WKHQ LI& WKHQ ZULWHOQ 5HVWVROXWLRQ HOVH ZULWHOQ SDVGHVROXWLRQ HOVH^%≠` EHJLQ ; &% ZULWHOQ [ ; HQG HOVH^$≠` EHJLQ
'HOWD % % $ & LI'HOWDWKHQ ZULWHOQ SDVGH VROXWLRQ HOVH^∆≥` LI'HOWD WKHQ EHJLQ ; % $ ZULWHOQ [ ; HQG HOVH^∆!` EHJLQ ; %6TUW'HOWD $ ; %6TUW'HOWD $ ZULWHOQ [ ; [ ; HQG HQG HQG
7.3 Sécurité et ergonomie /¶XWLOLVDWLRQGXWUDGXFWHXUPDQXHO/')$à3DVFDOIRXUQLWXQHYHUVLRQ SUpOLPLQDLUHGHSURJUDPPHSDVFDOIRQFWLRQQDQWVXUGHVGRQQpHVFRUUHFWHVVDQV DXFXQHSUpVHQWDWLRQ,ODSSDUWLHQWDXSURJUDPPHXUGHFRPSOpWHUGDQVXQ GHX[LqPHWHPSVODSDUWLHVpFXULWpDVVRFLpHDX[FRQWUDLQWHVGXGRPDLQHVGH GpILQLWLRQGHVYDULDEOHVHWDX[FRQWUDLQWHVPDWpULHOOHVG¶LPSODQWDWLRQ (QILQGDQVXQWURLVLqPHWHPSVO¶HUJRQRPLHIRUPHGHO¶pFKDQJH G¶LQIRUPDWLRQHQWUHOHSURJUDPPHHWOHIXWXUXWLOLVDWHXU VHUDHQYLVDJpHHW SURJUDPPpH9R\RQVVXUO¶H[HPSOHGHODVRPPHGHVQSUHPLHUVHQWLHUVGpMj FLWpSOXVKDXWFRPPHQWFHVWURLVpWDSHVV¶DUWLFXOHQW
(WDSHGHWUDGXFWLRQ 9RLFLOHWH[WHILQDOGHO¶DOJRULWKPHGHGpSDUW $OJRULWKPH6RPHQWLHU 1 ∈1 6,∈1 'pEXW /LUH1 6 ← , ← 7DQW4XH, 1IDLUH 6←6,
,←, )LQ74 (FULUH6 )LQ6RPHQWLHU 9RLFLOHWH[WHGHVDWUDGXFWLRQHQSDVFDO SURJUDP6RPHQWLHU YDU1LQWHJHU 6,LQWHJHU EHJLQ UHDGOQ1 6 , ZKLOH,1GREHJLQ 6 6, , , HQG ZULWHOQ6 HQG
(WDSHGHVpFXULVDWLRQ 6pFXULWpGXHDX[GRPDLQHVGHGpILQLWLRQGHVGRQQpHV /DWUDGXFWLRQQHSHUPHWSDVG¶pFULUHOHVGRPDLQHVGHGpILQLWLRQGHV YDULDEOHVHQO¶RFFXUUHQFHLFLODYDULDEOH1 ∈1 HVWWUDGXLWHSDUYDU1 LQWHJHURUOHW\SHSUpGpILQLLQWHJHUHVWXQVRXVHQVHPEOHGH=LOHVW GRQFQpFHVVDLUHG¶pOLPLQHUOHVHQWLHUVQpJDWLIVRXQXOVFRPPHFKRL[ SRVVLEOH'qVTXHO¶XWLOLVDWHXUDXUDHQWUpVRQQRPEUHOHSURJUDPPHGHYUD WHVWHUO¶DSSDUWHQDQFHDXERQLQWHUYDOOHDILQGHSURWpJHUODSDUWLHGHFRGH VLJQDOpHHQGHVVRXVGDQVOHFDGUH
6RPHQWLHU
SURJUDP
1LQWHJHU
6RPHQWLHU
SURJUDP
1LQWHJHU
YDU
YDU
6,LQWHJHU
6,LQWHJHU
EHJLQ
EHJLQ
UHDGOQ1
UHDGOQ1
LI1!WKHQEHJLQ
6
,
6
,
ZKLOH,1GREHJLQ
ZKLOH,1GREHJLQ
6
6
,
6,
,
,
,
HQG
ZULWHOQ6
6,
HQG
ZULWHOQ6
HQG
HQG
HQG
6pFXULWpGXHDX[FRQWUDLQWHVG¶LPSODQWDWLRQ 6LQRXVH[pFXWRQVFHSURJUDPPHSRXUODYDOHXU1 ODYDOHXUIRXUQLHHQ VRUWLHHVWVXUXQSDVFDOELWVFRPPH73SDVFDO1RXVVRPPHV FRQIURQWpVDXSUREOqPHGHODUHSUpVHQWDWLRQGHVHQWLHUVPDFKLQHVGpMjFLWp ,FLOHW\SHLQWHJHUHVWUHVWUHLQWjO¶LQWHUYDOOH>@LO\D PDQLIHVWHPHQWGpSDVVHPHQWGHFDSDFLWpRYHUIORZ HWOHV\VWqPHDDOOqJUHPHQW FRQWLQXpOHVFDOFXOVPDOJUpFHGpSDVVHPHQW(QHIIHWODVRPPHYDXW VRLWTXLQ¶HVWSDVGDQVO¶LQWHUYDOOHGHVLQWHJHU /HSURJUDPPHXUGRLWGRQFUHPpGLHUjFHSUREOqPHSDUXQHIIRUWSHUVRQQHOGH VpFXULVDWLRQGHVRQSURJUDPPHHQQ¶DXWRULVDQWOHVFDOFXOVTXHSRXUGHV YDOHXUVYDOLGHVRIIUDQWXQPD[LPXPGHVpFXULWp
,FLODYDULDEOH6FRQWLHQWODVRPPH QRXVVDYRQVTXH QQ GRQFLOVXIILUDGHUpVRXGUHGDQV1O¶LQpTXDWLRQQQ ≤RQHVW O¶LQFRQQXH/¶XQLTXHVROXWLRQSRVLWLYHDSRXUSDUWLHHQWLqUH(Q YpULILDQWVXUO¶H[pFXWLRQQRXVWURXYRQVTXH6 SRXU1 &HTXL QRXVGRQQHODYHUVLRQVXLYDQWHGXSURJUDPPH
SURJUDP6RPHQWLHU YDU 1LQWHJHU 6,LQWHJHU EHJLQ UHDGOQ1 LI1! DQG1 WKHQEHJLQ 6 , ZKLOH,1GREHJLQ 6 6,
, , HQG ZULWHOQ6 HQG HQG
(WDSHG¶HUJRQRPLH 'DQVFHWH[HPSOHO¶LQIRUPDWLRQjpFKDQJHUDYHFO¶XWLOLVDWHXUHVWWUqV VLPSOHHWQHQpFHVVLWHSDVXQHLQWHUIDFHVSpFLDOH,OV¶DJLUDGHOXL SUpFLVHUOHVFRQWUDLQWHVG¶HQWUpHHWGHOXLSUpVHQWHUG¶XQHPDQLqUHFODLUH OHUpVXOWDW SURJUDP6RPHQWLHU YDU 1LQWHJHU 6,LQWHJHU EHJLQ :ULWHµ(QWUH]XQHQWLHUHQWUHHW¶ UHDGOQ1 LI1! DQG1 WKHQEHJLQ 6 , ZKLOH,1GREHJLQ 6 6,
, , HQG ZULWHOQµODVRPPHGHVµ1¶SUHPLHUVHQWLHUV YDXWµ6 HQG HOVHZULWHOQµ&DOFXOLPSRVVLEOH¶ HQG
9RXVUHPDUTXHUH]TXHOHVDGMRQFWLRQVVXSSOpPHQWDLUHVGHFRGHHQLWDOLTXH GDQVOHSURJUDPPHILQDOVHPRQWHQWjHQYLURQGXWRWDOGXFRGHpFULWFDU XQORJLFLHOQ¶HVWSDVXQLTXHPHQWXQDOJRULWKPHWUDGXLW(QFRQWLQXDQW G¶DSSOLTXHUOHSULQFLSHGHODSURJUDPPDWLRQVWUXFWXUpHLOHVWERQGHELHQ VpSDUHUORUVGXGpYHORSSHPHQWODSDUWLHDOJRULWKPLTXHGHVSDUWLHVVpFXULWp HWHUJRQRPLH/HSURJUDPPHXUGpEXWDQW\JDJQHUDHQFODUWpGDQVVDPpWKRGHGH WUDYDLO 8. Facteurs de qualité du logiciel %0H\HUHW*%RRFK
FRQVWDW
8QXWLOLVDWHXUORUVTX¶LODFKqWHXQSURGXLWFRPPHXQDSSDUHLOpOHFWUR PpQDJHURXXQHYRLWXUHDWWHQGGHVRQDFTXLVLWLRQTX¶HOOHSRVVqGHXQ FHUWDLQQRPEUHGHTXDOLWpVILDELOLWpGXUDELOLWpHIILFDFLWp ,OHQHVWGH PrPHDYHFXQORJLFLHO
9RLFLXQHOLVWHPLQLPDOHGHFULWqUHVGHTXDOLWpGXORJLFLHOG¶DSUqV%0H\HU*%RRFK Correction
Robustesse
Extensibilité
Réutilisabilité
Compatibilité
Efficacité
Portabilité
Vérificabilité
Intégrité
Facilité utilisation
Modularité
Lisibilité
Abstraction
5HSUHQRQVOHVGpILQLWLRQVFRPPXQpPHQWDGPLVHVSDUFHVGHX[DXWHXUVVXUFHV IDFWHXUVGHTXDOLWp /DFRUUHFWLRQHVWODTXDOLWpTX XQORJLFLHODGHUHVSHFWHUOHV VSpFLILFDWLRQVTXLRQWpWpSRVpHV /DUREXVWHVVHHVWODTXDOLWpTX XQORJLFLHODGHIRQFWLRQQHUHQ VHSURWpJHDQWGHVFRQGLWLRQVGHG\VIRQFWLRQQHPHQW / H[WHQVLELOLWpHVWODTXDOLWpTX XQORJLFLHODG¶DFFHSWHUGHV PRGLILFDWLRQVGDQVOHVVSpFLILFDWLRQVHWGHVDGMRQFWLRQV QRXYHOOHV
/DUpXWLOLVDELOLWpHVWODTXDOLWpTX XQORJLFLHODGHSRXYRLU rWUHLQWpJUpWRWDOHPHQWRXSDUWLHOOHPHQWVDQVUppFULWXUHGDQVXQ QRXYHDXFRGH /DFRPSDWLELOLWpHVWODTXDOLWpTX XQORJLFLHODGHSRXYRLUrWUH XWLOLVpDYHFG DXWUHVORJLFLHOVVDQVDXWUHHIIRUWGHFRQYHUVLRQ GHVGRQQpHVSDUH[HPSOH / HIILFDFLWpHVWODTXDOLWpTX XQORJLFLHODGHELHQXWLOLVHU OHVUHVVRXUFHV /DSRUWDELOLWpHVWODTXDOLWpTX XQORJLFLHODG rWUHIDFLOHPHQW WUDQVIpUpVXUGHQRPEUHX[PDWpULHOVHWLQVpUDEOHGDQVGHV HQYLURQQHPHQWVORJLFLHOVGLIIpUHQWV /DYpULILFDELOLWpHVWODTXDOLWpTX XQORJLFLHODGHVHSOLHUj ODGpWHFWLRQGHVIDXWHVDXWUDoDJHSHQGDQWOHVSKDVHVGH YDOLGDWLRQHWGHWHVW / LQWpJULWpHVWODTXDOLWpTX XQORJLFLHODGHSURWpJHUVRQFRGH HWVHVGRQQpHVFRQWUHGHVDFFqVQRQSUpYXV /DIDFLOLWpG XWLOLVDWLRQHVWODTXDOLWpTX XQORJLFLHODGH SRXYRLUrWUHDSSULVXWLOLVpLQWHUIDFpGHYRLUVHVUpVXOWDWV UDSLGHPHQWFRPSULVGHSRXYRLUUpFXSpUHUGHVHUUHXUVFRXUDQWHV /DOLVLELOLWpHVWODTXDOLWpTX XQORJLFLHODG rWUHOXSDUXQ rWUHKXPDLQ /DPRGXODULWpHVWODTXDOLWpTX XQORJLFLHODG rWUH GpFRPSRVDEOHHQpOpPHQWVLQGpSHQGDQWVOHVXQVGHVDXWUHVHW UpSRQGDQWVjXQFHUWDLQQRPEUHGHFULWqUHVHWGHSULQFLSHV / DEVWUDFWLRQHVWODTXDOLWpTX XQORJLFLHODGHV¶DWWDFKHUj GpFULUHOHVRSpUDWLRQVVXUOHVGRQQpHVHWjQHPDQLSXOHUFHV GRQQpHVTX¶jWUDYHUVFHVRSpUDWLRQV /DSURGXFWLRQGHORJLFLHOVGHTXDOLWpQ¶HVWSDVXQHVSpFLILFLWpGHV SURIHVVLRQQHOVGHODSURJUDPPDWLRQF¶HVWXQpWDWG¶HVSULWLQGXLWSDUOHV PpWKRGHVGXJpQLHORJLFLHO/HGpEXWDQWSHXWHWQRXVOHYHUURQVSDUOD VXLWHFRQVWUXLUHGHVORJLFLHOVD\DQWGHVTXDOLWpVVDQVDYRLUjIRXUQLU G¶HIIRUWVVXSSOpPHQWDLUHV%LHQDXFRQWUDLUHODUpDOLWpDPRQWUpTXHOHV pWXGLDQWVEULFROHXUVSDVVDLHQWILQDOHPHQWSOXVGHWHPSVjELGRXLOOHU XQSURJUDPPHTXHORUVTX¶LOVGpFLGDLHQWG¶XVHUGHPpWKRGHGHWUDYDLO8QH DPpOLRUDWLRQGHODTXDOLWpJpQpUDOHGXORJLFLHOHQHVWWRXMRXUVOHUpVXOWDW