Những điều thiết yếu mà một người cần biết về UML là gì?


18

Tôi muốn những nét vẽ nguệch ngoạc về thiết kế và hành vi của một chương trình trở nên hợp lý hơn và có ngôn ngữ chung với các nhà phát triển khác.

Tôi đã xem xét UML và về nguyên tắc nó dường như là thứ tôi đang tìm kiếm, nhưng dường như nó là quá mức cần thiết. Các thông tin tôi tìm thấy trên mạng cũng có vẻ rất cồng kềnh và hàn lâm.

Làm cách nào tôi có thể hiểu UML theo cách đơn giản bằng tiếng Anh, đủ để có thể giải thích nó với các đồng nghiệp của mình? Các tài nguyên chính để hiểu UML ở cấp độ mặt đất là gì?


1
Tôi thích tiêu đề cũ hơn, ít nhất là phần đầu của nó: "10% UML hữu ích nhất là gì?" Nếu không, chỉnh sửa tốt!
Joey Adams

nếu bạn đã có tài liệu được viết ra có lẽ đã bằng uml, bạn sẽ không quen với những gì họ quyết định gọi loại tài liệu của bạn
Ryathal

Câu trả lời:


4

Thích những câu hỏi - giống như những câu hỏi mà tôi đã tự hỏi:

Làm cách nào tôi có thể hiểu UML theo cách đơn giản bằng tiếng Anh, đủ để có thể giải thích nó với các đồng nghiệp của mình? Các tài nguyên chính để hiểu UML ở cấp độ mặt đất là gì?

Đây là những gì tôi đã tìm thấy:

Để bắt đầu: sự lựa chọn của tôi sẽ là UML chưng cất của Fowler . Nó thực sự là một sự chắt lọc những điều cơ bản, như đã được đề cập: định nghĩa, ví dụ, lời khuyên về việc khi nào nên sử dụng một loại sơ đồ nhất định. Đây cũng là một tài liệu tham khảo tốt , nếu bạn muốn tập trung vào một phần nhất định của UML mà không cần đọc bìa sách.

Để có phần giới thiệu chi tiết hơn nhưng bằng tiếng Anh: UML 2 for Dummies đã thực hiện cho các đồng nghiệp và tôi. Nó không chỉ giới thiệu UML, cú pháp của nó và sử dụng theo chiều dài, mà còn có rất nhiều lời khuyên về thực hành thiết kế và lập trình tốt.

Thỉnh thoảng có hai sự khác biệt giữa hai cuốn sách về cú pháp thuộc về phiên bản nào của tiêu chuẩn UML. Tuy nhiên, đây là những phút và chắc chắn không cần thiết cho việc sử dụng sơ đồ UML để truyền đạt ý tưởng thiết kế. (Ví dụ: liệu UML 2 có cho phép bội số rời rạc hay không, nghĩa là cho thấy một thuộc tính nhất định có thể có chính xác các đối tượng X, Y hoặc Z, thay vì chỉ 0, một, nhiều hoặc nhiều hơn X, khi tên của người tham gia nên được gạch chân. ..)

Đối với phần giới thiệu hoàn toàn không mang tính học thuật và ít lời: blog này có các bài viết về các bit khác nhau của UML: http://blog.diadraw.com/carget/uml/

Nó không phải là một cuốn sách giáo khoa, vì vậy không phải là toàn diện, mà còn sử dụng các câu chuyện và ví dụ không phải trong sách giáo khoa, có liên quan đến. Một số bài đăng có sẵn được tập trung vào việc giới thiệu các khái niệm UML một cách trực quan, vì vậy bạn có thể bỏ qua việc đọc văn bản hoàn toàn.


Liên kết blog đó là tốt đẹp.
Hanno Fietz

8

Tôi thực sự thích UML chưng cất của Martin Fowler . Ngắn gọn và ngọt ngào, và quá đủ cho các cuộc thảo luận về bảng trắng. Nhận một vài bản sao và vượt qua chúng xung quanh đội.


1
+1 khi đề cập đến cuốn sách này, tôi đã hoàn toàn quên nó trong khi viết câu trả lời của mình!
Alexander Galkin

2
Bạn có thể đi sâu hơn một chút về kinh nghiệm của bạn với cuốn sách không?

Lý do của downvote là gì?
kevin cline

1
Một trong những điều đầu tiên tôi làm khi trở thành trưởng nhóm là mua các bản sao của cuốn sách này cho mọi người trong nhóm của tôi. Nó đã cho chúng tôi tất cả một từ vựng chung để thảo luận về thiết kế của chúng tôi. Một số chàng trai trẻ cũng báo cáo rằng nó giúp họ hiểu rõ hơn về sơ đồ trong các cuốn sách mẫu thiết kế khác nhau mà họ đọc.
TMN

2
@kevincline Tôi thường liên kết với Amazon vì nó sẽ chuyển đổi liên kết thành URL giới thiệu cho Stack Exchange. Nếu ai đó nhấp và mua từ URL đó, Stack Exchange có thể kiếm tiền. Nó cũng trở nên tầm thường, với tiêu đề, tác giả và thông tin về ISBN từ Amazon, để tìm cuốn sách trong lựa chọn bán sách yêu thích của bạn.
Thomas Owens

5

Sơ đồ một mình không phải lúc nào cũng hữu ích. Ví dụ: sơ đồ ca sử dụng không thể truyền đạt các quy tắc kinh doanh một cách chi tiết. Sơ đồ lớp có thể rất hữu ích vì bạn có thể tạo mã lớp và DLL từ nó.

Tôi thấy những sơ đồ này hữu ích nhất:

  • Sử dụng sơ đồ trường hợp
  • Sơ đồ lớp
  • Sơ đồ hoạt động
  • Sơ đồ trình tự

Có rất nhiều tài nguyên hữu ích, nhưng hãy kiểm tra những điều sau:

Chỉnh sửa-1 để phản hồi bình luận của Mark.

Mặc dù tôi không sử dụng các tài nguyên này hàng ngày, nhưng chúng phục vụ như một tài liệu tham khảo nhanh cho cú pháp UML. Các tài nguyên trên được chọn vì chúng cung cấp biểu diễn UML nhanh chóng và có phần toàn diện. Nó hiển thị các sơ đồ phổ biến và giúp người dùng UML mới nhanh chóng thấy sự khác biệt giữa chúng. Tài nguyên đầu tiên, video, cung cấp chi tiết về Ca sử dụng và cách nó liên quan đến các sơ đồ khác. Các tài nguyên trên dự kiến ​​sẽ không đủ cho bất kỳ ai muốn học UML hoặc OOD, tôi nhận ra rằng việc học các chủ đề đó không nhằm vào câu hỏi ban đầu.


+1 cho sơ đồ Lớp , Trình tựHoạt động . Tôi hoàn toàn không bị thuyết phục bởi Sơ đồ ca sử dụng, ngoài ra chúng là những trang bìa tuyệt vời cho các báo cáo vì người dùng dường như yêu thích các bức ảnh.
Sjoerd

@Sjoerd, cảm ơn bình luận của bạn. Như bạn đã chỉ định chính xác, Ca sử dụng được người dùng yêu thích. Ngoài ra, Sơ đồ ca sử dụng có nhiều giá trị. Chúng cho phép bạn xác định các tác nhân (chính và phụ) và cho phép bạn khám phá "Các trường hợp Cse cấp độ C". Mối quan hệ của nó với sơ đồ hoạt động và sơ đồ lớp của bạn, thứ tạo nên sự gắn kết trong đặc tả của bạn. Hãy nhớ rằng chúng không phải là sự thay thế cho các quy tắc kinh doanh chi tiết và tài liệu yêu cầu đầy đủ.
NoChance

Bạn có thể đi sâu hơn về kinh nghiệm của bạn với các tài nguyên này không? Điều gì về họ, chứ không phải những người khác, đã giúp bạn hiểu UML?

@MarkTrapp, cảm ơn bình luận của bạn và các chỉnh sửa.
NoChance

2

Nếu bạn hài lòng với chỉ 10% thì bạn không nên cố gắng học nó từ sách UML. Thay vào đó, bạn tốt hơn nên đọc một cuốn sách hay về phân tích hướng đối tượng hoặc các mẫu thiết kế - những cuốn sách này cung cấp cho bạn 10% bạn đang tìm kiếm.

Tuy nhiên, nếu bạn đang tìm kiếm một hướng dẫn cho UML, tôi sẽ giới thiệu trang web này và đặc biệt là bài tiểu luận về sơ đồ UML này (Cá nhân tôi không có liên quan đến trang web này). Chỉ cần duyệt qua các sơ đồ và xem chúng: chúng chủ yếu là tự giải thích và bạn có thể dễ dàng hiểu những gì chúng đang mô tả miễn là bạn biết về OOP và nói chung là thiết kế và kiến ​​trúc chương trình.

Tại sao tôi muốn giới thiệu chính xác trang này? (hỏi trong bình luận)

Có một số lý do tại sao tôi thích nó hơn những lý do khác:

  1. Nó trình bày cho bạn một bảng tổng quan về các sơ đồ UML trên trang đầu tiên.
  2. Bảng này, ngoài việc đưa ra mô tả ngắn về mỗi digramm UML2.0, còn có một cột "Ưu tiên học tập" rất hữu ích có thể giúp người mới bắt đầu UML xác định các sơ đồ UML thường được sử dụng nhất.
  3. Mặc dù nó cũng chứa các sơ đồ được kết xuất bằng máy, nhưng hầu hết các sơ đồ trông giống như được vẽ bằng tay (có thể chúng được vẽ bằng tay). Tôi coi đó là một dấu hiệu cho thấy việc lập mô hình vẫn có thể được thực hiện chỉ bằng bút chì và giấy của bạn, không cần phải đi sâu vào phần mềm trực quan hóa UML ngay từ đầu.

Bạn có thể đi sâu hơn về kinh nghiệm của bạn với những khuyến nghị này không? Điều gì về họ, chứ không phải những người khác, đã giúp bạn hiểu UML?

1

Tham chiếu bỏ túi UML 2.0 từ O'Reilly chi tiết hơn một chút nhưng có lẽ là lựa chọn tốt nhất vì nó đủ nhỏ để nhanh chóng tìm thấy những gì bạn cần nhưng vẫn có lời giải thích khi bạn cần chúng. Và đó là cập nhật, đó không phải là trường hợp của "tờ cheat UML" hoặc thẻ tham chiếu mà tôi đã tìm thấy trên web - những thứ chủ yếu mô tả UML 1.x


Bạn có thể đi sâu hơn về kinh nghiệm của bạn với cuốn sách này? Điều gì về nó, và không phải những cuốn sách khác, đã giúp bạn hiểu UML?

@Mark Trapp: chủ yếu là thực tế là nó nhỏ, vì vậy bạn có thể nhanh chóng lấy tất cả các yếu tố cần thiết mà không bị mất chi tiết và trường hợp đặc biệt.
Michael Borgwardt

0

Có ba phần này:

  1. Nhận một tài liệu tham khảo UML chính thức

    Bất cứ khi nào bạn đang học một "ngôn ngữ" mới, hãy lấy một tài liệu tham khảo mà bạn có thể rút ra và sử dụng bất cứ lúc nào, cho dù đó là một cuốn sách hay một tài nguyên trực tuyến. UML chưng cất nhỏ, có giải thích tuyệt vời và nhiều sơ đồ rõ ràng. Ngay cả khi bạn không sử dụng tất cả các tính năng, bạn luôn có thể quay lại và xem cách "đúng" để thể hiện điều gì đó.

  2. Sử dụng UML để mô hình hóa mọi thứ

    Bây giờ bạn đã có một tài liệu tham khảo, hãy bắt đầu sử dụng nó để mô hình hóa một số hệ thống hoặc hệ thống nhỏ hiện có mà bạn bắt đầu sử dụng. Có lẽ bạn sẽ muốn gắn bó với Sơ đồ lớp, Sơ đồ trình tự và Sơ đồ trạng thái cho hầu hết các tình huống. Nếu có điều gì đó bạn không chắc chắn, hãy truy cập tài liệu tham khảo của bạn và tìm kiếm cách sử dụng "chính xác" - nếu điều đó không hữu ích, hãy thử một số Google hoặc hỏi về Stack Overflow. Cũng giống như lập trình, thực hành là chìa khóa.

  3. Sử dụng một số UML trong các dự án thực tế

    Khi bạn bắt đầu sử dụng UML với nhóm của mình, hãy nhớ rằng đó chỉ là một công cụ để hiểu hệ thống bạn đã xây dựng hoặc sẽ xây dựng. Bạn vẫn nên kiểm tra tài liệu tham khảo của mình trong khi lập sơ đồ, nhưng tập trung vào việc truyền đạt thông tin, không tuân thủ nghiêm ngặt các quy tắc.

Nghĩ lại các lớp học viết ở trường trung học của bạn. Giáo viên của bạn có thể coi đó là một tội lỗi chính yếu để bắt đầu câu với "và," "nhưng," hoặc "hoặc". Khi bạn viết nhiều hơn và có nhiều quyền kiểm soát hơn đối với ngôn ngữ tiếng Anh, bạn đã học cách bẻ cong các quy tắc để có hiệu quả cao hơn - bạn đã thực hiện chuyển đổi từ cách tiếp cận phù hợp sang cách truyền đạt những gì bạn muốn nói tốt nhất. UML nên được sử dụng trong ngành theo cùng một cách chính xác.


0

Tôi sẽ nói rằng nếu bạn biết UML thì tất cả các sơ đồ cung cấp cho bạn các khung nhìn khác nhau về ứng dụng của bạn. Nhiều sách có sẵn.

Nếu bạn không biết UML, cách dễ nhất là chỉ tạo các sơ đồ lớp / chuỗi đã được đảo ngược từ mã hiện có. Bạn chỉ cần đảo ngược mã hiện có thành UML và thêm ghi chú của riêng bạn vào trong sơ đồ lớp / chuỗi. Các sơ đồ lớp sẽ cung cấp một cái nhìn tĩnh cho ứng dụng của bạn, sơ đồ trình tự sẽ mô tả các luồng phương thức và do đó hành vi ứng dụng. Công việc UML đã hoàn thành và không có lỗi :)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.