Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 176 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
176
Dung lượng
1,56 MB
Nội dung
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 Khoa CNTT ĐH Bach Khoa Tp.HCM Mưn Phân tích & Thiết kế hướng ₫ối tượng dùng UML Slide Nöi dung mön hoc n lai s ́ khai ni m ban cua hương ₫ ́i tương, cac ng n ngư hương ₫ ́i tương thương dung, ch ́ dịch cac type/class sang ng n ngư c ̉ ₫i ̉n (ng n ngư may) n lai qui tr nh phat tri ̉n ph ̀n m ̀m hơp nh ́t 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 Giơi thi u cac m ̃u thi ́t k ́ hương ₫ ́i tương ₫ươc dung ph ̉ bi ́n cac ưng dung hi n hanh va cac ưng dung tương lai Bö mön Cöng nghï phền mï̀m Khoa CNTT ĐH Bach Khoa Tp.HCM Mưn Phân tích & Thiết kế hướng ₫ối tượng dùng UML Slide 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 Mưn 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 ĐH Bach Khoa Tp.HCM Slide Trương Đai hoc Bach Khoa Tp Hừ Chđ Minh Khoa Cưng Nghï Thöng Tin Chương CAC KHAI NIÏM CƠ BAN CUA MƯ HỊNH HƯƠNG ĐƯI TƯƠNG Bư mưn Cưng nghï phền mï̀m Khoa CNTT ĐH Bach Khoa Tp.HCM Mưn Phân tích & Thiết kế hướng ₫ối tượng dùng UML Chương 1: Cac khai ni m ban cua m h nh hương ₫ ́i tương Slide Nöi dung 1.1 Tư lêp trịnh co cếu truc ₫ḯn OOP 1.2 Đứi tương, thc tđnh, tac vu 1.3 Abstract type va class 1.4 Tñnh bao ₫ong 1.5 Tñnh thưa kḯ va 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 Khoa CNTT ĐH Bach Khoa Tp.HCM Mưn Phân tích & Thiết kế hướng ₫ối tượng dùng UML Chương 1: Cac khai ni m ban cua m h nh hương ₫ ́i tương Slide Tư lêp trònh co cếu truc ₫ḯn OOP May t nh s ́ la thi ́t bị co th ̉ thưc hi n s ́ hưu han cac chưc ban (t p l nh), 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 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 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 cung co th ̉ ₫ươc chia nho nưa, ⇒ c ng vi c ngoai ₫ơi la tr nh tư cac l nh may (chương tr nh) 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 ngươi (vơi sư trơ giup ngay cang nhi ̀u cua may t nh) 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 Khoa CNTT ĐH Bach Khoa Tp.HCM Mưn Phân tích & Thiết kế hướng ₫ối tượng dùng UML Chương 1: Cac khai ni m ban cua m h nh hương ₫ ́i tương Slide Tư lêp trònh co cếu truc ₫ḯn OOP Dư li u cua chương tr nh co th ̉ r ́t nhi ̀u va ₫a dang Đ ̉ truy xu ́t ₫ung 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 ́t dư li u Chương tr nh c ̉ ₫i ̉n = giai thu t + dư li u Chương tr nh (function, subroutine, ) cho phep c ́u truc chương tr nh, sư dung lai code Chương tr nh c ̉ ₫i ̉n co c ́u truc ph n c ́p sau : Bö mön Cöng nghï phền mï̀m Khoa CNTT ĐH Bach Khoa Tp.HCM Mưn Phân tích & Thiết kế hướng ₫ối tượng dùng UML Chương 1: Cac khai ni m ban cua m h nh hương ₫ ́i tương Slide 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 (package) entry 'start' global data local data of module local data of function Bö mön Cöng nghï phền mï̀m Khoa CNTT ĐH Bach Khoa Tp.HCM Mưn Phân tích & Thiết kế hướng ₫ối tượng dùng UML Chương 1: Cac khai ni m ban cua m h nh hương ₫ ́i tương Slide Tư lêp trònh co cếu truc ₫ḯn OOP Chương tr nh = t p cac ₫ ́i tương tương tac ₫ ́i tương (object) entry local data of object local data of operation Bö mön Cöng nghï phền mï̀m Khoa CNTT ĐH Bach Khoa Tp.HCM Mưn Phân tích & Thiết kế hướng ₫ối tượng dùng UML Chương 1: Cac khai ni m ban cua m h nh hương ₫ ́i tương Slide Tö̉ng quat vï̀ hương ₫ö́i tương M h nh hương ₫ ́i tương giơi thi u 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 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 ta co 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 Khoa CNTT ĐH Bach Khoa Tp.HCM Mưn Phân tích & Thiết kế hướng ₫ối tượng dùng UML Chương 1: Cac khai ni m ban cua m h nh hương ₫ ́i tương Slide 10 Đö́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 ~ Đ ́i tương bao g ̀m : thu c t nh (dư li u) : mang gia trị nh ́t ₫ịnh tai tưng thơi ₫i ̉m tac vu (operation) : thưc hi n c ng vi c nao ₫o Implementation (class) Interface (abstract type) Bö mön Cöng nghï phền mï̀m Khoa CNTT ĐH Bach Khoa Tp.HCM Mưn Phân tích & Thiết kế hướng ₫ối tượng dùng UML Chương 1: Cac khai ni m ban cua m h nh hương ₫ ́i tương 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 thu c t nh : t n, type va chi ̀u chuy ̉n ₫ ng (IN, OUT, INOUT) ₫ăc ta chưc 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 Khoa CNTT ĐH Bach Khoa Tp.HCM Mưn Phân tích & Thiết kế hướng ₫ối tượng dùng UML Chương 1: Cac khai ni m ban cua m h nh hương ₫ ́i tương Slide 12 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, 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 Khoa CNTT ĐH Bach Khoa Tp.HCM Mưn Phân tích & Thiết kế hướng ₫ối tượng dùng UML Chương 1: Cac khai ni m ban cua m h nh hương ₫ ́i tương Slide 13 Vñ du vï̀ class 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 Khoa CNTT ĐH Bach Khoa Tp.HCM Mưn Phân tích & Thiết kế hướng ₫ối tượng dùng UML Chương 1: Cac khai ni m ban cua m h nh hương ₫ ́i tương Slide 14 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 thu c t nh dư li u, ta tao 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 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 Khoa CNTT ĐH Bach Khoa Tp.HCM Mưn Phân tích & Thiết kế hướng ₫ối tượng dùng UML Chương 1: Cac khai ni m ban cua m h nh hương ₫ ́i tương 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 ₫ị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 co nghĩa ₫ ́i tương class Đ ́i tương cua class co th ̉ ₫ong vai tro cua ₫ ́i tương cha ngươc lai thương kh ng ₫ung Bö mön Cöng nghï phền mï̀m Khoa CNTT ĐH Bach Khoa Tp.HCM Mưn Phân tích & Thiết kế hướng ₫ối tượng dùng UML Chương 1: Cac khai ni m ban cua m h nh hương ₫ ́i tương Slide 16 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 Khoa CNTT ĐH Bach Khoa Tp.HCM Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Chương 1: Cac khai ni m ban cua m h nh hương ₫ ́i tương Slide 17 Tđnh bao gưp (aggregation) ₫ ́i tương co th ̉ chưa nhi ̀u ₫ ́i tương khac tao n n m ́i quan h bao g p cach ₫ qui giưa cac ₫ ́i tương Co 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 O2 O1 O1 O3 Bö mön Cöng nghï phền mï̀m Khoa CNTT ĐH Bach Khoa Tp.HCM O3 Mưn Phân tích & Thiết kế hướng ₫ối tượng dùng UML Chương 1: Cac khai ni m ban cua m h nh hương ₫ ́i tương Slide 18 ... 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 Khoa CNTT ĐH Bach Khoa Tp.HCM Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Slide Nöi dung... 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 Khoa CNTT ĐH Bach Khoa Tp.HCM Mön Phân tích & Thiết kế hướng ₫ối tượng dùng UML Chương 1: Cac khai ni m ban cua... Applications, G Booch, The Benjamin Cummings Publishing Company, 1994 Mön 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 ĐH Bach Khoa Tp.HCM Slide Trương