o_ Mã chương trình hướng đối tượng Định nghĩa các lớp và giao diện Định nghĩa các phương thức o Các biêu đồ lớp sẽ được chuyển sang mã chương trình định nghĩa các lớp tương ứng o Các
Trang 1
Nội dung
o Khái niệm cơ bản hướng đối tượng
o Biểu đồ ca sử dụng
© Thiết kế cầu trúc tĩnh
o Thiết kế câu trúc động
o Sinh mã
Sinh mã
o_ Chuyển các mô hình thiết kế sang mã chương trình
(C++, Java, .)
o_ Mã chương trình hướng đối tượng
Định nghĩa các lớp và giao diện Định nghĩa các phương thức
o Các biêu đồ lớp sẽ được chuyển sang mã
chương trình định nghĩa các lớp tương ứng
o Các biêu đồ tương tác sẽ được chuyển thành mã
chương trình định nghĩa các phương thức
o_ Các biểu đồ khác sẽ hỗ trợ cho quá trình mã hóa
Trang 2
Sinh mã
o Ví dụ: biểu đồ lớp
orderListe OneOrder contains >
I — quantity: Integer 1
— datePlaced + subtotal() : double — price : float
— clientID
+ total : double
145
+ getPrice() : float
Sinh ma
o Ma lop OneOrder
OneOrder
— quantity: Integer
+ subtotal() : double
public class OneOrder
{
public double subtotal ()
{
}
private int quantity;
Trang 3
Sinh mã
o Ma lop OneOrder
— quantity: Integer
+ subtotalQ : double
147
contains >
ok
1 AirPlane
— price : float
public class OneOrder
{
public double subtotal ()
{
}
private int quantity;
private AirPlane airPlane;
+ getPrice() : float
Sinh ma
o Mã lớp ListOfOrders
orderListe
1 *
1
ListOfOrders
— datePlaced
— clientID
+ totalQ : double
— quantity: Integer
+ subtotalQ : double
public class ListOfOrder
{
public double total() {
} private Date datePlaced;
private int clientID;
private Vector orderList;
Trang 4
o Biểu đồ cộng tác thực hiện phương thức
total()
1: totalO 2: *[f h] subtotal()
————>ˆ| :ListOfOrders — “ :OneOrder
3: saPios(|
:AirPlane
149
o6 Mã phương thức total()
1: totalQ 2 : *[for each] subtotal()
————
———-_ | :] is(OfOrders
3: saPioe0|
{
}
public double total()
:AirPlane
Trang 5
Sinh mã
o6 Mã phương thức total()
2: *[for each] subtotalQ
——> :OneOrder E
1: totalQ
———>_ | :| ¡s(OfOrders
public double total()
{
double sum = 0;
for (int 1=0; i<orderList.size(); itt)
sum += orderList.elementAt(i).subtotal();
return sum;
}
151
3: setPrice0|
:AirPlane
o Mã phương thức subTotal()
1: totalQ
———-_ | :] is(OfOrders
2 : *[for each] subtotal()
— | :OneOrder |
bublic double subtotal ()
{
return (quantity * airplane.getPrice());
}
3: setPrice0|
| :AirPlane |
Trang 6
© Sinh mã
o6 Mã phương thức getPrice()
1: totalO 2: *[f h] subtotal
_ ne [ino ronen | oracle a0 | :OneOrder |
pc float getPrice() C— 3: gotPrice0|
return price;
}
| :AirPlane |
153
© Công cụ
o Phan mém Rational Rose, Poisedon
for UML, Umbrello
Thiết kế các biéu d6 UML
Sinh mã chương trình
C++
Java
VB