PHÂN TÍCH & THIẾT KẾ HƯỚNG ĐỐI TƯỢNG DÙNG UML ppt

175 490 0
PHÂN TÍCH & THIẾT KẾ HƯỚNG ĐỐI TƯỢNG DÙNG UML ppt

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

1 Bö mön Cöng nghï phền mï̀m Khoa CNTT ĐHBach Khoa Tp.HCM Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Slide 1 Trương Đai hoc Bach Khoa Tp. Hö̀ Chñ Minh Khoa Cöng Nghï Thöng Tin Mön hoc 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 Khoa CNTT ĐHBach Khoa Tp.HCM Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Slide 2 1. n lai 1 s́ khai nim cơ ban cua hương ₫́i tương, cac ngn ngư hương ₫́i tương thương dung, cơ ch́ dịch cac type/class sang ngn ngư c̉ ₫i̉n (ngn ngư may). 2. n lai qui trnh phat tri̉n ph̀n m̀m hơp nh́t. 3. n lai ngn ngư UML ₫ươc dung ₫̉ miu ta  cac artifacts cua qui trnh phat tri̉n ph̀n m̀m hơp nh́t. 4. Giơi thiu cac m̃u thi́t k́ hương ₫́i tương ₫ươc dung ph̉ bi́n trong cac ưng dung hin hanh va cac ưng dung tương lai. Nöi dung mön hoc 2 Bö mön Cöng nghï phền mï̀m Khoa CNTT ĐHBach Khoa Tp.HCM Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Slide 3 Tai liïu tham khao 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 Khoa CNTT ĐHBach Khoa Tp.HCM Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Slide 4 Trương Đai hoc Bach Khoa Tp. Hö̀ Chñ Minh Khoa Cöng Nghï Thöng Tin Chương 1 CAC KHAI NIÏMCƠ BAN CUA MÖ HÒNH HƯƠNG ĐÖI TƯƠNG Chương 1: Cac khai nim cơ ban cua m hnh hương ₫́i tương 3 Bö mön Cöng nghï phền mï̀m Khoa CNTT ĐHBach Khoa Tp.HCM Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Slide 5 Nöi dung 1.1 Tư lêp trònh co cếu truc ₫ḯn OOP 1.2 Đö́i tương, thuöc tñnh, tac vu. 1.3 Abstract type va class. 1.4 Tñnh bao ₫ong. 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 quat hoa. 1.9 Tñnh vưng bï̀n. Chương 1: Cac khai nim cơ ban cua m hnh hương ₫́i tương Bö mön Cöng nghï phền mï̀m Khoa CNTT ĐHBach Khoa Tp.HCM Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Slide 6 1. May tnh s́ la thi́t bị co th̉ thưc hin 1 s́ hưu han cac chưc năng cơ ban (tp lnh), cơ ch́ thưc hin cac lnh la tư ₫ng tư lnh ₫̀u cho ₫́n lnh cu́i cung. Danh sach cac lnh ₫ươc thưc hin nay ₫ươc goi la chương trnh. 2. b́t ky cng vic ngoai ₫ơi nao cung co th̉ ₫ươc chia thanh trnh tư nhi̀u cng vic nho hơn. Trnh tư cac cng vic nho nay ₫ươc goi la giai thut giai quy́t cng vic ngoai ₫ơi. M̃i cng vic nho hơn cung co th̉ ₫ươc chia nho nưa, ⇒ cng vic ngoai ₫ơi la 1 trnh tư cac lnh may (chương trnh). 3. v́n ₫̀ m́u ch́t cua vic dung may tnh giai quy́t v́n ₫̀ ngoai ₫ơi la lp trnh. Cho ₫́n nay, lp trnh la cng vic cua con ngươi (vơi sư trơ giup nga y cang nhi̀u cua may tnh). 4. cac lnh cua chương trnh (code) phai tham khao hoăc xư ly (truy xu́t) thng tin (dư liu). Tư lêp trònh co cếu truc ₫ḯn OOP Chương 1: Cac khai nim cơ ban cua m hnh hương ₫́i tương 4 Bö mön Cöng nghï phền mï̀m Khoa CNTT ĐHBach Khoa Tp.HCM Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Slide 7 Tư lêp trònh co cếu truc ₫ḯn OOP Chương 1: Cac khai nim cơ ban cua m hnh hương ₫́i tương 5. Dư liu cua 1 chương trnh co th̉ r́t nhi̀u va ₫a dang. Đ̉ truy xu́t ₫ung 1 dư liu ta c̀n : -tn nhn dang. -ki̉u dư liu miu ta c́u truc dư liu. -t̀m vưc truy xu́t miu ta giơi han khach hang truy xu́tdư liu. 6. Chương trnh c̉ ₫i̉n = giai thut + dư liu. 7. Chương trnh con (function, subroutine, ) cho phep c́u truc chương trnh, sư dung lai code 8. Chương trnh c̉ ₫i̉n co c́u truc phn c́p như sau : Bö mön Cöng nghï phền mï̀m Khoa CNTT ĐHBach Khoa Tp.HCM Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Slide 8 Chương trnh = c́u truc dư liu + giai thut entry 'start' global data module (package) local data of module local data of function Chương 1: Cac khai nim cơ ban cua m hnh hương ₫́i tương Tư lêp trònh co cếu truc ₫ḯn OOP 5 Bö mön Cöng nghï phền mï̀m Khoa CNTT ĐHBach Khoa Tp.HCM Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Slide 9 Chương trnh = tp cac ₫́i tương tương tac nhau entry ₫́i tương (object) local data of object local data of operation Chương 1: Cac khai nim cơ ban cua m hnh hương ₫́i tương Tư lêp trònh co cếu truc ₫ḯn OOP Bö mön Cöng nghï phền mï̀m Khoa CNTT ĐHBach Khoa Tp.HCM Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Slide 10 Tö̉ng quat 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́) khac hăn so vơi trương phai c̉ ₫i̉n (co c́u truc).  Băt ₫̀u nhen nhom vao 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 thanh cac phương phap phn tch/thi́t k́ hương ₫́i tương.  Va hin nay ta co 1 qui trnh phat tri̉n ph̀n m̀m hơp nh́t dưa trn ngn ngư UML. Chương 1: Cac khai nim cơ ban cua m hnh hương ₫́i tương 6 Bö mön Cöng nghï phền mï̀m Khoa CNTT ĐHBach Khoa Tp.HCM Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Slide 11 Đö́i tương (Object) ~ M hnh ₫́i tương quan nim chương trnh bao g̀m cac ₫́i tương sinh s́ng va tương tac vơi nhau. ~ Đ́i tương bao g̀m :  thuc tnh (dư liu) : mang 1 gia trị nh́t ₫ịnh tai tưng thơi ₫i̉m.  tac vu (operation) : thưc hin 1 cng vic nao ₫o. Interface (abstract type) Implementation (class) Chương 1: Cac khai nim cơ ban cua m hnh hương ₫́i tương Bö mön Cöng nghï phền mï̀m Khoa CNTT ĐHBach Khoa Tp.HCM Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Slide 12 Kiï̉u trưu tương (Abstract type) ~ Abstract type (type) ₫ịnh nghĩa interface sư dung ₫́i tương. ~ Interface la tp cac entry ma bn ngoai co th̉ giao ti́p vơi ₫́i tương. ~ Dung signature ₫̉ ₫ịnh nghĩa m̃i entry, Signature g̀m :  tn method (operation)  danh sach ₫́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 cua method (thương la chu thch). ~ Dung abstract type (chư khng phai 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̉) cua ₫́i tương. Chương 1: Cac khai nim cơ ban cua m hnh hương ₫́i tương 7 Bö mön Cöng nghï phền mï̀m Khoa CNTT ĐHBach Khoa Tp.HCM Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Slide 13 Class (Implementation) ~ Class ₫ịnh nghĩa chi ti́t hin thưc ₫́i tương :  ₫ịnh nghĩa cac thuc tnh dư liu : gia trị cua t́t ca thuc tnh xac ₫ịnh trang thai cua ₫́i tương.  ki̉u cua 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 khao ₫́n ₫́i tươ ng khac.  coding cac method va cac internal function. ~ Định nghĩa cac method tao va xoa ₫́i tương. ~ Định nghĩa cac method constructor va destructor. ~ User khng c̀n quan tn ₫́n class cua ₫́i tương. Chương 1: Cac khai nim cơ ban cua m hnh hương ₫́i tương Bö mön Cöng nghï phền mï̀m Khoa CNTT ĐHBach Khoa Tp.HCM Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Slide 14 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 } Chương 1: Cac khai nim cơ ban cua m hnh hương ₫́i tương 8 Bö mön Cöng nghï phền mï̀m Khoa CNTT ĐHBach Khoa Tp.HCM Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Slide 15 Tñnh bao ₫ong (encapsulation) z Bao ₫ong : che d́u moi chi ti́t hin thưc cua ₫́i tương, khng cho bn ngoai th́y va truy xu́t ⇒ tnh ₫c lp cao giưa cac ₫́i tương (hay tnh k́t dnh - cohesion giưa cac ₫́i tương r́t th́p).  che d́u cac thuc tnh dư liu : n́u c̀n cho phep truy xu́t 1 thuc tnh dư liu, ta tao 2 method get/set tương ưng ₫̉ giam sat 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 cac method.  che d́u cac internal function va sư hin thưc cua chung. Chương 1: Cac khai nim cơ ban cua m hnh hương ₫́i tương Bö mön Cöng nghï phền mï̀m Khoa CNTT ĐHBach Khoa Tp.HCM Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Slide 16 Tñnh thưa kḯ (inheritance) ~ Tnh thưa k́ cho phep giam nhe cng sưc ₫ịnh nghĩa type/class : ta co th̉ ₫ịnh nghĩa cac type/class khng phai tư ₫̀u ma băng cach k́ thưa type/class co săn, ta chỉ ₫ịnh nghĩa thm cac 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 cac method cua class cha, k́t qua override chỉ co nghĩa trong ₫́i tương class con.  Đ́i tương cua class con co th̉ ₫ong vai tro cua ₫́i tương cha nhưng ngươc lai thương khng ₫ung. Chương 1: Cac khai nim cơ ban cua m hnh hương ₫́i tương 9 Bö mön Cöng nghï phền mï̀m Khoa CNTT ĐHBach Khoa Tp.HCM Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Slide 17 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) { // cac lnh ve ₫oan thăng } } Chương 1: Cac khai nim cơ ban cua m hnh hương ₫́i tương Bö mön Cöng nghï phền mï̀m Khoa CNTT ĐHBach Khoa Tp.HCM Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Slide 18 Tñnh bao göp (aggregation)  1 ₫́i tương co th̉ chưa nhi̀u ₫́i tương khac tao nn m́i quan h bao gp 1 cach ₫ qui giưa cac ₫́i tương.  Co 2 goc nhn v̀ tnh bao gp : ngư nghĩa va hin thưc. O 1 O 2 O 3 Goc nhn ngư nghĩa Goc nhn hin thưc O 1 O 2 O 3 Chương 1: Cac khai nim cơ ban cua m hnh hương ₫́i tương 10 Bö mön Cöng nghï phền mï̀m Khoa CNTT ĐHBach Khoa Tp.HCM Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Slide 19 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; }; Chương 1: Cac khai nim cơ ban cua m hnh hương ₫́i tương Bö mön Cöng nghï phền mï̀m Khoa CNTT ĐHBach Khoa Tp.HCM Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Slide 20 Thöng ₫iïp (Message) ~ Thng ₫ip la 1 phep goi tac vu ₫́n 1 ₫́i tương tư 1 tham khao. ~ Thng ₫ip bao g̀m 3 ph̀n :  tham khao ₫́n ₫́i tương ₫ch.  tn tac vu mu́n goi.  danh sach tham s́ thưc c̀n truy̀n theo (hay nhn v̀ tư) tac vu.  v du : aCircle.SetRadius (3); aCircle.Draw (pWnd); ~ Thng ₫ip la phương tin giao ti́p (hay tương tac) duy nh́t giưa cac ₫́i tương. Chương 1: Cac khai nim cơ ban cua m hnh hương ₫́i tương [...]... Build the product Transition the product to its users Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Chương 4: UML & Qui tr nh hơp nh ́t Slide 70 35 Major Milestones Inception Elaboration Construction Transition time Vision Baseline Architecture Initial Capability Product Release Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Chương 4: UML & Qui tr nh hơp nh ́t Slide 71 Bö mön Cöng nghï phền... Phân tích & Thiết kế hướng ₫ối tượng dùng UML Chương 4: UML & Qui tr nh hơp nh ́t 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 Software Engineering Process requirements Bö mön Cöng nghï phền mï̀m Khoa CNTT ĐH Bach Khoa Tp.HCM New or changed system Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Chương 4: UML & Qui tr... Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Chương 4: UML & Qui tr nh hơp nh ́t Slide 68 34 Key concepts time Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle i Cycle n Phase Inception Prelim Iteration Elaboration Arch Iteration Release Release Construction Dev Iteration Release Dev Iteration Release Release Transition Trans Iteration Release Release Release Mön Phân tích & Thiết kế hướng ₫ối tượng dùng. .. mön Cöng nghï phền mï̀m Khoa CNTT ĐH Bach Khoa Tp.HCM Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Chương 2: Th du v ̀ cac ng n ngư OOP Slide 44 22 Thñ du vï̀ chương trònh Java GUIClock 12.34.25 AlarmClock wakeup() Bö mön Cöng nghï phền mï̀m Khoa CNTT ĐH Bach Khoa Tp.HCM Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Chương 2: Th du v ̀ cac ng n ngư OOP Slide 45 Thñ du... } } Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Chương 2: Th du v ̀ cac ng n ngư OOP Slide 51 Bö mön Cöng nghï phền mï̀m Khoa CNTT ĐH Bach Khoa Tp.HCM Trương Đai Hoc Bach 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 Khoa CNTT ĐH Bach Khoa Tp.HCM Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Chương... ĐH Bach Khoa Tp.HCM Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Chương 1: Cac khai ni m cơ ban cua m h nh hương ₫ ́i tương Slide 25 Trương Đai hoc Bach 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 Khoa CNTT ĐH Bach Khoa Tp.HCM Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Chương 2: Th du v ̀... : Geometry { }; Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Chương 2: Th du v ̀ cac ng n ngư OOP Slide 33 Bö mön Cöng nghï phền mï̀m Khoa CNTT ĐH Bach Khoa Tp.HCM Cếu truc 1 chương trònh Dialog based ₫ơn gian InitInstance() DoModal() CProgramDlg CProgramApp Bö mön Cöng nghï phền mï̀m Khoa CNTT ĐH Bach Khoa Tp.HCM Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Chương 2: Th du... CProgramApp Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Chương 2: Th du v ̀ cac ng n ngư OOP Slide 35 Bö mön Cöng nghï phền mï̀m Khoa CNTT ĐH Bach Khoa Tp.HCM Cếu truc 1 chương trònh MDI ₫ơn gian InitInstance() CChildFrame CProgramView CProgramDoc CMultiDocTemplate CProgramApp Bö mön Cöng nghï phền mï̀m Khoa CNTT ĐH Bach Khoa Tp.HCM Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Chương... Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Chương 2: Th du v ̀ cac ng n ngư OOP Slide 41 Hö̃ trơ ₫ềy ₫u tñnh ₫a hònh 8 T ́t ca cac public function ₫ươc quan ly trong 1 danh sach "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 Khoa CNTT ĐH Bach Khoa Tp.HCM Mön Phân tích & Thiết kế hướng. .. Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Chương 3: Nguy n tăc dịch OOP Slide 65 Bö mön Cöng nghï phền mï̀m Khoa CNTT ĐH Bach Khoa Tp.HCM Trương Đai Hoc Bach Khoa Tp HCM Khoa Cöng nghï Thöng tin Chương 4 QUI TRÒNH HƠP NHÊT & UML Qui trònh phat triï̉n phền mï̀m hơp nhết Tö̉ng quat vï̀ ngön ngư mö hònh UML Bö mön Cöng nghï phền mï̀m Khoa CNTT ĐH Bach Khoa Tp.HCM Mön Phân tích . Tp.HCM Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Slide 1 Trương Đai hoc Bach Khoa Tp. Hö̀ Chñ Minh Khoa Cöng Nghï Thöng Tin Mön hoc PHÂN TÍCH & THIẾT KẾ HƯỚNG ĐỐI TƯỢNG DÙNG UML. Tp.HCM Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Slide 37 2.2 Ngön ngư Java 1. Hö̃ trơ 'interface' (1 dang cua type) va class. 2. Hö̃ trơ Đơn thưa kḯ. 3. Dung 'abstract. CNTT ĐHBach Khoa Tp.HCM Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Slide 22 Kiï̉m tra kiï̉u (type check) ~ Chăt va dung m́i quan h 'conformity' (tương thch t̉ng quat).

Ngày đăng: 10/07/2014, 13:20

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan