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

CHAPTER 7 INTRODUCTION TO UML SOFTWARE ARCHITECTURE

10 2 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Introduction to UML & Software Architecture
Trường học Vietnam National University, Hanoi
Chuyên ngành Software Architecture
Thể loại Lecture Note
Năm xuất bản 2022
Thành phố Hanoi
Định dạng
Số trang 10
Dung lượng 10,59 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

CHAPTER 7 INTRODUCTION TO UML SOFTWARE ARCHITECTURE 1

Trang 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 hoá phần mềm, diễn đạt dưới 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 năng

Phân tích thiết kế mô hình hóa phần mềm, diễn đạt dưới dạng mô hình

Model

Trang 2

Use-case models.

Class models

Object models

Relationship models

Các loại model:

Text

Diagrams

Pictures

Conceptual model of UML

Class Diagram

Trang 3

Một số quan hệ giữa các class trong UML

Hôm nay tôi sẽ trình bày về các loại quan hệ giữa các class

trong UML, gồm có các 4 quan hệ chính sau Realization

Generation Dependency Association: có 2 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ệ giữa UML

Dependency:

Generalization:

Association:

Multiplicity:

Aggregation: Mất phòng còn bàn ghế

Composition:

Software Architecture

Ý tưởng về kiến trúc phần mềm cũng giống như 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 ra nhiều phần giúp phần mềm có thể:

Trang 4

Thu 30/06/2022

Software Component

Các API, Library,… là một software component

Các component có thể chạy trên cùng 1 tiến trình

❓ List methods to connect components in software

Để kết nối các component với nhau thì sử dụng các cách như:

Sử dụng Database làm trung gian

Sử dụng Method call

Sử dụng dịch vụ của bên thứ 3

Why we need to have Architecture?

Kiến trúc là một thành phần quan trọng để trưởng dự án có thể dựa vào đó mà

tuyển người

Các thành phần được chạy trên 1 máy thì việc bảo mật sẽ dễ dàng hơn ở nhiều máy

vì nhiều máy phải thông qua mạng (dễ bị tấn công hơn)

Chúng ta phân rã ra nhiều thành phần độc lập với nhau sẽ giúp dễ bảo trì vì khi đó

chúng ta chỉ sửa chữa thay thế những phần bị lỗi mà không cần quan tâm đến

những phần khác

Chia nhỏ các tiến trình khiến tốc độ chạy chậm hơn vì

Performance

❓ Hai mô hình sau mô hình nào chạy nhanh hơn?

Trang 5

Availability - Khả năng đáp ứng

Bao gồm các thành phần và cơ chế dự phòng để chịu lỗi

Fine - grained và Coarse - grained.

Trang 6

Khi mà duplicate thì sẽ xảy ra cần phải đồng bộ hóa dữ liệu trên nhiều máy Đây

cũng là một vấn đề khá nan giải trong việc phát triển phần mềm

VD: Chia nhỏ ra nhiều máy chủ để khi có nhiều người truy cập vào máy hệ thống sẽ

không bị sập hoàn toàn

Maintainability

Sử dụng fine-grain, các thành phần có thể thay thế được

Architectural Design Decisions

Việc quyết định kiến trúc phần mềm rất quan trọng cho tương lai của phần mềm

Nếu sử dụng kiến trúc không tốt thì phần mềm có thể bị “đập bỏ”

Việc chọn một framework cũng nên được cân nhắc để có thể dễ dàng đáp ứng

được những thay đổi trong 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

Trang 7

Sub-systems and Modules

Three-tier architecture.

Trang 8

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 thì ứng dụng sẽ tách mã nguồn ra nhiều thành phần riêng biệt Khi nó chạy

sẽ tạo ra những đối tượng nằm trong component

Cái object chỉ tồn tại khi ứng dụng chạy

Cái package tồn tại khi mình lập trình, dù ứng dụng có chạy hay không

Architecture Diagram:

Đi theo hướng Logical view thì phải chú ý Client

Software Architecture

Phần mềm bao gồm những cái thành phần gì và sự liên kết/tương tác giữa cá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 và đường

Trang 9

💡 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 quyết yêu cầu phi chức năng: bảo trì, đảm bảo an toà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ả năng sử dụng lại cao

Phân rã nhiều thành phần mang tính độc lập cao thì dễ bảo trì

Architecture affects non-functional

requirements

Performance

Chạy nhanh hơn Fine-grain components: Chia nhỏ các thành phần

💡 Course-grain components: Không chia nhỏ các thành phần

Trang 10

Layered architecture with critical assets (tài sản tài nguyên) Safety

Localize safety-critical features (Địa phương hoá) Availability (Khả năng đáp ứng)

Balancing Maintainability

Fine-grain, replaceable components

Architectural conflicts

Sử dụng large-grain giảm maintainability

Tăng khả năng đáp ứng nhưng security khó hơn (giải pháp là duplicate dữ liệu

khác nhau)

Vấn đề đồng bộ hoá trên các 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 được ghi lại

Sub-systems and Modules

Hệ thống con

Không chạy cùng với lại ứng dụng

Ví dụ: Google Maps Module (Component)

Chạy cùng với lại ứng dụng, không chạy độc lập

Ví dụ: UI Component

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

TỪ KHÓA LIÊN QUAN