1. Trang chủ
  2. » Công Nghệ Thông Tin

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

175 490 0

Đ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

Nội dung

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

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w