1. Trang chủ
  2. » Công Nghệ Thông Tin

CHAPTER 7 INTRODUCTION TO UML SOFTWARE ARCHITECTURE

10 0 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

CHAPTER 7 INTRODUCTION TO UML SOFTWARE ARCHITECTURE 1

󾠴 CHAPTER 7: INTRODUCTION TO UML & SOFTWARE ARCHITECTURE Ngôn ngữ mơ hình hóa Phân tích thiết kế mơ hình hố phần mềm, diễn đạt dạng hình vẽ biểu đồ Visualizing (Trực quan hoá vấn đề) Specifying (Đặc tả hoá) Constructing (Cấu trúc hoá) Documenting (Tài liệu hoá) Chức Phân tích thiết kế mơ hình hóa phần mềm, diễn đạt dạng mơ hình Model Giữ lại nội dung bản, bỏ thứ không cần thiết Có nhiều kiểu mơ hình: Process models CHAPTER 7: INTRODUCTION TO UML & SOFTWARE ARCHITECTURE Use-case models Class models Object models Relationship models Các loại model: Text Diagrams Pictures Conceptual model of UML Class Diagram CHAPTER 7: INTRODUCTION TO UML & SOFTWARE ARCHITECTURE Một số quan hệ class UML Hơm tơi trình bày loại quan hệ class UML, gồm có quan hệ sau Realization Generation Dependency Association: có quan hệ phân biệt https://votanlanh.wordpress.com/2017/08/08/mot-so-quan-h e-giua-cac-class-trong-uml/ Các thành phần chính: Classes Interface Relationships Common mechanisms Các quan hệ UML Dependency: Generalization: Association: Multiplicity: Aggregation: Mất phòng bàn ghế Composition: Software Architecture Ý tưởng kiến trúc phần mềm giống kiến trúc phần cứng Với phần mềm phải chia chạy nhiều máy Architecture Design (High-level design) Detailed Design (Low-level design) Việc chia phần mềm nhiều phần giúp phần mềm có thể: Dễ dàng tái sử dụng Dễ dàng gia công Dễ dàng việc bảo trì CHAPTER 7: INTRODUCTION TO UML & SOFTWARE ARCHITECTURE Thu 30/06/2022 Software Component ❓ What is software component? Các API, Library,… software component Các component chạy tiến trình ❓ List methods to connect components in software Để kết nối component với sử dụng cách như: Sử dụng Database làm trung gian Sử dụng Method call Sử dụng dịch vụ bên thứ Why we need to have Architecture? Kiến trúc thành phần quan trọng để trưởng dự án dựa vào mà tuyển người Các thành phần chạy máy việc bảo mật dễ dàng nhiều máy nhiều máy phải thơng qua mạng (dễ bị công hơn) Chúng ta phân rã nhiều thành phần độc lập với giúp dễ bảo trì sửa chữa thay phần bị lỗi mà không cần quan tâm đến phần khác Chia nhỏ tiến trình khiến tốc độ chạy chậm Performance ❓ Hai mơ hình sau mơ hình chạy nhanh hơn? CHAPTER 7: INTRODUCTION TO UML & SOFTWARE ARCHITECTURE Fine - grained Coarse - grained Availability - Khả đáp ứng Bao gồm thành phần chế dự phòng để chịu lỗi Phải duplicate liệu tất máy chủ để đảm bảo việc không bị thông tin người dùng CHAPTER 7: INTRODUCTION TO UML & SOFTWARE ARCHITECTURE Khi mà duplicate xảy cần phải đồng hóa liệu nhiều máy Đây vấn đề nan giải việc phát triển phần mềm VD: Chia nhỏ nhiều máy chủ để có nhiều người truy cập vào máy hệ thống không bị sập hồn tồn Maintainability Sử dụng fine-grain, thành phần thay Architectural Design Decisions Việc định kiến trúc phần mềm quan trọng cho tương lai phần mềm Nếu sử dụng kiến trúc không tốt phần mềm bị “đập bỏ” Việc chọn framework nên cân nhắc để dễ dàng đáp ứng thay đổi tương lai ⇒ Rationale behind design decisions are commonly undocumented Example of design decision Issue: system has to be maintainable Decision: three-tier architecture, using Object-Oriented Language CHAPTER 7: INTRODUCTION TO UML & SOFTWARE ARCHITECTURE Three-tier architecture Sub-systems and Modules A sub-system Is a system in its own right CHAPTER 7: INTRODUCTION TO UML & SOFTWARE ARCHITECTURE Its operation is independent of the services provided by other sub-systems Example: Google maps embedded in an app A module (component) Is a component that provides services to other components but would not normally be considered as a separate system Example: UI component on your website Khi chạy ứng dụng tách mã nguồn nhiều thành phần riêng biệt Khi chạy tạo đối tượng nằm component Cái object tồn ứng dụng chạy Cái package tồn lập trình, dù ứng dụng có chạy hay khơng Architecture Diagram: Đi theo hướng Logical view phải ý Client Software Architecture Phần mềm bao gồm thành phần liên kết/tương tác thành phần (Components) Architecture design Quá trình thiết kế kiến trúc phần mềm Architectural design (High-level design) Detailed design (Low-level design) Presenting Architecture Sử dụng hộp đường CHAPTER 7: INTRODUCTION TO UML & SOFTWARE ARCHITECTURE 💡 What is software component? Piece of software that provide other purpose of the software Mỗi component có service VD: Databases, API, Libraries, Frontend List methods to connect components in software? HTTP, TCP/IP, SOAP, Socket I/O, Database, Method call, Function call, Broker, Remote Why we need to have architecture? Stakeholder communcation Kiến trúc dùng để tuyển người, yêu cầu System analysis Giải yêu cầu phi chức năng: bảo trì, đảm bảo an tồn bảo mật, chạy phân tán Large-scale reuse Sử dụng lại nhiều nơi khác nhau, nhiều ứng dụng khác nhau, khả sử dụng lại cao Phân rã nhiều thành phần mang tính độc lập cao dễ bảo trì Architecture affects non-functional requirements Performance Chạy nhanh Fine-grain components: Chia nhỏ thành phần 💡 Course-grain components: Không chia nhỏ thành phần Security CHAPTER 7: INTRODUCTION TO UML & SOFTWARE ARCHITECTURE Layered architecture with critical assets (tài sản tài nguyên) Safety Localize safety-critical features (Địa phương hoá) Availability (Khả đáp ứng) Balancing Maintainability Fine-grain, replaceable components Architectural conflicts Sử dụng large-grain giảm maintainability Tăng khả đáp ứng security khó (giải pháp duplicate liệu khác nhau) Vấn đề đồng hoá database Localizing safety-related features giảm performance Architectural design decisions Thay đổi nhiều Mang tính quan trọng cho tương lai Cơ sở lí luận khơng ghi lại Sub-systems and Modules Hệ thống Không chạy ứng dụng Ví dụ: Google Maps Module (Component) Chạy ứng dụng, không chạy độc lập Ví dụ: UI Component CHAPTER 7: INTRODUCTION TO UML & SOFTWARE ARCHITECTURE 10

Ngày đăng: 05/05/2023, 11:01

Xem thêm:

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN