Kiến trúc và thiết kế phần mềm

221 1.9K 9
Kiến trúc và thiết kế phần mềm

Đ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

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 hoá 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 nguyên 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 hoà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ẽ hoà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ó, nguyên 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 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, 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 Đoà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ợ quí 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ỏ 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 hoá 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 Hãy liệt kê công việc phải làm mục Đòi tài liệu hạn thư viện 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 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ế hoá 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 yê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à 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 Toà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 hoá Vòng lặp Pha lặp Giai đoạn dừng Giai đoạn quan niệm Pha phát triển Khởi đầu Lập kế hoạch Thực Kiểm soá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 soá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ở toà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 hoá 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 yê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 hoá, chu kì tiến hoá 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 hoá chấp nhận chu kì nghị cho vấn đề để theo chu kì sau khởi đầu Giai đoạn tiến hoá bao gồm hay nhiều chu kì phát triển (chu kì tiến hoá), 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 hoá 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 toà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 yê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 soá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 hoá, 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ở toá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 hoá 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 [...]... thiết kế và kĩ nghệ yêu cầu vì chúng cùng chỉ rõ các cấu phần chính của hệ thống và các mối liên hệ giữa các cấu phần đó Đầu vào của thiết kế kiến trúc là các yêu cầu đối với hệ thống Đầu ra của thiết kế kiến trúc là mô hình kiến trúc phản ánh tổ chức của hệ thống như một tập các cấu phần có liên hệ với nhau Toàn bộ sản phẩm đầu ra tạo thành một bộ hồ sơ thiết kế kiến trúc Theo tiếp cận linh lợi, thiết. .. hiệu năng và độ tin cậy trong giao dịch, trong tương tác 3 Khi cần thiết kế kiến trúc cho một hệ thống phân tán ta có thể khảo sát và lựa chọn các mẫu kiến trúc và topo mạng máy tính: kiến trúc hình sao, kiến trúc vòng, client-server, … Để lựa chọn một cấu phần đưa vào hệ thống hoặc phân rã một thành phần hoặc một cấu phần của hệ thống, kiến trúc sư hệ thống cần được trang bị các kiến thức và chiến... tín Xem số dư Hình 1.3 Kiến trúc của hệ thống ATM Sơ đồ khối là phương tiện hữu ích để mô tả kiến trúc hệ thống trong quá trình thiết kế cũng như hỗ trợ trao đổi với những người có thẩm quyền Kiến trúc sư hệ thống cần có kĩ năng sử dụng các thành thạo các công cụ và phương thức tốt để có thể mô tả chuẩn mực, có ngữ nghĩa kiến trúc hệ thống 1.3 Quyết định kiến trúc Thiết kế kiến trúc là một qúa trình... thiện nhanh chóng việc sửa đổi kiến trúc K cho ngôi nhà của bạn Tình hình cũng tương tự như vậy đối với việc lựa chọn và sửa đổi kiến trúc phần mềm Hiểu được những khó khăn, vất vả (và cả những hiểm nguy !!!) trong thiết kế phần mềm, cộng đồng công nghệ phần mềm đã tăng cường chia sẻ, trao đổi thông tin về các bản mẫu và xây dựng những cơ sở dữ liệu chứa các mẫu thiết kế dùng chung nhằm hỗ trợ nhau... đầu óc biết phân tích và phê phán sẽ giúp ta sáng tạo ra những sản phẩm độc đáo 1.4 Các quan điểm trong kiển trúc phần mềm Nhắc lại rằng các mô hình kiến trúc của một hệ thống phần mềm rất cần và có thể được sử dụng để thảo luận về các yêu cầu giữa nhóm thiết kế, phát triển phần mềm và những người có thẩm quyền Hơn nữa, các mô hình này còn có thể được sử dụng để lập hồ sơ kiến trúc trong các bước làm... mẫu kiến trúc 2.1 Khái niệm chung Các mẫu kiến trúc được sử dụng với mục đích chia sẻ và tái sử dụng các tri thức của cộng đồng công nghệ phần mềm Ta hiểu mẫu là những sản phẩm làm sẵn dùng để dựa vào đó sản xuất ra những sản phẩm cùng loại Giả sử bạn cần thiết kế một kiến trúc cho một ngôi nhà Bạn tìm trong thực tế hoặc trên mạng Internet một vài bản kiến trúc có sẵn mà bạn cho là phù hợp nhất với kiến. .. một vài bản kiến trúc có sẵn mà bạn cho là phù hợp nhất với kiến trúc dự kiến của ngôi nhà của bạn Các bản kiến trúc này được gọi là các bản kiến trúc mẫu Sau đó bạn dựa trên những bản kiến trúc mẫu này để thiết kế kiến trúc cho ngôi nhà của bạn Giả sử bản kiến trúc bạn ưng ý nhất và bạn đã chọn là K Nếu bạn đã giao tiếp với chủ nhà K và được chủ nhà cung cấp rõ ràng các thông tin về ngôi nhà: những... Phân rã: Chia một cấu phần thành các cấu phần nhỏ hơn dựa theo chức năng, thao tác hoặc tổ chức dữ liệu Ta có thể thiết kế kiến trúc phần mềm theo 2 cấp độ: nhỏ và lớn 1 Kiến trúc nhỏ liên quan đến các kiến trúc của chương trình máy tính riêng biệt Tại mức này ta quan tâm phân rã một chương trình cụ thể thành các thành phần 13 Chương 1 Khái niệm chung _ 2 Kiến trúc lớn liên quan đến... thiết kế kiến trúc nhìn chung được thừa nhận là pha sớm nhất của qui trình phát triển phần mềm Nhiệm vụ chính của pha này theo tiếp cận linh lợi chính là khởi tạo được một kiến trúc tổng thể của hệ thống phần mềm Việc phát triển kiến trúc theo kiểu tăng trưởng nói chung là không hiệu quả Điều dễ hiểu là sửa đổi một cấu phần, một module hay một thủ tục trong hệ thống là khá dễ, nhưng sửa đổi kiến trúc. .. hoạt động trong nhiều chủng loại máy tính và môi trường khác nhau Thí dụ, lớp các thủ tục vào/ra, lớp các hàm toán học, lớp đồ hoạ được thiết kế để dùng chung cho nhiều ngôn ngữ và môi trường lập trình Hình mẫu: Một kiến trúc có thể dùng chung cho một lớp các hệ thống Thí dụ: Kiến trúc hệ điều hành, kiến trúc giao diện đồ hoạ, kiến trúc xử lí giao dịch Để kết luận cho mục này chúng ta trao đổi thêm ... 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. .. 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. .. 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

Ngày đăng: 22/01/2016, 03:32

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan