Upload
lipengfei1122
View
313
Download
0
Embed Size (px)
Citation preview
UML ����UML ����
UML - 1 -UML - 1 -
��������1. ��
1.1��1.2UML��1.3UML��1.4UML��1.5UML�� 1.6UML���1.7UML��1.8��
2. ���2.1����2.2���������2.3���������2.4��2.5��
3. ��
UML - 2 -UML - 2 -
3. ��3.1���3.2��������3.3��������3.4�������3.5���3.6��
4. ���4.1��4.2 !�������4.3 !���"����4.4 !��4.5 #��
5. �5.1��5.2$%�������5.3$%�������
��������5.4&'()*�+,-�5.5$%��5.6$%� !�./"0�5.7#��
6. ���6.112��6.212�346.312�������6.412�567896.5:;���:&<�126.6=>���:?@ABCD�E6.7#�
7. ��7.178��7.278��7.378��
UML - 3 -UML - 3 -
7.378��7.478F�7.578#�
8. ���8.1GH��8.2GH�������8.3GH�������8.4GH���8.5��
9. ���9.1IJ��9.2IJ�������9.3IJ�������9.4IJ���9.5�KIJ�GH9.6��
��
1.1.����1.1.����1.1 ��
����UML1.5������ ��������������������UML��� ���!"#��$�%&'()*+
1.2 UML��1.2.1 UML��
UML (Unified Modeling Language),-.�/0123456789:8�;<=�>? @ABCD�AE,FG��HIJ�,KL0123M�N UMLOPQRUML>P UMLSTUVWXY (1) UML��ZUML�>PCD[\]^�_>P`ab7cd+�efghi
jkS�lUmn�op
UML - 4 -
jkS�lUmn�op (2) UML���ZUMLSTUOPUMLqrSTU�,\]^s\]tu[Av
wxqr y�>U,I6=�45g9: 1.2.2 UML��������(Things)ZUML��Kz{���|}�~u��S��Y�/�(Relationships)Z)I������I_7�(Diagrams )Z~�� )I�;<ST
1.1.����1.1.����1.3 UML
UML��4���Z������� ��� � ��1.3.1 ����Z UML����XY�CD��s��|}�QR����Z
������������������������������� !�"#$%�&'()*+�,�-.���/0���1��2�3�*+���4506�78�7�0#�&90�:�;<�*+����7=�>?@&$AB�#����C�D?@��> !
UML - 5 -
���C�D?@��> !E"&FGHIJKL3IMNOIP5QR9S�TU���VW
1.3.2 ���ZUML��G�XY�CD���� ���,���XYZ[\�0�����]1�^_�*+&`a^_I:�;<Ibc��������8d2@efghijL��klm�no;<
1.3.3 ����Z UML����XY�CD����J���p !�qr��st
1.3.4 ����Z UML����XY�A����K|}����������� !u�vw8x �yz{K
1.1.����1.1.����1.4 UML��
1.4.1��|}(dependency)9~6��]1�����&�=06��(����)�eV�&��j�E06��(|}��)���
1.4.2����(association)90�����&��.06�����GE06�����1���
1.4.3����(generalization)90���/0������$���9�-�����
1.4.4��
UML - 6 -
1.4.4��XY(realization)9� ]1�����&�=�06� �,/�E06� ������v
1.1.����1.1.����1.5 UML����
1.5.1 ��( Use Case Diagram )
� 3��9�3� ¡���7[\&93�k\¢£���7[\�¤¥�&3�9�7=�06[\z
UML - 7 -
� �����7=��¦o���§¨,��7=��&5©�]1���ª��I|}I«+Q&��¬��i#��(������)
� ��9��=®¯�q�&��=��° !8�±Z6�8G����
1.5.2 ��(Class Diagram)
Line
Draw ()
Rectangle
Draw ()
GroupGraphics
Draw ()Add(g : Graphics)Remove(g : Graphics)GetChild(index : int)
Graphics
Dra w()Add(g : Gra phics)Remo ve(g : Graphics)GetChild(index : int)
+children
1.1.����1.1.����1.5 UML����
1.5.3 ��( Object Diagram )
� ���9���X�&²³´3G��µ¶���·¸�°¹�§�º@±���»©��¼6��X�&½§9X¾��
UML - 8 -
1.5.4 ���(Sequence Diagram)
� ¿;�»©��]1�:o+���&�ÀÁ��]1^_�Â�¿;&�D»©��]1�d2
� ¿;��063Ã93¯5©3�=��¿;�Ä��063��D&¿;�=�ÅÆ^_�L/06���8ÇÈnoÉB�Ê���
1.1.����1.1.����1.5 UML����
1.5.5 ��(Collaboration Diagram)
� Ë������1�Ë���&Ë��Ì¿;��Í&»©��1�:o+����λ©J_dB"&Ë��Ï»©���a�¹]1���Ð
� Ë���063Ã95©06����XY
UML - 9 -
1.5.6 ���(State Chart Diagram)
� no�906���k$\lm�k�mÑ�¤¥��no�����Ò6noÓcÔÕno�ÉB�r
Available Locked Sold
����
assigned to subscription
lock
time out
unlock
buy
��
exchange
�� ���
1.1.����1.1.����1.5 UML����
1.5.7 !(Activity Diagram)
� Ö:�9no��06VW&3¯����×Ø�Ù�ÚÑ=`a�Ö:
� Ö:���/0�¿;�8Û��Ö:
UML - 10 -
1.5.8 ���(Component Diagram)
� ����7���ܤ¥—��'�ÝL3�Þ�z —Ï�¬Ò��]1�|}��&�ßàáÔÕ|}��¯âã��7���äåæ�7$\ç¯��j
1.1.����1.1.����1.5 UML����
1.5.9 "#(Deployment Diagram)
#èé���ê±ëºX�S�C���X��ìí�ëº90�C�îï&ªã×sIðñ8?òó�Ô6é�ôõöâ÷�øîï÷
1.6 UML����
UML - 11 -
�� ���
����
BD
FD/DD
�� ���
��� ����
��� ��� ��������
1.1.����1.1.����1.7 UML����
NewClass
Interface
� � ������������������������ �� ! �"# � !$�%�&'(��%)*���+,� -�$�%./ 01�2��3�4�56789,�:;�<=�>?@A'B��%CDEF �GH:IJG�KL@A./ 12GM-�NO3�PB�-Q*��� �R.S�TU�BVWX 1 !$�% �&�%./GYZ[\]^_(`ab�VWcde f@A�gB��Xh
NewProcessor
state
NewPackage
UML - 12 -
usecaseclass
suspend()flush()
ij � ��k�cd� !lk� �mno��%pq&rq��'( ��sOKL��tuv�w(xyz G�s{wy�s|"./�}&_K~�_K �
UML�����w��� ��t������r�� ���r 0t������ ����������r�� ����������ractor
componet
1. 1. ����1. 1. ����1.8� ùúû
1IUML=0ü�ý����¹93��I��I���I¿;�IË��Ino�IÖ:�I���I#è�2I3��9�Ñ;þ ¡¯���7�[\3I��9���7=��¦o��&���9���7=��:o��4IÖ:�no�3¯���7�:o�5IË���063Ã95©06����XY
��û6I�@�����=��~�$�2�ÉB��
UML - 13 -
6I�@�����=��~�$�2�ÉB��(a) ¿;� (b)Ë�� (c)Ö:� (d) no�
7I��Õ�$3±BD�(a)3�� (b)��� (c)�� (d)¿;�
� �1.�� 2.�� 3.�� 4.�� 5.�� 6. (a)(b) 7.(a)(c)(d)
2.1 �����2.2.������2.2.������
���� �� UML��@�7"#G�7�cd2��8��(ªE06ã×s�780Õ$C��uÑ)��¹�����9�1.FGH9 �(role)½§9�W��&�45/FGH@G�7�d��áÑ=k��� ��k�@�7
2.2 ��������
² 3��9��FGH�"#3�k\¢£���7[\�¤¥�� (�UMLF !"#)
² 3��<��7=�3��7"�FGH&Û»©6FGHFG/63����(8��È/63�)�
² 3��¼3±¦oܤ�($�9%)ܤ�&ܤ)�
UML - 14 -
FGH(Actor)
FGH9 � ½§9�W��&�45/FGH@G�7�d��áÑ=k��� ��k�@�7�X¾C�=&06X¾3�$\�L�7�¼6FGH�§��3��$�'�L±06FGH&�½45�0FGH�§�X��
2.FGH�"#3�(½§9i#)G�7�ed2�3&9��$��(�
3.@)��¿;�Q=�Y�*FGH+&G,-.��&/�W�4���&é�W01½,�
3�(Use Case)
�7"#$%�06�7[\z ��7�[\��7z k23&Ûàá0�<�7z G068¼6FGH]1dB�^_k54�5Ü63�&�78�3�93�:;�<=Ø>----“WAVE”?@(%AB)
2.2. ������2.2. �������� x �
FGHG3�]1���
��5©FGHG3�]1�d2&àJÃC�(���D8�3çDE�XF¯5©&ÔG�5©\H»©I5.�È3��9FGH�)
��DE�J�3�����3�&���3�KDE���3�T3����3�9L��&ªøMN��3�&T3�O§µPK��3�LQ���&§��RSZ�Æ�K���Û§�åVT3����
�include#
2.3 ����� ���
UML - 15 -
3�]1���
�
TUDE�J�3��TU�3�&�TU3�KDE���3�T3��TU3�9$��&ªøMNTU3�&§��j�T3��µP�KTU3�@0,Æ��V���&ÛW����åVT3����
FGH]1��� ��
��DE���*is a”DE�J��������90�����&��DE�0X45���0X&DE�J�0X450�0X���0X��/0�X���ÛYZ/6����
extend
2. 2. ������2. 2. ��������1 � ��������
��l>&ì¶$[&�ì� �[>��&\]^×&\]ì¶�_&`éga@FGH]1§?@�����01�&Ò6FGHFG3��01b9�l>FG3�[>��\]^×Kì¶$[FG3�\]ì¶�_K�ìFG3�`éga��±ì¶$[Gl>&ì¶$[G�ì]1�����?@&�cdì¶$[$�efl>�ì� �&O\HFGl>�ìFG�3��ÔG&ì¶$[O$�FG¶#463��/l>8H�ìg§\efì¶$[� �&
2.4 ��
UML - 16 -
¶#463��/l>8H�ìg§\efì¶$[� �&�O§\FG3�\]ì¶�_�
��2 �����������3��S�M9�hÃi�/jk�l§S�Lm¶#nÑ�opjkZl�:�@i��Å6qr(��Ú)=R��Y&§ZlO§�µri��st>$��usv,9wu�&§st§��ji��µr�
2.2.������2.2.��������3. ��������²FGH(actor)�clerk&`xþ&J3y()z&J_{²3�(use case)� Buy tickets& Buy Subscription&Make
charges& Survey sales
²FGHClerkFG(8��È)Buy ticketsBuy Subscription ~63�(����)�Ô~63����ÚR��Make
charges3�(����)�²�7��Buy tickets& Buy Subscription&Make charges&
Survey sales�r�²|�7$����Buy tickets& Buy Subscription&
���
Clerk
Buy tickets
Buy Subscription
���
<<include>>
<<include>>
Box Office
�� ��
UML - 17 -
²|�7$����Buy tickets& Buy Subscription&Make charges& Survey salesÔ²6[\�
²|�7$��J�3�(FGH)�clerk&`xþ&J3y()z&J_{���� ¡¢ Make charges £¤¥
Survey sales
�¦
2.2.������2.2.������1. ��������
(a) 1 (b) 2
(c) 3 (d) 4
2. ������(a) 1 (b) 2
(c) 3 (d) 4
3. 2�3 ������5�6�
2.5 ��
UML - 18 -
3. 2�3 ������5�6�(a) ����� (b) �����
4. 5���3���� !��(a) �� (b) "�
5. 4#$��2%1#$��5%(a) &'�"&' (b) "&'�&'
�����1�(a)(d) 2�(b)(c) 3�(b) 4�(b) 5�(b)
3.3.����3.3.����
P ersonn a m e : str in g
U seC om p u ter()
C om p u terc p u : strin gm em ory : str in g
ru n ()
3.2 �������3.2.1 �
3.1 ����� ���}~����(��I��)�a�]1���$���&��/Þ��7���&90�¦oܤXØ
� ��=�*�+G�J����=�*�+�-.9�L�&9�YX��=������
UML - 19 -UML - 19 -
3.2.1 �� �S���#&b9��I�������9LQ��� �ªø���&>Å06��RLQ�06��&E"Ï$�������J_&ª$%�I���¥IM��Q
� �ªø���&>Å06���R�06��&��$��J_�¬$%�IF����IF��¥IF�M����������¥Q
A c c o u n t- b a la n c e : d o u b le = 1
+ D e p o s i t (a m o u n t : d o u b le ) : in t+ C o m p u t e I n t e re s t ( ) : d o u b le
§¨©-ª«private+ª«public#ª«protected¬®¯°±²«³ ´µ¶·¸¹º»¼½¾¿ÀÁÂà ÄŶ·»½¾¿ÀÁÆÇ©»¼ ÈÉÊË
3.3.����3.3.����3.2 �������
3.2.2 ���0����*+&'�����.½��XY
3.2.3 ����§\�X����&0��N��06����
3.2.4 ����0�F����&@��Dp¤�F��,�§�����¥&�½�e§���
UML - 20 -UML - 20 -
Shape
(����)
Shape
+ Draw ()
(����)
()
Vehicle
- fMaxSpeed : float
+ Start() : int+ Stop() : int
*+,
T
Stack
size : int
Push(elem : T) : intPop() : intGetTop() : cons t T&
����
-.,
3.3.����3.3.����
UML���ÌÍÎÏÐÑÒÓÔÕÓ Ö×ØÙÚÛÜÝ*Þß à
1…* á1âãäâ1âÎåæ
1âãäâÎ
1âÎçè
1âãäâÎåClassDiagram
Class
+thing
+diagram
1.. *
1..*
use
1.. *
1..*
éêëìíî Ùïðñò àóôíõÏöÜÒÓ÷Úø3.3 ���� ���3.3.1 ��� ��/����]1������XJI��I �¼��QJ_�0���
����������~����À&b9«+G�+
UML - 21 -UML - 21 -
�/0��
Ø ������&�.06«*�PW��r#]1���10��
Ø ���À�«+&#PW�����efgh
UML���
UML���
Thing
ClassDiagram
Relation
����
�
�� �������������������������� ��
Class Association�!��
�
�"�#��$%�&'���������()* �#��+���
3.3.����3.3.����UML���
3.3.3 �����L±�c�]1���
UML��� �Circle,Rectangle!-�./Shape 01
S ha p e
+ D raw ()
Relation
Association Generalization Realization Dependency
�#,23,!-,456789��
Thing
Class Interface
�,./6789��
3.3.2 ���@�J��=0������&?@±��G��I�c�G�c�]1
UML - 22 -UML - 22 -
01C irc le
+ D ra w ()
R e c ta ng le
+ D ra rw ()
3.3.4 ������/06��V��|}±����e�j�01��¼�5Y��&�ª�,(bind)I� (friend)Q UML���
:;�Stack<T><=�>)� 01?IntStackù@AT"!B�CintD<�EFG�016HIint�C AJ
T
S t a c k
s i z e : i n t
P u s h (e l e m : T ) : i n tP o p ( ) : i n tG e t T o p () : c o n s t T &
In t S t a c k F l o a t S t a c k
< < b i n d > >< < b i n d > >
�Memento��OriginatorKL�MN45���OPOriginatorE�Memento Q��RstateO r i g i n a t o r
M e m e n t o
s t a t e : S t a t e *
< < fr ie n d > >
3.3.����3.3.����
V e h ic le{a b st ra c t }
- f M a x S p e e d : f lo a t
+++
S t a r t ( )S t o p ( )R u n ( f l o a t f S p e e d )
: i n t: i n t: i n t
3.4 ��������3.4.1 ����
UML - 23 -UML - 23 -
C++4 class Vehicle{public:virtual int Start() = 0;virtual int Stop() = 0;virtual int Run(float
fSpeed) = 0;private:float fMaxSpeed;
};
Java4 public abstract class Vehicle{public abstract int Start();public abstract int Stop();public abstract int Run(float fSpeed);
private float fMaxSpeed;}
3.3.����3.3.����3.4.2 �����
C++4 class Dialog{ private:Button btnOK;Button btnCancel;TextBox txtInfo;};class Button{};class TextBox
&'���STU-VDialog WX�Button�TextBox IY
T e x tB o xB u t to n
D i a lo g- b t n O K : B u t t o n- b t n C a n c e l : B u t t o n- t x t In fo : T e x t B o x
UML - 24 -UML - 24 -
class TextBox{};
3.4.3 �����
JavaSTpublic class SavingsAccount extends Account{ }
A c c o u n t
b a l a n c e : d o u b l e = 1
D e p o s i t ( a m o u n t : d o u b l e ) : i n tC o m p u t e I n t e r e s t ( ) : d o u b l e
S a v i n g s A c c o u n t
C o m p u t e I n t e r e s t ( ) : d o u b l e
C++STclass SavingsAccount : public Account{ };
3.3.����3.3.����
C++úûclass Shape{ public:virtual void Draw() = 0;};
class Circle : public Shape{public:void Draw();private üPoint ptCenter;
Javaúûpublic interface Shape{ public abstract void Draw();}
public class Circle implements Shape{public void Draw();
private Point ptCenter;private int nRadius;
S ha p e
+ D ra w ()
C ir c le
--
p tC e n te rn R a d iu s
: P o in t: in t
+ D r a w ()
R e c ta n g le
---
p t U p p e r L e ftn W id t hn H e ig h t
: P o in t: in t: in t
+ D r a r w ()
�C++Z[\]�E�^Y�S_./�E�23��S_!-���JavaZ[\]��)* �`a
3.4.4 ������
UML - 25 -UML - 25 -
Point ptCenter;int nRadius;};
}�JavaZ[\]��)* �`ainterface,implements
3.4.5 ������
�,|}
T
S ta c k- s i z e : i n t
+ P u s h ( e le m : T ) : i n t+ P o p ( ) : i n t+ G e tT o p ( ) : c o n s t T &
In tS t a c k F lo a tS t a c k
< < b i n d > > < < b i n d > >
C++úûtemplate<typename T>class Stack{ private:int size;public:int Push(T elem);int Pop();const T& GetTop();};
typedef Stack<float> FloatStack;
C++úû(ýþÿ��)class FloatStack{ private:int size;public:int Push(float elem);int Pop();const float& GetTop();};
3.3.����3.3.����
Graphics: bc���&'�� d��ef�G���gh 01�iDraw?+ef�j��&'��klm
Graphics
Dra w()Add(g : Gra phics)R emo ve(g : Graphics )
3.5 ��3.5.1 �����
¡���¢ó0�R��0ÕTU��&ª�FI£�Q&3�$��c´3TU��¤�&�$�pTU���+@0È5Ü¥¦��
¡ªø§b�¨TU���+��&�´4 V©¥¦&½W¼�01�3�7ªH90G�
¡�+¤�$�3���X�«>~���
UML - 26 -UML - 26 -
gh 01�iDraw?+ef�j��&'��klm�� 01�iAdd,Remove
Line,Rectangle: bc���GroupGraphics: &'����"d��&'���no�O&'G���IY(bc���&'��)
Line
Dr aw ()
R ectan gle
Dr aw ()
Gr oupGr aphics
Dr aw ()Add(g : Gr a ph ics)R em ov e(g : Gr a ph ics)GetChild(in dex : in t)
R emo ve(g : Graphics )GetC hild( index : int)
+children
23
&'�+¤�
3.3.����3.3.����3.5.2 �����
@3�¬:��áÑ=&àá®Ò63�aFGH©����®3���áÑ=��¯��J���°>ðã���&¯�3��±ëðã������
�p\qrsOtuv�wxBuy tickets: yvz{Buy Subscription: y|{Make charges: }�~��
��� Clerk
Buy tickets
Buy Subscription�����Make charges �Survey sales
� �<<include>>
<<include>>Ú�Box OfficeíõCustomer
kjosk
���
��
UML - 27 -UML - 27 -
SubscriptionSeries
series : intIndividualReservation
Ticket
no : int
3..6
0..1
3..6
0..1
1
0..1
1
0..1
Reservation
date : Date
name : stringphone : string
1..*
1
1..*
1
Seat
no : intcolomn : introw : intavailable : bool
1 11 1
Performance
no : intdate : Datetime : Time
0..* 10..* 1
CreditCardService
Charge(cardnumber, cost)
kjosk
ShowAvailability(seatlist)DemandPayment(cost)PrintTickets(performance, seats)EjectCard()
BoxOffice
Request(count, performance)Select(seats)InsertCard(cardnumber, password)Authorized()
��÷Ú��íõ������â��Ý������� !"ÎÏç#Ý$%
3. 3. ����3. 3. ����
(1)������� ��� Menu,MenuItem � MenuItem,Command� Command,OpenCommand� Command,PasteCommand
(2)OpenCommand�PasteCommand������ &'� 23� �'� ���
C o m m a n d
+ E x e c u t e ( )
O p e n C o m m a n d
+ E x e c u t e ( )
P a s t e C o m m a n d
+ E x e c u t e ()
M e n u I t e m- c o m m a n d : C o m m a n d *
+ C l i c k ( )
1 . . *
0 . . *
1 . . *
+ e x e c u t i v e0 . . *
M e n u
+ A d d ( i t e m : M e n u I t e m )
(3)����(EditMenu)�������������� !"#$����
3.6 ��¡ ²���/³z(Menu)I³z�(MenuItem)I��f´�(Command)�Wf´�(OpenCommand& PasteCommand)]1���&µr1-4û
UML - 28 -UML - 28 -
(3)����(EditMenu)�������������� !"#$����
(4)���%&'(C++)()*+�,-MenuItem� !�
E d it M e n u
M e n u
+ A d d ( i t e m : M e n u I t e m )
�
M e n u
+ A d d ( i t e m : M e n u I t e m )
E d it M e n u
�E d it M e n u
M e n u
+ A d d ( i t e m : M e n u I t e m )
�
Menu
+ Add(item : MenuItem)
EditMenu
class MenuItem{private:virtual void Click() =0;public:Command* command;};
�
class MenuItem{public:virtual void Click() = 0;private:Command* command;};
�
class MenuItem{private:virtual void Click() = 0;void undo();public:Command* command;}; �
class menuitem{public:virtual void Click() = 0;private:Command* command;};
�
3.3.����3.3.����¡.� !"�/)0(Graphics)123(Segment)14/(Rectangle)15
(Point)�675(Point3D)�����895-7:(5)������;<��,=>��# �23 �!- �45
(6)��-�,?@ABCD�EFG� !��HIJ� 0...* �1 �0...* �1
(7)���%&'(Java)()*+�,-Segment� !public class Segment implements Graphics public class Segment extends Graphics
Graphics
+ D raw ()
S eg m en t
--
ptS ta rtptE n d
: P oin t: P oin t
+ D raw ()
Rectan g le
---
ptU pperL eftn W idthn H eig h t
: P oin t: in t: in t
+ D rarw ()
P oint
--
xy
: in t: in t
+ D raw ()
P oin t3 D
---
xyz
: in t: in t: in t
+ D raw ()
�
��
�
UML - 29 -UML - 29 -
{privatc void Draw();public Point ptStart;public Point ptEnd;} & {
public void Draw();private Point ptStart;private Point ptEnd;} '
public class Segment implements Graphics{private Point ptStart;private Point ptEnd;public void Draw();} ( public class segment implements graphics
{public void Draw();private Point ptStart;private Point ptEnd;} )
4.4.��4.4.��4.1 4.1 �
² ¿;�3¯5©3�=��¿;�Ä��063��D&¿;�=�ÅÆ^_�L/06���8nos=ÇÈÉB����
² ¿;�U©��]1�d2&ÔÕd29�@qr83����Ú=�e��¿;��±:oܤ�² ¿;���º@^_;<S&�O9-&��^_9ªµ@��1�Âc¶��5©/��]1·Â^_�D1¿;�
² ¸¹¿;��XØ9��S��º���1dB�^_�4.2 4.2 ����������*+,- ./ 0UML - 30 -UML - 30 -UML - 30 -
123 245674589:;<=>?@AB?C(1D?E0FG)HIJ KL0@MNOP2LQRS@IJHIJ@TUVWP XYZ[\]RIJ89, _,`abRacdH;ed fgNhi@jdTUIJkLQ\@lmno(p:qrst@uv IJ@wx
)yzjd-{IJ@|;ed}Huv~� uv?���IJ@;ed����IJ;ed@��TUH�����KLk0\�O�a�QH
4.4.��4.4.��4.3 4.3 ������������
UML - 31 -UML - 31 -UML - 31 -
4.4.��4.4.��4.4 4.4 �������� ����������������� �������������� ¡¢£� ¤¥¦§�¨©ª��«¬®¯°±²����:operation (parameter list) ��vIY���!B��7��� �� 01��7������ IYG�� 8voperation�wx
UML - 32 -UML - 32 -UML - 32 -
³���´��µ³��´���¶·¸¹�º» ³��¼½¾¿À����º» ��ÁÂÃÄųƴÇ�È·ÉÊ �º»1
�º»2¶Ë¸Á �º»
2
�º»3¶Ë¸ÁÌÍÎÏÐÑÒÓÔÎÕÖÓÔÎ×ØÙÚÛÓÔÜÝÞ
4.4.��4.4.�������
}��ßà×á âÖãäå �y�E7\æ�çè X
Kjosk9\@é>R
Show Available (seat-list)Demand Payment (cost)printtickets (performance, seats)eject card
Box Office\@é>R
Request (count, performance)Select SeatsInsert Card (Card Number)authorized
Credit Card Service9\@é>R
charge(card number, cost)
UML - 33 -UML - 33 -UML - 33 -
��7���{pv�w �������}��"�{� ¡¢��pv�w £¤�������pv�w ¥�{�"}���}�~¦§¨E���©¤ }ª«�������� IY(}�� Kjosk ��{� Box Office�}�~¦§ Credit Card Service )�¬®���¯°�
}���Request (count, performance)��±�{��U²���{�� Request (count, performance)01�³´µ¶· }���{��Show Available(seat-list)��±}���U²��}���� Show Available(seat-list)01�±·�� ¸¹U�
4. 4. ��4. 4. ��
� � � �
�
�
�
1 ��»�=�FGH¼A½ B¾ C¿ DÀ2 Õ9��¼A½ B¾¿À C À DÁÂÃÄÅÆ3 Server�Á3/CreditService�=�Çp��¼Aà BÄ C ÃÄ DÄÅ
4.5 ���
UML - 34 -UML - 34 -UML - 34 -
�
�
1. A 2. B 3. B
5.1 5.1 �5.5.������5.5.������Ë��90�d2�&ÀÁ�9�Âc¶^_���]1��q��&´3Ë��¯-.�7�:o01�Ë��$���Ë���1�d2bc&»©��I��1�bc�a��1ªµ�Â^_�Ë��$�5©����XY�
5.2 5.2 �������������� x �@"º �·»¼01 IY�½¾�¿ÀÁ���¼8v01�
IY IY7� !w�½¾�¿�.Ã���"���� ¯°)h�ÄA c t o r
fi r s t b u t o n : b u t t o n
UML - 35 -UML - 35 -UML - 35 -UML - 35 -
IY IY7� !w�½¾�¿�.Ã���"���� ¯°)h�Ä°ÅVIYÆ�Ä°ÇV�Æ�
��È(É����Ê&Ë)
���²�� È��n�� �·º��.ú��ÊI��1Ìf������°�·�� �¬���ÍÎ�f��� Ï|��?Ä°Ç]7�� Æa�
fi r s t b u t o n : b u t t o n
�Ê
5.3 5.3 �������������� �� ����
Ð.�®Ñ³U²Ð.�Ð.U²ÒvIYgÓ8v���¹�IY$%Ô@"º"IY$%
5.5.������5.5.������5.45.4 �� !�����Format: [��] [��] � ��� [����=] ���
²�������� � ��� ��…�� � ‘/’
(������ !�"#$%&'(���)�*+� ����,-../�1.1a� 1.1b/)
²�������� [�01] 23��0145�6789:;�!��<��=> /�[x>=0]
² ���?��������=@A�����BC����*DE����F?GHIJ>/�x:=calc ( n )
² KL$@AMN������1.1a 1.1b 1.1c / [x>=0] 1.2 *[i:=1..n] ê x := calc( n )
UML - 36 -UML - 36 -
1.1a ë1.1b ë1.1c / [x>=0] 1.2 *[i:=1..n] ê x := calc( n )
ÅÕ Ö×ÑØ �ÙUÚ� ÛÜÝ := ��Æ
5.5 5.5 ��������"#�$�OPQ?R�QS�=DETUV�WXP��Y$Z[\]^_�>
² R�Q`ab�=EWXP�c�dVR�(efdV)�Ygh3i�=TUV�jk>² OPQ`ab�=ETUV�jk(eflV)�YdVR�mnoR��pq>² OPQ?R�QrstXuv>
(wxOPQ?R�Q�yz�{I|}~�2)
5.6 5.6 ���1. �� �����
5.5.������5.5.������
actor�ÂPrint^_æComputer&Computer�ÂPrint^_æPrintServer&ªø�ÈsÉÊ&PrintServer�ÂPrint^_æprinter
��������
UML - 37 -
2.��������
: bu t t o n
: E le va t o r C o n t ro l
: Q u e u e : E le va t o r
:O rd e r{n e w }
: A c t o r
1 : G e t E le va t o r ( flo o r id )
1 . 1 * [ a l l q u e u e s ] : le n : = L e n g t h ()
1 . 3 : In vo k e ( jo b )
1 . 2 : C re a te ( )
2 : n e x t jo b : = G e t . jo b ( )
P u s h ( )
������ @"ºÞßIYàáâãIYäIYå1æÙàáIY
�������xÐ.
@"ºçèéêàá�ën�ìíîÞtÞß�ïàáðÚëñò óô��õ�àá�ì 01ö¼�àáâãIYO÷ø ù�ú´G� àá�n�ûü8vå1æÙýþ�� ��Ç���K8v1�ä�Í��ä�I*àá å1æÙ�.��æÙ�àáIYÍ� ¤�n� æÙ�ûü8v1�Í£¤�àá78v�¼IY��"� â㮫Í�£¤�
5.5.������5.5.������5.7 ����� {*DKL�����������>� �������������� � ������� ��������� ��� �������� ����������������������������� ������ ��� ������ ���� � ������� ��¡�¢��������£����������¢�¤¥¦��������������� ������ ��� ���������
UML - 38 -
� �����¤§¨����©��������� ��� �� ���� ��� ��� ��� ���� ����ª����«¬�������¢¥�¢®��������� � ��� ��� ���¯� �����
5.5.������5.5.������: bu t to n : E le va t o r
C o n tr o l: Q u e u e : E le va t o r :O rd e r{n e w }
: A c t o r
1 : G e t E le va t o r ( flo o r id )
1 . 1 * [ a l l q u e u e s ] : le n : = L e n g t h ( )
1 . 2 : C re a t e ( )
P u s h ( )
1 . 3 : In vo k e ( jo b )
���{Ty°±c�OPQ²³t´�R�Q�µ}~�>
UML - 39 -
2 : n e x t j ob : = G e t .j ob ( )
ËÐÌÍÎû� ÏÐÌ̽ÐÌÌÌÌ¾Ñ ¿Ñ ÀÒ ÁÐÓÐÌ̽Р¾Ð
���t���·�÷ø���vàá å1æÙýþ �� ��°�����������������������������������Ìf�����G©¤ 01����� �!�"��*W��v�G#� ù$����%& & � ��'( �)*�+���*+�(� ��'( �)*�+� ���&**���
6.1 �����6.1.1%&�
����������� !"#$%&�'()*+,-�.�/0"#� !1
6.1.2%&��'23Actor4546789:#�;<=>1?@A78BC1
6.2 ������
6.6. � ���6.6. � ���
UML - 40 -
6.2 ������6.2.1%&
���'(DE�FG��������HGI#J'K+�L�M��NOPQ0I#4RSQ0TU+JVWQ0"#1
6.2.2()XYDZH['(\]H['(�^Y1F[XYZ_BC@`abJcb"#de1�HG5f�+XYghDijkHGl,mn'(e�opqr� ��st1
��SÔÕÖ��&�Ô-.«±|noD&�78���×�Ù�(%$�Ö:5)
�� ÉØS·�Ê�ÉØ���54��ªøÉØSÙ·.��&>5©@ïno�i#Ö:��µÚ)Û:Ê�ÉØ
�� ÜÝno(06)
�� Þo($�¼6)
(��)[ �]/��
6.3 %&��������6.6. � ���6.6. � ���
UML - 41 -
���� �� ������ ußZ0noD���:� entry/action
���� àZ0noD���:� exit/action
���� ÇÈnoÉB8ÛáÉB&�D��06�W�:�&�¬ÇÈß�:���:�����ÉB
e(a:T)[exp]/action
���� ÇÈ06:����/§ÇÈno�åV8§ÇÈß�:�8��:����
e(a:T)[exp]/action
6.4 %&�*+,-.
6.5 (1) /0�%&���1234%&¶·¸¹Available¸¹Locked¸¹Sold¸¹
����¶·¸¹àAvailable¸¹
Available Locked Sold
���� assigned to subscription
lock
time out
unlock
buy ��
6.6. � ���6.6. � ���
UML - 42 -
¶·¸¹àAvailable¸¹º,»¼(lock)�AvailableàLocked»+¯½¾(buy)�LockedàSold»+¿À(unlock)�LockedàAvailable»+ÁÂ(time out)�LockedàAvailableÃÄÅÆ(assigned to)�AvailableàSolddzZº(exchang)�Ⱥ]hÉ�SoldàAvailable
unlock
exchange ��
���
(2)�� �����
noÉØ�áÑ
6.6. � ���6.6. � ���
UML - 43 -
�� !"#$%&'()*(SSN)+,-(PIN)./0123��456
��789:;<��:���(Initial state) ��������(Getting SSN)������(Getting PIN)� ��(Validating)����(Rejecting)��� (Final state)
ìíîï ðñ òóîïInitial state ôõö÷ø SSN Getting SSN
Getting SSN
ùúûtabù üýþùúÿ�
Getting SSNùútabù ü�ôõö÷øBIN Getting PIN��
Validating
Getting PIN
ùúûshift-tab
ù üýþ �* � Getting PINùú
shift-tabù ü�ôõö÷øSSN Getting SSN��
Validating
Validating
������ ü� �ô Final state������� üýþ���Rejecting
Rejecting
��Final state�� ü�����
SSNüPIN Getting SSN
�������������
6.7 ������������
����
���� ����
����������
��
��
�� ��
����
�����
6.6. � ���6.6. � ���
UML - 44 -
��
(1) sKÊËQÌÍÎ$T¸¹�ÏÐÑ(a) âD (b) �4 (c) @ã0ä
(2) lÒ¸¹Ód¯uÔÕ____¸¹(a) Jã0ä�å (b) Sæno (c) Þo
Îû� (1) (c)(2) (a)
7.7.������7.7.������7.1 ,-� �
� ���7�:o��� ��Ö:no(ActionState)&Ö:no9�%)3��06��çè806��&§9éà���no�� Ö:�ê+��@��"#��Ê��01���7i#�ë¢��áÑKw>&no��ìí���� �ͱ·7��S�ÚÑ��� Ö:�$�3±�
%)ܤD&3±î�%)3�&��0�%)���áÑKðãD&�����ÚÑ�
7.2,-���
UML - 45 -
�� (ActionState) ���� !" (InitialState) ����#$%"(FinalState) ����%"
&'((ObjectFlowState) ��)*�+,�-.
/0-1(signalSending) ��234/0567/8���(3
9:-1(SignalReceipt)��2349:569:�-1���(3#$�
;<(SwimLane) ���=>?
7.7.������7.7.������7.3 �����
@A(transition) ���BCDE���#$
�F(junction point) GHI6JK� L�
�M(fork) N����OP/�
QR(join) N��P/��STQR
7.4 �����
UML - 46 -
7.4 �����1. ����U���VW�XYZ[\�]^� 2(1)� setup order(2)GHorder�_`a� bc��Fdsingle orderd� assign seatecharge credit cardsubscriptiondc�� assignseatsedebit accountf
award bonussingle orderDsubscriptionghOc�i (3) jkmail packetl
7.7.������7.7.������2. �������U�06ïÖ:ðñ(çò�)�q�«>óz3��Ö:�(¤¥=�Ö:ïðñ�q)�Ö:�ïðñ÷�3F�§�§ô(ò�)�
CustomerSalesStockroom
(1)õö�&()&Sales÷ñc¶,z&Û2d�Stockroom
(2) Stockroom«>,z&G,�D&Customermø&Û�Sales«Deliverorder�Customer�
UML - 47 -
7.7.������7.7.������7.5 �����1. mno��pq�����5r4st-1�a( )st&'(�a( )l
A B C D
2. �±²��Ö:�&���-Ø=§���9( )�A aPrinter:Printer9JK�B ��Ý�*ùÎúMû”Ö:Ý�
UML - 48 -
B ��Ý�*ùÎúMû”Ö:Ý�C @*5ÜPSM�””ùÎúMû”Ö:=�Â*print(file)”JK�
D JK�Â�XJ9�»�²�
=>?@1 C& B 2 C
8. 8. ������8. 8. ������Ö�Q�×عÙÚ�$�=Ö�ÛÜ�ÝÞsß�àÖ�)Váâjk�Q>Ö�Q4ÁTÖ�Váâjk�ÏÐ�ãäTkåÖ��æçèkåréê��ëì>
8.2 56��������5ruv wx �^
y6y6 z{|4O},�rZ~�y6u�(��4�Dictionary)����4�����9����l
9�9� �~O������ (��4�Spell-check)l�"�^��y6��X�^�1ka�y6�^�u
8.1 56� �
UML - 49 -
y6�^y6�^ �"�^��y6��X�^�1ka�y6�^�u�(��4�RoutingList)l
O},�rZ~����6��e�Uf�� �6�ONst� ��&'���H� l�"(node)a� ��rZ&'�s�X¡¢£¤¥l¦§m¨©ª3«~¬�(deployment diagram)”~�l
8.3 56��������{uv wx �^��{��{ y6�������l®¯{®¯{ y6®¯�~�����(°y6�9�)l
8. 8. ������8. 8. ������AB1.
�=�����9Dictionary�ü�|��J"23~6c�&'~6()Spell-checkýþ�ºISynonyms����
8.4 56��
UML - 50 -
�=*Plannerã9H+��J"2306*update�6+c�()��D&|���&"#c�2306*Reservations^,+()�
AB2.
8. 8. ������8. 8. ��������3
CDEFGHEFGH9:I���������� ���������� �������������� ���������������� ���� !����"#$%&�� ��'�����()�� **
CDAJGHAJGH9:I��������� �"#$�()�%&+,� ��'���()��
UML - 51 -
**…… ��'���()���()�� ()�
±²�d±²�d³´Xµ¶ON·2¸]-.¹[³�Oº9�»¶¼³´½³´¾§¶¿À·2»¶¼l±²Ád±²Ád´¶�µONGHÂÃnoÄ[Å»fXµÅ»f¾§Å»4��ÆLÇ»¶YÈ�LÉÅ»ÊË-]ÌÍÎ���FÏc��ÐÑÊ˶�H�Y�Ò¶OÓ��Ô4l
KL��
8. 8. ������8. 8. ������1. ���3±o�ܤ�¼A.:oܤ B.¦oܤ
2. 06��'\��,�E06��23�,�0�()�Ô�-Ø���¼A.�� B.��
3. ���3±���7=Ò�>#�]1�()�|}23���Ô�-Ø���¼A.�� B.��
4. ���=XFDE5©()�|}&�FDE5©()�23�Ô�-Ø���¼
8.5 ��
UML - 52 -
4. ���=XFDE5©()�|}&�FDE5©()�23�Ô�-Ø���¼A.�� B.��
Îû� �1.B 2.B 3.A 4.B
9. 9. ������9. 9. ������
9.2 78������������ x ��
�"]�ÕL§stÕL§4Ö�×���a�"�u� (��4�Joe’sMachine:PC) l�"�s�XØÙÒÚÛ�*Ü� ÀÝ�¡¢¤¥l
#è�3±¦oܤ&95©C�DáÑëº��I��X�a��������ªø��|}�����X�ÕÖ@§�ëºS&#èé�$�U©���áÑ=����#è��~�5Y���X�ä#è���ä#è�(�@)��X�=æ�)�
9.1 78� �
UML - 53 -
�"�" ¥l�"��¡¢ÞßÜ(ØÙàáâ`4�)µÝ¤¥f?£ãYZ¤¥ON]VWäf�^�sl�"åx�� �&'Üy6�^(��4�Plannery6�^)æç�èél
y6y6 {|4O},�rZ~�l
9�9� �~O�����l
y6�^y6�^ y6��X�^l
9. 9. ������9. 9. ���������� x ����{��{ y6������l (!"ÿ)
®¯{®¯{ y6®¯�~�����(°y6�9�)l
ê{ê{ ·-êl (!"#)
ëì{ëì{ &'�A�(�Xèé�8�Xèé)l
9.3 78��������
UML - 54 -
9.4 78����1 ���� �
X�ä#è���Òëº�¹]1�Óc�
U�=�J_GS���ä#è�=�iì9�2�L��
�=���9Ò6ëº]1?@�àJ���
9. 9. ������9. 9. ��������2 ���� �
�=�¬�Ò���ª��àJb��(§çDE��F)
TicketServe�()óGKioskJ_]1?@0�¼�àJ��KGSalesTerminal�Þ��?@0�¼�àJ��K|}��(çDE��F)
TicketSeller���|}J3ymø��
��ä#è�5©/�7=�ÒëºÅ6ëº������
UML - 55 -
�=õö��õö���0rª��õöàáê±Kioskëº�õöc� �u������&|õöc��������|}±«±TicketServerëºS����23�()&����µr���&��|}70ëºSJ3ymø��23�mø()���O��
TicketSeller���|}CreditCardChargesJ3ymø��TicketDB���O��23�()�
�"�"TicketServer(»¶��)��y6:CreditCardCharges/ManagerInterface/ TicketSeller/TicketDB
�"Kiosk(-.¹)��y6:CustomerInterface
SalesTerminal(Å»%í)��y6:ClerkInterface
9. 9. ������9. 9. ������9.5 �'78��56�
�íQ²Ö�Qt��ÖîÍÎ�Ö�ïÄðïÖ�ñ/ïÖ�òóôõö÷ïÖ�øùó�ôõ�ö÷>
�íQ²Ö�QÖ�Q�jk��íQ�úÖ�ñ/ûÖ�Q�úÖ�ÛÜ�+ü>�íQýò×ÏÐÖ�%þ^c�xd�¸¹�ÏÐEÖ��x���ûÖ�Qýò×ÏÐÖ�)VtXáâ����°jk>
UML - 56 -
9. 9. ������9. 9. ������1.#è�3±o�ܤ�¼A.:oܤ B.¦oܤ
2.#è�5Y��X�&���5Y���¥,��Ô�-Ø���¼A.�� B.��
3.#è�=06ëºX����Server:HostMachine&�=Server9_____&HostMachine9_____�A.ëº� B.ëº�¥
4.Òëº]1?@d�F�E5©�|}��&�?@dXFDE5©�()23���Ô�-Ø���¼A.�� B.��
9.6 ��
UML - 57 -
A.�� B.��5.“c�+5©_____�"23�()�A.�� B.ëº
Îû� �1.B 2.A 3.B&A 4.B 5.A
����WAVEWAVE��������WAVEWAVE����
1 What to do? (Not how to do.)2 Actor’s point of view?3 Value for the actor?4 Entire flow of events?
1 �/ÏÐEkå´Èµ���_$��µ>2 �/mná I²���^>(�´ÈoI²����kå���D&+ü�/,_$okå�����)>3 �/mn�I²�ôõr�����>
UML - 58 -
3 �/mn�I²�ôõr�����>4 �/ß³I²�mn�pkå��Á!c�@AMN����>
���� UMLUML���������������� UMLUML������������
UML - 59 -
���� UMLUML���������������� UMLUML������������1.�3�¬:UML��ܤL3——:�®#Doug RosenbergMKendall Scott NO%PQR�S&O200562.�UML��——·]��ܤ��y.��#(ã3�)Martin Fowler NOTUVWOXYZ[�S&O200563.�UML��I��û�——CatalysisXØ#Desmond Francis D’SouzaMAlan Cameron Wills NOXYZ[�S&O200464.�UML¤�L3#(ã2�)Craig Larman NO\]^_�S&O200465.���3�¤�#Steve AdolphO Paul Bramble NO`abWOXYZ[�S&O200366.�3�ܤ#OKurt Bittner NOcdWOXYZ[�S&O2003� 70áÑX3�J���®ðã#
UML - 60 -
7.�UML70áÑX3�J���®ðã#Jim ArlowOIla NeustadtO\]^_�S&O200368. �UML�Ô#Scott W. Ambler NOefgWOXYZ[�S&O200469. �UML3���#Grady BoochOIvar JacobsonNOhijkWO\]^_�S&O2001l6m610. �UMLF !"#Ivar JacobsonOJames Rumbaugh6nopOqrsW6\]^_�S&O20016
���� UMLUML�� !�� !���� UMLUML�� !�� !1. www.umlchina.com2. www.uml.org.com 3. www.rational.com4. www.uml.net.cn
UML - 61 -
t!uv BD FD DD
wBC $ $ % %�C % & $ $xyC % & $ $z�C & & & &{|C ' ' '
����"#$%�&"#$%�&UMLUML�'��'�����"#$%�&"#$%�&UMLUML�'��'�
UML - 62 -
{|C % ' ' '}�C % ' ' '��C % ' & &~�C % % & &��C & & ' ' �����
���� �!"��#�$��
���� UMLUML(��)*+(��)*+���� UMLUML(��)*+(��)*+
�������
�������
�����
�����
� ���
%&'(
BD
��������
UML - 63 -
�����
���
�
�� �
���
���
���
���������
��
FD/DD
��������