Báo cáo tiểu luận nhóm môn Kiến Trúc Và Thiết Kế Phần Mềm

33 166 0
Báo cáo tiểu luận nhóm môn 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

Báo cáo tiểu luận nhóm môn Kiến Trúc Và Thiết Kế Phần Mềm, bài báo cáo này sẽ giúp các bạn đang học môn Kiến Trúc Và Thiết Kế Phần Mềm tham khảo và hoàn thành tốt bài tiểu luận của mình. Chúc các bạn báo cáo thành công và đạt được điểm cao ở môn học này.

MỤC LỤC MỤC LỤC CHƯƠNG CƠ SỞ LÝ THUYẾT .1 1.1 Khái niệm kiến trúc phần mềm 1.2 Khái niệm mơ hình MVVM 1.2.1 Cấu trúc 1.2.2 Ưu điểm, Nhược điểm MVVM 1.3 Mơ hình MVC .5 1.3.1 Tổng quan kiến trúc MVC .5 1.3.2 Mơ hình MVC thành phần bên MVC 1.3.3 Ưu điểm nhược điểm kiến trúc MVC 1.4 Mơ hình MVP 10 1.5 So sánh ưu nhược điểm MVC MVP MVVM 11 CHƯƠNG TÀI LIỆU KIẾN TRÚC PHẦN MỀM 13 2.1 Giới thiệu 13 2.1.1 Mục tiêu 13 2.1.2 Phạm vi: 13 2.1.3 Định nghĩa, từ viết tắt 14 2.1.4 Tổng quan tài liệu .14 2.2 Đại diện kiến trúc 14 2.3 Các mục tiêu ràng buộc kiến trúc 14 2.4 Khung nhìn kiến trúc 14 2.5 Kiểu kiến trúc 15 2.6 Tiến trình kiến trúc 16 2.7 Khung nhìn Use case 18 2.8 Khung nhìn logic 18 2.9 Khung nhìn quy trình 19 2.9.1 Biểu đồ trình tự đăng ký 19 2.9.2 Biểu đồ trình tự đăng nhập .19 2.9.3 Biểu đồ trình tự khách hàng thêm đồ uống vào giỏ hàng: 20 2.9.4 Biểu đồ trình tự khách hàng đặt đồ uống: 20 2.10 Khung nhìn phát triển - triển khai 21 2.11 Khung nhìn vật lý 21 2.12 Kích cỡ hiệu suất 21 2.12.1 Chất lượng 21 CHƯƠNG DEMO APP ĐẶT ĐỒ UỐNG 23 3.1 Giao diện đăng nhập 23 3.2 Giao diện trang chủ 24 3.3 Giao diện giỏ hàng .25 3.4 Giao diện thông tin đặt đồ uống 26 3.5 Giao diện thông tin địa giao đồ uống .27 3.6 Giao diện thông tin cá nhân 28 KẾT LUẬN .29 TÀI LIỆU THAM KHẢO 30 CHƯƠNG CƠ SỞ LÝ THUYẾT 1.1 Khái niệm kiến trúc phần mềm Kiến trúc phần mềm đóng vài trị quan trọng vòng đời phát triển phần mềm Các thiết kế kiến trúc cung cấp một thiết kế (Blueprint) hướng dẫn để phát triển hệ thống phần mềm dựa đặc tả phân tích yêu cầu Thiết kế kiến trúc thân định sớm có tác động định đến thành công cuối sản phẩm phần mềm Thiết kế cho thấy thành phần hệ thống cấu trúc cách chúng hoạt động Một thiết kế kiến trúc phải bao gồm yêu cầu chức phi chức phần mềm Nó phục vụ kế hoạch đánh giá thực để phát triển phần mềm cải tiến phần mềm Nhiều nhà nghiên cứu giải thích kiến trúc phần mềm, họ có quan điểm khác cách trình bày tốt kiến trúc hệ thống phần mềm Khơng có cách giải thích sai; kiến trúc có giá trị riêng Định nghĩa Bass L, cộng nắm giữ điểm cốt yếu mà kiến trúc phần mềm đòi hỏi: “Kiến trúc phần mềm chương trình hệ thống tính toán cấu trúc cấu trúc hệ thống đó, gồm thành phần phần mềm, thuộc tính trơng thấy từ bên ngồi thành phần này, mối quan hệ chúng.” (Bass, Clements, Kazman) Một định nghĩa khác Kiến trúc phần mềm đưa bởi: Philippe Kruchten, Grady Booch, Kurt Bittner, Rich Reitman bắt nguồn tinh chỉnh định nghĩa kiến trúc dựa tác phẩm Mary Shaw David Garlan (Shaw and Garlan 1996) Định nghĩa họ là: "Kiến trúc phần mềm bao gồm loạt định quan trọng việc tổ chức hệ thống phần mềm bao gồm việc lựa chọn yếu tố cấu trúc giao diện chúng cách tạo hệ thống; hành vi xác định hợp tác yếu tố đó; thành phần yếu tố cấu trúc hành vi vào hệ thống lớn hơn; mẫu kiến trúc hướng dẫn tổ chức Kiến trúc phần mềm bao hàm chức năng, khả sử dụng, khả phục hồi, hiệu năng, tái sử dụng, tính dễ hiểu, ràng buộc kinh tế công nghệ, cân mối quan tâm thẩm mỹ " Hay “Kiến trúc phần mềm tập hợp định mà làm không nguyên nhân làm cho dự án bạn thất bại” (Eoin Woods) IEEE Std (Standard) 1471 định nghĩa kiến trúc hệ thống “tổ chức hệ thống thể phần tử nó, mối quan hệ chúng với với môi trường nguyên tắc hướng dẫn thiết kế phát triển nó” (Maier, Emery, Hilliard) Theo Martin Fowler số chủ đề phổ biến giải thích kiến trúc sau: việc phân rã hệ thống mức cao thành phận, định khó thay đổi, nhiều kiến trúc hệ thống, thay đổi vịng đời hệ thống… Trong định nghĩa này, phần tử kiến trúc mơ-đun, hệ thống con, đối tượng, phần mềm nhị phân (binary) thành phần DLL, thành phần JavaBean, EJB, CORBA, web, chí hệ thống Trong sách này, sử dụng “phần tử - element” để đơn vị chung kiến trúc phần mềm, sử dụng “thành phần - component” làm từ đồng nghĩa thảo luận liên quan đến kiến trúc phần mềm 1.2 Khái niệm mơ hình MVVM MVVM khơng phải framework hay thư viện, api… đơn hướng dẫn bạn định nghĩa cấu trúc ứng dụng bạn MVVM phát triển dựa kiến trúc MVP Mơ hình MVVM cho phép tách biệt liệu (Model), mã thực thi (logic hay ViewModel) giao diện người dùng (View) Trong mơ hình truyền thống, thường xử lý kiện Click viết mã thực thi trực tiếp Button với mơ hình MVVM khơng cho phép làm điều Trong mơ hình MVVM, điều khiển(control) Button, ListView, SearchBar, v.v kết buộc trực tiếp đến liệu mà phải thông qua thuộc tính Command – thuộc tính kiểu ICommand 1.2.1 Cấu trúc View: Thành phần giao diện ứng dụng View thành phần mà người dùng tương tác chương trình, thành phần mơ tả liệu Một điểm khác biệt so với mơ hình khác View mơ hình thực hành vi phản hồi lại người dùng thông qua tính là: binding, command Model: Cũng tương tự mơ hình MVC Model đối tượng giúp truy xuất thao tác liệu thực ViewModel: Lớp trung gian View Model ViewModel xem thành phần thay cho Controller mơ hình MVC Nó chứa mã lệnh cần thiết để thực data binding, command Cấu trúc thư mục MVVM Thông thường sử dụng với MVVM nên tạo thư mục chứa file code liên quan Views Trong thư mục Views file giao diện Và file giao diện có class code-behind kèm Đặc biệt file code-behind ta không sử dụng đến, điều cần làm chuyển xuống class ViewModel Models Trong thư mục Models tạo class chứa data liên kết validation, logic nghiệp vụ để chắc tính tồn vẹn data, bạn tách thư mục Repositories khác Chúng dùng phần mơ hình MVVM ViewModels Tương tự ta tạo thư mục ViewModels Thơng thường file giao diện ta tạo class ViewModels tương ứng (có đơi lúc ta tạo nhiều class phụ giúp tinh giản file code gọi chúng class ViewModels chính) Data Binding (ràng buộc liệu) Data Binding kĩ thuật dùng để tạo gắn kết phần giao diện (UI) liệu thông qua phần business logic Nhờ Data Binding, UI tự động cập nhật lại để hiển thị thay đổi liệu Ngoài ra, Data Binding WPF hỗ trợ chiều khác nhau, nghĩa thay đổi cập nhật từ UI vào liệu Kĩ thuật binding mơ hình mvvm thực bước tiến mới, thỏa mãn điều mà hầu hết lập trình viên mong đợi Nếu tìm hiểu tính này, bạn khơng ngạc nhiên nhiều người nói data binding thành phần cốt lỗi tạo nên chế hoạt động WPF Bạn binding liệu nguồn đích từ đối tượng nào: cửa sổ, control đơn giản TextBlock usercontrol phức tạp Tất thực cách dễ dàng, nhanh chóng, hiệu khơng cần dùng đến dịng code-behind (C#, VB.NET, …) Data Template kĩ thuật dùng để tạo khuôn mẫu giao diện Template áp dụng cho Control Một template WPF xác định cách thức cấu trúc mà liệu control hiển thị hình Nói riêng Data Template, chức giúp cho liệu (thuộc dạng nonvisual) gắn vào cấu trúc bao gồm nhiều thành phần có khả hiển thị Và đó, liệu hiển thị lên cửa sổ cách trực quan theo ý muốn lập trình viên Cũng Data Binding, tính không yêu cầu bạn phải biết code-behind ứng dụng Data Binding Data Template wpf giúp cho người dùng thấy có liệu cập nhật lại liệu Tuy nhiên để nhận tương tác từ người dùng xử lý, WPF cung cấp tính gọi command Các command xem liệu cung cấp cho người dùng thông qua chức binding Một command binding cho phép bạn tùy ý xác định phương thức xử lý, phím tắt thao tác chuột để kích hoạt 1.2.2 Ưu điểm, Nhược điểm MVVM Ưu điểm:  MVVM tạo tương tác hiệu designer developer  Tăng khả sử dụng lại thành phần hay việc thay đổi giao diện chương trình mà khơng cần thiết phải viết lại code nhiều  Thể tính chun nghiệp lập trình, phân tích thiết kế Do chia thành thành phần độc lập nên giúp phát triển ứng dụng nhanh, đơn giản, dễ nâng cấp, bảo trì… Nhược điểm:  Đối với dự án nhỏ việc áp dụng mơ hình MVVM gây cồng kềnh, tốn thời gian trình phát triển Tốn thời gian trung chuyển liệu thành phần  Đối với dự án lớn hơn, gây khó khăn thời gian để thiết kế ViewModel  Việc liên kết liệu cho tất thành phần gây khó khăn việc debug sở liệu phức tạp 1.3 Mơ hình MVC 1.3.1 Tổng quan kiến trúc MVC Mơ hình kiến trúc MVC tồn từ lâu kỹ thuật phần mềm Hầu hết nhà phát triển Web quen thuộc với kiến trúc MVC áp dụng rộng rãi cho thiết kế ứng dụng tương tác trang web máy chủ mua sắm trực tuyến, khảo sát, đăng ký sinh viên nhiều hệ thống dịch vụ tương tác khác Kiến trúc MVC sử dụng đặc biệt ứng dụng mà giao diện người dùng dễ bị thay đổi liệu Kiến trúc tách phần trình bày tương tác khỏi liệu hệ thống Kiến trúc lần giới thiệu Smalltalk-80 Theo Glenn Krasner Stephen Pope (1988), hệ thống cấu trúc thành ba thành phần logic Model, View Controller tương tác với Model: cấu phần mơ hình quản trị liệu hệ thống (bao gồm thao tác liệu) View (hiển thị): xác định quản lý cách liệu trình bày cho người dùng Thành phần đảm nhận việc hiển thị thông tin, tương tác với người dùng, nơi chứa tất đối tượng GUI textbox, button, images… Ví dụ: View ASP.NET MVC HTML, CSS số cú pháp đặc biệt (cú pháp Razor) giúp dễ dàng giao tiếp với mơ hình điều khiển Controller - Bộ điều khiển: quản lý tương tác người dùng Thông thường, Controller nhận yêu cầu sau chuyển tương tác đến View Model Các mơ hình đồ họa kiến trúc liên kết với mẫu MVC thể Hình 1.1 1.2 Chúng trình bày kiến trúc từ khung nhìn khác — Hình 4.1 khung nhìn khái niệm Hình 1.2 cho thấy kiến trúc thời gian chạy có mơ hình sử dụng để quản lý tương tác hệ thống dựa web 1.3.2 Mơ hình MVC thành phần bên MVC Hình 1.1 mơ tả mẫu Model-View-Controller tiếng Mơ hình sở quản lý tương tác nhiều hệ thống dựa web Hình 1.1 Tổ chức mơ hình MVC Hình 1.2 Kiến trúc ứng dụng Web sử dụng mẫu kiến trúc MVC Hình 1.3 mơ tả biểu đồ trình tự cho kiến trúc MVC chung Sau máy khách khởi động ứng dụng MVC, Controller khởi tạo Model View, đồng thời gắn View vào Model (điều gọi đăng ký với Model) Sau đó, Contrroller chặn yêu cầu người dùng trực tiếp từ dòng lệnh thông qua giao diện View chuyển tiếp yêu cầu tới Model để cập nhật liệu Model Các thay đổi Model kích hoạt Model thơng báo cho tất người nghe đính kèm đăng ký tất thay đổi giao diện View cập nhật • Model Cũng tương tự mơ hình MVC Model đối tượng giúp truy xuất thao tác liệu thực • View tương tự mơ hình MVC, View phần giao diện ứng dụng để hiển thị liệu nhận tương tác người dùng Một điểm khác biệt so với ứng dụng truyền thống View mơ hình tích cực Nó có khả thực hành vi phản hồi lại người dùng thơng qua tính binding, command • ViewModel - Lớp trung gian View Model ViewModel xem thành phần thay cho Controller mơ hình MVC Nó chứa mã lệnh cần thiết để thực data binding, command 2.6 Tiến trình kiến trúc App đặt đồ uống tuân thủ theo quy trình hợp lý (RUP), với mục tiêu cho phép sản xuất phần mềm chất lượng đáp ứng nhu cầu người dùng cuối lịch trình ngân sách dự đốn RUP trình lặp lặp lại chia thành bốn giai đoạn: inception (thiết lập trường hợp kinh doanh dự án), elaboration( thiết lập kế hoạch dự án kiến trúc hệ thống), construction ( triển khai hệ thống) transition ( triển khai hệ thống) Mỗi lần lặp lập kế hoạch riêng Kế hoạch lặp chuẩn bị bắt đầu lần lặp Nó cung cấp mô tả tiết hoạt động thực hiện, định nghĩa công nhân, xác định thành phẩm tạo Mỗi lần lặp tạo số 16 phát hành kiểm thử, mà tiến dần đến sản phẩm cuối Các thành phẩm theo dạng sau: - Phần mềm làm việc - Các mơ hình (Mơ hình UC, mơ hình Đối tượng, ), thường mơ tả UML - Các tài liệu (Tài liệu yêu cầu stakeholder, tài liệu trực quan, tài liệu UC, ) Mỗi đánh giá lần lặp tạo kết thúc lần lặp để phân tích liệu mục tiêu có thỏa mãn khơng Sau sáu thực hành tốt hình thành tảng cho RUP: - Phát triển phần mềm lặp - Quản lý yêu cầu - Sử dụng kiến trúc dựa thành phần - Mơ hình phần mềm trực quan (với ULM) - Thẩm định chất lượng liên tục (điều gồm việc kiểm tra khơng sản phẩm cuối mà cịn kiểm tra chất lượng yêu cầu, mã nguồn, thiết kế, kế hoạch dự án, thành phần khác hoạt động phát triển hệ thống) - Quản lý thay đổi (điều bao gồm quản lý hoạt động quản lý cấu hình – quản lý tiến trình thay đổi thành phần bi thay đổi) 17 ... triển phần mềm cải tiến phần mềm Nhiều nhà nghiên cứu giải thích kiến trúc phần mềm, họ có quan điểm khác cách trình bày tốt kiến trúc hệ thống phần mềm Khơng có cách giải thích sai; kiến trúc. .. cốt yếu mà kiến trúc phần mềm đòi hỏi: ? ?Kiến trúc phần mềm chương trình hệ thống tính tốn cấu trúc cấu trúc hệ thống đó, gồm thành phần phần mềm, thuộc tính trơng thấy từ bên ngồi thành phần này,... 28 KẾT LUẬN .29 TÀI LIỆU THAM KHẢO 30 CHƯƠNG CƠ SỞ LÝ THUYẾT 1.1 Khái niệm kiến trúc phần mềm Kiến trúc phần mềm đóng vài trị quan trọng vòng đời phát triển phần mềm

Ngày đăng: 21/02/2023, 10:56

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

Tài liệu liên quan