Thông tin tài liệu
Giáo trình Phân tích thiết kế hệ thống hướng đối tượng CH M CL C NG I Đ I C NG V PHÂN TệCH THI T K H TH NG 1.2 Nhi m vụ, vai trò c a h th ng thông tin quản lý 1.3 Các thƠnh phần h p thƠnh c a h th ng thông tin 2 Các h th ng tự đ ng hóa Phơn tích thi t k lƠ gì, t i phải phơn tích thi t k h th ng ? 4.1 Phát triển h th ng thông tin – m t bƠi toán ph c t p 4.2 Chu trình phát triển phần m m (Software Development Life Cycle) 4.3 Các giai đo n c a quy trình phát triển phần m m Các cách ti p cận phơn tích vƠ thi t k h th ng thông tin 12 5.1 Ph ng pháp h ng cấu trúc 12 5.2 Ph ng pháp h ng đ i t ng 12 5.3 u điểm c a mô hình h ng đ i t ng 12 CH NG II T NG QUAN V PHÂN TệCH THI T K H NG Đ I T NG 13 Nhắc l i khái ni m c v h ng đ i t ng 13 1.1 Đ i t ng (Object) 13 1.2 L p (Class) vƠ thể hi n (instance) 13 1.3 Sự trao đ i vƠ thông p (message) 13 1.4 Sự phơn cấp (hierarchy) 14 1.5 Tính bao bọc (encapsulation) 17 1.6 Tính đa hình (polymorphism) 17 Gi i thi u ngôn ngữ mô hình hóa h p UML (Unified Modeling Language) 18 2.1 UML ? 19 2.2 Lịch sử phát triển vƠ t ng lai c a UML 20 2.3 T i dùng UML ? 22 2.4 M t s đặc điểm c a ph ng pháp phơn tích thi t k UML 24 2.5 Các thƠnh phần c a UML 25 2.6 M r ng UML 30 Công cụ hỗ tr Visual Paradigm 32 3.1 CƠi đặt phần m m 32 3.2 MƠn hình kh i đ ng Visual Paradigm 39 CH NG PHÂN TệCH H TH NG 42 Gi i thi u Case study 42 Xác định yêu cầu c a h th ng 43 Mô hình hóa Use case 45 3.1 Gi i thi u 45 3.2 Mục đích vƠ ký hi u Use case 47 3.3 Các kiểu k t h p (association) vƠ quan h (relationship) 50 3.4 S đ Use case 53 Mô hình hóa nghi p vụ (Business modeling) 65 5.2 S đ l p (Class diagram) 93 5.4 Xác định m i quan h l p 111 CH NG THI T K H TH NG 121 Thi t k l p 121 1.1 Các tiên đ vƠ h luận thi t k h ng đ i t ng 121 1.2 Thi t k l p 125 Thi t k Use case 134 2.2 Xác định l p tầng truy cập li u (data layer) 137 2.3 Xác định l p tầng giao di n ng i dùng (user interface layer) 153 Biên soạn: Nguyễn Thị Điệu Giáo trình Phân tích thiết kế hệ thống hướng đối tượng CH NG I Đ I C NG V PHÂN TệCH THI T K H TH NG Các h th ng thông tin NgƠy nay, h th ng thông tin đư đ c ng dụng lĩnh vựa khác c a đ i s ng xư h i Tuỳ theo quan điểm mƠ phơn lo i h th ng thông tin theo tiêu chí khác Xét v mặt ng dụng, h th ng thông tin đ c phơn chia thƠnh m t s d ng nh sau: H th ng thông tin quản lý: Bao g m h th ng thông tin hỗ tr ho t đ ng nghi p vụ vƠ quản lý c a doanh nghi p, 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 n Các h th ng Website: lƠ h th ng có nhi m vụ cung cấp thông tin cho ng i dùng môi tr ng m ng Internet Các h th ng Website có đặc điểm lƠ thông tin cung cấp cho ng i dùng có tính đa d ng (có thể lƠ tin t c d ng file đa ph ng ti n) vƠ đ c cập nhật th ng xuyên H th ng th ng m i n tử: LƠ h th ng website đặc bi t phục vụ vi c trao đ i mua bán hàng hoá, dich vụ môi tr ng Internet H th ng th ng m i n tử bao g m n n tảng hỗ tr giao th c mua bán, hình th c toán, chuyển giao hàng hoá H th ng u khiển: lƠ h th ng phần m m gắn v i thi t bị phần c ng h th ng khác nhằm mục đích u khiển vƠ giám sát ho t đ ng c a thi t bị hay h th ng Mỗi lo i h th ng thông tin có đặc tr ng riêng vƠ đặt yêu cầu riêng cho vi c phát triển h th ng Ví dụ, h th ng u khiển đòi h i yêu cầu v môi tr ng phát triển, h u hƠnh vƠ ngôn ngữ lập trình riêng; h website thực thi ch c m i tr ng m ng phơn tán đòi h i cách phát triển riêng Do vậy, m t ph ng pháp luận chung cho tất d ng h th ng thông tin Ph m vi c a tƠi li u nƠy nhằm gi i thi u m t s khái ni m c c a UML cho phát phiển h th ng vƠ để d dƠng minh ho s xem xét vấn đ phát triển d ng h th ng thông tin ph bi n lƠ h th ng thông tin quản lý Phơn tích thi t k gì, t i phải phơn tích thi t k h th ng ? H th ng thông tin tin học lƠ m t ng dụng đầy đ vƠ toƠn di n thƠnh tựu c a công ngh thông tin vƠo t ch c, quản lý NgƠy nay, không m t t ch c hay đ n vị nƠo lƠ nhu cầu xơy dựng h th ng thông tin Không nhu cầu xơy dựng h th ng thông tin tăng lên, mƠ quy mô vƠ m c đ ph c t p c a chúng không ngừng tăng lên Do đặc thù c a h th ng thông tin lƠ sản phẩm “không nhìn thấy”, nên phơn tích thi t k tr thƠnh m t yêu cầu bắt bu c để có đ c m t h th ng t t Trong thực t , để giải quy t m t vấn đ hay m t bƠi toán cần xác định rõ yêu cầu c a bƠi toán, xác định ph ng pháp b c để giải bƠi toán cho hi u nhất, nhanh vƠ k t xác Biên soạn: Nguyễn Thị Điệu Giáo trình Phân tích thiết kế hệ thống hướng đối tượng Phơn tích thi t k h th ng thông tin lƠ trình tìm hiểu vƠ mô ph ng l i hi n t ng, quy trình nghi p vụ th gi i thực từ xơy dựng h th ng để giải quy t bƠi toán đặt máy tính (Hình 1.1) Chất l ng phân tích thi t k lƠ nhơn t quy t định chất l phân tích không t t s dẫn đ n phần m m chất l Không quản lý đ ng phần m m, không phân tích ng thấp: c 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ế giới thực Thiết kế Lập trình Phần mềm Kiểm thử Hình 1.1 Mô trình phát triển HTTT Theo u tra c a IBM, sai sót phơn tích vƠ thi t k lƠm cho chi phí bảo trì trung bình c a h th ng thông tin chi m t i gần 60% t ng chi phí M t lỗi b sót giai đo n phơn tích đ n lập trình vƠ cƠi đặt m i phát hi n chi phí sửa chữa tăng 40 lần, vƠ n u để đ n giai đo n bảo trì m i phát hi n chi phí sửa chữa tăng 90 lần Thêm vƠo đó, n u thi u tài li u phơn tích thi t k dẫn đ n h th ng bảo trì Thi t k t t s đem l i m t sản phẩm phần m m chất l D dƠng thay đ i theo yêu cầu c a ng ng t t: i sử dụng D dƠng kiểm thử D bảo trì Có tính ti n hóa cao Có khả tái sử dụng Do tầm quan trọng vƠ nhu cầu thực t , phơn tích h th ng thông tin đư tr thƠnh m t ngh nghi p có tính chuyên môn cao M t kỹ s công ngh thông tin không bi t đọc v phơn tích vƠ thi t k h th ng thông tin M t kỹ s CNTT sau m t năm tr thƠnh lập trình viên gi i, họ cần phải nhi u năm m i tr thƠnh m t nhƠ phơn tích vƠ thi t k viên vƠ sau nhi u năm m i tr thƠnh m t nhƠ phơn tích thi t k viên gi i Biên soạn: Nguyễn Thị Điệu Giáo trình Phân tích thiết kế hệ thống hướng đối tượng Các cách ti p c n phơn tích thi t k h th ng Trong năm 70 - 80, ph ng pháp h ng cấu trúc đ c coi lƠ ph ng pháp chuẩn để phát triển phần m m Tuy nhiên, ph ng pháp nƠy t không phù h p phát triển h phần m m l n vƠ đặc bi t lƠ hi u sử dụng l i - m t yêu cầu quan trọng công nghi p phần m m Thập niên 90 ch ng ki n n r nghiên c u vƠ xơy dựng ph ng pháp luận phát triển phần m m h ng đ i t ng vƠ nhanh chóng tr thƠnh ph bi n công nghi p phần m m ngƠy Để hiểu rõ phần nƠo khác bi t nƠy phần dành so sánh m t s khác bi t hai ph ng pháp nƠy 3.1 Giới thiệu phương pháp phát triển hướng cấu trúc Đặc tr ng c a ph ng pháp h ng cấu trúc lƠ phơn chia ch ng trình thƠnh nhi u ch ng trình con, ch ng trình nhằm đ n thực hi n m t công vi c xác định Trong ph ng pháp h ng cấu trúc, phần m m đ c thi t k dựa m t hai h ng: h ng li u vƠ h ng hƠnh đ ng - Cách ti p cận h ng li u xơy dựng phần m m dựa vi c phơn rư phần m m theo ch c cần đáp ng vƠ li u cho ch c Cách ti p cận h ng li u s giúp cho ng - i phát triển h th ng d dƠng xơy dựng ngơn hƠng li u Cách ti p cận h ng hƠnh đ ng l i tập trung phơn tích h phần m m dựa ho t đ ng thực thi ch c c a phần m m Cách th c thực hi n c a ph ng pháp h ng cấu trúc lƠ ph ng pháp thi t k từ xu ng (top-down) Ph ng pháp nƠy ti n hƠnh phơn rư bƠi toán thƠnh bƠi toán nh h n, r i ti p tục phơn rư bƠi toán cho đ n nhận đ c bƠi toán cƠi đặt đ c sử dụng hƠm c a ngôn ngữ lập trình h ng cấu trúc Ph ng pháp h ng cấu trúc có u điểm lƠ t phơn tích thi t k rõ rƠng, ch sáng s a d hiểu Tuy nhiên, ph ng pháp nƠy có m t s nh c điểm sau: - Không hỗ tr vi c sử dụng l i Các ch ng trình h ng trình ng cấu trúc phụ thu c chặt ch vƠo cấu trúc li u vƠ bƠi toán cụ thể, dùng l i m t modul nƠo phần m m nƠy cho phần m m m i v i yêu cầu v li u khác - Không phù h p cho phát triển phần m m l n N u h th ng thông tin l n, vi c phơn thƠnh bƠi toán nh phơn bƠi toán thƠnh modul vƠ quản lý m i quan h modul s lƠ lƠ d dƠng vƠ d gơy lỗi phơn tích vƠ thi t k h th ng, nh khó kiểm thử vƠ bảo trì Mô hình li u ph ng pháp nƠy trả l i cho cơu h i H th ng sử dụng li u gì? Mô tả li u s có h th ng vƠ m i quan h rƠng bu c chúng sử dụng s đ quan h thực thể, bảng thu c tính, rƠng bu c li u; mô hình thực thể (Entity Relationship Diagram - ERD) phản ánh h th ng đầy đ h n, b sung cho BFD (Bussiness Function Diagrammô hình phơn rư ch c năng); kho li u (Data store): Ký hi u đ ng kẻ song song hình chữ nhật tròn góc, biểu di n thông tin cần l u trữ (s lƠ file CSDL) Kho li u Biên soạn: Nguyễn Thị Điệu Giáo trình Phân tích thiết kế hệ thống hướng đối tượng Tác nhơn ngoƠi: Ng i/nhóm ng i/t ch c bên ngoƠi h th ng ti p xúc v i h th ng Đó lƠ ngu n cung cấp thông tin, lƠ ngu n s ng c a h th ng Tác nhơn trong: Ch c năng/quá trình h th ng Các mô hình có quan h mật thi t, xơy dựng theo th tự: BFD, ERD, DFD(Data Flow Diagram) định h ng lập trình, thể hi n rõ quan h N u cần lƠm rõ yêu cầu ng i dùng, DFD đ c xơy dựng tr c thể hi n quy trình nghi p vụ, sau xơy dựng BFD ERD Ví d : S đ phơn rư ch c cho h th ng Quản lý doanh nghi p Hình 1.2 Sơ đồ phân rã chức Hình 1.3 Mối quan hệ chức hệ thống 3.2 Giới thiệu phương pháp phát triển hệ thống hướng đối tượng Khác v i ph ng pháp h ng cấu trúc tập trung vƠo li u vƠo hƠnh đ ng, ng pháp h ng đ i t ng tập trung vƠo hai khía c nh c a h th ng lƠ li u vƠ hƠnh đ ng ph Cách ti p cận h ng đ i t ng lƠ m t l i t theo cách ánh x thƠnh phần bƠi toán vƠo đ i t ng ngoƠi đ i thực V i cách ti p cận nƠy, m t h th ng đ c chia t ng ng thƠnh thƠnh phần nh gọi lƠ đ i t ng, đ i t ng bao g m đầy đ li u vƠ hƠnh đ ng liên quan đ n đ i t ng Các đ i t ng m t h th ng t ng đ i đ c lập v i vƠ phần m m s đ c xơy dựng cách k t h p đ i t ng l i v i thông qua m i quan h vƠ t ng tác chúng Các nguyên tắc c c a ph ng pháp h ng đ i t ng bao g m: - Trừu t ng hóa (abstraction): ph ng pháp h ng đ i t ng, thực thể phần m m đ c mô hình hóa d i d ng đ i t ng Các đ i t ng nƠy đ c trừu t ng hóa m c cao h n dựa thu c tính vƠ ph ng th c mô tả đ i t ng để t o thƠnh l p Các l p Biên soạn: Nguyễn Thị Điệu Giáo trình Phân tích thiết kế hệ thống hướng đối tượng s đ c trừu t ng hóa m c cao h n để t o thƠnh m t s đ l p đ c k thừa lẫn Trong ph ng pháp h ng đ i t ng t n t i l p đ i t ng t ng ng, gọi lƠ l p trừu t ng Nh vậy, nguyên tắc c để xơy dựng khái ni m h ng đ i t ng lƠ trừu t ng hóa theo m c đ khác - Tính đóng gói (encapsulation) vƠ ẩn dấu thông tin: đ i t ng có ph ng th c thu c tính riêng (kiểu private) mƠ đ i t ng khác sử dụng đ c Dựa nguyên tắc ẩn giấu thông tin nƠy, cƠi đặt c a đ i t ng s hoƠn toƠn đ c lập v i đ i t ng khác, l p đ c lập v i vƠ cao h n lƠ cƠi đặt c a h th ng hoƠn toƠn đ c lập v i ng i sử dụng nh h th ng khác sử dụng k t c a - Tính modul hóa (modularity): bƠi toán s đ đ n giản vƠ quản lý đ c - Tính phơn cấp (hierarchy): cấu trúc chung c a m t h th ng h cấp theo m c đ trừu t ng từ cao đ n thấp u điểm n i bật c a ph ng pháp h ph ng pháp h ng cấu trúc: ng đ i t c phơn chia thƠnh vấn đ nh h n, ng lƠ đư giải quy t đ ng đ i t ng lƠ d ng phơn c vấn đ nảy sinh v i - Hỗ tr sử dụng l i mư ngu n : Ch ng trình lập trình theo ph ng pháp h ng đ i t ng th ng đ c chia thƠnh gói lƠ nhóm c a l p đ i t ng khác Các gói ho t đ ng t ng đ i đ c lập vƠ hoƠn toƠn sử dụng l i h th ng thông tin t ng tự - Phù h p v i h th ng l n: Ph ng pháp h ng đ i t ng không chia bƠi toán thành bƠi toán nh mƠ tập trung vƠo vi c xác định đ i t ng, li u vƠ hƠnh đ ng gắn v i đ i t ng vƠ m i quan h đ i t ng Các đ i t ng ho t đ ng đ c lập vƠ thực hi n hƠnh đ ng nhận đ c yêu cầu từ đ i t ng khác Vì vậy, ph ng pháp nƠy hỗ tr phơn tích, thi t k vƠ quản lý m t h th ng l n, mô tả ho t đ ng nghi p vụ ph c t p b i trình phơn tích thi t k không phụ thu c vƠo s bi n li u hay s l ng thao tác cần thực hi n mƠ quan tơm đ n đ i t ng t n t i h th ng Ví d : Cũng v i bƠi toán Quản lý doanh nghi p V i ph ng pháp ti p cận nƠy vi c phơn tích bƠi toán xoay quanh vi c xác định l p, đ i t ng c a bƠi toán: Nhơn Vật t Hàng hóa Đ n hƠng … Quy trình/Chu trình phát triển h th ng thông tin Vi c phát triển h th ng thông tin không đ n giản lƠ lập trình mƠ đ m t ti n trình hoƠn chỉnh c xem nh Tiến trình phần mềm phương cách sản xuất phần mềm với thành phần chủ yếu bao gồm: mô hình vòng đời phát triển phần mềm, công cụ hỗ trợ cho phát triển phần mềm người nhóm phát triển phần mềm Biên soạn: Nguyễn Thị Điệu Giáo trình Phân tích thiết kế hệ thống hướng đối tượng Nh vậy, ti n trình phát triển phần m m nói chung lƠ k t h p hai khía c nh kỹ thuật (vòng đ i phát triển, ph ng pháp phát triển, công cụ vƠ ngôn ngữ sử dụng, …) vƠ khía c nh quản lý (quản lý dự án phần m m) 4.1 Phát triển hệ thống thông tin – toán phức tạp Kinh nghi m c a nhi u nhƠ thi t k vƠ phát triển cho thấy phát triển phần m m lƠ m t bƠi toán ph c t p Xin nêu m t s lý th ng đ c kể đ n: Những ng i phát triển khó hiểu cho ng Yêu cầu c a ng Yêu cầu th ng đ i dùng th i dùng cần ng thay đ i theo th i gian phát triển c miêu tả văn bản, dƠi dòng, nhi u mơu thuẫn Đ i quơn phát triển phần m m v n lƠ ng i “ngoƠi cu c”, khó nhận th c thấu đáo m i quan h ti m ẩn vƠ ph c t p cần đ c thể hi n xác ng dụng l n Khả nắm bắt li u ph c t p c a ng i (t i m t th i điểm) lƠ có h n Khó định l ng xác hi u xuất c a thƠnh phẩm vƠ th a mưn xác mong ch từ phía ng i dùng Chọn phần c ng vƠ phần m m thích h p cho giải pháp lƠ m t thách th c l n đ i v i Designer Phần m m ngoƠi cần có khả thích ứng mở rộng Phần m m đ c thi t k t t lƠ phần m m đ ng vững tr c bi n đ i môi tr ng, dừ từ phía c ng đ ng ng i dùng hay từ phía công ngh Ví dụ phần m m đ c phát triển cho m t Ngơn hƠng cần có khả tái sử dụng cho Ngơn hƠng khác v i sửa đ i hoƠn toƠn không cần sửa đ i Phần m m th a mưn yêu cầu đ c coi lƠ phần m m có khả thích ng M t phần m m có khả m r ng lƠ phần m m đ theo yêu cầu c a ng i dùng mƠ không cần sửa chữa nhi u Chính vậy, m t s khác m khuy t th c thi t k cho d dƠng phát triển Hiểu ng ng gặp phát triển phần m m lƠ: i dùng cần Không thể thích ng cho phù h p v i thay đ i v yêu cầu đ i v i h th ng Các module không kh p Phần m m khó bảo trì vƠ nơng cấp, m r ng Phát hi n tr lỗ h ng c a dự án Chất l ng phần m m Hi u phần m m thấp Biên soạn: Nguyễn Thị Điệu Giáo trình Phân tích thiết kế hệ thống hướng đối tượng Các thƠnh viên nhóm không bi t đ phải thay đ i c đư thay đ i cƠi gì, nƠo, đơu, t i 4.2 Chu trình phát triển phần mềm (Software Development Life Cycle) Vì phát triển phần m m cần phải có quy trình ? Phát triển phần m m lƠ m t bƠi toán khó, nên có l tr c h t ta cần điểm qua m t s công vi c c a trình nƠy Th ng ng i ta hay tập h p chúng theo ti n trình th i gian m t cách t ng đ i, xoay quanh chu trình c a m t phần m m, dẫn t i k t khái ni m Quy trình phát triển phần m m (Software development life cycle - SDLC) nh sau: Chu trình phát triển phần m m lƠ m t chuỗi ho t đ ng c a nhƠ phơn tích (Analyst), nhƠ thi t k (Designer), ng i phát triển (Developer) vƠ ng i dùng (User) để phát triển vƠ thực hi n h th ng thông tin Những ho t đ ng nƠy đ c thực hi n nhi u giai đo n khác nhau, đó: Nhà phân tích (Analyst): lƠ ng i nghiên c u yêu cầu c a khách hƠng/ng i dùng để định nghĩa m t ph m vi bƠi toán, nhận d ng nhu cầu c a t ch c, xác định xem nhân lực, ph ng pháp vƠ công ngh máy tính lƠm để cải thi n m t cách t t công tác c a t ch c nƠy Nhà thiết kế (Designer): thi t k h th ng theo h ng cấu trúc c a database, screens, forms reports – quy t định yêu cầu v phần c ng vƠ phần m m cho h th ng cần đ c phát triển Chuyên gia lĩnh vực (Domain experts): lƠ ng i hiểu thực chất vấn đ tất ph c t p c a h th ng cần tin học hóa Họ không thi t phải lƠ nhƠ lập trình, nh ng họ giúp nhƠ lập trình hiểu yêu cầu đặt đ i v i h th ng cần phát triển Quá trình phát triển phần m m có nhi u thuận l i n u đ i ngũ lƠm phần m m có đ c tr giúp c a họ Lập trình viên (Programmer): lƠ ng i dựa phơn tích vƠ thi t k để vi t ch ng trình (coding) cho h th ng ngôn ngữ lập trình đư đ c th ng Người dùng (User): lƠ đ i t ng phục vụ c a h th ng cần đ c phát triển Để cho rõ h n, xin lấy ví dụ v m t vấn đ đ n giản sau: Ng i bình th nhìn m t chi c xe ô tô th ng s có m t b c tranh từ bên ngoƠi nh sau: ng Vấn đ Hình 1.4 Nhìn vấn đề ô tô người bình thường Chuyên gia lĩnh vực s giúp nhƠ phơn tích "trình bƠy l i" vấn đ nh sau: Biên soạn: Nguyễn Thị Điệu Giáo trình Phân tích thiết kế hệ thống hướng đối tượng Hình 1.5 Nhìn vấn đề ô tô chuyên gia phân tích Chính tr giúp c a chuyên gia lĩnh vực đóng vai trò quan trọng nên giai đo n đầu c a trình phát triển phần m m, k t phơn tích nên đ c thể hi n cho d hiểu đ i v i chuyên gia lĩnh vực Đơy lƠ môt nhi u lý n cho ph ng pháp h ng đ i t ng đ c nhi u ng i h ng ng 4.3 Các giai đoạn quy trình phát triển phần mềm Quy trình c a m t phần m m đ c chia thƠnh giai đo n nh sau: Nghiên c u s b (Preliminary Investigation hay gọi lƠ Feasibility Study) Phân tích yêu cầu (Analysis) Phân tích thi t k h th ng (Analysis and Design of the System) Xơy dựng phần m m (Software Construction) Thử nghi m h th ng (System Testing) Thực hi n triển khai (System Implementation) Bảo trì vƠ nơng cấp (Maintain and upgrade) a) Nghiên cứu sơ Tr c bắt tay vƠo m t dự án, b n phải có m t ý t ng cho Ý t ng nƠy song song v i vi c nắm bắt yêu cầu vƠ xuất hi n giai đo n kh i đầu Nó hoƠn tất m t phát biểu: "H th ng mƠ mong mu n s lƠm đ c vi c nh sau " Trong su t giai đo n nƠy, t o nên m t b c tranh v ý t ng đó, nhi u giả thuy t s đ c công nhận hay lo i b Các ho t đ ng th i gian nƠy th ng bao g m: thu thập ý tưởng, nhận biết rủi ro, nhận biết giao diện bên ngoài, nhận biết các chức mƠ h th ng cần cung cấp, vƠ tạo vài nguyên mẫu dùng để “minh ch ng khái ni m c a h th ng” Ý t ng đ n từ nhi u ngu n khác nhau: khách hƠng, chuyên gia lĩnh vực, nhƠ phát triển khác, chuyên gia v kỹ ngh , nghiên c u tính khả thi nh vi c xem xét h th ng khác t n t i M t khía c nh cần nhắc t i lƠ code vi t th i kỳ nƠy th ng s bị "b đi”, b i chúng đ c vi t nhằm mục đích thẩm tra hay tr giúp giả thuy t khác nhau, ch ch a phải th code đ c vi t theo k t phơn tích vƠ thi t k thấu đáo Trong giai đọan nghiên c u s b , nhóm phát triển h th ng cần xem xét yêu cầu c a doanh nghi p (cần dùng h th ng), ngu n tƠi nguyên sử dụng, công ngh nh c ng đ ng ng i dùng ý t ng c a họ đ i v i h th ng m i Có thể thực hi n thảo luận, Biên soạn: Nguyễn Thị Điệu Giáo trình Phân tích thiết kế hệ thống hướng đối tượng nghiên c u, xem xét khía c nh th ng m i, phơn tích khả l i-lỗ, phơn tích tr ng h p sử dụng vƠ t o nguyên mẫu để xơy dựng nên m t khái ni m cho h th ng đích v i mục đích, quy n u tiên vƠ ph m vi c a Th ng giai đo n nƠy ng i ta ti n hƠnh t o m t phiên thô c a lịch trình vƠ k ho ch sử dụng tƠi nguyên M t giai đo n nghiên c u s b thích đáng s lập nên tập h p yêu cầu (dù m c đ khái quát cao) đ i v i m t h th ng khả thi vƠ đ c mong mu n, kể v ph ng di n kỹ thuật lẫn xư h i M t giai đo n nghiên c u s b không đ c thực hi n thoả đáng s dẫn t i h th ng không đ c mong mu n, đắt ti n, bất khả thi vƠ đ c định nghĩa lầm l c – h th ng thừ ng chẳng đ c hoƠn tất hay sử dụng K t c a giai đo n nghiên c u s b lƠ Báo cáo kết nghiên cứu tính khả thi Khi h th ng t ng lai đ c chấp nhận dựa báo cáo nƠy lƠ lúc giai đo n Phơn tích bắt đầu b) Phân tích yêu cầu Sau đư xem xét v tính khả thi c a h th ng nh t o lập b c tranh s b c a dự án, b c sang giai đo n th ng đ c coi lƠ quan trọng công vi c lập trình: hiểu h th ng cần xơy dựng Ng i thực hi n công vi c nƠy lƠ nhà phân tích Quá trình phơn tích nhìn chung lƠ h c a vi c trả l i cơu h i “H th ng cần phải lƠm ?” Quá trình phơn tích bao g m vi c nghiên c u chi ti t h th ng doanh nghi p hi n th i, tìm cho nguyên lý ho t đ ng c a vƠ vị trí nơng cao, cải thi n Bên c nh lƠ vi c nghiên c u xem xét ch c mƠ h th ng cần cung cấp vƠ m i quan h c a chúng, bên nh v i phía ngoƠi h th ng Trong toƠn b giai đo n nƠy, nhƠ phơn tích vƠ ng i dùng cần c ng tác mật thi t v i để xác định yêu cầu đ i v i h th ng, t c lƠ tính m i cần phải đ c đ a vƠo h th ng Những mục tiêu cụ thể c a giai đo n phơn tích lƠ: Xác định h th ng cần phải lƠm Nghiên c u thấu đáo tất ch c cần cung cấp vƠ y u t liên quan Xơy dựng m t mô hình nêu bật chất đ từ m t h s ng) ng nhìn có thực (trong đ i Trao định nghĩa vấn đ cho chuyên gia lĩnh vực để nhận đánh giá, góp ý K t c a giai đo n phơn tích lƠ Đặc tả yêu cầu (Requirements Specifications) c) Phân tích thiết kế hệ thống Sau có đ c yêu cầu từ phía khách hƠng, xác định đ cần xơy dựng, bắt đầu phơn tích h th ng c ch c c a h th ng giai đo n nƠy, s mô hình hóa h th ng d i d ng biểu đ Mục đích c a giai đo n nƠy lƠ giúp ng i phát triển có nhìn sơu h n v toƠn cảnh h th ng, v ho t đ ng s di n h th ng Từ xơy dựng li u c a h th ng Biên soạn: Nguyễn Thị Điệu 10 Giáo trình Phân tích thiết kế hệ thống hướng đối tượng dụng Do đó, v i đ i t ng ng i dùng khác mƠ giao di n đ c thi t k s khác v mục tiêu, trách nhi m, cách vận hƠnh vƠ hình th c trình bƠy Vi c xác định l p tầng giao di n g m hai b - c sau: V i l p (tầng nghi p vụ), n u l p có t ng tác v i m t tác nhơn ng i m t use case, th c hi n nh sau: o Xác định đ i t ng giao di n cho l p đó, trách nhi m nh yêu cầu c a đ i t ng nƠy Vi c nƠy đ h p tác c a use case c thực hi n cách phơn tích l i s đ o Xác định liên k t đ i t ng giao di n: l p giao di n gi ng nh l p khác, đ u có m i quan h v i l p tầng nghi p vụ tham gia m t use case v i Các m i liên k t nƠy đ c xác định t ng tự nh c a l p tầng nghi p vụ Sự liên k t nƠy th ng theo s đ d i đơy - Lặp l i b c vƠ tinh ch u điểm c a c a vi c sử dụng use case để xác định đ i t ng tầng giao di n lƠ tập trung vƠo ng i dùng vƠ đ a ng i dùng vƠo nh m t phần c a k ho ch thi t k nhằm tìm m t giao di n t t cho ng i dùng Khi đ i t ng nƠy đư đ c xác định, phải xác định thƠnh phần c đ i t ng đ c dùng công vi c nh lƠ hƠnh vi vƠ đặc điểm t o khác bi t c a lo i đ i t đ i t ng vƠ đ i t ng vƠ ng i dùng ng, bao g m m i quan h Biên soạn: Nguyễn Thị Điệu 155 Giáo trình Phân tích thiết kế hệ thống hướng đối tượng Tuy nhiên, thi t k giao di n đư xác định môi tr ng phát triển nên tìm hiểu khung mẫu (framework) nh th vi n mƠ môi tr ng hỗ tr để phát huy vi c tái sử dụng thi t k giao di n vƠ tận dụng t i đa hỗ tr từ môi tr M t d ng khung mẫu MVC (Model – View - Controller) đ c hỗ tr môi tr ng ng Java áp dụng cho thi t k giao di n ng dụng v i Java Xơy dựng m u (prototype) cho giao di n Vi c xơy dựng mẫu giao di n th ng đ c thi t k giai đo n xác định yêu cầu vƠ phơn tích h th ng Công vi c nƠy đ c thực hi n sử dụng m t công cụ gọi lƠ CASE Tool công cụ phát triển Bao g m ba b c sau: - T o đ i t ng giao di n (nh lƠ button, vùng nhập li u,…) - Liên k t vƠ gán hƠnh vi hƠnh đ ng thích h p t i đ i t ki n c a - Thử nghi m vƠ lặp l i b ng giao di n nƠy cm t Thi t k tầng giao di n cho h th ng ATM Xác định đối tượng tầng giao diện, yêu cầu trách nhiệm Đ i v i l p tầng nghi p vụ: NgơnHƠng, MáyATM, KháchHƠng, TƠiKhoản, GiaoDịch, GiaoDịchGửi, GiaoDịchRút xác định l p giao di n c a vi c quan sát s đ vƠ h p tác c a use case: Đăng nhập, Đăng nhập không h p l , Giao dịch, Biên soạn: Nguyễn Thị Điệu 156 Giáo trình Phân tích thiết kế hệ thống hướng đối tượng Rút ti n, Gửi ti n, Truy vấn thông tin tƠi khoản, Kh i đ ng h th ng, Đóng h th ng Chúng ta xác định đ c l p tầng giao di n sau đơy: KháchHƠngGD: biểu di n giao di n t Đăng nhập không h p l ng tác khách hƠng vƠ use case Đăng nhập, GiaoDịchRútGD: biểu di n t ng tác khách hƠng vƠ use case Rút ti n GiaoDịchGửiGD: biểu di n t ng tác khách hƠng vƠ use case Gửi ti n TƠi khoảnGD: biểu di n t ng tác khách hƠng vƠ use case Truy vấn thông tin tƠi khoản MáyATMKh iĐ ngGD: biểu di n t đ ng h th ng ng tác nhơn viên vận hƠnh vƠ use case Kh i Các đ i t ng giao di n GiaoDịchGửiGD, GiaoDịchRútGD có m t hình th c trình bƠy chung c a giao dịch vƠ thay đ i lo i giao dịch Do đó, gom l i thƠnh m t l p vƠ gọi lƠ: GiaoDịchGD Xác định liên kết lớp tầng giao diện với lớp tầng nghiệp vụ M ik th pđ c xác lập lƠ m i k t h p d ng aggregation nh sau: v i l p giao di n t o liên k t aggregation t i l p t ng ng tầng nghi p vụ M i liên k t nƠy cho bi t thể hi n c a l p tầng giao di n s sử dụng đ i t ng tầng nghi p vụ nh lƠ m t thƠnh phần để thực hi n g i thông p Xác định đối tượng giao diện điều khiển là: toolbar, menu, form điều khiển,… NgoƠi l p đ c xác định dựa vƠo use case, xác định thêm đ i t di n có nhi m vụ điểu khiển chính, giao di n chính, thực đ n, tool bar,… V i h th ng ATM có thêm m t đ i t giao di n c a máy ATM gọi lƠ MáyATM_GD ng giao ng giao di n u khiển ho t đ ng Vì đ i t ng c a l p MáyATM_GD s g i thông p đ n tất đ i t ng giao di n rút, gửi vƠ truy vấn thông tin nhằm u khiển giao di n nƠy Do đó, tr c g i thông p đ i Biên soạn: Nguyễn Thị Điệu 157 Giáo trình Phân tích thiết kế hệ thống hướng đối tượng t ng l p MáyATM_GD s phải t o đ i t ng nh lƠ m t thƠnh phần c a Chính mƠ s xác lập m i k t h p aggregation từ l p MáyATM_GD đ n l p: GiaoDichGD, TaiKhoanGD Thiết kế giao diện mẫu (prototype) Xác định method Mục tiêu c a đ i t ng giao di n lƠ cho phép ng i dùng thao tác v i h th ng nhằm phục vụ cho công vi c nghi p vụ nh lƠ: nhấn m t nút, nhập vƠo m t ký tự,… Các thao tác nƠy s đ c chuyển t i đ i t ng tầng nghi p vụ để xử lý Khi hoƠn thƠnh xử lý, giao di n s đ c cập nhật l i thông tin nhằm hiển thị thông tin m i m m t giao di n m i,… Xác định hƠnh vi cho đ i t ng giao di n cách xác định ki n mƠ c a h th ng phải đáp ng t ng ng t i thao tác ng i dùng giao di n vƠ hƠnh đ ng ki n xảy M t hƠnh đ ng đ c xem nh m t hƠnh vi vƠ đ c hình thƠnh b i k t h p m t đ i t ng v i m t thông p g i t i đ i t ng Xem xét l i đ i t ng giao di n theo use use case c a h th ng ATM lần l t xác định method cho l p giao di n KháchHàngGD - Use case Đăng nhập Khi khách hƠng đ a thẻ ATM vƠo máy ki n vƠ hƠnh đ ng: - Đ a thẻ vƠo máy -> hiển thị giao di n đăng nhập (KháchHƠngGD) - Khách hƠng chọn đ ng ý -> kiểm tra mật (KháchHƠng) -> hiển thị giao di n u khiển (MáyATM_GD) -> thông báo n u đăng nhập không thƠnh công (KháchHàngGD) -> đóng giao di n đăng nhập (KháchHƠngGD) - Khách hƠng chọn huỷ b -> đóng giao di n đăng nhập (KháchHƠngGD) Chúng ta xác định đ c method: KháchHƠngGD::+hiểnThị() KháchHàngGD::-thôngBáo(thôngBáo:String) KháchHƠngGD::+đóng() MáyATM_GD::+hiểnThị() Biên soạn: Nguyễn Thị Điệu 158 Giáo trình Phân tích thiết kế hệ thống hướng đối tượng S đ tinh ch tầng giao di n cho use case Đăng nhập MáyATM_GD Khi giao di n c a máy đ c hiển thị t ng tác c a khách hàng làm phát sinh ki n vƠ hƠnh đ ng: - Chọn nút rút ti n -> hiển thị giao di n rút ti n (GiaoDịchGD) - Chọn nút gửi ti n -> hiển thị giao di n gửi ti n (GiaoDịchGD) - Chọn nút xem tƠi khoản -> hiển thị giao di n xem thông tin tƠi khoản (TƠiKhoảnGD) - Chọn nút thoát -> đóng giao di n (MáyATM_GD) Biên soạn: Nguyễn Thị Điệu 159 Giáo trình Phân tích thiết kế hệ thống hướng đối tượng Chúng ta xác định đ c method GiaoDịchGD::+hiểnThị(lo iGD:String) TƠiKhoản::+hiểnThị() MáyATM_GD::+đóng() GiaoDịchGD - Use case Rút ti n Khi khách hƠng chọn dịch vụ rút ti n từ giao di n ki n vƠ hƠnh đ ng: - Chọn rút ti n -> hiển thị giao di n rút ti n (GiaoDịchGD) - Khách hƠng chọn rút ti n -> thực hi n rút ti n (TƠiKhoản) thông báo k t (GiaoDịchGD) in hoá đ n rút (GiaoDịchGD) đóng giao di n rút ti n (GiaoDịchGD) - Khách hƠng chọn đóng -> đóng giao di n rút ti n (GiaoDịchGD) Chúng ta xác định đ c method: GiaoDịchGD::-thôngBáo(thôngBáo:String) GiaoDịchGD::-inHoáĐ n() GiaoDịchGD::+đóng() Biên soạn: Nguyễn Thị Điệu 160 Giáo trình Phân tích thiết kế hệ thống hướng đối tượng GiaoDịchGD - Use case Gửi ti n Khi khách hƠng chọn dịch vụ gửi ti n từ giao di n ki n vƠ hƠnh đ ng: - Chọn gửi ti n -> hiển thị giao di n gửi ti n (GiaoDịchGD) - Khách hƠng chọn gửi ti n -> thực hi n gửi ti n (TƠiKhoản) thông báo k t (GiaoDịchGD) in hoá đ n gửi (GiaoDịchGD) đóng giao di n gửi ti n (GiaoDịchGD) - Khách hƠng chọn đóng -> đóng giao di n gửi ti n (GiaoDịchGD) Các method xác định use case nƠy gi ng nh c a use case Rút ti n Biên soạn: Nguyễn Thị Điệu 161 Giáo trình Phân tích thiết kế hệ thống hướng đối tượng Trong s đ cho rút ti n vƠ g i ti n, quan sát ba đ i t ng: KháchhƠng (tác nhơn), vƠ hai đ i t ng giao di n MáyATM_GD, GiaoDịchGD Bắt đầu dòng từ tác nhân khách hƠng mô tả thao tác khách hƠng giao di n vƠ trả l i c a h th ng từ giao di n Từ dòng nƠy, đ i t ng giao di n s t ng tác v i đ i t ng tầng nghi p vụ thông p nhằm thực hi n tác vụ c a h th ng TƠiKhoảnGD - Use case Truy vấn thông tin tƠi khoản3 Khi khách hƠng chọn truy vấn thông tin tƠi khoản từ giao di n ki n vƠ hƠnh đ ng: - Chọn xem thông tin tƠi khoản -> hiển thị giao di n truy vấn (TƠiKhoảnGD) đọc thông tin tƠi khoản (KháchHƠng) hiển thị thông tin tƠi khoản (TƠiKhoảnGD) - Khách hƠng chọn đóng -> đóng giao di n truy vấn (TƠiKhoảnGD) Chúng ta xác định đ c method: Biên soạn: Nguyễn Thị Điệu 162 Giáo trình Phân tích thiết kế hệ thống hướng đối tượng TƠiKhoảnGD::+hiểnThị() TƠiKhoảnGD::-hiểnThịThôngTin(tk:TaiKhoan) TƠiKhoảnGD::+đóng() MáyATMKh iĐ ngGD - Use case Kh i đ ng h th ng Khi máy đ c bật công tắc kh i đ ng ki n vƠ hƠnh đ ng: - Kh i đ ng máy hoƠn (MáyATMKh iĐ ngGD) thƠnh - Nhơn viên chọn đóng -> cập nhật s ti n cho hi n hƠnh cho máy (MáyATM) -> hi n thị giao di n kh i đ ng thực hi n k t n i t i m ng ngơn hƠng (NgơnHƠng) đóng giao di n kh i đ ng (MáyATMKh iĐ ngGD) Chúng ta xác định đ c method: MáyATMKh iĐ ngGD::+hiểnThị() MáyATM::+cậpNhậtS Ti n(s Ti n:float) NgơnHƠng::+k tN i() MáyATMKh iĐ ngGD::+đóng() Biên soạn: Nguyễn Thị Điệu 163 máy Giáo trình Phân tích thiết kế hệ thống hướng đối tượng Use case Đóng máy Khi nhơn viên bật công tắc tắt máy, ki n vƠ hƠnh đ ng: - Tr c tắt máy -> thực hi n đóng k t n i t i m ng ngơn hƠng (NgơnHƠng) Chúng ta xác định đ tắt máy (MáyATM) c method NgơnHƠng::+đóngK tN i() MáyATM::-tắtMáy() Biên soạn: Nguyễn Thị Điệu 164 Giáo trình Phân tích thiết kế hệ thống hướng đối tượng M t giải pháp khác nhằm quản lý vi c u khiển l p nghi p vụ để đáp ng cho ki n tầng giao di n lƠ dùng đ i t ng u khiển Các thông p từ tầng giao di n s đ c ti p nhận b i đ i t ng điểu khiển vƠ đ i t ng nƠy s u khiển ho t đ ng c a đ i t ng nghi p vụ nhằm thực thi cho thông p Nh đ i t ng giao di n hiểu nh lƠ m t đ i t ng bao bọc tầng nghi p vụ từ đ i t ng tầng giao di n V quan ni m t ng quát, m t đ i t ng u khiển đảm nhận nhi u use case m t use case có nhi u đ i t ng u khiển Tuy nhiên, tất use case đ u phải có đ i tự ng u khiển, b i ý nghĩa c a đ i t ng u khiển lƠ t o ph i h p, đó, tr ng h p use case có m t l p ý nghĩa ph i h p không Trong UML l p u khiển lƠ m t stereotype vƠ có ký hi u nh sau: Biên soạn: Nguyễn Thị Điệu 165 Giáo trình Phân tích thiết kế hệ thống hướng đối tượng S đ cho use case Rút ti n có đ i t ng u khiển: Các l p tầng giao di n đ c đ c chọn m t kiểu stereotype phù h p: boundary, form, interface, page, webpage,… Ví dụ, s đ use case Rút ti n chọn stereotype cho l p giao di n lƠ boundary Quan sát s đ thấy đ i t ng giao di n s t ng tác (rút ti n) v i đ i t ng nghi p vụ qua m t đ i t ng u khiển, vƠ đ i t ng nƠy s u ph i ho t đ ng c a đ i t ng nghi p vụ (KháchHƠng, TƠiKhoản, GiaoDịch) để thực hi n vi c rút ti n thay s đ tr c đó, vi c u ph i nƠy đ i t ng giao diên đảm nhận Xác định thuộc tính lớp tầng giao diện Các thu c tính đ c xác định cho l p tầng giao di n ch y u lƠ thu c tính mô tả tham chi u M t lần nữa, dựa vƠo s đ tinh ch l i m i k t h p l p tầng giao di n vƠ l p tầng nghi p vụ: Biên soạn: Nguyễn Thị Điệu 166 Giáo trình Phân tích thiết kế hệ thống hướng đối tượng \ Các thu c tính tham chi u c a l p lần l t lƠ: L p MáyATM_GD -giaoDịchGD:GiaoDịchGD -tƠiKhoảnGD:TƠiKhoảnGD L p KháchHƠngGD -kháchHàng:KháchHàng L p GiaoDịchGD -tƠiKhoản:TƠiKhoản -kháchHàng:KháchHàng L p TƠiKhoảnGD -tƠiKhoản:TƠiKhoản -kháchHàng:KháchHàng L p MáyATMKh iĐ ngGD -máyATM:MáyATM Biên soạn: Nguyễn Thị Điệu 167 Giáo trình Phân tích thiết kế hệ thống hướng đối tượng S đ l p đầy đ ba tầng c a h th ng ATM: Biên soạn: Nguyễn Thị Điệu 168 Giáo trình Phân tích thiết kế hệ thống hướng đối tượng T NG K T Nh phần nƠy đư cung cấp cho b n nhìn t ng quan v thi t k h th ng (thi t k l p vƠ use case): - Cung cấp c v ki n trúc ba tầng (tree-layer) - Xác định đ i t ng tầng nghi p vụ - Xác định đ i t ng tầng truy cập li u vƠ thi t k method - Xác định đ i t ng tầng giao di n vƠ thi t k method Biên soạn: Nguyễn Thị Điệu 169
Ngày đăng: 04/08/2016, 13:23
Xem thêm: Giáo trình Phân tích thiết kế hệ thống hướng đối tượng, Giáo trình Phân tích thiết kế hệ thống hướng đối tượng