1. Trang chủ
  2. » Giáo án - Bài giảng

Bài 9,10: Công nghệ phần mềm- Pha phân tích_TS.Nguyễn Mạnh Hùng

62 2,4K 2
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Pha phân tích
Tác giả TS. Nguyễn Mạnh Hùng
Trường học Học viện Công nghệ Bưu chính Viễn thông
Chuyên ngành Công nghệ phần mềm
Thể loại Bài giảng
Năm xuất bản 2007
Thành phố Hà Nội
Định dạng
Số trang 62
Dung lượng 3,11 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Silde bài giảng công nghệ phần mềm

Trang 1

Công nghệ phần mềm

Pha phân tích

Giảng viên: TS Nguyễn Mạnh Hùng

Học viện Công nghệ Bưu chính Viễn thông (PTIT)

Trang 2

Nội dung tham khảo từ

Stephen R Schach Object-Oriented and Classical

Software Engineering Seventh Edition,

WCB/McGraw-Hill, 2007

Trang 3

 Đặc tả yêu cầu của khách hàng dưới dạng có

thể làm đầu vào cho thiết kế và cài đặt được

Trang 4

Pha phân tích (2)

Thực hiện:

 Trích các lớp: lớp thực thể, lớp biên, lớp điều khiển

 Xác định quan hệ (ban đầu giữa các lớp)

Trang 5

Pha phân tích (3)

Lớp thực thể (còn gọi là lớp model):

 Dùng để biểu diễn dữ liệu để xử lí, trao đổi giữa các

đối tượng trong hệ thống

 Thường chỉ có các thuộc tính và các phương thức

truy nhập get/set

Ví dụ (với hệ thống MGS):

 Lớp Account (thông tin tài khoản của khách hàng)

 Lớp Invesment (thông tin về từng khoản đầu tư)

Trang 6

Pha phân tích (4)

Lớp biên (còn gọi là lớp view):

 Dùng để biểu diễn các dạng giao diện, giao tiếp giữa

người dùng và hệ thống

 Mỗi lớp biên thường liên quan đến một thiết bị đầu

vào, hoặc đầu ra của hệ thống

Ví dụ (với hệ thống MGS):

 Các báo cáo (về số dư quỹ, về lượng khách vay )

 Các lớp để hiển thị kết quả lên màn hình

 Các lớp hiện form lên màn hình để người dùng nhập

thông tin vào

Trang 7

Pha phân tích (5)

Lớp điều khiển (còn gọi là lớp control):

 Dùng để mô hình các tính toán và thuật toán phức

tạp trong hệ thống

 Có thể chỉ cần dùng một lớp điều khiển cho các hệ

thống đơn giản, mỗi phương thức là một hàm xử lí,

tình toán độc lập

Ví dụ (với hệ thống MGS) cần lớp điều khiển để:

 Tính số dư của quỹ hàng tuần

 Tính số tiền các cặp vợ chồng phải trả hàng tuần

 Thao tác với CSDL để thêm, sửa, xóa các đối tượng

thực thể

Trang 8

Pha phân tích (6)

Biểu diễn các dạng lớp trong UML:

Trang 9

Trích các lớp

Lặp lại 3 bước chính sau:

 B1: Mô hình hóa chức năng

 B2: Mô hình hóa các lớp

 B3: Mô hình hóa hoạt động

Trang 10

Mô hình hóa chức năng (1)

Thực hiện:

 Với mỗi use case (kết quả từ pha yêu cầu), viết ít

nhất một scenario cho use case đấy

 Một scenario là một kịch bản cụ thể khi người sử

dụng tương tác với hệ thống

Trang 11

Mô hình hóa chức năng (2)

Ví dụ với bài toán thang máy:

 Người ta cần viết một phần mềm điều khiển n thang

máy trong tòa nhà có m tầng

 Trong mỗi thanh máy có m nút nhất ứng với m tầng

Khi bị nhấn, nút sẽ sáng lên cho đến khi thang máy

đi đến tầng đó

 Tại mỗi tầng, có 2 nút nhấn lên và xuống (trừ tầng

thấp nhất và cao nhất) Khi bị nhấn, nút sẽ sáng lên cho đến khi thang máy đi cùng chiều đến tầng đó

 Khi không có yêu cầu, thang máy đứng yên tại chỗ

Trang 12

Mô hình hóa chức năng (3)

Chỉ có 2 use case:

 Người dùng nhấn nút tại mỗi tầng

 Người dùng nhấn nút bên trong thang máy

Trang 13

3 Thang máy đi lên tầng 3 Trong đó có chứa người B

đang đi lên tầng 9

4 Nút lên tại tầng 3 tắt

5 Cửa thang máy mở ra

6 Bộ đếm thời gian mở cửa bắt đầu đếm

7 A đi vào thang máy và nhấn nút số 7

8 Nút số 7 sáng lên

9 Cửa thang máy đóng lại sau khi đếm hết thời gian mở

Trang 14

Mô hình hóa chức năng (5)

Scenario chuẩn (tt):

10 Thang máy đi lên tầng 7

11 Nút số 7 trong thang máy tắt

12 Cửa thang máy mở ra

13 Bộ đếm lại hoạt động

14 A bước ra khỏi thang máy tại tầng 7

15 Cửa thang máy đóng lại sau khi đếm hết thời gian

16 Thang máy tiếp tục đi lên đến tầng 9 với người B

Trang 15

3 Thang máy đi lên tầng 3 Trong đó có chứa người B

đang đi lên tầng 9

4 Nút lên tại tầng 3 tắt

5 Cửa thang máy mở ra

6 Bộ đếm thời gian mở cửa bắt đầu đếm

7 A đi vào thang máy và nhấn nút số 1

8 Nút số 1 sáng lên

9 Cửa thang máy đóng lại sau khi đếm hết thời gian mở

Trang 16

Mô hình hóa chức năng (7)

Scenario ngoại lệ (tt):

10 Thang máy đi lên tầng 9

11 Nút số 9 trong thang máy tắt

12 Cửa thang máy mở ra

13 Bộ đếm lại hoạt động

14 B bước ra khỏi thang máy tại tầng 9

15 Cửa thang máy đóng lại sau khi đếm hết thời gian

16 Thang máy tiếp tục đi xuống tầng 1 với người A

Trang 17

Mô hình hóa chức năng (8)

Yêu cầu của một scenario:

 Luôn phải nêu rõ ý định, mục đích của actor trước

khi bắt đầu scenario hoặc ngay trong bước 1

 Các bước luôn đánh số thứ tự từ 1

 Mỗi một bước chỉ có một hành động đơn Nếu có

hai hành động trở lên thì các hành động đó phải

Trang 18

Mô hình hóa chức năng (9)

Yêu cầu của một scenario:

 Thông tin trong mỗi bước là phải cụ thể, không

được viết chung chung

Ví dụ viết thế này là không được:

1 Một người nhấn nút lên tại một tầng

2 Thang máy đi đến tầng đó

3 Nút lên tại tầng đó tắt

4 Cửa thang máy mở ra

5 Người đó đi vào và nhấn nút tầng muốn lên

Trang 19

 Xác định quan hệ và tương tác giữa các lớp này

 Biểu diễn các thông tin này trên sơ đồ lớp (khởi

tạo)

Trang 20

Mô hình hóa các lớp (2)

Kĩ thuật trích danh từ để trích các lớp:

 Mô tả hoạt động của ứng dụng trong một đoạn

văn

 Trích các danh từ xuất hiện trong đoạn văn đó, coi

như là các ứng cử viên của lớp thực thể

 Xét duyệt từng danh từ và đề xuất nó là lớp thực

thể hay là thuộc tính của lớp thực thể

Lưu ý:

 Có thể thay đoạn văn trong bước 1 bằng cách tập

hợp các scenario đã viết trong bước trước

Trang 21

Mô hình hóa các lớp (3)

Ví dụ mô tả bài toán điều khiển thang máy:

 Các nút nhấn tại mỗi tầng và các nút nhấn trong

thang máy sẽ điều khiển hoạt động của n thang

máy trong tòa nhà m tầng Các nút sáng lên khi bị

nhấn để yêu cầu thang máy đi đến 1 tầng nào đó,

và tắt đi khi yêu cầu đã được đáp ứng xong Khi

không có yêu cầu, thang máy đứng yên với cửa

đóng

Trang 22

Mô hình hóa các lớp (4)

Trích các danh từ:

máy trong tòa nhà m tầng Các nút sáng lên khi bị

nhấn để yêu cầu thang máy đi đến 1 tầng nào đó,

và tắt đi khi yêu cầu đã được đáp ứng xong Khi

không có yêu cầu, thang máy đứng yên với cửa

đóng

Trang 23

Mô hình hóa các lớp (5)

Các danh từ:

 Nút nhấn, nút nhấn tại tầng, nút nhất trong thang

máy, thang máy, tầng, hoạt động, tòa nhà, yêu

→ Chỉ còn lại lớp thang máy và nút nhấn (với hai lớp

con là nút nhấn trong thang máy và nút nhấn tầng)

Trang 24

Mô hình hóa các lớp (6)

Kết quả các lớp thực thể:

Vấn đề nảy sinh:

Trang 25

Mô hình hóa các lớp (7)

Kết quả các lớp thực thể:

Trang 26

Mô hình hóa các lớp (8)

Dùng thẻ CRC để mô hình hóa quan hệ giữa

các lớp:

 C: class Biểu diễn tên lớp

 R: responsibility Trách nhiệm của lớp

 C: collaboration Quan hệ của lớp

Trang 27

Mô hình hóa các lớp (9)

Thẻ CRC cho lớp điều khiển thang máy:

Trang 28

Mô hình hóa các lớp (10)

Thẻ CRC cho lớp điểu khiển thang máy (tt):

 Vì hướng đối tượng che giấu dữ liệu của các lớp nên

không thể viết:

– Lớp điều khiển bật nút sáng lên

Mà phải viết theo dạng tương tác giữa các lớp:

bật sáng trạng thái của mình lên

Làm tương tự với các trách nhiệm của lớp điều khiển, sẽ thấy xuất hiện thêm các lớp: cửa thang máy

Trang 29

Mô hình hóa các lớp (11)

Thẻ CRC cho lớp điểu khiển thang máy (tt):

Trang 30

Mô hình hóa các lớp (12)

Sơ đồ lớp cho bài toán thang máy:

Trang 31

 Khi có một sự kiện (event) xảy ra, thì trạng thái

này sẽ chuyển sang trạng thái kia Chuyển trạng

thái biểu diễn bằng một mũi tên, nhãn là tên của

sự kiện

 Các sự kiện và hoạt động tương tác được trích ra

từ các scenario

Trang 32

Mô hình hoạt động các lớp (2)

Trang 33

Scenario cuối pha phân tích (1)

Trong scenario này:

 Các chủ thể hành động nằm trong phần mềm

được thay thế bằng tên các lớp đã trích được

 Tương tác giữa các chủ thể chuyển thành hành

động gửi thông điệp yêu cầu thực hiện hành động

nào đó

Trang 34

Scenario cuối pha phân tích (2)

Scenario chuẩn:

1 Người A nhấn vào nút lên ở tầng 3 A muốn đi lên tầng 7

2 Nút nhấn thông báo cho bộ điều khiển là nút đã bị nhấn

3 Bộ điều khiển gửi thông báo yêu cầu nút lên tại tầng 3 bật sáng

4 Bộ điều khiển gửi thông báo yêu cầu thang máy di chuyển lên tầng 3 Trong thang máy đang chứa B muốn lên tầng 9

5 Tại tầng 3, bộ điều khiển gửi yêu cầu đề nghịnút lên tại

tầng 3 tắt đi, đề nghị cửa mở ra Bộ điều khiển bắt đầu đếm thời gian cửa mở

6 A bước vào thang máy và nhấn nút số 7

Trang 35

Scenario cuối pha phân tích (3)

Scenario chuẩn:

8 Bộ điều khiển gửi yêu cầu đề nghị nút số 7 sáng lên

9 Hết thời gian đếm, bộ điều khiển gửi yêu cầu đóng cửa lại, yêu cầu thang máy di chuyển lên tầng 7

10 Lên đến tầng 7, bộ điều khiển gửi thông báo yêu cầu nút

số 7 trong thang máy tắt đi, yêu cầu cửa mở ra và bắt đầu đếm thời gian

11 A bước ra khỏi thang máy

12 Hết thời gian mở cửa, bộ điều khiển gửi yêu cầu đóng cửa và yêu cầu thang máy di chuyển lên tầng 9 với người B

Trang 36

Bài tập (1)

Với modul của cá nhân:

 Viết các scenario cho modul của mình

 Trích các lớp thực thể

 Vẽ sơ đồ lớp thực thể

 Vẽ thẻ CRC cho các lớp điều khiển

 Vẽ sơ đồ hoạt động cho modul tương ứng

 Viết lại scenario ở bước 1 bằng cách thay tên các chủ

thể hành động bằng tên các lớp cụ thể đã trích được

Trang 37

Ví dụ

Phần mềm quản lí

quỹ cho vay mua nhà

Trang 38

Mục đích

Phần mềm:

 Hỗ trợ việc xác định được số tiền còn dư

hàng tuần trong quỹ để cho các cặp vợ

chồng trẻ vay vốn mua nhà

Trang 39

Kết quả sơ đồ UC

Trang 40

Trích các scenario (1)

Scenario cho UC quản lí các khoản vay:

Ngày 01/04/2012, nhân viên A của quỹ muốn cập nhật lại mức thuế của một căn hộ đang được vay lên mức 2,05%

1 Nhân viên A chọn chức năng cập nhật khoản vay

2 Giao diện cập nhật hiện lên, có một ô để nhập mức thuế, một nút submit

3 Nhân viên A nhập mức 2,05% vào ô text và click vào nút submit

4 Thông tin mức thuế 2,05% và ngày cập nhật cuối cùng là 01/04/2012 được lưu vào hệ thống

Trang 41

Trích các scenario (2)

Scenario cho UC ước lượng số tiền trong quỹ hàng

tuần:

Nhân viên A của quỹ muốn có báo cáo số tiền khả dụng

trong quỹ hàng tuần:

1 Nhân viên A chọn chức năng báo cáo số tiền khả dụng

2 Với mỗi khoản đầu tư, hệ thống tính toán khoản thu, cộng dồn tất cả và chia cho 52

3 Hệ thống truy vấn khoản chi phí hoạt động hằng năm của quỹ, chia cho 52

4 Với mỗi khoản vay:

4.1 Hệ thống tính khoản tiền người vay phải trả hàng

tuần (629,30$)

Trang 42

4.3 số tiền người vay phải trả là 600$,

4.4 số dư chuyển sang tuần sau là 629,30-600 = 29,30$

5 hệ thống tính tổng số tiền thu được trong bước 4.3 và

tổng số dư nợ trong bước 4.4

6 số tiền khả dụng hàng tuần của quỹ là khoản ở bước 2 – bước 3 + bước 4.3 – bước 4.4

6 Hệ thống hiển thị kết quả lên màn hình và in ra báo cáo

Trang 43

Trích danh từ (1)

Mô tả hệ thống trong một đoạn văn:

 Báo cáo hàng tuần sẽ được in ra để cho biết số tiền

khả dụng trong quỹ là bao nhiêu để cho vay thế chấp Bên cạnh đó, danh sách các khoản đầu tư và các

khoản vay cũng được in ra theo yêu cầu

Các danh từ:

 Thông báo, tiền, khoản vay, khoản đầu tư, danh sách

Trang 45

Sơ đồ lớp (1)

Sơ đồ 2 lớp ban đầu:

Trang 46

Sơ đồ lớp (3)

Đánh giá:

 Các thao tác thực hiện trên hai lớp này là khá giống

nhau: thêm, sửa, xóa một đối tượng

→ nhóm lại thành một lớp trừu tượng chung cho cả hai lớp:

 Lớp tài sản

Trang 47

Sơ đồ lớp (4)

Sơ đồ lớp thực thể trở thành:

Trang 48

Sơ đồ lớp (5)

Xem xét lại sơ đồ lớp thực thể:

 Trong scenario của ước lượng khoản tiền khả dụng

của quỹ, có mục ước lượng chi phí hoạt động của quỹ, nhưng chưa có lớp nào biểu diễn thông tin này

→ Cần một lớp mới chứa các thông tin chung:

 Lớp ứng dụng MSG

Trang 50

Sơ đồ hoạt động (1)

Trang 51

Trích các lớp biên

Thực hiện:

 Mỗi một form báo cáo sẽ tạo thành một lớp biên

 Mỗi một màn hình giao diện (vào/ra dữ liệu) sẽ tạo

thành một lớp biên

Trang 53

Thực tế hóa các UC (1)

Thực hiện với mỗi UC:

 Viết lại scenario với các chủ thể là các lớp đã trích ra

 Vẽ sơ đồ tuần tự (hoặc sơ đồ cộng tác) tương ứng với

scenario đó

Trang 54

Thực tế hóa các UC (2)

Sơ đồ tuần tự:

 Mỗi lớp có một đường sống riêng, đi từ trên xuống

dưới

 Mỗi bước trong scenario tương ứng với một mũi tên

trong sơ đồ Nhãn của mũi tên là hành động tóm tắt trong bước tương ứng, chiều của mũi tên là chiều từ chủ thể sang đối tượng tương tác

 Thứ tự các mũi tên từ trên xuống đúng thứ tự trong

scenario

Trang 56

Thực tế hóa các UC (4)

Sơ đồ cộng tác:

 Mỗi bước trong scenario tương ứng với một mũi tên

trong sơ đồ Nhãn của mũi tên là hành động tóm tắt trong bước tương ứng, chiều của mũi tên là chiều từ chủ thể sang đối tượng tương tác

 Thứ tự các mũi tên (theo nhãn) đúng thứ tự trong

scenario

Trang 57

Thực tế hóa các UC (4)

Sơ đồ cộng tác:

Trang 58

Thực tế hóa các UC (5)

Sơ đồ tuần tự UC quản lí một tài sản:

Trang 59

Thực tế hóa các UC (6)

Sơ đồ cộng tác UC quản lí một tài sản:

Trang 60

Bài tập (2)

Với mỗi modul của cá nhân:

 Với mỗi UC, trích các lớp biên, các lớp điều khiển

 Thực tế hóa mỗi scenario của mỗi UC thành sơ đồ

tuần tự (hoặc cộng tác)

Trang 61

Bài tập nộp sau pha phân tích

Với mỗi modul của cá nhân:

 Với mỗi UC, trích các scenario chuẩn và các ngoại lệ

tương ứng ( không cần xử lí các ngoại lệ sai kiểu dữ liệu đầu vào)

 Trích các lớp thực thể, trích các lớp biên, các lớp điều

khiển

 Xây dựng thẻ CRC cho các lớp điều khiển

 Xây dựng sơ đồ hoạt động (statechart) cho modul

 Viết lại các scenario với các lớp đã trích được

 Thực tế hóa mỗi scenario của mỗi UC thành sơ đồ

tuần tự (hoặc cộng tác)

Trang 62

Questions?

Ngày đăng: 07/01/2014, 12:14

HÌNH ẢNH LIÊN QUAN

Sơ đồ lớp cho bài toán thang máy: - Bài 9,10: Công nghệ phần mềm- Pha phân tích_TS.Nguyễn Mạnh Hùng
Sơ đồ l ớp cho bài toán thang máy: (Trang 30)
Sơ đồ lớp (1) - Bài 9,10: Công nghệ phần mềm- Pha phân tích_TS.Nguyễn Mạnh Hùng
Sơ đồ l ớp (1) (Trang 45)
Sơ đồ lớp (4) - Bài 9,10: Công nghệ phần mềm- Pha phân tích_TS.Nguyễn Mạnh Hùng
Sơ đồ l ớp (4) (Trang 47)
Sơ đồ lớp (6) - Bài 9,10: Công nghệ phần mềm- Pha phân tích_TS.Nguyễn Mạnh Hùng
Sơ đồ l ớp (6) (Trang 49)
Sơ đồ hoạt động (1) - Bài 9,10: Công nghệ phần mềm- Pha phân tích_TS.Nguyễn Mạnh Hùng
Sơ đồ ho ạt động (1) (Trang 50)
Sơ đồ tuần tự: - Bài 9,10: Công nghệ phần mềm- Pha phân tích_TS.Nguyễn Mạnh Hùng
Sơ đồ tu ần tự: (Trang 54)
Sơ đồ tuần tự cho - Bài 9,10: Công nghệ phần mềm- Pha phân tích_TS.Nguyễn Mạnh Hùng
Sơ đồ tu ần tự cho (Trang 55)
Sơ đồ cộng tác: - Bài 9,10: Công nghệ phần mềm- Pha phân tích_TS.Nguyễn Mạnh Hùng
Sơ đồ c ộng tác: (Trang 56)
Sơ đồ cộng tác: - Bài 9,10: Công nghệ phần mềm- Pha phân tích_TS.Nguyễn Mạnh Hùng
Sơ đồ c ộng tác: (Trang 57)
Sơ đồ tuần tự UC quản lí một tài sản: - Bài 9,10: Công nghệ phần mềm- Pha phân tích_TS.Nguyễn Mạnh Hùng
Sơ đồ tu ần tự UC quản lí một tài sản: (Trang 58)
Sơ đồ cộng tác UC quản lí một tài sản: - Bài 9,10: Công nghệ phần mềm- Pha phân tích_TS.Nguyễn Mạnh Hùng
Sơ đồ c ộng tác UC quản lí một tài sản: (Trang 59)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm