You are on page 1of 4

03/11/2010

Trường Đại học công nghiệp Hà Nội Nội dung chi tiết
KHOA CÔNG NGHỆ THÔNG TIN
1. Các khái niệm hướng đối tượng
2. Tổng quan về ngôn ngữ mô hình hóa UML
3. Mô hình hóa yêu cầu (biểu đồ ca sử dụng)
Mô hình hóa lĩnh vực ứng dụng (biểu đồ lớp lĩnh vực)
PHÂN TÍCH THIẾT KẾ
4.

5. Mô hình hóa hành vi( biểu đồ tương tác, trạng thái)


HƯỚNG ĐỐI TƯỢNG 6. Biểu đồ kiến trúc vật lý và phát sinh mã trình
7. Mô hình hóa dữ liệu

Gv: Vũ Thị Dương


Email: duongvt01@gmail.com

2010 Phân tích thiết kế hướng đối tượng Bài 1 - 2

Kiến trúc phần mềm?


 Kiến trúc hệ thống là kế hoạch chi tiết của các bộ phận hình thành hệ
thống
UML định nghĩa:
Bài 8

 Kiến trúc là cấu trúc tổ chức của hệ thống


Kiến trúc bao gồm các bộ phận tương tác thông qua giao diện
Biểu đồ kiến trúc vật lý

 Theo Buschman:
Kiến trúc phần mềm là mô tả các phân hệ, các thành phần của hệ thống
và phát sinh mã trình

phần mềm và các quan hệ giữa chúng


 Hai loại kiến trúc hệ thống
 Kiến trúc logíc
 Chỉ ra các lớp đối tượng và các quan hệ giữa chúng để hình thành chức năng
hệ thống
 Nó được thể hiện bằng các biểu đồ UC, biểu đồ lớp, trạng thái, hoạt động...
 Kiến trúc vật lý
 Là mô tả từ khía cạnh phần cứng và các mođun phần mềm trên đó
 Nó được mô tả bằng các biểu đồ cài đặt: biểu đồ thành phần và biểu đồ triển
khai
Phân tích thiết kế hướng đối tượng Bài - 4/20

Các thành phần Các thành phần


 Thành phần?  Phân loại thành phần dựa vào khuôn dập chuẩn
 Một bộ phận vật lý vadf thay thế được của hệ thống thích ứng và  <<executable>>: 1 Thành phần có thể thực hiện trên 1 nút
cung cấp sự thực hiện cho một tập các giao diện  <<library>>: một thư viện tĩnh hay động
 Phân loại thành phần  <<table>>: một thành phần biểu diễn 1 bảng CSDL
 <<file>>: một thành phần biểu diễn một tư liệu chứa mã nguồn hay dữ liệu
 Các thành phần bố trí (deployment componets): các thành phần cần và đủ
tạo nên hệ thống khả thi: thư viện động (.dll), các mã khả thi (.exe)  <<document>>: một thành phần biểu diễn một tư liệu
 Thành phần là sản phẩm làm việc (work product components): là  Phân loại thành phần dựa vào khuôn dập không chuẩn
các thành phần tồn tích từ quá trình phát triển: mã nguồn, tệp dữ  <<application>>: Mặt tiền của hệ thống (html, asp.jsp, màn hình..)
liệu…  <<database>>: một cơ sở dữ liệu quan hệ, đối tương/quan hệ…
 Các thành phần thực hiện (execution): được tạo nên như là 2 kết
 <<infrastructure>>: một thành phần kỹ thuật: dịch vụ lưu trữ, kiểm
quả của một hệ thực hiện : COM+, cá thể hóa từ DLL
soát đăng nhập
 <<source code>>: Một tệp mã nguồn (.cpp. .java)
 ……….

Phân tích thiết kế hướng đối tượng Bài - 5/20 Phân tích thiết kế hướng đối tượng Bài - 6/20

1
03/11/2010

Các thành phần Bổ sung chi tiết cho thành phần


 Các loại thành phần  Stereotype
 Lựa chọn biểu tượng để biểu diễn thành phần
TaskSpec TaskBody
PackageSpec PackageBody  Có thể là:
 <none>, ActiveX, Applet, Subroutine Spec, dll... tự định nghĩa
 Language
 Trong Rose có thể gán ngôn ngữ cho thành phần
 Cho khả năng phát sinh các ngôn ngữ khác nhau cho mỗi thành phần
Đặc tả và thân nhiệm vụ
Đặc tả và thân gói
Là các thành phần Run-time  Declaration
Gói là cài đặt lớp
Đặc tả gói là tệp header
Biểu diễn các gói có thread độc lập  Gán các khai báo vào mã trình của từng thành phần
Database
 Class
 Gán lớp vào thành phần trước khi phát sinh mã trình
 Có thể ánh xạ một hay nhiều lớp vào một thành phần
 Dependency
Biểu diễn CSDL  Thành phần chỉ có một loại quan hệ: quan hệ phụ thuộc
Chứa một hay nhiều lược đồ
 Tránh hình thành quan hệ vòng

Phân tích thiết kế hướng đối tượng Bài - 7/20 Phân tích thiết kế hướng đối tượng Bài - 8/20

Biểu đồ thành phần Thí dụ Biểu đồ thành phần


Credit
 Biểu đồ thành phần là biểu đồ hiển MainProgram CartInterface

thị các thành phần trong hệ thống


và phụ thuộc giữa chúng
 Thành phần A phụ thuộc vào Flight Reservation

thành phần B khi vài lớp trong A


phụ thuộc vào vài lớp trong B CartMgr ProductMgr ProductCollection ProductItem

 Biểu đồ cho biết


<<DLL>>
 Thư viện nào được sử dụng, tệp FlightServer
khả thực (.exe) nào được tạo ra
khi dịch chương trình
CartItem
 Các quan hệ giữa các thư viện mã CartCollection
trình
 Có khả năng tổ chức các thành
phần vào các gói và thiết lập mỗi
liên quan phụ thuộc giữa chung
Phân tích thiết kế hướng đối tượng Bài - 9/20 Phân tích thiết kế hướng đối tượng Bài - 10/20

Tạo lập biểu đồ thành phần Biểu đồ thành phần


 Chiến lược thành lập từ dưới lên  Ví dụ biểu đồ thành phần bài toán: Đăng ký môn học
 Tập trung nghiên cứu các chức năng nghiệp vụ để tìm ra các lớp
SinhVien
sau đó gom thành các thành phần (có bổ sung lớp phụ trợ)
Vẽ các mối liên quan bằng các đường đường đứt nét
<<infrastructure>>
 BaoMat

 Nguyên tắc phân loại lớp dựa vào bản chất <<Application>>
GiaoVu LopGiang
 Lớp giao diện người dùng: Lớp cài đặt màn hình, báo cáo,… Các
lớp này đặt trong thành phần có khuôn dập <<application>>
 Các lớp kỹ thuật: Các lớp cài đặt dịch vụ ở mức hệ thống như: bảo
LichBieu
mật, trường cữu, hoặc middleware- <<infrastructure>> <<Application>>
Giaovien <<Infrastructure>>
 Lớp lĩnh vực: lớp chứa thông tin lĩnh vực và các dịch vụ liên quan. TruongCuu
Chúng được đưa vào thành phần lĩnh vực – <<domain>>
CacPhuong
Tien

CSDL

Phân tích thiết kế hướng đối tượng Bài - 11/20 Phân tích thiết kế hướng đối tượng Bài - 12/20

2
03/11/2010

Biểu đồ thành phần Biểu đồ triển khai


 Phân loại dựa vào hình thức giao tiếp  Biểu đồ triển khai mô tả kiến trúc phần cứng (các nút) có
 Lớp dịch vụ: lớp chỉ nhận mà không gửi thông điệp phần mềm chạy trên chúng, bao gồm các bộ xử lý, các
 Lớp khách hàng: lớp chỉ gửi mà không nhận. Thường thì lớp khách tiến trình, các thiết bị và các kết nối giữa chúng
hàng thuộc vào thành phần ứng dụng  Mô tả tôpô của hệ thống
 Lớp khách hàng/dịch vụ: Là các lớp còn lại vừa nhận và vừa gửi. Vị  Chỉ ra toàn bộ các nút trên mạng, kết nối giữa chúng và các phần
trí có thể là ở một thành phần ứng dụng hay ở 1 thành phần lĩnh mềm chạy trên chúng
vưc jtuyf theo bản chất lớp nghiêng về phía khách hay dịch vụ
 Nút là đối tượng vật lý có tài nguyên tính toán
 Máy tính, máy in, thiết bị đọc thẻ từ và truyền tin
 Giữa các nút là kết nối giao tiếp, kiểu kết nối được thể
hiện bằng stereotype

Phân tích thiết kế hướng đối tượng Bài - 13/20 Phân tích thiết kế hướng đối tượng Bài - 14/20

Các phần tử của biểu đồ triển khai Thí dụ biểu đồ triển khai
 Bộ xử lý
Database
 Là máy xử lý: máy chủ, máy trạm Server
Processor
 Bổ sung thuộc tính:
 Stereotype Oracle Server
Application
 Mô tả vật lý của bộ xử lý: tốc độ, dung lượng nhớ Server
Printer
 Lập lịch xử lý: Preemptive, Non-preemptive, Cyclic,
Executive, Manual
Main Program
 Thiết bị Web
 Là phần cứng chỉ có một mục đích: máy in, scanner... Server

 Bổ sung thuộc tính: Internet Client


Device Information Server
 Stereotype Client
Workstation #1

 Mô tả vật lý của thiết bị Workstation #2

 Kết nối Web Browser


 Là liên kết vật lý giữa các thiết bị và bộ xử lý Web Browser
 Bổ sung stereotype và đặc tính vật lý cho kết nối: T1
 Bổ sung tiến trình cho bộ xử lý
Phân tích thiết kế hướng đối tượng Bài - 15/20 Phân tích thiết kế hướng đối tượng Bài - 16/20

Phát sinh mã trình Phát sinh mã trình


 Sáu bước cơ bản để phát sinh mã trình  Bước 1: Kiểm tra mô hình
 Kiếm tra mô hình  Rose có chức năng kiểm tra mô hình độc lập ngôn ngữ để đảm
bảo tính nhất quán trong mô hình
 Tạo lập thành phần
 Khi kiểm tra có thể phát hiện các lỗi sau
 Ánh xạ lớp vào thành phần  Ánh xạ không đầy đủ: Các đối tượng hay thông điệp trong biểu đồ
 Gán thuộc tính phát sinh mã trình trình tự chưa ánh xạ vào thao tác hay lớp trong biểu đồ lớp
 Chọn lớp, thành phần hay gói để phát sinh mã  Vi phạm xâm nhập: Thí dụ, hai lớp trong hai gói có quan hệ nhưng vẽ
thiếu quan hệ giữa hai gói
 Phát sinh mã trình  Kiểm tra phụ thuộc ngôn ngữ: Sẽ phát hiện, thí dụ, nhiều lớp cùng tên
khai báo public trong một mođun chương trình
 Bước 2: Tạo lập thành phần
 Tạo lập thành phần để chứa lớp
 Trước khi phát sinh mã trình phải ánh xạ các lớp vào thành phần
tương ứng
 Bổ sung quan hệ thành phần trên Biểu đồ thành phần

Phân tích thiết kế hướng đối tượng Bài - 17/20 Phân tích thiết kế hướng đối tượng Bài - 18/20

3
03/11/2010

Phát sinh mã trình Phát sinh mã trình


 Bước 3: Ánh xạ lớp vào thành phần  Bước 5: Chọn lớp, thành phần hay gói
 Mỗi thành phần mã nguồn biểu diễn tệp mã nguồn cho một hoặc
 Có thể chọn lớp, thành phần hay gói để phát sinh mã trình vào các
vài lớp
thời điểm khác nhau
 Thí dụ C++: Mỗi lớp ánh xạ đến hai thành phần – Các tệp Header và
Body  Phát sinh mã từ biểu đồ hay Browser
 Bước này yêu cầu ánh xạ lớp vào thành phần tương ứng  Có thể phát sinh mã trình cho một vài lớp, thành phần hay gói
 Bước 4: Đặt đặc tính cho phát sinh mã trình đồng thời
 Nhiều đặc tính có thể gán cho lớp, thuộc tính, thành phần của mô  Bước 6: Phát sinh mã trình
hình để điều khiển mã được phát sinh như thế nào.  Lựa chọn ngôn ngữ theo yêu cầu để phát sinh mã từ mô hình
 Thí dụ C++: Đặc tính GenerateGetOperation điều khiển việc có phát
sinh hàm Get() hay không.
 Thí dụ khác: GenerateDefaultConstructor
 Đặt tập đặc tính tạm thời
 Thay vì thay đổi trực tiếp tập đặc tính ta có thể tạo ra tập đặc tính
tạm thời để sử dụng, không ảnh hưởng đến tập đặc tính mặc định
 Hủy bỏ tập đặc tính tạm thời

Phân tích thiết kế hướng đối tượng Bài - 19/20 Phân tích thiết kế hướng đối tượng Bài - 20/20

Phát sinh mã trình Phát sinh mã trình


 Nhiệm vụ của người phát triển sau khi Rose sinh mã trình
 Cái gì đã được phát sinh từ mô hình?  Thu thập các tệp mã trình, viết mã trình cho các thao tác lớp
 Thực tế  Thiết kế giao diện đồ họa
 Không có công cụ mô hình hóa nào phát sinh mã trình đầy đủ  Thí dụ đoạn mã trình do Rose phát sinh
 Rose cũng chỉ phát sinh khung chương trình #include "stdafx.h"
#include "Order.h"
 Các phần tử được phát sinh //##ModelId=3A77E3CD0280
 Lớp: Mọi lớp trong mô hình được sinh mã Boolean Order::Create()
{
 Thuộc tính: Mã trình sẽ chứa các thuộc tính lớp bao gồm phạm vi, kiểu // TODO: Add your specialized code here.
dữ liệu và giá trị mặc định, các hàm Get(), Set(). // NOTE: Requires a correct return value to compile.
}
 Signature: Các thao tác được khai báo trong mã trình cùng với danh //##ModelId=3A77E3E60316
sách tham số, kiểu dữ liệu của tham số và kiểu giá trị cho lại của thao Boolean Order::SetInfo(Integer OrderNum, String Customer, Date OrderDate, Date
tác FillDate)
{
 Quan hệ: Một số quan hệ trong mô hình được chuyển sang thuộc tính // TODO: Add your specialized code here.
 Thành phần: Mỗi thành phần được hiện thực trong tệp tương ứng // NOTE: Requires a correct return value to compile.
}
 Tài liệu: Tài liệu trong mô hình được chèn vào nơi thích ứng trong mã //##ModelId=3A77E40E0230
trình String Order::GetInfo()
{
// TODO: Add your specialized code here.
Phân tích thiết kế hướng đối tượng Bài - 21/20 // NOTE: Requires a correct
Phân return
tích thiếtvalue to compile.
kế hướng đối tượng Bài - 22/20
}

Phát sinh mã trình Tóm tắt


class Order
{
public:
//##ModelId=3A7F695F019A
 Bài này đã xem xét các vấn đề sau
OrderItem* theOrderItem;  Kiến trúc vật lý của hệ thống
//##ModelId=3A77E3CD0280
 Xây dựng biểu đồ thành phần
Boolean Create();
//##ModelId=3A77E3E60316  Các thành phần phần mềm và quan hệ giữa chúng
Boolean SetInfo(Integer OrderNum, String Customer, Date OrderDate, Date  Các phần tử đồ họa vẽ biểu đồ thành phần
FillDate);
 Xây dựng biểu đồ triển khai
//##ModelId=3A77E40E0230
String GetInfo();  Các phần tử đồ họa vẽ biểu đồ triển khai
private:  Các bước chuyển đổi mô hình thành phần mềm
//##ModelId=3A7E13F9038E
Integer OrderNumber;
//##ModelId=3A7E14260122
String CustomerName;
//##ModelId=3A7E14470208
Date OrderDate;
//##ModelId=3A7E145303D4
Date OrderFillDate;
};
Phân tích thiết kế hướng đối tượng Bài - 23/20 Phân tích thiết kế hướng đối tượng Bài - 24/20

You might also like