1
Các h thigianthc–Giithiu
Ngô Khánh Hiu
Các h thigianthc–Giithiu
Ngô Khánh Hiu
1
Tng quan v h tin hcthigianthc (1/5)
-H tin hcthigianthcnhn các thông tin v trng thái ca quá trình bên ngoài, x
lý các d liu, và tùy thucvàokt qu mà đa ra "quyt đnh" tác đng đn môi
trng bên ngoài trong điukin các ràng buc nghiêm ngt v thigiannhm bo
đm trng thái n đnh ca quá trình.
-Mtchng trình thigianthc không có các đc tính thng thy các chng
trình tun t:
⇒ không có s ràng buc nào giaktqu tính toán vithi gian tính toán,
⇒ có kh nng tái s dng (comportement reproductible).
H thigianthclà h môi trng
song song
2
Các h thigianthc–Giithiu
Ngô Khánh Hiu
2
Tng quan v h tin hcthigianthc (2/5)
- Khái nim"song song" (Parallélisme) trong h tin hccóth đchiu đn gin
theo các cách sau:
(1) H tin hc hình thành t nhiu máy tính
(2) H tin hcch gmmt máy tính nhng có nhiuvix lý (processeurs)
(3) H tin hcch gmmtmáytínhvimtvix lý (mono-processeur)
nhng có kh nng qun lý thi gian tính toán theo "khong thi gian"
xác đnh (tranches de temps). Khái nim "song song" nu đchiu
theo ngha này còn đcgi là "pseudo-parallélisme".
- Mt vòng lp: ng mi ln lp s thchinvic tính toán mtítca "tâche 1", mtítca
"tâche 2",… và c th cho đn khi các "tâches" kt thúc vic tính toán.
- Chia mtchng trình tin hcthigianthc làm hai phn
: phn I liên quan đn victhit k
(conception) các "tâches" cho chng trình; phn II gii quyt vn đ "parallélisme" hay
"pseudo-parallélisme" gia các "tâches".
Các h thigianthc–Giithiu
Ngô Khánh Hiu
3
Tng quan v h tin hcthigianthc (3/5)
- Phân loi các h thng "song song" (Système parallèle):
(2) SIMD (Single Instruction Multiple Data): cùng thchin chung mtlnh
(instruction) nhng mi mt "ouvrier" s tính các phn khác nhau hay các
d liu khác nhau.
(1) Dng dãy tuyn tính: h thng song song "pipeline" (dng cu trúc ca
"processeur" hay "microprocesseur" cho phép thchincùngmtlúc
nhiulnh (instructions).
(3) MIMD (Multiple Instruction Multiple Data): cho phép cùng mtlúcthc
hinnhiu "tâches" khác nhau (lu ý: mt "tâche" có th gimthay
nhiulnh).
(4) SPMD (Single Program Multiple Data): là dng đc bitcaMIMD, mi
thi đim trong quá trình thchinmtchng trình (program), mt
"tâche" không th đc tính hai hay nhiu ni khác nhau (lu ý: mt
chung trình là tphpcamt hay nhiu "tâche").
3
Các h thigianthc–Giithiu
Ngô Khánh Hiu
4
Tng quan v h tin hcthigianthc (4/5)
- Phân loi tng quát các h thng tin hc (Systèmes informatiques):
(2) Các h tng tác (Systèmes interactifs): là h đchiutheongha d liu
đcto ra bis tác đng vi"môi trng" bng nhiuhínhthc khác nhau
nh: bàn phím, file d liu, mng, chut, c tính v thi gian trong trng
hp này không có nh hng nào khác ngoài cm giác không thoi mái khi làm
vic (aspect confort de travail) hay cht lng phcv (qualité de service).
(1) Các h bin đi (Systèmes transformationnels): là các h s dng các d liu
đu vào (input) đc cung cp lúc khai báo ban đu, sau đó x lý các d liu
đó đ xut ra các d liu đu ra (output) mà không có bt c ràng buc nào v
thi gian.
(3) Các hđiukhin hay phn ng (Systèmes de contrôle-commande ou réactifs):
là các h có mi quan h vi môi trng thct thông qua các d liu đu vào,
tuy nhiên khác vih tng tác, h điukhinhayphn ng có s ràng buc
bt bucv thigian di c ác hình thcnh: thigianphn ng (temps de
réaction), hn thigianphn hoàn thành (temps d’une échéance à respecter),
Các h thigianthc–Giithiu
Ngô Khánh Hiu
5
Tng quan v h tin hcthigianthc (5/5)
4
Các h thigianthc–Giithiu
Ngô Khánh Hiu
6
Phân loi h điukhin (Système de contrôle-commande ou réactif) (1/2)
T đnh ngha h điukhinta cóth phân loi h điukhinda theo các yêu cu
(specifications) riêng cah nh sau:
(1) Các h thigianthc (Systèmes temps réel): là h điukhinmàyêucu ng
x "đúng/chính xác" (exactitude) cacácng dng ca nó không nhng ch
ph thucvàokt qu (résultat), mà còn ph thucvàothigianmàkt qu đó
đcto ra. Và nu các ràng bucv thi gian (contraintes temporelles) ca
ng dng không đc tuân th, ta nói h b sai sót/li (défaillance du système).
Da vào các ràng bucthi gian này ta có th chia h thigianthc làm 2 loi:
1.a. ràng bucthigianlng/tng đi (contraintes temporelles relatives ou
lâches): là h có th chu đc/b qua (tolérance) mts li xác đnh v
thigiannu phát sinh trong quá trình vn hành (ví d: trò chi đint,
các ng dng v nghe nhìn, đinthoi di đng,…).
1.b. ràng bucthigiancht/nghiêm ngt (contraintes temporelles strictes ou
dures): là h không chp nhn/b qua bt k li v thi gian nào phát sinh
trong quá trình vn hành (ví d: thit b đint hàng không, tàu v tr, xe
hi, h thng đng st…).
Các h thigianthc–Giithiu
Ngô Khánh Hiu
7
Phân loi h điukhin (Système de contrôle-commande ou réactif) (2/2)
(2) Các h điukhin "embarqué" (Systèmes de contrôle-commande embarqué):
đchiu đn gin là h đc tích hptrêncácthit b hay các h thng khác
đ điukhin quá trình hot đng cathit b hay h thng đó.
(3) Các h điukhin "dédié" (Systèmes de contrôle-commande dédié): đchiu
đn gin là các h "cng" hoc "mm" (architectures matériels ou logiciels)
đcthit k dành riêng cho mt ng dng c th (ví d: ht nhân hay lõi
(noyau) camt microprocesseur, vi x lý (processeur), ).
(4) Các h điukhin "distribué" (Systèmes de contrôle-commande distribué):
đchiu đn gin là mtcu trúc phn "cng" (l’architecture matériel) đc
hình thành t nhiuvix lý (processeurs) liên kt vi nhau thông qua mt
"bus" hay mth thng mng (réseau).
5
Các h thigianthc–Giithiu
Ngô Khánh Hiu
8
Các đc tính c bn cah điukhin (1/6)
Mi quan h tng h giah
điukhinvi môi trng bên
ngoài mà nó điukhincóth
phân chia thành hai phn sau:
phn "quan sát" (observations) thông qua các cm bin (sensors), cho phép thu
nhn các thông tin dihìnhthc các ngt (interruptions, information tout ou
rien), hoc các giá tr đo (mesures, information continue) t quá trình thct mà
h điukhin.
phn "hành đng" (actions) đcthchinnh các c cu chp hành
(actuators), cho phép phn ng li quá trình th
ct mà h điukhin dihình
thccáclnh (commandes) làm thay đitrng thái hinhànhcah thng, hoc
đn gin là dihìnhthc các hinth (affichage) nh diodes, bóng đèn, màn
hình hinth, thit b hinth,…
Các h thigianthc–Giithiu
Ngô Khánh Hiu
9
Các đc tính c bn cah điukhin (2/6)
Mt ng dng cah điukhin trong điukhin quá trình đtcháyca đng c
6
Các h thigianthc–Giithiu
Ngô Khánh Hiu
10
Các đc tính c bn cah điukhin (3/6)
Các đc tính c bn cah điukhinlà:
(1) rt đa dng các thit b đu vào và đu ra (dispositifs d’entrées/sorties):
d liu đu vào yêu cu, đc cung cp bicáccm bin, và các d liu
đu ra cung cp cho các c cu chp hành có các kiud liu (types) rt
đa dng (liên tc, rirc, "tout ou rien", hoc "analogique").
(2) có kh nng tính toán song song (comportements concurrents): tphp
tt c các d liuthct t bên ngoài, và "mng" (le réseau) cho phép
nhpcácd liudng tin nhn (messages) không đc đng b (ne sont
pas synchronisés) so vis phát trinca chúng. iunàydn đn, h
thng tin hcphi có kh nng chp nhnnhng s khác bit đng thi
ca các tham s (variations simultanées des paramètres).
Các h thigianthc–Giithiu
Ngô Khánh Hiu
11
Các đc tính c bn cah điukhin (4/6)
Các đc tính c bn cah điukhinlà: (tip theo)
(3) tuân th các ràng bucv thi gian (contraintes temporelles): đc tính
trc đó cah điukhin đt ra cho h thng tin hcmtmt phi có mt
kh nng "phn ng" (réactivité) đ đ xét ht tt c các ng x đng thi
(comportements concurrents), mt khác phi tr licácng x đó bng
cách to ra các lnh trong tuân th mtgiihn thi gian (un délai) tng
ng/phù hpvi tính đng hccah thng (la dynamique du système)
(4) s chc chn trong hot đng (sureté de fonctionnement): các h điu
khin thng đcs dng trong các ng dng mà đó yêu cu mc
đ rt quan trng v s an toàn vì lý do chi phí (cout) hoc tính mng ca
con ngi (vies humaines). đáp ng đcyêucu này, rt cn thit
phi bo đm tính chc chn trong hot đng cacách điukhin thông
qua các bin pháp nh phát trin"chc chn", tests, các phng pháp
"formelles", các d đoán (prévisibilité), déterminisme, tolérance aux
fautes, redondance,…
7
Các h thigianthc–Giithiu
Ngô Khánh Hiu
12
Các đc tính c bn cah điukhin (5/6)
So sánh tính đng hccacácng dng khác nhau cah điukhin
Các h thigianthc–Giithiu
Ngô Khánh Hiu
13
Mtvàing dng cah điukhin (6/6)
Robot sn xut
: mt robot, thchinmthot đng c th trong mtchui sn
xut, phi hoàn thành công viccanótrongkhong thigianc đnh xác đnh
bi dây chuynch to. Nu thi gian này quá smhoc quá tr sn phm ch
to s b phá hyhoc làm h hng dn đn các thithi v kinh t hoc con
nginghiêmtrng.
Robot thm dò/thám him
: robot này phi có kh nng t dch chuyntrongmt
phm vi mà v c bn là không bit rõ trc(nh vùng nhim phóng x gn mt
ti nn v phóng x, hành tinh,…). iu quan trng đivi các robot loi này là
chúng phi có th phn ng li các chng ngi vtc đnh hoc di đng đ tránh
b mt lái hay b kt.
inthoi di đng
: h thng điukhinphi có kh nng hoàn thành nhiuchc
nng mà trong đó mts có ràng bucv thi gian cao đ có cht lng phcv
tt (QoS, Quality of Service). Chc nng đu tiên là truynvànhn tín hiuging
nói (577 µs ging nói đcphátchomi 4.6 ms, và 577 µs ging nói đcnhn
cho mi 4.6 ms các khong cách khác nhau). Vi vycn phi
8
Các h thigianthc–Giithiu
Ngô Khánh Hiu
14
Cu trúc ca các ng dng cah điukhin (1/16)
Cu trúc phn mm (Architecture logicielle)
(1/14)
ng x đng thica các tín hiu đcth hin didng các "événements" và các
đi lng thc bên ngoài (grandeurs physiques externes) dn đn mô t/th hinmôi
trng điukhinnh là mth thng bt buc song song.
Cu trúc phn mmcóth đáp ng ttnht đ tr licácng x song song ca
quá trình điukhin bên ngoài (comportement parallèle du procédé externe) là cu
trúc "multitâche" (multi-task hay multiprogrammation).
Các h thigianthc–Giithiu
Ngô Khánh Hiu
15
Cu trúc ca các ng dng cah điukhin (2/16)
Cu trúc phn mm (Architecture logicielle
) (2/14)
“In computing, multitasking
is a method by which multiple tasks, also known as
processes, share common processing resources such as a CPU. In the case of a
computer with a single CPU, only one task is said to be running at any point in time,
meaning that the CPU is actively executing instructions for that task.
Multitasking solves the problem by scheduling which task may be the one running at
any given time, and when another waiting task gets a turn. The act of reassigning a
CPU from one task to another one is called a context switch
.
When context switches occur frequently enough the illusion of parallelism
is
achieved. Even on computers with more than one CPU (called multiprocessor
machines), multitasking allows many more tasks to be run than there are CPUs.”
(Trích ngun Wikipedia)
9
Các h thigianthc–Giithiu
Ngô Khánh Hiu
16
Cu trúc ca các ng dng cah điukhin (3/16)
Cu trúc phn mm (Architecture logicielle
) (3/14)
“Operating systems may adopt one of many different scheduling strategies, which
generally fall into the following categories:
- In multiprogramming systems
, the running task keeps running until it performs an
operation that requires waiting for an external event (e.g. reading from a tape) or
until the computer's scheduler forcibly swaps the running task out of the CPU.
Multiprogramming systems are designed to maximize CPU usage.
- In time-sharing systems, the running task is required to relinquish the CPU, either
voluntarily or by an external event such as a hardware interrupt. Time sharing
systems are designed to allow several programs to execute apparently
simultaneously.
- In real-time systems, some waiting tasks are guaranteed to be given the CPU
when an external event occurs. Real time systems are designed to control
mechanical devices such as industrial robots, which require timely processing.”
(Trích ngun Wikipedia)
Các h thigianthc–Giithiu
Ngô Khánh Hiu
17
Cu trúc ca các ng dng cah điukhin (4/16)
Cu trúc phn mm (Architecture logicielle
) (4/14)
10
Các h thigianthc–Giithiu
Ngô Khánh Hiu
18
Cu trúc ca các ng dng cah điukhin (5/16)
Cu trúc phn mm (Architecture logicielle
) (5/14)
(1) “tâches" nhp/xut (tâches d’entrées/sorties): đây là các "tâches" cho phép tip
cnvicácd liu bên ngoài thông qua các "cartes" giao tip nhp/xut, và các
cm bin (capteurs), các c cu chp hành (actionneurs) liên kt trctip vi
quá trình điukhin. Các "tâches" này có th đckíchhot mt cách đu đn
(façon régulières) hoc bng "ngt" (par interruption).
(2) “tâches" x lý/tính toán (tâches de traitement): các "tâches" này to nên phn
trung tâm ca ng dng. Nó tích hp các phng pháp x lý tín hiu
(traitements de signaux) nh phân tích ph, s tng đng, x lý hình nh,…;
các quy lut điukhin (lois de commande) nh điukhin có chu k theo thi
gian, điukhinkiu "tout ou rien", điukhin PID,… Trong khuôn kh ca môn
hc này, ta có th xem các "tâches" x lý/tính toán nh là các hp đen mà đó
phn x lý/tính toán catng "tâche" s là phm vi cacáclnh vc liên quan
nh x lý tín hiu, x lý hình nh, điukhint đng,…
Các h thigianthc–Giithiu
Ngô Khánh Hiu
19
Cu trúc ca các ng dng cah điukhin (6/16)
Cu trúc phn mm (Architecture logicielle
) (6/14)
(3) “tâches" qun lý giao tip ngis dng (tâches de gestion de l’interface
utilisateur): đây là các "tâches" cho phép hinth trng thái ca quá trình điu
khin, cng nh vicgiaotip vingis dng. Theo đó, ngi điukhincó
th hiuchnh các d liu điukhinhoc thay đicáclnh điukhin. Các
"tâches" này có th rt phctp và đt v mt thi gian tính toán nu giao din
điukhincókích thc "quan trng" (de taille importante) nh bng điukhin
trong bung lái máy bay (tableau de bord) hoc thuckiugiao đin đ hanh
hinth 3D,…
(4) “tâches" thông tin liên lc (tâches de communications): các "tâches" này đc
to ra đ dành cho vicqun lý vicgivànhn các "messages" trong mt
hoc nhiumng hoc thit b kt ni (réseaux ou bus de terrain). Nu các
"tâches" dng này xut hin trong ng dng cah điukhinthìng dng
đcgi là "phân phi" (distribuée ou répartie).
11
Các h thigianthc–Giithiu
Ngô Khánh Hiu
20
Cu trúc ca các ng dng cah điukhin (7/16)
Cu trúc phn mm (Architecture logicielle
) (7/14)
(5) “tâches" lu tr (tâches de sauvegarde): đây là các "tâches" cho phép lu tr
trng thái cah thng (l’état du système) các thi đimc đnh. Vic lu tr
này có th đcs dng sau đó (a posteriori) đ phân tích vicvnhànhca
ng dng hoc ngay sau mts ly li trng thái vn hành mtgiai đon
trc đó (une reprise d’exécution à une étape précédente).
Sau giai đon phân tích (l’analyse) và thit k (la conception) ng dng, ta thu
đctph
p các "tâches" hay các "activités" có quan h ln nhau đ thc
hinvic điukhinca quá trình. Các "tâches" này thucv các nhóm khác
nhau nh litkê trên. Cách thc phân chia theo chc nng này có th đc
sa đi trong trng hpápdng phng pháp thit k hng v các đi
tng hoc các "entités" điukhin.
Các h thigianthc–Giithiu
Ngô Khánh Hiu
21
Cu trúc ca các ng dng cah điukhin (8/16)
Cu trúc phn mm (Architecture logicielle
) (8/14)
S đ th hincu trúc "multitâche" camt ng dng cah điukhin
Các "tâches" cu thành lên ng dng cah điukhin không phi là các thcth
hot đng đclp. Mts "tâches" đckt nivi bên ngoài đ nhp/xut; mts
"tâches" có th đc liên kt vi nhau trong quá trình vn hành ca ng dng.
12
Các h thigianthc–Giithiu
Ngô Khánh Hiu
22
Cu trúc ca các ng dng cah điukhin (9/16)
Cu trúc phn mm (Architecture logicielle
) (9/14)
- Synchronisation
: đây là kiukt nigia hai hay nhiu "tâches" đ th hinmt
mi quan h trc sau (une relation de précédence d’exécution) gia chúng.
- Communication: đây là kiukt nigia hai hay nhiu "tâches" đ th hinmt
mi quan h trc sau nhng có b sung thêm s chuynd liu (le transfert de
données) gia chúng.
- Partage de ressources
: đây là kiukt nigia hai hay nhiu "tâches" cùng chia
s vi nhau các ngun nghiêm ngt (ressources critiques). Các ngun nghiêm
ngt là các ngunmàs tip cnchúngbi hai hay nhiu "tâches" cùng mtlúc
hoc không th thchin đc, hoc không th đ có mts vn hành đúng.
Các h thigianthc–Giithiu
Ngô Khánh Hiu
23
Cu trúc ca các ng dng cah điukhin (10/16)
Cu trúc phn mm (Architecture logicielle
) (10/14)
Vai trò chính yu cah tin hclà điuphis đan xen (l’enchainement) và đng thi
(la concurrence) ca các "tâches" nhm ti u thigianchim dng vi x lý, chc nng
này thng đcgilà "ordonnancement" (schedulability).
- Mô hình “synchrone”
: mô hình này s nhnthcthi đimkíchhot catt c
d kin điukhin (l’occurrence de tout événement) bih thng b tr bithi
gian tính toán ca "tâche" hin hành. Hay nói cách khác, các "tâches" camôhình
"synchrone" là các "tâches" không th ngt (non interruptibles ou non préemptibles)
Ta có th phân chia mô hình vn hành cacách điukhin thành hai mô hình sau: mô
hình "synchrone" và mô hình "asynchrone".
- Mô hình “asynchrone”: mô hình này s nhnthcthi đimkíchhot catt c
d kin điukhin (l’occurrence de tout événement) đc ghi nhn ngay lptcbi
h thng đ cân nhc tính cht khn (urgence) hay tính cht quan trng ca chúng.
Hay nói cách khác, các "tâches" ca mô hình "asynchrone" là các "tâches" có th
ngt (interruptibles ou préemptibles)
13
Các h thigianthc–Giithiu
Ngô Khánh Hiu
24
Cu trúc ca các ng dng cah điukhin (11/16)
Cu trúc phn mm (Architecture logicielle
) (11/14)
Mô hình "synchrone" camt ng dng điukhin
Phng pháp phân tích "ordonnancement" trong mô hình "synchrone" đcgilà
phng pháp phân tích "ordonnancement hors ligne".
Các h thigianthc–Giithiu
Ngô Khánh Hiu
25
Cu trúc ca các ng dng cah điukhin (12/16)
Cu trúc phn mm (Architecture logicielle
) (12/14)
Mô hình "asynchrone" camt ng dng điukhin
Phng pháp phân tích "ordonnancement" trong mô hình "asynchrone" đcgilà
phng pháp phân tích "ordonnancement en ligne".
14
Các h thigianthc–Giithiu
Ngô Khánh Hiu
26
Cu trúc ca các ng dng cah điukhin (13/16)
Cu trúc phn mm (Architecture logicielle
) (13/14)
Cu trúc ca
ng dng:
tâches và
noyau temps
réel
Các h thigianthc–Giithiu
Ngô Khánh Hiu
27
Cu trúc ca các ng dng cah điukhin (14/16)
Cu trúc phn mm (Architecture logicielle
) (14/14)
Các ngôn ng lptrình đcs dng đ phát trincácng dng điukhin
viht nhân thigianthc
1. Gestion des interruptions 2. Ordonnancement 3. Relations entre les tâches
15
Các h thigianthc–Giithiu
Ngô Khánh Hiu
28
Cu trúc ca các ng dng cah điukhin (15/16)
Cu trúc phn cng (Architecture matérielle
) (1/2)
Các h thigianthc–Giithiu
Ngô Khánh Hiu
29
Cu trúc ca các ng dng cah điukhin (16/16)
Cu trúc phn cng (Architecture matérielle
) (2/2)
Cu trúc phn cng gi mtvaitròrt quan trng trong các ng dng h điukhin.
Nó liên quan mtmt đn s kt nitrctip vi môi trng thct nh vào các h
thng nhp/xut đa dng (une grande diversité de systèmes d’entrées/sorties); mt
khác đn thit b tin hcphn cng (matériel informatique) chuyên bitvà đc phát
trindànhriêngchomt ng dng nào đó.
Rt nhiu ng dng cah điukhinvn hành datrêncácnnPC truynthng.
Tuy vy, viclp đt các cartes nhp/xut, chúng phi đc đng b hóa (victhu
nhnd liuvàxut lnh đcthchin các thi đim chính xác), là luôn cn thit.
Vì vy, trong các ng dng tin hcnày, cácphn cng chuyên bitluôntnti và h
tr tính nng v thi gian.
Trong nhiu trng hp, các ng dng cah điukhinthucdng "distribué" mà
đó chúng vn hành trong môi trng "multitâche", đckt nivi nhau bimthoc
nhiuh thng mng (nh
Erthenet, CAN, FIP…)
16
Các h thigianthc–Giithiu
Ngô Khánh Hiu
30
S phát trinca các ng dng cah điukhin (1/27)
S phát trincacácng dng tin hccóth đc chia thành các giai đon phát trin
chính sau: giai đon mô t đc tính/yêu cu (Spécification); giai đon thit k
(Conception); giai đon xây dng/trin khai (Implémentation/Codage); và giai đon
kim tra (Test/Validation).
Nu nh vickim tra (Test/Validation), gi vai trò quan trng sng còn trong vic đt
đccht lng cah thng, có th đcthchind dàng trong các ng d
ng tin
hctruynthng (nh các programmes tính toán…) thì đivicácng dng cah
điukhinvickimtravn hành thct cah thng rt phctp phát sinh t rt
nhiu nguyên nhân mà ta có th nêu ra sau: vicvn hành là duy nht (v tinh do
thám…), chi phí rt cao (h thng tên la, h thng to lc đy…), rirocaov nhân
mng (thit b bay…)…
Vòng phát trinv
i các giai đon chínhnêutrênchophépva thu đccácng dng
đt cht lng cao xét v khía cnh cu trúc phn mm, vagia tng kh nng v bo
dng/sacha (maintenabilité) và m rng/phát trin (évolutivité).
Các h thigianthc–Giithiu
Ngô Khánh Hiu
31
S phát trinca các ng dng cah điukhin (2/27)
Vòng phát trinc đin "Cascade"
(1/5)
c đa ra đu tiên biW.
Royce vào nhng nm 1970, vòng
"Cascade" nguyên thylà mts
phát trin t heo trình t t giai đon
"Spécification" đn giai đon "Test".
Có s xut hincamt liên kt giacác
giai đon sau giai đon "Spécification" ban
đu cho phép thchin các "Tests" cui
mi giai đon trong vòng phát trinvàphn
hikpthi đn giai đon lin trc đó nu
có vn đ phát sinh
17
Các h thigianthc–Giithiu
Ngô Khánh Hiu
32
S phát trinca các ng dng cah điukhin (3/27)
Vòng phát trinc đin "Cascade"
(2/5)
?
?
Các h thigianthc–Giithiu
Ngô Khánh Hiu
33
S phát trinca các ng dng cah điukhin (4/27)
Vòng phát trinc đin "Cascade"
(3/5)
(1) Giai đon “Spécification": tìm hiuh thng di cái nhìn tng quát đn tt c
các đc tính canónhm mc đích tr lichocâuhi"H thng làm gì?".
Các khía cnh kho sát đây không ch đn thun là các yêu cu thucv
chc nng (besoins fonctionnels), mà còn bao hàm c nhng yêu cu không
thucv chc nng (besoins non fonctionnels) nh yêu cu vng x/đáp
ng cah thng (services comportementaux), vtliu (matériaux), yêu c
u
v cht lng (qualités requises), các ràng bucv thigian đivicách
thigianthc…
18
Các h thigianthc–Giithiu
Ngô Khánh Hiu
34
S phát trinca các ng dng cah điukhin (5/27)
Vòng phát trinc đin "Cascade"
(4/5)
(2) Giai đon “Conception": có th phân chia thành hai giai đon, thit k s b
(conception préliminaire) và thit k chi tit (conception détaillée). Mc đích ca
giai đon này là "đnh ngha" cu trúc bên trong cah thng (architecture
interne du système) t các yêu cu đt ra giai đon trc đó nhm mc đích
tr lichocâuhi"H thng làm nh th nào?".
Thit k s b đa ra cu trúc tng quát cah thng bng cách phân chia nó
thành các b phncu thành, đc bit là các "tâches" và các "modules". Module
đây có th đchiulà mt đn v tphpmt nhóm các "fonctions" hoc các
"procédures" dành cho vics dng kt hpvicácb phn khác.
Thit k chi tit cho phép đi t kt qu cathit k s b vic phân chia tip tc
h thng cho đn cp đ mô t chi tit/c th nht tng b phncu thành canó
nh: các lachn "algorithmes", mô t chi tit tng "tâche", "fonction", cu trúc
d liu, quan h gia các "tâches"…
Các h thigianthc–Giithiu
Ngô Khánh Hiu
35
S phát trinca các ng dng cah điukhin (6/27)
Vòng phát trinc đin "Cascade"
(5/5)
(3) Giai đon “Implémentation": giai đon này cho phép trin khai các khái nim
đc đa ra trong giai đon thit k th hin didng code chng trình.
ivicách song song, hoc s dng các ngôn ng h tr song song nh
Ada, Module 2…; hoc s dng mt ngôn ng tun t đc dùng kt hpvi
mth điu hành "multitâche" hay mtht nhân thigianthc (noyau temps réel)
nh ngôn ng C phát trin thành các chun POSIX, VxWorks, OSEK/VDX…
Ngôn ng đ hacóth đcs dng trong giai đon này. Davào đc tính đ
ha, ngôn ng này cho phép không nhng trin khai các khái nimthit k, mà
còncóth tích hpvicácb phnca ng dng thct trong mt môi trng
đng nht liên tcmtcáchtrc quan. LabVIEW là mttrongs nhng ngôn ng
đ ha trong quá trình phát trincacácng dng cah điukhin.
19
Các h thigianthc–Giithiu
Ngô Khánh Hiu
36
S phát trinca các ng dng cah điukhin (7/27)
Vòng phát trindng "V"
(1/3)
Là mtdng thay đica mô hình "Cascade", mô hình V
tptrungvàoquátrìnhkimtra/làmchocóhiulc quá
trình phát trincah điukhin (vérification et validation).
- ng dcxung bên trái là
s th hinli ca các giai
đon phát trincamôhình
"Cascade" t "Spécification"
đn "Conception".
- ng dc lên bên phi là
s th hinca các quá
trình "tests" mà đó ng vi
mi giai đon ca quá trình
"Analyse" và "Conception" ta
thchinmt quá trình
"Test" và "Validation".
Các h thigianthc–Giithiu
Ngô Khánh Hiu
37
S phát trinca các ng dng cah điukhin (8/27)
Vòng phát trindng "V"
(2/3)
(4) Giai đon “tests unitaires": cho phép kimtras hot đng ca các thành phn
cah thng mt cách đclp đ đm bo mi chúng phi thacácyucu
hot đng riêng, và phi hot đng "đúng" trong mi điukin.
(5) Giai đon “tests d’intégration": là giai đon kimtra đctin hành sau giai đon
"tests unitaires" nhm mc đích kimtras hot đng ca các thành phn ca
h thng trong s vn hành tng th ca nó: mi quan h giacácb phn; s
hot đng ca các "tâches" datrêncácb phn này; các c ch bo đm
"communication/synchronisation" gia các "tâches"…
(6) Giai đon “validation": là giai đon cho phép kim tra tính hiulc/tính đúng ca
h điukhin đc phát trin trccácyêucu (besoins) đ ra giai đon đu
tiên: "besoins fonctionnels" và "besoins non fonctionnels".
20
Các h thigianthc–Giithiu
Ngô Khánh Hiu
38
S phát trinca các ng dng cah điukhin (9/27)
Vòng phát trindng "V"
(3/3)
Mô hình "V" so vimôhình"Cascade" giúpgim bt quá trình "retours" v
các giai đon trc đó trong vòng phát trincah điukhin: c th là mi
giai đon phn "lên" (montant) s ch phn hi thông tin li cho mtgiai
đon tng ng caphn "xung" (descendant) trong s đ V nh đó các li
đc phát hins đcchnh sakpthi.
Mô hình "V" vn mang đc tính camtmôhìnhtuyn tính (modèle linéaire)
nên các vn đ gp phi mô hình "Cascade" vn cha đckhc phc: giai
đon sau ch đcbt đu khi giai đon trc hoàn tt và kt thúc, nên giai
đon "tests" và "validation" ch đctin hành sau khi giai đon
"implémentation" kt thúc, phn lncácli li phát sinh giai đon
"spécification" ⇒ les retours coûtent chers
Các h thigianthc–Giithiu
Ngô Khánh Hiu
39
S phát trinca các ng dng cah điukhin (10/27)
Mts vòng phát trin khác
(1/6)
Mô hình tuyn tính s rt phù hp đivicách điukhinmà đó các yêu cu
canócóth đcxác đnh ngay t giai đon đu. iu đó mtmt giúp chun b
tt hn cho giai đon "tests et validation"; mt khác c đnh và xuyên sutcácyêu
cu nhng giai đon tip theo ca vòng phát trin.
Tuy nhiên, đivi các mô hình "dirigés par les documents" thì phn lncác ý
tng ban đu cah đcxác đnh giai đon "spécification" đu dng cha
hoàn chnh, nên rt có nhiukh nng nhng "code" hay nhng thit k
(conception) đa ra trong các giai đon tip theo ca vòng phát trin không th s
dng đc/không phù hp (inutilisable). Vicápdng các vòng phát trin da trên
mô hình tuyn tính (Cascade, V) cho các mô hình này là không thts phù hp.
il est favorable d’utiliser d‘autres techniques de prototypage qui permettent de
valider tout ou une partie du cahier des charges et de prendre en considération
le «feed-back» entre le concepteur et l’utilisateur.
21
Các h thigianthc–Giithiu
Ngô Khánh Hiu
40
S phát trinca các ng dng ca
h điukhin (11/27)
Mts vòng phát trin khác
(2/6)
Mô hình "Rapid
Prototype"
Mô hình "Rapid Prototype" là mô hình mà
đó mctiêucah (objectifs du système)
s đctp trung ngay t nhng giai đon
đu ca vòng phát trin.
-mtthit k (conception) và mt "prototype" đc
hình thành nhanh nhm kimtracácmctiêuca
h trckhi bt đu giai đon "spécification",
-yêucu ít các vòng "feed-back" hn so vimôhình
tuyn tính, điu đó giúp phát hinvàsachakpthi
các li phát sinh giai đon s dng.
Mô hình "Rapid Prototype" đcs dng nhiu
trong ngành công nghip ô tô.
Các h thigianthc–Giithiu
Ngô Khánh Hiu
41
S phát trinca các ng dng ca
h điukhin (12/27)
Mts vòng phát trin khác
(3/6)
Mô hình
« Incremental and
Iterative"
Mô hình "Incremental and Iterative" là mô hình
mà đó quá trình phát trin đc chia thành
nhiuchn (étapes), và h đc chia thành
nhiuphn nh (morceaux) mi phn s tng
ng vimtnhómcácyêucu (besoins). mi
chn phát trin, ta s dng mô hình tuyn tính
đ phân tích mthoc nhiuphn nh cùng mt
lúc, sau đó các phn nh này s đc tích hp
li vi nhau và "tests" tng th. Sn phm cui
cùng s là mtchui liên tip (série) các mô hình
phát trin tng dn (modèles incrémentiels).
22
Các h thigianthc–Giithiu
Ngô Khánh Hiu
42
S phát trinca các ng dng ca
h điukhin (13/27)
Mts vòng phát trin khác
(4/6)
Mô hình "Spiral" là mô hình "dirigé par
les risques" do W. Boehm đa ra.
Mô hình "Sprial"
- la dimension radicale représente le
coût cumulatif,
- la dimension angulaire représente
le progrès atteint à chaque cycle de
spirale (phase),
- une phase commence par
l’identification des objectifs de la
phase, des alternatives pour obtenir
ces objectifs et leurs contraintes
Các h thigianthc–Giithiu
Ngô Khánh Hiu
43
S phát trinca các ng dng ca
h điukhin (14/27)
Mts vòng phát trin khác
(5/6)
Mô hình "Sprial"
"Puis, chaque alternative est analysée
sous un point de vue «risques». Des
prototypes, des simulations, seront
préparés afin de résoudre chacun des
potentiels risques. Si tous les risques
sont résolus, le concepteur peut
poursuivre l’étape suivante. Cette étape
correspond à un modèle de vie classique
(en «Cascade» ou en «V» avec
Recherche des fonctionnalités, Analyse
des besoins, Conception Préliminaire,
Conception Détaillée, etc.) modifié pour
incorporer au développement évolutif.
Enfin, les résultats du cycle actuel sont
évalués et un plan est vérifié pour les
cycles successifs"
23
Các h thigianthc–Giithiu
Ngô Khánh Hiu
44
S phát trinca các ng dng cah điukhin (15/27)
Mts vòng phát trin khác
(6/6)
Mô hình "Round-Tripping" caBooch
Lptrình hng đi tng không phi là mt mô hình phát trin đúng ngha cah
điukhin. Nó đc nói đn đây ch yu nh vào c ch "encapsulation" và c ch
"polymorphisme", cho phép gim đáng k tính phctp (complexité) và gia tng kh
nng tái s dng (réutilisabilité) cachng trình.
"A gauche, nous voyons que les
diagrammes UML sont utilisés
pour l’analyse et la conception
d’un système, tandis qu’à droite le
langage Java est utilisé pour
l’implémentation. Le code Java est
généré à partir des diagrammes
UML, et le «feedback» des
changements de code est renvoyé
aux diagrammes UML."
Các h thigianthc–Giithiu
Ngô Khánh Hiu
45
S phát trinca các ng dng cah điukhin (16/27)
Vòng phát trin "Logiciel/Matériel" c đin
(1/3)
"En informatique industrielle, on parle d’un système temps réel lorsque ce système
informatique contrôle un procédé physique à une vitesse adaptée à l’évolution du
procédé contrôlé. Ce système doit réagir continuellement à des événements en
provenance du procédé contrôlé avec des contraintes temporelles dont le respect est
aussi important que l’exactitude du résultat. Une réaction ne respectant pas son
échéance pourrait causer une catastrophe humaine et financière. Un tel système
comporte deux parties fondamentales: le matériel et le logiciel. Le matériel est la partie
physique (le microprocesseur, la carte d’acquisition, le convertisseur A/D ou D/A, etc.)
permettant de piloter le procédé et de recueillir des informations en provenance de ce
dernier. Le logiciel est un ensemble des éléments informatiques assurant le
fonctionnement du procédé contrôlé. Une part significative du développement d’un
système temps réel consiste à décider des composants matériels et des composants
logiciels du système, ainsi que du choix de quelles parties peuvent être implémentées
comme des logiciels s’exécutant sur des composants programmables et lesquelles
peuvent être implémentées sur des matériels spécifiques."
24
Các h thigianthc–Giithiu
Ngô Khánh Hiu
46
S phát trinca các ng dng cah điukhin (17/27)
Vòng phát trin "Logiciel/Matériel" c đin
(2/3)
Các h thigianthc–Giithiu
Ngô Khánh Hiu
47
S phát trinca các ng dng cah điukhin (18/27)
Vòng phát trin "Logiciel/Matériel" c đin
(3/3)
"L’approche développement
«Matériel/Logiciel» traditionnelle est
une approche très répandue dans le
monde des systèmes embarqués temps
réel. En séparant un tel système en une
partie matérielle et une partie logicielle,
l’approche traditionnelle donne une vue
claire de l’architecture opérationnelle
d’un système temps réel."
"La lacune de l’interaction entre le matériel et le logiciel dans l’approche
traditionnelle peut causer des influences imprévues sur le temps acquis pour
le développement d’un système au point de la livraison («time-to-market»)."
25
Các h thigianthc–Giithiu
Ngô Khánh Hiu
48
S phát trinca các ng dng cah điukhin (18/27)
Vòng phát trin "Logiciel/Matériel en Co-design"
(1/5)
“Logiciel/Matériel en Co-design" nhn mnh s gp nhau cacácmctiêucah
bng cách khai thác s đng thun (synergie) caphn cng (matériel) và phn mm
(logiciel) nh vào quá trình thit k đng thica chúng (conception concurrente).
"Un développement va commencer
avec une notation abstraite telle que
chaque composante ou module est
indépendant(e) de sa réalisation
finale en matérielle ou en logicielle.
Puis, la séparation des composantes
matérielles/logicielles peut être
effectuée de manière la plus
appropriée. L’intégration
«Matériel/Logiciel» est ensuite
complétée par un ensemble des
instructions permettant des tests et
des co-simulations."
Các h thigianthc–Giithiu
Ngô Khánh Hiu
49
S phát trinca các ng dng cah điukhin (19/27)
Vòng phát trin "Logiciel/Matériel en Co-design"
(2/5)
“Logiciel/Matériel en Co-design" thích hp
cho các ng dng mà đó các yêu cu thit
k có th thay điliêntcvàyu t "time-to-
market" nh hng rt ln đn s thành
công cathit k.
“Logiciel/Matériel en Co-design" phát
trindatrênnn "communication
synchrone dirigée par événements".
S mô t v chc nng cah đcth hin
didng các "graphes orientés", gi là các
CFSMS (Co-design Finite State Machine).
"Un CFSM interprète un ensemble d’entrées en un ensemble de sorties avec un nombre fini
d‘états internes. Mais, contrairement à un FSM traditionnel, un CFSM ne change pas tous ses
états exactement en même temps. La communication entre des CFSMs est réalisée par des
événements unidirectionnels, non zéro et sans bornes de temps (asynchrone globalement)."