chủ đề 6 - hienlth.weebly.comsoftware engneering –chapter 06 - 21 hienlth web service •thư...

43
Software Engneering Chapter 06 - 1 HIENLTH Chủ đề 6: Thiết kế Tổng thể, Deployment Diagram

Upload: others

Post on 28-Jan-2021

0 views

Category:

Documents


0 download

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