Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 46 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
46
Dung lượng
2,11 MB
Nội dung
PHÂNTÍCHVÀTHIẾTKẾHƯỚNGĐỐITƯỢNG OBJECT ORIENTED ANALYSIS AND DESIGN DR DAONAMANHBàigiảng 6: KIẾN TRÚC HỆ THỐNG VÀ PHÁT SINH MÃ TRÌNH RESOURCE - REFERENCE Ian Sommerville, Software Engineering, Ninth Edition, 2011 Bernd Bruegge & Allen H Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java, Third Edition, Prentice Hall, 2010 Russell C Bjork, ATM Simulation Links, Gordon College Hans-Erik Eriksson, Magnus Penker, Brian Lyons, David Fado, UML Toolkit, John Wiley & Sons Inc, 2003 Dương Kiều Hoa – Tơn Thất Hồ An, Phântíchthiếtkế Hệ thống thông tin với UML, 2006 ĐàoNam Anh, Giáo Trình PhânTíchVàThiếtKếHướngĐối Tượng, Đại học Điện lực, 2013 CONTENT – NỘI DUNG Kiến trúc hệ thống phát sinh mã trình 6.1 Kiến trúc hệ thống 6.2 Biểu đồ thành phần 6.3 Biểu đồ triển khai 6.4 Chuyển đổithiếtkế sang mã chương trình Kiến trúc hệ thống Kiến trúc hệ thống tả chi tiết hệ thống cấu trúc, giao diện, chế cộng tác Kiến trúc giúp dễ dàng điều hướng, tìm kiếm hàm chức năng, xác định vị trí để đặt chức Kiến trúc phải đủ chi tiết để có ánh xạ tới mã Như kiến trúc xem từ góc độ khác Kiến trúc hệ thống Một kiến trúc tốt cho phép chèn chức khái niệm mà khơngcó vấn đề với phần lại hệ thống Điều không giống hệ thống nguyên khối cũ, thay đổi nhỏ phần hệ thống làm ngừng hoạt động mối quan hệ phức tạp toàn hệ thống Kiến trúc đồ cho nhà phát triển, mô tả cách hệ thống xây dựng chức cụ thể khái niệm Theo thời gian, đồ phải thay đổi khám phá quan trọng kinh nghiệm đường Kiến trúc phải "sống" với hệ thống hệ thống phát triển liên tục phảnánh việc xây dựng hệ thống tất giai đoạn hệ Kiến trúc hệ thống Grady Booch, người phát triển UML, nói, "Một nhóm phát triển thiếu kinh nghiệm thành cơng kiến trúc có cấu trúc tốt, nhóm chuyên gia phát triển giỏi khó thể thành cơng lộ trình tồi” Kiến trúc hệ thống Kiến trúc mơ tả số hướng nhìn, hướng nhìn xét tập trung vào khía cạnh cụ thể hệ thống Bức tranh hoàn chỉnh hệ thống thực cách xác định tất hướng nhìn Trong UML, hướng nhìn thường định nghĩa sau: Hướng nhìn Use case Hướng nhìn Logic Hướng nhìn Đồng thời (concurrent) Hướng nhìn Hợp phần (component) Hướng nhìn Triển khai (deployment) Ngồi kiến trúc chia thành Logic Vật lý Kiến trúc hệ thống Như vậy, với tất định nghĩa này,điều tạo nên kiến trúc tốt? Dưới số hướng dẫn để trả lời câu hỏi đó: Mơ tả xác phận để xác định hệ thống, kiến trúc hợp lý kiến trúc vật lý Một đồ hệ thống mà nhà phát triển dễ dàng xác định vị trí nơi chức cụ thể hay khái niệm thực Chức khái niệm ứng dụng theo định hướng (một mơ hình lĩnh vực ứng dụng) thiếtkế theo định hướng (một số giải pháp thực kỹ thuật) Điều có nghĩa yêu cầu mã hệ thống nên theo dõi Kiến trúc hệ thống Những thay đổi mở rộng cần thực dễ dàng cho địa điểm cụ thể, mà không ảnhhưởng tiêu cực đến phần khác Giao diện đơn giản, quy định phụ thuộc phận khác rõ ràng để kỹ sư phát triển phần cụ thể khơng có hiểu biết đầy đủ tất chi tiết hệ thống tổng thể Tái sử dụng áp dụng cho thành phầnthiếtkế để sử dụng hệ thống khác Kiến trúc hệ thống Thiếtkế kiến trúc bao gồm tất phẩm chất dễ dàng, phải thỏa hiệp Tuy nhiên, định nghĩa kiến trúc tốt bước quan trọng phát triển hệ thống thành cơng Nếu khơng thực chu đáo, kiến trúc kèm phải xác định từ lên mã, kết hệ thống khó khăn để thay đổi, gia hạn, trì, hiểu 10 Biểu đồ thành phần Thiếtkế quay vòng cần thiết để có biểu đồ triển khai Các giải pháp pahir thử nghiệm, trước hết trong giai đoạn mơ hình hóa sau nguyên mẫu thực Lý tưởng hệ thống linh hoạt để thành phần cụ thể di chuyển nút khác Một hệ thống đốitượng J2EE NET cho phép việc tạo hệ thống 32 Chuyển đổithiếtkế sang mã chương trình Nếu mẫu thiếtkế đặc điểm kỹ thuật giao diện lớp thực cách cẩn thận, phần lớn vấn đề thiếtkế giải cần thực hóa Use Case, yêu cầu, thiếtkế hệ thống thành hệ thống phần mềm Tuy nhiên, lập trình viên bắt đầu hệ thống phát triển cá nhân theo cách này, có nhiều vấn đề liên kết Các lập trình viên có xử lý khác với vấn đề Vì yêu cầu thay đổi, số thông số thêm vào API chưa có mơ tả tài liệu Một thuộc tính bổ sung vào mơ hình đối tượng, khơng báo cho hệ thống quản lý cấu hình, gây hiểu nhầm Kết mã có tương đồng với thiếtkế ban đầu khó hiểu 33 Chuyển đổithiếtkế sang mã chương trình Chương mơ tả một cách tiếp cận có tổ chức cho việc chuyển thiếtkế thành mã chương trình, tránh gây hỏng hệ thống Giải pháp bao gồm: Tối ưu hóa mơ hình lớp, Lập đồ liên kết, Chuyển hoạt động sang ngoại lệ, Chuyển mơ hình lớp sang mơ hình lưu trữ Công nghệ Java dựa Java sử dụng chương Các kỹ thuật mô tả, nhiên, áp dụng ngơn ngữ lập trình hướngđốitượng khác 34 Chuyển đổithiếtkế sang mã chương trình Khái niệm chuyển đổi Bốn loại biến đổiphân biệt , xem hình vé : Chuyển đổi mơ hình (Model transformations) hoạt động mơ hình đốitượng Một ví dụ chuyển đổi thuộc tính đơn giản (ví dụ, địa viết chuỗi) thành lớp (ví dụ, lớpc với địa đường phố, mã zip, thành phố, tỉnh, quốc gia) Chuyển đổi mã (Refactorings) biến đổi hoạt động mã nguồn ương tự chuyển đổi mơ hình, cải thiện khía cạnh hệ thống mà không làm thay đổi chức Phép chuyển mã thao tác mã nguồn 35 Chuyển đổithiếtkế sang mã chương trình Kỹ thuật chuyển tiếp (Forward engineering) sinh mã nguồn tương ứng với mơ hình đốitượng Nhiều thành phần mơ hình, thuộc tính liên kết ánh xạ vào mã nguồn cho số ngơn ngữ lập trình (ví dụ, lớp khai báo Java), phần thân biến private lập trình viên viết thêm Kỹ thuật đảo ngược (Reverse engineering) tạo mơ hình tương ứng với mã nguồn Chuyển đổi sử dụng thiếtkế hệ thống bị phải tái lập từ mã nguồn Mặc dù số công cụ CASE hỗ trợ kỹ thuật đảo ngược, cần có tham gia nhiều người phát triển để tái tạo mơ hình xác, mã khơng có thơng tin cần thiết để phục hồi mơ hình cách rõ ràng 36 Chuyển đổithiếtkế sang mã chương trình 37 Chuyển đổithiếtkế sang mã chương trình Chuyển đổi mơ hình Một chuyển đổi mơ hình áp dụng cho mơ hình đốitượng kết mơ hình đốitượng Mục đích việc chuyển đổi mơ hình đốitượng để đơn giản hóa tối ưu hóa mơ hình ban đầu, đưa tuân thủ chặt chẽ với tất yêu cầu đặc điểm kỹ thuật Một chuyển đổi thêm, loại bỏ, đổi tên lớp, hoạt động, liên hệ, thuộc tính Một chuyển đổi thêm thơng tin vào mơ hình loại bỏ thơng tin từ Trong phân tích, sử dụng biến đổi để tổ chức đốitượng vào mơ hình kế thừa loại bỏ dư thừa từ mơ hình phântích 38 Chuyển đổithiếtkế sang mã chương trình Ví dụ, việc chuyển đổi hình tạo nên lớp chứa thuộc tính chung (email) ba lớp ban ban đầu 39 Chuyển đổithiếtkế sang mã chương trình Chuyển đổi mã Chuyển đổi mã (refactoring) biến đổi mã nguồn để cải thiện khả đọc khả cập nhật mà không thay đổi hành vi hệ thống Chuyển đổi mã nhằm mục đích cải thiện thiếtkế hệ thống làm việc cách tập trung vào lĩnh vực cụ thể phương pháp lớp Để đảm bảo việc chuyển đổi mã không thay đổi hành vi hệ thống, chuyển đổi mã thực theo bước nhỏ, gia tăng xen kẽ với kiểm thử Với kiểm thử, lập trình viên tự tin thay đổi mã thay đổi giao diện trình chuyển đổi mã 40 Chuyển đổithiếtkế sang mã chương trình Chuyển đổi mã Ví dụ, mơ hình đốitượng hình 7-6 tương ứng với ba lớp đoạn code hình Sau chuyển đổi mã ta có thêm lớp User, lớp trở thành lớp lớp User 41 Chuyển đổithiếtkế sang mã chương trình Kỹ thuật chuyển tiếp Kỹ thuật chuyển tiếp (Forward Engineering) áp dụng cho yếu tố mơ hình kết tập hợp mã nguồn tương ứng, chẳng hạn khai báo lớp, biểu thức Java, lược đồ sở liệu Mục đích kỹ thuật chuyển tiếp trì tương ứng chặt chẽ mơ hình thiếtkếđốitượng mã, để giảm số lượng lỗi sinh trình thực hiện, từ giảm cơng sức thực 42 Chuyển đổithiếtkế sang mã chương trình Kỹ thuật chuyển tiếp hình [30] mô tả kỹ thuật chuyển tiếp áp dụng cho lớp User (người dùng) lớp LeagueOwner (chủ giải thi đấu) Đầu tiên, lớp UML ánh xạ tới lớp Java Tiếp theo, mối quan hệ UML ánh xạ tới mở rộng lớp LeagueOwner Cuối cùng, thuộc tính mơ hình UML ánh xạ tới biến private lớp Java hai phương pháp public để thiết lập nhận giá trị Nhà phát triển tinh chỉnh kết việc chuyển đổi, ví dụ, để kiểm tra giá trị maxNumLeagues số nguyên dương 43 Chuyển đổithiếtkế sang mã chương trình 44 Tóm tắt Kiến trúc hệ thống phát sinh mã trình 6.1 Kiến trúc hệ thống 6.2 Biểu đồ thành phần 6.3 Biểu đồ triển khai 6.4 Chuyển đổithiếtkế sang mã chương trình 45 DISCUSSION – CÂU HỎI https://sites.google.com/site/daonamanhedu/teac hing/objectorientedanalysisanddesign 46 ... Trình Phân Tích Và Thiết Kế Hướng Đối Tượng, Đại học Điện lực, 2013 CONTENT – NỘI DUNG Kiến trúc hệ thống phát sinh mã trình 6. 1 Kiến trúc hệ thống 6. 2 Biểu đồ thành phần 6. 3 Biểu đồ triển khai 6. 4... Hans-Erik Eriksson, Magnus Penker, Brian Lyons, David Fado, UML Toolkit, John Wiley & Sons Inc, 2003 Dương Kiều Hoa – Tơn Thất Hồ An, Phân tích thiết kế Hệ thống thông tin với UML, 20 06 Đào Nam Anh, ... tả số hướng nhìn, hướng nhìn xét tập trung vào khía cạnh cụ thể hệ thống Bức tranh hoàn chỉnh hệ thống thực cách xác định tất hướng nhìn Trong UML, hướng nhìn thường định nghĩa sau: Hướng nhìn