chủ đề 6 - hienlth.weebly.comsoftware engneering –chapter 06 - 21 hienlth web service •thư...
TRANSCRIPT
-
Software Engneering – Chapter 06 - 1 HIENLTH
Chủ đề 6:
Thiết kế Tổng thể, Deployment Diagram
-
Software Engneering – Chapter 06 - 2 HIENLTH
Kỹ thuật Thiết kế
• Thiết kế đặc tả đi đến kỹ thuật cốt lõi của tiến trình của công nghệ phần mềm vàđược cung cấp xem xét những mô hình của tiến trình phần mềm được sử dụng.
• Thiết kế phần mềm là bước đầu tiên trong ba hoạt động kỹ thuật - thiết kế, phátsinh mã nguồn, và thử nghiệm - đó là những yêu cầu trong xây dựng và phát triển phần mềm.
-
Software Engneering – Chapter 06 - 3 HIENLTH
Nội dung thiết kế
• Thiết kế kiến trúc
– Phân rã hệ thống thành các mô đun, hệ thống con
– Xác định tương tác (giao diện) giữa các mô đun
• Thiết kế dữ liệu
– Xây dựng mô hình để biểu diễn thông tin
• Thiết kế giao diện
• Thiết kế xử lý
– Xác định các bước thực hiện
– Bao gồm thủ tục, thuật toán
-
Software Engneering – Chapter 06 - 4 HIENLTH
Thiết kế kiến trúc
• Sử dụng biểu đồ cấu trúc (structure chart), mô tả:
– Cái nhìn tổng thể về hệ thống
– Mối quan hệ giữa các mô đun
– Giao diện giữa các mô đun
Chưa cần chỉ ra:
– Thứ tự thực hiện
– Số lần thực hiện
– Chi tiết thiết kế
-
Software Engneering – Chapter 06 - 5 HIENLTH
Nội dung
• Khái niệm kiến trúc
• Các bước thiết kế
• Các mô hình kiến trúc
• Công nghệ phân tán
-
Software Engneering – Chapter 06 - 6 HIENLTH
Khái niệm kiến trúc
• Kiến trúc phần mềm là gì?
– Phần mềm không đơn nhất
Có các thành phần con bên trong.
– Thắc mắc về các thành phần con:
• Được tổ chức, sắp xếp như thế nào?
• Mối liên hệ giữa chúng?
• Có cấu trúc ra sao?
Kiến trúc phần mềm.
-
Software Engneering – Chapter 06 - 7 HIENLTH
Kiến trúc phần mềm
• Là các cấu trúc của hệ thống được tạo nên bởi:
– Các thành phần
– Các thuộc tính của từng thành phần có thể thấy từ bên ngoài
– Mối quan hệ giữa các thành phần
-
Software Engneering – Chapter 06 - 8 HIENLTH
Khái niệm kiến trúc (tt)
• Tầm quan trọng của kiến trúc:
– Ảnh hưởng của hiệu quả hoạt động:• Tính tốc độ (performance)
• Tính thích ứng (scalability)
• Tính bảo mật (security)
• Tính chịu lỗi (fault—tolerance)
– Ảnh hưởng về chi phí:• Khả năng triển khai
• Khả năng vận hành
• Khả năng bảo trì
– Ảnh hưởng về thiết kế và cài đặt.
-
Software Engneering – Chapter 06 - 9 HIENLTH
Khái niệm kiến trúc (tt)
• Thiết kế kiến trúc:
– Hoạt động đầu tiên của pha thiết kế
– Xác định khung sườn phần mềm
– Các bước thực hiện:
• Phân rã hệ thống (sub-system)
• Bố trí các thành phần
• Thiết lập mối quan hệ
-
Software Engneering – Chapter 06 - 10 HIENLTH
Khái niệm kiến trúc (tt)
• Thiết kế kiến trúc:
– Hoạt động đầu tiên của pha thiết kế
– Xác định khung sườn phần mềm
– Các bước thực hiện:
• Phân rã hệ thống (sub-system)
• Bố trí các thành phần
• Thiết lập mối quan hệ
-
Software Engneering – Chapter 06 - 11 HIENLTH
Các bước thiết kế kiến trúc
1. Cấu trúc hóa hệ thống
– Phân chia hệ thống thành các hệ con (sub-system) độc lập và xác định trao đổi thông tin giữa các hệ con.
2. Mô hình hóa điều khiển
– Xác lập mô hình điều khiển giữa các thành phần hệ thống
3. Phân rã mô đun
– Phân rã các hệ con thành các mô đun
-
Software Engneering – Chapter 06 - 12 HIENLTH
Các mô hình kiến trúc
• Phân loại mô hình:
– Mô hình đơn lập
– Mô hình phân tán
• Mô hình Client – Server
• Mô hình 3 tầng
• Mô hình Peer-To-Peer
-
Software Engneering – Chapter 06 - 13 HIENLTH
Mô hình đơn lập
• Là một thể thống nhất
• Không có sự phân nhóm
• Các thành phần tự do tương tác
• Ưu điểm:
– Dễ lập trình và triển khai
– Tốc độ xử lý
• Khuyết điểm:
– Khó bảo trì, nâng cấp
– Không chia sẽ dữ liệu
-
Software Engneering – Chapter 06 - 14 HIENLTH
Mô hình Client – Server
• Phân làm 2 phân hệ:
– Server:
• Cung cấp dịch vụ (dữ liệu, thư viện)
• Chia sẽ, dung chung
– Client:
• Sử dụng dịch vụ (giao diện, thư viện)
• Phân tán
• Tương tác giữa các thành phần:
– Trong phân hệ: tự do tương tác
– Giữa hai phân hệ: tương tác 1 chiều từ client đến server
-
Software Engneering – Chapter 06 - 15 HIENLTH
Mô hình Client – Server (tt)
• Mô hình Thin-Client:
– Server đảm trách dữ liệu + xử lý
– Client chỉ lo phần giao diện người dùng
dump terminal
• Mô hình Fat-Client:
– Server đảm trách dữ liệu
– Client lo toàn bộ giao diện + xử lý người dùng
-
Software Engneering – Chapter 06 - 16 HIENLTH
Mô hình Client – Server (tt)
• Ưu điểm:
– Dữ liệu chia sẽ và đồng bộ.
– Hạn chế tương tác
Cô lập lỗi
Dễ bảo trì, nâng cấp
• Khuyết điểm:
– Chi phí triển khai
– Tốc độ xử lý
-
Software Engneering – Chapter 06 - 17 HIENLTH
Mô hình 3 tầng (3-layer)
• Phân làm 3 phân hệ:
– Tầng dữ liệu (data layer)
• Dịch vụ dữ liệu
• Data center
– Tầng xử lý (business layer)
• Thư viện xử lý
• Application server
– Tầng giao diện (presentation layer)
• Giao diện người dung
• Thin-Client
• Quy tắc tương tác thang máy không tương
tác vượt tầng
-
Software Engneering – Chapter 06 - 18 HIENLTH
Mô hình Peer-to-Peer
• Là mô hình đơn lập phân tán
• Triển khai trên nhiều máy (node)– Các node tương tác được với nhau
– Mỗi node đóng vai trò client-server
– Chia sẽ dữ liệu + xử lý trên toàn bộ node
• Ưu điểm:– Không cần server trung tâm
– Không gian lưu trữ và khả năng xử lý dàn trải
– Dễ triển khai
• Nhược điểm:– Khó lập trình và quản lý dữ liệu
-
Software Engneering – Chapter 06 - 19 HIENLTH
Công nghệ phân tán
• Middleware
• Web Service
-
Software Engneering – Chapter 06 - 20 HIENLTH
Middleware
• Các thành phần trong hệ phân tán giao tiếp nhau như thế nào? hệ thống đứng giữa điều phối.
• Các chuẩn phổ biến:– CORBA (Common Object Request Broker
Architecture)– COM (Component Object Model)– JavaBeans
-
Software Engneering – Chapter 06 - 21 HIENLTH
Web Service
• Thư viện lập trình dựng sẵn
• Cung cấp dạng dịch vụ
• Truy xuất qua internet
• Các dịch vụ phổ biến:– Math services
– Google map
– Amazon service
• Các chuẩn giao tiếp XML:– SOAP (Simple Object Access Protocol)
– WSDL (Web Services Description Language)
– UDDI (Universal Description Discovery and Integration)
-
Software Engneering – Chapter 06 - 22 HIENLTH
Bài tập
Thiết kế kiến trúc cho đồ án môn học:
• Phân rã hệ thống
DS các thành phần con.
• Bố trí các thành phần
lựa chọn mô hình kiến trúc
sắp xếp các thành phần con vào mô hình
• Thiết lập mối quan hệ
-
Software Engneering – Chapter 06 - 23 HIENLTH
DEPLOYMENT DIAGRAM
-
Software Engneering – Chapter 06 - 24 HIENLTH
Deployment Diagrams
• Lược đồ triển khai (Deployment Diagram)mô tả kiến trúc cài đặt vật lý các thành phần bên trong hệ thống và tương tác giữa chúng, bao gồm kiến trúc phần cứng cũng như phần mềm.
• Lược đồ triển khai thường được sử dụng trong Deployment View.
-
Software Engneering – Chapter 06 - 25 HIENLTH
Deployment Diagram
• Một hệ thống có thể được triển khai theo nhiều lược đồ khác nhau:
– Hệ thống được triển khai trên máy đơn?
– Hệ thống được triển khai theo mô hình Client/Server?
– Hệ thống được triển khai tại văn phòng công ty? Các phòng ban?
– Yêu cầu phần cứng máy tính?
– ….
-
Software Engneering – Chapter 06 - 26 HIENLTH
Deployment Diagram
• Một hệ thống có thể được triển khai theo nhiều lược đồ khác nhau.
User A User B User CUser D
Server
Triển khai hệ thống LAN (1)
-
Software Engneering – Chapter 06 - 27 HIENLTH
Deployment Diagram
• Một hệ thống có thể được triển khai theo nhiều lược đồ khác nhau.
Triển khai hệ thống LAN – WLAN (2)
ServerWireless
Access Point
User A User B User C User D
Wireless Client
-
Software Engneering – Chapter 06 - 28 HIENLTH
Phương án triển khai
1. Các hạng mục thiết bịSTT Thiết bị SL Giá dự kiến
(USD)Thành
tiền (USD)Mục đích
1 Web Server 3 -Hosting Website
-01 server IIS (ASP.NET)
-01 Server Apache (PHP)
2 Database Server
-Lưu trữ database của các Website
-Hỗ trợ MS SQL Server và MySQL
3 Workstation (máy trạm)
Sử dụng IE, FireFox để truy cập hệ thống
4 Switch
Tổng
-
Software Engneering – Chapter 06 - 29 HIENLTH
Phương án triển khai
• Cấu hình/thông số kỹ thuật của từng thiết bị, ví dụ:
-
Software Engneering – Chapter 06 - 30 HIENLTH
Phương án triển khai
2. Các hạng bản quyền phần mềmSTT Tên phần mềm SL Giá dự kiến
(USD)Thành tiền
(USD)Mục đích
1 Windows Server 2008
-Hosting Website
-01 server IIS (ASP.NET)
-01 Server Apache (PHP)
2 SQL Server Stand/Ent 2008
-Lưu trữ database của các Website
-Hỗ trợ MS SQL Server và MySQL
3 Windows 7 Basic/Pro
Sử dụng IE, FireFox để truy cập hệ thống
4
Tổng
-
Software Engneering – Chapter 06 - 31 HIENLTH
Deployment Diagram•Một hệ thống có thể được triển khai theo nhiều lược đồ khác nhau.
ServerWireless
Access Point
User A User B User C User D
Wireless Client
Remote UserRemote
INTERNET
Triển khai hệ thống LAN – WLAN – WLAN (3)
-
Software Engneering – Chapter 06 - 32 HIENLTH
Ví dụ: Xét ứng dụng quản lý TKB
• Hệ thống cho phép bộ phận giáo vụ Khoa nhập thời khóa biểu, cập nhật thời khóa biểu của tất cả các lớp
• Hệ thống cho phép sinh viên tra cứu thời khóa biểu theo từng học kỳ của lớp
• Hệ thống cho phép giảng viên tra cứu thời khóa biểu giảng dạy trong học kỳ
-
Software Engneering – Chapter 06 - 33 HIENLTH
Ví dụ minh họa• Deployment diagram mô tả hệ thống quản lý thời khóa biểu
Database Server
SQL Server
Web Server
IIS ServerHệ thống quản lý TKB
SMS Server
SMS Service
SMSC Gateway
SMS Web Service
Client
Web Browser
Server QLGV
Hệ thống quản lý giáo vụ
-
Software Engneering – Chapter 06 - 34 HIENLTH
Các thành phần trong Deployment Diagram
• Node
• Component Instance
• Quan hệ giữa các thành phần
Node Name
IIS Server
Node A Node B
Node A
ComponentInstance_1
Node B
ComponentInstance_1
-
Software Engneering – Chapter 06 - 35 HIENLTH
Các thành phần trong Deployment Diagram
• Node– Là các tài nguyên trong hệ thống
– Mỗi Node tương ứng với một thiết bị phần cứng• Server
• PC
• Printer
• Scanner
• Router
• ….
– Mỗi Node có thể có nhiều component
-
Software Engneering – Chapter 06 - 36 HIENLTH
Các thành phần trong Deployment Diagram
• Component Instance
– Là một thể hiện của một component (trong component diagram) sẽ được cài đặt trong Node
– Thuộc tính của Component Instance
• Cardinality
• Component
IIS Server
Node_7
ComponentInstance_1
ComponentInstance_2
-
Software Engneering – Chapter 06 - 37 HIENLTH
Các thành phần trong Deployment Diagram
• Quan hệ giữa các thành phần
– Quan hệ giữa Node và Node
– Quan hệ giữa Node và Component Instance
– Quan hệ giữa Component Instance và Component Instance
• Các loại quan hệ
– Node Association
– Dependency
-
Software Engneering – Chapter 06 - 38 HIENLTH
Ví dụ minh họa
• Deployment diagram mô tả hệ thống quản lý thời khóa biểu
– Sử dụng mô hình Client server
– Sử dụng công nghệ Web (Asp.net)
– Sử dụng IIS Web sever 7
– Sử dụng trình duyệt (IE) version 8.0 trở lên
– Sử dụng CSDL SQL server 2005
– Sử dụng công nghệ nhắn tin di động SMS
-
Software Engneering – Chapter 06 - 39 HIENLTH
Ví dụ minh họa• Deployment diagram mô tả hệ thống quản lý thời khóa biểu
Database Server
SQL Server
Web Server
IIS ServerHệ thống quản lý TKB
SMS Server
SMS Service
SMSC Gateway
SMS Web Service
Client
Web Browser
Server QLGV
Hệ thống quản lý giáo vụ
-
Software Engneering – Chapter 06 - 40 HIENLTH
Ví dụ minh họa• Deployment diagram mô tả hệ thống quản lý thời khóa biểu
Web Server
IIS Server
Hệ thống quản lý TKB
Data Access
ADO.NET
Database Server
SQL Server
-
Software Engneering – Chapter 06 - 41 HIENLTH
Ví dụ minh họa• Deployment diagram mô tả hệ thống quản lý thời khóa biểu
Web Server
IIS Server
Hệ thống quản lý TKB
Data Access
ADO.NET
Report
Seagate Crystal ReportDatabase Server
SQL Server
-
Software Engneering – Chapter 06 - 42 HIENLTH
Bài tập
Sử dụng Power Designer để xây dựng lược đồ Deployment cho các bài sau:
• Quản lý giải bóng đá vô địch quốc gia
• Quản lý bình chọn bài hát hay Làn sóng xanh
• Quản lý giáo vụ trường đại học
• Quản lý giáo vụ trường phổ thông
• Quản lý bán hàng
• Quản lý nhân sự - Tiền lương
-
Software Engneering – Chapter 06 - 43 HIENLTH
Câu hỏi và thảo luận