
BÀI T P TH C HÀNHẬ Ự
Môn TKPMHĐT
---
Bài th c hành s 02: Class Designự ố
1. T o project m i trên EA, thêm m t Class Diagram tên là Association Class đ l pạ ớ ộ ể ậ
l c đ sau:ượ ồ
class Association Class
SinhVien
- ID: string
- ten: string
HocPhan
- CourseID: string
- ten: string
KetQua
- diem: double
3..10 0..*
2. L p s đ l p cho các l p (trong logical view) nh hình v sau (l u ý l p tr uậ ơ ồ ớ ớ ư ẽ ư ớ ừ
t ng, các ph ng th c thu n o và vi c k th a):ượ ươ ứ ầ ả ệ ế ừ
class Logical View
Hi nh
# ten: string
+ chuvi() : double
+ dientich() : double
+ docten() : string
+ ganten(string) : void
Diem
- x: double
- y: double
ChuNhat
# d: double
# r: double
+ chuvi() : double
+ dientich() : double
Tam Giac
# a: double
# b: double
# c: double
+ chuvi() : double
+ dientich() : double
Vuong
1
#m_diem
1..*

3. S d ng ch c năng Transformation đ chuy n toàn b l c đ trên thành mô hìnhử ụ ứ ể ể ộ ượ ồ
l p c a các ngôn ng khác nhau (C#, Java, …). L c đ l p trên Java thu đ cớ ủ ữ ượ ồ ớ ượ
nh sau:ư
class Logical View
ChuNhat
# d: double
# r: double
+ chuvi() : double
+ dientich() : double
Diem
- x: double
- y: double
Hi nh
# ten: string
+ chuvi() : double
+ dientich() : double
+ docten() : string
+ ganten(string) : void
«property get»
+ getdiem() : Diem
«property set»
+ setdiem(Diem) : void
TamGiac
# a: double
# b: double
# c: double
+ chuvi() : double
+ dientich() : double
Vuong
1
#m_diem
1..*
4. Dùng ch c năng Generate Code đ sinh mã cho các l p trên (các t p tin .java), l uứ ể ớ ậ ư
vào m t th m c riêng.ộ ư ụ

5. M t p tin HINH.java đ đi u ch nh l i m t s n i dung nh sau (thay đ i nh ngở ậ ể ề ỉ ạ ộ ố ộ ư ổ ở ữ
dòng tô đ ):ỏ
public abstract class Hinh {
protected string ten;
protected Diem m_diem[];
public Hinh(){
}
public void finalize() throws Throwable {
}
public abstract double chuvi();
public abstract double dientich();
public string docten(){
return "";
}
/**
*
* @param t
*/
public void ganten(string t){
}
public Diem[] getdiem(){
return m_diem;
}
/**
*
* @param newVal
*/
public void setdiem(Diem newVal[]){
m_diem = newVal;
}
}

6. Dùng ch c năng Synchonize đ c p nh t l i mô hình t code (Reverseứ ể ậ ậ ạ ừ
Engineering) cho l c đ l p Java trên.ượ ồ ớ
K t qu thu đ c nh hình sau:ế ả ượ ư
class Logical View
ChuNhat
# d: double
# r: double
+ ChuNhat()
+ chuvi() : double
+ dientich() : double
+ finalize() : void
Diem
- x: double
- y: double
+ Diem()
+ finalize() : void
Hi nh
# m_diem: Diem ([])
# ten: string
+ chuvi() : double
+ dientich() : double
+ docten() : string
+ finalize() : void
+ ganten(string) : void
+ Hinh()
«property get»
+ getdiem() : Diem[]
«property set»
+ setdiem(Diem[]) : void
TamGiac
# a: double
# b: double
# c: double
+ chuvi() : double
+ dientich() : double
+ finalize() : void
+ TamGiac()
Vuong
+ finalize() : void
+ Vuong()
1
#m_diem
1..*

7. Dùng ch c năng Export đ xu t toàn b l c đ trên (d i d ng Java) ra d ng XMIứ ể ấ ộ ượ ồ ướ ạ ạ
(t p tin XML), l u vào m t v trí nào đó. Sau đó m m t Project m i Import l i t p tinậ ư ộ ị ở ộ ớ ạ ậ
này đ đ a mô hình này tr vào.ể ư ở