Äîêóìåíò âçÿò èç êýøà ïîèñêîâîé ìàøèíû. Àäðåñ îðèãèíàëüíîãî äîêóìåíòà : http://sp.cs.msu.ru/courses/ooap/exercise.pdf
Äàòà èçìåíåíèÿ: Fri Feb 13 20:17:44 2015
Äàòà èíäåêñèðîâàíèÿ: Sun Apr 10 00:07:18 2016
Êîäèðîâêà:

, UML Rational Rose «»


2


1. ............................................................................................. 3 .................................................................................................................................................................... 3 .................................................................................................................. 3 .............................................................................................................................................. 3 2. ................................................................................................................ 6 .................................................................................................................................................................... 6 ...................................................................................................................................... 6 .............................................................................................................................................. 6 3. .............................................................................................................................. 9 .................................................................................................................................................................. 10 ............................................................................................................................................... 10 ............................................................................................................................................ 10 4. ( ) ................................................................................. 12 .................................................................................................................................................................. 12 ....................................................................................................................................... 13 ............................................................................................................................................ 13 5. ( ) ............................................................. 15 .................................................................................................................................................................. 15 .................................................................................................................................................................. 15 ............................................................................................................................................ 15 6. ..................................................................................................................... 16 .................................................................................................................................................................. 16 .......................................................................................................................................... 16 ............................................................................................................................................ 16 7. ................................................................................................................ 18 .................................................................................................................................................................. 18 ............................................................................................................................................ 20 8. .................................................................................................................. 22 .................................................................................................................................................................. 22 ........................................................................................................................................ 22 ............................................................................................................................................ 22 9. Java-......................................................................................................................................... 23 ............................................................................................................................................ 23 10. ............................................................................................................ 24 ............................................................................................................................................ 24


3

1.
"!" - , . , : " ?" " , . , ." "", -- - " . , . . , , , ." Robertson's Cabinets, Inc. - , . . , , . . , 50 . - , , . , . -- , , . . " , . ." "." " Java, ?" " . , ?" ", ." " ? ". ", , . , . . ". " , ?" "". , , , , . , . , . , . Rational Rose , Java. Rose Java, . . . 1.
,

1. (Main) , . 2. Use Case ( ) . 3. " ". 4. 2 3, : , , , , 5. Actor ( ) . 6. ""


4

7. 5 6, : , ,







<< extend> >

. 1. .


1. " " . 2. Open Specification ( ). 3. Abstract (), .


1. Unidirectional Association ( ) " ". 2. , .


1. Dependency " " " ". . , " " " ". 2. " " " ". 3. Open Specification ( ). 4. extend (), .


5

5. <> .


1. 2. 3.

" ". : . .



1. 2. : - , . 3. .


1. " " OrderFlow.doc, : 1. " " . 2. " ". 3. , , . 4. . 5. . 2. " ". 3. Open Specification ( ) 4. . 5. Insert File ( ). 6. OpenFlow.doc Open (), . « » , .
,

1. 2. 3. 4.

. 2. , . " ". New -> Activity diagram ( ). «New Diagram» «». ( ).


6

5. State/Activity Model « » («Swimline»). «», ­ «». («» ­ , «» ). , . 6. Start State ( ) , . 7. Activity () : " ", " ", , , " ", . 8. State Transition () (). 9. End State ( ) , . 2.

2.
, , . , , , Robertson's Cabinets. . , . . " ", . . , . , . , . : 1. . 2. , . 3. , . " ". , . 5. , " ". . , , , , . .


1. 2. 3. 4. 1. 2. 3. 4.

Tools > Options ( > ). . Sequence Numbering, Collaboration Numbering Focus of Control . , . . New > Sequence Diagram. " ". , .




7

1. . . 2. Object (). 3. , . 4. «Order Options Form». 5. 3 4, : Order Detail Form, Order #1234 6. Order Options Form. 7. Open Specification. 8. New. . 9. OrderOptions ( ). 10. . . 11. OrderOptions. 12. , . Order Options Form : OrderOptions ( : OrderOptions). 13. 6 12: OrderDetail Order Detail; Order - Order #1234. , , , .


1. 2. 3. 4.

Object Message ( ). Order Options Form. , "Create" -- . 2 3, : # Open -- ( Order Options Form Order Detail Form) # SubmitInfo -- , ( OrderDetail) # Save -- ( OrderDetail) # Create -- ( Order Detail Form Order #1234) # SetInfo -- , ( Order Detail Form Order #1234). . 3.

:

Order Options Form : OrderOptions

Order Detail Form : OrderDetail

Order #1234 : Order

1: Create( )

2: Open( )

3: SubmitInfo( ) 4: Save( ) 5: Create( ) 6: SetInfo( )

. 3. .


8

. , OrderDetail , . , , .


1. 2. 3. 4. 5. 6. 1. 2. 3. 4. 5. 6.

Object. Order Detail Form Order #1234, . - Order Manager. Object. Order #1234. - Transaction Manager. 5 (Create). CTRL + D, . 1 2, : SetInfo Object Message. , 4 Order Detail Form Order Manager. SaveOrder ( ).



:

Order Options Form : OrderOptions 1: Create( )

Order Detail Form : OrderDetail

Order Manager : OrderMgr

Order #1234 : Order

Transaction Manager : TransactionMgr

2: Open( )

3: SubmitInfo( ) 4: Save( ) 5: SaveOrder( ) 6: Create( ) 7: SetInfo( )

8: SaveOrder( ) 9: GetInfo( ) 10: Commit( )

. 4. . 7. 4 - 6, : # Create ( ) - Order Manager Order #1234. # SetInfo ( , ) - Order Manager Order #1234. # SaveOrder ( ) - Order Manager Transaction Manager. # GetInfo ( ) - Transaction Manager Order #1234. 8. Message to Self ( ). 9. Transaction Manager 9, . Commit ( ). 10. : OrderMgr - Order Manager, TransactionMgr - Transaction Manager. 4.


9

1. 1 Create. 2. ( ). . 3. - Create (). 4. , . 5. 1. 6. Create(). 1 6, 2- 10-.


, Order #1234 Order Detail Form,

F5 . . 5.

10: Commit ( ) Order #1234 : Order

9: Get Info( ) Trans ac tion Manager : Trans ac tionMgr ) 6: Creat e( ) 8: SaveOrder( ) Order Manager : OrderMgr

7: Set Info(

Order Options Form : OrderOpt ions 2: Open( )

5: SaveOrder( ) Order Detail Form : OrderDet ail 1: Creat e( ) 3: SubmitInfo( ) 4: Save( )

:

. 5. .

3.
, . , .


10

, , . : " , ". ". ". Rose. . Entities (), Boundaries () Control (), . ; , ­ . . , " ".


1. Tools > Options ( > ). 2. . 3. , Show Stereotypes ( ). 4. , Show All Attributes ( ) Show All Operations ( ). 5. , Suppress Attributes ( ) Suppress Operations ( ).


1. 2. 3. 4.

. New > Package ( > ). Entities (). , Boundaries () Control ().
Boundaries

Cont rol

Ent it ies

. 6. .


1. , . 2. Entities . 3. Boundaries Control . 6.
, " "

1. .


11

2. New > Class Diagram ( > ). 3. VOPC Add New Order ( ). VOPC View of Participating Classes ( , ). 4. , . 5. (OrderOptions, OrderDetail, Order, OrderMgr TransactionMgr). 7.

OrderOptions Create() OrderDetail Open() SubmitInfo() Save() OrderMgr SaveOrder() Order Create() SetInfo() GetInfo() opname()

TransactionMgr SaveOrder() Commit()

. 7. VOPC Add New Order.


1. 2. 3. 4. 5. 6. 7. 8. 9.

OrderOptions . Open Specification ( ). Boundary. . OrderDetail . Open Specification ( ). Boundary. . . 1 - 4, OrderMgr TransactionMgr Control, Order Entity. 8.



1. 2. 3. 4. 1. 2. 3. 4. 5.





OrderOptions Boundaries. OrderDetail Boundaries. OrderMgr TransactionMgr Control. Order Entities.



Boundaries . New > Class Diagram ( > ). - Main (). , . OrderOptions OrderDetail.


12

6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.

. Entities . New > Class Diagram ( > ). - Main (). , . Order. . Control . New > Class Diagram ( > ). - Main (). , . OrderMgr TransactionMgr. .

<> OrderOptions <> OrderDetail Open() SubmitInfo() Save() Create()

<> OrderMgr SaveOrder()

<> Order Create() SetInfo() GetInfo() opname() <> TransactionMgr SaveOrder() Commit()

. 8. .

4. ( )
2 . . , . , . , " ", . Java, , . . , Order Order Number ( ) Customer Name ( ). . , , , Order.


13

, , 9.

:

Order Options Form : OrderOpt ions

Order Detail Form : OrderDet ail

Order Manager : OrderMgr

Order #1234 : Order

Book c as e : OrderIt em

Trans ac tion Manager : Trans ac tionMgr

1: Creat e( ) 2: Open( ) 3: SubmitInfo( ) 4: Save( ) 5: SaveOrder( ) 6: Creat e( ) 7: SetInfo( ) 8: Creat e( ) 9: SetInfo( ) 10: SaveOrder( ) 11: GetInfo( ) 12: GetInfo( ) 13: Commit ( )

. 9. . : " . , , ." " ". " ", , . " " , . , , " ", " ". , , Order. . " ". . , , . UML.


1. 2. 3. 4. 5. 6. 7. 8.

Tools > Options. Diagram. , Show Visibility . , Show Stereotypes . , Show Operation Signatures . , Show All Attributes Show All Operations . , Suppress Attributes Suppress Operations . Notation.


14

9. , Visibility as Icons .


1. 2. 3. 4. 5. 6. 7.

" ". , . Class . , . OrderItem (). Entity. Entities.



1. Order (). 2. New Attribute ( ). 3. OrderNumber : Integer () 4. Enter. 5. CustomerName : String (). 6. 4 5, OrderDate : java.util.Date () OrderFillDate : java.util.Date (). 7. OrderItem. 8. New Attribute ( ). 9. ItemID : Integer (). 10. Enter. 11. ItemDescription : String ().
OrderItem

1. 2. 3. 4. 5. 6. 7. 1. 2. 3. 4. Int 5.

OrderItem. New Operation ( ). Create. Enter. SetInfo Enter. GetInfo. Order, . , . Create(), : Create() : Boolean SetInfo(), : SetInfo(OrderNum : eger, Customer : String, OrderDate : java.util.Date, FillDate : java.util.Date) : Boolean GetInfo(), : GetInfo() : String





1. OrderItem. 2. , "+" . . 3. GetIInfo(), . 4. Return class ( ) String. 5. , . 6. SetInfo OrderItem, . 7. Return class Boolean. 8. Detail (). 9. , . 10. Insert. Rose argname. 11. , , ID. 12. Type, . Integer. 13. Default, . 0. 14. , . 15. Create() OrderItem, . 16. Return class Boolean.


15

17. , .


1. , Open() : Boolean SubmitInfo() : Boolean Save() : Boolean 2. , OrderOptions: Create() : Boolean 3. , SaveOrder(OrderID : Integer) : Boolean 4. , TransactionMgr: SaveOrder(OrderID : Integer) : Boolean Commit() : Integer

OrderDetail:

OrderMgr:

5. ( )
, " ". . , , . , . . . , " ".


1. " " 2. , . 3. , Unidirectional Association. , , 4 5. , . 4. Customize. 5. , Create A Unidirectional Association.


1. Unidirectional Association. 2. OrderOptions OrderDetail. 3. 1 2, : # OrderDetail OrderMgr # OrderMgr Order # OrderMgr TransactionMgr # TransactionMgr Order # TransactionMgr OrderItem # Order OrderItem 4. OrderOptions OrderDetail, OrderOptions. 5. Multiplicity > Zero or One. 6. . 7. Multiplicity > Zero or One. 8. 4 - 7, , 11.


16
<> Order OrderNumber : Integer Cus tomerName : St ring OrderDat e : Dat e OrderFillDat e : Dat e 1 0.. n Creat e() Set Info() Get Info() opname() 1

<> OrderOpt ions Creat e() 0.. 1 <> OrderMgr SaveOrder() 0.. 1 0.. 1 0.. n 0.. 1 <> 0.. 1 OrderDet ail Open() SubmitInfo() Save()

1.. n 0.. 1 <> Trans ac tionMgr SaveOrder() Commit () 0.. 1 <> OrderIt em It emID : Integer It emDes c ription : St ring 0.. n Creat e() Set Info() Get Info()

0.. 1

. 10. " ".

6.
Order. Order, , . . , , , , , , , , . , , Order. , . Order, 11.


1. Order. 2. Open State Diagram.


1. 2. 3. 4.





Start State ( ). . End State ( ). .



1. State (). 2. .


17

[ ] entry / Store Order Date do/ Collec t Cus t omer Info do/ Add Order It ems

ex it / Store Canc ellat ion Dat e

[ ] do/ Bill Cust omer

. 11. Order.


1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. On 11. 12. 13. 14. 1. 2. 3. 4.



State (). . Cancelled (). State (). . Filled (). State (). . Initialization (). State (). . Pending ( ).



Initialization (). Actions (). Insert (). . Store Order Date ( ). , When () On Entry ( ). 3 - 7, : # Collect Customer Info ( ), When Do # Add Order Items ( ), When Do , . Cancelled (). 2 - 7, Store Cancellation Data ( ), Exit ( ) , . Filled (). 2 - 7, Bill Customer ( ), Do. , . Transition (). . Initialization (). , :




18

# Initialization () Pending ( ) # Pending ( ) Filled () # Cancelled () # Cancelled () # Filled () 5. Transition to Self ( ). 6. Pending ( ).


1. Initialization () Pending ( ), . 2. Event () . 3. , . 4. , Cancel Order ( ) Cancelled (). 5. Pending ( ) Filled (), . 6. Event () . 7. Detail (). 8. Condition () No unfilled items remaining ( ). 9. , . 10. (Transition to Self) Pending ( ). 11. Event () . 12. Detail (). 13. Condition () Unfilled items remaining ( ). 14. , .

7.
. , " ". . , . Java, . 12 . .

Boundaries

Control

Ent ities

. 12. .


19
OrderItem

Order

. 13. Entities. 13 Entities. Entities . 14 Control. Control .
Trans ac tionMgr

OrderMgr

. 14. Control. , 15 Boundaries. . 16 . . .
OrderDet ail

OrderOpt ions


20

. 15. Boundaries.

Ord e rCl i e n tE xe

Ord e rOp ti o n s Ord e rDe ta i l

Ord e rM g r Ord e rS e rve rE xe

Ord e rIte m

Ord e r

T ra n sa cti o n M g r

. 16. .


1. 2. 3. 4.

. New > Package ( > ). Entities (). , Boundaries () Control ().



1. , . 2. Entities, Boundary Control .


1. 2. 3. 4.



Dependency (). Boundaries . Control. 1 - 3, Control Entities.



1. Entities , . 2. Package Specification ( ). 3. .


21

4. 5. 6. 7. 8. 9.

OrderItem. 2 - 4, Order. Dependency (). Order. OrderItem. : Boundaries: # OrderOptions # OrderDetail Boundaries: # OrderOptions OrderDetail Control: # OrderMgr # TransactionMgr Control: # OrderMgr TransactionMgr


1. 2. 3. 4. 1. 2. 3. 4. 5. 6. 7. 8.

. New > Component Diagram System. . , Entities, . Order Entities. . 2 3, OrderItem. : Boundaries: # OrderOptions # OrderDetail Control: # OrderMgr # TransactionMgr Task Specification ( ). OrderClientExe. 6 7 OrderServerExe.





. . 1. Dependency (). 2. OrderDetail. 3. OrderMgr. 4. 1 - 3, : # OrderMgr Order # TransactionMgr OrderItem # TransactionMgr Order # OrderClientExe OrderOptions # OrderServerExe OrderMgr


1. Order Entities. 2. Order . Order Order. 3. 1 - 3, : # OrderItem OrderItem # OrderOptions OrderOptions # OrderDetail OrderDetail


22

# OrderMgr OrderMgr # TransactionMgr TransactionMgr

8.
. . , . , , . . . 17.


1. , . 2. Processor (). 3. , . 4. " ". 5. 2 - 4, : # # 1 # 2 6. Device (). 7. , . 8. "".


1. 2. 3. 4.

Connection (). " ". " ". 1 - 3, : # " " " 1" # " " " 2" # " " ""


23



OrderServ erExe





1 OrderClientExe

2 ATMClientExe

. 17. .


1. 2. 3. 4.

" " . New > Process ( > ). OrderServerExe. 1 - 3, : # " 1" -- OrderClientExe # " 2" -- ATMClientEXE



1. " ". 2. Show Processes ( ). 3. 1 2, : # 1 # 2.

9. Java-
(Order Entry). Java . , 16. .
Java

1. . 2. . 3. Tools > Java > Generate Java . 4. classpath classpath, , , C:\Documents and classpath , Assign, 5. OK . .

. , Settings\student\ . , .


24

10.
Data Modeler. . «-» SQL. ­ , Order OrderItem . .
­ :

1. . 2. Data Modeler > New > Database. 3. DB_0 Target Oracle 9.x.
(persistent) :

1. 2. 3. 4. 5. 6. 7.

Order Entities. Detail. Persistence Persistent. OrderItem. Order , "+". orderID. Data Modeler > Part of Object Identity ( ).

:

1. Entities. 2. Data Modeler > Transform to Data Model. 3. Target Database DB_0 . Schemas. 4. Schemas <> 5. Data Modeler > New > Data Model Diagram. 6. , «-» -, <> S_0. . 18.
<> T_Order OrderNumber : NUMBER(10, 0) Cus tomerName : VARCHAR2(255) OrderDat e : DATE 1 OrderFillDat e : DA TE <> PK_T_Order6()

S_0. NewDiagram

<>

<
> T_OrderIt em It emID : NUMBER(10, 0) It emDes c ription : VARCHAR2(255) OrderNumber : NUMBER(10, 0) 1.. * <> PK_T_OrderIt em7() <> FK_T_OrderIt em3() <> TC_T_OrderItem7()

. 18. «-»
SQL:

1. 2. 3. 4. 5. 6.

<> S_0. Data Modeler > Forward Engineer. Forward Engineering Wizard Next. DDL Next. Next. .