Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 221 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
221
Dung lượng
1,28 MB
Nội dung
Nguyễn Xuân Huy Giáo trình KIẾN TRÚC VÀ THIẾT KẾ PHẦN MỀM Giáo trình giới thiệu khái niệm kiến trúc hệ thống phần mềm, qui trình phương pháp thiết kế kiến trúc hệ thống phần mềm Sau tìm hiểu giáo trình, học viên Hiểu vai trò quan trọng thiết kế kiến trúc phần mềm; Nắm bước tư định hướng cần thiết định đưa thành phần vào kiến trúc hệ thống trình thiết kế kiến trúc; Nắm tư tưởng mẫu kiến trúc phương thức tổ chức kiến trúc hệ thống để tái sử dụng thiết kế hệ thống; Nắm mẫu kiến trúc quan trọng thường vận dụng qui trình thiết kế khác M Ụ C L Ụ C Lời nói đầu Chương Khái niệm chung 1.1 Tiếp cận hệ thống 1.2 Thiết kế kiến trúc 10 1.3 Quyết định kiến trúc 18 1.4 Các quan điểm kiển trúc phần mềm 28 1.5 Tóm tắt 31 Chương Các mẫu kiến trúc 33 2.1 Khái niệm chung 33 2.2 Mẫu 34 2.2.1 Kiến trúc Mơ hình, Quan sát Điều khiển (Model View Controller, MVC) 34 2.2.2 Kiến trúc Phân tầng (Layered Architecture, LA) 35 2.2.3 Kiến trúc Kho chứa (Repository Architecture, RA) 36 2.2.4 Kiến trúc Khách - Chủ (Client - Server, CS) 37 2.2.5 Kiến trúc Ống Lọc (Pipe and Filter, PAF) 37 2.3 Các kiến trúc ứng dụng 38 2.4 Tóm tắt 39 Chương Ngơn ngữ mơ hình hóa 41 thống UML 41 3.1 Lược sử UML 41 3.2 Khái quát UML 42 3.3 Mơ hình khái niệm UML 45 3.3.1 Phần tử mơ hình UML 46 3.3.2 Các quan hệ UML 50 3.3.3 Biểu đồ UML 53 3.4 Kiến trúc hệ thống UML 62 3.5 Rational Rose 66 3.6 Khả vận dụng UML 67 3.7 Tóm tắt 69 Chương Phân tích yêu cầu 71 4.1 Phân tích yêu cầu 72 4.2 Phân tích viên 76 4.3 Lĩnh vực vấn đề 77 4.4 Kĩ thuật trao đổi 78 4.5 Nguyên lí phân tích 80 4.5.1 Miền thơng tin 80 4.4.3 Mơ hình hố 82 4.6 Làm mẫu phần mềm 83 4.6.1 Kịch làm mẫu 84 4.6.2 Các phương pháp công cụ làm mẫu 86 4.7 Đặc tả 88 4.7.1 Nguyên lí đặc tả 88 4.7.2 Biểu diễn 92 4.7.3 Đặc tả yêu cầu phần mềm 93 4.8 Kiểm điểm đặc tả 95 4.9 Tóm tắt 98 Các chủ đề Hoạt động nhóm 99 TÀI LIỆU THAM KHẢO 183 Phụ lục Các mơ hình phát triển phần mềm 184 Phụ lục Các khái niệm kĩ nghệ phần mềm 192 Phụ lục Thuật ngữ 216 Lời nói đầu Cùng với đời phát triển công nghệ thông tin, công nghệ phần mềm hình thành ngun lí khoa học phát triển ngày mạnh mẽ Có thể hiểu công nghệ phần mềm lĩnh vực công nghệ thông tin nhằm nghiên cứu đề xuất nguyên lí, qui trình cơng nghệ, phương pháp, cơng cụ trợ giúp trình thiết kế, cài đặt bảo trì sản phẩm phần mềm đáp ứng tiêu chất lượng: tính đúng, tính khoa học, tính tin cậy, tính vững vàng, tính dễ chuyển mang, tính dễ sử dụng, dễ phát triển hồn thiện Kiến trúc phần mềm nhánh cơng nghệ phần mềm có nhiệm vụ định cấu hình hệ thống thông qua việc mô tả cấu phần mối liên quan cấu phần hệ thống phần mềm Khoảng năm sáu mươi kỉ 20 bùng nổ tranh luận toán tử đầy nghi vấn – toán tử GOTO ngơn ngữ lập trình Chính tranh luận làm nảy sinh ý tưởng nguyên lí công nghệ phần mềm Điều thú vị là, từ ngày đầu sơ khởi chập chững cơng nghệ phần mềm, phương pháp hình thức đời phát triển nhanh chóng Hàng loạt cơng trình nghiên cứu có ý nghĩa nhà tin học đầu đàn Dijkstra, Dahl, Hoare, Boëhm nâng kĩ thuật lập trình lên tầm cao, mang tính chặt chẽ hồn thiện, gần với ngành khoa học xác [5] Dahl Dijkstra đề xuất nguyên lý lập trình theo đặc tả hình thức, Hoare xây dựng hệ tiên đề chứng minh tính chương trình thơng qua phương pháp toán học suy luận logic, Boëhm Dijkstra chứng minh tính đủ hai cấu trúc điều khiển lặp while, sở đề xuất khái niệm D-cấu trúc với lời khuyên lập trình viên nên sử dụng ba cấu trúc điều khiển cách sáng tao nhã cấu trúc tuần tự, cấu trúc rẽ nhánh cấu trúc lặp điều kiện trước [4] Do nhu cầu thị trường, hệ thống phần mềm phức tạp ngày tăng trưởng Cùng với nó, ngun lí cơng cụ trợ giúp thiết kế phát triển hệ thống ngày gánh thêm trách nhiệm nặng nề chuyên nghiệp Nếu trước đây, lập trình viên thường đảm đương ln nhiệm vụ kiến trúc sư hệ Lời nói đầu thống ngày nay, việc khơng thể, chưa nói đến khả khơng khuyến khích Các khái niệm cơng nghệ hình thành phát triển đa dạng Có thể nói, ngày nay, mơ hình phát triển phần mềm định vài qui trình sản xuất phần mềm Đến lượt mình, qui trình sản xuất phần mềm lại định vài loại hình kiến trúc hiệu tương ứng Giáo trình đặt hai mục tiêu sau đây: Giới thiệu khái quát qui trình phương pháp thiết kế kiến trúc hệ thống phần mềm, sâu vào phương pháp tiên tiến có hiệu theo nghĩa phương pháp kiểm chứng thực tế; Định hướng cho học viên số kĩ trợ giúp tổ chức đạo nhóm thiết kế kiến trúc phần mềm sở làm phần mềm Nội dung giáo trình tương đương với học phần khoảng 50 tiết Giáo trình kiến trúc sau: Chương giới thiệu số khái niệm sở lí thuyết hệ thống kiến trúc hệ thống phần mềm với giả định bạn đọc biết nhiều sản phẩm phần mềm tiêu chí đánh giá sản phẩm phần mềm, mơ hình qui trình phát triển phần mềm Nội dung chương dành cho thảo luận mẫu kiến trúc thông dụng cộng đồng công nghệ phần mềm Chương trình bày tóm lược ngơn ngữ mơ hình hóa thống UML dùng rộng rãi thiết kế phần mềm theo tiếp cận hướng đối tượng Chương giới thiệu kĩ phân tích yêu cầu Đây pha nhằm xác định mục đích, chức sản phẩm phần mềm Mới xem, bạn đọc dễ có cảm giác lẽ chương phải đặt trước chương khác giáo trình Nếu xét trình tự vận dụng Khơng kĩ sư phần mềm viết ngay, dù dịng mã lệnh, khơng biết rõ mục đích yêu cầu đặt cho phần mềm Tuy nhiên, nói phần trên, bạn đọc biết rõ mơ hình qui trình xây dựng hệ thống phần mềm việc trình bày thực theo logic mà người viết cho phù hợp với kì vọng bạn đọc Trước biên soạn giáo trình này, người viết tiếp thu nhiều kiến thức bổ ích nội dung công nghệ phần mềm phương pháp luận truyền thụ từ giáo sư John Vũ, kĩ sư trưởng Công nghệ thông tin hãng Boeing, giáo sư kiêm nhiệm Viện nghiên cứu phần mềm Đại học Carnegie Mellon (CMU) Lời nói đầu giáo sư Anthony Lattanze, CMU Tiến sĩ John Kang, chủ nhiệm Khoa Quốc tế CMU thày Lê Công Cơ, Q hiệu trưởng trường Đại học Duy Tân Đà Nẵng cấp kinh phí tạo nhiều điều kiện thuận lợi cho người viết thăm tham gia khoá đào tạo cơng nghệ phần mềm CMU PGS TS Đồn Văn Ban, PGS TS Đặng Văn Đức, Nghiên cứu viên Ngơ Trung Việt, Viện Cơng nghệ thơng tin, Viện Khoa học Công nghệ Việt Nam, TS Hồ Cẩm Hà, trưởng khoa Công nghệ thông tin Đại học Sư phạm Hà Nội thường xuyên trao đổi cung cấp thông tin cho người viết vấn đề đương đại công nghệ phần mềm Đặc biệt, PGS TS Đặng Văn Đức, tác giả tài liệu Phân tích, thiết kế hướng đối tượng UML, nghiên cứu viên Ngơ Trung Việt TS Nguyễn Kim Ánh, tác giả tài liệu Nhập môn kĩ nghệ phần mềm cho phép người viết sử dụng thảo nói để soạn giáo trình Trong thời gian biên soạn giáo trình này, thạc sĩ Lê Thị Mỹ Hạnh, Khoa Công nghệ thông tin trường Đại học Bách khoa, Đại học Đà Nẵng cung cấp số hình vẽ trợ giúp soạn thảo trình bày văn Người viết chân thành cảm ơn hỗ trợ q báu chân tình thày đồng nghiệp Người viết mong nhận ý kiến bình luận đánh giá bạn đọc gửi theo địa sau đây: Nguyễn Xuân Huy, Chủ tịch Hội đồng tư vấn Giáo dục Microsoft, MB: 0903203800, E-mail: nxhuy564@gmail.com Hà Nội, Mùa Ve, năm Nhâm Thìn N X Huy Chương Khái niệm chung 1.1 Tiếp cận hệ thống Chúng ta quan niệm phần mềm hệ thống tức bao gồm thành phần gọi cấu phần mối liên hệ cấu phần Từ quan niệm ta thấy để xác định kiến trúc phần mềm ta cần rõ hai nhóm đối tượng hệ thống Các cấu phần, hay thành phần tạo nên hệ thống, Các mối liên hệ cấu phần Trong tài liệu thuật ngữ Phần mềm, hệ thống phần mềm, hệ thống xem tương đương Hình 1.1 Hệ thống Chương Khái niệm chung _ Thí dụ Hệ thống phần mềm quản lí thư viện bao gồm cấu phần sau đây: Cấu phần quản lí ấn phẩm; Cấu phần quản lí tài liệu điện tử; Cấu phần quản lí tài liệu vi phim; Cấu phần quản lí tài liệu điện ảnh; Cấu phần phục vụ bạn đọc; Cấu phần quan hệ giao dịch với thư viện bạn; Các mối liên hệ cấu phần là: Cấu phần phục vụ bạn đọc - cấu phần khác; Cấu phần quan hệ giao dịch với thư viện bạn - cấu phần khác; Cấu phần quản lí tài liệu vi phim - cấu phần quản lí tài liệu điện tử; Cấu phần thành phần cấu trúc nên hệ thống Một cấu phần có chức tương đối độc lập gọi hệ thống hệ thống Thí dụ Trong hệ thống quản lí thư viện nói ta gọi cấu phần liệt kê hệ thống Trong trình thiết kế kiến trúc, cấu phần phân rã thành cấu phần nhỏ Đến lượt mình, cấu phần nhỏ cịn phân rã tiếp thành chi tiết, đơn vị Qui trình gọi phân rã Chương Khái niệm chung _ làm mịn thiết kế hệ thống Tiếp cận gọi tiếp cận xuống, tức từ đại thể đến chi tiết, từ trừu tượng mức cao đến chi tiết Thí dụ Cấu phần phục vụ bạn đọc chi tiết hố thành cấu phần sau: Hướng dẫn đăng nhập; Hướng dẫn tìm kiếm; Trợ giúp (bạn đọc); Thống kê sở thích (bạn đọc); Đòi tài liệu hạn; Bài tập 1.1 viện Hãy liệt kê công việc phải làm mục Đòi tài liệu hạn thư Từ kinh nghiệm tổ chức thư viện cá nhân bạn, bạn liệt kê công việc phải làm nhập sách vào thư viện Nếu thư viện bạn phụ trách khơng có tài liệu bạn đọc yêu cầu Bạn làm gì? Hãy đặt vào vai người đọc để liệt kê kì vọng người đọc hệ thống phục vụ bạn Sau đó, cân nhắc xem khả tổ chức bạn đáp ứng nguyện vọng bạn đọc đến mức 1.2 Thiết kế kiến trúc Thiết kế kiến trúc phần mềm qui trình xác định cấu phần mối liên hệ cấu phần hệ thống phần mềm Thiết kế kiến trúc đòi hỏi thấu hiểu hệ thống Mục tiêu cuối xây dựng cấu trúc tổng thể cho hệ thống Trong mơ hình qui trình phát triển phần mềm, thiết kế kiến trúc pha trình thiết kế phần mềm 10 Phụ lục Các khái niệm kĩ nghệ phần mềm tổ chức (kiến trúc) để khớp vào kết cấu công nghệ tổ chức Khi quan niệm vấn đề làm việc hướng tới việc thực giải pháp nắm tri thức (mơ hình) vấn đề nghiệp vụ hệ thơng tin, định (góc nhìn kiến trúc) cách đề cập tới vấn đề khác nhau, nên có khả mơ tả trao đổi thông tin (các biểu đồ) Phương pháp xác định cách tiến hành nỗ lực giải vấn đề Chúng xác định cách tiếp cận giải vấn đề cấu phần Chúng xác định cách vấn đề giải pháp xem xét mối quan hệ với cách tiếp cận giải vấn đề; điều biết khía cạnh mơ tả phương pháp mơ tả cho cách thức tri thức nắm bắt trao đổi vấn đề giải pháp Các phương pháp xác định cách tiếp cận giải vấn đề dùng để giải vấn đề suy dẫn giải pháp; điều biết tới khía cạnh qui tắc phương pháp mơ tả cho cách thức tri thức bẩy để giải vấn đề Phương pháp xác định mặt mô tả cách thức vấn đề giải pháp xem xét, xác định mặt qui tắc cách thức nỗ lực giải vấn đề thực tế hố Tiến trình việc thực phương pháp Chúng dùng cách tiếp cận giải vấn đề phương pháp để giải vấn đề thực giải pháp Các tiến trình xác định phương pháp; điều biết khía cạnh tĩnh tiến trình mơ tả cách vấn đề giải Các tiến trình áp dụng phương pháp bên dự án để giải vấn đề; điều biết khía cạnh động tiến trình Vì dự án phức tạp nên phương pháp nên dùng để cung cấp kết cấu cho tiến trình giải vấn đề Chúng nên xem xét gợi ý khuyến cáo tổ chức tạo điều kiện cho tiến trình giải vấn đề xem xét qui tắc không linh động cứng nhắc, hạn chế nghệ thuật giải vấn đề Phương pháp luận việc phân loại, hay tuyển tập có tổ chức tốt phương pháp có liên quan; đó, phương pháp phần phương pháp luận Vấn đề thường nói tới tình chúng biểu diễn cho điều kiện tại; giải pháp tương tự nói tới tình chúng biểu thị cho điều kiện đích mà cố gắng đạt tới, xem Hình 1.1 207 Phụ lục Các khái niệm kĩ nghệ phần mềm Mô tả Thông minh Quan niệm Giải Vấn đề Vấn đề Các yêu cầu vấn đề áp đặt lên giải pháp Thực Giải pháp Tri thức Thu nhận Trao đổi Sử dụng Đặc tả giải pháp thoả mãn cho u cầu Qui tắc Hình 1.1 Góc nhìn chung giải vấn đề Một tình khơng gây khó khăn xử lí vấn đề để hiểu nó; nhiên, giải pháp lại khơng khác việc hiểu tình Điều phát sinh việc xác định đặc trưng, thay yêu cầu, tình cung cấp góc nhìn mơ tả khiết tình mà khơng có góc nhìn mơ tả hay qui tắc giải pháp Điều thường tiến hành giải pháp cho vấn đề tồn tại, giải pháp có cần hiểu hay đánh giá Việc giải vấn đề (Hình 1.2) bao gồm nỗ lực hay tiến trình hợp tác giải vấn đề Những nỗ lực bao gồm điều sau: Quan niệm biểu diễn vấn đề dạng dễ uốn nắn trao đổi Điều cho phép vấn đề biểu diễn ngôn ngữ thao tác trao đổi với người khác Xác định yêu cầu vấn đề áp đặt lên giải pháp nó, tức là, yêu cầu gây vấn đề mà giải pháp phải thoả mãn Đạt tới mô tả vấn đề việc nhắm tới câu hỏi sau: Vấn đề gì? Các yêu cầu vấn đề mà giải pháp phải thoả mãn gì? Trong dự án, vấn đề trả lời tối thiểu với đủ mức chi tiết, nỗ lực đạt tới góc nhìn mơ tả vấn đề 208 Phụ lục Các khái niệm kĩ nghệ phần mềm Nhận diện hay xác định giải pháp thoả mãn yêu cầu vấn đề áp đặt Đạt tới mô tả giải pháp việc nhắm tới câu hỏi sau: Giải pháp gì? Đặc tả cho giải pháp thoả mãn yêu cầu vấn đề áp đặt gì? Bên dự án, vấn đề trả lời tối thiểu với đủ mức chi tiết, nỗ lực đạt tới góc nhìn mơ tả giải pháp Mô tả Giải vấn đề Yêu cầu Đặc tả Giải pháp Vấn đề Vấn đề Vấn đề Vấn đề Vấn đề Thu gọn (Phân tích) Giải pháp Giải pháp Giải pháp Giải pháp Mở rộng (Hợp thành) Qui tắc Hình 1.2 Góc nhìn chi tiết giải vấn đề Nếu giải pháp định cho vấn đề, yêu cầu vấn đề ấn định lên giải pháp nhóm lại, phân loại, tổ chức thành vấn đề cấp dưới, giải tương tranh Một vấn đề cấp dẫn hay phân tách cách đệ qui thành vấn đề cấp Các vấn đề cấp giải tương tranh, giải pháp cho vấn đề nguyên thuỷ mở rộng hay hợp thành đệ qui từ giải pháp cấp Tiến trình dẫn tiếp tục giải pháp cho vấn đề nguyên thuỷ suy dẫn Bởi tiến trình đệ qui nên góc nhìn mơ tả dùng để phát góc nhìn qui tắc Hơn nữa, việc phân tách cho phép nhiều việc giải vấn đề song song tương tranh toàn tiến trình giải Việc giải vấn đề tiếp tục sau: 209 Phụ lục Các khái niệm kĩ nghệ phần mềm Đạt tới việc qui định bước bên giải pháp giải cho vấn đề việc đề cập tới câu hỏi sau: giải pháp có yêu cầu riêng (hay vấn đề phụ thuộc) thoả mãn nào? Trong phạm vi dự án, câu hỏi trả lời cách tối thiểu với đủ mức chi tiết cần thiết, nỗ lực đạt tới góc nhìn qui tắc giải pháp Thực việc biểu diễn cho giải pháp dạng cụ thể dùng Tri thức cấu phần chèn lấp lên cần phải thâu tóm (thu nhận), truyền trao (dùng chung), làm đòn bẩy (sử dụng) để tạo điều kiện thuận tiện cho tiến trình Tồn tri thức bao gồm nỗ lực phân mảnh thành nhóm, với nhóm liên kết với phần nỗ lực (quan niệm, vấn đề, giải pháp, việc giải vấn đề hay thực hiện) điểm thời gian nêu Mối liên kết có ý nghĩa phần tử tri thức ảnh hưởng tới nỗ lực; tức phần tử tri thức thu nhận, dùng chung hay sử dụng bên nỗ lực giải vấn đề Thông minh khả tiến hành tiến trình giải vấn đề việc tổ chức tri thức phân loại áp dụng tri thức cách có chiến lược qua nỗ lực giải vấn đề để suy giải pháp Vòng đời Cách tiếp cận giải vấn đề tổ chức (theo vòng đời) để đưa viễn cảnh quản lí viễn cảnh phát triển Hai viễn cảnh làm cho nỗ lực phát triển hệ thống quản lí thực 210 Phụ lục Các khái niệm kĩ nghệ phần mềm Vòng đời Giai đoạn tiến hố Vịng lặp Giai đoạn quan niệm Pha lặp Giai đoạn dừng Pha phát triển Khởi đầu Lập kế hoạch Thực Kiểm sốt Kết thúc Hình 1.3 Vịng đời Vịng đời (Hình 1.3) chia sau Vòng đời tuyển tập giai đoạn phân chia nỗ lực thành nhiều giai đoạn nỗ lực, quản lí kiểm sốt Mỗi giai đoạn bên vòng đời phần rời rạc luồng logic để giải vấn đề Mỗi giai đoạn có vào, đòi hỏi áp dụng nguyên tắc, kĩ thuật công cụ lên vào để sinh ra; có tiêu chuẩn vào cho việc đưa vào hay khởi đầu giai đoạn; có tiêu chuẩn để hay kết thúc giai đoạn Điều làm nảy sinh việc kiểm điểm sản phẩm có đạt chất lượng khơng từ để định liệu có tiếp tục hay bỏ dở tồn nỗ lực Nhìn chung người ta phân ba giai đoạn: giai đoạn quan niệm, giai đoạn tiến hoá giai đoạn dừng Giai đoạn quan niệm bao gồm việc nhận vấn đề hay hội cam kết giải vấn đề Giai đoạn tiến hoá bao gồm nhiều chu kì tiến hố từ việc khởi đầu, lập kế hoạch, thực hiện, kiểm soát kết thúc nỗ lực Giai đoạn dừng bao gồm việc nhận giải pháp khơng cịn u cầu kết thúc việc áp dụng giải pháp theo cách thức có trật tự Riêng giai đoạn tiến hố, chu kì tiến hố cụ thể là: 211 Phụ lục Các khái niệm kĩ nghệ phần mềm Khởi đầu bao gồm việc nhận chu kì tiến hoá cần việc đề cập tới vấn đề hay có Lập kế hoạch bao gồm thiết kế trì xếp để thực việc giải vấn đề Thực bao gồm việc phối hợp nguồn tài nguyên để tiến hành kế hoạch giải vấn đề Kiểm soát bao gồm việc điều phối đo tiến trình cho biện pháp sửa đổi tiến hành cần Kết thúc bao gồm việc thức hố chấp nhận chu kì nghị cho vấn đề để theo chu kì sau khởi đầu Giai đoạn tiến hố bao gồm hay nhiều chu kì phát triển (chu kì tiến hố), nơi chu kì phát triển lại bao gồm nỗ lực phân phối cấu phần chu kì phát triển Nó bao gồm việc tiến hố sản phẩm trưởng thành chín muồi qua tồn Chu kì pha phát triển Chu kì pha phát triển (xem Hình 1.4) có đặc trưng: Mỗi chu kì phát triển bao gồm bốn pha (khởi đầu, soạn thảo, xây dựng chuyển giao) làm phát sinh hệ sản phẩm Góc nhìn vịng đời thường gọi viễn cảnh quản lí cung cấp báo mức cao tiến độ dự án Quan niệm Vấn đề Khởi đầu Giải Vấn đề Soạn thảo Giải pháp Xây dựng Chu kì phát triển Thực Chuyển giao Thế hệ sản phẩm Hình 1.4 Các pha phát triển bên chu kì phát triển 212 Phụ lục Các khái niệm kĩ nghệ phần mềm Pha phát triển khởi đầu thường dùng chu kì lặp bao gồm hoạt động sau: Xác định định phạm vi giới hạn, mục tiêu yêu cầu Thiết lập trường hợp hay luận nghiệp vụ, bao gồm việc xác định tầm nhìn, xác định tiêu chuẩn thành công, định giá rủi ro, ước lượng thời gian chi phí, xác định kế hoạch Hội tụ vào việc hiểu hay hình thành khái niệm vấn đề luận để giải (định phạm vi trường hợp nghiệp vụ) Pha phát triển soạn thảo (lập kế hoạch) thường dùng chu kì lặp bao gồm hoạt động sau: Soạn thảo đặc tả nỗ lực từ pha trước Lập vạch ranh giới phạm vi giới hạn đầy đủ, mục tiêu yêu cầu Lập vạch ranh giới trường hợp nghiệp vụ việc làm đơng cứng góc nhìn, đơng cứng tiêu chuẩn thành công, làm dịu bớt rủi ro cao Lập vạch ranh giới kế hoạch với lịch biểu Phân phối yêu cầu nhiều chu kì lặp bên pha xây dựng Hội tụ vào việc hiểu hay hình thành khái niệm vấn đề để xác định yêu cầu mà vấn đề áp đặt lên giải pháp cho (nắm bắt yêu cầu phân tích yêu cầu), thiết lập kiểm chứng tảng cho giải pháp toàn thể (thiết kế kiến trúc), phân phối yêu cầu chu kì lặp pha phát triển xây dựng (lập kế hoạch) Pha phát triển xây dựng (thực hiện) thường dùng nhiều chu kì lặp bao gồm hoạt động sau: Cập nhật trường hợp nghiệp vụ việc quản lí rủi ro xảy trì kế hoạch lịch biểu Xây dựng phát triển sản phẩm việc thực nhiều chu kì lặp Pha tập trung vào điều sau: hiểu hay làm tiến hoá yêu cầu mà vấn đề áp đặt lên giải pháp (các yêu cầu) cho vấn đề soạn thảo giải pháp xác định, soạn thảo đặc tả giải pháp (phân tích), cập nhật tảng cho giải pháp tồn thể (thiết kế kiến trúc) tảng cần để hỗ trợ cho giải pháp đặc biệt (thiết kế chi tiết) yêu cầu chu kì lặp, 213 Phụ lục Các khái niệm kĩ nghệ phần mềm sinh giải pháp (cài đặt) cho yêu cầu chu kì lặp, kiểm chứng giải pháp (làm hợp lệ tích hợp) theo u cầu chu kì lặp, đưa hay tích hợp (hay chuyển giao) giải pháp (triển khai) hay tập Pha phát triển chuyển giao (đóng) thường dùng chu kì lặp bao gồm hoạt động sau: Triển khai sản phẩm cuối nỗ lực hay giải pháp cho vấn đề Định giá phân loại sản phẩm chuyển tiếp nỗ lực Tập trung vào việc cung cấp tích hợp hay chuyển giao giải pháp (triển khai) Chu kì pha lặp Chu kì pha lặp (hình 1.5) có đặc trưng sau: Quan niệm Giải Vấn đề Vấn đề Yêu cầu Phân tích Thiết kế Giải pháp Thực Kiểm chứng Thực Triển khai Cấu phần phát triển Quản lí Hỗ trợ Cấu phần hỗ trợ Chu kì phát triển Thế hệ sản phẩm Hình 1.5 : Tập trung vào pha lặp bên chu kì lặp 214 Phụ lục Các khái niệm kĩ nghệ phần mềm Mỗi chu kì lặp bao gồm hai cấu phần hỗ trợ (quản lí hỗ trợ) sáu cấu phần phát triển (yêu cầu, phân tích, thiết kế, thực hiện, làm hợp lệ triển khai) Nó làm phát sinh việc phát hành sản phầm Cách nhìn vịng đời thường gọi viễn cảnh phát triển đưa báo mức thấp tiến độ dự án Pha quản lí (kiểm sốt) bao gồm việc quản lí chu kì lặp tổng thể Pha hỗ trợ (kiểm soát) bao gồm việc hỗ trợ cho nhu cầu yêu cầu người tham dự chu kì lặp; điều bao gồm hỗ trợ môi trường phát triển lập cấu hình, định nghĩa chuẩn, hướng dẫn Bên pha phát triển soạn thảo (lập kế hoạch), pha lặp sau dùng tới: - Pha yêu cầu (nắm bắt yêu cầu) phân tích (phân tích yêu cầu) bao gồm việc hiểu hay hình thành khái niệm vấn đề để xác định yêu cầu giải pháp phân phối yêu cầu chu kì lặp pha phát triển xây dựng (lập kế hoạch) - Pha thiết kế (thiết kế kiến trúc) bao gồm việc thiết lập kiểm chứng tảng cho giải pháp toàn thể Bên pha phát triển xây dựng (thực hiện) pha lặp sau áp dụng: - Pha yêu cầu bao gồm việc hiểu hay soạn thảo yêu cầu mà vấn đề áp đặt lên giải pháp cho vấn đề soạn thảo giải pháp xác định - Pha phân tích bao gồm việc soạn thảo đặc tả giải pháp Pha xoay quanh việc áp dụng tri thức - Pha thiết kế bao gồm việc cập nhật tảng cho giải pháp tổng thể (thiết kế kiến trúc) tảng cần để hỗ trợ cho giải pháp đặc thù (thiết kế chi tiết) cho yêu cầu chu kì lặp Pha xoay quanh việc áp dụng tri thức - Pha thực bao gồm việc sinh giải pháp cho yêu cầu chu kì lặp - Pha làm hợp lệ (và tích hợp) bao gồm việc kiểm chứng giải pháp yêu cầu chu kì lặp - Pha triển khai bao gồm việc cung cấp tích hợp hay chuyển giao giải pháp hay tập 215 Phụ lục Thuật ngữ acceptance active class activity diagram actor advance aggregation relationship agile application architecture architecture-centric artifact association association relationship attribute attribute visibility behaviour boundary class business system case change check authorization service class class diagram class utility clean room client chấp nhận lớp tích cực, lớp kích hoạt biểu đồ hoạt động (hành động) tác nhân tăng, tiến, nâng cao quan hệ kết tập (gộp) linh lợi áp dụng kiến trúc tập trung vào kiến trúc vật, vật phẩm kết hợp quan hệ kết hợp thuộc tính phạm vi quan sát thuộc tính hành vi lớp biên hệ thống thương mại trường hợp thay đổi, sửa đổi phận kiểm sec lớp biểu đồ lớp lớp tiện ích phịng khách hàng 216 Phụ lục Thuật ngữ client–server cohension collection complex component component diagram component view composition aggregation concurrency view constraint rule constructor context control class credit authorization service data member database debugging decision dependability dependency relationship deployement view deployment diagram derivation rule design destructor development devide and conquer distributed system document driven dynamic efficiency embedded real-time system encapsulation engineering khách – chủ cố kết tuyển tập phức hợp cấu phần, thành phần biểu đồ thành phần (cấu phần) khung nhìn thành phần kết tập hợp thành khung nhìn tương tranh qui tắc ràng buộc cấu tử ngữ cảnh, ngữ nghĩa lớp điều khiển phận kiểm tra thẻ tín dụng thành phần liệu sở liệu gỡ lỗi định tính tin cậy quan hệ phụ thuộc khung nhìn triển khai biểu đồ triển khai qui tắc suy dẫn thiết kế hủy tử phát triển chia để trị hệ thống phân tán tài liệu, hồ sơ lái, săn đuổi động, động thái hiệu hệ thống nhúng thời gian thực đóng gói, bao gói cơng nghệ, kĩ nghệ 217 Phụ lục Thuật ngữ entity class environment error evolution extreme formal language formal specification fourth generation technology framework function generalization glossary guide identifier (ID) implementation index informal specification information hiding information system inheritance inspection instantiated class interaction interface language link logic view maintanability management member function message meta data method method mock object lớp thực thể mơi trường lỗi tiến hố, tiến triển cận, cực ngơn ngữ hình thức đặc tả hình thức cơng nghệ hệ thứ tư khung công việc chức năng, hàm tổng quát hóa danh mục thuật ngữ hướng dẫn định danh cài đặt, triển khai mục đặc tả phi hình thức che giấu thơng tin hệ thống thơng tin kế thừa sát lớp thể lặp giao diện ngơn ngữ kết nối, đường dẫn khung nhìn logic tu, bảo trì quản lí, quản trị hàm thành viên, chức thành phần thông điệp siêu liệu Phương thức, phương pháp phương pháp đối tượng nhép 218 Phụ lục Thuật ngữ model multiple inheritance multiplicity natural language nature normal aggregation object object diagram object-oriented object-oriented approach open open source operation overloading package parameterized class pattern plan polymorphic practical procedure oriented process professional program project property prototype quality real realisation real-time release testing requirement reuse review mơ hình kế thừa bội bội số, số, số ngôn ngữ tự nhiên tự nhiên kết tập thường đối tượng biểu đồ đối tượng hướng đối tượng tiếp cận hướng đối tượng mở mã nguồn mở tốn tử nạp chồng gói lớp tham số hóa mẫu kế hoạch đa xạ, đa hình thực tế hướng thủ tục qui trình chuyên nghiệp chương trình dự án tính chất mấu chất lượng thực thực hóa, triển khai thời gian thực kiểm định thực tế yêu cầu tái sử dụng kiểm điểm 219 Phụ lục Thuật ngữ risk role name scala scenario schema sequence diagram shared aggregation side effect software software engineering software system source specification spiral model stakeholder state diagram static stereotype structure system technical system technique technology template class test case test, testing test-driven development thread tools UML (Unified Modeling Language) UML Design unit usability use case diagram cố tên vai thang, độ kịch sơ đồ, lược đồ biểu đồ kết tập chia sẻ (dùng chung) hiệu ứng phụ phần mềm công nghệ (kĩ nghệ) phần mềm hệ thống phần mềm nguồn đặc tả mơ hình xoắn ốc người có thẩm quyền biểu đồ trạng thái tĩnh mẫu rập khuôn cấu trúc hệ thống hệ thống kĩ thuật kĩ thuật công nghệ lớp mẫu trường hợp kiểm định kiểm định phát triển theo kiểm định săn đuổi luồng công cụ ngôn ngữ mơ hình hố thống thiết kế UML đơn vị tính tiện dụng biểu đồ trường hợp sử dụng 220 Phụ lục Thuật ngữ use case driven use case view user user testing validation verification view waterfall model theo trường hợp sử dụng khung nhìn trường hợp sử dụng người sử dụng kiểm định người sử dụng kiểm dụng kiểm tra nhìn, khung nhìn mơ hình thác nước 221 ... 1.2 Thiết kế kiến trúc Thiết kế kiến trúc phần mềm qui trình xác định cấu phần mối liên hệ cấu phần hệ thống phần mềm Thiết kế kiến trúc đòi hỏi thấu hiểu hệ thống Mục tiêu cuối xây dựng cấu trúc. . .Giáo trình giới thiệu khái niệm kiến trúc hệ thống phần mềm, qui trình phương pháp thiết kế kiến trúc hệ thống phần mềm Sau tìm hiểu giáo trình, học viên Hiểu vai trò quan trọng thiết kế kiến. .. nhóm thiết kế kiến trúc phần mềm sở làm phần mềm Nội dung giáo trình tương đương với học phần khoảng 50 tiết Giáo trình kiến trúc sau: Chương giới thiệu số khái niệm sở lí thuyết hệ thống kiến trúc