Professional Documents
Culture Documents
Qui trnh cng ngh phn mm Cng ngh i tng l g Ngn ng m hnh ha thng nht UML Khi nim i tng phn tn M hnh COM/DCOM Lp trnh vi COM/DCOM
Ti liu: T ng ha ngy nay 5/04-8/04 (CD: \papers\ ) UML Reference Manual (CD:\UML\refman.pdf) Dr. GUI on COM and ATL (CD: \com-dcom\)
2005 - HMS
BI TON
GII PHP
TH GII THC
Phn tch
M HNH THIT K
2005 - HMS
2005 - HMS
2005 - HMS
Cc bc khc
M ha/ci t (Coding/Implementation): Th hin m hnh thit k bng mt ngn ng/cng c lp trnh c th Th nghim (Testing, Verification): Chy th, phn tch v kim chng:
Th n v (Unit Test) Th tch hp (Integration Test)
G ri (Debugging): Tm ra v sa cc li chng trnh chy (cc li logic) Xy dng ti liu (Documenting): Xy dng ti liu pht trin, ti liu hng dn s dng o to, chuyn giao Bo tr, bo dng
2005 - HMS
7
i tng l g?
M hnh/i din ca mt i tng vt l:
Tank, Heater, Furnace Motor, Pump, Valve Sensor, Thermometer, Flowmeter Control Loop, Control System
2005 - HMS
Mt i tng c...
Hnh vi
Cc thuc tnh (attributes) Trng thi (state) D liu Quan h Hnh vi (behavior) Cc php ton c tnh phn ng
2004, HONG MINH SN
t th sc khe
Cn cc Thuc tnh
Ch gi nh
2005 - HMS
10
a hnh/a x (polymorphism): gip phn nh trung thc th gii thc v nng cao tnh linh hot ca phn mm
2005 - HMS
11
Cng ngh i tng thnh phn phn tn Kin trc i tng phn tn (DCOM, CORBA)
2004, HONG MINH SN
Phn mm thnh phn (JavaBeans, ActiveX, VBX) PM module (Khi hm, Th vin ng)
Phng php lun hng i tng (Phng php lp trnh, m hnh ha, phn tch v thit k)
2005 - HMS
13
2005 - HMS
14
Mt m hnh tt cn n gin nhng th hin c cc c tnh quan trng cn quan tm ca th gii thc "Khng c m hnh no chnh xc, nhng c mt s m hnh c ch!"
2005 - HMS
15
M hnh lm g?
Tru tng ha (n gin ha) vn Phng tin giao tip trong nhm pht trin Phng tin giao tip gia nhm pht trin v khch hng Phng tin phn tch, thit k v kim chng Ti liu phn mm Cn mt ngn ng m hnh ha tt v mt phng php m hnh ha thch hp !
2005 - HMS
16
Th no l mt ngn ng m hnh ha tt
n gin, trc quan, d hiu, d xy dng ( ha) Kh nng biu din mnh (ton, vn bn, ha) Kh nng thc thi (my tnh, vn bn, ha my tnh) Linh hot, kh m Nht qun: cho sut qui trnh cng ngh phn mm Chun ha quc t
2005 - HMS
17
M hnh ha cu trc
Static view
Biu lp: class, interface, inheritance, association, ...
Implementation view
Biu thnh phn: component, package, module, ...
Deployment view
Biu phn b: node, processor, component,...
2004, HONG MINH SN
2005 - HMS
19
2005 - HMS
20
V d: H thng iu khin
Controller
w y Sensor
B z
-1
u Actuator
Process
2005 - HMS
21
Thermometer + getValue()
LevelIndicator + getValue()
2005 - HMS
22
2005 - HMS
23
<<active>> Controller
+output Actuator
Thermometer
+sensors *
ControlSystem
Valve
+plant <<friend>>
<<friend>>
Plant PT2
2005 - HMS
24
Generalization
Association
Dependency
Aggregation
2004, HONG MINH SN
Composition
2005 - HMS
25
Use case
Operator 1
Operator 2
Engineer
2005 - HMS
26
M hnh ha hnh vi
Hnh vi i tng:
Biu trng thi (Statecharts) Biu hnh ng (Activity diagramm)
2005 - HMS
27
2005 - HMS
28
Scaling
Calculate Error
Calculate Output
2004, HONG MINH SN
Time event? y
2005 - HMS
29
Tng tc i tng
1: call A 2: return B A 1: send B 2: send Event
A 1: send
2004, HONG MINH SN
B 2: callback
B 2: read File
1: write
System manager
2005 - HMS
30
Biu trnh t
Operator Start : Button click ( ) H/A : Button TempControl Loop : ControlSystem H/A-Indicator : LED SetpointInput : Slider TempCtrl : Controller setManual ( ) display (Yellow) setInput ( ) setValue (0 ) setpoint ( )
click ( )
start ( ) init ( )
setAutomatic ( )
Ta
2005 - HMS
31
Biu cng tc
3: display (Yellow) 10: display (Green) H/A-Indicator : LED TempControlLoop : ControlSystem 9: setAutomatic ( ) 8: init ( ) 11: process ( ) 2: setManual ( ) H/A : Button 1: click ( )
SetpointInput : Slider
Operator 4: setValue ( )
5: setpoint ( )
2005 - HMS
32
Tm tt
Use case v kch bn cho phn tch yu cu, phn tch h thng Biu lp cho thit k cu trc Biu tng tc cho thit k giao din v quan h tng tc gia cc i tng Biu trng thi cho thit k hnh vi i tng v thit k c th cc php ton Biu hnh ng cho thit k thut ton, chi tit thc thi php ton
2005 - HMS
33
2005 - HMS
34
// File A.h class A { int x; public: A(int y = 0) : x(y) {} int getX() const {return x; } void setX(int y) {x = y;} ... }; A obj(5);
// Prog1.cpp #include <conio.h> #include "A.h" void main() { obj.setX(6); while (!kbhit()) {} }
2005 - HMS
35
i tng phn tn l g?
i tng phn tn l cc i tng phn mm trong mt h thng phn tn, c kh nng giao tip ngm, c th s dng t xa (t mt chng trnh khc, t mt nt mng khc) Ging vi i tng c in
C nhng c tnh ca i tng c in (thuc tnh, php ton, hnh vi, trng thi, cn cc)
2005 - HMS
36
Mu thit k: Proxy
S dng i tng t xa thng qua mt i din (Proxy)
A
1: request ( ) 2: request ( )
B
proxy server
client
Client
Server request( )
server
Proxy request( )
... server->request()
2005 - HMS
37
B
4: op (params )
client
2: dispatch (datagram)
proxy
server
3: upcall(op_data)
broker_A
IPC
broker_B
Client
ServerBase + upcall()
+ dispatch()
//... extract operation data if (op_name == "op") op(params); else //... other operations
Server + op()
2005 - HMS
39
Mu thit k: Adapter
S dng mt i tng c sn thng qua giao din thch ng (Adapter)
Client Server op( )
old->old_op()
Adapter op( )
old
Adaptee old_op( )
class Adapter : public Server { Adaptee *old; public: void op() { old->old_op(); } ... };
2005 - HMS
40
B
4: upcall( )
5: op( )
client
proxy
2: dispatch ( )
adapter
3: dispatch ( )
server
broker_A
IPC
broker_B
2005 - HMS
41
// Client Program // Client.cpp #include <Proxy.h> void main() { Server_p *obj = NewObject("ServerID"); bool result = obj->op(); ... obj->DeleteObject(); } 2005 - HMS
42
2005 - HMS
43
Interface Pointer Interface Function Table pointer Pointer to Function1 Pointer to Function2 Pointer to Function3 ...
2004, HONG MINH SN
...
2005 - HMS
44
COM Engine
Component
COM Runtime
(Remote) Activation
Protocol Stack
Protocol Stack
CoCreateInstance()
SCM
DCOM networkprotocol
SCM
2005 - HMS
46
2005 - HMS
47
To mt i tng COM
nh ngha giao din v cn cc i tng bng IDL
/* COM-IDL */ [ object, uuid(793D8ABD-3E1B-11D3-A3E3-00A0C910AB98) ] interface ISensor : IUnknown { // Eigenschaften [propget] HRESULT status([out, retval] short *pVal); [propget] HRESULT rangeMin([out, retval] double *pVal); [propget] HRESULT rangeMax([out, retval] double *pVal); // Methoden HRESULT getValue([out, retval] double *pVal); // ... }; [ uuid(793D8ABE-3E1B-11D3-A3E3-00A0C910AB98) ] coclass Sensor { [default] interface ISensor; }; 2005 - HMS
48
Bin dch m thc thi i tng ng k vi h iu hnh Windows trn cc trm ci t v trm s dng
2005 - HMS
50
2005 - HMS
51