1. Trang chủ
  2. » Luận Văn - Báo Cáo

MÔ HÌNH CẤU TRÚC TRONG PHÂN TÍCH THIẾT KẾ HỆ THỐNG

27 97 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 27
Dung lượng 0,96 MB

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

Nội dung

Trong phân tích, nhà phân tích xây dựng mô hình chức năng (functional models) để thể hiện hành vi của hệ thống. Đồng thời, nhà phân tích cần hiểu được những thông tin được sử dụng và sinh ra bởi hệ thống. Mô hình cấu trúc hay mô hình quan niệm (Structuralconceptual models) giúp mô tả kết cấu của dữ liệu phục vụ cho nghiệp vụ của tổ chức. Trong pha phân tích, mô hình cấu trúc trình bày sự tổ chức dữ liệu ở mức luận lý mà không quan tâm đến khía cạnh chi tiết kỹ thuật để thực hiện điều đó. Cụ thể, nó trình bày các đối tượng của hệ thống và mối quan hệ giữa chúng: con người (people), nơi chốn (places), đồ vật (things). Và nói một cách tổng quát, ở pha phân tích, ta xây dựng nên một mô hình cấu trúc và tiếp tục phát triển nó thành mô hình thiết kế bằng việc sử dụng: thẻ CRC, sơ đồ lớp và sơ đồ đối tượng.

Trang 1

3.1 Trách nhiệm và Cộng tác (Responsibilities and Collaborations) 7

Trang 2

Mục tiêu của bài

- Hiểu các quy tắc và chỉ dẫn về hình thức để tạo thẻ CRC, sơ đồ lớp và sơ đồ đối

tượng

- Hiểu các quy trình tạo thẻ CRC, sơ đồ lớp và sơ đồ đối tượng.

- Có thể vẽ thẻ CRC, sơ đồ lớp và sơ đồ đối tượng.

- Hiểu mối quan hệ giữa các mô hình cấu trúc và use case.

Trang 3

1 GIỚI THIỆU

Trong phân tích, nhà phân tích xây dựng mô hình chức năng (functional models) để thể

hiện hành vi của hệ thống Đồng thời, nhà phân tích cần hiểu được những thông tin được

sử dụng và sinh ra bởi hệ thống Mô hình cấu trúc hay mô hình quan niệm (Structural/conceptual models) giúp mô tả kết cấu của dữ liệu phục vụ cho nghiệp vụ của

tổ chức Trong pha phân tích, mô hình cấu trúc trình bày sự tổ chức dữ liệu ở mức luận lý

mà không quan tâm đến khía cạnh chi tiết kỹ thuật để thực hiện điều đó Cụ thể, nó trìnhbày các đối tượng của hệ thống và mối quan hệ giữa chúng: con người (people), nơi chốn(places), đồ vật (things)

Và nói một cách tổng quát, ở pha phân tích, ta xây dựng nên một mô hình cấu trúc và tiếptục phát triển nó thành mô hình thiết kế bằng việc sử dụng: thẻ CRC, sơ đồ lớp và sơ đồđối tượng

- Sau đó, mô hình được tinh chỉnh theo hướng kỹ thuật hơn để mô tả cơ sở dữ liệu và

tệp dữ liệu thực (tại các pha sau)

Và do mô hình câu trúc ở pha phân tích chỉ tập trung về mặt nghiệp vụ, cho nên mô hìnhtạo nên một bộ phận ngôn ngữ chung cho phép nhà phân tích hệ thống và người sử dụnggiao tiếp hiệu quả

Mục tiêu chính của nhà phân tích khi thực hiện việc mô hình hóa cấu trúc là khai phá đượcdữ liệu chính trong phạm vi được quan tâm (problem domain) và xây dựng nên mô hìnhcấu trúc của các đối tượng trong hệ thống giải pháp

Trang 4

2.1 Classes, Attributes, and Operations

- Lớp (classes): là định dạng tổng quát/khung sườn cho các thể hiện cụ thể hay các

đối tượng thuộc lớp (con người, nơi chốn, đồ vật) Các đối tượng của cùng 1 lớpgiống nhau về mặt cấu trúc, hành vi nhưng khác biệt về giá trị của các thuộc tính Có

2 loại lớp dùng trong phân tích: trừu tượng (“abstract”, có ích nhưng không có thực)

và cụ thể (“concrete/domain”, chỉ các đối tượng có thực)

(Minh họa cho tính trừu tượng)

- Thuộc tính (Attributes): những đặc tính giúp mô tả trạng thái của đối tượng

- Hoạt động (Operations, được chuyển thành methods ở các giai đoạn sau): những

hành động hay chức năng mà 1 lớp có thể thực hiện

2.2 Quan hệ (Relationships)

- Quan hệ (Relationships): mô tả cách thức các lớp quan hệ với nhau, hay còn được

gọi là cơ chế trừu tượng hóa dữ liệu

Trang 5

- 3 loại quan hệ cơ bản trong UML:

▪ Tổng quát hóa (generalization): cho phép việc kế thừa thuộc tính và hoạt

động của lớp khác, thể hiện mối quan hệ “loại” (a-kind-of relationship)

▪ Tổng hợp (aggregation): kết nối thành phần vào tổng thể, thể hiện mối quan

hệ “một phần của” (a-part-of relationship)

▪ Kết hợp (association): mối quan hệ hỗn hợp giữa các lớp hoặc một lớp và

chính nó, và là một dạng yếu của mối quan hệ tổng hợp

2.3 Một vài kỹ thuật nhận dạng đối tượng (Object Identification)

- Phân tích từ ngữ trong use case (Textual analysis of use-case information)

▪ Danh từ -> lớp (classes)

▪ Động từ -> hoạt động (operations)

▪ Đơn giản, giúp có được một bản trích ngang về danh sách các đối tượng

- Chi tiết:

Trang 6

- Phần mở rộng: Gây ý tưởng (Brainstorming) - người tham gia đề xuất ý tưởng

▪ Hình thành danh sách ban đầu của các lớp hay các đối tượng

▪ Tiếp theo, thuộc tính, hoạt động và mối quan hệ với các lớp khác được chỉđịnh

- Danh sách đối tượng thông dụng (Common Object Lists)

▪ Những thứ vật chất, hữu hình (physical/tangible things)

▪ Sự kiện (incidents/events)

▪ Những vai trò (roles)

▪ Những tương tác/giao dịch (interactions/ transactions)

- Patterns (tạm dịch, mẫu chuyên dụng/mang tính quy luật)

▪ Nhóm các lớp có quan hệ hữu dụng, có thể dùng lại, được áp dụng như là giảipháp cho các vấn đề phổ biến

▪ Các mẫu được phát triển cho phép tiếp cận công việc trong những phạm vitương tự

- Chi tiết:

Trang 7

3 CRC CARDS

3.1 Trách nhiệm và Cộng tác (Responsibilities and Collaborations)

Trách nhiệm của một lớp có thể được chia thành hai loại riêng biệt: biết và làm (knowing and doing).

- Knowing responsibilities là những gì mà một thể hiện của một lớp ( đối tượng) phảibiết Một thể hiện của một lớp hầu hết biết được các giá trị của các thuộc tính vàcác mối quan hệ của nó

- Doing responsibilities là những việc mà một thể hiện của một lớp phải thực hiện

được Đơn cử, một thể hiện của một lớp phải có thể thực hiện các hoạt động của nóhoặc nó có thể yêu cầu một cá thể hiện thứ hai, mà nó biết, thực hiện một trong cáchoạt động của nó thay cho thể hiện ban đầu

Trang 8

Mô hình cấu trúc mô tả các đối tượng cần thiết giúp hỗ trợ các quy trình nghiệp vụ, được

mô hình hóa bằng use case Hầu hết các use case liên quan đến một tập hợp nhiều lớp,không chỉ một lớp Các lớp này tạo thành một sự hợp tác (collaboration)

Sự hợp tác cho phép nhà phân tích suy nghĩ về đối tượng khách, chủ và hợp đồng Một đối

tượng máy khách là một thể hiện của lớp gửi yêu cầu đến một thể hiện của một lớp khác

để thực thi một hoạt động Đối tượng máy chủ là thể hiện nhận yêu cầu từ đối tượng khách hàng Một hợp đồng hợp thức hóa sự tương tác giữa các đối tượng máy khách và

máy chủ

Ví dụ: một bệnh nhân đặt lịch hẹn với một bác sĩ Điều này đặt ra nghĩa vụ cho cả bệnh

nhân và bác sĩ phải có mặt tại thời gian hẹn Nếu không, hậu quả, chẳng hạn như thanhtoán cho bệnh nhân cho cuộc hẹn bất kể anh ta hay cô ta xuất hiện, đều có thể bị xử lý.Ngoài ra, hợp đồng nên viết rõ những lợi ích của khách hàng sẽ như thế nào, chẳng hạnnhư điều trị được kê đơn cho bất kỳ điều gì bệnh nhân và một khoản thanh toán cho bác sĩcho các dịch vụ được cung cấp.Một nhà phân tích có thể sử dụng ý tưởng về trách nhiệmcủa lớp và sự hợp tác giữa khách hàng - máy chủ - hợp đồng Các hoạt động giúp xác địnhcác lớp, cùng với các thuộc tính, phép toán và quan hệ, liên quan đến một trường hợp sửdụng

Một trong những cách dễ dàng nhất để sử dụng thẻ CRC trong phát triển một mô hình cấu

trúc là thông qua anthropomorphism - pretending rằng các lớp có đặc điểm của con người.

Điều này được thực hiện bằng cách để nhà phân tích và hoặc người dùng đóng vai và giả

vờ rằng chúng là một thể hiện của lớp đang được xem xét Sau đó họ có thể hỏi câu hỏicủa chính họ hoặc được đặt câu hỏi bởi các thành viên khác trong nhóm phát triển

Ví dụ:

- Who are you or what are you?

- What do you know?

- What can you do?

3.2 Các yếu tố của thẻ CRC (Elements of a CRC Card)

Class Responsibility Colaboration Card hay còn gọi là thẻ CRC Thẻ này được sử dụng để môtả:

- Trách nhiệm của một lớp

- Sự cộng tác giữa các lớp

Bộ thẻ CRC chứa tất cả thông tin cần thiết để xây dựng mô hình cấu trúc logic của vấn đềđang được điều tra Hình dưới cho thấy một thẻ CRC mẫu Mỗi thẻ CRC nắm bắt và mô tảcác yếu tố thiết yếu của một lớp

Trang 9

Trong nhiều năm, các thẻ CRC (class-responsibility-collaboration card) đã được sử dụngtrong pha phân tích hướng đối tượng Đối với mỗi lớp, nhóm phát triển điền vào các thôngtin như: tên lớp, các chức năng của lớp (responsibility) và danh sách các lớp gọi đến cácchức năng của lớp này (collaboration) Cách tiếp cận này về sau đã được mở rộng Trướchết thẻ CRC bao hàm một cách tường minh các thuộc tính và các phương thức của lớp, chứkhông chỉ là các chức năng được mô tả bằng ngôn ngữ tự nhiên Công nghệ cũng thay đổi.Thay vì sử dụng các thẻ, một số công ty phần mềm ghi tên các lớp trên các mẫu giấy ghichú (Post-it note) rồi dịch chuyển vòng quanh trên bảng trắng; các đoạn thẳng được vẽtrên bảng nối các mẫu giấy để biểu thị sự tương tác Ngày nay toàn bộ cách làm này đãđược tự động hóa: các công cụ CASE như System Architect có chứa các module có thể tạo

ra và cập nhật các thẻ CRC trên màn hình

Điểm mạnh của thẻ CRC là, khi làm việc theo nhóm thì nhờ sự trao đổi giữa các thành viên

có thể phát hiện ra những điều còn thiếu hay không chính xác trong các lớp Mối quan hệgiữa các lớp cũng được làm rõ Điểm mạnh nhất của kỹ thuật này là có thể phân phát cácthẻ cho các thành viên, mỗi thành viên sẽ xem xét kỹ hơn các lớp mà họ chịu trách nhiệm,đồng thời có thể xem xét và có ý kiến đóng góp cho các lớp khác Nhờ sự làm việc trong sựtrao đổi hợp tác như vậy, biểu đồ lớp sẽ được đầy đủ và chính xác hơn

Điểm yếu của kỹ thuật CRC là không có phương pháp tốt để nhận diện các lớp, nếu các

thành viên không am hiểu nhiều về lĩnh vực ứng dụng tương ứng Tuy nhiên, nếu bằngcách nào đó các nhà phát triển đã xác định được khá nhiều lớp thì thông qua sự cộng tác,trao đổi thẻ CRC là công cụ tuyệt vời để bảo đảm rằng mô hình lớp đưa ra là đầy đủ vàchính xác

Ví dụ:

- Mặt trước của thẻ cho phép ghi lại:

▪ Tên (class’s name)

Trang 10

- Mặt sau của thẻ CRC chứa các thuộc tính và mối quan hệ của lớp Các thuộc tính của

lớp đại diện cho các trách nhiệm biết mà mỗi cá thể của lớp sẽ phải đáp ứng Có baloại mối quan hệ thường được nắm bắt tại thời điểm này: tổng quát hóa(Generalization) , tổng hợp (Aggregation) và các liên kết khác (Other Associations)

Ví dụ: Generalization: Person, Aggregation: Medical History, Other Associations:Appointment)

Nói tóm lại, thẻ CRC được sử dụng để ghi lại các thuộc tính thiết yếu của một lớp Tuy

nhiên, khi các thẻ được điền đầy đủ, nhà phân tích có thể sử dụng các thẻ trong việc nhậpvai để tìm ra các thuộc tính còn thiếu bằng cách thực hiện các tình huống khác nhau liênquan đến các trường hợp sử dụng Điều này có thể được sử dụng làm cơ sở để kiểm tratính rõ ràng và đầy đủ của việc biểu diễn đang phát triển của hệ thống

Class Diagram (sơ đồ lớp) biểu diễn cấu trúc tĩnh của h thống hướng đối tượng, được sửệ giữa các lớpdụng để mô tả trực quan các thu c tính và hoạt đ ng của các lớp, các đối tượng và cả cácràng bu c giữa chúng

- Ngoài ra, sơ đồ lớp còn được sử dụng xây dựng mã thực thi của ứng dụng phần

mềm

Trang 11

- Giúp cho các l p trình viên có thể trao đổi và hiểu rõ ý tưởng của nhau.

4.1 Các yếu tố của Class Diagram

4.1.1 Class - Lớp

Class là thành phần chính của bản vẽ, lưu trữ và quản lý thông tin trong hệ thống Mô tả về

một nhóm đối tượng có cùng tính chất, hành động trong hệ thống Lớp tạo ra đối tượngbằng cách gán giá trị cụ thể cho các thu c tính 🡪 Đối tượng là m t thể hi n (instance) củaệ giữa các lớp

m t lớp

Bao gồm:

- Các tính năng cấu trúc (attribute) xác định những đối tượng nào của lớp "biết"

▪ Biểu diễn trạng thái của một đối tượng của lớp

▪ Là các mô tả về cấu trúc hoặc các tính năng tĩnh của một lớp

▪ 4 khả năng hiển thị (visibility) thuộc tính:

o public (+): Mọi đối tượng đều có thể sử dụng

o protected (#): Chỉ các đối tượng được tạo từ class này và class kế thừa từclass này có thể sử dụng

o package (~): Các đối tượng được tạo từ class trong lớp cùng gói có thể sửdụng

o private (-): Chỉnh mình các đối tượng được tạo từ class này có thể sử dụng

🡪 placing a slash (/): các thuộc tính đặc biệt

- Các tính năng hành vi (operation) xác định những đối tượng của lớp "có thể làm"

▪ Xác định cách thức mà các đối tượng có thể tương tác

▪ Hoạt động là mô tả về các tính năng hành vi hoặc động của một lớp

▪ Có 3 loại hoạt động mà lớp có thể chứa:

o Constructor (xây dựng): tạo ra một phiên bản mới của một lớp

o Query (truy vấn): làm cho thông tin về trạng thái của đối tượng có sẵn chocác đối tượng khác, nhưng nó không làm thay đổi đối tượng theo bất kỳ cáchnào

o Update (cập nhật): thay đổi giá trị của một số hoặc tất cả các thuộc tính củađối tượng, có thể dẫn đến thay đổi trạng thái của đối tượng

- Ký hi u trong UML: ệu trong UML: ký hi u lớp gồm 3ệ giữa các lớp phần:

Trang 12

▪ Class name - Tên lớp: tên của lớp xuất hi n trong phần đầu tiên.ệ giữa các lớp

▪ Class attribute - (Các) thu c tính lớp: ộc tính lớp:

o Các thu c tính được hiển thị trong phần thứ hai

o Loại thu c tính được hiển thị sau dấu hai chấm

o Mô tả tính chất của các đối tượng

o Biểu diễn thu c tính:

▪ Chỉ ra tên, kiểu và giá trị m c định, nếu có: AttributeName:Type = Defaultặc định, nếu có: AttributeName:Type = Default

▪ Tuân theo quy ước đ t tên của ngôn ngữ cài đ t và của dự án.ặc định, nếu có: AttributeName:Type = Default ặc định, nếu có: AttributeName:Type = Default

▪ Kiểu (type) nên là kiểu dữ li u cơ bản trong ngôn ngữ thực thi.ệ giữa các lớp

▪ Kiểu dữ li u có sẵn, kiểu dữ li u người dùng định nghĩa, ho c các lớp tựệ giữa các lớp ệ giữa các lớp ặc định, nếu có: AttributeName:Type = Defaultđịnh nghĩa

▪ Ví dụ: CustomerID: int

▪ Class operation – (Các) phương thức lớp:

o Các hoạt đ ng được hiển thị trong phần thứ ba Chúng là những dịch vụ màlớp cung cấp

o Kiểu trả về của m t phương thức được hiển thị sau dấu hai chấm ở cuối chữ

▪ Sử dụng góc nhìn của đối tượng khách (client – đối tượng gọi)

▪ Nhất quá giữa các lớp

▪ OperationName(parameter:type, ): returnType

▪ Ví dụ: GetCustomerName(CustomerID:int): string

- Ví dụ:

Trang 13

4.1.2 Relationships – Mối quan hệ giữa các lớp

Relationship thể hiện mối quan hệ giữa các Class với nhau Mối quan hệ có thể là mộttrong các kiểu sau:

● Realization (Hi n thực hóa): ệu trong UML:

- Ký hi u trong UML: ệ giữa các lớp

- Hành vi tách bi t khỏi hi n thực.ệ giữa các lớp ệ giữa các lớp

- Trong mối quan hệ hiện thực, một thực thể (thường là giao diện) xác định một tập

hợp các chức năng như một hợp đồng và thực thể kia (thường là một lớp) “hiệnthực hóa” hợp đồng bằng cách thực hiện chức năng được xác định trong hợp đồng

- Hiện thực chỉ có thể được hiển thị trên sơ đồ lớp hoặc thành phần.

- Khớp nối lỏng lẻo.

- Mối quan hệ hiện thực hóa giữa các lớp/thành phần và giao diện cho thấy rằng lớp /

thành phần thực hiện các hoạt động được cung cấp bởi giao diện

- Ví dụ:

Trang 14

● Generalization (tổng quát):

- Ký hi u trong UML: ệ giữa các lớp

- Là mối liên hệ “là một loại” (“is a kind of”)

- Generalization là một cơ chế để kết hợp các lớp đối tượng tương tự thành một lớp

duy nhất, tổng quát hơn

- Generalization xác định điểm giống nhau giữa một tập hợp các thực thể, có thể là

thuộc tính, hành vi hoặc cả hai tạo thành một superclass

- Một supperclass chứa các thuộc tính, hoạt động và mối quan hệ chung nhất có thể

được chia sẻ với các subclass

- Xác định sự phân cấp về mức độ trừu tượng hóa trong đó lớp con kế thừa từ một

hoặc nhiều lớp cha

▪ Đơn kế thừa (Single inheritance): m t lớp kế thừa từ nhiều lớp khác

▪ Đa kế thừa (Multiple inheritance):

o M t lớp có thể kế thừa từ nhiều lớp khác

o Sử dụng đa kế thừa khi cần thiết và cẩn th n khi sử dụng vì có thể dẫn đếnnhiều rắc rối, phức tạp

o Phụ thu c vào ngôn ngữ l p trình

- Ví dụ:

● Dependency (Phụ thu c): ộc):

Trang 15

- Ký hi u trong UML: ệ giữa các lớp

- Đại di n cho mối quan h “use-a”.ệ giữa các lớp ệ giữa các lớp

- Là quan hệ giữa 2 phần tử trong mô hình mà thay đổi ở phần tử này (phần tử độc

lập) có thể gây ra thay đổi ở phần tử kia (phần tử phục thuộc)

- Ví dụ:

● Association (liên kết):

- Ký hi u trong UML: ệ giữa các lớp

- Đại di n cho mối quan h “has-a”.ệ giữa các lớp ệ giữa các lớp

- Là quan hệ giữa hai hay nhiều instance của class sự hủy instance này không ảnh

hưởng tới instance khác, có bốn loại là hai chiều, một chiều, aggregation và tự thân,trong đó hai chiều và một chiều là hay dùng nhất

- Association là sự liên kết giữa 2 class khi mà không cái nào sở hữu cái nào Vòng đời

các thể hiện của 2 class thì độc lập nhau và không có mối quan hệ sở hữu nào trongbiểu diễn này

- Ví dụ:

● Aggregation (tổng hợp):

- Ký hi u trong UML: ệ giữa các lớp

- Là một dạng liên kết đặc biệt của Association, mối quan h kết hợp giữa 2 lớp trongệ giữa các lớpđó:

▪ Là mối quan h “là m t phần” (“is a part-of”)ệ giữa các lớp

▪ Một lớp là một tập hợp (Whole) hoặc chứa các lớp khác (Part) hoặc một đối

tượng được tạo thành từ các đối tượng khác

▪ Vòng đời của lớp được chứa không phụ thuộc vào lớp chứa nó, Nếu lớp chứa bị

hủy thì các lớp được chứa vẫn tồn tại

Ngày đăng: 22/12/2021, 22:47

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w