Các sơ đồ lớp UML có đủ để thiết kế các hệ thống JavaScript không?


23

Cho rằng UML được định hướng theo cách tiếp cận cổ điển hơn để định hướng đối tượng, liệu nó vẫn có thể được sử dụng theo cách đáng tin cậy để thiết kế các hệ thống JavaScript?

Một vấn đề cụ thể mà tôi có thể thấy là trên thực tế, các sơ đồ lớp là một khung nhìn cấu trúc của hệ thống và JavaScript có nhiều hành vi hơn, làm thế nào bạn có thể đối phó với nó?

Xin lưu ý rằng tôi không nói về miền thế giới thực ở đây; đó là một mô hình cho giải pháp mà tôi đang cố gắng đạt được.


7
Nhiều người trong chúng ta sẽ nói UML không đủ để thiết kế bất cứ thứ gì. Tôi cho rằng giá trị duy nhất của toàn bộ UML là sơ đồ tuần tự. Mọi sơ đồ UML khác mà tôi đã cố gắng hiểu đã được giải thích tốt hơn bằng tiếng Anh. Nhưng đó là chủ quan cho những gì nó là.
Jimmy Hoffa

1
@JimmyHoffa Tôi đồng ý ở một mức độ đáng kể. Đặc biệt với các IDE hiện đại, một lập trình viên có thể dễ dàng xem xét mã nguồn hướng đối tượng và có được thông tin tương tự (và hơn thế nữa) được mô tả trong sơ đồ lớp. Tôi có thể tưởng tượng các sơ đồ lớp trở nên hữu ích hơn trước khi các IDE hiện đại có tô sáng cú pháp và các phác thảo được tạo tự động có sẵn. Các sơ đồ lớp có thể phù hợp để mô tả các cấu trúc hướng đối tượng cho mọi người mà không có kinh nghiệm lập trình hoặc trong một dự án lớn, nơi không có đủ thời gian để nhà phát triển giải thích bằng lời cho thiết kế cho mọi người.
David Kaczynski

1
@JimmyHoffa Bạn có thể vui lòng giới thiệu một số sách hay tài nguyên tốt trên các hệ thống được mô hình hóa bằng sơ đồ trình tự cụ thể không? Tôi đã đọc Áp dụng UML và Mẫu và nó cung cấp mẫu ví dụ thực sự tốt bằng cách sử dụng UML thực tế thay vì chỉ giải thích các sơ đồ và cú pháp.
Songo

@JimmyHoffa: Tôi gần như đồng ý với bạn, nhưng không phải về sơ đồ trình tự - bởi vì sơ đồ trình tự IMHO không cho thấy điều gì không thể diễn tả tốt hơn bằng mã giả. Loại sơ đồ duy nhất có sử dụng thực sự đối với tôi là sơ đồ luồng dữ liệu và chúng không phải là một phần của UML.
Doc Brown

@DocBrown đủ công bằng, chúng ta hãy đồng ý rằng nên học UML và thay vào đó, việc đọc strunk & white có thể thay thế nó có lẽ :)
Jimmy Hoffa

Câu trả lời:


18

Có vẻ như bạn đang hỏi hai điều khác nhau

  • UML có thể được sử dụng để mô tả các hệ thống javascript không?
  • Các sơ đồ lớp có thể được sử dụng để mô tả các hệ thống javascript không?

Hãy nhớ rằng UML bao gồm nhiều loại sơ đồ , cụ thể là một nhánh của sơ đồ hành vi, bao gồm các sơ đồ trường hợp và sử dụng. Các sơ đồ như vậy đặc biệt giải quyết mối quan tâm của bạn về việc mô hình hóa javascript như một ngôn ngữ điều khiển hành vi.

Hoàn toàn có khả năng một hệ thống javascript không sử dụng thiết kế hướng đối tượng. Trong trường hợp như vậy, sơ đồ lớp có thể sẽ không phù hợp, như bạn đã chỉ ra. Tuy nhiên, vì javascript không hỗ trợ thiết kế hướng đối tượng, nên các sơ đồ lớp có thể mô tả hiệu quả một hệ thống bằng cách sử dụng javascript. Nó thực sự phụ thuộc vào cách javascript đang được sử dụng.


5

Câu trả lời của bạn được ẩn trong câu hỏi của bạn:

Một vấn đề cụ thể mà tôi có thể thấy là trên thực tế, các sơ đồ lớp là một khung nhìn cấu trúc của hệ thống và javascript có nhiều hành vi hơn, làm thế nào bạn có thể đối phó với nó?

Nhìn vào các kỹ thuật của BDD (Phát triển theo định hướng hành vi) và chọn các công cụ phù hợp với nhu cầu thiết kế của bạn.

Thảo luận liên quan mà bạn có thể thấy hữu ích để xem xét - Cách viết câu chuyện / kịch bản trong BDD . Và một bài viết rất toàn diện từ tạp chí Code - Phát triển hướng hành vi

ps: Nói chung, UML represent general types of behaviortuy nhiên, nó vẫn có thể được sử dụng để mô hình hóa thiết kế của bạn với tập hợp đúng của danh mục đã chọn (như sơ đồ trình tự).I would reference the Wikipedia and find the right UML diagram category to use.


Nó dường như là một định nghĩa vấn đề hoặc phương pháp quản lý phát triển. Tôi đã thực sự nói về một thiết kế cấp thấp hơn, gần hơn với giải pháp.
Julio Coleues

4

Đã có công việc được thực hiện để thích ứng ứng dụng web với UML, nó được gọi là phần mở rộng WAE và có một cuốn sách gọi là Xây dựng ứng dụng web với UML của Jim Conallen giải thích chi tiết về nó. Bạn có thể thấy các biến và chức năng của JavaScript trong sơ đồ lớp.

Tại sao tôi tin rằng tùy chọn tốt nhất của nó để mô hình hóa ứng dụng web? Bởi vì evrybody biết sơ đồ lớp hoạt động như thế nào và đây là thứ gần nhất với nó. Rất dễ hiểu và các lập trình viên quá lười biếng để đọc tài liệu bằng từ ngữ, nhưng nhìn vào một sơ đồ không khó lắm;). Tuy nhiên, nếu bạn muốn xem điều gì xảy ra trong quá trình thực thi, thì bạn nên tìm sơ đồ trình tự vì trong ứng dụng web, đôi khi các tệp được tạo động.

Sơ đồ được tạo bởi gói node.js "wavi"


3

Ngoài ra, còn có các mô hình hành vi trong UML mà bạn có thể sử dụng để mô tả hành vi của hệ thống như Biểu đồ tuần tự hoặc Biểu đồ biểu đồ trạng thái


1

Có, bạn có thể sử dụng UML, đáng chú ý nhất là sơ đồ trình tự .

Liên quan đến việc sử dụng các sơ đồ lớp , nó phụ thuộc vào việc bạn có thiết kế ứng dụng của mình bằng các nguyên tắc thiết kế hướng đối tượng hay không. Nếu bạn chỉ có một loạt các hàm JavaScript, sơ đồ lớp không thêm nhiều. Nếu bạn sử dụng các nguyên mẫu đối tượng JavaScript để mô phỏng một loại lớp, thì các sơ đồ này sẽ hữu ích.

Dựa trên kinh nghiệm của tôi trong việc thiết kế các giao diện người dùng Javascript trong UML, tôi đã viết một tờ giấy trắng về chủ đề: Thiết kế kỹ thuật trong UML cho các ứng dụng Angular .


0

Có vẻ như bạn có thể sử dụng UML cho JavaScript, nhưng nó sẽ phụ thuộc vào cách bạn sẽ tiếp cận công việc của mình.

Cụ thể, JS / UML có thể tự động hóa tài liệu UML cho JSDoc, Dojo, YUI.

Tôi đoán rằng có nhiều hơn ngoài đó nhưng chưa chạy qua bất cứ điều gì khác.


Làm thế nào để trả lời câu hỏi này?
gnat
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.