Dalam beberapa tahun terakhir, Trello semakin banyak dibicarakan sebagai alat yang sangat baik untuk pengorganisasian dan perencanaan. Selama 3 tahun sekarang, kami telah menggunakan Trello di perusahaan kami untuk merencanakan banyak proses, mulai dari liburan, perjalanan bisnis dan menyetujui kontrak, dan berakhir dengan manajemen proyek.
Sayangnya, tidak semuanya begitu indah di Trello. Anda tidak dapat melakukan alur kerja khusus di sana. Artinya, kita perlu menempati satu karyawan yang akan menyeret kartu dengan tangannya di berbagai papan. Bagaimana karyawan ini dapat dipindahkan ke pekerjaan lain yang lebih menarik dan kreatif?
Tentu saja, Anda berkata, Anda dapat menulis skrip yang akan melakukan semua ini untuk kami. Tapi ada masalah. Sebuah skrip hanya dapat ditulis oleh seorang programmer atau orang yang mengerti bagaimana melakukan ini. Dia harus menjaga naskahnya. Kami menemukan solusi yang lebih sederhana dan lebih logis - ini adalah pemodelan semantik.
Pemodelan semantik memungkinkan Anda untuk menulis semua logika papan di Trello dalam bahasa alami.
Koordinasi perjalanan dan liburan
Ambil proses yang paling sederhana: mencocokkan perjalanan dan liburan. Menurut peraturan kami, setiap karyawan yang berencana untuk berlibur atau melakukan perjalanan bisnis menerbitkan permintaan kepada Trello. Aplikasi tersebut termasuk dalam lembar “Untuk persetujuan”.

Segera setelah aplikasi disetujui (pada kenyataannya, ini berarti bahwa kepala karyawan dan / atau perwakilan departemen keuangan mencentang kotak centang), mereka dipindahkan ke daftar "Perjalanan yang Disetujui". Permohonan cuti jatuh masing-masing di “Cuti yang Disetujui”, dll. Setelah itu, Anda perlu memberi tahu karyawan bahwa lamarannya telah disetujui.
Misalkan kita ingin mengotomatiskan proses ini sehingga aplikasi, setelah persetujuan, secara otomatis pindah ke lembar yang diinginkan, dan karyawan menerima pemberitahuan tentang perubahan status aplikasi. Pertimbangkan apa yang kita butuhkan untuk ini.
Alat yang diperlukan
Untuk mengembangkan model, kami memilih ide dari Jetbrains MPS (Meta Programming System). Sebagai bahasa untuk pemodelan, bahasa
d0SL digunakan - bahasa semantik Delta0, dibuat berdasarkan model semantik (logis).
Seluruh proses menginstal Jetbrains MPS dan plug-in yang diperlukan sepenuhnya dijelaskan di sini:
https://d0sl.imtqy.com/en/quick/installation/ .
Anda dapat menginstal model papan Trello yang sudah selesai di tautan:
https://d0sl.imtqy.com/en/quick/trello/ .
Model semantik. Apa yang terjadi
Mari kita lihat seperti apa bentuk model semantik papan Trello. Ini berisi aturan kami:
- Apakah kotak centang dicentang - Memeriksa apakah kotak centang bernama requiredCheckBoxName dicentang di kartu dengan id cardId. Dengan cara ini kita dapat memeriksa apakah Aplikasi kita disetujui atau tidak.
- moveCard - Memindahkan kartu cardId ke daftar dan menambahkan komentar ke aplikasi untuk pengguna

Model ini memiliki kotak centang predikat, yang disebut untuk setiap kartu di papan tulis. Pengidentifikasi kartu, nama pengguna yang melakukan operasi terakhir dengan kartu, lembar dari mana kartu dipindahkan, dan lembar di mana ia saat ini berada, ditransfer ke kartu itu. Lebih lanjut di checkBoard kita dapat menetapkan aturan yang kita rencanakan untuk memproses aplikasi kita.

Perhatikan bahwa pemodelan semantik memungkinkan Anda untuk menempatkan semua aturan bisnis logis ke dalam satu dokumen dan menulis aturan ini dalam bahasa area subjek, "bahasa asli" untuk pengguna model.
Kemampuan untuk melakukan sesuatu dengan kartu disediakan oleh model TrelloBoard dasar, yang terlihat seperti ini:

Jika kita menjalankan model, maka segera setelah aplikasi di lembar "Untuk persetujuan" melewati proses persetujuan,

Sistem akan memindahkannya ke bagian yang sesuai dan memberi tahu pembuat kartu tentang perubahan status aplikasi.

Namun, jika suatu aplikasi yang belum disetujui untuk dicoba dipindahkan secara manual, sistem akan mengirimkannya ke tempat itu dan menulis komentar yang marah.
Dan apa yang ada di bawah tenda?
Model TrelloBoard dasar pada dasarnya adalah antarmuka yang kami terapkan di Jawa (dalam hal ini, di kelas com.gav.semanticTrelloBoard.TrelloBoardDSL).
Ini terlihat seperti ini:

Kami mendefinisikan nama fungsi menggunakan dekorator dan mengimplementasikannya.
Kami juga memiliki kelas AiTrelloBoard, yang memungkinkan kami untuk bekerja dengan Trello. Berisi implementasi java dari fungsi-fungsi seperti start:

Dalam file trelloBoard.properties, kami menyimpan semua parameter trello api (seperti application_key, board_id, dll.) Dan last_update_timestamp - timestamp dari update'a terakhir.
Jadi, dengan biaya yang tidak terlalu banyak usaha, kami dapat mengotomatisasi proses bisnis yang diperlukan di Trello. Menggunakan dan memelihara solusi ini jauh lebih nyaman daripada kode program.
Jelas, kemungkinan pemodelan semantik tidak terbatas untuk menyelesaikan masalah ini. Memang, jika dalam pendekatan klasik untuk memecahkan masalah analis pertama kali menciptakan spesifikasi berdasarkan pada pengembang yang selanjutnya mengimplementasikan arsitektur dan menulis kode, kemudian menggunakan bahasa pemodelan semantik d0sl, analis dapat membuat spesifikasi untuk tugas dalam bahasa logis formal yang diubah menjadi kode yang dapat dieksekusi tanpa campur tangan manusia. Ini secara signifikan dapat mengurangi biaya pengembangan, penyebaran dan pengujian layanan baru.
Kami membuat solusi untuk bekerja dengan Trello terbuka dan menaruhnya di
github .
Kami ingin tidak hanya menyediakan alat untuk proses modernisasi di Trello, tetapi juga untuk menunjukkan pada contoh sederhana ini keuntungan menggunakan pendekatan modern seperti pemodelan semantik. Kami akan senang jika Anda dapat menambahkan sesuatu untuk kasus ini, dan berbagi pengalaman Anda dalam menggunakan solusi kami.
Tautan yang bermanfaat
Baca lebih lanjut tentang bahasa pemodelan semantik d0sl di
sini .
Fondasi matematis dari pemodelan semantik diuraikan di
sini .