SlideShare a Scribd company logo
1 of 101
Download to read offline
Giảng Viên: Trần Thị Kim Chi
Chương I
1
NỘI DUNG
1) Phân tích và thiết kế hệ thống là gì?
2) Chu kỳ phát triển hệ thống thông tin (systems development Life
cycle - SDLC).
3) Mục đích và vai trò của phân tích hệ thống (system analyst)
4) Các phương pháp phát triển hệ thống (Agile, RUP)
5) Phân biệt chức năng của Phân tích và Thiết kế
6) Các bước phân tích thiết kế hệ thống
7) Phương pháp phân tích thiết kế hướng đối tượng
2
CÁC KHÁI NIỆM VỀ PHÂN TÍCH THIẾT KẾ HỆ THỐNG
1) KHÁI NIỆM HỆ THỐNG
─ Hệ thống (system) là một tập các thành phần tương tác với nhau, kết hợp
với nhau để thực hiện các mục tiêu tạo thành hệ thống.
▪ Vd: hệ thống thanh toán, hệ thống truyền thông, hệ thống giao thông, hệ
thống mạng
─ Trong một hệ thống, mỗi một thành phần có thể có những chức năng khác
nhau nhưng khi kết hợp lại chúng có những chức năng đặc biệt.
3
CÁC KHÁI NIỆM VỀ PHÂN TÍCH THIẾT KẾ HỆ THỐNG
2) KHÁI NIỆM HỆ THỐNG THÔNG TIN
• Hệ thống thông tin (Information system): hệ thống nhiều thành phần liên quan đến việc
thu thập, xử lý, lưu trữ dữ liệu, truyền đạt thông tin
• Một hệ thống thông tin thường bao gồm: phần cứng (hardware), phần mềm (software), dữ
liệu (data), các qui trình (processes), và con người(people), và các hệ mạng truyền thông
• Để phát triển một hệ thống thông tin, cần sự kết hợp của người quản lý, người dùng,
quản trị mạng, nhà thiết kế web, lập trình viên và các nhà phân tích và thiết kế hệ thống.
• Ví dụ:
─ Tập hợp các báo cáo kế toán của một tổ chức là HTTT về hoạt động tài chính của đơn vị
đó.
─ Học bạ và bằng tốt nghiệp là HTTT về kết quả học tập và rèn luyện của học sinh, sinh viên
trong quá trình đào tạo tại trường...
4
PHÂN LOẠI HỆ THỐNG THÔNG TIN
1. Hệ thống xử lý giao dịch (Transaction processing system – TPS): là một
HTTT có chức năng thu thập và xử lý dữ liệu về các giao dịch nghiệp vụ.
2. Hệ thống thông tin quản lý (Management information system - MIS): là
HTTT cung cấp thông tin cho việc báo cáo hướng quản lý dựa trên việc xử
lý giao dịch và các hoạt động của tổ chức.
3. Hệ thống hỗ trợ quyết định (Decision support system – DSS): là HTTT
vừa có thể trợ giúp xác định các thời cơ ra quyết định, vừa có thể cung cấp
thông tin để trợ giúp việc ra quyết định.
5
PHÂN LOẠI HỆ THỐNG THÔNG TIN
4. Hệ thống thông tin điều hành (Excutive information system – EIS) : là HTTT
hỗ trợ nhu cầu lập kế hoạch và đánh giá của các nhà quản lý điều hành.
5. Hệ thống chuyên gia (Expert System): là HTTT thu thập tri thức chuyên môn của
các chuyên gia rồi mô phỏng tri thức đó nhằm đem lại lợi ích cho người sử dụng
bình thường.
6. Hệ thống truyền thông và cộng tác (Communication and collaboration system): là
HTTT làm tăng hiệu quả giao tiếp giữa các nhân viên, đối tác, khách hàng và nhà
cung cấp để củng cố khả năng cộng tác giữa họ.
7. Hệ thống tự động văn phòng (Office automation system): là HTTT hỗ trợ các
hoạt động nghiệp vụ văn phòng nhằm cải thiện luồng công việc giữa các nhân
viên.
6
CÁC LOẠI ỨNG DỤNG CỦA HỆ THỐNG THÔNG TIN
1. Hệ thống thông tin quản lý: Bao gồm các hệ thống thông tin hỗ trợ các hoạt động
nghiệp vụ và quản lý của các doanh nghiệp, các tổ chức.
Ví dụ: hệ thống quản lý nhân sự, hệ thống kế toán, hệ thống tính cước và chăm sóc
khách hàng, hệ thống quản lý thư viện, hệ thống đào tạo trực tuyến ...
2. Các hệ thống Website: là các hệ thống có nhiệm vụ cung cấp thông tin cho người
dùng trên môi trường mạng Internet.
3. Hệ thống thương mại điện tử: Là các hệ thống website đặc biệt phục vụ việc trao
đổi mua bán hàng hoá, dich vụ trên môi trường Internet. Hệ thống TMDT bao gồm cả
các nền tảng hỗ trợ các giao thức mua bán, các hình thức thanh toán, chuyển giao
hàng hoá.
4. Hệ thống điều khiển: là các hệ thống phần mềm gắn với các thiết bị phần cứng hoặc
các hệ thống khác nhằm mục đích điều khiển và giám sát hoạt động của thiết bị hay
hệ thống đó.
7
KHÁI NIỆM VỀ PHÂN TÍCH THIẾT KẾ HỆ THỐNG
• Phân tích thiết kế hệ thống thông tin là quá trình tìm hiểu và mô phỏng lại
hiện tượng, quy trình nghiệp vụ trong thế giới thực từ đó xây dựng hệ thống để
giải quyết bài toán đặt ra trên máy tính.
• Mục tiêu của phân tích thiết kế hệ thống: Cải tiến tổ chức hệ thống cũ hoặc phát
triển một hệ thống mới giúp người dùng thực hiện các tác vụ dễ dàng và hiệu quả,
cung cấp một cái nhìn tổng quan cho các nhà phát triển hệ thống về tất cả các khái
niệm cần thiết để xây dựng một hệ thống
8
TẠI SAO PHẢI PHÂN TÍCH THIẾT KẾ HỆ THỐNG
• Chất lượng phân tích thiết kế hệ thống là nhân tố quyết định chất lượng phần
mềm, không phân tích hoặc phân tích không tốt sẽ dẫn đến phần mềm chất
lượng thấp:
• Không quản lý được những thay đổi về yêu cầu
• Khó kiểm thử
• Khó bảo trì
• Không có tính tiến hóa
• Không tái sử dụng được
• Thông qua việc phân tích, người phân tích sẽ xác định được yêu cầu của hệ
thống và đưa ra giải pháp giải quyết vấn đề.
9
VAI TRÒ CỦA PHÂN TÍCH THIẾT KẾ HỆ THỐNG
▪ Phân tích thiết kế đóng vai trò rất quan trọng trong quy trình xây dựng phần mềm:
▪ Giúp nhà phát triển và các bên liên quan có cái nhìn đầy đủ, đúng đắn, chính
xác về hệ thống thông tin sẽ xây dựng trong tương lai.
▪ Giúp các nhà phát triển hệ thống thuận lợi trong việc sửa chữa, bổ sung và
nâng cấp hệ thống khi có yêu cầu, tránh được những sai lầm trong thiết kế, cài
đặt.
10
VAI TRÒ CỦA NHÀ PHÂN TÍCH THIẾT KẾ HỆ THỐNG
• Vai trò
• Các nhà phân tích hệ thống đóng vai trò quan trọng trong bộ phận Công nghệ
thông tin, giúp lập kế hoạch, phát triển và duy trì hệ thống thông tin. Họ là
người chuyển đổi các yêu cầu nghiệp vụ thành các chức năng của hệ thống.
• Các kỹ năng cần có của nhà phân tích thiết kế hệ thống
• Giao tiếp, tư duy phân tích,
• Có năng lực về mặt kỹ thuật, có thể lập kế hoạch về tài nguyên, lịch biểu và chi
phí phục vụ cho việc phát triển hệ thống
11
VAI TRÒ CỦA NHÀ PHÂN TÍCH THIẾT KẾ HỆ THỐNG
• VÍ DỤ
12
CHU KỲ PHÁT TRIỂN HỆ THỐNG THÔNG TIN
(SYSTEMS DEVELOPMENT LIFE CYCLE - SDLC)
• Tiến trình phát triển phần mềm bao gồm 2 khía cạnh:
• Kỹ thuật: Vòng đời phát triển phần mềm, phương pháp, và công cụ.
• Quản lý: Quản lý dự án phần mềm
13
CHU KỲ PHÁT TRIỂN HỆ THỐNG THÔNG TIN
(SYSTEMS DEVELOPMENT LIFE CYCLE - SDLC)
SDLC là phương pháp tiếp cận từng giai đoạn để
phân tích thiết kế hệ thống.
• Vòng đời phát triển hệ thống gồm 4 giai đoạn,
trong mỗi giai đoạn có nhiều bước:
• Lập kế hoạch (Planning)
• Phân tích (Analysis)
• Thiết kế (Design)
• Hiện thực (Implementation)
14
CHU KỲ PHÁT TRIỂN HỆ THỐNG THÔNG TIN
(SYSTEMS DEVELOPMENT LIFE CYCLE - SDLC)
Gồm các giai đoạn chi tiết sau:
1. Nghiên cứu sơ bộ - Nhận diện vấn đề (Preliminary Investigation hay còn gọi là
Feasibility Study)
2. Phân tích và yêu cầu (Analysis)
3. Thiết kế hệ thống (Design of the System)
4. Xây dựng phần mềm (Software Construction)
5. Thử nghiệm hệ thống (System Testing)
6. Thực hiện triển khai (System Implementation)
7. Bảo trì và nâng cấp (Maintain and upgrad)e
15
CHU KỲ PHÁT TRIỂN HỆ THỐNG THÔNG TIN
(SYSTEMS DEVELOPMENT LIFE CYCLE - SDLC)
1) Nghiên cứu sơ bộ (Preliminary Investigation hay còn gọi là Feasibility Study):
• Khảo sát và thu thập yêu cầu của khách hàng
• Sử dụng các kỹ thuật lấy yêu cầu khách hàng:
• Phỏng vấn trực tiếp
• Bảng câu hỏi
• Tổ chức buổi hội thảo
• →Kết quả của giai đoạn này là: Báo cáo các yêu cầu của khách hàng
16
CHU KỲ PHÁT TRIỂN HỆ THỐNG THÔNG TIN
(SYSTEMS DEVELOPMENT LIFE CYCLE - SDLC)
2) Phân tích yêu cầu (Analysis):
Mục tiêu: hình thành tài liệu đặc tả yêu cầu (Requirements Specifications) gồm nội dung sau:
• Xác định hệ thống cần phải làm gì.
• Nghiên cứu thấu đáo tất cả các chức năng cần cung cấp và những yếu tố liên quan đến
hệ thống.
• Xây dựng một mô hình mô tả chi tiết các chức năng mà hệ thống sẽ làm
Tài liệu này được xem:
• Cam kết giữa khách hàng và tổ chức phát triển hệ thống về cái mà hệ thống có thể làm
(và cái mà hệ thống không thể làm)
• Là cơ sở để đội ngũ phát triển phát triển hệ thống
• Mô hình tương đối đầy đủ về những gì hệ thống đòi hỏi
17
CHU KỲ PHÁT TRIỂN HỆ THỐNG THÔNG TIN
(SYSTEMS DEVELOPMENT LIFE CYCLE - SDLC)
2) Phân tích yêu cầu (Analysis):
• Giai đoạn này trả lời các câu hỏi:
• Ai sử dụng hệ thống (who)
• Hệ thống sẽ làm gì (what)
• Hệ thống được sử dụng ở đâu và sử dụng như thế nào (where and how)
• Dữ liệu nào nên được nhập vào hệ thống?
• Hệ thống xuất ra những thông tin gì
• Tiến trình phân tích yêu cầu bao gồm các hoạt động lặp
• Hiểu lĩnh vực vấn đề
• Thu thập yêu cầu
• Phân lớp
• Đánh giá
• Nghiên cứu khả thi
18
CHU KỲ PHÁT TRIỂN HỆ THỐNG THÔNG TIN
(SYSTEMS DEVELOPMENT LIFE CYCLE - SDLC)
3) Thiết kế hệ thống (Design of the
System):
• Thiết kế hệ thống xác định cách
thực hiện các chức năng được xác
định trong giai đoạn phân tích, bao
gồm các yêu cầu phần cứng và
kiến trúc hệ thống tổng thể.
• Câu hỏi cần làm rõ trong giai đoạn
này là Hệ thống làm như thế
nào? (How)
19
CHU KỲ PHÁT TRIỂN HỆ THỐNG THÔNG TIN
(SYSTEMS DEVELOPMENT LIFE CYCLE - SDLC)
3) Thiết kế hệ thống (Design of the System):
• Hai tiến trình thiết kế hệ thống:
• Thiết kế kiến trúc (logic)
• Phân hoạch các yêu cầu thành các thành phần
• Tài liệu thiết kế kiến trúc mô tả mỗi thành phần cần làm gì và chúng tương tác với
nhau như thế nào để hình thành các chức năng hệ thống
• Thiết kế chi tiết (vật lý)
• Thiết kế từng thành phần
• Tài liệu thiết kế chi tiết mô tả mỗi thành phần mà cả hệ thống phải làm
20
CHU KỲ PHÁT TRIỂN HỆ THỐNG THÔNG TIN
(SYSTEMS DEVELOPMENT LIFE CYCLE - SDLC)
3) Thiết kế hệ thống (Design of the System):
Các hoạt động thường được thực hiện trong giai đoạn thiết kế:
• Nhận biết form nhập liệu tùy theo các thành phần dữ liệu cần nhập.
• Nhận biết reports và những output mà hệ thống mới phải phát sinh.
• Thiết kế forms
• Nhận biết các thành phần dữ liệu và bảng để tạo database.
• Ước tính các thủ tục giải thích quá trình xử lý từ input đến output.
→Kết quả của giai đoạn thiết kế là Đặc tả thiết kế (Designer Specifications) mô
tả:
• Chức năng của mỗi thành phần
• Giao diện của mỗi thành phần
21
CHU KỲ PHÁT TRIỂN HỆ THỐNG THÔNG TIN
(SYSTEMS DEVELOPMENT LIFE CYCLE - SDLC)
4) Xây dựng phần mềm:
• Khi nhận được tài liệu thiết kế hệ thống, công việc được chia thành các
module và bắt đầu giai đoạn hiện thực.
• Chọn lựa ngôn ngữ
• Chia hệ thống thành các module
• Sau khi hoàn thành các Module thì
tích hợp các Module lại thành một
hệ thống
22
CHU KỲ PHÁT TRIỂN HỆ THỐNG THÔNG TIN
(SYSTEMS DEVELOPMENT LIFE CYCLE - SDLC)
5) Kiểm thử (Testing)
• Mã nguồn được kiểm thử dựa trên các chức năng đã được thu thập trong giai
đoạn phân tích và dựa trên tính khả dụng người dùng.
• Trong giai đoạn này tất cả các loại kiểm thử chức năng như kiểm thử đơn vị,
kiểm thử tích hợp, và kiểm thử phi chức năng cũng được thực hiện
23
CHU KỲ PHÁT TRIỂN HỆ THỐNG THÔNG TIN
(SYSTEMS DEVELOPMENT LIFE CYCLE - SDLC)
6) Triển khai hệ thống:
• Sau khi thử nghiệm thành công, sản phẩm được phân phối / triển khai cho khách
hàng để sử dụng. Bao gồm các hoạt động:
• Cài đặt
• Hướng dẫn sử dụng
• Bảo trì
24
CHU KỲ PHÁT TRIỂN HỆ THỐNG THÔNG TIN
(SYSTEMS DEVELOPMENT LIFE CYCLE - SDLC)
7) Bảo trì hệ thống:
• Bắt đầu khi hệ thống được cài đặt sử dụng thực tế, sau khi đã cấp phát sản phẩm cho khách
hàng
• Bảo trì bao gồm mọi thay đổi sản phẩm để khách hàng đồng ý rằng họ đã thỏa mãn với sản
phẩm.
• Bảo trì bao gồm:
• Sửa phần mềm: loại bỏ các lỗi mà không phát hiện trong các pha truớc dó
• Nâng cấp phần mềm
• Hiệu năng: Bổ sung chức năng, tăng tốc độ thực hiện chương trình
• Thích nghi: Các thay đổi cho phù hợp với môi truờng phần mềm
• Thời gian trung bình: sửa lỗi 17,5%, hiệu năng 60%, thích nghi 18%.
25
CÁC MÔ HÌNH PHÁT TRIỂN PHẦN MỀM
1. Mô hình thác nước (Waterfall Model)
2. Mô hình RUP
3. Mô hình xoán ốc (Spiral Model)
4. Mô hình Agile
5. Mô hình tăng trưởng (Incremental Model)
6. Mô hình chữ V (V model)
7. Mô hình Scrum
26
CÁC MÔ HÌNH PHÁT TRIỂN PHẦN MỀM
1. Mô hình thác nước (Waterfall Model)
• Mô hình này thực hiện tuần tự các giai đoạn của quy
trình phát triển phần mềm.
• Đầu ra của giai đoạn trước là đầu vào của giai đoạn
sau.
• Giai đoạn sau chỉ được thực hiện khi giai đoạn trước
đã kết thúc.
• Đặc biệt không được quay lại giai đoạn trước để xử
lý các yêu cầu khi muốn thay đổi
27
CÁC MÔ HÌNH PHÁT TRIỂN PHẦN MỀM
2. Mô hình RUP (Rational Unified Process)
• Một cách tiếp cận có kỷ luật để gán và quản lý các nhiệm vụ phát triển phần mềm, vận
dụng thực tiễn tốt nhất trong phát triển phần mềm hiện đại. Theo mô hình RUP, quy trình
gồm 4 giai đoạn.
• Giai đoạn khởi động (Inception): ý tưởng và mục tiêu của dự án được công bố.
• Lập quy hoạch chi tiết (Elaboration): Kiến trúc và nguồn tài nguyên được xác định
• Thực thi (Construction): phát triển và hoàn thành hệ thống
• Chuyển giao (Transition): hệ thống được phát hành cho người dùng cuối và cập nhật
dựa trên các phản hồi.
28
CÁC MÔ HÌNH PHÁT TRIỂN PHẦN MỀM
2. Mô hình RUP (Rational Unified Process)
• Đặc điểm của tiến trình RUP
• Là một tiến trình lặp đi lặp lại, phù
hợp với những hệ thống có yêu cầu
thay đổi.
• Sử dụng mô hình UML
• Phát triển theo kiến trúc trung tâm
(architecture-centric) giảm thiểu làm
lại, tăng khả năng tái sử dụng.
• Nhấn mạnh việc xây dựng hệ thống
dựa trên sự hiểu biết thấu đáo chức
năng của hệ thống
29
CÁC MÔ HÌNH PHÁT TRIỂN PHẦN MỀM
2. Mô hình RUP (Rational Unified Process): Các giai đoạn của RUP
• Khởi động (Inception)
• Tìm hiểu nghiệp vụ
• Xác định phạm vi của dự án.
• Đánh giá rủi ro, ước tính nguồn nhân lực.
• Phác thảo (Elaboration)
• Phân tích nghiệp vụ.
• Xây dựng kiến trúc phù hợp.
• Phát triển kế hoạch dự án, loại bỏ các yếu tố có nguy cơ rủi ro cao.
• Kiểm tra mục tiêu chi tiết và phạm vi của hệ thống, đưa ra quyết định có tiếp tục giai đoạn
tiếp theo hay không.
30
CÁC MÔ HÌNH PHÁT TRIỂN PHẦN MỀM
2. Mô hình RUP (Rational Unified Process): Các giai đoạn của RUP
• Xây dựng (Construction)
• Lặp đi lặp lại từng bước phát triển sản phẩm hoàn chỉnh, sẵn sàng chuyển
giao cho người dùng
• Hoàn thành việc kiểm thử phần mềm.
• Chuyển giao (Transition)
• Triển khai hệ thống đến người dùng
• Ghi nhận những vấn đề phát sinh và các hạn chế để hoàn thiện bản cuối cùng
31
CÁC MÔ HÌNH PHÁT TRIỂN PHẦN MỀM
3. Mô hình xoán ốc (Spiral Model)
• Đây là sự kết hợp giữa các tính năng của mô hình prototyping và mô hình thác nước.
• Mô hình xoắn ốc phù hợp cho các dự án lớn, đắt tiền và phức tạp.
• Tương tự như mô hình thác nước, về thứ tự, lập kế hoạch,
đánh giá rủi ro.
32
CÁC MÔ HÌNH PHÁT TRIỂN PHẦN MỀM
4. Mô hình Agile
• Agile là một phương pháp phát triển phần mềm linh hoạt với mục tiên là đưa sản phẩm
đến tay người dùng nhanh nhất.
• Mô hình Agile là một tập hợp các phương pháp phát triển lặp và tăng dần trong đó các
yêu cầu và giải pháp được phát triển thông qua sự liên kết cộng tác giữa các nhóm tự
quản và liên chức năng.
33
CÁC MÔ HÌNH PHÁT TRIỂN PHẦN MỀM
4. Mô hình Agile
• Đặc trưng của cách tiếp cận theo mô hình Agile là tính tương tác và gia tăng. Có 5 giai
đoạn:
o Thăm dò (exploration)
o Lập kế hoạch (planning)
o Vòng lặp: thử nghiệm, thay đổi để đạt được một hệ thống ổn định và phát triển (iterations to the first
release)
o Sản xuất (productionizing)
34
CÁC MÔ HÌNH PHÁT TRIỂN PHẦN MỀM
5. Mô hình tăng trưởng (Incremental Model)
• Chu kỳ được chia thành các module nhỏ, dễ
quản lý.
• Mỗi module sẽ đi qua các yêu cầu về thiết
kế, thực hiện, … như 1 vòng đời phát triển
thông thường.
35
CÁC MÔ HÌNH PHÁT TRIỂN PHẦN MỀM
5. Mô hình chữ V (V model)
• Mô hình chữ V là một phần mở rộng của
mô hình thác nước, áp dụng việc kết hợp
việc thử nghiệm vào từng giai đoạn của quy
trình phát triển tương ứng, công việc test
được tham gia ngay từ đầu.
• Đây là một mô hình có tính kỷ luật cao, giai
đoạn tiếp theo chỉ bắt đầu sau khi giai đoạn
trước được hoàn thành.
36
CÁC MÔ HÌNH PHÁT TRIỂN PHẦN MỀM
6. Mô hình chữ Scrum
• Các yêu cầu ra làm theo từng giai đoạn. Mỗi một giai đoạn gọi là sprint và chỉ làm một số
lượng yêu cầu nhất định.
• Mỗi sprint thường kéo dài từ 1 tuần đến 4 tuần. Đầu sprint sẽ lên kế hoạch bao gồm các
yêu cầu phải thực hiện, tiếp theo là code và test. Cuối sprint là một sản phẩm hoàn thiện
cả code lẫn test có thể demo và chạy được.
• Hoàn thành sprint 1, tiếp tục thực hiện sprint 2, sprint... cho đến khi hoàn thành hết các
yêu cầu.
• Trong mỗi sprint có buổi họp hàng ngày (daily meeting từ 15 – 20 phút). Mỗi thành viên
sẽ báo cáo: công việc đã làm và những khó khăn.
• Scrum là mô hình hướng khách hàng (Customer oriented).
37
KIẾN TRÚC PHẦN MỀM (software architecture)
• Thuật ngữ “Kiến trúc phần mềm” được dùng để chỉ:
• Cấu trúc luận lý của chương trình gồm những kiểu phần tử, cách các
phần tử tương tác với nhau, các chức năng của hệ thống ánh xạ vào các
phần tử.
• Các thành phần tồn tại trong hệ thống phần mềm.
• Các thông tin chi tiết cần cho việc thiết kế phần mềm
• Kiến trúc phần mềm chưa hoàn thiện như kiến trúc phần cứng máy tính vì
công nghệ phần mềm còn mới mẻ và rất đặc thù
• Một ứng dụng cần phải phù hợp với một kiến trúc phần mềm
38
KIẾN TRÚC PHẦN MỀM (software architecture)
• Khi chọn Kiến trúc phần mềm
• Phải thỏa mãn các yêu cầu chức năng của phần mềm
• Tùy vào độ phức tạp của phần mềm
• Chi phí phát triển phần mềm
• Đảm bảo tính khả thi, dễ bảo trì, khả chuyển, khả thích nghi, tốc độ, an ninh,...
• Các kiến trúc PM thông dụng
• Kiến trúc 3 ties
• Kiến trúc client-server
• Kiến trúc MVC
39
KIẾN TRÚC PHẦN MỀM (software architecture)
Kiến trúc Client – Server
• Là một mô hình máy tính, trong đó máy chủ (server), cung cấp và quản lý hầu hết các
nguồn lực và dịch vụ cho máy khách (client), có một hoặc nhiều máy khách kết nối với
máy chủ trung tâm thông qua mạng hoặc Internet.
• Cũng có thể được gọi là mạng mô hình máy tính vì tất cả các yêu cầu và dịch vụ là được
phân phối qua mạng.
40
KIẾN TRÚC PHẦN MỀM (software architecture)
Kiến trúc Client – Server
• Client
• Các ứng dụng di động (mobile apps)
• Các ứng dụng trên máy tính bảng (tablet apps)
• Trình duyệt (Windows hoặc Mac OS)
• Server
• Hệ điều hành của server (OS server)
• Server của trang web (Web server)
• Server dữ liệu (Database server)
• Code cho các ứng dụng của server
41
KIẾN TRÚC PHẦN MỀM (software architecture)
Kiến trúc 3 tầng (3-tiers architecture)
• 3-tiers là một kiến trúc kiểu
client/server mà trong đó giao diện
người dùng (UI-user interface), các quy
tắc nghiệp vụ (BR-business rule), và
việc lưu trữ dữ liệu được phát triển như
những module độc lập, và hầu hết là
được duy trì trên các nền tảng độc lập.
42
KIẾN TRÚC PHẦN MỀM (software architecture)
Kiến trúc 3 tầng (3-tiers architecture)
• Presentation tier
• Các thành phần phần xử lý giao diện Graphic User Interface (GUI)
• Business tier
• Bao gồm các thành phần Business Logic Layer (BLL), Data Access Layer (DAL) và
Data Tranfer Object (DTO).
• Data tier
• Lưu trữ dữ liệu, là các hệ quản trị CSDL như MS SQL Server, Oracle, SQLite, MS
Access, XML files, text files, ...
43
KIẾN TRÚC PHẦN MỀM (software architecture)
Kiến trúc 3 tầng (3-tiers architecture)
• Ưu điểm:
• Dễ dàng mở rộng, thay đổi quy mô của hệ thống: Khi cần tải lớn, người quản trị có thể
dễ dàng thêm các máy chủ vào nhóm, hoặc lấy bớt ra trong trường hợp ngược lại.
• Nhược điểm:
• Việc truyền dữ liệu giữa các tầng sẽ chậm hơn vì phải truyền giữa các tiến trình khác
nhau (IPC), dữ liệu cần phải được đóng gói → truyền đi → mở gói trước khi có thể
dùng được. Việc phát triển ứng dụng phức tạp hơn
44
KIẾN TRÚC PHẦN MỀM (software architecture)
Kiến trúc MVC (Model View Controller)
• Mô hình MVC là một cách tiếp cận để phân biệt giữa mô hình dữ liệu (Model), điều
khiển xử lý (Controller) và giao diện người dùng (View).
• Mô hình MVC ngăn cách gọn gàng giao diện đồ họa được hiển thị cho người dùng khỏi
quản lý các hành động của người dùng.
45
KIẾN TRÚC PHẦN MỀM (software architecture)
Kiến trúc MVC (Model View
Controller)
• Model:
• Mức thấp nhất của mẫu kiến trúc MVC,
chịu trách nhiệm duy trì dữ liệu.
• View:
• Chịu trách nhiệm hiển thị tất cả hoặc một
phần dữ liệu cho người dùng.
• Controller:
• Mã phần mềm kiểm soát các tương tác giữa
Model và View.
46
CÁC GIAI ĐOẠN TRONG PHÂN TÍCH THIẾT KẾ HỆ THỐNG
1. Giai đoạn phân tích hệ thống
• Dữ liệu đầu vào
• Kết quả của giai đoạn thu thập yêu cầu: phiếu trả lời của khách hàng
• Từ điển dữ liệu.
• Hoạt động của giai đoạn phân tích
• Xác định và hiểu rõ yêu cầu của người dùng thông qua các kỹ thuật thu thập yêu
cầu khách hàng. Ưu tiên các yêu cầu được thu thập từ sự đồng thuận của người
dùng.
• Thiết lập một cách nhìn tổng quan rõ ràng về hệ thống và các mục đích chính của
hệ thống cần xây dựng, Liệt kê các nhiệm vụ mà hệ thống cần thực hiện. Phát
triển một bộ từ vựng để mô tả bài toán và các vấn đề liên quan, đưa ra hướng giải
quyết bài toán.
47
CÁC GIAI ĐOẠN TRONG PHÂN TÍCH THIẾT KẾ HỆ THỐNG
1. Giai đoạn phân tích hệ thống
• Kết quả của giai đoạn phân tích hệ thống: Tài liệu phân tích hệ thống với
các nội dung:
• Xác định được các yêu chức năng, đặc tả chi tiết từng chức năng của hệ thống và mô
hình hóa bằng các sơ đồ use case, activity, sequence và collaboration.
• Xác định các yêu cầu phi chức năng của hệ thống
• Xác định các quy tắc nghiệp vụ và các ràng buộc trong phạm vi hệ thống và mô hình
hóa bằng sơ đồ domain
48
CÁC GIAI ĐOẠN TRONG PHÂN TÍCH THIẾT KẾ HỆ THỐNG
2. Giai đoạn thiết kế hệ thống
• Dữ liệu đầu vào
• Kết quả của giai đoạn phân tích
• Hoạt động của giai đoạn thiết kế
• Xác định kiến trúc phần mềm phù hợp với hệ thống
• Thiết kế các thành phần của hệ thống theo kiến trúc đã được xác định.
• Mô hình hóa các thiết kế, sử dụng các sơ đồ sequence, class mức thiết kế, và
component
• Kết quả của giai đoạn thiết kế
• Các sơ đồ thiết kế chi tiết phục vụ cho giai đoạn code, bao gồm các sơ đồ sequence,
class và component.
49
PHƯƠNG PHÁP PHÂN TÍCH THIẾT KẾ HỆ THỐNG
• Có 2 phương pháp phân tích thiết kế hệ thống
• Phân tích thiết kế hướng cấu trúc
• Phân tích thiết kế hướng đối tượng
50
PHƯƠNG PHÁP PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Phân tích thiết kế hướng cấu trúc
• Đặc trưng: chia chương trình chính thành nhiều chương trình con, sao cho mỗi
chương trình con thực hiện một công việc xác định.
• Có 2 cách tiếp cận:
• Tiếp cận hướng dữ liệu: xây dựng phần mềm dựa vào việc phân rã phần mềm
theo các chức năng cần đáp ứng và dữ liệu cho các chức năng tương ứng.
• Tiếp cận hướng hành động tập trung phân tích hệ thống trên các hoạt động thực
thi các chức năng của phần mềm.
51
PHƯƠNG PHÁP PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Phân tích thiết kế hướng cấu trúc
• Cách thực hiện
• Phân rã hệ thống bằng kỹ thuật phân tích có cấu trúc (Structured Analysis &
Design Technique, SADT) và mô tả lại bằng lược đồ Data Flow Diagram
(DFD)
• Xác định các thực thể, quan hệ giữa các thực thể và các thuộc tính có dữ liệu của
chúng để liên kết một cách có cấu trúc các thành tố dữ liệu trong hệ thống, và mô
tả lại bằng EntityRelationship Diagram (ERD)
52
PHƯƠNG PHÁP PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Phân tích thiết kế hướng cấu trúc
Ví dụ: Phân tích qui trình xử lý đơn hàng
Bộ phận giao dịch nhận đơn đặt hàng từ khách hàng, kiểm tra đơn đặt hàng để hiệu
chỉnh nếu cần, sau đó lưu vào hồ sơ đặt hàng
53
PHƯƠNG PHÁP PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Phân tích thiết kế hướng cấu trúc
54
PHƯƠNG PHÁP PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Phân tích thiết kế hướng cấu trúc
• Ưu điểm:
• Tư duy phân tích thiết kế rõ ràng, Chương trình sáng sủa dễ hiểu, dễ theo dõi luồng dữ
liệu.
• Xác định các yêu cầu HT thời gian dài trước khi bắt đầu lập trình.
• Tối thiểu hóa sự thay đổi yêu cầu khi dự án bắt đầu.
• Nhược điểm:
• Không hỗ trợ việc sử dụng lại.
• Không phù hợp cho phát triển các phần mềm lớn.
• Khó quản lý mối quan hệ giữa các module và dễ gây ra lỗi trong phân tích cũng như
khó kiểm thử và bảo trì.
55
PHƯƠNG PHÁP PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Phân tích thiết kế hướng cấu trúc
• Lĩnh vực áp dụng
• Phương pháp hướng cấu trúc phù hợp với những dự án nhỏ, có luồng dữ liệu rõ
ràng, giải thuật đơn giản.
56
PHƯƠNG PHÁP PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Phân tích thiết kế hướng đối tượng (Object-Oriented Analysis and Design -OOAD)
• Đặc trưng
• Tập trung vào cả hai khía cạnh của hệ thống là dữ liệu và hành vi. Ánh xạ các
thành phần trong bài bài toán vào các đối tượng ngoài đời thực.
• Một hệ thống được chia thành một tập các đối tượng. Mỗi đối tượng bao gồm dữ
liệu và hành vi liên quan đến đối tượng đó.
• Các đối tượng trong một hệ thống tương đối độc lập với nhau và phần mềm sẽ
được xây dựng bằng cách kết hợp các đối tượng đó lại với nhau thông qua các
mối quan hệ và tương tác giữa chúng.
57
PHƯƠNG PHÁP PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Phân tích thiết kế hướng đối tượng (Object-Oriented Analysis and Design -OOAD)
• Cách thực hiện
• Thiết kế từ dưới lên (bottom-up).
• Bắt đầu từ những thuộc tính cụ thể của từng đối tượng sau đó tiến hành trừu
tượng hóa thành các lớp (Đối tượng).
• Lĩnh vực áp dụng
• Áp dụng cho các dự án lớn, phức tạp, hoặc có nhiều luồng dữ liệu khác nhau mà
phương pháp cấu trúc không thể quản lý được.
58
PHƯƠNG PHÁP PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Phân tích thiết kế hướng đối tượng (Object-Oriented Analysis and Design -OOAD)
• Ưu điểm
• Gần gũi với thế giới thực.
• Tái sử dụng dễ dàng.
• Đóng gói che giấu thông tin làm cho hệ thống tin cậy hơn.
• Thừa kế làm giảm chi phí, hệ thống có tính mở cao hơn
• Xây dựng hệ thống phức tạp.
• Nhược điểm:
• Phức tạp, khó theo dõi được luồng dữ liệu do có nhiều luồng dữ liệu ở đầu vào.
59
CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG
Hướng đối tượng
• Hướng đối tượng (Object Orientation): Là một cách nhìn và mô hình hóa
hệ thống như một tập hợp các đối tượng và các mối quan hệ và sự tương
tác giữa chúng
• Ví dụ
• Hệ thống quản lý sinh viên, nếu phân tích theo hướng đối tượng thì hệ thống quản lý
một tập các đối tượng sinh viên với các thuộc tính: Mã SV, Họ tên, ngày sinh, và các
hành vi hiển thị thông tin.
60
CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG
Đối tượng – Object
• Một đối tượng đại diện cho một người, một địa điểm, một sự kiện hoặc một
giao dịch … có ý nghĩa đối với hệ thống thông tin.
• Một đối tượng bao gồm thuộc tính và hành vi.
61
CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG
Đối tượng – Object
• Thuộc tính (Information) là các đặc điểm mô tả đối tượng và các mô tả về
cấu trúc của đối tượng.
• Hành vi (Behaviour) là các nhiệm vụ hoặc chức năng mà đối tượng thực hiện
khi nhận được yêu cầu hoặc lệnh để thực hiện điều đó
• Ví dụ: một đối tượng Máy in có
• Thuộc tính: SerialNumber, Model, Speed, Memory, Status
Hành vi: PrintFile, StopPrint, Removefile
62
CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG
Đối tượng – Object
Joe Smith
age=39
weight=158
Mary Wilson
age=27
weight=121
Person
name
age
weight
63
CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG
Lớp – Class
• Một lớp là một tập hợp các đối tượng có chung các thuộc tính, hành vi,
mối quan hệ và ngữ nghĩa.
• Một đối tượng là một thể hiện (instanse) của một lớp.
• Ví dụ: Lớp máy in là một tập hợp các đối tượng máy in có cùng thuộc tính và hành vi
Class Attributes Operations
ball radius, weight catch, throw
football air pressure pass, kick, hand-off
baseball liveness hit, pitch, tag 64
CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG
BÀI TẬP
Which of the following items do you think should be a class, and which should be an instance?
For any item which should be an instance, name a suitable class for it.
a) General Motors b) Automoible company
c) Student d) Computer Science Student
e) Mary Smith f) Game
g) Board Game h) Chess
i) Car j) Mazda car
k) The game of chess between Tom and Jane which started at 2:30pm yesterday
l) The car with serial number DL 2C 7151
65
CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG
Quan hệ giữa lớp và đối tượng
• Quá trình mô hình hóa được bắt đầu từ các đối tượng trong thế giới thực, trừu
tượng hóa các đối tượng, phân loại chúng, dựa trên những khía cạnh cần quan
tâm.
• Lớp là một định nghĩa trừu tượng của các đối tượng, nó định nghĩa cấu trúc
và hành vi của từng đối tượng trong lớp,
• Lớp là một khuôn mẫu để tạo các đối tượng, các đối tượng được tạo từ một
lớp còn được gọi là các thể hiện của lớp.
66
CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG
Thông điệp và Phương thức
• Thông điệp (message) Là thông tin dùng để liên lạc hai chiều giữa các đối tượng trong hệ
thống.
• Một thông điệp yêu cầu một hoạt động (operation) từ đối tượng nhận thông điệp.
• Thông điệp truyền đối số và kiểu trả về.
• Đối tượng nhận thông điệp trả về một đối tượng trở thành giá trị của biểu thức thông
điệp.
• Ví dụ: Sean.takeOrder(who, stock, address, date)
• Sean: tên đối tượng nhận thông điệp
• TakeOrder là một phương thức gọi trên Sean
• who, stock, address, date: tham số của thông điệp
67
CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG
Thông điệp và Phương thức
• Phương thức (Method): là một dịch vụ được yêu cầu từ một đối tượng để thực hiện
hành vi.
• Phương thức là cách hiện thực hoạt động. Nó xác định thuật toán hoặc thủ tục liên
quan đến một hoạt động
• Một thông điệp là hợp lệ nếu bên nhận có một phương thức tương ứng với phương
thức có tên trong thông điệp và các đối số thích hợp, được cung cấp cùng với thông
báo. Chỉ các tin nhắn hợp lệ được thực hiện bởi người nhận.
68
CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG
Thông điệp và Phương thức
Ví dụ: phương thức
takeOrder(who, stock, address, date)
{
check with warehouse on stock availability
check with warehouse on delivery schedule
if ok then
{ instruct warehouse to deliver stock to address on date }
else
return not ok
}
69
CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG
Interface
• Interfaces là một phần tử mô hình hướng đối tượng mà nó xác định các hoạt động
của các phần tử mô hình khác, ví dụ như các lớp (class) hoặc các thành phần
(component).
• Các phương thức (method) của interface đều là trừu tượng, nghĩa là không có thân
hàm, và đều có modifier là: public abstract.
70
CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG
Interface
Ví dụ: một interface PhuongTien chứa 2 hoạt động Dichuyen và
KiemTraNhienLieu
71
CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG
Interface
Ví dụ (tt): Mỗi loại phương tiện khác nhau sẽ hiện thực hoạt động thực thi và kiểm tra nhiên
liệu khác nhau (implements)
72
CÁC ĐẶC TRƯNG CỦA HƯỚNG ĐỐI TƯỢNG
73
CÁC ĐẶC TRƯNG CỦA HƯỚNG ĐỐI TƯỢNG
Tính trừu tượng (Abstraction)
• Abstraction: Giảm độ phức tạp bằng cách che giấu những chi tiết không liên quan.
• Generalization: thay thế nhiều thực thể thực hiện cùng chức năng bằng một cấu trúc duy nhất.
• Lớp trừu tượng (Abstract class) là một lớp cha của những lớp có cùng bản chất bao gồm thuộc tính và
phương thức. Do đó mỗi lớp dẫn xuất (lớp con) chỉ có thể kế thừa từ một lớp trừu tượng. Lớp Abstract không
cho phép tạo instance
74
CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG
Đóng gói (Encapsulation)
• Kết hợp tiến trình và dữ liệu vào một thực thể thống nhất. Nhiều gói kết hợp thành một hệ
thống con (subsystem).
• Là kỹ thuật ẩn giấu thuộc tính và phương thức của đối tượng, nó không cho phép truy cập
trực tiếp đến dữ liệu mà phải thông qua các phương thức được đối tượng cung cấp để truy
cập đến dữ liệu của chính nó.
• Đây là tính chất đảm bảo sự toàn vẹn, bảo mật của đối tượng, tính đóng gói được thể hiện
thông qua phạm vi truy cập (access modifier).
75
CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG
Tính đa hình (polymorphism)
• Trong mô hình hướng đối tượng, tính đa hình là sử dụng các hoạt động theo các cách khác
nhau, tùy thuộc vào trường hợp mà chúng đang hoạt động.
• Đa hình cho phép các đối tượng có giao diện bên ngoài chung nhưng có cấu trúc bên trong
khác nhau.
• Đa hình là đặc biệt hiệu quả trong khi thực hiện kế thừa.
76
CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG
Tính đa hình (polymorphism)
Ví dụ:
Có 2 lớp Horse và Cat, mỗi lớp có một phương thức Sound (), 2 lớp có cùng tên một tên
phương thức, nhưng cách hiện thực phương thức Sound() trong 2 lớp thì khác nhau.
public class Animal{
public void sound(){
System.out.println("Animal is making a sound");
}
}
77
CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG
Tính đa hình (polymorphism)
Ví dụ:
Có 2 lớp Horse và Cat, mỗi lớp có một phương thức Sound (), 2 lớp có cùng tên một tên
phương thức, nhưng cách hiện thực phương thức Sound() trong 2 lớp thì khác nhau.
class Horse extends Animal{
@Override
public void sound(){
System.out.println("Neigh");
}
public static void main(String args[]){
Animal obj = new Horse();
obj.sound();
}
}
public class Cat extends Animal{
@Override
public void sound()
System.out.println("Meow");
}
public static void main(String args[]){
Animal obj = new Cat();
obj.sound();
}
}
78
CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG
Tính đa hình (polymorphism)
Ví dụ:
Có 2 lớp Horse và Cat, mỗi lớp có một phương thức Sound (), 2 lớp có cùng tên một tên
phương thức, nhưng cách hiện thực phương thức Sound() trong 2 lớp thì khác nhau.
public class Animal{
public void sound(){
System.out.println("Animal is making a sound");
}
}
79
CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG
• Modularity
• Chia hệ thống phức
tạp thành những hệ
thống nhỏ hơn, tự
nó chứa những
phần có thể hoạt
động một cách độc
lập
Billing
System
Course Registration
System
Course
Catalog
System
Student
Management
System
80
CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG
• Hierarchy
• Thứ tự của sự trừu tượng có cấu trúc dạng cây
• Các loại hierachy:
• Aggregation hierarchy,
• Class hierarchy,
• Containment hierarchy,
• Inheritance hierarchy,
• Partition hierarchy,
• SpecializatioInheritance hierarchyn hierarchy
81
Decreasing
abstraction
Asset
RealEstate
Savings
BankAccount
Checking Stock
Security
Bond
Elements at the same level of the hierarchy
should be at the same level of abstraction.
PHÂN TÍCH THIẾT KẾ HỆ THỐNG HƯỚNG ĐỐI TƯỢNG
Mô hình hóa hướng đối tượng
• Mô hình hóa hướng đối tượng là một cách
mô hình hoá các hệ thống theo ngôn ngữ
tự nhiên.
• Các hệ thống, mà chính nó là một đối
tượng, phân hủy thành các thành phần,
mỗi thành phần có thể thực hiện một công
việc hoàn chỉnh.
• Các thành phần có thể cộng tác để cung
cấp các chức năng cần thiết của hệ thống
Activity
Diagrams
Models
Static
Diagram
s
Sequence
Diagrams
Communication
Diagrams
State Machine
Diagrams
Deployment
Diagrams
Component
Diagrams
Object
Diagrams
Class
Diagrams
Use-Case
Diagrams
82
PHÂN TÍCH THIẾT KẾ HỆ THỐNG HƯỚNG ĐỐI TƯỢNG
Lợi ích Mô hình hóa hướng đối tượng
• Cung cấp một framework có thể mô hình hóa các khái niệm một cách trực
quan.
• Giảm chi phí thực hiện và bảo trì
• Giảm độ phức tạp
• Tiếp cận dựa trên thành phần (Component) tăng khả năng tái sử dụng
• Tăng hiệu suất và chất lượng của hệ thống
• Giảm rủi ro
83
PHÂN TÍCH THIẾT KẾ HỆ THỐNG HƯỚNG ĐỐI TƯỢNG
Phân tích thiết kế hướng đối tượng
• Áp dụng các mô hình hướng đối tượng để phân tích các hệ thống hoặc các yêu cầu hệ thống.
• Thiết kế hướng đối tượng: thực hiện các yêu cầu được xác định trong phân tích hướng đối
tượng.
• Phân tích thiết kế hướng đối tượng gồm 2 hoạt động:
• Phân tích hướng đối tượng - Object Oriented Analysis
• Thiết kế hướng đối tượng - Object Oriented Design
84
PHÂN TÍCH THIẾT KẾ HỆ THỐNG HƯỚNG ĐỐI TƯỢNG
Phân tích thiết kế hướng đối tượng
• Phân tích (Analysis): nhấn mạnh việc nghiên cứu các yêu cầu và vấn đề của
bài toán.
• Phân tích hướng đối tượng (Object-oriented analysis): nhấn mạnh việc tìm
kiếm và mô tả các khái niệm đối tượng trong phạm vi bài toán.
• Tập trung vào việc phát triển một mô hình hướng đối tượng của hệ thống.
85
PHÂN TÍCH THIẾT KẾ HỆ THỐNG HƯỚNG ĐỐI TƯỢNG
Phân tích thiết kế hướng đối tượngVí dụ: Cửa hàng bán xe hơi, giai đoạn OOA sẽ nhận biết được
• Các thực thể:
• Khách hàng
• Người bán hàng
• Phiếu đặt hàng
• Phiếu (hoá đơn) thanh toán
• Xe hơi
• Tương tác và quan hệ giữa các thực thể trên là:
• Người bán hàng giới thiệu xe cho khách hàng
• Khách hàng chọn xe
• Khách hàng viết phiếu đặt xe
• Người bán hàng lập hóa đơn
• Khách hàng trả tiền xe, người bán hàng nhận tiền và giao hóa đơn cho khách
• Người bán hàng giao xe cho khách hàng
86
PHÂN TÍCH THIẾT KẾ HỆ THỐNG HƯỚNG ĐỐI TƯỢNG
Thiết kế hướng đối tượng
• Thiết kế (Design): nhấn mạnh việc tìm giải pháp để thực hiện các yêu cầu
trong giai đoạn phân tích.
• Thiết kế hướng đối tượng: xác định các đối tượng phần mềm và cách tương
tác của chúng với nhau để thực hiện các yêu cầu của hệ thống.
• Cung cấp một mô hình hướng đối tượng của hệ thống phần mềm để hiện thực các yêu
cầu đã được xác định.
87
PHÂN TÍCH THIẾT KẾ HỆ THỐNG HƯỚNG ĐỐI TƯỢNG VỚI UML
• UML (Unified Modeling Language): ngôn ngữ dùng để mô hình hóa quá
trình phát triển hệ thống phần mềm hướng đối tượng
• Các sơ đồ trong UML được chia thành 2 nhóm:
• Sơ đồ cấu trúc (Structure Diagrams): class, object, package, deployment, component.
• Sơ đồ hành vi (Behavioral Diagrams): use case diagrams, activity, sequence,
communication, interaction.
88
PHÂN TÍCH THIẾT KẾ HỆ THỐNG HƯỚNG ĐỐI TƯỢNG VỚI UML
UML defines 13 diagrams that describe 4+1 architectural views
4+1 architectural views model was proposed by Philippe Kruchten, IBM
89
PHÂN TÍCH THIẾT KẾ HỆ THỐNG HƯỚNG ĐỐI TƯỢNG VỚI UML
90
Sơ đồ Use case
Submit Grades
Professor
View Report Card
Select Courses to Teach
Student
Course Catalog
Register for Courses
Maintain Student Information
Maintain Professor Information
Registrar
Billing System
Close Registration
Login
PHÂN TÍCH THIẾT KẾ HỆ THỐNG HƯỚNG ĐỐI TƯỢNG VỚI UML
91
Biểu đồ lớp (Class diagram)
PHÂN TÍCH THIẾT KẾ HỆ THỐNG HƯỚNG ĐỐI TƯỢNG VỚI UML
92
Biểu đồ đối tượng (Object diagram)
PHÂN TÍCH THIẾT KẾ HỆ THỐNG HƯỚNG ĐỐI TƯỢNG VỚI UML
93
Biểu đồ trạng thái (State diagram)
PHÂN TÍCH THIẾT KẾ HỆ THỐNG HƯỚNG ĐỐI TƯỢNG VỚI UML
94
Biểu đồ trình tự (Sequence diagram)
PHÂN TÍCH THIẾT KẾ HỆ THỐNG HƯỚNG ĐỐI TƯỢNG VỚI UML
95
Biểu đồ tương tác (Communication Diagram)
PHÂN TÍCH THIẾT KẾ HỆ THỐNG HƯỚNG ĐỐI TƯỢNG VỚI UML
96
Biểu đồ hoạt động (Activity Diagram)
PHÂN TÍCH THIẾT KẾ HỆ THỐNG HƯỚNG ĐỐI TƯỢNG VỚI UML
97
Biểu đồ thành phần (Component Diagram)
PHÂN TÍCH THIẾT KẾ HỆ THỐNG HƯỚNG ĐỐI TƯỢNG VỚI UML
98
Biểu đồ triển khai (Deployment Diagram)
CÂU HỎI VÀ BÀI TẬP
Câu 1. Tại sao khi xây dựng một HTTT cần phải có phân tích và thiết kế hệ thống?
Câu 2. Nêu các giai đoạn trong một chu trình phát triển một hệ thống thông tin? Giai
đoạn nào là quan trọng? Có thể thiếu một trong các giai đoạn đó được không?
Câu 3. Kể tên một số ví dụ cho các loại hệ thống thông tin: hệ thống thông tin quản lý, hệ
thống website thương mại điện tử, hệ thống điều khiển ...
Câu 5. So sánh hai phương pháp phân tích thiết kế hướng cấu trúc và hướng đối tượng?
Ưu và nhược điểm?
99
BÀI TẬP NHÓM
1. Lập nhóm + tên đề tài → nộp về cho giảng viên cuối buổi học.
2. Thử hình dung với đề tài đã chọn, bạn sẽ làm gì ở giai đoạn đầu tiên của
chu trình phát triển phần mềm (nghiên cứu sơ bộ)?
✓ Ghi lại
✓ Tìm hiểu hệ thống đã chọn sau buổi học, ghi nhận những vấn đề đã cảm nhận được.
✓ Thử đánh giá và chọn thông tin nào cần cho hệ thống, thông tin nào không cần thiết.
100
101

More Related Content

Similar to C01_TongQuanPTTKHT.pdf

Chuyen de7
Chuyen de7Chuyen de7
Chuyen de7ecafe24g
 
Chuong 1phuong-phap-luan-pttkht
Chuong 1phuong-phap-luan-pttkhtChuong 1phuong-phap-luan-pttkht
Chuong 1phuong-phap-luan-pttkhtnghia_790a
 
thiết kế hệ thống.pdf
thiết kế hệ thống.pdfthiết kế hệ thống.pdf
thiết kế hệ thống.pdfThunNguynnh12
 
Giao trinh phan tich thiet ke he thong.pdf
Giao trinh phan tich thiet ke he thong.pdfGiao trinh phan tich thiet ke he thong.pdf
Giao trinh phan tich thiet ke he thong.pdfTuyenKieu5
 
NMCNPM_14_Tuan4nhomsvk17thuchien111.pptx
NMCNPM_14_Tuan4nhomsvk17thuchien111.pptxNMCNPM_14_Tuan4nhomsvk17thuchien111.pptx
NMCNPM_14_Tuan4nhomsvk17thuchien111.pptxLnNguynThnh4
 
Công nghệ yêu cầu requirements engineering (re)
Công nghệ yêu cầu requirements engineering (re)Công nghệ yêu cầu requirements engineering (re)
Công nghệ yêu cầu requirements engineering (re)nataliej4
 
Nhập môn công nghệ phần mềm
Nhập môn công nghệ phần mềmNhập môn công nghệ phần mềm
Nhập môn công nghệ phần mềmTrần Gia Bảo
 
Bài Giảng Mô Hình Hóa Kiến Trúc Doanh Nghiệp .pdf
Bài Giảng Mô Hình Hóa Kiến Trúc Doanh Nghiệp .pdfBài Giảng Mô Hình Hóa Kiến Trúc Doanh Nghiệp .pdf
Bài Giảng Mô Hình Hóa Kiến Trúc Doanh Nghiệp .pdfNuioKila
 
Bài 1: Tổng quan về phân tích thiết kế HTTT & Nguồn phần mềm - Giáo trình FPT
Bài 1: Tổng quan về phân tích thiết kế HTTT & Nguồn phần mềm - Giáo trình FPTBài 1: Tổng quan về phân tích thiết kế HTTT & Nguồn phần mềm - Giáo trình FPT
Bài 1: Tổng quan về phân tích thiết kế HTTT & Nguồn phần mềm - Giáo trình FPTMasterCode.vn
 
Chuong 6 Phát triển hệ thống thông tin kế toan
Chuong 6 Phát triển hệ thống thông tin kế toanChuong 6 Phát triển hệ thống thông tin kế toan
Chuong 6 Phát triển hệ thống thông tin kế toandlmonline24h
 
PhanTichThietKeHeThongTT -CHUONG -1.pptx
PhanTichThietKeHeThongTT -CHUONG -1.pptxPhanTichThietKeHeThongTT -CHUONG -1.pptx
PhanTichThietKeHeThongTT -CHUONG -1.pptxDuyNhatNguyen3
 
Giao trinh he_dieu_hanh_tech24_vn[bookbooming.com]
Giao trinh he_dieu_hanh_tech24_vn[bookbooming.com]Giao trinh he_dieu_hanh_tech24_vn[bookbooming.com]
Giao trinh he_dieu_hanh_tech24_vn[bookbooming.com]bookbooming1
 
Chuong 3 xac_dinh_yeu_cau_he_thong
Chuong 3 xac_dinh_yeu_cau_he_thongChuong 3 xac_dinh_yeu_cau_he_thong
Chuong 3 xac_dinh_yeu_cau_he_thongVăn Tịnh Võ
 
CTT009-Bai08-NgheNghiep-2013v2.pptx
CTT009-Bai08-NgheNghiep-2013v2.pptxCTT009-Bai08-NgheNghiep-2013v2.pptx
CTT009-Bai08-NgheNghiep-2013v2.pptxCường Hồ
 

Similar to C01_TongQuanPTTKHT.pdf (20)

Chuyen de7
Chuyen de7Chuyen de7
Chuyen de7
 
Chuong 1phuong-phap-luan-pttkht
Chuong 1phuong-phap-luan-pttkhtChuong 1phuong-phap-luan-pttkht
Chuong 1phuong-phap-luan-pttkht
 
C1
C1C1
C1
 
thiết kế hệ thống.pdf
thiết kế hệ thống.pdfthiết kế hệ thống.pdf
thiết kế hệ thống.pdf
 
Chuong 3. cnpm
Chuong 3. cnpmChuong 3. cnpm
Chuong 3. cnpm
 
Hệ thống thông tin quản lý trong doanh nghiệp và kế toán tiền mặt
Hệ thống thông tin quản lý trong doanh nghiệp và kế toán tiền mặtHệ thống thông tin quản lý trong doanh nghiệp và kế toán tiền mặt
Hệ thống thông tin quản lý trong doanh nghiệp và kế toán tiền mặt
 
Cơ sở lý luận về phân tích, thiết kế hệ thống thông tin quản lí bán hàng.docx
Cơ sở lý luận về phân tích, thiết kế hệ thống thông tin quản lí bán hàng.docxCơ sở lý luận về phân tích, thiết kế hệ thống thông tin quản lí bán hàng.docx
Cơ sở lý luận về phân tích, thiết kế hệ thống thông tin quản lí bán hàng.docx
 
Giao trinh phan tich thiet ke he thong.pdf
Giao trinh phan tich thiet ke he thong.pdfGiao trinh phan tich thiet ke he thong.pdf
Giao trinh phan tich thiet ke he thong.pdf
 
NMCNPM_14_Tuan4nhomsvk17thuchien111.pptx
NMCNPM_14_Tuan4nhomsvk17thuchien111.pptxNMCNPM_14_Tuan4nhomsvk17thuchien111.pptx
NMCNPM_14_Tuan4nhomsvk17thuchien111.pptx
 
Công nghệ yêu cầu requirements engineering (re)
Công nghệ yêu cầu requirements engineering (re)Công nghệ yêu cầu requirements engineering (re)
Công nghệ yêu cầu requirements engineering (re)
 
Nhập môn công nghệ phần mềm
Nhập môn công nghệ phần mềmNhập môn công nghệ phần mềm
Nhập môn công nghệ phần mềm
 
Tuan1_pttkhtt.pptx
Tuan1_pttkhtt.pptxTuan1_pttkhtt.pptx
Tuan1_pttkhtt.pptx
 
Bài Giảng Mô Hình Hóa Kiến Trúc Doanh Nghiệp .pdf
Bài Giảng Mô Hình Hóa Kiến Trúc Doanh Nghiệp .pdfBài Giảng Mô Hình Hóa Kiến Trúc Doanh Nghiệp .pdf
Bài Giảng Mô Hình Hóa Kiến Trúc Doanh Nghiệp .pdf
 
Bài 1: Tổng quan về phân tích thiết kế HTTT & Nguồn phần mềm - Giáo trình FPT
Bài 1: Tổng quan về phân tích thiết kế HTTT & Nguồn phần mềm - Giáo trình FPTBài 1: Tổng quan về phân tích thiết kế HTTT & Nguồn phần mềm - Giáo trình FPT
Bài 1: Tổng quan về phân tích thiết kế HTTT & Nguồn phần mềm - Giáo trình FPT
 
Chuong 6 Phát triển hệ thống thông tin kế toan
Chuong 6 Phát triển hệ thống thông tin kế toanChuong 6 Phát triển hệ thống thông tin kế toan
Chuong 6 Phát triển hệ thống thông tin kế toan
 
PhanTichThietKeHeThongTT -CHUONG -1.pptx
PhanTichThietKeHeThongTT -CHUONG -1.pptxPhanTichThietKeHeThongTT -CHUONG -1.pptx
PhanTichThietKeHeThongTT -CHUONG -1.pptx
 
Giao trinh he_dieu_hanh_tech24_vn[bookbooming.com]
Giao trinh he_dieu_hanh_tech24_vn[bookbooming.com]Giao trinh he_dieu_hanh_tech24_vn[bookbooming.com]
Giao trinh he_dieu_hanh_tech24_vn[bookbooming.com]
 
Chuong 3 xac_dinh_yeu_cau_he_thong
Chuong 3 xac_dinh_yeu_cau_he_thongChuong 3 xac_dinh_yeu_cau_he_thong
Chuong 3 xac_dinh_yeu_cau_he_thong
 
CTT009-Bai08-NgheNghiep-2013v2.pptx
CTT009-Bai08-NgheNghiep-2013v2.pptxCTT009-Bai08-NgheNghiep-2013v2.pptx
CTT009-Bai08-NgheNghiep-2013v2.pptx
 
1 gioi thieu httt
1 gioi thieu httt1 gioi thieu httt
1 gioi thieu httt
 

Recently uploaded

SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...Nguyen Thanh Tu Collection
 
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...Nguyen Thanh Tu Collection
 
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXHTư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXHThaoPhuong154017
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Nguyen Thanh Tu Collection
 
Sơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdfSơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdftohoanggiabao81
 
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...hoangtuansinh1
 
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...Nguyen Thanh Tu Collection
 
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxChàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxendkay31
 
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhvanhathvc
 
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxTrích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxnhungdt08102004
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfhoangtuansinh1
 
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...Học viện Kstudy
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...Nguyen Thanh Tu Collection
 
Hệ phương trình tuyến tính và các ứng dụng trong kinh tế
Hệ phương trình tuyến tính và các ứng dụng trong kinh tếHệ phương trình tuyến tính và các ứng dụng trong kinh tế
Hệ phương trình tuyến tính và các ứng dụng trong kinh tếngTonH1
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líKiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líDr K-OGN
 
Bai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hocBai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hocVnPhan58
 
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoabài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa2353020138
 

Recently uploaded (20)

SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
 
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
 
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXHTư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
 
Sơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdfSơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdf
 
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
 
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
 
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxChàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
 
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
 
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxTrích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
 
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
 
Hệ phương trình tuyến tính và các ứng dụng trong kinh tế
Hệ phương trình tuyến tính và các ứng dụng trong kinh tếHệ phương trình tuyến tính và các ứng dụng trong kinh tế
Hệ phương trình tuyến tính và các ứng dụng trong kinh tế
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líKiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
 
Bai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hocBai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hoc
 
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoabài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
 

C01_TongQuanPTTKHT.pdf

  • 1. Giảng Viên: Trần Thị Kim Chi Chương I 1
  • 2. NỘI DUNG 1) Phân tích và thiết kế hệ thống là gì? 2) Chu kỳ phát triển hệ thống thông tin (systems development Life cycle - SDLC). 3) Mục đích và vai trò của phân tích hệ thống (system analyst) 4) Các phương pháp phát triển hệ thống (Agile, RUP) 5) Phân biệt chức năng của Phân tích và Thiết kế 6) Các bước phân tích thiết kế hệ thống 7) Phương pháp phân tích thiết kế hướng đối tượng 2
  • 3. CÁC KHÁI NIỆM VỀ PHÂN TÍCH THIẾT KẾ HỆ THỐNG 1) KHÁI NIỆM HỆ THỐNG ─ Hệ thống (system) là một tập các thành phần tương tác với nhau, kết hợp với nhau để thực hiện các mục tiêu tạo thành hệ thống. ▪ Vd: hệ thống thanh toán, hệ thống truyền thông, hệ thống giao thông, hệ thống mạng ─ Trong một hệ thống, mỗi một thành phần có thể có những chức năng khác nhau nhưng khi kết hợp lại chúng có những chức năng đặc biệt. 3
  • 4. CÁC KHÁI NIỆM VỀ PHÂN TÍCH THIẾT KẾ HỆ THỐNG 2) KHÁI NIỆM HỆ THỐNG THÔNG TIN • Hệ thống thông tin (Information system): hệ thống nhiều thành phần liên quan đến việc thu thập, xử lý, lưu trữ dữ liệu, truyền đạt thông tin • Một hệ thống thông tin thường bao gồm: phần cứng (hardware), phần mềm (software), dữ liệu (data), các qui trình (processes), và con người(people), và các hệ mạng truyền thông • Để phát triển một hệ thống thông tin, cần sự kết hợp của người quản lý, người dùng, quản trị mạng, nhà thiết kế web, lập trình viên và các nhà phân tích và thiết kế hệ thống. • Ví dụ: ─ Tập hợp các báo cáo kế toán của một tổ chức là HTTT về hoạt động tài chính của đơn vị đó. ─ Học bạ và bằng tốt nghiệp là HTTT về kết quả học tập và rèn luyện của học sinh, sinh viên trong quá trình đào tạo tại trường... 4
  • 5. PHÂN LOẠI HỆ THỐNG THÔNG TIN 1. Hệ thống xử lý giao dịch (Transaction processing system – TPS): là một HTTT có chức năng thu thập và xử lý dữ liệu về các giao dịch nghiệp vụ. 2. Hệ thống thông tin quản lý (Management information system - MIS): là HTTT cung cấp thông tin cho việc báo cáo hướng quản lý dựa trên việc xử lý giao dịch và các hoạt động của tổ chức. 3. Hệ thống hỗ trợ quyết định (Decision support system – DSS): là HTTT vừa có thể trợ giúp xác định các thời cơ ra quyết định, vừa có thể cung cấp thông tin để trợ giúp việc ra quyết định. 5
  • 6. PHÂN LOẠI HỆ THỐNG THÔNG TIN 4. Hệ thống thông tin điều hành (Excutive information system – EIS) : là HTTT hỗ trợ nhu cầu lập kế hoạch và đánh giá của các nhà quản lý điều hành. 5. Hệ thống chuyên gia (Expert System): là HTTT thu thập tri thức chuyên môn của các chuyên gia rồi mô phỏng tri thức đó nhằm đem lại lợi ích cho người sử dụng bình thường. 6. Hệ thống truyền thông và cộng tác (Communication and collaboration system): là HTTT làm tăng hiệu quả giao tiếp giữa các nhân viên, đối tác, khách hàng và nhà cung cấp để củng cố khả năng cộng tác giữa họ. 7. Hệ thống tự động văn phòng (Office automation system): là HTTT hỗ trợ các hoạt động nghiệp vụ văn phòng nhằm cải thiện luồng công việc giữa các nhân viên. 6
  • 7. CÁC LOẠI ỨNG DỤNG CỦA HỆ THỐNG THÔNG TIN 1. Hệ thống thông tin quản lý: Bao gồm các hệ thống thông tin hỗ trợ các hoạt động nghiệp vụ và quản lý của các doanh nghiệp, các tổ chức. Ví dụ: hệ thống quản lý nhân sự, hệ thống kế toán, hệ thống tính cước và chăm sóc khách hàng, hệ thống quản lý thư viện, hệ thống đào tạo trực tuyến ... 2. Các hệ thống Website: là các hệ thống có nhiệm vụ cung cấp thông tin cho người dùng trên môi trường mạng Internet. 3. Hệ thống thương mại điện tử: Là các hệ thống website đặc biệt phục vụ việc trao đổi mua bán hàng hoá, dich vụ trên môi trường Internet. Hệ thống TMDT bao gồm cả các nền tảng hỗ trợ các giao thức mua bán, các hình thức thanh toán, chuyển giao hàng hoá. 4. Hệ thống điều khiển: là các hệ thống phần mềm gắn với các thiết bị phần cứng hoặc các hệ thống khác nhằm mục đích điều khiển và giám sát hoạt động của thiết bị hay hệ thống đó. 7
  • 8. KHÁI NIỆM VỀ PHÂN TÍCH THIẾT KẾ HỆ THỐNG • Phân tích thiết kế hệ thống thông tin là quá trình tìm hiểu và mô phỏng lại hiện tượng, quy trình nghiệp vụ trong thế giới thực từ đó xây dựng hệ thống để giải quyết bài toán đặt ra trên máy tính. • Mục tiêu của phân tích thiết kế hệ thống: Cải tiến tổ chức hệ thống cũ hoặc phát triển một hệ thống mới giúp người dùng thực hiện các tác vụ dễ dàng và hiệu quả, cung cấp một cái nhìn tổng quan cho các nhà phát triển hệ thống về tất cả các khái niệm cần thiết để xây dựng một hệ thống 8
  • 9. TẠI SAO PHẢI PHÂN TÍCH THIẾT KẾ HỆ THỐNG • Chất lượng phân tích thiết kế hệ thống là nhân tố quyết định chất lượng phần mềm, không phân tích hoặc phân tích không tốt sẽ dẫn đến phần mềm chất lượng thấp: • Không quản lý được những thay đổi về yêu cầu • Khó kiểm thử • Khó bảo trì • Không có tính tiến hóa • Không tái sử dụng được • Thông qua việc phân tích, người phân tích sẽ xác định được yêu cầu của hệ thống và đưa ra giải pháp giải quyết vấn đề. 9
  • 10. VAI TRÒ CỦA PHÂN TÍCH THIẾT KẾ HỆ THỐNG ▪ Phân tích thiết kế đóng vai trò rất quan trọng trong quy trình xây dựng phần mềm: ▪ Giúp nhà phát triển và các bên liên quan có cái nhìn đầy đủ, đúng đắn, chính xác về hệ thống thông tin sẽ xây dựng trong tương lai. ▪ Giúp các nhà phát triển hệ thống thuận lợi trong việc sửa chữa, bổ sung và nâng cấp hệ thống khi có yêu cầu, tránh được những sai lầm trong thiết kế, cài đặt. 10
  • 11. VAI TRÒ CỦA NHÀ PHÂN TÍCH THIẾT KẾ HỆ THỐNG • Vai trò • Các nhà phân tích hệ thống đóng vai trò quan trọng trong bộ phận Công nghệ thông tin, giúp lập kế hoạch, phát triển và duy trì hệ thống thông tin. Họ là người chuyển đổi các yêu cầu nghiệp vụ thành các chức năng của hệ thống. • Các kỹ năng cần có của nhà phân tích thiết kế hệ thống • Giao tiếp, tư duy phân tích, • Có năng lực về mặt kỹ thuật, có thể lập kế hoạch về tài nguyên, lịch biểu và chi phí phục vụ cho việc phát triển hệ thống 11
  • 12. VAI TRÒ CỦA NHÀ PHÂN TÍCH THIẾT KẾ HỆ THỐNG • VÍ DỤ 12
  • 13. CHU KỲ PHÁT TRIỂN HỆ THỐNG THÔNG TIN (SYSTEMS DEVELOPMENT LIFE CYCLE - SDLC) • Tiến trình phát triển phần mềm bao gồm 2 khía cạnh: • Kỹ thuật: Vòng đời phát triển phần mềm, phương pháp, và công cụ. • Quản lý: Quản lý dự án phần mềm 13
  • 14. CHU KỲ PHÁT TRIỂN HỆ THỐNG THÔNG TIN (SYSTEMS DEVELOPMENT LIFE CYCLE - SDLC) SDLC là phương pháp tiếp cận từng giai đoạn để phân tích thiết kế hệ thống. • Vòng đời phát triển hệ thống gồm 4 giai đoạn, trong mỗi giai đoạn có nhiều bước: • Lập kế hoạch (Planning) • Phân tích (Analysis) • Thiết kế (Design) • Hiện thực (Implementation) 14
  • 15. CHU KỲ PHÁT TRIỂN HỆ THỐNG THÔNG TIN (SYSTEMS DEVELOPMENT LIFE CYCLE - SDLC) Gồm các giai đoạn chi tiết sau: 1. Nghiên cứu sơ bộ - Nhận diện vấn đề (Preliminary Investigation hay còn gọi là Feasibility Study) 2. Phân tích và yêu cầu (Analysis) 3. Thiết kế hệ thống (Design of the System) 4. Xây dựng phần mềm (Software Construction) 5. Thử nghiệm hệ thống (System Testing) 6. Thực hiện triển khai (System Implementation) 7. Bảo trì và nâng cấp (Maintain and upgrad)e 15
  • 16. CHU KỲ PHÁT TRIỂN HỆ THỐNG THÔNG TIN (SYSTEMS DEVELOPMENT LIFE CYCLE - SDLC) 1) Nghiên cứu sơ bộ (Preliminary Investigation hay còn gọi là Feasibility Study): • Khảo sát và thu thập yêu cầu của khách hàng • Sử dụng các kỹ thuật lấy yêu cầu khách hàng: • Phỏng vấn trực tiếp • Bảng câu hỏi • Tổ chức buổi hội thảo • →Kết quả của giai đoạn này là: Báo cáo các yêu cầu của khách hàng 16
  • 17. CHU KỲ PHÁT TRIỂN HỆ THỐNG THÔNG TIN (SYSTEMS DEVELOPMENT LIFE CYCLE - SDLC) 2) Phân tích yêu cầu (Analysis): Mục tiêu: hình thành tài liệu đặc tả yêu cầu (Requirements Specifications) gồm nội dung sau: • Xác định hệ thống cần phải làm gì. • Nghiên cứu thấu đáo tất cả các chức năng cần cung cấp và những yếu tố liên quan đến hệ thống. • Xây dựng một mô hình mô tả chi tiết các chức năng mà hệ thống sẽ làm Tài liệu này được xem: • Cam kết giữa khách hàng và tổ chức phát triển hệ thống về cái mà hệ thống có thể làm (và cái mà hệ thống không thể làm) • Là cơ sở để đội ngũ phát triển phát triển hệ thống • Mô hình tương đối đầy đủ về những gì hệ thống đòi hỏi 17
  • 18. CHU KỲ PHÁT TRIỂN HỆ THỐNG THÔNG TIN (SYSTEMS DEVELOPMENT LIFE CYCLE - SDLC) 2) Phân tích yêu cầu (Analysis): • Giai đoạn này trả lời các câu hỏi: • Ai sử dụng hệ thống (who) • Hệ thống sẽ làm gì (what) • Hệ thống được sử dụng ở đâu và sử dụng như thế nào (where and how) • Dữ liệu nào nên được nhập vào hệ thống? • Hệ thống xuất ra những thông tin gì • Tiến trình phân tích yêu cầu bao gồm các hoạt động lặp • Hiểu lĩnh vực vấn đề • Thu thập yêu cầu • Phân lớp • Đánh giá • Nghiên cứu khả thi 18
  • 19. CHU KỲ PHÁT TRIỂN HỆ THỐNG THÔNG TIN (SYSTEMS DEVELOPMENT LIFE CYCLE - SDLC) 3) Thiết kế hệ thống (Design of the System): • Thiết kế hệ thống xác định cách thực hiện các chức năng được xác định trong giai đoạn phân tích, bao gồm các yêu cầu phần cứng và kiến trúc hệ thống tổng thể. • Câu hỏi cần làm rõ trong giai đoạn này là Hệ thống làm như thế nào? (How) 19
  • 20. CHU KỲ PHÁT TRIỂN HỆ THỐNG THÔNG TIN (SYSTEMS DEVELOPMENT LIFE CYCLE - SDLC) 3) Thiết kế hệ thống (Design of the System): • Hai tiến trình thiết kế hệ thống: • Thiết kế kiến trúc (logic) • Phân hoạch các yêu cầu thành các thành phần • Tài liệu thiết kế kiến trúc mô tả mỗi thành phần cần làm gì và chúng tương tác với nhau như thế nào để hình thành các chức năng hệ thống • Thiết kế chi tiết (vật lý) • Thiết kế từng thành phần • Tài liệu thiết kế chi tiết mô tả mỗi thành phần mà cả hệ thống phải làm 20
  • 21. CHU KỲ PHÁT TRIỂN HỆ THỐNG THÔNG TIN (SYSTEMS DEVELOPMENT LIFE CYCLE - SDLC) 3) Thiết kế hệ thống (Design of the System): Các hoạt động thường được thực hiện trong giai đoạn thiết kế: • Nhận biết form nhập liệu tùy theo các thành phần dữ liệu cần nhập. • Nhận biết reports và những output mà hệ thống mới phải phát sinh. • Thiết kế forms • Nhận biết các thành phần dữ liệu và bảng để tạo database. • Ước tính các thủ tục giải thích quá trình xử lý từ input đến output. →Kết quả của giai đoạn thiết kế là Đặc tả thiết kế (Designer Specifications) mô tả: • Chức năng của mỗi thành phần • Giao diện của mỗi thành phần 21
  • 22. CHU KỲ PHÁT TRIỂN HỆ THỐNG THÔNG TIN (SYSTEMS DEVELOPMENT LIFE CYCLE - SDLC) 4) Xây dựng phần mềm: • Khi nhận được tài liệu thiết kế hệ thống, công việc được chia thành các module và bắt đầu giai đoạn hiện thực. • Chọn lựa ngôn ngữ • Chia hệ thống thành các module • Sau khi hoàn thành các Module thì tích hợp các Module lại thành một hệ thống 22
  • 23. CHU KỲ PHÁT TRIỂN HỆ THỐNG THÔNG TIN (SYSTEMS DEVELOPMENT LIFE CYCLE - SDLC) 5) Kiểm thử (Testing) • Mã nguồn được kiểm thử dựa trên các chức năng đã được thu thập trong giai đoạn phân tích và dựa trên tính khả dụng người dùng. • Trong giai đoạn này tất cả các loại kiểm thử chức năng như kiểm thử đơn vị, kiểm thử tích hợp, và kiểm thử phi chức năng cũng được thực hiện 23
  • 24. CHU KỲ PHÁT TRIỂN HỆ THỐNG THÔNG TIN (SYSTEMS DEVELOPMENT LIFE CYCLE - SDLC) 6) Triển khai hệ thống: • Sau khi thử nghiệm thành công, sản phẩm được phân phối / triển khai cho khách hàng để sử dụng. Bao gồm các hoạt động: • Cài đặt • Hướng dẫn sử dụng • Bảo trì 24
  • 25. CHU KỲ PHÁT TRIỂN HỆ THỐNG THÔNG TIN (SYSTEMS DEVELOPMENT LIFE CYCLE - SDLC) 7) Bảo trì hệ thống: • Bắt đầu khi hệ thống được cài đặt sử dụng thực tế, sau khi đã cấp phát sản phẩm cho khách hàng • Bảo trì bao gồm mọi thay đổi sản phẩm để khách hàng đồng ý rằng họ đã thỏa mãn với sản phẩm. • Bảo trì bao gồm: • Sửa phần mềm: loại bỏ các lỗi mà không phát hiện trong các pha truớc dó • Nâng cấp phần mềm • Hiệu năng: Bổ sung chức năng, tăng tốc độ thực hiện chương trình • Thích nghi: Các thay đổi cho phù hợp với môi truờng phần mềm • Thời gian trung bình: sửa lỗi 17,5%, hiệu năng 60%, thích nghi 18%. 25
  • 26. CÁC MÔ HÌNH PHÁT TRIỂN PHẦN MỀM 1. Mô hình thác nước (Waterfall Model) 2. Mô hình RUP 3. Mô hình xoán ốc (Spiral Model) 4. Mô hình Agile 5. Mô hình tăng trưởng (Incremental Model) 6. Mô hình chữ V (V model) 7. Mô hình Scrum 26
  • 27. CÁC MÔ HÌNH PHÁT TRIỂN PHẦN MỀM 1. Mô hình thác nước (Waterfall Model) • Mô hình này thực hiện tuần tự các giai đoạn của quy trình phát triển phần mềm. • Đầu ra của giai đoạn trước là đầu vào của giai đoạn sau. • Giai đoạn sau chỉ được thực hiện khi giai đoạn trước đã kết thúc. • Đặc biệt không được quay lại giai đoạn trước để xử lý các yêu cầu khi muốn thay đổi 27
  • 28. CÁC MÔ HÌNH PHÁT TRIỂN PHẦN MỀM 2. Mô hình RUP (Rational Unified Process) • Một cách tiếp cận có kỷ luật để gán và quản lý các nhiệm vụ phát triển phần mềm, vận dụng thực tiễn tốt nhất trong phát triển phần mềm hiện đại. Theo mô hình RUP, quy trình gồm 4 giai đoạn. • Giai đoạn khởi động (Inception): ý tưởng và mục tiêu của dự án được công bố. • Lập quy hoạch chi tiết (Elaboration): Kiến trúc và nguồn tài nguyên được xác định • Thực thi (Construction): phát triển và hoàn thành hệ thống • Chuyển giao (Transition): hệ thống được phát hành cho người dùng cuối và cập nhật dựa trên các phản hồi. 28
  • 29. CÁC MÔ HÌNH PHÁT TRIỂN PHẦN MỀM 2. Mô hình RUP (Rational Unified Process) • Đặc điểm của tiến trình RUP • Là một tiến trình lặp đi lặp lại, phù hợp với những hệ thống có yêu cầu thay đổi. • Sử dụng mô hình UML • Phát triển theo kiến trúc trung tâm (architecture-centric) giảm thiểu làm lại, tăng khả năng tái sử dụng. • Nhấn mạnh việc xây dựng hệ thống dựa trên sự hiểu biết thấu đáo chức năng của hệ thống 29
  • 30. CÁC MÔ HÌNH PHÁT TRIỂN PHẦN MỀM 2. Mô hình RUP (Rational Unified Process): Các giai đoạn của RUP • Khởi động (Inception) • Tìm hiểu nghiệp vụ • Xác định phạm vi của dự án. • Đánh giá rủi ro, ước tính nguồn nhân lực. • Phác thảo (Elaboration) • Phân tích nghiệp vụ. • Xây dựng kiến trúc phù hợp. • Phát triển kế hoạch dự án, loại bỏ các yếu tố có nguy cơ rủi ro cao. • Kiểm tra mục tiêu chi tiết và phạm vi của hệ thống, đưa ra quyết định có tiếp tục giai đoạn tiếp theo hay không. 30
  • 31. CÁC MÔ HÌNH PHÁT TRIỂN PHẦN MỀM 2. Mô hình RUP (Rational Unified Process): Các giai đoạn của RUP • Xây dựng (Construction) • Lặp đi lặp lại từng bước phát triển sản phẩm hoàn chỉnh, sẵn sàng chuyển giao cho người dùng • Hoàn thành việc kiểm thử phần mềm. • Chuyển giao (Transition) • Triển khai hệ thống đến người dùng • Ghi nhận những vấn đề phát sinh và các hạn chế để hoàn thiện bản cuối cùng 31
  • 32. CÁC MÔ HÌNH PHÁT TRIỂN PHẦN MỀM 3. Mô hình xoán ốc (Spiral Model) • Đây là sự kết hợp giữa các tính năng của mô hình prototyping và mô hình thác nước. • Mô hình xoắn ốc phù hợp cho các dự án lớn, đắt tiền và phức tạp. • Tương tự như mô hình thác nước, về thứ tự, lập kế hoạch, đánh giá rủi ro. 32
  • 33. CÁC MÔ HÌNH PHÁT TRIỂN PHẦN MỀM 4. Mô hình Agile • Agile là một phương pháp phát triển phần mềm linh hoạt với mục tiên là đưa sản phẩm đến tay người dùng nhanh nhất. • Mô hình Agile là một tập hợp các phương pháp phát triển lặp và tăng dần trong đó các yêu cầu và giải pháp được phát triển thông qua sự liên kết cộng tác giữa các nhóm tự quản và liên chức năng. 33
  • 34. CÁC MÔ HÌNH PHÁT TRIỂN PHẦN MỀM 4. Mô hình Agile • Đặc trưng của cách tiếp cận theo mô hình Agile là tính tương tác và gia tăng. Có 5 giai đoạn: o Thăm dò (exploration) o Lập kế hoạch (planning) o Vòng lặp: thử nghiệm, thay đổi để đạt được một hệ thống ổn định và phát triển (iterations to the first release) o Sản xuất (productionizing) 34
  • 35. CÁC MÔ HÌNH PHÁT TRIỂN PHẦN MỀM 5. Mô hình tăng trưởng (Incremental Model) • Chu kỳ được chia thành các module nhỏ, dễ quản lý. • Mỗi module sẽ đi qua các yêu cầu về thiết kế, thực hiện, … như 1 vòng đời phát triển thông thường. 35
  • 36. CÁC MÔ HÌNH PHÁT TRIỂN PHẦN MỀM 5. Mô hình chữ V (V model) • Mô hình chữ V là một phần mở rộng của mô hình thác nước, áp dụng việc kết hợp việc thử nghiệm vào từng giai đoạn của quy trình phát triển tương ứng, công việc test được tham gia ngay từ đầu. • Đây là một mô hình có tính kỷ luật cao, giai đoạn tiếp theo chỉ bắt đầu sau khi giai đoạn trước được hoàn thành. 36
  • 37. CÁC MÔ HÌNH PHÁT TRIỂN PHẦN MỀM 6. Mô hình chữ Scrum • Các yêu cầu ra làm theo từng giai đoạn. Mỗi một giai đoạn gọi là sprint và chỉ làm một số lượng yêu cầu nhất định. • Mỗi sprint thường kéo dài từ 1 tuần đến 4 tuần. Đầu sprint sẽ lên kế hoạch bao gồm các yêu cầu phải thực hiện, tiếp theo là code và test. Cuối sprint là một sản phẩm hoàn thiện cả code lẫn test có thể demo và chạy được. • Hoàn thành sprint 1, tiếp tục thực hiện sprint 2, sprint... cho đến khi hoàn thành hết các yêu cầu. • Trong mỗi sprint có buổi họp hàng ngày (daily meeting từ 15 – 20 phút). Mỗi thành viên sẽ báo cáo: công việc đã làm và những khó khăn. • Scrum là mô hình hướng khách hàng (Customer oriented). 37
  • 38. KIẾN TRÚC PHẦN MỀM (software architecture) • Thuật ngữ “Kiến trúc phần mềm” được dùng để chỉ: • Cấu trúc luận lý của chương trình gồm những kiểu phần tử, cách các phần tử tương tác với nhau, các chức năng của hệ thống ánh xạ vào các phần tử. • Các thành phần tồn tại trong hệ thống phần mềm. • Các thông tin chi tiết cần cho việc thiết kế phần mềm • Kiến trúc phần mềm chưa hoàn thiện như kiến trúc phần cứng máy tính vì công nghệ phần mềm còn mới mẻ và rất đặc thù • Một ứng dụng cần phải phù hợp với một kiến trúc phần mềm 38
  • 39. KIẾN TRÚC PHẦN MỀM (software architecture) • Khi chọn Kiến trúc phần mềm • Phải thỏa mãn các yêu cầu chức năng của phần mềm • Tùy vào độ phức tạp của phần mềm • Chi phí phát triển phần mềm • Đảm bảo tính khả thi, dễ bảo trì, khả chuyển, khả thích nghi, tốc độ, an ninh,... • Các kiến trúc PM thông dụng • Kiến trúc 3 ties • Kiến trúc client-server • Kiến trúc MVC 39
  • 40. KIẾN TRÚC PHẦN MỀM (software architecture) Kiến trúc Client – Server • Là một mô hình máy tính, trong đó máy chủ (server), cung cấp và quản lý hầu hết các nguồn lực và dịch vụ cho máy khách (client), có một hoặc nhiều máy khách kết nối với máy chủ trung tâm thông qua mạng hoặc Internet. • Cũng có thể được gọi là mạng mô hình máy tính vì tất cả các yêu cầu và dịch vụ là được phân phối qua mạng. 40
  • 41. KIẾN TRÚC PHẦN MỀM (software architecture) Kiến trúc Client – Server • Client • Các ứng dụng di động (mobile apps) • Các ứng dụng trên máy tính bảng (tablet apps) • Trình duyệt (Windows hoặc Mac OS) • Server • Hệ điều hành của server (OS server) • Server của trang web (Web server) • Server dữ liệu (Database server) • Code cho các ứng dụng của server 41
  • 42. KIẾN TRÚC PHẦN MỀM (software architecture) Kiến trúc 3 tầng (3-tiers architecture) • 3-tiers là một kiến trúc kiểu client/server mà trong đó giao diện người dùng (UI-user interface), các quy tắc nghiệp vụ (BR-business rule), và việc lưu trữ dữ liệu được phát triển như những module độc lập, và hầu hết là được duy trì trên các nền tảng độc lập. 42
  • 43. KIẾN TRÚC PHẦN MỀM (software architecture) Kiến trúc 3 tầng (3-tiers architecture) • Presentation tier • Các thành phần phần xử lý giao diện Graphic User Interface (GUI) • Business tier • Bao gồm các thành phần Business Logic Layer (BLL), Data Access Layer (DAL) và Data Tranfer Object (DTO). • Data tier • Lưu trữ dữ liệu, là các hệ quản trị CSDL như MS SQL Server, Oracle, SQLite, MS Access, XML files, text files, ... 43
  • 44. KIẾN TRÚC PHẦN MỀM (software architecture) Kiến trúc 3 tầng (3-tiers architecture) • Ưu điểm: • Dễ dàng mở rộng, thay đổi quy mô của hệ thống: Khi cần tải lớn, người quản trị có thể dễ dàng thêm các máy chủ vào nhóm, hoặc lấy bớt ra trong trường hợp ngược lại. • Nhược điểm: • Việc truyền dữ liệu giữa các tầng sẽ chậm hơn vì phải truyền giữa các tiến trình khác nhau (IPC), dữ liệu cần phải được đóng gói → truyền đi → mở gói trước khi có thể dùng được. Việc phát triển ứng dụng phức tạp hơn 44
  • 45. KIẾN TRÚC PHẦN MỀM (software architecture) Kiến trúc MVC (Model View Controller) • Mô hình MVC là một cách tiếp cận để phân biệt giữa mô hình dữ liệu (Model), điều khiển xử lý (Controller) và giao diện người dùng (View). • Mô hình MVC ngăn cách gọn gàng giao diện đồ họa được hiển thị cho người dùng khỏi quản lý các hành động của người dùng. 45
  • 46. KIẾN TRÚC PHẦN MỀM (software architecture) Kiến trúc MVC (Model View Controller) • Model: • Mức thấp nhất của mẫu kiến trúc MVC, chịu trách nhiệm duy trì dữ liệu. • View: • Chịu trách nhiệm hiển thị tất cả hoặc một phần dữ liệu cho người dùng. • Controller: • Mã phần mềm kiểm soát các tương tác giữa Model và View. 46
  • 47. CÁC GIAI ĐOẠN TRONG PHÂN TÍCH THIẾT KẾ HỆ THỐNG 1. Giai đoạn phân tích hệ thống • Dữ liệu đầu vào • Kết quả của giai đoạn thu thập yêu cầu: phiếu trả lời của khách hàng • Từ điển dữ liệu. • Hoạt động của giai đoạn phân tích • Xác định và hiểu rõ yêu cầu của người dùng thông qua các kỹ thuật thu thập yêu cầu khách hàng. Ưu tiên các yêu cầu được thu thập từ sự đồng thuận của người dùng. • Thiết lập một cách nhìn tổng quan rõ ràng về hệ thống và các mục đích chính của hệ thống cần xây dựng, Liệt kê các nhiệm vụ mà hệ thống cần thực hiện. Phát triển một bộ từ vựng để mô tả bài toán và các vấn đề liên quan, đưa ra hướng giải quyết bài toán. 47
  • 48. CÁC GIAI ĐOẠN TRONG PHÂN TÍCH THIẾT KẾ HỆ THỐNG 1. Giai đoạn phân tích hệ thống • Kết quả của giai đoạn phân tích hệ thống: Tài liệu phân tích hệ thống với các nội dung: • Xác định được các yêu chức năng, đặc tả chi tiết từng chức năng của hệ thống và mô hình hóa bằng các sơ đồ use case, activity, sequence và collaboration. • Xác định các yêu cầu phi chức năng của hệ thống • Xác định các quy tắc nghiệp vụ và các ràng buộc trong phạm vi hệ thống và mô hình hóa bằng sơ đồ domain 48
  • 49. CÁC GIAI ĐOẠN TRONG PHÂN TÍCH THIẾT KẾ HỆ THỐNG 2. Giai đoạn thiết kế hệ thống • Dữ liệu đầu vào • Kết quả của giai đoạn phân tích • Hoạt động của giai đoạn thiết kế • Xác định kiến trúc phần mềm phù hợp với hệ thống • Thiết kế các thành phần của hệ thống theo kiến trúc đã được xác định. • Mô hình hóa các thiết kế, sử dụng các sơ đồ sequence, class mức thiết kế, và component • Kết quả của giai đoạn thiết kế • Các sơ đồ thiết kế chi tiết phục vụ cho giai đoạn code, bao gồm các sơ đồ sequence, class và component. 49
  • 50. PHƯƠNG PHÁP PHÂN TÍCH THIẾT KẾ HỆ THỐNG • Có 2 phương pháp phân tích thiết kế hệ thống • Phân tích thiết kế hướng cấu trúc • Phân tích thiết kế hướng đối tượng 50
  • 51. PHƯƠNG PHÁP PHÂN TÍCH THIẾT KẾ HỆ THỐNG Phân tích thiết kế hướng cấu trúc • Đặc trưng: chia chương trình chính thành nhiều chương trình con, sao cho mỗi chương trình con thực hiện một công việc xác định. • Có 2 cách tiếp cận: • Tiếp cận hướng dữ liệu: xây dựng phần mềm dựa vào việc phân rã phần mềm theo các chức năng cần đáp ứng và dữ liệu cho các chức năng tương ứng. • Tiếp cận hướng hành động tập trung phân tích hệ thống trên các hoạt động thực thi các chức năng của phần mềm. 51
  • 52. PHƯƠNG PHÁP PHÂN TÍCH THIẾT KẾ HỆ THỐNG Phân tích thiết kế hướng cấu trúc • Cách thực hiện • Phân rã hệ thống bằng kỹ thuật phân tích có cấu trúc (Structured Analysis & Design Technique, SADT) và mô tả lại bằng lược đồ Data Flow Diagram (DFD) • Xác định các thực thể, quan hệ giữa các thực thể và các thuộc tính có dữ liệu của chúng để liên kết một cách có cấu trúc các thành tố dữ liệu trong hệ thống, và mô tả lại bằng EntityRelationship Diagram (ERD) 52
  • 53. PHƯƠNG PHÁP PHÂN TÍCH THIẾT KẾ HỆ THỐNG Phân tích thiết kế hướng cấu trúc Ví dụ: Phân tích qui trình xử lý đơn hàng Bộ phận giao dịch nhận đơn đặt hàng từ khách hàng, kiểm tra đơn đặt hàng để hiệu chỉnh nếu cần, sau đó lưu vào hồ sơ đặt hàng 53
  • 54. PHƯƠNG PHÁP PHÂN TÍCH THIẾT KẾ HỆ THỐNG Phân tích thiết kế hướng cấu trúc 54
  • 55. PHƯƠNG PHÁP PHÂN TÍCH THIẾT KẾ HỆ THỐNG Phân tích thiết kế hướng cấu trúc • Ưu điểm: • Tư duy phân tích thiết kế rõ ràng, Chương trình sáng sủa dễ hiểu, dễ theo dõi luồng dữ liệu. • Xác định các yêu cầu HT thời gian dài trước khi bắt đầu lập trình. • Tối thiểu hóa sự thay đổi yêu cầu khi dự án bắt đầu. • Nhược điểm: • Không hỗ trợ việc sử dụng lại. • Không phù hợp cho phát triển các phần mềm lớn. • Khó quản lý mối quan hệ giữa các module và dễ gây ra lỗi trong phân tích cũng như khó kiểm thử và bảo trì. 55
  • 56. PHƯƠNG PHÁP PHÂN TÍCH THIẾT KẾ HỆ THỐNG Phân tích thiết kế hướng cấu trúc • Lĩnh vực áp dụng • Phương pháp hướng cấu trúc phù hợp với những dự án nhỏ, có luồng dữ liệu rõ ràng, giải thuật đơn giản. 56
  • 57. PHƯƠNG PHÁP PHÂN TÍCH THIẾT KẾ HỆ THỐNG Phân tích thiết kế hướng đối tượng (Object-Oriented Analysis and Design -OOAD) • Đặc trưng • Tập trung vào cả hai khía cạnh của hệ thống là dữ liệu và hành vi. Ánh xạ các thành phần trong bài bài toán vào các đối tượng ngoài đời thực. • Một hệ thống được chia thành một tập các đối tượng. Mỗi đối tượng bao gồm dữ liệu và hành vi liên quan đến đối tượng đó. • Các đối tượng trong một hệ thống tương đối độc lập với nhau và phần mềm sẽ được xây dựng bằng cách kết hợp các đối tượng đó lại với nhau thông qua các mối quan hệ và tương tác giữa chúng. 57
  • 58. PHƯƠNG PHÁP PHÂN TÍCH THIẾT KẾ HỆ THỐNG Phân tích thiết kế hướng đối tượng (Object-Oriented Analysis and Design -OOAD) • Cách thực hiện • Thiết kế từ dưới lên (bottom-up). • Bắt đầu từ những thuộc tính cụ thể của từng đối tượng sau đó tiến hành trừu tượng hóa thành các lớp (Đối tượng). • Lĩnh vực áp dụng • Áp dụng cho các dự án lớn, phức tạp, hoặc có nhiều luồng dữ liệu khác nhau mà phương pháp cấu trúc không thể quản lý được. 58
  • 59. PHƯƠNG PHÁP PHÂN TÍCH THIẾT KẾ HỆ THỐNG Phân tích thiết kế hướng đối tượng (Object-Oriented Analysis and Design -OOAD) • Ưu điểm • Gần gũi với thế giới thực. • Tái sử dụng dễ dàng. • Đóng gói che giấu thông tin làm cho hệ thống tin cậy hơn. • Thừa kế làm giảm chi phí, hệ thống có tính mở cao hơn • Xây dựng hệ thống phức tạp. • Nhược điểm: • Phức tạp, khó theo dõi được luồng dữ liệu do có nhiều luồng dữ liệu ở đầu vào. 59
  • 60. CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG Hướng đối tượng • Hướng đối tượng (Object Orientation): Là một cách nhìn và mô hình hóa hệ thống như một tập hợp các đối tượng và các mối quan hệ và sự tương tác giữa chúng • Ví dụ • Hệ thống quản lý sinh viên, nếu phân tích theo hướng đối tượng thì hệ thống quản lý một tập các đối tượng sinh viên với các thuộc tính: Mã SV, Họ tên, ngày sinh, và các hành vi hiển thị thông tin. 60
  • 61. CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG Đối tượng – Object • Một đối tượng đại diện cho một người, một địa điểm, một sự kiện hoặc một giao dịch … có ý nghĩa đối với hệ thống thông tin. • Một đối tượng bao gồm thuộc tính và hành vi. 61
  • 62. CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG Đối tượng – Object • Thuộc tính (Information) là các đặc điểm mô tả đối tượng và các mô tả về cấu trúc của đối tượng. • Hành vi (Behaviour) là các nhiệm vụ hoặc chức năng mà đối tượng thực hiện khi nhận được yêu cầu hoặc lệnh để thực hiện điều đó • Ví dụ: một đối tượng Máy in có • Thuộc tính: SerialNumber, Model, Speed, Memory, Status Hành vi: PrintFile, StopPrint, Removefile 62
  • 63. CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG Đối tượng – Object Joe Smith age=39 weight=158 Mary Wilson age=27 weight=121 Person name age weight 63
  • 64. CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG Lớp – Class • Một lớp là một tập hợp các đối tượng có chung các thuộc tính, hành vi, mối quan hệ và ngữ nghĩa. • Một đối tượng là một thể hiện (instanse) của một lớp. • Ví dụ: Lớp máy in là một tập hợp các đối tượng máy in có cùng thuộc tính và hành vi Class Attributes Operations ball radius, weight catch, throw football air pressure pass, kick, hand-off baseball liveness hit, pitch, tag 64
  • 65. CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG BÀI TẬP Which of the following items do you think should be a class, and which should be an instance? For any item which should be an instance, name a suitable class for it. a) General Motors b) Automoible company c) Student d) Computer Science Student e) Mary Smith f) Game g) Board Game h) Chess i) Car j) Mazda car k) The game of chess between Tom and Jane which started at 2:30pm yesterday l) The car with serial number DL 2C 7151 65
  • 66. CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG Quan hệ giữa lớp và đối tượng • Quá trình mô hình hóa được bắt đầu từ các đối tượng trong thế giới thực, trừu tượng hóa các đối tượng, phân loại chúng, dựa trên những khía cạnh cần quan tâm. • Lớp là một định nghĩa trừu tượng của các đối tượng, nó định nghĩa cấu trúc và hành vi của từng đối tượng trong lớp, • Lớp là một khuôn mẫu để tạo các đối tượng, các đối tượng được tạo từ một lớp còn được gọi là các thể hiện của lớp. 66
  • 67. CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG Thông điệp và Phương thức • Thông điệp (message) Là thông tin dùng để liên lạc hai chiều giữa các đối tượng trong hệ thống. • Một thông điệp yêu cầu một hoạt động (operation) từ đối tượng nhận thông điệp. • Thông điệp truyền đối số và kiểu trả về. • Đối tượng nhận thông điệp trả về một đối tượng trở thành giá trị của biểu thức thông điệp. • Ví dụ: Sean.takeOrder(who, stock, address, date) • Sean: tên đối tượng nhận thông điệp • TakeOrder là một phương thức gọi trên Sean • who, stock, address, date: tham số của thông điệp 67
  • 68. CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG Thông điệp và Phương thức • Phương thức (Method): là một dịch vụ được yêu cầu từ một đối tượng để thực hiện hành vi. • Phương thức là cách hiện thực hoạt động. Nó xác định thuật toán hoặc thủ tục liên quan đến một hoạt động • Một thông điệp là hợp lệ nếu bên nhận có một phương thức tương ứng với phương thức có tên trong thông điệp và các đối số thích hợp, được cung cấp cùng với thông báo. Chỉ các tin nhắn hợp lệ được thực hiện bởi người nhận. 68
  • 69. CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG Thông điệp và Phương thức Ví dụ: phương thức takeOrder(who, stock, address, date) { check with warehouse on stock availability check with warehouse on delivery schedule if ok then { instruct warehouse to deliver stock to address on date } else return not ok } 69
  • 70. CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG Interface • Interfaces là một phần tử mô hình hướng đối tượng mà nó xác định các hoạt động của các phần tử mô hình khác, ví dụ như các lớp (class) hoặc các thành phần (component). • Các phương thức (method) của interface đều là trừu tượng, nghĩa là không có thân hàm, và đều có modifier là: public abstract. 70
  • 71. CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG Interface Ví dụ: một interface PhuongTien chứa 2 hoạt động Dichuyen và KiemTraNhienLieu 71
  • 72. CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG Interface Ví dụ (tt): Mỗi loại phương tiện khác nhau sẽ hiện thực hoạt động thực thi và kiểm tra nhiên liệu khác nhau (implements) 72
  • 73. CÁC ĐẶC TRƯNG CỦA HƯỚNG ĐỐI TƯỢNG 73
  • 74. CÁC ĐẶC TRƯNG CỦA HƯỚNG ĐỐI TƯỢNG Tính trừu tượng (Abstraction) • Abstraction: Giảm độ phức tạp bằng cách che giấu những chi tiết không liên quan. • Generalization: thay thế nhiều thực thể thực hiện cùng chức năng bằng một cấu trúc duy nhất. • Lớp trừu tượng (Abstract class) là một lớp cha của những lớp có cùng bản chất bao gồm thuộc tính và phương thức. Do đó mỗi lớp dẫn xuất (lớp con) chỉ có thể kế thừa từ một lớp trừu tượng. Lớp Abstract không cho phép tạo instance 74
  • 75. CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG Đóng gói (Encapsulation) • Kết hợp tiến trình và dữ liệu vào một thực thể thống nhất. Nhiều gói kết hợp thành một hệ thống con (subsystem). • Là kỹ thuật ẩn giấu thuộc tính và phương thức của đối tượng, nó không cho phép truy cập trực tiếp đến dữ liệu mà phải thông qua các phương thức được đối tượng cung cấp để truy cập đến dữ liệu của chính nó. • Đây là tính chất đảm bảo sự toàn vẹn, bảo mật của đối tượng, tính đóng gói được thể hiện thông qua phạm vi truy cập (access modifier). 75
  • 76. CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG Tính đa hình (polymorphism) • Trong mô hình hướng đối tượng, tính đa hình là sử dụng các hoạt động theo các cách khác nhau, tùy thuộc vào trường hợp mà chúng đang hoạt động. • Đa hình cho phép các đối tượng có giao diện bên ngoài chung nhưng có cấu trúc bên trong khác nhau. • Đa hình là đặc biệt hiệu quả trong khi thực hiện kế thừa. 76
  • 77. CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG Tính đa hình (polymorphism) Ví dụ: Có 2 lớp Horse và Cat, mỗi lớp có một phương thức Sound (), 2 lớp có cùng tên một tên phương thức, nhưng cách hiện thực phương thức Sound() trong 2 lớp thì khác nhau. public class Animal{ public void sound(){ System.out.println("Animal is making a sound"); } } 77
  • 78. CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG Tính đa hình (polymorphism) Ví dụ: Có 2 lớp Horse và Cat, mỗi lớp có một phương thức Sound (), 2 lớp có cùng tên một tên phương thức, nhưng cách hiện thực phương thức Sound() trong 2 lớp thì khác nhau. class Horse extends Animal{ @Override public void sound(){ System.out.println("Neigh"); } public static void main(String args[]){ Animal obj = new Horse(); obj.sound(); } } public class Cat extends Animal{ @Override public void sound() System.out.println("Meow"); } public static void main(String args[]){ Animal obj = new Cat(); obj.sound(); } } 78
  • 79. CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG Tính đa hình (polymorphism) Ví dụ: Có 2 lớp Horse và Cat, mỗi lớp có một phương thức Sound (), 2 lớp có cùng tên một tên phương thức, nhưng cách hiện thực phương thức Sound() trong 2 lớp thì khác nhau. public class Animal{ public void sound(){ System.out.println("Animal is making a sound"); } } 79
  • 80. CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG • Modularity • Chia hệ thống phức tạp thành những hệ thống nhỏ hơn, tự nó chứa những phần có thể hoạt động một cách độc lập Billing System Course Registration System Course Catalog System Student Management System 80
  • 81. CÁC KHÁI NIỆM HƯỚNG ĐỐI TƯỢNG • Hierarchy • Thứ tự của sự trừu tượng có cấu trúc dạng cây • Các loại hierachy: • Aggregation hierarchy, • Class hierarchy, • Containment hierarchy, • Inheritance hierarchy, • Partition hierarchy, • SpecializatioInheritance hierarchyn hierarchy 81 Decreasing abstraction Asset RealEstate Savings BankAccount Checking Stock Security Bond Elements at the same level of the hierarchy should be at the same level of abstraction.
  • 82. PHÂN TÍCH THIẾT KẾ HỆ THỐNG HƯỚNG ĐỐI TƯỢNG Mô hình hóa hướng đối tượng • Mô hình hóa hướng đối tượng là một cách mô hình hoá các hệ thống theo ngôn ngữ tự nhiên. • Các hệ thống, mà chính nó là một đối tượng, phân hủy thành các thành phần, mỗi thành phần có thể thực hiện một công việc hoàn chỉnh. • Các thành phần có thể cộng tác để cung cấp các chức năng cần thiết của hệ thống Activity Diagrams Models Static Diagram s Sequence Diagrams Communication Diagrams State Machine Diagrams Deployment Diagrams Component Diagrams Object Diagrams Class Diagrams Use-Case Diagrams 82
  • 83. PHÂN TÍCH THIẾT KẾ HỆ THỐNG HƯỚNG ĐỐI TƯỢNG Lợi ích Mô hình hóa hướng đối tượng • Cung cấp một framework có thể mô hình hóa các khái niệm một cách trực quan. • Giảm chi phí thực hiện và bảo trì • Giảm độ phức tạp • Tiếp cận dựa trên thành phần (Component) tăng khả năng tái sử dụng • Tăng hiệu suất và chất lượng của hệ thống • Giảm rủi ro 83
  • 84. PHÂN TÍCH THIẾT KẾ HỆ THỐNG HƯỚNG ĐỐI TƯỢNG Phân tích thiết kế hướng đối tượng • Áp dụng các mô hình hướng đối tượng để phân tích các hệ thống hoặc các yêu cầu hệ thống. • Thiết kế hướng đối tượng: thực hiện các yêu cầu được xác định trong phân tích hướng đối tượng. • Phân tích thiết kế hướng đối tượng gồm 2 hoạt động: • Phân tích hướng đối tượng - Object Oriented Analysis • Thiết kế hướng đối tượng - Object Oriented Design 84
  • 85. PHÂN TÍCH THIẾT KẾ HỆ THỐNG HƯỚNG ĐỐI TƯỢNG Phân tích thiết kế hướng đối tượng • Phân tích (Analysis): nhấn mạnh việc nghiên cứu các yêu cầu và vấn đề của bài toán. • Phân tích hướng đối tượng (Object-oriented analysis): nhấn mạnh việc tìm kiếm và mô tả các khái niệm đối tượng trong phạm vi bài toán. • Tập trung vào việc phát triển một mô hình hướng đối tượng của hệ thống. 85
  • 86. PHÂN TÍCH THIẾT KẾ HỆ THỐNG HƯỚNG ĐỐI TƯỢNG Phân tích thiết kế hướng đối tượngVí dụ: Cửa hàng bán xe hơi, giai đoạn OOA sẽ nhận biết được • Các thực thể: • Khách hàng • Người bán hàng • Phiếu đặt hàng • Phiếu (hoá đơn) thanh toán • Xe hơi • Tương tác và quan hệ giữa các thực thể trên là: • Người bán hàng giới thiệu xe cho khách hàng • Khách hàng chọn xe • Khách hàng viết phiếu đặt xe • Người bán hàng lập hóa đơn • Khách hàng trả tiền xe, người bán hàng nhận tiền và giao hóa đơn cho khách • Người bán hàng giao xe cho khách hàng 86
  • 87. PHÂN TÍCH THIẾT KẾ HỆ THỐNG HƯỚNG ĐỐI TƯỢNG Thiết kế hướng đối tượng • Thiết kế (Design): nhấn mạnh việc tìm giải pháp để thực hiện các yêu cầu trong giai đoạn phân tích. • Thiết kế hướng đối tượng: xác định các đối tượng phần mềm và cách tương tác của chúng với nhau để thực hiện các yêu cầu của hệ thống. • Cung cấp một mô hình hướng đối tượng của hệ thống phần mềm để hiện thực các yêu cầu đã được xác định. 87
  • 88. PHÂN TÍCH THIẾT KẾ HỆ THỐNG HƯỚNG ĐỐI TƯỢNG VỚI UML • UML (Unified Modeling Language): ngôn ngữ dùng để mô hình hóa quá trình phát triển hệ thống phần mềm hướng đối tượng • Các sơ đồ trong UML được chia thành 2 nhóm: • Sơ đồ cấu trúc (Structure Diagrams): class, object, package, deployment, component. • Sơ đồ hành vi (Behavioral Diagrams): use case diagrams, activity, sequence, communication, interaction. 88
  • 89. PHÂN TÍCH THIẾT KẾ HỆ THỐNG HƯỚNG ĐỐI TƯỢNG VỚI UML UML defines 13 diagrams that describe 4+1 architectural views 4+1 architectural views model was proposed by Philippe Kruchten, IBM 89
  • 90. PHÂN TÍCH THIẾT KẾ HỆ THỐNG HƯỚNG ĐỐI TƯỢNG VỚI UML 90 Sơ đồ Use case Submit Grades Professor View Report Card Select Courses to Teach Student Course Catalog Register for Courses Maintain Student Information Maintain Professor Information Registrar Billing System Close Registration Login
  • 91. PHÂN TÍCH THIẾT KẾ HỆ THỐNG HƯỚNG ĐỐI TƯỢNG VỚI UML 91 Biểu đồ lớp (Class diagram)
  • 92. PHÂN TÍCH THIẾT KẾ HỆ THỐNG HƯỚNG ĐỐI TƯỢNG VỚI UML 92 Biểu đồ đối tượng (Object diagram)
  • 93. PHÂN TÍCH THIẾT KẾ HỆ THỐNG HƯỚNG ĐỐI TƯỢNG VỚI UML 93 Biểu đồ trạng thái (State diagram)
  • 94. PHÂN TÍCH THIẾT KẾ HỆ THỐNG HƯỚNG ĐỐI TƯỢNG VỚI UML 94 Biểu đồ trình tự (Sequence diagram)
  • 95. PHÂN TÍCH THIẾT KẾ HỆ THỐNG HƯỚNG ĐỐI TƯỢNG VỚI UML 95 Biểu đồ tương tác (Communication Diagram)
  • 96. PHÂN TÍCH THIẾT KẾ HỆ THỐNG HƯỚNG ĐỐI TƯỢNG VỚI UML 96 Biểu đồ hoạt động (Activity Diagram)
  • 97. PHÂN TÍCH THIẾT KẾ HỆ THỐNG HƯỚNG ĐỐI TƯỢNG VỚI UML 97 Biểu đồ thành phần (Component Diagram)
  • 98. PHÂN TÍCH THIẾT KẾ HỆ THỐNG HƯỚNG ĐỐI TƯỢNG VỚI UML 98 Biểu đồ triển khai (Deployment Diagram)
  • 99. CÂU HỎI VÀ BÀI TẬP Câu 1. Tại sao khi xây dựng một HTTT cần phải có phân tích và thiết kế hệ thống? Câu 2. Nêu các giai đoạn trong một chu trình phát triển một hệ thống thông tin? Giai đoạn nào là quan trọng? Có thể thiếu một trong các giai đoạn đó được không? Câu 3. Kể tên một số ví dụ cho các loại hệ thống thông tin: hệ thống thông tin quản lý, hệ thống website thương mại điện tử, hệ thống điều khiển ... Câu 5. So sánh hai phương pháp phân tích thiết kế hướng cấu trúc và hướng đối tượng? Ưu và nhược điểm? 99
  • 100. BÀI TẬP NHÓM 1. Lập nhóm + tên đề tài → nộp về cho giảng viên cuối buổi học. 2. Thử hình dung với đề tài đã chọn, bạn sẽ làm gì ở giai đoạn đầu tiên của chu trình phát triển phần mềm (nghiên cứu sơ bộ)? ✓ Ghi lại ✓ Tìm hiểu hệ thống đã chọn sau buổi học, ghi nhận những vấn đề đã cảm nhận được. ✓ Thử đánh giá và chọn thông tin nào cần cho hệ thống, thông tin nào không cần thiết. 100
  • 101. 101