Apakah diagram kelas UML memadai untuk merancang sistem JavaScript?

23

Mengingat bahwa UML berorientasi pada pendekatan yang lebih klasik untuk orientasi objek, apakah masih dapat digunakan dengan cara yang dapat diandalkan untuk merancang sistem JavaScript?

Satu masalah khusus yang bisa saya lihat adalah bahwa diagram kelas, pada kenyataannya, pandangan struktural dari sistem, dan JavaScript lebih didorong oleh perilaku, bagaimana Anda menghadapinya?

Harap diingat bahwa saya tidak berbicara tentang domain dunia nyata di sini; itu adalah model untuk solusi yang saya coba capai.

Julio Rodrigues
sumber
7
Banyak dari kita akan mengatakan UML tidak cukup untuk mendesain apa pun. Saya berpendapat satu-satunya nilai apa pun di seluruh kanon UML adalah diagram urutan. Setiap diagram UML lain yang saya coba pahami telah lebih baik dijelaskan dalam bahasa Inggris. Tapi itu subjektif untuk apa itu.
Jimmy Hoffa
1
@JimmyHoffa Saya setuju sampai batas tertentu. Terutama dengan IDE modern, seorang programmer harus dapat dengan mudah melihat kode sumber berorientasi objek dan mendapatkan informasi yang sama (dan banyak lagi) yang digambarkan dalam diagram kelas. Saya dapat membayangkan diagram kelas menjadi lebih berguna sebelum IDE modern dengan highlight sintaksis dan garis besar yang dihasilkan secara otomatis tersedia. Diagram kelas mungkin cocok untuk menggambarkan struktur berorientasi objek kepada orang-orang tanpa pengalaman pemrograman atau dalam proyek besar di mana tidak ada cukup waktu bagi pengembang untuk menjelaskan desain secara verbal kepada semua orang.
David Kaczynski
1
@JimmyHoffa Tolong rekomendasikan beberapa buku atau sumber yang bagus tentang sistem yang dimodelkan menggunakan diagram urutan secara khusus? Saya membaca Menerapkan UML dan Pola dan itu memberikan contoh bentuk yang sangat baik menggunakan UML praktis bukan hanya menjelaskan diagram dan sintaksis.
Songo
@JimmyHoffa: Saya setuju dengan Anda hampir, tetapi bukan tentang diagram urutan - karena diagram urutan IMHO tidak menunjukkan apa yang tidak dapat diungkapkan dengan lebih baik dengan kode semu. Satu-satunya jenis diagram yang memiliki penggunaan nyata bagi saya adalah diagram aliran data, dan itu bukan bagian dari UML.
Doc Brown
@DocBrown cukup adil, mari kita setuju bahwa belajar UML harus dihindari dan lebih baik membaca strunk & white mungkin menggantikannya :)
Jimmy Hoffa

Jawaban:

18

Sepertinya Anda menanyakan dua hal berbeda

  • Bisakah UML digunakan untuk menggambarkan sistem javascript?
  • Bisakah diagram kelas digunakan untuk menggambarkan sistem javascript?

Perlu diingat bahwa UML mencakup banyak jenis diagram , khususnya cabang diagram perilaku, termasuk diagram urutan dan use case. Diagram seperti itu secara khusus menjawab kekhawatiran Anda tentang pemodelan javascript sebagai bahasa yang didorong oleh perilaku.

Sangat mungkin bahwa sistem javascript tidak menggunakan desain berorientasi objek. Dalam kasus seperti itu, diagram kelas mungkin tidak akan sesuai, seperti yang Anda tunjukkan. Namun, karena javascript mendukung desain berorientasi objek, dimungkinkan diagram kelas untuk secara efektif menggambarkan sistem menggunakan javascript. Itu benar-benar tergantung pada bagaimana javascript digunakan.

David Kaczynski
sumber
5

Jawaban Anda tersembunyi di pertanyaan Anda:

Satu masalah khusus yang bisa saya lihat adalah bahwa diagram kelas, pada kenyataannya, pandangan struktural dari sistem, dan javascript lebih didorong oleh perilaku, bagaimana Anda bisa mengatasinya?

Lihatlah teknik BDD (Behaviour-driven development) dan pilih alat yang sesuai dengan kebutuhan desain Anda.

Diskusi terkait yang mungkin bermanfaat bagi Anda - Cara menulis cerita / skenario dalam BDD . Dan artikel yang sangat komprehensif dari majalah Code - Behaviour-Driven Development

ps: Secara umum, UML represent general types of behaviorbagaimanapun, masih dapat digunakan untuk memodelkan desain Anda dengan set yang tepat dari kategori yang dipilih (seperti diagram urutan).I would reference the Wikipedia and find the right UML diagram category to use.

EL Yusubov
sumber
Tampaknya menjadi definisi masalah atau pendekatan manajemen pengembangan. Saya sebenarnya berbicara tentang desain tingkat yang lebih rendah, lebih dekat ke solusi.
Julio Rodrigues
4

Ada pekerjaan yang dilakukan untuk mengadaptasi aplikasi web ke UML, yang disebut ekstensi WAE dan ada sebuah buku berjudul Membangun Aplikasi Web dengan UML oleh Jim Conallen menjelaskannya secara rinci. Anda dapat melihat variabel dan fungsi JavaScript di diagram kelas.

Mengapa saya percaya ini pilihan terbaik untuk memodelkan aplikasi web? Karena semua orang tahu bagaimana diagram kelas bekerja dan ini adalah hal yang paling dekat dengannya. Sangat mudah dimengerti dan programmer terlalu malas untuk membaca dokumentasi dengan kata-kata, tetapi melihat diagram tidak terlalu sulit;). Namun, jika Anda ingin melihat apa yang terjadi pada eksekusi, maka Anda harus mencari diagram urutan karena dalam aplikasi web, kadang-kadang file dihasilkan secara dinamis.

Diagram yang dihasilkan oleh paket node.js "wavi"

Bakunin95
sumber
3

Ada model perilaku, juga, di UML yang dapat Anda gunakan untuk menggambarkan perilaku sistem seperti Sequence Diagram atau State Chart Diagram

Dummy Derp
sumber
1

Ya, Anda dapat menggunakan UML, terutama diagram urutan .

Berkenaan dengan penggunaan diagram kelas , itu tergantung pada apakah Anda merancang aplikasi Anda menggunakan prinsip-prinsip desain berorientasi objek atau tidak. Jika Anda hanya memiliki banyak fungsi JavaScript, diagram kelas tidak menambahkan banyak. Jika Anda menggunakan prototipe objek JavaScript untuk mensimulasikan semacam kelas, maka diagram ini akan bermanfaat.

Berdasarkan pengalaman saya dalam mendesain front-end Javascript di UML, saya telah menulis buku putih tentang subjek: Desain teknis di UML untuk aplikasi Angular .

www.admiraalit.nl
sumber
0

Tampaknya Anda dapat menggunakan UML untuk JavaScript, tetapi itu akan tergantung pada bagaimana Anda akan mendekati pekerjaan Anda.

Secara khusus JS / UML dapat mengotomatisasi dokumentasi UML untuk JSDoc, Dojo, YUI.

Saya akan menebak bahwa ada lebih banyak di luar sana tetapi belum menemukan hal lain.

knguyeniii
sumber
bagaimana ini menjawab pertanyaan yang diajukan?
Agak