Giáo trình Phân tích và thiết kế hướng đối tượng dùng UML
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Phân tích và thiết kế hướng đối tượng dùng UML", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- giao_trinh_phan_tich_va_thiet_ke_huong_doi_tuong_dung_uml.pdf
Nội dung text: Giáo trình Phân tích và thiết kế hướng đối tượng dùng UML
- SỐNG VỚI HỘI CHỨNG DOWN
- Trương Đai hoc Bach Khoa Tp. Hử̀ Chủ Minh Khoa Cửng Nghù Thửng Tin Mửn hoc PHÂN TÍCH & THIẾT KẾ HƯỚNG ĐỐI TƯỢNG DÙNG UML Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT ĐHBach Khoa Tp.HCM Slide 1 Nửi dung mửn hoc 1. n lai 1 s ́ khai ni m cơ ban cua hương ₫ ́i tương, cac ng n ngư hương ₫ ́i tương thương dung, cơ ch ́ dịch cac type/class sang ng n ngư c ̉ ₫i ̉n (ng n ngư may). 2. n lai qui tr nh phat tri ̉n ph ̀n m ̀m hơp nh ́t. 3. n lai ng n ngư UML ₫ươc dung ₫ ̉ mi u ta cac artifacts cua qui tr nh phat tri ̉n ph ̀n m ̀m hơp nh ́t. 4. Giơi thi u cac m ̃u thi ́t k ́ hương ₫ ́i tương ₫ươc dung ph ̉ bi ́n trong cac ưng dung hi n hanh va cac ưng dung tương lai. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT ĐHBach Khoa Tp.HCM Slide 2 1
- Tai liùu tham khao chủnh [1] The Unified Software Development Process, Ivar Jacabson, Grady Booch, James Rumbaugh, Addison-Wesley, 1999. [2] Software Engineering - A practitioner's approach, R.S. Pressman, McGraw-Hill, 1997 [3] Design Patterns, Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Addison-Wesley, 1998. [4] OMG Unified Modeling Language Specification, version 1.3, Object Management Group (www.omg.org), 1999 [5] UML Toolkit, Hans-Erik Eriksson & Magnus Penker, 1998 [6] Object-Oriented Software Engineering, A Use-Case Driven Approach, I. Jacobson, ACM Press/Addison-Wesley, 1992 [7] Object-Oriented Analysis and Design with Applications, G. Booch, The Benjamin Cummings Publishing Company, 1994 Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT ĐHBach Khoa Tp.HCM Slide 3 Trương Đai hoc Bach Khoa Tp. Hử̀ Chủ Minh Khoa Cửng Nghù Thửng Tin Chương 1 CAC KHAI NIẽMCƠ BAN CUA Mệ HềNH HƯƠNG ĐệI TƯƠNG Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 4 2
- Nửi dung 1.1 Tư lờp trũnh co cờ́u truc ₫ù́n OOP 1.2 Đử́i tương, thuửc tủnh, tac vu. 1.3 Abstract type va class. 1.4 Tủnh bao ₫ong. 1.5 Tủnh thưakù́ va cơ chù́ 'override'. 1.6 Tủnh bao gửp. 1.7 Thửng ₫iùp, tủnh ₫a hũnh va kiù̉m tra kiù̉u. 1.8 Tủnh tử̉ng quat hoa. 1.9 Tủnh vưng bù̀n. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 5 Tư lờp trũnh co cờ́u truc ₫ù́n OOP 1. May t nh s ́ la thi ́t bị co th ̉ thưc hi n 1 s ́ hưu han cac chưc năng cơ ban (t p l nh), cơ ch ́ thưc hi n cac l nh la tư ₫ ng tư l nh ₫ ̀u cho ₫ ́n l nh cu ́i cung. Danh sach cac l nh ₫ươc thưc hi n nay ₫ươc goi la chương tr nh. 2. b ́t ky c ng vi c ngoai ₫ơi nao cung co th ̉ ₫ươc chia thanh tr nh tư nhi ̀u c ng vi c nho hơn. Tr nh tư cac c ng vi c nho nay ₫ươc goi la giai thu t giai quy ́t c ng vi c ngoai ₫ơi. M ̃i c ng vi c nho hơn cung co th ̉ ₫ươc chia nho nưa, ⇒ c ng vi c ngoai ₫ơi la 1 tr nh tư cac l nh may (chương tr nh). 3. v ́n ₫ ̀ m ́u ch ́t cua vi c dung may t nh giai quy ́t v ́n ₫ ̀ ngoai ₫ơi la l p tr nh. Cho ₫ ́n nay, l p tr nh la c ng vi c cua con ngươi (vơi sư trơ giup ngay cang nhi ̀u cua may t nh). 4. cac l nh cua chương tr nh (code) phai tham khao hoăc xư ly (truy xu ́t) th ng tin (dư li u). Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 6 3
- Tư lờp trũnh co cờ́u truc ₫ù́n OOP 5. Dư li u cua 1 chương tr nh co th ̉ r ́t nhi ̀u va ₫a dang. Đ ̉ truy xu ́t ₫ung 1 dư li u ta c ̀n : -t n nh n dang. -ki ̉u dư li u mi u ta c ́u truc dư li u. -t ̀m vưc truy xu ́t mi u ta giơi han khach hang truy xu ́tdư li u. 6. Chương tr nh c ̉ ₫i ̉n = giai thu t + dư li u. 7. Chương tr nh con (function, subroutine, ) cho phep c ́u truc chương tr nh, sư dung lai code 8. Chương tr nh c ̉ ₫i ̉n co c ́u truc ph n c ́p như sau : Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 7 Tư lờp trũnh co cờ́u truc ₫ù́n OOP Chương tr nh = c ́u truc dư li u + giai thu t module global data (package) local data entry 'start' of module local data of function Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 8 4
- Tư lờp trũnh co cờ́u truc ₫ù́n OOP Chương tr nh = t p cac ₫ ́i tương tương tac nhau ₫ ́i tương (object) local data entry of object local data of operation Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 9 Tử̉ng quat vù̀ hương ₫ử́i tương M h nh hương ₫ ́i tương giơi thi u 1 quan ₫i ̉m l p tr nh (va ph n t ch/thi ́t k ́) khac hăn so vơi trương phai c ̉ ₫i ̉n (co c ́u truc). Băt ₫ ̀u nhen nhom vao nhưng năm cu ́i 60s va ₫ ́n ₫ ̀u 90s th trơ n n r ́t ph ̉ bi ́n trong c ng nghi p ph ̀n m ̀m. Nhưng ng n ngư hương ₫ ́i tương ₫ ̀u ti n : Smalltalk, Eiffel. Sau ₫o xu ́t hi n th m : Object Pascal, C++, Java, C#, H nh thanh cac phương phap ph n t ch/thi ́t k ́ hương ₫ ́i tương. Va hi n nay ta co 1 qui tr nh phat tri ̉n ph ̀n m ̀m hơp nh ́t dưa tr n ng n ngư UML. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 10 5
- Đử́i tương (Object) ~ M h nh ₫ ́i tương quan ni m chương tr nh bao g ̀m cac ₫ ́i tương sinh s ́ng va tương tac vơi nhau. ~ Đ ́i tương bao g ̀m : thu c t nh (dư li u) : mang 1 gia trị nh ́t ₫ịnh tai tưng thơi ₫i ̉m. tac vu (operation) : thưc hi n 1 c ng vi c nao ₫o. Implementation (class) Interface (abstract type) Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 11 Kiù̉u trưu tương (Abstract type) ~ Abstract type (type) ₫ịnh nghĩa interface sư dung ₫ ́i tương. ~ Interface la t p cac entry ma b n ngoai co th ̉ giao ti ́p vơi ₫ ́i tương. ~ Dung signature ₫ ̉ ₫ịnh nghĩa m ̃i entry, Signature g ̀m : t n method (operation) danh sach ₫ ́i s ́ h nh thưc, m ̃i ₫ ́i s ́ ₫ươc ₫ăc ta bơi 3 thu c t nh : t n, type va chi ̀u chuy ̉n ₫ ng (IN, OUT, INOUT). ₫ăc ta chưc năng cua method (thương la chu th ch). ~ Dung abstract type (chư kh ng phai class) ₫ ̉ ₫ăc ta ki ̉u cho bi ́n, thu c t nh, tham s ́ h nh thưc. ~ User kh ng c ̀n quan t m ₫ ́n class (hi n thưc cu th ̉) cua ₫ ́i tương. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 12 6
- Class (Implementation) ~ Class ₫ịnh nghĩa chi ti ́t hi n thưc ₫ ́i tương : ₫ịnh nghĩa cac thu c t nh dư li u : gia trị cua t ́t ca thu c t nh xac ₫ịnh trang thai cua ₫ ́i tương. ki ̉u cua thu c t nh co th ̉ la type c ̉ ₫i ̉n hay abstract type, trong trương hơp sau thu c t nh chưa tham khao ₫ ́n ₫ ́i tương khac. coding cac method va cac internal function. ~ Định nghĩa cac method tao va xoa ₫ ́i tương. ~ Định nghĩa cac method constructor va destructor. ~ User kh ng c ̀n quan t n ₫ ́n class cua ₫ ́i tương. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 13 Vủ du vù̀ class trong Java class abstract HTMLObject { protected static final int LEFT = 0; protected static final int MIDDLE = 1; protected static final int RIGHT = 2; private int alignment = LEFT; protected Vector objects = null; HTMLObject( ){ // constructor objects = new Vector (5); } public void setAlignment( int algnmt ) { alignment = algnmt; } public int getAlignment( ) { return alignment; } public abstract String toHTML( ); // abstract operation } Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 14 7
- Tủnh bao ₫ong (encapsulation) z Bao ₫ong : che d ́u moi chi ti ́t hi n thưc cua ₫ ́i tương, kh ng cho b n ngoai th ́y va truy xu ́t ⇒ t nh ₫ c l p cao giưa cac ₫ ́i tương (hay t nh k ́t d nh - cohesion giưa cac ₫ ́i tương r ́t th ́p). che d ́u cac thu c t nh dư li u : n ́u c ̀n cho phep truy xu ́t 1 thu c t nh dư li u, ta tao 2 method get/set tương ưng ₫ ̉ giam sat vi c truy xu ́t va che d ́u chi ti ́t hi n thưc b n trong. che d ́u chi ti ́t hi n thưc cac method. che d ́u cac internal function va sư hi n thưc cua chung. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 15 Tủnh thưa kù́ (inheritance) ~ T nh thưa k ́ cho phep giam nhe c ng sưc ₫ịnh nghĩa type/class : ta co th ̉ ₫ịnh nghĩa cac type/class kh ng phai tư ₫ ̀u ma băng cach k ́ thưa type/class co săn, ta chỉ ₫ịnh nghĩa th m cac chi ti ́t mơi ma th i (thương kha t). Đa thưa k ́ hay ₫ơn thưa k ́. M ́i quan h supertype/subtype va superclass/subclass. co th ̉ override cac method cua class cha, k ́t qua override chỉ co nghĩa trong ₫ ́i tương class con. Đ ́i tương cua class con co th ̉ ₫ong vai tro cua ₫ ́i tương cha nhưng ngươc lai thương kh ng ₫ung. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 16 8
- Vủ du vù̀ thưa kù́ va override - Java class Geometry { public Draw(Graphics g); protected int xPos, yPos; protected double xScale, yScale; protected COLORREF color; }; class Line extends Geometry { int xPos2, yPos2; // other attributes public Draw(Graphics g) { // cac l nh ve ₫oan thăng } } Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 17 Tủnh bao gửp (aggregation) 1 ₫ ́i tương co th ̉ chưa nhi ̀u ₫ ́i tương khac tao n n m ́i quan h bao g p 1 cach ₫ qui giưa cac ₫ ́i tương. Co 2 goc nh n v ̀ t nh bao g p : ngư nghĩa va hi n thưc. Goc nh n ngư nghĩa Goc nh n hi n thưc O2 O O1 2 O1 O3 O3 Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 18 9
- Vủ du vù̀ bao gửp - C++ class Geometry { // abstract base class public: Geometry( ); ~Geometry( ); virtual void Draw( Window *pWnd ) = 0; // abstract operation protected: int xPos, yPos; double xScale, yScale; COLORREF color; }; class Group : public Geometry { public: Group( ); ~Group( ); virtual void Draw( Window *pWnd ); // override private: Geometry ppGeo; // pointer container int geoCount; }; Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 19 Thửng ₫iùp (Message) ~ Th ng ₫i p la 1 phep goi tac vu ₫ ́n 1 ₫ ́i tương tư 1 tham khao. ~ Th ng ₫i p bao g ̀m 3 ph ̀n : tham khao ₫ ́n ₫ ́i tương ₫ ch. t n tac vu mu ́n goi. danh sach tham s ́ thưc c ̀n truy ̀n theo (hay nh n v ̀ tư) tac vu. v du : aCircle.SetRadius (3); aCircle.Draw (pWnd); ~ Th ng ₫i p la phương ti n giao ti ́p (hay tương tac) duy nh ́t giưa cac ₫ ́i tương. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 20 10
- Tủnh ₫a xa (Polymorphism) ~ Cung 1 l nh gơi th ng ₫i p ₫ ́n ₫ ́i tương th ng qua cung 1 tham khao nhưng ơ vị tr /thơi ₫i ̉m khac nhau co th ̉ g y ra vi c thưc thi method khac nhau cua cac ₫ ́i tương khac nhau. T1 p1; // C1 va C2 la 2 class hi n thưc T1 p1 = New C1; // tao ₫ ́i tương C1, gan tham khaovaop1 p1.meth1( ); p1 = New C2; // tao ₫ ́i tương C2, gan tham khao vao p1 p1.meth1( ); L nh p1.meth1( ); ơ 2 vị tr khac nhau k ch hoat 2 method khac nhau cua 2 class khac nhau. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 21 Kiù̉m tra kiù̉u (type check) ~ Chăt va dung m ́i quan h 'conformity' (tương th ch t ̉ng quat). Type A tương th ch vơi type B ⇔ Achưa moi method cua B va ưng vơi tưng method cua B : t ̀n tai 1 method cung t n trong A. danh sach ₫ ́i s ́ cua 2 method tương ưng phai băng nhau. ki ̉u ₫ ́i s ́ OUT hay gia trị return cua method trong A phai tương th ch vơi ki ̉u cua ₫ ́i s ́ tương ưng trong B. ki ̉u ₫ ́i s ́ IN cua method trong B phai tương th ch vơi ki ̉u cua ₫ ́i s ́ tương ưng trong A. ki ̉u ₫ ́i s ́ INOUT cua method trong A phai trung vơi ki ̉u cua ₫ ́i s ́ tương ưng trong B. ệ quan h so trung hay quan h con/cha (sub/super) la trương hơp ₫ăc bi t cua quan h tương th ch t ̉ng quat. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 22 11
- Tủnh tử̉ng quat hoa (Generalization) ~ Co 2 ngư nghĩa khac nhau cua t nh t ̉ng quat hoa : class t ̉ng quat hoa cho phep san sinh tư ₫ ng cac class b nh thương, cac class b nh thương tư no chỉ co th ̉ tao ra ₫ ́i tương. Thương dung ngư nghĩa nay trong giai ₫oan l p tr nh. ngươc vơi t nh thưa k ́ : supertype/superclass la type/class t ̉ng quat hoa cua cac con cua no. Thương dung ngư nghĩa nay trong giai ₫oan ph n t ch/thi ́t k ́ ph ̀n m ̀m. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 23 Tủnh thương tru (persistence) ~ ₫ơi s ́ng cua 1 ₫ ́i tương ₫ c l p vơi ₫ơi s ́ng cua ph ̀n tư tao ra no. ₫ ́i tương phai t ̀n tai khi con t nh ́t 1 tham khao ₫ ́n no trong h th ́ng. ₫ ́i tương phai bị xoa khi kh ng con tham khao nao ₫ ́n no, v tai thơi ₫i ̉m nay ₫ ́i tương la rac. Vi c xac ₫ịnh ch nh xac 1 ₫ ́i tương co phai la rac hay kh ng la 1 vi c phưc tap code ưng dung kh ng ₫ươc phep lam, ₫ y la c ng vi c cua h th ́ng th ng qua module 'garbage collection'. vưng b ̀n kh ng phai la vĩnh hăng, mưc ₫ co th ̉ la 1 session cua may ao (JVM) hay l u dai (th ng qua ₫ĩa cưng, CDROM). Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 24 12
- Tử̉ng kù́t ~ M h nh hương ₫ ́i tương quan ni m th ́ giơi (hay chương tr nh) bao g ̀m cac ₫ ́i tương s ́ng chung va tương tac vơi nhau. ~ Cac ₫ăc ₫i ̉m ch nh cua hương ₫ ́i tương : Bao ₫ong : m ̃i ₫ ́i tương bao g ̀m dư li u va tac vu. Cac tac vu thi ́t l p n n hanh vi cua ₫ ́i tương. Cac ₫ ́i tương ₫ươc ph n loai băng class. Cac ₫ ́i tương tương tac vơi nhau băng cach gơi th ng ₫i p. giưa cac class/₫ ́i tương co th ̉ t ̀n tai quan h bao g p, thưa k ́, t ̉ng quat hoa. T nh ₫a h nh : k ́t qua cua sư ki ̉m tra ki ̉u dưa vao m ́i quan h 'conformity'. T nh vưng b ̀n : ₫ ́i tương t ̀n tai khi con t nh ́t 1 tham khao ₫ ́n no. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 25 Trương Đai hoc Bach Khoa Tp. Hử̀ Chủ Minh Khoa Cửng Nghù Thửng Tin Chương 2 THẹ DU Vẽ NGệN NGƯ OOP ) Visual C++ ) Java Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐHBach Khoa Tp.HCM Slide 26 13
- 2.1 Ngửn ngư Visual C++ 1. Chỉ hử̃ trơ khai niùm class. 2. Cho phep Đa thưa kù́. 3. Dung 'abstract class' ₫ù̉ ₫ịnh nghĩa interface. 4. Tờ̀m vưc truy xuờ́t cac thanh phờ̀n. 5. Đa hũnh co chon loc nhơ 'virtual function' 6. Chỉ hử̃ trơ cac ₫ử́i tương tam. 7. Override method khi thưa kù́. 8. Co thù̉ ₫ịnh nghĩa function overloaded. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐHBach Khoa Tp.HCM Slide 27 Chỉ hử̃ trơ khai niùm class 1. Dung class ₫ ̉ ₫ịnh nghĩa ki ̉u cho cac bi ́n, thu c t nh ⇒ ₫ ́i tương co th ̉ chưa v t ly ₫ ́i tương khac hay chưa tham khao ₫ ́n ₫ ́i tương khac. 2. Đa thưa k ́ trong ₫ịnh nghĩa class ⇒ 1 class co th ̉ chưa nhi ̀u class con trung nhau ⇒ dung "virtual base class" ₫ ̉ t ́i ưu hoa b nhơ ₫ ́i tương. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐHBach Khoa Tp.HCM Slide 28 14
- Class trưu tương (Abstract class) 3. H ̃ trơ khai ni m "abstract class" ₫ ̉ ₫ịnh nghĩa class chỉ chưa th ng tin interface nhưng kh ng cho phep dung class nay ₫ ̉ ₫ịnh nghĩa ki ̉u cho bi ́n hay thu c t nh. 1 abstract class la 1 class chưa t nh ́t 1 "pure virtual funtion". class Geometry { // abstract class public: Geometry( ); ~Geometry( ); virtual void Draw( Window *pWnd ) = 0; // pure virtual function protected: int xPos, yPos; double xScale, yScale; COLORREF color; }; Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐHBach Khoa Tp.HCM Slide 29 Tờ̀m vưc truy xuờ́t thanh viùn 4. T ̀m vưc truy xu ́t th ng tin trong ₫ ́i tương : private : th ng tin bị che d ́u hoan toan. protected : chỉ che d ́u b n ngoai nhưng cho phep cac ₫ ́i tương con, chau, chăt truy xu ́t. public : cho phep t ́t ca moi nơi truy xu ́t. Friend class : la class ma m ̃i function cua no ₫ ̀u co th ̉ truy xu ́t tư do m ̃i thanh ph ̀n cua class hi n tai. Friend function : la function co th ̉ truy xu ́t tư do m ̃i thanh ph ̀n cua class hi n tai. Co th ̉ han ch ́ t ̀m vưc cua thanh vi n cua class cha khi thưa k ́. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐHBach Khoa Tp.HCM Slide 30 15
- Hử̃ trơ tủnh ₫a hũnh co chon loc 5. Định nghĩa 'virtual function' n ́u mu ́n ap dung t nh ₫a h nh trong vi c gơi th ng bao y u c ̀u function nay thưc thi. T ́t ca cac 'virtual function' ₫ươc quan ly trong 1 danh sach "virtual function table". ₫ịa chỉ function 1 ₫ịa chỉ function 2 ₫ịa chỉ function 3 ₫ịa chỉ function i ₫ịa chỉ function n Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐHBach Khoa Tp.HCM Slide 31 Cac ₫ử́i tương ₫ù̀u tam thơi 6. Cac ₫ ́i tương chỉ t ̀n tai tam thơi trong kh ng gian process. Tham khao ₫ ́n ₫ ́i tương thưc ch ́t la pointer cuc b . chương tr nh phai tư vi ́t code cho hoat ₫ ng save/restore ₫ ́i tương n ́u mu ́n lưu giư/dung lai ₫ ́i tương. VC++ h ̃ trơ hoat ₫ ng save/restore ₫ ́i tương nhơ kha năng 'Serialization'. 7. Co quy ̀n 'override' b ́t ky toan tư hay function nao cua class cha. 8. Cho phep ₫ịnh nghĩa cac ham 'overloaded' : cung t n nhưng 'signature' khac nhau. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐHBach Khoa Tp.HCM Slide 32 16
- Skeleton ₫ịnh nghĩa class class Geometry : Object { // == class Geometry : public Object { public: Geometry( ); ~Geometry( ); virtual void Draw( Window *pWnd ); // virtual method BOOL IsDisplayed(void); protected: COLORREF color; private : int xPos, yPos; double xScale, yScale; }; class Point : Geometry {}; class Line : Geometry { }; class Polygon : Geometry { }; class Rectangle : Geometry { }; Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐHBach Khoa Tp.HCM Slide 33 Cờ́u truc 1 chương trũnh Dialog based ₫ơn gian InitInstance() DoModal() CProgramDlg CProgramApp Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐHBach Khoa Tp.HCM Slide 34 17
- Cờ́u truc 1 chương trũnh SDI ₫ơn gian InitInstance() CMainFrame CProgramView CProgramDoc CSingleDocTemplate CProgramApp Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐHBach Khoa Tp.HCM Slide 35 Cờ́u truc 1 chương trũnh MDI ₫ơn gian InitInstance() CChildFrame CProgramView CProgramDoc CMultiDocTemplate CProgramApp Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐHBach Khoa Tp.HCM Slide 36 18
- 2.2 Ngửn ngư Java 1. Hử̃ trơ 'interface' (1 dang cua type) va class. 2. Hử̃ trơ Đơn thưa kù́. 3. Dung 'abstract class' ₫ù̉ ₫ịnh nghĩa interface. 4. Tờ̀m vưc truy xuờ́t cac thanh phờ̀n. 5. Hử̃ trơ package 6. Đa hũnh ₫ờ̀y ₫u. 7. Chỉ hử̃ trơ ₫ử́i tương tam trong session JVM 8. Override function khi thưa kù́. 9. Co thù̉ ₫ịnh nghĩa function overloaded. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐHBach Khoa Tp.HCM Slide 37 Hử̃ trơ Class va Interface 1. Chu y ́u dung class ₫ ̉ ₫ịnh nghĩa ki ̉u cho cac bi ́n, thu c t nh. Co th ̉ dung interface ₫ ̉ ₫ịnh nghĩa ki ̉u cho cac bi ́n, thu c t nh. Đ ́itương chỉ co th ̉ chưa tham khao ₫ ́n ₫ ́i tương khac. 2. Phai goi ham tao ₫ ́i tương 1 cach tương minh, nhưng kh ng ₫ươc xoa ₫ ́i tương. class C1 extends RootClass { } C1 o1; // o1 chưa tham khao ₫ ́n ₫ ́i tương C1 o1 = New C1; 3. Interface chỉ ₫ươc dung trong trương hơp ₫ăc bi t va kh ng tương ₫ương vơi abstract type. 4. Đơn thưa k ́ trong ₫ịnh nghĩa class ⇒ m ́i quan h thưa k ́ giưa cac class kha ₫ơn gian. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐHBach Khoa Tp.HCM Slide 38 19
- Hử̃ trơ abstract class 5. H ̃ trơ khai ni m "abstract class" ₫ ̉ ₫ịnh nghĩa class chưa th ng tin interface va kh ng cho phep 'instanciate' ₫ ́i tương. Ban chỉ co th ̉ dung class 'abstract class' ₫ ̉ ₫ăc ta ki ̉u cho cac bi ́n hoăc ₫ịnh nghĩa cac class con. class abstract Geometry { // abstract class protected int xPos, yPos; protected double xScale, yScale; protected COLORREF color; public abstract Draw(Graphics g); // abstract function }; Abstract class co th ̉ chưa ₫ ̀y ₫u cac hi n thưc b n trong, nhưng thương chỉ co chưa cac 'abstract function'. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐHBach Khoa Tp.HCM Slide 39 Tờ̀m vưc truy xuờ́t cac thanh phờ̀n 6. T ̀m vưc truy xu ́t cac thanh ph ̀n trong ₫ ́i tương : private : thanh ph ̀n bị che d ́u hoan toan. protected : che d ́u b n ngoai nhưng cho phep cac ₫ ́i tương con, chau, chăt truy xu ́t. public : cho phep t ́t ca moi nơi truy xu ́t. friendly : cho phep moi ph ̀n tư trong package truy xu ́t. Đ y la t ̀m vưc default va kh ng co tư khoa t ̀m vưc tương minh. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐHBach Khoa Tp.HCM Slide 40 20
- Hử̃ trơ package 7. Package la ₫ơn vị quan ly t ̀m vưc cua java, co th ̉ chưa nhi ̀u class. package graphics; public class Circle extends Graphic implements Draggable { . . . } T ́t ca moi ph ̀n tư ₫ươc ₫ịnh nghĩa trong 1 file source ₫ ̀u thu c 1 package : t n ₫ươc qui ₫ịnh bơi phat bi ̉u package hay la package default. Nhi ̀u file source co th ̉ thu c cung 1package (dung cung t n trong phat bi ̉u package). Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐHBach Khoa Tp.HCM Slide 41 Hử̃ trơ ₫ờ̀y ₫u tủnh ₫a hũnh 8. T ́t ca cac public function ₫ươc quan ly trong 1 danh sach "public function table". ₫ịa chỉ function 1 ₫ịa chỉ function 2 ₫ịa chỉ function 3 ₫ịa chỉ function i ₫ịa chỉ function n Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐHBach Khoa Tp.HCM Slide 42 21
- Cac ₫ử́i tương ₫ù̀u 'tam thơi' 9. Cac ₫ ́i tương chỉ t ̀n tai tam thơi trong 1session chay JVM. Ban co th ̉ tao ra cac ₫ ́i tương mơi ma kh ng c ̀n xoa no. Đ ́i tương se t ̀n tai m t khi con tham khao ₫ ́n no. Module Garbage Collection trong JVM se chịu trach nhi m phat hi n ₫ ́i tương 'rac' va xoa no ra khoi b nhơ JVM. 10.Co quy ̀n 'override' b ́t ky function nao cua class cha. 11.Cho phep ₫ịnh nghĩa cac ham 'overloaded' : cung t n nhưng 'signature' khac nhau. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐHBach Khoa Tp.HCM Slide 43 Thủ du vù̀ chương trũnh Java import java.net.*; public class getnet { public static void main(String args[]) { try { if(args.length!=1) { System.out.println("Usage: java AddrLookupApp "); return; } InetAddress host = InetAddress.getByName(args[0]); String hostName = host.getHostName(); System.out.println ("Host name : "+hostName); System.out.println ("IP address:"+host.getHostAddress()); } catch (UnknownHostException e) { } } } Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐHBach Khoa Tp.HCM Slide 44 22
- Thủ du vù̀ chương trũnh Java GUIClock > AlarmClock 12.34.25 wakeup() Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐHBach Khoa Tp.HCM Slide 45 Thủ du vù̀ cac class Java public class AlarmClock { private static final int MAX_CAPACITY = 10; private static final int UNUSED = -1; private static final int NOROOM = -1; private Sleeper[] sleepers = new Sleeper[MAX_CAPACITY]; private long[] sleepFor = new long[MAX_CAPACITY]; public AlarmClock () { for (int i = 0; i < MAX_CAPACITY; i++) sleepFor[i] = UNUSED; } Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐHBach Khoa Tp.HCM Slide 46 23
- Thủ du vù̀ cac class Java public synchronized boolean letMeSleepFor(Sleeper s, long time) { int index = findNextSlot(); if (index == NOROOM) { return false; } else { sleepers[index] = s; sleepFor[index] = time; new AlarmThread(index).start(); return true; } } Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐHBach Khoa Tp.HCM Slide 47 Thủ du vù̀ cac class Java private synchronized int findNextSlot() { for (int i = 0; i < MAX_CAPACITY; i++) { if (sleepFor[i] == UNUSED) return i; } return NOROOM; } private synchronized void wakeUpSleeper(int sleeperIndex) { sleepers[sleeperIndex].wakeUp(); sleepers[sleeperIndex] = null; sleepFor[sleeperIndex] = UNUSED; } Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐHBach Khoa Tp.HCM Slide 48 24
- Thủ du vù̀ cac class Java private class AlarmThread extends Thread { int mySleeper; AlarmThread(int sleeperIndex) { super(); mySleeper = sleeperIndex; } public void run() { try { sleep(sleepFor[mySleeper]); } catch (InterruptedException e) {} wakeUpSleeper(mySleeper); } } } Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐHBach Khoa Tp.HCM Slide 49 Thủ du vù̀ cac class Java public interface Sleeper { public void wakeUp(); public long ONE_SECOND = 1000;// in milliseconds public long ONE_MINUTE = 60000; // in milliseconds } import java.applet.Applet; import java.awt.Graphics; import java.util.*; import java.text.DateFormat; public class GUIClock extends Applet implements Sleeper { private AlarmClock clock; public void init() { clock = new AlarmClock(); } Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐHBach Khoa Tp.HCM Slide 50 25
- Thủ du vù̀ cac class Java public void start() { clock.letMeSleepFor(this, 1000); } public void paint(Graphics g) { Calendar cal = Calendar.getInstance(); Date date = cal.getTime(); DateFormat dateFormatter = DateFormat.getTimeInstance(); g.drawString(dateFormatter.format(date), 5, 10); } public void wakeUp() { repaint(); clock.letMeSleepFor(this, 1000); } } Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 2: Th du v ̀ cac ng n ngư OOP ĐHBach Khoa Tp.HCM Slide 51 Trương Đai Hoc Bach Khoa Tp. HCM Khoa Cửng nghù Thửng tin Chương 3 NGUYẽN TẶC DỊCH OOP ) Dịch abstract type ) Dịch class Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 3: Nguy n tăc dịch OOP ĐHBach Khoa Tp.HCM Slide 52 26
- Tử̉ng quat vù̀ vờ́n ₫ù̀ dịch OOP •Chương tr nh la 1t p cac ₫ ́i tương s ́ng va tương tac l ̃n nhau. •Cac ₫ ́i tương thu c1s ́ loai nh ́t ₫ịnh (n) •M ̃i loai ₫ ́i tương ₫ươc mi u ta bơi 1 type + 1 class •Chương tr nh la t pn₫ịnh nghĩa type + class •Dịch chương tr nh OOP la vong lăp dịch n type + n class. •Ta se mi u ta qui tr nh dịch 1 type va 1 class Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 3: Nguy n tăc dịch OOP ĐHBach Khoa Tp.HCM Slide 53 Dịch 1 abstract type • Abstract type chỉ chưa th ng tin trưu tương (interface), kh ng mi u ta sư hi n thưc → K ́t qua vi c dịch 1 type chỉ dưng lai c y ngư nghĩa cuatype tương ưng ₫ ̉ phuc vu vi c ki ̉m tra ki ̉u, chư kh ng tao code ma may. •Chỉ c ̀n3bươc:duy t tư vưng, ph n t ch cu phap, ph n t ch ngư canh. •N n dung c ng cu h ̃ trơ như LEX, YACC. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 3: Nguy n tăc dịch OOP ĐHBach Khoa Tp.HCM Slide 54 27
- Dịch 1 class •Dịch class la c ng vi c ch nh cua chương tr nh dịch OOP. •G ̀m2c ng vi c ch nh : dịch thu c t nh dư li u va dịch cac method (hay cac internal function). •C ̀n ₫ ̀y ₫u cac bươc : duy t tư vưng, ph n t ch cu phap, ph n t ch ngư canh, tao ma. •N n dung c ng cu h ̃ trơ như LEX, YACC. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 3: Nguy n tăc dịch OOP ĐHBach Khoa Tp.HCM Slide 55 Dịch thuửc tủnh dư liùu typedef struct { • class → c ́u truc record // import cacfieldtư c ́u truc class C1 : C0 { // ₫ươc sinh ra tư C0 double d; int i ; // cac field tương ưng vơiC1 int C1_d; public : int C1_i; int proc4(int i); // cac field dư li u ₫i ̀u khi ̉n void proc5 (double d); // tư tao bơi chương tr nh dịch void (*pvfaddr)() ; }; } C1; Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 3: Nguy n tăc dịch OOP ĐHBach Khoa Tp.HCM Slide 56 28
- Dịch thuửc tủnh dư liùu(tt) •m ̃i class → 1 record c ̉ ₫i ̉n. •t n class → t n record. • copy cacfielddư li u cua c ́u truc sinh ra tư class cha. • chuy ̉n tưng thu c t nh cua class thanh tưng field cua record, 'tuy t ₫ ́i hoa' t n cua thu c t nh ₫ ̉ tranh nhăp nhăng. •th m cacfielddư li u ₫i ̀u khi ̉n phuc vu cho run-time : th du bang ₫ịa chỉ cac method cua ₫ ́i tương (pvftbl). Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 3: Nguy n tăc dịch OOP ĐHBach Khoa Tp.HCM Slide 57 Dịch thuửc tủnh dư liùu(tt) •c ́u trucrecord₫ươc dịch ra ma may thanh1vung nhơ li n tuc co ₫ dai băng ₫ dai cua record. - field C1 o1; C1_o1 db dup (sizeof(C1)) • truy xu ́t1thu c t nh dư li u trơ thanh vi c truy xu ́t nhơ dung cach ₫ịnh ₫ịa chỉ chỉ s ́ : - o1.i = 5; mov bx, C1_o1 mov [bx+4], 5 Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 3: Nguy n tăc dịch OOP ĐHBach Khoa Tp.HCM Slide 58 29
- Tao bang ₫ịa chỉ cacmethod pvftbl fname faddr class C1 : C0 { 0 "proc1" C0_proc1 int i ; double d; 1 "proc2" C1_proc2 2 "proc3" C0_proc3 public : int proc4(int i, double k); 3 "proc4" C1_proc4 void proc5 (double d); 4 "proc5" C1_proc5 }; 5 Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 3: Nguy n tăc dịch OOP ĐHBach Khoa Tp.HCM Slide 59 Tao bang ₫ịa chỉ cac method (tt) •tao bang ₫ịa chỉ g ̀m C1METHCNT ph ̀n tư (C1METHCNT la s ́ method cuaclasshi n hanh, k ̉ ca cac method thưa k ́. •m ̃i ph ̀n tư ₫ươc nh n dang qua chỉ s ́ va g ̀m2th ng tin ch nh : t n gơi nhơ cua method va ₫ịa chỉ cua method. • copy bang ₫ịa chỉ cua class cha ₫a co. •hi u chỉnh lai cac ₫ịa chỉ cua cac method bị override. •th m vao cac method mơi ₫ịnh nghĩa trong class hi n hanh. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 3: Nguy n tăc dịch OOP ĐHBach Khoa Tp.HCM Slide 60 30
- Dịch 1 method int C1_proc1(C1* p, int i, double d) { int C1::proc1(int i,double k) { C2 o2; C2 *p2; C2 o2; // truy xu ́t thu c t nh C2 *p2; p->C1_i = i; p->C1_d = d; C1::i = i; // goi ham d = k; C1_proc5(p,d); proc5(d); C2_proc2(&o2, i,d); o2.proc2(i,d); // gơi th ng bao:ki ̉m tra, load, p2 = New(C2); 1 // anh xa bang ₫ịa chỉ method p2->proc2(i,d); for (i = 0; i }; pvftbl[i].fname)==0) break; 3 (*pvftbl[i].faddr)(p2,i,d); }; Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 3: Nguy n tăc dịch OOP ĐHBach Khoa Tp.HCM Slide 61 Dịch 1 method (tt) •t n method ₫ươc chuy ̉n tư dang 'tương ₫ ́i' sang 'tuy t ₫ ́i' (n ́i k ́t t n class vao). •th m tham s ́ ₫ ̀u ti n cho ham sinh ra : mi u ta tham khao ₫ ́n ₫ ́i tương ma ham se truy xu ́t cac thu c t nh dư li u. •t n thu c t nh ₫ươc chuy ̉n tư dang 'tương ₫ ́i' sang 'tuy t ₫ ́i' (n ́i k ́t t n class vao). •goi ham internal → goi ham nhưng th m tham s ́ ₫ ̀u ti n. •gơi th ng bao3bươc: —ki ̉m tra, t m, load va anh xa bang ₫ịa chỉ cac method cua ₫ ́i tương. —t m chỉ s ́ cua method c ̀n goi trong bang (i). —goi gian ti ́p method th ng qua ₫ịa chỉ ph ̀n tư thư i trong bang. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 3: Nguy n tăc dịch OOP ĐHBach Khoa Tp.HCM Slide 62 31
- Tử́i ưu hoacodetao ra •co 2v ́n ₫ ̀ lơn trong qua tr nh dịch 1 class sang ng n ngư c ̉ ₫i ̉n. —bang ₫ịa chỉ method chi ́m nhi ̀u ch ̃. —t ́n thơi gian ₫ ̉ phuc vu l nh gơi th ng bao:ki ̉m tra, load va anh xa bang ₫ịa chỉ,t m chỉ s ́ method c ̀n goi va goi gian ti ́pqua₫ịa chỉ trong bang. •1s ́ chương tr nh dịch t m cach t ́i ưu hoa cac v ́n ₫ ̀ nay. • slide sau la cac t ́i ưu hoa cua chương tr nh dịch C++ va cai gia phai tra. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 3: Nguy n tăc dịch OOP ĐHBach Khoa Tp.HCM Slide 63 Tử́i ưu hoacodetao ra (tt) • trong C++, t ́t ca ₫ ́i tương ₫ ̀u tam thơi va găn chăt vao ưng dung → bang ₫ịa chỉ cac method cua cac ₫ ́i tương lu n năm săn trong kh ng gian cua ưng dung. •m ̃i l ̀n tao ₫ ́i tương, bi ́n pvftbl trong ₫ ́i tương ₫ươc gan ngay ₫ịa chỉ ₫ ̀u bang method → kh ng c ̀n lam bươc 1 cho m ̃i l ̀n gơi th ng bao. •C++chỉ dung m ́i quan h con/cha trong ki ̉m tra ki ̉u → c ng vi c2₫ươc lam tai thơi ₫i ̉m dịch thay v tai thơi ₫i ̉m gơi th ng bao trong luc chay. •c t t n gơi nhơ method kh ng c ̀n phai lưu trư trong bang ₫ịa chỉ cac method. •chỉ co cac virtual function mơi ₫ươc giai quy ́t theo cơ ch ́ ₫a h nh, con cac function khac ₫ươc dịch ra lơi goi trưc ti ́p. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 3: Nguy n tăc dịch OOP ĐHBach Khoa Tp.HCM Slide 64 32
- Tử́i ưu hoacodetao ra (tt) •cai gia phai tra cua vi c t ́i ưu hoa trong C++ : —ngươi l p tr nh phai tư quy ́t ₫ịnh method nao c ̀n xư ly theo cơ ch ́ ₫a h nh, ham nao kh ng?N ́u sư quy ́t ₫ịnh nay sai th se g y l ̃i khi chay, ma la ngươi th kho long quy ́t ₫ịnh ch nh xac. —t nh ₫a h nh chỉ ₫ung giưa cac ₫ ́i tương co m ́i quan h con/cha, ơ ₫o thư tư cac ₫ịa chỉ method cua moi class con trong bang ₫ịa chỉ lu n gi ́ng thư tư cac method tương ưng cua class cha, tuy nhi n giưa2 classb ́t ky th kh ng th ̉ ₫am bao → ki ̉m tra ki ̉u trong C++ kh ng th ̉ n ng c ́p l n băng cach dung m ́i quan h "conformity". Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 3: Nguy n tăc dịch OOP ĐHBach Khoa Tp.HCM Slide 65 Trương Đai Hoc Bach Khoa Tp. HCM Khoa Cửng nghù Thửng tin Chương 4 QUI TRềNH HƠP NHấT & UML ) Qui trũnh phat triù̉n phờ̀n mù̀m hơp nhờ́t ) Tử̉ng quat vù̀ ngửn ngư mử hũnh UML Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 4: UML & Qui tr nh hơp nh ́t ĐHBach Khoa Tp.HCM Slide 66 33
- What Is a Process? • Defines Who is doing What, When to do it, and How to reach a certain goal. New or changed New or changed Software Engineering requirements Process system Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 4: UML & Qui tr nh hơp nh ́t ĐHBach Khoa Tp.HCM Slide 67 Key concepts When does •Cycle product happen? When does • Phase, Iterations architecture happen? • Process Workflows What does — Activity, steps happen? •Artifacts What is — models produced? — reports, documents Who does • Worker: Architect it? Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 4: UML & Qui tr nh hơp nh ́t ĐHBach Khoa Tp.HCM Slide 68 34
- Key concepts time Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle i Cycle n Phase Inception Elaboration Construction Transition Prelim Arch Dev Dev Trans Iteration Iteration Iteration Iteration Iteration Release Release Release Release Release Release Release Release Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 4: UML & Qui tr nh hơp nh ́t ĐHBach Khoa Tp.HCM Slide 69 Lifecycle Phases Inception Elaboration Construction Transition time • Inception Define the scope of the project and develop business case • Elaboration Plan project, specify features, and baseline the architecture • Construction Build the product • Transition Transition the product to its users Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 4: UML & Qui tr nh hơp nh ́t ĐHBach Khoa Tp.HCM Slide 70 35
- Major Milestones Inception Elaboration Construction Transition time Vision Baseline Initial Product Architecture Capability Release Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 4: UML & Qui tr nh hơp nh ́t ĐHBach Khoa Tp.HCM Slide 71 Phases and Iterations Inception Elaboration Construction Transition Prelim Arch Dev Dev Trans Iteration Iteration Iteration Iteration Iteration Release Release Release Release Release Release Release Release An iteration is a sequence of activities with an established plan and evaluation criteria, resulting in an executable release Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 4: UML & Qui tr nh hơp nh ́t ĐHBach Khoa Tp.HCM Slide 72 36
- Iterations and Workflow Phases Core Workflows Inception Elaboration Construction Transition Requirements An iteration in the elaboration phase Analysis Design Implementation Test Prelim inary iter. iter. iter. iter. ite r. iter. iter. Iteration(s) #1 #2 #n #n+1 #n+2 #m #m+1 Bử mửn Cửng nghù phờ̀n mù̀m Itera tioMửn ns Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 4: UML & Qui tr nh hơp nh ́t ĐHBach Khoa Tp.HCM Slide 73 Workflows and Models UML diagrams provide views into each model Requirements Use Case Model Analysis Analysis Model Design Design Depl. Model Model Implementation Impl. Model Each workflow is associated with one or more models. Test Test Model Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 4: UML & Qui tr nh hơp nh ́t ĐHBach Khoa Tp.HCM Slide 74 37
- Use Case Model Use Case Use Case Diagrams Model Class Object Diagrams Diagrams Analysis Component Model Diagrams Deployment Design Diagrams Model Sequence Diagrams Depl. Model Collaboration Diagrams Impl. Statechart Model Diagrams Activity Test Model Diagrams Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 4: UML & Qui tr nh hơp nh ́t ĐHBach Khoa Tp.HCM Slide 75 Analysis & Design Model Use Case Use Case Diagrams Model Class Object Diagrams Diagrams Analysis Component Model Diagrams Incl. subsystems Deployment and packages Design Diagrams Model Sequence Diagrams Depl. Model Collaboration Diagrams Impl. Statechart Model Diagrams Activity Test Model Diagrams Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 4: UML & Qui tr nh hơp nh ́t ĐHBach Khoa Tp.HCM Slide 76 38
- Deployment and Implementation Model Use Case Use Case Diagrams Model Class Object Diagrams Diagrams Analysis Component Model Diagrams Deployment Design Diagrams Model Sequence Diagrams Incl. active classes and components Depl. Model Collaboration Diagrams Impl. Statechart Model Diagrams Activity Test Model Diagrams Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 4: UML & Qui tr nh hơp nh ́t ĐHBach Khoa Tp.HCM Slide 77 Test Model Use Case Use Case Diagrams Model Class Object Diagrams Diagrams Analysis Component Model Diagrams Deployment Design Diagrams Model Sequence Test model refers to Diagrams Depl. all other models and Model uses corresponding Collaboration diagrams Diagrams Impl. Statechart Model Diagrams Activity Test Model Diagrams Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 4: UML & Qui tr nh hơp nh ́t ĐHBach Khoa Tp.HCM Slide 78 39
- Overview of the Unified Process • The Unified Process is — Iterative and incremental — Use case driven — Architecture-centric — Risk confronting Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 4: UML & Qui tr nh hơp nh ́t ĐHBach Khoa Tp.HCM Slide 79 Use Case Driven Req.tsAnalysis Design Impl. Test Use Cases bind these workflows together Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 4: UML & Qui tr nh hơp nh ́t ĐHBach Khoa Tp.HCM Slide 80 40
- Use Cases Drive Iterations • Drive a number of development activities — Creation and validation of the system’s architecture — Definition of test cases and procedures — Planning of iterations — Creation of user documentation — Deployment of system • Synchronize the content of different models Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 4: UML & Qui tr nh hơp nh ́t ĐHBach Khoa Tp.HCM Slide 81 Architecture-Centric • Models are vehicles for visualizing, specifying, constructing, and documenting architecture • The Unified Process prescribes the successive refinement of an executable architecture Inception Elaboration Construction Transition time Architecture Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 4: UML & Qui tr nh hơp nh ́t ĐHBach Khoa Tp.HCM Slide 82 41
- Overview of the UML • The UML is a language for — visualizing — specifying — constructing — documenting the artifacts of a software-intensive system • There are 4 key elements : — Modeling elements — Relationships — Extensibility Mechanisms — Diagrams Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 4: UML & Qui tr nh hơp nh ́t ĐHBach Khoa Tp.HCM Slide 83 Modeling Elements • Structural elements — class, interface, collaboration, use case, active class, component, node • Behavioral elements — interaction, state machine • Grouping elements — package, subsystem • Other elements — note Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 4: UML & Qui tr nh hơp nh ́t ĐHBach Khoa Tp.HCM Slide 84 42
- Relationships • Dependency • Association • Generalization • Realization Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 4: UML & Qui tr nh hơp nh ́t ĐHBach Khoa Tp.HCM Slide 85 Extensibility Mechanisms • Stereotype • Tagged value • Constraint Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 4: UML & Qui tr nh hơp nh ́t ĐHBach Khoa Tp.HCM Slide 86 43
- Models, Views, and Diagrams A model is a complete description of a system State State from a particular DiagramsClass perspective Use Case Diagrams Use Case Diagrams State DiagramsUse Case State Use Case Diagrams DiagramsObject DiagramsUse Case Diagrams Diagrams DiagramsSequence Diagrams Diagrams Scenario State DiagramsScenario DiagramsState CollaborationDiagrams Models DiagramsComponent Diagrams Diagrams Scenario Component Scenario DiagramsComponent DiagramsStatechart DeploymentDiagrams Diagrams Diagrams Diagrams Activity Diagrams Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 4: UML & Qui tr nh hơp nh ́t ĐHBach Khoa Tp.HCM Slide 87 Diagrams • A diagram is a view into a model — Presented from the aspect of a particular stakeholder — Provides a partial representation of the system — Is semantically consistent with other views • In the UML, there are nine standard diagrams — Static views: use case, class, object, component, deployment — Dynamic views: sequence, collaboration, statechart, activity Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 4: UML & Qui tr nh hơp nh ́t ĐHBach Khoa Tp.HCM Slide 88 44
- Use Case Diagram • Captures system functionality as seen by users Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 4: UML & Qui tr nh hơp nh ́t ĐHBach Khoa Tp.HCM Slide 89 Use Case Diagram • Captures system functionality as seen by users • Built in early stages of development • Purpose — Specify the context of a system — Capture the requirements of a system — Validate a system’s architecture — Drive implementation and generate test cases • Developed by analysts and domain experts Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 4: UML & Qui tr nh hơp nh ́t ĐHBach Khoa Tp.HCM Slide 90 45
- Class Diagram • Captures the vocabulary of a system Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 4: UML & Qui tr nh hơp nh ́t ĐHBach Khoa Tp.HCM Slide 91 Class Diagram • Captures the vocabulary of a system • Built and refined throughout development • Purpose — Name and model concepts in the system — Specify collaborations — Specify logical database schemas • Developed by analysts, designers, and implementers Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 4: UML & Qui tr nh hơp nh ́t ĐHBach Khoa Tp.HCM Slide 92 46
- Object Diagram • Captures instances and links Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 4: UML & Qui tr nh hơp nh ́t ĐHBach Khoa Tp.HCM Slide 93 Object Diagram • Shows instances and links • Built during analysis and design • Purpose — Illustrate data/object structures — Specify snapshots • Developed by analysts, designers, and implementers Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 4: UML & Qui tr nh hơp nh ́t ĐHBach Khoa Tp.HCM Slide 94 47
- Component Diagram • Captures the physical structure of the implementation Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 4: UML & Qui tr nh hơp nh ́t ĐHBach Khoa Tp.HCM Slide 95 Component Diagram • Captures the physical structure of the implementation • Built as part of architectural specification • Purpose — Organize source code — Construct an executable release — Specify a physical database • Developed by architects and programmers Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 4: UML & Qui tr nh hơp nh ́t ĐHBach Khoa Tp.HCM Slide 96 48
- Deployment Diagram • Captures the topology of a system’s hardware Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 4: UML & Qui tr nh hơp nh ́t ĐHBach Khoa Tp.HCM Slide 97 Deployment Diagram • Captures the topology of a system’s hardware • Built as part of architectural specification • Purpose — Specify the distribution of components — Identify performance bottlenecks • Developed by architects, networking engineers, and system engineers Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 4: UML & Qui tr nh hơp nh ́t ĐHBach Khoa Tp.HCM Slide 98 49
- Sequence Diagram • Captures dynamic behavior (time- oriented) • Purpose — Model flow of control — Illustrate typical scenarios Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 4: UML & Qui tr nh hơp nh ́t ĐHBach Khoa Tp.HCM Slide 99 Collaboration Diagram • Captures dynamic behavior (message-oriented) • Purpose – Model flow of control – Illustrate coordination of object structure and control Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 4: UML & Qui tr nh hơp nh ́t ĐHBach Khoa Tp.HCM Slide 100 50
- Statechart Diagram • Captures dynamic behavior (event-oriented) • Purpose — Model object lifecycle — Model reactive objects (user interfaces, devices, etc.) Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 4: UML & Qui tr nh hơp nh ́t ĐHBach Khoa Tp.HCM Slide 101 Activity Diagram • Captures dynamic behavior (activity- oriented) • Purpose — Model business workflows — Model operations Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 4: UML & Qui tr nh hơp nh ́t ĐHBach Khoa Tp.HCM Slide 102 51
- Architecture and the UML Design View Implementation View Classes, interfaces, Components collaborations Use cases Use Case View Process View Deployment View Active classes Nodes Organization Dynamics Package, subsystem Interaction State machine Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 4: UML & Qui tr nh hơp nh ́t ĐHBach Khoa Tp.HCM Slide 103 Architecture and Models Use Case Analysis Design Depl. Impl. Test Model Model Model Model Model Model Models Views Architecture embodies a collection of views of the models Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 4: UML & Qui tr nh hơp nh ́t ĐHBach Khoa Tp.HCM Slide 104 52
- Trương Đai Hoc Bach Khoa Tp. HCM Khoa Cửng nghù Thửng tin Chương 5 NẶM BẶT YẽU CấU HĐT Cacartifactscờ̀n tao ra Cacworkerstham gia Qui trũnh phờn tủch Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 5: Năm băt y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 105 Mu c ₫ ẩch cu a hoa t ₫ộ ng nă m bă t yóu cí̀ u Muc ₫ ch cua hoat ₫ ng năm băt y u c ̀u la x y dưng m h nh h th ́ng ma se ₫ươc x y dưng băng cach dung cac use-case. Cac ₫i ̉m băt ₫ ̀u cho hoat ₫ ng nay kha ₫a dang : tư m h nh nghi p vu (business model) cho cac ưng dung nghi p vu. tư m h nh lĩnh vưc (domain model) cho cac ưng dung nhung (embeded). tư ₫ăc ta y u c ̀u cua h th ́ng nhưng ₫ươc tao bơi nhom khac va/hoăc dung cac phương phap ₫ăc ta khac(th du như hương c ́u truc). tư 1 ₫i ̉m nao ₫o năm giưa cac ₫i ̉m xu ́t phat tr n. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 5: Năm băt y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 106 53
- Cacartifactscí̀ n ta o ra trong năm băt yóu cí̀ u M h nh use-case : actor : ngươi/h th ́ng ngoai/thi ́t bị ngoai tương tac vơi h th ́ng use-case : cac chưc năng co nghĩa cua h th ́ng cung c ́p cho actor. — flow of events —cac y u c ̀u ₫ăc bi t cuause-case ₫ăc ta ki ́n truc (view of use-case model) bang thu t ngư cac prototype giao di n vơi user (user-interface prototype) Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 5: Năm băt y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 107 Cacartifactscí̀ n ta o ra trong năm băt yóu cí̀ u 1 Use-Case Model Use-Case System * * Use - Case Actor Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 5: Năm băt y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 108 54
- Cacworkerstrong năm băt yóu cí̀ u System Use-case User-Interface Architect Analyst Specifier Designer chịu trach nhi m v ̀ chịu trach nhi m v ̀ chịu trach nhi m v ̀ chịu trach nhi m v ̀ Use-Case Actor Glossary Use-Case User Interface Architecture Model Prototype Description Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 5: Năm băt y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 109 Quitrẫnh năm băt yóu cí̀ u Find Actors & Structure the System Analyst Use-Cases Use-Case Model Prioritize Architect Use-Cases Detail a Use-Case Specifier Use-Case Prototype User-Interface Designer User-Interface Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 5: Năm băt y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 110 55
- Tẫm Actors & Use cases Muc ₫ ch nh n dang actor va use-case la ₫ ̉ : Giơi han h th ́ng vơi m i trương bao quanh no. Phat hoa ai va cac g se tương tac vơi h th ́ng va h th ́ng cung c ́p cac chưc năng g . Năm băt va ₫ịnh nghĩa danh sach cac thu t ngư chung thi ́t y ́u cho vi c tao cac ₫ăc ta v ̀ cac chưc năng cua h th ́ng. Hoat ₫ ng nay g ̀m4bươc: T m cac actor cua h th ́ng. T m cac use cases cua h th ́ng. Mi u ta văn tăt v ̀ tưng use-case. Mi u ta toan th ̉ m h nh use-case. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 5: Năm băt y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 111 Tẫm Actors Vi c t m cac actor phu thu c vao ₫i ̉m xu ́t phat:n ́u xu ́t phat tư m h nh nghi p vu hay m h nh lĩnh vưc th vi c t mactorr ́t ₫ơn gian. Con n ́u xu ́t phat tư cac y ni m mơ h ̀ th hay tra lơi cac c u hoi sau : Ai la ngươi sư dung chưc năng ch nh cua h th ́ng ? Ai c ̀n sư h ̃ trơ tư h th ́ng ₫ ̉ thưc hi n c ng vi c thương nh t cua ho ? Ai phai thưc hi n c ng vi c bao dương, quan trị va giư cho h th ́ng hoat ₫ ng ? H th ́ng se ki ̉m soat thi ́t bị ph ̀n cưng nao ? H th ́ng ₫ang x y dưng c ̀n tương tac vơi nhưng h th ́ng khac kh ng ? H th ́ng nao ? Ai hoăc v t th ̉ nao quan t m ₫ ́n hay chịu anh hương bơi k ́t qua ma h th ́ng ph ̀n m ̀m tao ra ? Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 5: Năm băt y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 112 56
- Tẫm Use-Cases Vi c t m cac use-case phu thu c vao ₫i ̉m xu ́t phat:n ́u xu ́t phat tư m h nh nghi p vu hay m h nh lĩnh vưc th vi c t muse-caser ́t ₫ơn gian. Con n ́u xu ́t phat tư cac y ni m mơ h ̀ th hay tra lơi cac c u hoi sau : Actor y u c ̀u chưc năng g cua h th ́ng ? Actor c ̀n phai ₫oc, tao, xoa, sưa ₫ ̉i hoăc lưu trư th ng tin nao cua h th ́ng ? Actor c ̀n thi ́t phai ₫ươc canh bao v ̀ nhưng sư ki n trong h th ́ng, hay actor c ̀n phai bao hi u cho h th ́ng v ̀ v ́n ₫ ̀ nao ₫o kh ng ? H th ́ng co th ̉ h ̃ trơ m t s ́ c ng vi c thương nh t cua actor nao ₫o kh ng ? Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 5: Năm băt y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 113 Mióu ta văn tăt tưng Use-Cases M ̃i use-case sau khi t m ₫ươc, n n ₫ươc ₫ăt t n, ₫ươc mi u ta băng vai c u t ̉ng k ́t cac hoat ₫ ng r ̀i sau ₫o ₫ăc ta tưng bươc h th ̀ng c ̀n g ₫ ̉ tương tac vơiactor. Dung lươc ₫ ̀ va cac flow of events ₫ ̉ mi u ta m h nh use-case t ̉ng th ̉, ₫ăc bi t la cac m ́i quan h giưa cacuse-caseva vơiactor. Quan h giưa cac actors : t ̉ng quat hoa (generalization). Quan h giưa actor va use-case : li n k ́t (association). Quan h giưa cac use-cases : t ̉ng quat hoa. include extend Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 5: Năm băt y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 114 57
- Cac nộ́i quan hó giưa cacactorva use-cases Use-Case Z Actor A Actor B Use-Case X Use-Case Y > Use-Case D Use-Case A Use-Case B > Use-Case C Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 5: Năm băt y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 115 Cac nộ́i quan hó giưa cacuse-casesva use-cases > User Maintenance POS Login Store Manager > > <<exten Edit User Information Add New User Remove User Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 5: Năm băt y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 116 58
- Cac nộ́i quan hó giưa cacactorva actor Quan h giưa cac actors : t ̉ng Customers quat hoa (generalization). Th du Customer la actor t ̉ng quat hoa cua cac actor Online Customer Customer, Telephone Customer, Retail Store Customer. Lưu y actor t ̉ng quat hoa thương kh ng co th t, no la ph ̀n tư trưu tương. Retail S tore Online Custom er Customer Telephone Customer Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 5: Năm băt y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 117 Lươc ₫ộ̀ use-case Sales:From Order to Delivery Order Goods & Services In i tia t or Confirm Order Initiator Initiator Initiator Buyer Initiator Seller Invoice Buyer Send Reminders Pay Invoice > Accou nti ng Sys t em Perform Transaction Pay Overdraft Fee Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 5: Năm băt y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 118 59
- Lươc ₫ộ̀ trang thai cua use-case Pay Invoice Browsing schedule reject Invoice Scheduled pay on due date Invoice Paid Invoice Cancelled Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 5: Năm băt y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 119 Mióu ta tộ̉ng thó̉ mộ hẫnh Use-Cases X y dưng cac lươc ₫ ̀ use-case va cac ₫ăc ta giai th ch m h nh use- case, nh ́t la cach thưc ma cac use-case quan h vơi nhau hay vơi cac actor : lươc ₫ ̀ mi u ta cacuse-casephuc vu cho 1 actor hay 1 use-case nghi p vu. ₫ ̉ ₫am bao t nh nh ́t quan khi mi u ta nhi ̀u use-case ₫ ̀ng thơi, n n x y dưng1bang thu ngư chung (glossary). m h nh use-case co th ̉ ₫ươc t ̉ chưc dang c y thư b c nhơ cac package use-case. x y dưng ₫ăc ta "survey" cho m h nh use-case t ̉ng th ̉ va nhơ khach hang va ngươi dung ki ̉m tra, ₫anh gia lai. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 5: Năm băt y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 120 60
- Săp thư tư ưu tión cacuse-case cacuse-caset m ₫ươc kh ng phai thi ́t y ́u như nhau, do ₫o ki ́n truc sư c ̀n săp x ́p thư tư ưu ti n chung ₫ ̉ xac ₫ịnh use-case nao n n ₫ươc phat tri ̉n trươc, use-case nao ₫ươc phat tri ̉n sau. k ́t qua cua hoat ₫ ng nay la x y dưng ₫ươc goc nh n ki ́n truc cua m h nh use-case, no ₫ươc dung ₫ ̉ hoach ₫ịnh cac bươc lăp cung vơi cac y ́u t ́ khac như nghi p vu,kinh t ́ Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 5: Năm băt y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 121 Chi tió́t hoaUse-Case Muc ₫ ch la ₫ăc ta "flow of events" cho tưng use-case : c ́u truc ₫ăc ta use-case. ₫ăc ta use-case bao g ̀m nhưng g . h nh thưc hoa ₫ăc ta use-case. C ́u truc ₫ăc ta use-case : g ̀m1lu ̀ng c ng vi c cơ ban va cac lu ̀ng phu. Cac lu ̀ng phu co th ̉ xay ra v cac ly do : Actor co th ̉ chon thưc hi n 1 trong nhi ̀u nhanh. N ́u hơn1 actordung use-case, cac hoat ₫ ng cua ho co th ̉ anh hương l ̃n nhau. H th ́ng co th ̉ phat hi n l ̃i nh p tư actor. 1s ́ tai nguy n kh ng hoat ₫ ng t ́t lam cho use-case kh ng hoan t ́t c ng vi c ₫ung cua no. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 5: Năm băt y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 122 61
- Đăc ta use-case gộ̀m nhưng gẫ ? n n ₫ịnh nghĩa trang thai băt ₫ ̀u. khi nao va cach naouse-casebăt ₫ ̀u. thư tư cac hoat ₫ ng ₫ươc thưc hi n. khi nao va cach naouse-casek ́t thuc. n n ₫ịnh nghĩa trang thai k ́t thuc. kh ng cho phep nhi ̀u 'path' thưc thi. Co th ̉ mi u ta lu ̀ng thi hanh phu trong ₫ăc ta lu ̀ng cơ ban. Đăc ta lu ̀ng phu ₫ươc rut tr ch tư lu ̀ng cơ ban. Tương tac giưa h th ́ng va actor va chung trao ₫ ̉i nhưng g . Vi c dung cac ₫ ́i tương, gia trị,tai nguy n trong h th ́ng. Phai mi u ta ro rang h th ́ng lam g va actor lam g . Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 5: Năm băt y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 123 Hẫnh thưc hoa use-case (Formalizing) Khi sư tương tac giưa actor va use-case g ̀m nhi ̀u trang thai phưc tap ta n n dung ky thu t m h nh trưc quan ₫ ̉ di ̃n ta use- case v no giup nha ph n t ch hi ̉u ro hơn v ̀ use-case : lươc ₫ ̀ trang thaiUMLco th ̉ ₫ươc dung ₫ ̉ mi u ta trang thai cuause-caseva sư chuy ̉n giưa cac trang thai. lươc ₫ ̀ hoat ₫ ng co th ̉ ₫ươc dung ₫ ̉ mi u ta sư chuy ̉n trang thaichiti ́t hơn dươi dang cac hoat ₫ ng. lươc ₫ ̀ tương tac co th ̉ ₫ươc dung ₫ ̉ mi u ta cac tương tac giưa ₫ ́i tương use-case va ₫ ́i tương actor. Kh ng n n lam dung cac lươc ₫ ̀ v ₫ y la ng n ngư cua nha phat tri ̉n, cac khach hang va ngươi dung kho long hi ̉u n ̉i. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 5: Năm băt y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 124 62
- Cí́u truc lai mộ hẫnh Use-Case M h nh use-case ₫ươc c ́u truc lai ₫ ̉ : rut tr ch cacuse-caset ̀ng quat va dung chung bơi cac use- case ₫ăc bi t hơn. rut tr ch cacuse-casenhi m y va phu th m ₫ ̉ nơi r ng use- case khac. Trươc khi hoat ₫ ng nay xay ra : nha ph n t ch ₫a nh n di n tương ₫ ́i ₫ ̀y ₫u cac actor va use-case, mi u ta chung trong cac lươc ₫ ̀ ₫ ̉ c ́u thanh m h nh use-case t ̉ng th ̉. ngươi ₫ăc ta use-case ₫a phat tri ̉n ₫ăc ta chi ti ́t cho m ̃i use-case. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 5: Năm băt y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 125 Cí́u truc lai mộ hẫnh Use-Case Cac c ng vi c cu th ̉ : Nh n dang cacuse-caset ̉ng quat ₫ươc dung chung. Nh n dang cac use-case co quan h "extend". Nh n dang cac use-case co quan h "include". M t s ́ ₫i ̀u lưu y : C ́u truc cac use-case va m ́i quan h giưa chung n n phan anh cac chưc năng thưc t ́. M ̃iuse-casec ̀n ₫ươc xư ly như 1 artifact ri ng bi t, do ₫o kh ng n n chon use-case qua lơn hay qua nho. Tranh chia nho use-case. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 5: Năm băt y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 126 63
- Trương Đai Hoc Bach Khoa Tp. HCM Khoa Cửng nghù Thửng tin Chương 6 PHấN TẹCH HƯƠNG ĐệI TƯƠNG Cacartifactscờ̀n tao ra Cacworkerstham gia Qui trũnh phờn tủch Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 6: Ph n t ch y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 127 Muc ₫ẩch cua phín tẩch yóu cí̀u Muc ₫ ch cua hoat ₫ ng ph n t ch y u c ̀u la x y dưng m h nh ph n t ch vơi cac ₫ăc ₫i ̉m sau : dung ng n ngư cua nha phat tri ̉n ₫ ̉ mi u ta m h nh. th ̉ hi n goc nh n tư b n trong cua h th ́ng. ₫ươc c ́u truc tư cacclassph n t ch va cac package ph n t ch. ₫ươc dung chu y ́u bơi nha phat tri ̉n ₫ ̉ hi ̉u cach thưc tao h nh dang h th ́ng. loai trư moichiti ́t dư thưa, kh ng nh ́t quan. phat hoa cac hi n thưc cho cac chưc năng b n trong h th ́ng. ₫ịnh nghĩa cac d ̃n xu ́t use-case, m ̃i d ̃n xu ́tuse-casec ́p ph n t ch mi u ta sư ph n t ch 1 use-case. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 6: Ph n t ch y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 128 64
- Cacartifactscí̀n tao ra trong phín tẩch yóu cí̀u M h nh ph n t ch = h th ́ng ph n t ch : cacclassph n t ch — boundary class — entity class. — control class cac d ̃n xu ́tuse-casec ́p ph n t ch : —cac lươc ₫ ̀ class ph n t ch —cac lươc ₫ ̀ tương tac(c ng tac, ). — 'flow of events' ơ c ́p ph n t ch —cac y u c ̀u ₫ăc bi t cuause-case cac package ph n t ch ₫ăc ta ki ́n truc (view of analysis model) Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 6: Ph n t ch y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 129 Cacartifactscí̀n tao ra trong phín tẩch yóu cí̀u * 1 * Analysis Analysis Analysis Package Model System * * * * Analysis Class Use-Case Realization - Analysis Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 6: Ph n t ch y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 130 65
- Cac workers trong phín tẩch yóu cí̀u Component Architect Use-Case Engineer Engineer chịu trach nhi m v ̀ chịu trach nhi m v ̀ chịu trach nhi m v ̀ Analysis Architecture Use-Case Analysis Analysis Model Description Realization - class package Analysis Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 6: Ph n t ch y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 131 Qui trẫnh phín tẩch yóu cí̀u Architect Architectural Analysis Use-Case Analyze a Engineer Use-Case Analyze a Component Analyze a Engineer Class Package Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 6: Ph n t ch y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 132 66
- Phín tẩch kió́n truc:nhín dang cac package phín tẩch Muc ₫ ch cua ph n t ch ki ́n truc la phat hoa m h nh ph n t ch va ki ́n truc h th ́ng băng cach nh n dang cac package ph n t ch, cacclass ph n t ch d ̃ th ́y va cac y u c ̀u ₫ăc bi t chung cho h th ́ng. Cac package ph n t ch giup t ̉ chưc h th ́ng thanh nhưng ₫ơn vị nho d ̃ quan ly.M ̃i package chưa1s ́ use-case vơi t nh ch ́t sau : cacuse-caseh ̃ trơ cho cung 1 qui tr nh nghi p vu. cacuse-caseh ̃ trơ cho cung 1 actor. cacuse-caseco quan h l ̃n nhau : t ̉ng quat hoa, include va extend. Theo thơi gian, khi vi c ph n t ch ti ́n tri ̉n, sư tinh ch ́ c ́u truc cac package se ti ́n tri ̉n theo. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 6: Ph n t ch y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 133 3loaiclassphín tẩch Co 3loai (stereotype) class ph n t ch : class bi n (boundary class) m h nh sư tương tac giưa actor va h th ́ng class thưc th ̉ (entity class) m h nh th ng tin c ̀n cho h th ́ng, loai th ng tin co t nh b ̀n vưng, t ̀n tai l u dai. class ₫i ̀u khi ̉n (control class) m h nh vi c xư ly,c ng tac, giao tac trong use-case. Boundary class Entity class Control class Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 6: Ph n t ch y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 134 67
- Phín tẩch kió́n truc:nhín dang cacclassthưc thó̉ dó̃ thí́y Tư cacclasslĩnh vưchaycac class nghi p vu trong bươc năm băt y u c ̀u, ₫ ̀ nghị 1s ́ class thưc th ̉ quan trong nh ́t(tư 10-20). Cacclassph n t ch con lai se ₫ươc nh n dang trong hoat ₫ ng ph n t ch use-case. Cac y u c ̀u ₫ăc bi t cung ₫ươc nh n dang ₫ ̉ ₫ươc xư ly trong cac bươc sau, chung g ̀m: t nh b ̀n vưng. sư ph n tan&₫ ̀ng thơi. cac t nh ch ́tantoan dư li u. ₫ ̀ khang vơi l ̃i. quan ly giao tac. T nh ch ́t cua m ̃i y u c ̀u ₫ăc bi t se ₫ươc c n nhăc sau trong tưng class va tưng d ̃n xu ́t use-case. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 6: Ph n t ch y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 135 Phín tẩch use-case Ph n t ch use-case la ₫ ̉ : nh n dang cacclassph n t ch co ₫ ́i tương cua chung tham gia vao vi c thưc hi n 'flow of events' cua use-case. ph n ph ́i hanh vi cuause-casebăng cach cho cac ₫ ́i tương ph n t ch tương tac nhau. năm băt1s ́ y u c ̀u ₫ăc bi t cho d ̃n xu ́t use-case. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 6: Ph n t ch y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 136 68
- Phín tẩch use-case : nhín dang cacclassphín tẩch Trong bươc nay ta nh n dang cacclass₫i ̀u khi ̉n, bi n, thưc th ̉ c ̀n thi ́t ₫ ̉ hi n thưcuse-caseva phat hoa t n, trach nhi m, thu c t nh va cac m ́i quan h giưa chung. Dung cac hương d ̃n sau : nh n dang cacclassthưc th ̉ băng cach chu y cac th ng tin trong ₫ăc ta use-case va trong m h nh lĩnh vưc. nh n dang class bi n cơ sơ cho m ̃iclassthưc th ̉ vưa t m ₫ươc. nh n dang class bi n trung t m cho m ̃iactorla con ngươi. nh n dang class bi n trung t m cho m ̃iactorla h th ́ng ngoai hay thi ́t bị I/O. nh n dang class ₫i ̀u khi ̉n co trach nhi m xư ly trong d ̃n xu ́t use-case. T p hơp cacclassph n t ch tham gia vao d ̃n xu ́t use-case thanh 1 (hay nhi ̀u) lươc ₫ ̀ class. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 6: Ph n t ch y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 137 Thẩ du vó̀ lươc ₫ộ̀ class phín tẩch cho use-case Pay Invoice Order Configmation Order Handler Invoice Buyer Payment Request UI (f rom Use-Case Model) Payment Scheduler Payment Request Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 6: Ph n t ch y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 138 69
- Phín tẩch use-case : mióu ta sư tương tac giưa cac ₫ộ́i tương phín tẩch C ̀n chu y cac ₫i ̉m sau trong lươc ₫ ̀ c ng tac: p. tư actor gơi1th ng bao ₫ ́nclassbi n ₫ ̉ k ch hoat use-case. m ̃iclassph n t ch n n co t nh ́t1₫ ́i tương tham gia vao lươc ₫ ̀ c ng tac. chưa v i k ́t hơp tac vu cu th ̉ cho th ng bao. cac m ́i n ́i trong lươc ₫ ̀ c ng tac thương la 'instance' cua m ́i quan h k ́t hơp giưa cacclasstương ưng. chưa t p trung vao thư tư thơi gian cac th ng bao. Lươc ₫ ̀ c ng tac n n xư ly t ́t ca m ́i quan h cuause-case ₫ươc hi n thưc. c ̀n b ̉ sung ₫ăc ta dang văn ban vao lươc ₫ ̀ c ng tac, ₫ăc ta nay n n ₫ươc ₫ ̉ vao 'flow of events c ́p ph n t ch". Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 6: Ph n t ch y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 139 Lươc ₫ộ̀ cộng tac C ̀n chu y cac ₫i ̉m sau trong lươc ₫ ̀ c ng tac: cac th ng ₫i p ₫ươc ₫anh s ́ theo ki ̉u ph n c ́p. — 3.4.2 xay ra sau 3.4.1 va ca 2 ₫ươc l ̀ng trong 3.4 — 3.4.3a va 3.4.3b xay ra ₫ ̀ng thơi va ₫ươc l ̀ng trong 3.4 cu phap t ̉ng quat cua1th ng ₫i p: precedessor guard-condition sequence-expression return-value := message-name argument-list Vủ du : — 2/ 1.3.1: p := find(specs) — 1.1, 4.2/ 3.2 *[i:=1 6]: invert(x, color) Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 6: Ph n t ch y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 140 70
- Lươc ₫ộ̀ cộng tac Cac thanh ph ̀n cua lươc ₫ ̀ c ng tac: 5: Get : Order Confirmation 4: Get : Order Handler 3: Check Invoice 2: Browse : Invoice 6: Schedule InVoice for payment 9: setStatus(scheduled) 1: Browse Invoice 7: Schedule payment : Buyer : Payment Request UI 8: New : Payment Scheduler : Payment Request Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 6: Ph n t ch y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 141 Phín tẩch class Muc ₫ ch cua vi c ph n t ch class la : nh n dang va duy tr cac nghĩa vu,trach nhi m cuaclassph n t ch dưa vao vai tro cua no trong d ̃n xu ́t use-case. nh n dang va duy tr cac thu c t nh va cac m ́i quan h cuaclass ph n t ch. năm băt cac y u c ̀u ₫ăc bi t li n quan ₫ ́n vi c hi n thưcclass ph n t ch. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 6: Ph n t ch y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 142 71
- Phín tẩch class : nhín dang cac nghĩa vu t ̉ hơp cac vai tro ma class ₫ong trong cac d ̃n xu ́tuse-case khac nhau se cho ta 1 s ́ nghĩa vu cua class. nghi n cưu cac lươc ₫ ̀ class va lươc ₫ ̀ tương tac trong cac d ̃n xu ́tuse-caseco class tham gia. ₫ i khi c ̀n nghi n cưu 'flow of events c ́p ph n t ch' cua d ̃n xu ́t use-case ₫ ̉ t m th m cac nghĩa vu cac class. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 6: Ph n t ch y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 143 Phín tẩch class : nhín dang cac thuộc tẩnh M ̃i nghĩa vu thương c ̀n1s ́ thu c t nh. Dung cac hương d ̃n sau : t n thu c t nh n n la danh tư. ki ̉u thu c t nh ơ c ́p ph n t ch n n ơ c ́p y ni m, chưa c ̀n ki ̉u cu th ̉,n n dung lai ki ̉u ₫a co khi ₫ăc ta ki ̉u cho thu c t nh mơi. n ́uclassph n t ch qua phưc tap, n n tach1s ́ thu c t nh phưc tap ra thanh class ri ng. thu c t nh cuaclassthưc th ̉ thương d ̃ th ́y. thu c t nh cuaclassbi n giao ti ́p vơi ngươi thương mi u ta th ng tin ₫ươc xư ly bơiusernhư cac field text, thu c t nh cuaclassbi n giao ti ́p vơi h th ́ng ngoai thương mi u ta cac t nh ch ́t cua giao ti ́p. thu c t nh cuaclass₫i ̀u khi ̉n t khi co. ₫ i khi kh ng c ̀n cac thu c t nh h nh thưc. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 6: Ph n t ch y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 144 72
- Phín tẩch class : nhín dang mộ́i quan hó giưa cacclass Cac ₫ ́i tương tương tac nhau th ng qua cac lươc ₫ ̀ c ng tac. Cac m ́i li n k ́t nay thương la 'instance' cua m ́i quan h k ́t hơp giưa cac class. Cac m ́i li n k ́t nay cung co th ̉ am chỉ nhu c ̀u v ̀ sư g p nhi ̀u ₫ ́i tương. M ́i quan h g p n n ₫ươc dung khi cac ₫ ́i tương mi u ta : cac khai ni m chưa v t ly khai ni m khac (xe chưa tai x ́ va khach) cac khai ni m ₫ươc x y dưng tư cac khai ni m khac(xe g ̀m cac banh xe va ₫ ng cơ). cac khai ni m tao thanh t p hơp y ni m nhi ̀u ₫ ́i tương (gia ₫ nh g ̀m cha, me va con). Đ ̉ rut tr ch cac hanh vi chung cua nhi ̀uclassph n t ch, ta co th ̉ dung class t ̉ng quat hoa, nhưng chỉ n n ơ c ́p y ni m. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 6: Ph n t ch y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 145 Phín tẩch package Muc ₫ ch cua ph n t ch package la : ₫am bao tưng package ph n t ch ₫ c l p vơi cac package khac nhi ̀u như co th ̉ co. ₫am bao package ph n t ch hoan thanh muc ₫ ch cua no la hi n thưc1s ́ class lĩnh vưc hoăc1s ́ use-case. mi u ta cac phu thu c sao cho co th ̉ ươc lương anh hương cua cac thay ₫ ̉i trong tương lai. Dung cac hương d ̃n sau : ₫am bao package chưa cacclass₫ung, c ́ găng cho t nh k ́t d nh cao băng cach g p cac class co m ́i quan h chưc năng. han ch ́ t ́i ₫a sư phu thu c giưa cac package, ph n ph ́i lai cac class qua phu thu c vao package khac. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 6: Ph n t ch y u c ̀u hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 146 73
- Trương Đai Hoc Bach Khoa Tp. HCM Khoa Cửng nghù Thửng tin Chương 7 THIẽT Kẽ HƯƠNG ĐệI TƯƠNG Cacartifactscờ̀n tao ra Cacworkerstham gia Qui trũnh thiù́t kù́ Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 7: Thi ́t k ́ hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 147 Muc ₫ẩch cua thió́t kó́ Muc ₫ ch cua c ng vi c thi ́t k ́ la : ₫at tơi sư hi ̉u bi ́t s u săc cac v ̀n ₫ ̀ v ̀ cac rang bu c va cac y u c ̀u kh ng chưc năng co li n quan ₫ ́n ng n ngư l p tr nh, sư dung lai linh ki n, HĐH, c ng ngh ph n tan, ₫ ̀ng thơi, database, giao di n, quan ly giao tac. tao ra ₫ ̀u vao cho hoat ₫ ng hi n thưc băng cach năm băt cac h th ́ng con, cac interface va cac class. chia c ng vi c hi n thưc ra nhi ̀u ph ̀n d ̃ quan ly va xư ly bơi cac ₫ i khac nhau (co th ̉ ₫ ̀ng thơi). năm băt cac interface ch nh giưa cac h th ́ng con. co th ̉ hi ̉n thị trưc quan va xem xet bang thi ́t k ́ dung cac ky hi u chung. tao ra mưc trưu tương cua sư hi n thưc h th ́ng. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 7: Thi ́t k ́ hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 148 74
- Cacartifactscí̀n tao ra trong thió́t kó́ M h nh thi ́t k ́ =h th ́ng thi ́t k ́ : cac h th ́ng con cacclassthi ́t k ́. cac interface cua h th ́ng con va class. cac d ̃n xu ́tuse-casec ́p thi ́t k ́ : —cac lươc ₫ ̀ class —cac lươc ₫ ̀ tương tac(tr nh tư,trang thai, ). — 'flow of events' ơ c ́p thi ́t k ́. —cac y u c ̀u c ́p hi n thưc. ₫ăc ta ki ́n truc (view of design model) M h nh b ́ tr : ₫ăc ta ki ́n truc (view of deployment model) Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 7: Thi ́t k ́ hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 149 Cacartifactscí̀n tao ra trong thió́t kó́ * 1 * Design Desgin Design Model System Subsystem * * * * * * Interface Use-Case Realization - Desgin Class Design Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 7: Thi ́t k ́ hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 150 75
- Đăc ₫ió̉m cua class thió́t kó́ Class thi ́t k ́ la sư trưu tương trưc ti ́p cuaclasshi n thưc: dung ng n ngư l p tr nh ₫ ̉ mi u ta class thi ́t k ́. thương xac ₫ịnh t ̀m vưc cua cac thanh ph ̀n. cac m ́i quan h co y nghĩa trưc ti ́p tơi hi n thưc:t ̉ng quat hoa → thưa k ́, quan h g p, k ́t hơp thanh thu c t nh tương ưng. method trong thi ́t k ́ → method trong hi n thưc. co th ̉ delay vi c xư ly 1s ́ y u c ̀u tơi luc hi n thưc. class thi ́t k ́ thương co stereotype tương ưng vơi ng n ngư l p tr nh : >, >, > class thi ́t k ́ hi n thưc (hay cung c ́p) 1 interface. co th ̀ co 1s ́ class active, nhưng n n t ̀n tai trong m h nh process thay v trong m h nh thi ́t k ́. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 7: Thi ́t k ́ hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 151 Cac wokers trong hoat ₫ộng thió́t kó́ Architect Use-Case Component Engineer Engineer chịu trach nhi m v ̀ chịu trach nhi m v ̀ chịu trach nhi m v ̀ Desgin Deployment Architecture Use-Case Design Design Interface Model Model Description Realization - class Subsystem Desgin Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 7: Thi ́t k ́ hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 152 76
- Qui trẫnh thió́t kó́ Architect Architectural Design Use-Case Design a Engineer Use-Case Design a Component Design a Engineer Class Subsystem Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 7: Thi ́t k ́ hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 153 Thió́t kó́ kió́n truc:muc ₫ẩch Muc ₫ ch cua thi ́t k ́ ki ́n truc la phat hoa m h nh thi ́t k ́ va m h nh b ́ tr cung ki ́n truc cua chung băng cach nh n dang cac v ́n ₫ ̀ sau : Cac nut t nh toan va cac c ́u h nh mang cua chung. Cac h th ́ng con va interface cua chung. Cacclassthi ́t k ́ co y nghĩa ki ́n truc như cacclass chu ₫ ng. Cac cơ ch ́ thi ́t k ́ t ̉ng quat xư ly cac y u c ̀u chung như t nh b ̀n vưng, hi u qua, (₫ươc năm băt trong cac class ph n t ch va cac d ̃n xu ́tuse-caseơ c ́p ph n t ch. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 7: Thi ́t k ́ hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 154 77
- Thió́t kó́ kió́n truc:nhín dang nut va cí́u hẫnh mang C ́u h nh mang v t ly se anh hương ₫ ́n ki ́n truc ph ̀n m ̀m, g ̀m cac kh a canh : cac nut nao li n quan, kha năng v ̀ b nhơ va c ng su ́t t nh cua nut. ki ̉u n ́i k ́t va ki ̉u giao thưc nao giưa cac nut. cac t nh ch ́t v ̀ sư n ́i k ́t va giao thưc như băng th ng, ₫ săn sang, ch ́t lương c ̀n kha năng t nh dư thưa, ch ́ ₫ ₫ ̀ khang l ̃i, di cư process, sao lưu dư li u, Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 7: Thi ́t k ́ hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 155 Thió́t kó́ kió́n truc:nhín dang hó thộ́ng con va interface cua chung Chia c ng vi c thi ́t k ́ tư ₫ ̀u hay khi m h nh thi ́t k ́ phat tri ̉n thanh phưc tap c ̀n ₫ươc chia nho.M t s ́ h th ́ng con ₫ươc dung lai tư cac project khac: nh n dang cac h th ́ng con c ́p ưng dung nh n dang cac h th ́ng con c ́p giưa va c ́p h th ́ng ₫ịnh nghĩa sư phu thu c giưa cac h th ́ng con. nh n dang giao ti ́p cua cac h th ́ng con. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 7: Thi ́t k ́ hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 156 78
- Thió́t kó́ kió́n truc:nhín dang cac class thió́t kó́ quan trong vó̀ kió́n truc C ̀n nh n dang cacclassthi ́t k ́ quan trong v ̀ măt ki ́n truc ₫ ̉ lam ti ̀n ₫ ̀ cho hoat ₫ ng thi ́t k ́,cac class khac se ₫ươc nh n dang trong vi c thi ́t k ́ use-case. nh n dang cacclassthi ́t k ́ tư cacclassph n t ch tương ưng nh n dang cacclasschu ₫ ng khi chu y y u c ̀u ₫ ̀ng thơi tr n h th ́ng : —cac y u c ̀u v ̀ hi u qua, ₫ săn sang, throughput cua h th ́ng —sư ph n tan cua h th ́ng tr n cac nut. —cac y u c ̀u khac như khơi ₫ ng, k ́t thuc, tranh deadlock, tranh bao hoa, c ́u h nh lai cac nut, kha năng n ́i k ́t. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 7: Thi ́t k ́ hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 157 Thió́t kó́ kió́n truc:nhín dang cac cơ chó́ thió́t kó́ tộ̉ng quat Tư cac y u c ̀u chung va ₫ăc bi t ₫a ₫ươc nh n dang trong ph ̀n ph n t ch (trong cacclassph n t ch va cac d ̃n xu ́tuse-casec ́p ph n t ch), quy ́t ₫ịnh cach xư ly chung dưa tr n c ng ngh hi n thưc va thi ́t k ́ săn co.K ́t qua la 1t p cac cơ ch ́ thi ́t k ́ t ̉ng quat. Cac y u c ̀u c ̀n xư ly thương li n quan ₫ ́n: t nh b ̀n vưng. sư ph n tan&₫ ̀ng thơi. cac t nh ch ́tantoan dư li u. ₫ ̀ khang vơi l ̃i. quan ly giao tac. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 7: Thi ́t k ́ hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 158 79
- Thió́t kó́ Use-Case Muc ₫ ch cua thi ́t k ́ use-case la : Nh n dang cacclassthi ́t k ́ va cac h th ́ng con co object c ̀n cho vi c thưc hi n 'flow of events-design' cuause-case. ph n tan hanh vi cuause-casebăng cach cho cac object thi ́t k ́ va h th ́ng con tương tac nhau. ₫ịnh nghĩa y u c ̀u tr n cac tac vu cuaclassthi ́t k ́, h th ́ng con va interface cua chung. năm băt cac y u c ̀u c ́p hi n thưc cho use-case. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 7: Thi ́t k ́ hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 159 Thió́t kó́ Use-Case : nhín dang cac class thió́t kó́ Nh n dang cac class thi ́t k ́ như sau : nghi n cưu cacclassph n t ch tham gia trong d ̃n xu ́t use- case c ́p ph n t ch tương ưng, nh n dang cac class thi ́t k ́ n ́i vơi cacclassph n t ch nay. nghi n cưu cac y u c ̀u ₫ăc bi t trong d ̃n xu ́t use-case c ́p ph n t ch tương ưng, nh n dang cac class thi ́t k ́ hi n thưc cac y u c ̀u ₫ăc bi t nay. gan nghĩa vu cho cac class thi ́t k ́ t m ₫ươc. n ́u con thi ́u1vai class c ̀n cho vi c thi ́t k ́ use-case ₫ăc bi t, ky sư use-case n n li n h vơi ki ́n truc sư va ky sư linh ki n ₫ ̉ ban bac. x y dưng lươc ₫ ̀ class chưa cac class thi ́t k ́ t m ₫ươc. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 7: Thi ́t k ́ hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 160 80
- Thió́t kó́ Use-Case : mióu ta cac tương tac giưa cacobjectthió́t kó́ Dung lươc ₫ ̀ tr nh tư : lươc ₫ ̀ tr nh tư chưa cac ph ̀n tư actor, ₫ ́i tương thi ́t k ́ va cact.bao giưa chung. n ́u use-case co nhi ̀u lu ̀ng ₫i ̀u khi ̉n khac nhau, n n tao lươc ₫ ̀ tr nh tư cho tưng lu ̀ng. n n chuy ̉n lươc ₫ ̀ c ng tac ơ c ́p ph n t ch thanh lươc ₫ ̀ tr nh tư ban ₫ ̀u, tư ₫o phat tri ̉n th mchiti ́t. dung 'flow of events', duy t qua cac bươc trong no ₫ ̉ quy ́t ₫ịnh cac tương tac nao c ̀n thi ́t giưa cac ₫ ́i tương thi ́t k ́ va ph ̀n tư actor. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 7: Thi ́t k ́ hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 161 Thió́t kó́ Use-Case : mióu ta cac tương tac giưa cacobjectthió́t kó́ N n chu y cac ghi nh n sau trong vi c x y dưng lươc ₫ ̀ tr nh tư : n n t p trung vao tr nh tư trong lươc ₫ ̀. actor gơi th ng bao ₫ ́n1₫ ́i tương thi ́t k ́ ₫ ̉ y u c ̀u thưc hi n use-case. m ̃i class thi ́t k ́ n n co t nh ́t1₫ ́i tương tham gia vao lươc ₫ ̀ tr nh tư. cac message ₫ươc gơi giưa cac ₫ương ₫ơi s ́ng ₫ ́i tương, co th ̉ co t n tam va se trơ thanh t n tac vu tương ưng. dung label va flow of events c ́p thi ́t k ́ ₫ ̉ b ̉ sung lươc ₫ ̀ tr nh tư. lươc ₫ ̀ tr nh tư n n xư ly t ́t ca m ́i quan h cua use-case c ̀n hi n thưc. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 7: Thi ́t k ́ hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 162 81
- Lươc ₫ộ̀ cộng tac Cac thanh ph ̀n cua lươc ₫ ̀ c ng tac: (th du lươc ₫ ̀ c ng tac cho use-case Login cua h th ́ng ₫ăng ky m n hoc h t n chỉ th ng qua Web. 1: login(uname,pswd) : People 1.2 [succ = true]: welcome : LoginForm 1.1: succ := Verify(uname,pswd) : Database Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 7: Thi ́t k ́ hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 163 Lươc ₫ộ̀ trẫnh tư Cac thanh ph ̀n cua lươc ₫ ̀ tr nh tư : (th du lươc ₫ ̀ tr nh tư cho use-case Login cua h th ́ng ₫ăng ky m n hoc h t n chỉ th ng qua Web. : LoginForm : Database : People 1: submit(uname, psswd) 1.1: verify(uname, psswd) 1.2: welcome Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 7: Thi ́t k ́ hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 164 82
- Lươc ₫ộ̀ trang thai Cac thanh ph ̀n cua lươc ₫ ̀ trang thai: (th du lươc ₫ ̀ trang thai cho use-case Send/Read e-mail). hightlight Composed focus compose command entry/ assign ID exit/ fill date Read on char/ handle character re-fwd cmd / quote / append subject entry/ convert to rich text save command read command / recover( id ) send command[ recipents != null ] / parse unhightlight Sending sending done Stored logout do/ send( repc ) entry/ save into folder Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 7: Thi ́t k ́ hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 165 Lươc ₫ộ̀ hoat ₫ộng Cac thanh ph ̀n cua LoginForm Database lươc ₫ ̀ hoat ₫ ng : Show input for username (th du lươc ₫ ̀ hoat and password ₫ ng cho use-case Login cua h th ́ng Verify ₫ăng ky m n hoc h t n chỉ th ng qua [ psswd invalid ] [ psswd valid ] Web. Reject Welcome Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 7: Thi ́t k ́ hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 166 83
- Thió́t kó́ class Muc ₫ ch cua vi c thi ́t k ́ class la tao ra class thi ́t k ́ hoan thanh vai tro cua no trong d ̃n xu ́t use-case va cac y u c ̀u phu. Bao g ̀m vi c duy tr class thi ́t k ́ va cac kh a canh sau cua no : cac tac vu cua class. cac thu c t nh cua class. cac m ́i quan h ma class tham gia. cac method cua class (hi n thưc tac vu tương ưng). cac trang thai cua ₫ ́i tương. cac phu thu c tơi b ́t ky cơ ch ́ thi ́t k ́ t ̉ng quat nao. cac y u c ̀u co li n quan ₫ ́n hi n thưc cua class. sư hi n thưc ₫ung cua b ́t ky interface ma class phai cung c ́p. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 7: Thi ́t k ́ hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 167 Thió́t kó́ class : Phat hoa class thió́t kó́ Bươc ₫ ̀u ta phat hoa cacclassthi ́t k ́ tư cac interface va class ph n t ch : 1 interface co 1 class thi ́t k ́,conclassph n t ch th : thi ́t k ́ class bi n phu thu c vao c ng ngh tao interface : form, activeX control Đ ̉ y dung cac prototype giao di n vơi user trong bươc trươc. thi ́t k ́ class thưc th ̉ thương phu thu c vao c ng ngh database. Vi c anh xa tư m h nh hương ₫ ́i tương sang m h nh dư li u quan h co th ̉ c ̀nworker,m h nh va c ng vi c ri ng. c ̀n t p trung thi ́t k ́ class ₫i ̀u khi ̉n, chu y cac nhu c ̀u sau : —v ̀n ₫ ̀ ph n tan:c ̀n nhi ̀uclassthi ́t k ́ tr n cac nut khac nhau ₫ ̉ hi n thưc1 class₫i ̀u khi ̉n. —v ́n ₫ ̀ hi u qua :n n dung 1 class thi ́t k ́ cho 1 class ₫i ̀u khi ̉n —v ́n ₫ ̀ giao tac: class thi ́t k ́ c ̀n t ch hơp c ng ngh quan ly giao tac. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 7: Thi ́t k ́ hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 168 84
- Thió́t kó́ class : Nhín dang cac tac vu Nh n dang cac tac vu ma class thi ́t k ́ c ̀n cung c ́p va t ̀m vưc cua chung (dung cu phap ng n ngư l p tr nh). Cac ₫ ̀u vao cua bươc nay la : cac trach nhi m cua b ́t ky class ph n t ch ma d ̃n tơiclass thi ́t k ́.1 trach nhi m tương ưng 1 hay nhi ̀u tac vu,nhưng ơ ₫ y mơi phat hoa th ng s ́ h nh thưc cac tham s ́. cac y u c ̀u ₫ăc bi t cua b ́t ky class ph n t ch ma d ̃n tơi class thi ́t k ́. cac interface ma class thi ́t k ́ phai cung c ́p. d ̃n xu ́tuse-casec ́p thi ́t k ́ ma class tham gia. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 7: Thi ́t k ́ hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 169 Thió́t kó́ class : Nhín dang cac thuộc tẩnh Tac vu thương ₫oi hoi thu c t nh, c ̀n dưa vao cac hương d ̃n sau : chu y thu c t nh cua b ́t ky class ph n t ch ma d ̃n tơiclass thi ́t k ́.1 thu c t nh nay am chỉ 1 hay nhi ̀u thu c t nh cua class thi ́t k ́. han ch ́ dung ki ̉u cua ng n ngư l p tr nh cho thu c t nh. c ́ găng dung ki ̉u ₫a co. n ́u class thi ́t k ́ qua phưc tap, 1 vai thu c t nh cua no co th ̉ tach ra thanh cacclassri ng. n ́u co qua nhi ̀u thu c t nh hay thu c t nh qua phưc tap, n n dung lươc ₫ ̀ class ri ng ₫ ̉ mi u ta thu c t nh. Bử mửn Cửng nghù phờ̀n mù̀m Mửn Phõn tớch & Thiết kế hướng ₫ối tượng dựng UML Khoa CNTT Chương 7: Thi ́t k ́ hương ₫ ́i tương ĐHBach Khoa Tp.HCM Slide 170 85
- Thió́t kó́ class : Nhín dang cac mộ́i quan hó kó́t hơp&gộp C ̀n theo cac hương d ̃n sau : chu y cac m ́i quan h k ́t hơp&g