Top 7 # Cách Vẽ Sequence Diagram Bằng Staruml Xem Nhiều Nhất, Mới Nhất 6/2023 # Top Trend | Maiphuongus.net

Phần Mềm Staruml Vẽ Sơ Đồ Use Case, Activity Diagrams, Sequence Diagrams

Hướng dẫn sử dụng Phần mềm StarUML, StarUML là phần mềm mã nguồn mở, có kích thước nhỏ gọn, hỗ trợ thiết kế với hầu hết các ngôn ngữ lập trình phổ biến hiện nay như C++, Java, C#, … giao diện thân thiện và là công cụ tuyệt vời hỗ trợ phân tích thiết kế theo hướng UML.

Phần mềm StarUML là phần mềm mã nguồn mở, có kích thước nhỏ gọn, hỗ trợ thiết kế với hầu hết các ngôn ngữ lập trình phổ biến hiện nay như C++, Java, C#, … giao diện thân thiện và là công cụ tuyệt vời hỗ trợ phân tích thiết kế theo hướng UML, hỗ trợ vẽ sơ đồ Use Case, Activity diagrams, Sequence diagrams tốt nhất hiện nay.

Trong bài này, chúng ta sẽ bàn về một số công cụ có thể dùng để biểu diễn và quản lý các bản vẽ UML một cách hiệu quả.

1. Giới thiệu các công cụ vẽ UML phổ biến

Có rất nhiều công cụ được sử dụng để vẽ các bản vẽ UML rất chuyên nghiệp như Rational Rose, Enterprise Architect, Microsoft Visio v.v.. và rất nhiều các công cụ phần mềm nguồn mở miễn phí có thể sử dụng tốt.

Các công cụ có cách sử dụng khá giống nhau và ký hiệu của các bạn vẽ trên UML cũng đã thống nhất nên việc nắm bắt một công cụ khi chuyển sang làm việc với một công cụ khá không quá khó khăn.

Trong bài này, xin giới thiệu với các bạn công cụ Start UML, một phần mềm nguồn mở, miễn phí, có đầy đủ chức năng và có thể sử dụng tốt trên môi trường Windows.

2. Giới thiệu về Start UML

Cài đặt

Bạn có thể download bộ cài đặt của phần mềm Start UML tại http://staruml.sourceforge.net/en/. Sau khi download và tiến hành các bước cài đặt chúng ta nhanh chóng có được công cụ này trên máy tính.

Các Model

Khởi động Start UML vào màn hình chính chúng ta có được các model như sau:

Hình 1. Cửa sổ giao diện của Start UML

Nhìn cửa sổ Model Explorer bên phải chúng ta nhận thấy có 5 model.

Use Case Model: chứa các bản vẽ phân tích Use Case

Analysis Model: chứa các bản vẽ phân tích

Design Model: chứa các bản vẽ thiết kế

Implementation Model: chứa các bản vẽ cài đặt

Deployment Model: chứa các bản vẽ triển khai

Tùy theo nhu cầu phân tích, thiết kế chúng ta xác định sẽ sử dụng model nào để thể hiện.

3. Cách tạo các Diagram

Để tạo các các bản vẽ, chúng ta chỉ cần chọn model mà bạn muốn sử dụng, kích phải chuột, chọn add diagram và chọn bản vẽ cần xây dựng.

Hình 2. Cách tạo ra một bản vẽ

Sau khi chọn bản vẽ, cửa sổ bên trái sẽ hiển thị thanh công cụ chứa các ký hiệu tương ứng của bản vẽ để bạn có thể vẽ được các bản vẽ một các dễ dàng.

Hình 3. Vẽ bản vẽ Use case

Việc xây dựng các bản vẽ chúng ta đã bàn kỹ trong các bài trước, bạn xem lại các bài trước và biểu diễn lại các bản vẽ này lên Start UML.

Video: https://www.youtube.com/watch?v=QMzLvR3jem4

4. Kết luận

Như vậy, chúng ta đã nghiên cứu qua tất cả các bản vẽ UML được sử dụng phổ biến trong OOAD. Đến đây, bạn đã có đủ kiến thức và kỹ năng để phân tích và thiết kế một phần mềm. Bây giờ bạn hãy cố gắng thực hành phân tích và thiết kế các hệ thống phần mềm để có thêm kinh nghiệm.

Các kiến thức này các bạn có thể dùng để phân tích và thiết kế một phần mềm mới hoặc dùng để mô tả nghiên cứu một phần mềm hoặc framework có sẵn nhằm phục vụ cho việc hiệu chỉnh phần mềm cho phù hợp với nhu cầu của khách hàng.

Trong một số trường hợp, cách thức cài đặt (codding) có thể khác với các bản vẽ thiết kế mà bạn đã tìm hiểu ở trên gây khó hiểu cho bạn. Đó là khi các hệ thống ấy sử dụng các Design Pattern như MVC Pattern, Delegate, Façade …. Vấn đề này chúng ta sẽ bàn trong chuyên mục “Design Pattern” trong thời gian tới hoặc bạn có thể tự nghiên cứu để hiểu thêm về vấn đề này.

Staruml 5.0 User Guide (Modeling With Sequence Diagram)

Modeling with Sequence Diagram

The following elements are available in a sequence diagram.

Object

Stimulus

SelfStimulus

Combined Fragment

Interaction Operand

FrameSubsytem

Object

Procedure for creating object

In order to create object,

window].

Object quick dialog is shown. At the quick dialog, enter the object name.

Press [Enter] key.

Procedure for setting active object

In order to set class to active object,

Set assigned class’s [IsActive] property to true.

For MyObject, change MyClass’s IsActive property.

If class property is not assigned, you can’t change object to active object. The result is as follows.

Procedure for setting to multi object

In order to set object to multi object,

Set object’s [IsMultiInstance] property to true.

Then the object is changed to multi object.

Procedure for creating object from class

In order to create object from class,

Select class in the [model explorer].

Drag and drop it into [main window].

Finally, a object is created on the diagram.

Procedure for creating class from object

If class is not assigned to object,

At the [Enter element name] dialog, enter the new class name.

 And new class is created and assigned to object.

button in object’s classifier property, and select class to be assigned to object at the [Select a model element] dialog.

Procedure for creating outgoing from object stimulus by using shortcut creation syntax

In order to create outgoing stimulus from selected object to another object,

pop up quick dialog.

Press [Enter] key and outgoing stimulus from selected object to target object is created and placed at the last order.

Stimulus

Semantics

A Stimulus is a communication between two Instances that conveys information with the expectation that action will ensue. A Stimulus will cause an Operation to be invoked, raise a Signal, or cause an Instance to be created or destroyed.

Procedure for creating stimulus

In order to create stimulus,

button.

Drag from one object, and drop to the other(object or lifeline) in the [main window] in outgoing direction.

Stimulus quick dialog is opened. Enter the stimulus name at the quick dialog and press [Enter] key.

Finally, a stimulus is created as follows.

Procedure for using operation in class as stimulus

If classifier property of receiver(object) of stimulus is assigned and you want to assign operation to stimulus,

Select operation

New stimulus mapped to class’s operation is added as follows.

Procedure for creating operation of class from object

To create operation of class as stimulus’s receiver from object and assign it to stimulus,

button at the quick dialog.

button.

New operation is added to the class and text is filled at the quick dialog (This procedure is valid when there exists assigned class.). Press [Enter] key.

See [model explorer] to confirm creation of new operation.  

Procedure for creating previous stimulus of current stimulus by using shortcut creation syntax

In order to create previous stimulus to current stimulus,

stimulus, or select a stimulus and press [Enter] key.

At the quick and stimulus name.

Press [Enter] key, and then new object and stimulus are created and arranged above selected stimulus.

Procedure for creating next stimulus to current stimulus by using shortcut creation syntax

In order to create next stimulus to selected stimulus,

stimulus, or select a stimulus and press [Enter] key.

At the quick and stimulus name.

Press [Enter] key, and then new object and stimulus are created and arranged next to selected stimulus.

Procedure for creating sub stimulus by using shortcut creation syntax

In order to create a sub stimulus of selected stimulus,

stimulus, or select a stimulus and press [Enter] key.

At the quick and sub stimulus name.

Press [Enter] key, and then new object and stimulus are created and arranged on the bottom of selected stimulus’s activation.

Procedure for reconnecting to another object

In order to reconnect stimulus to another object,

Drag the end of stimulus and drop it to another object.

Then stimulus will be connected to another object.

Procedure for changing ActionKind of stimulus

The [ActionKind] property of stimulus should be assigned to one of five sort as following. To change [ActionKind] property, select stimulus and select the [ActionKind] property on the properties window.

ActionKind Shape

CALL

SEND

RETURN

CREATE

DESTROY

SelfStimulus

Procedure for creating self-stimulus

In order to create self-stimulus,

button.

the [main window].

Object quick dialog is opened. At the quick dialog, enter the stimulus name and press [Enter] key.

The result of procedure is as follows. You may arrange stimulus position to reduce overlapping of text and line.

Combined Fragment

Procedure for creating combined fragment

In order to create Combined Fragment,

[Combined Fragment] button.

will be placed in the [main window].

A combined fragment is created.

Change interaction operator in the properties as follows.

 The combined fragment is shown as follows.

Procedure for creating interaction operand

In order to create Interaction Operand,

button.

placed in the [main window].

interaction operand.

The selection points of interaction operand are shown, drag it to arrange its boundary.

Frame

Procedure for creating frame

In order to create Frame,

And

A new frame is created as follows.

Diagram

Procedure for showing sequence numbers in the diagram

In order to show or hide stimulus sequence number,

Select the diagram in the [model explorer] or in the [main window]

And configure [ShowSequenceNumber] property of diagram to true or false.

When [ShowSequenceNumber] is false, sequence diagram is shown as follows.

Procedure for changing signature style of message in the diagram

There are four message style. To change stimulus signature, select the diagram in the [model explorer] or in the [main window], and configure [MessageSignature] property of diagram to one of the followings.

Style Example

NONE

NAMEONLY

TYPEONLY

NAMEANDTYPE

Procedure for changing activation style in the diagram

In order to show or hide stimulus activation, select the diagram in the [model explorer] or in the [main window], and configure [ShowActivation] property of diagram to true or false.

Thiết Kế Chức Năng Với Sequence Diagram Có Phức Tạp Không?

Sequence Diagram là bản vẽ xác định câu chuyện hậu trường của một chức năng. Câu chuyện hậu trường ở đây chính là sự tương tác giữa các nhóm đối tượng, các thông điệp được gửi và nhận giữa các đối tượng cũng như trình tự thời gian giữa những thông điệp đó.

Ví dụ như bài toán xuất ra màn hình các số nguyên tố bé hơn n:

Đầu tiên chương trình sẽ nhận input là một số n

Tiếp đó chương trình chạy vòng lặp từ 0 đến n

Rồi kiểm tra trong đó đâu là số nguyên tố

Cuối cùng trả về output là các số nguyên tố xuất hiện trên màn hình

Việc thực hiện các chức năng từ lúc nhận input, chạy vòng lặp, kiểm tra rồi trả kết quả, theo một trình tự, có sự tham gia của các hàm, các đối tượng. Và được trực quan hóa bằng bản vẽ chính là Sequence Diagram.

Các thành phần trong Sequence Diagram

Đối tượng

Được kí hiệu bởi hình chữ nhật (kí hiệu là Lifeline trong StarUML) dùng để biểu diễn cho cả Class và Object. Chúng được phân biệt với nhau bởi dấu hai chấm đứng trước tên của Object.

Hình vuông này dùng để tượng trưng cho những lớp, những đối tượng mà bạn sẽ sử dụng trong quá trình thực thi code.

Đường vẽ nét đứt phía dưới hình chữ nhật chính là đường đời của đối tượng, dùng để thể hiện quá trình thực hiện thao tác của đối tượng từ lúc khởi tạo đến lúc biến mất.

Message

Dùng để thể hiện thông điệp đối tượng này truyền sang cho đối tượng khác. Có thể là những kết quả gửi đi, trả về, cũng có thể là những lần gọi làm,…

Có một số kiểu Message thường gặp:

Synchronous Message: Thông điệp cần có một request trước cho hành động tiếp theo.

Asynchronous Message: Thông điệp không cần phải có request trước đó cho hành động tiếp theo.

Self Message: Thông điệp tự gửi cho chính mình để thực hiện các hàm như check/ valid dữ liệu.

Reply Message/Return Message: Thông điệp trả lời lại những request.

Các bước xây dựng Sequence Diagram

1. Xác định các chức năng cần thiết kế

Dựa vào Use Case Diagram / User Story hay Requirement mà lựa chọn chức năng để thiết kế.

Chú ý: mỗi chức năng là một Sequence Diagram riêng biệt.

Ví dụ ở đây mình chọn chức năng Login cho một trang web Java theo mô hình MVC

2. Xác định các bước để thực hiện

Người dùng nhập tài khoản, mật khẩu vào form Login

Người dùng ấn nút Login

Form Login gửi request đến Controller chính

Controller chính tiếp tục gửi request từ form đến User Controller để thực hiện các hàm

User Controller sẽ gọi UserDAO để thực hiện hàm checkLogin()

UserDAO sẽ vào database tìm result set có tài khoản và mật khẩu tương ứng để trả về

Nếu có tồn tại tài khoản và mật khẩu đó, sẽ trả về một trang html thông báo đăng nhập thành công cho người dùng

Nếu không thì trả về một html thông báo tài khoản hay mật khẩu bị sai và yêu cầu đăng nhập lại

3. Xác định các đối tượng tham gia vào

Dựa vào ý tưởng trên, mình có thể nhận thấy các đối tượng

Actor thể hiện người dùng (Actor được add rời từ model)

Browser là nơi người dùng thao tác (Class)

:DispatcherController để nhận button và thực hiện thao tác gửi về các controller khác (Object)

:UserController là nơi nhận dữ liệu và xử lý (Object)

:UserDAO để truy cập database (Object)

DataBase là nơi lưu các tài khoản, mật khẩu (Class)

View để trả về trang html show ra cho người dùng (Class)

Vì ở đây có 2 điều kiện là login thành công hoặc thất bại nên mình sẽ sử dụng thêm Combined Fragment để tạo ra một khung điều kiện và có 2 operand là đúng hoặc sai.

Sau khi xác định được các bước và các đối tượng tham gia vào, chúng ta đã có thể vẽ được một Sequence Diagram rồi.

Ứng dụng

Thiết kế và phát triển các chức năng

Kiểm chứng và bổ sung method cho các Class

Tạm kết

Sequence Diagram là bản vẽ để xác định các đối tượng cũng như tuần tự các bước để thực hiện một bài toán, một chương trình. Sequence Diagram được dùng để thiết kế phát triển và test các chức năng. Qua bài viết này, hi vọng các bạn có thể biết được Sequence Diagram là gì cũng như cách vẽ một Sequence Diagram.

Vẽ Use Case Diagram Với Star Uml

Trước hết, để phân tích hệ thống trên bạn phải có kiến thức về hệ thống thương mại điện tử, chúng ta có thể tìm hiểu thông qua các nguồn sau:

– Xem qua các forum

– Xem các hệ thống mẫu

– Hỏi những người chuyên về lĩnh vực này

Lưu ý: Bạn không thể thiết kế tốt được nếu bạn không có kiến thức về lĩnh vực của sản phẩm mà bạn sẽ xây dựng.

Bước 2: Xác định các Actor

Bạn hãy trả lời cho câu hỏi “Ai sử dụng hệ thống này?”

Xem xét Website chúng ta nhận thấy:

– Những người chỉ vào để đọc bài viết. Những người này là Người xem (Guest).

Về phía quản trị forum, có những người sau đây tham gia vào hệ thống:

Tiếp theo chúng ta trả lời câu hỏi “Hệ thống nào tương tác với hệ thống này?”

Ví dụ chúng ta sử dụng Facebook, Gmail để thực hiện chức năng Login thì chúng ta sẽ có các Actor tương ứng tương tác với hệ thống

Như vậy, chúng ta đã có các Actor của hệ thống gồm: Guest, Member, Mod, S-mod, Admin, Facebook, Google

Bạn cần khảo sát và phân tích thêm cũng như hỏi trực tiếp khách hàng để xác định đầy đủ các Actor cho hệ thống.

Bước 3: Xác định Use Case

Bạn cần trả lời câu hỏi “Actor sử dụng chức năng gì trên hệ thống?”.

Trước tiên, xem xét với Actor ” Guest ” trên trang chúng tôi để xem họ sử dụng chức năng nào?

– Xem trang chủ

– Xem bài viết

– Tìm kiếm bài viết

– Đăng ký tài khoản để trở thành Member

– …….

Tiếp theo, xem xét Actor ” Member ” và nhận thấy họ sử dụng chức năng:

– Đăng nhập

– Đăng bài

– …

Tương tự như vậy bạn xác định chức năng cho các Actor còn lại.

Bước 4: Vẽ bản vẽ Use Case

Trước hết chúng ta xem xét và phân tích các chức năng của “Guest” chúng ta nhận thấy.Chức năng tìm kiếm bài viết sẽ bao gồm chức năng xem những bài viết đã tìm kiếm ấy. Tuy nhiên chức năng xem bài viết vẫn là một chức năng độc lập. Vì thế mình nối Association vào cả 2. Và đặt mối quan hệ Extend cho chúng.

Đặt lại tên cho gọn và xác định các mối quan hệ của chúng, chúng ta có thể vẽ Use Case Diagram cho Actor này như sau:

Thay vì nối tất cả như thế sẽ rất rối mắt. “Member” có tất cả Use Case của “Guest”, có thể xem “Member” là con của “Guest”, vì thế ta có thể sử dụng quan hệ kế thừa. Chúng ta sẽ tối giản sơ đồ như ảnh dưới:

Đỡ đau mắt hơn rồi đúng không nào?

Kết luận

Như vậy, chúng ta đã hoàn thành bản vẽ Use Case cho trang web CForum. Hy vọng, các bạn có thể hiểu và sử dụng bản vẽ này trong việc phân tích hệ thống một cách hiệu quả.

Tips: Nếu phần mềm của bạn được xây dựng theo mô hình Agile/Scrum, các bạn đã có trong tay Use Story rồi thì việc chuyển chúng thành Use Case sẽ dễ như trở bàn tay.