Chương 8-Công nghệ phần mềm hướng đối tượng

32 382 0
Chương 8-Công nghệ phần mềm hướng đối tượng

Đ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

14/9/2009 1 Chương 8 Công nghệ phần mềm hướng đối tượng Mô hình hướng đối tượng Giới thiệu l Mô hình hướng đối tượng giới thiệu một quan điểm lập trình (và phân tích/thiết kế) khác hẳn so với trường phái cổ điển (có cấu trúc) l Bắt đầu nhen nhóm vào những năm cuối 60 và đến đầu 90 trở nên rất phổ biến trong công nghiệp phần mềm l Những ngôn ngữ hướng đối tượng đầu tiên: Smalltalk, Eiffel. Sau đó xuất hiện: Object Pascal, C++, Java… Đối tượng và lớp l Hình thành các phương pháp phân tích/thiết kế hướng đối tượng l Mô hình hướng đối tượng quan niệm thế giới bao gồm các đối tượng (object) sinh sống và tương tác với nhau l Đối tượng bao gồm u dữ liệu: mang một giá trị nhất định u tác vụ: thực hiện một công việc nào đó Đối tượng và lớp l Lớp (class) định nghĩa một tập hợp các tác vụ và thuộc tính mà đặc tả đầy đủ cấu trúc và hành vi của các đối tượng. l Đối tượng (còn gọi là minh dụ (instance) ) được cụ thể hoá từ lớp l Các ngôn ngữ lập trình hướng đối tượng u Khai báo lớp: tương tự như khai báo một kiểu do người dùng định nghĩa u Khai báo đối tượng: biến của kiểu lớp 14/9/2009 2 Đóng bao l Đóng bao: việc gộp thuộc tính và tác vụ trong một đối tượng đồng thời giới hạn cách truy xuất các thuộc tính đó (thường phải thông qua các tác vụ get/set) Circle # Radius: float - x: float - y: float + Draw( w: Window) + GetClass( ): String c1 : Circle Radius = 1.3 x = 3.2 y = 1.7 Thuộc tính l Thuộc tiùnh (attribute) là một vùng có thể chứa dữ liệu (đơn hoặc tổ hợp) của lớp. l Dữ liệu mà thuộc tính thể hiện nằm trong một khoảng giá trị nào đó được xác định bởi kiểu. l Giá trị của tất cả thuộc tính xác định trạng thái của đối tượng u Ví dụ: một đối tượng của Circle có (Radius, x, y) = (1.2, 3.4, 5.3) Thuộc tính l Thuộc tính có thể bị che dấu hoặc truy xuất được từ bên ngoài u Một số ngôn ngữ lập trình (và UML): public, protected, private l Có 2 loại tầm vực u Tầm vực lớp: thuộc tính chung cho tất cả các đối tượng của một lớp u Tầm vực đối tượng: thuộc tính của từng đối tượng (có thể mang giá trị khác nhau) l Bậc của thuộc tính chỉ ra số lượng dữ liệu mà bản thân thuộc tính có thể nắm giữ : 0 1, 1, *, 5 8 Tác vụ l Tác vụ (operation) là một dịch vụ có thể yêu cầu từ phía đối tượng để thực hiện hành vi . l Dấu hiệu nhận dạng của tác vụ (signature) xác định các thông số có thể truyền cũng như kết quả trả về . l Phương thức (method) là phần hiện thực của tác vụ 14/9/2009 3 Tác vụ l Tác vụ có thể bị che dấu hoặc truy xuất được từ bên ngoài u Một số ngôn ngữ lập trình (và UML): public, protected, private l Tác vụ có thể được override trong các lớp con thừa kế u Trừu tượng (abstract): không có hiện thực l Một số ngôn ngữ lập trình cho phép định nghĩa u Tác vụ khởi tạo (constructor): được gọi khi đối tượng mới tạo ra u Tác vụ hủy (destructor): được gọi khi đối tượng sắp bị huỷ bỏ Ví dụ lớp, đối tượng 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 } Thông điệp l Thông điệp là một phép gọi tác vụ đến một đối tượng cụ thể . l Thông điệp bao gồm 3 phần u Đối tượng đích u Dấu hiệu nhận dạng của tác vụ muốn gọi u Danh sách thông số gọi Thông điệp l Đối với các ngôn ngữ lập trình u Đối tượng đích: biến đối tượng hoặc bản thân đối tượng muốn gửi thông điệp (self, this) u Dấu hiệu nhận dạng của tác vụ muốn gọi: tên tác vụ trùng nhau ⇒ xem các thông số gọi u Danh sách thông số gọi: như phép gọi hàm bình thường , chú ý kiểu khi truyền và gán kết quả trả về u Ví dụ: aCircle.SetRadius( 3 ); aCircle.Draw( pWnd ); 14/9/2009 4 Bao gộp l Bao gộp (aggregation) là quan hệ giữa hai đối tượng l Một đối tượng bao lấy đối tượng kia l Quan hệ này thường xảy ra trong thế giới thực, ví dụ u Xe hơi bao gồm: bánh xe, động cơ, khung xe . u Trang HTML bao gồm: text, hình ảnh, tiêu đề, các liên kết . u Checkbox, ComboBox, Slider… nằm trong một hộp thoại Bao gộp l Hai dạng liên kết giữa đối tượng nguồn và đối tượng đích u Chặt chẽ: đối tượng đích được tạo ra và huỷ đi đồng thời với đối tượng nguồn u Lỏng lẻo: chu kỳ sống của hai đối tượng độc lập nhau l Quan hệ bao gộp cũng được áp dụng cho lớp l Một số ngôn ngữ lập trình hỗ trợ cả 2 dạng liên kết: biến & con trỏ Ví dụ 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; }; Thừa kế và nạp chồng l Thừa kế (inheritance) là quan hệ giữa hai lớp l Lớp con thừa hưởng tất cả thuộc tính và tác vụ của lớp cha l Lớp con (subclass) là cụ thể hoá của lớp cha (superclass); lớp cha là tổng quát hoá của lớp con l Quan hệ này cũng thường được ghi nhận trong thế giới thực , ví dụ u Hổ, báo, sói đều là thú u Button, Checkbox và Dialog đều là Window u Hình tròn, hình chữ nhật, hình ellipse đều là hình vẽ 2D. 14/9/2009 5 Thừa kế và nạp chồng l Hai loại thừa kế: đơn thừa kế và đa thừa kế l Đơn thừa kế: mỗi lớp con có nhiều nhất là một lớp cha l Đa thừa kế: u Mỗi lớp con có một hoặc nhiều lớp cha u Nảy sinh hai vấn đề: đụng độ giữa tên các thành phần (member) của lớp cha và thừa kế lại Thừa kế và nạp chồng l Lớp con có thể override lại một số tác vụ của lớp cha. l Phải giữa nguyên dấu vết nhận dạng (signature) của tác vụ bị override; chỉ được thay đổi phương thức (phần hiện thực) của nó l Đa số ngôn ngữ lập trình hướng đối tượng hỗ trợ thừa kế l Một số ngôn ngữ đưa ra khái niệm phương thức ảo (virtual) Ví dụ thừa kế và nạp chồng java class HTMLDocument extends HTMLObject { private String title = null; // other attributes . HTMLDocument( ){ } public void setTitle( String ttl ) { if ( ttl != null ) title = ttl; } public String getTitle( ) { return title; } public String toHTML( ) { // override StringBuffer html = new StringBuffer; // additional implementation . return html.toString( ); } } Tính đa hình l Một đối tượng mang nhiều bộ mặt khác nhau: của chính lớp đặc tả nó và của các lớp cha ⇒ tính đa hình (polymorphism) l Tương hợp kiểu: kiểu của lớp con luôn tương hợp với kiểu lớp cha l Một số ngôn ngữ lập trình định nghĩa khái niệm liên kết muộn u Hàm được gọi để đáp ứng các thông điệp được xác định trong thời gian thực thi chứ không phải biên dịch u Mỗi đối tượng có một bảng phương thức ảo 14/9/2009 6 Tính đa hình Ví dụ: đối tượng http được xem như thuộc kiểu của HttpView, View và Window Window # hWnd: HWND + MoveWindow( ) + GetClass( ): String View + GetClass( ): String + GetDocument( ): Document HttpView + GetClass( ): String http : HttpView Tính vĩnh cửu l Chu kỳ sống của đối tượng: khoảng thời gian từ lúc đối tượng được tạo ra đến lúc nó bị huỷ đi. l Thông thường chu kỳ sống của đối tượng gói gọn trong thời gian chương trình thực thi Tính vĩnh cửu l Chu kỳ sống của đối tượng có thể vượt ra khỏi sự thực thi của chương trình ⇒ tính vĩnh cửu (persistence) u Đối tượng được cất vào bộ nhớ vĩnh cửu khi chương trình kết thúc u Khi cần thiết có thể khôi phục lại đối tượng vào bộ nhớ chính u Chỉ lưu trữ trạng thái của đối tượng u Ngôn ngữ C++ và Java: streaming CNPM Hướng đối tượng - Giới thiệu l Khách hàng và nhà phát triển gặp nhau cùng thảo luận về yêu cầu của hệ thống phần mềm cần xây dựng l Mô hình nghiệp vụ được thiết lập để hỗ trợ cả nhà phát triển lẫn khách hàng trong việc kiểm chứng lại và thống nhất yêu cầu phần mềm và vai trò các tác nhân bên ngoài 14/9/2009 7 Khái niệm về actor l Actor xác định một bộ vai trò mà người hoặc vật sẽ đóng vai khi tương tác với hệ thống phần mềm l Actor nằm ngồi phạm vi của hệ thống u Chỉ quan tâm các thơng điệp mà actor gửi hay nhận u Khơng quan tâm cấu trúc bên trong của actor l Phân loại actor u Chủ yếu / Thứ yếu u Tích cực / Thụ động Nhận diện các actor l Trả lời một số câu hỏi như u Ai là người sử dụng chức năng chính của hệ thống ? u Ai cần sự hỗ trợ từ hệ thống để thực hiện cơng việc thường nhật của họ ? u Ai phải thực hiện cơng việc bảo dưỡng, quản trị và giữ cho hệ thống hoạt động ? u Hệ thống sẽ kiểm sốt thiết bị phần cứng nào ? u Hệ thống đang xây dựng cần tương tác với những hệ thống khác hay khơng ? u Ai hoặc vật thể nào quan tâm đến hay chịu ảnh hưởng bởi kết quả mà hệ thống phần mềm tạo ra ? Actor trong UML l Actor được biểu diễn bằng ký hiệu hình người l Actor được xem là một lớp (class) có stereotype là <<actor>> l Giữa các actor có thể có quan hệ tổng q hố u Ví dụ: Sinh viên, giảng viên và khách đều là độc giả của hệ thống quản lý thư viện l Ví dụ: một hệ thống đăng ký mơn học trong trường đại học Actor trong UML Sinh viên Hệ thống đăng ký môn học Phòng Đào Tạo Giảng viên Phòng Tài Vụ 14/9/2009 8 Actor trong UML Người đăng ký mailbox Hệ thống gửi nhận mail Quản trò viên Khái niệm về Use-case l Biểu diễn một chức năng của hệ thống phần mềm l Use-case được biểu diễn bằng một chuỗi các thơng điệp trao đổi bên trong hệ thống và một hoặc một số thơng điệp trao đổi với actor l Một số quy ước u Use-case ln ln được bắt đầu bằng thơng điệp đến từ actor u Use-case phải hồn tất: chuỗi thơng điệp phải kết thúc bằng kết quả cụ thể. u Lỗi thường gặp: chia nhỏ use-case trở thành những chức năng vụn vặt Khái niệm về Use-case l Điểm mở rộng là một vị trí trong use-case mà tại đó có thể chèn chuỗi sự kiện của một use-case khác l Use-case có thể chứa điều kiện rẽ nhánh, xử lý lỗi, ngoại lệ . l Minh dụ của use-case là kịch bản (scenario): miêu tả cụ thể trình tự các sự kiện Tìm kiếm Use-case l Trả lời một số câu hỏi như u Actor u cầu chức năng gì của hệ thống ? u Actor cần phải đọc, tạo, xố, sửa đổi hoặc lưu trữ thơng tin nào đó của hệ thống khơng ? u Actor cần thiết phải được cảnh báo về những sự kiện trong hệ thống, hay actor cần phải báo hiệu cho hệ thống về vấn đề nào đó khơng ? u Hệ thống có thể hỗ trợ một số cơng việc thường nhật của actor nào đó hay khơng ? 14/9/2009 9 Một số câu hỏi cần lưu ý l Một số câu hỏi khác cần chú ý u Hệ thống cần dữ liệu input/ouput nào ? Dữ liệu đó đến từ đâu ? u Những khó khăn nào liên quan đến hiện thực của hệ thống hiện tại (chẳng hạn hệ thống quản lý bằng giấy tờ nên được thay thế bằng hệ thống quản lý trên máy tính) ? Use-case trong UML l Use-case được biểu diễn bằng hình ellipse l Giữa use-case và actor thường có quan hệ liên kết l Giữa các use-case cũng có quan hệ liên kết hoặc tổng qt hố l Ví dụ: một hệ thống đăng ký mơn học theo tín chỉ trong trường đại học Use-case trong UML Sinh viên Giảng viên Đăng ký học Đăng ký dạy Quản lý SV Quản lý MH Thêm SV mới <<extend>> Thiết lập các mối quan hệ l Quan hệ giữa actor với actor l Quan hệ giữa actor với use-case l Quan hệ giữa use-case với use-case l UML đưa ra quan hệ liên kết (association) 14/9/2009 10 Quan hệ liên kết l Quan hệ liên kết chỉ ra một quan hệ có ý nghĩa giữa hai bên u Trong thực tế: hành khách với lái xe, sinh viên với giáo viên, giảng viên với mơn học … l Một số tính chất liên quan u Tên của liên kết u Một chiều hay 2 chiều u Bậc: số lượng thực thể tham gia vào liên kết tại mỗi bên Quan hệ liên kết trong UML l UML biểu diễn liên kết như là một đoạn thẳng (hai chiều) hoặc mũi tên (một chiều) l Có thể áp dụng stereotype: u <<include>> u <<extend>> u <<communicate>> u . Liên kết trong mơ hình nghiệp vụ l Liên kết là quan hệ duy nhất giữa actor và use-case l Có thể là một chiều hoặc hai chiều u actor kích hoạt use-case và nhận kết quả về: liên kết 2 chiều u actor kích hoạt use-case, khơng quan tâm kết quả về: liên kết 1 chiều Người bán hàng Đặt hàng 1 * Quan hệ giao tiếp l Là quan hệ liên kết có stereotype là <<communicate>> l Dùng để liên kết giữa actor với use-case mà nó kích hoạt Giảng viên Đăng ký dạy <<communicate>> [...]... SV, thơng tin GV, nhóm l p h c, đăng ký nhóm, s tay sinh viên … u Đ i v i h th ng mail, nh n di n các đ i tư ng th c th như: h p thư, thơng đi p mail… u Đ i tư ng đư ng đ ng m c, đ t gãy và b n đ trong chương trình v b m t đ a hình Message # subject: String # sent: Date # content: String + GetSubject( ): String + toString( ): String Đ i tư ng/l p biên mơn h c h tín ch qua WEB, nh n di n các... Catalog B c c a thu c tính Fracture - ID: Integer - open: boolean - altitude: double * CourseOfferring + GetName( ): String + GetCode( ): String Nh n di n các thu c tính l Chương trình bi u di n b m t đ a hình - Nh n di n các thu c tính cho các đ i tư ng: Isoquant, Fracture l H th ng đăng ký mơn h c h tín ch qua WEB Nh n di n các thu c tính cho các đ i tư ng: CourseOffering,... WEB: các đ i tư ng Book, Magazine có m t s thu c tính chung ⇒ hình thành l p LibraryItem u Đ i v i h th ng đăng ký mơn h c tín ch qua WEB: l p PeopleInfo là l p cơ s c a StudentInfo và LecturerInfo u Chương trình v b m t đ a hình: l p MapCurve là l p cơ s c a đư ng đ ng m c Isoquant và đ t gãy Fracture Quan h t ng qt hóa l Ví d : trong h th ng đăng ký mơn h c tín ch qua WEB, l p PeopleInfo là t ng... s l p và quan h gi a chúng ⇒ mơ t khía c nh tĩnh (static) c a h th ng l H th ng ph c t p có nhi u l p ⇒ c n xây d ng nhi u lư c đ l p, m i lư c đ mơ t m t ph n c a h th ng l Ví d : m t lư c đ l p c a chương trình hi n th b m t đ a hình l Lư c đ l p đư c b sung và hồn thi n trong mơ hình thi t k (thêm m t s l p, chi ti t các thu c tính và tác v , làm rõ các quan h ) Isoquant isoquants * FieldMap . 14/9/2009 1 Chương 8 Công nghệ phần mềm hướng đối tượng Mô hình hướng đối tượng Giới thiệu l Mô hình hướng đối tượng giới thiệu một quan. tích/thiết kế hướng đối tượng l Mô hình hướng đối tượng quan niệm thế giới bao gồm các đối tượng (object) sinh sống và tương tác với nhau l Đối tượng bao gồm

Ngày đăng: 19/10/2013, 23:15

Hình ảnh liên quan

lMơ hình hướng đối tượng giới thiệu một quan điểm lập trình(và phân tích/thiết kế)  khác hẳn so với trường phái cổ điển(cĩ cấu trúc) - Chương 8-Công nghệ phần mềm hướng đối tượng

l.

Mơ hình hướng đối tượng giới thiệu một quan điểm lập trình(và phân tích/thiết kế) khác hẳn so với trường phái cổ điển(cĩ cấu trúc) Xem tại trang 1 của tài liệu.
Mơ hình hướng đối tượng - Chương 8-Công nghệ phần mềm hướng đối tượng

h.

ình hướng đối tượng Xem tại trang 1 của tài liệu.
Ví dụ bao gộp C++ - Chương 8-Công nghệ phần mềm hướng đối tượng

d.

ụ bao gộp C++ Xem tại trang 4 của tài liệu.
lớp đặc tả nĩ và của các lớp cha ⇒ tính đa hình - Chương 8-Công nghệ phần mềm hướng đối tượng

l.

ớp đặc tả nĩ và của các lớp cha ⇒ tính đa hình Xem tại trang 5 của tài liệu.
Actor trong UML - Chương 8-Công nghệ phần mềm hướng đối tượng

ctor.

trong UML Xem tại trang 7 của tài liệu.
Use-case trong UML - Chương 8-Công nghệ phần mềm hướng đối tượng

se.

case trong UML Xem tại trang 9 của tài liệu.
Thiết lập các mối quan hệ - Chương 8-Công nghệ phần mềm hướng đối tượng

hi.

ết lập các mối quan hệ Xem tại trang 9 của tài liệu.
Liên kết trong mơ hình nghiệp vụ - Chương 8-Công nghệ phần mềm hướng đối tượng

i.

ên kết trong mơ hình nghiệp vụ Xem tại trang 10 của tài liệu.
Xây dựng mơ hình use-case - Chương 8-Công nghệ phần mềm hướng đối tượng

y.

dựng mơ hình use-case Xem tại trang 12 của tài liệu.
l Mơ hình use-case bao gồm các lược đồ use-case (us e- - Chương 8-Công nghệ phần mềm hướng đối tượng

l.

Mơ hình use-case bao gồm các lược đồ use-case (us e- Xem tại trang 12 của tài liệu.
Xây dựng mơ hình use-case - Chương 8-Công nghệ phần mềm hướng đối tượng

y.

dựng mơ hình use-case Xem tại trang 12 của tài liệu.
Xây dựng mơ hình use-case - Chương 8-Công nghệ phần mềm hướng đối tượng

y.

dựng mơ hình use-case Xem tại trang 12 của tài liệu.
Xây dựng mơ hình use-case - Chương 8-Công nghệ phần mềm hướng đối tượng

y.

dựng mơ hình use-case Xem tại trang 12 của tài liệu.
l Mơ hình phân tích sẽ tìm kiếm các đối tượng “sống” - Chương 8-Công nghệ phần mềm hướng đối tượng

l.

Mơ hình phân tích sẽ tìm kiếm các đối tượng “sống” Xem tại trang 13 của tài liệu.
l Đối tượng cũng được biểu diễn bằng hình chữ nhật, - Chương 8-Công nghệ phần mềm hướng đối tượng

l.

Đối tượng cũng được biểu diễn bằng hình chữ nhật, Xem tại trang 14 của tài liệu.
l Sự xuất hiện của lớp cơ sở làm cho mơ hình phân - Chương 8-Công nghệ phần mềm hướng đối tượng

l.

Sự xuất hiện của lớp cơ sở làm cho mơ hình phân Xem tại trang 18 của tài liệu.
Quan hệ tổng quát hĩa - Chương 8-Công nghệ phần mềm hướng đối tượng

uan.

hệ tổng quát hĩa Xem tại trang 19 của tài liệu.
l Ví dụ: lớp Registration - Chương 8-Công nghệ phần mềm hướng đối tượng

l.

Ví dụ: lớp Registration Xem tại trang 20 của tài liệu.
Quan hệ liên kết - Chương 8-Công nghệ phần mềm hướng đối tượng

uan.

hệ liên kết Xem tại trang 20 của tài liệu.
- ID: int - open: boolean - Chương 8-Công nghệ phần mềm hướng đối tượng

int.

open: boolean Xem tại trang 21 của tài liệu.
Xây dưng lược đồ lớp - Chương 8-Công nghệ phần mềm hướng đối tượng

y.

dưng lược đồ lớp Xem tại trang 21 của tài liệu.
Thiết lập các package - Chương 8-Công nghệ phần mềm hướng đối tượng

hi.

ết lập các package Xem tại trang 22 của tài liệu.
l Hành vi của hệ thống được mơ tả bằng mơ hình động - Chương 8-Công nghệ phần mềm hướng đối tượng

l.

Hành vi của hệ thống được mơ tả bằng mơ hình động Xem tại trang 22 của tài liệu.
Miêu tả trình tự - Chương 8-Công nghệ phần mềm hướng đối tượng

i.

êu tả trình tự Xem tại trang 25 của tài liệu.
l Các hành động bên trong: các hành động hoặc tác vụ được thực hiện khi đối tượng nằm ở trạng thái đang xét; cĩ cú pháp như - Chương 8-Công nghệ phần mềm hướng đối tượng

l.

Các hành động bên trong: các hành động hoặc tác vụ được thực hiện khi đối tượng nằm ở trạng thái đang xét; cĩ cú pháp như Xem tại trang 27 của tài liệu.
l Một số nhãn hành động (action-label) được quy ước trước: - Chương 8-Công nghệ phần mềm hướng đối tượng

l.

Một số nhãn hành động (action-label) được quy ước trước: Xem tại trang 27 của tài liệu.
Nhận diện một số lớp thiết kế - Chương 8-Công nghệ phần mềm hướng đối tượng

h.

ận diện một số lớp thiết kế Xem tại trang 30 của tài liệu.
l Mơ hình thiết kế bao trùm cả khía cạnh tĩnh và động - Chương 8-Công nghệ phần mềm hướng đối tượng

l.

Mơ hình thiết kế bao trùm cả khía cạnh tĩnh và động Xem tại trang 32 của tài liệu.

Từ khóa liên quan

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

Tài liệu liên quan