Notasi Speci cation and Description Language (SDL)
Irfan Maulana, Ikrar Bakti, Kevinsy Joshua, Reza Yudhistira February 17,
2020
Contents
I
Introduction 7
1 De nisi 7
2 Manfaat
Bahasa Spesi kasi 8
3 Sejarah 9
4 Kebutuhan 12
5 Konsep 16
6 Bahasa 19
7 Describing Structure 22
7.1 System level........................................................................... 22
7.2 Block level............................................................................... 23
8 Perilaku 27
8.1 Mesin SDL............................................................................ 27
8.2 Diagram Proses....................................................................... 29
8.3 Diagram sistem...................................................................... 30
8.4 Diagram Blok......................................................................... 35
8.5 Diagram Proses...................................................................... 38
9 SDL dan Bahasa lain 46
10 Karakteristik SDL 48
11 Model
dan Struktur Teoritis 51
11.1 Model Teoritis........................................................................ 51
11.1.1 Structure.................................................................... 52
11.1.2 Struktur
Statis dan Dinamis................................. 54
11.1.3 Communication........................................................ 54
11.1.4 Behavior..................................................................... 56
11.1.5 Data............................................................................ 57
12 Cara
Menggunakan ADT Lanjutan 59
12.1 Inheritance............................................................................... 60
13 Sharing
Information, Reuse, and Maintenance 61
13.1 Sharing Information Packages........................................ 61
13.2
Reuse and Maintenance (Specialized Inheritance
and Polymorphism)................................................................ 62
14 Keterbukaan,
Portabilitas, Skalabilitas, dan Ap-
likasi Terdistribusi 63
14.1 Keterbukaan............................................................................ 63
14.2 Portabilitas dan Skalabilitas............................................... 63
14.3 Aplikasi Terdistribusi............................................................ 64
15
Graphical dan Textual Notations dan Application Areas 65
15.1 Graphical
dan Textual Notations..................................... 65
15.2 Application Areas.................................................................. 65
15.3 Application Area................................................................... 66
16 Keuntungan
Bahasa Spesi kasi 67
17 Language Overview 71
II
Teori 81
18 Ruang Lingkup
Notasi 81
III
OpenGEODE, an
SDL Editor for TASTE 108
21.1 Pembatasan SDL................................................................. 111
22 Mengapa
SDL dan OpenGEODE ? 114
IV
PENUTUP 115
Part I
Introduction
1
De nisi
Speci cation and description language
(SDL) adalah bahasa formal berorientasi objek yang dide nisikan oleh
International Telecommunications Union - Sektor Standardisasi Telekomu- nikasi
(ITU T) (sebelumnya Comité Consultatif International Telegraphique et Telephonique
[CCITT]) sebagai rekomendasi
Z.100. Bahasa ini dimaksudkan untuk
spesi kasi aplikasi yang kompleks, didorong
oleh peristiwa, waktu-nyata, dan interaktif yang
melibatkan banyak aktivitas bersamaan yang berkomu- nikasi menggunakan sinyal diskrit.
2
Manfaat Bahasa
Spesi kasi
Secara luas diterima bahwa kunci untuk berhasil mengembangkan
suatu sistem adalah untuk menghasilkan spesi kasi dan desain sistem yang menyeluruh. Tugas ini
membutuhkan bahasa spe- si kasi
yang sesuai, memenuhi kebutuhan berikut:
ˆ
Serangkaian konsep yang terde nisi
dengan baik
ˆ
Spesi kasi yang tidak ambigu, jelas,
tepat, dan ringkas
ˆ Dasar yang menyeluruh dan akurat untuk menganalisis
spesi kasi
ˆ Dasar untuk
menentukan apakah suatu
implementasi sesuai dengan spesi kasi
atau tidak
ˆ
Dasar untuk menentukan konsistensi
spesi kasi
ˆ Dukungan komputer untuk menghasilkan aplikasi tanpa
perlu fase pengkodean tradisional
SDL telah dide nisikan untuk memenuhi tuntutan
ini. Ini adalah
bahasa spesi kasi gra s yang
formal dan berorientasi objek. Ba- hasa ini mampu menggambarkan struktur,
perilaku, dan data
sistem
komunikasi waktu-nyata dan terdistribusi dengan
ketelitian matematika yang
menghilangkan ambiguitas dan menjamin in-
tegritas sistem. Ini memiliki sintaksis
gra s yang sangat in- tuitif. Bahkan
non-konstruktor dengan cepat memperoleh tin-
jauan umum tentang struktur dan perilaku sistem. Karakter- istik
terpenting SDL adalah formalitasnya. Semantik di balik setiap simbol dan konsep dide nisikan secara tepat. Di atas segalanya, kekuatan besar SDL terletak dalam menggambarkan sistem real-time yang besar.
3
Sejarah
Pengembangan SDL dimulai pada tahun
1972. Kelompok be- lajar 15 anggota
dalam CCITT yang mewakili beberapa ne- gara dan perusahaan telekomunikasi
besar seperti Bellcore, Er- icsson, dan Motorola
memulai penelitian tentang
bahasa spesi-
kasi standar untuk industri telekomunikasi. Versi bahasa yang pertama dikeluarkan pada tahun 1976, diikuti oleh versi-versi baru pada
tahun 1980, 1984,
1988, 1992, dan
1996. Versi-
versi terbaru memperluas bahasa secara
luas dan antarmuka yang disederhanakan. Hari ini SDL adalah bahasa
yang lengkap dalam segala hal.
Bahasa
Spesi kasi dan Deskripsi adalah bahasa untuk spesi-
kasi dan deskripsi sistem
yang telah dikembangkan dan distan- darisasi
oleh ITU-T, sektor standar Telekomunikasi dari
Inter- national Telecommunication
Union (ITU). Bagian ITU-T dari ITU
sebelumnya dikenal sebagai CCITT (International Tele- graph and Committee Consultative Committee).
Catatan: Tidak ada
perbedaan yang dibuat dalam Bahasa Spesi kasi
dan Deskripsi antara istilah spesi kasi
dan deskripsi, meskipun mereka umumnya
memiliki arti yang berbeda ketika menggunakan
bahasa dalam aplikasi. Hal yang sama berlaku untuk tutorial ini, tetapi untuk singkatnya itu hanya disebut bahasa spesi kasi.
Pengembangan Bahasa Spesi kasi dan Deskripsi dimulai pada tahun 1972 setelah periode penyelidikan.
Versi
pertama ba- hasa ini
dikeluarkan tahun 1976, diikuti oleh versi baru pada tahun 1980, 1984 dan 1988. Versi tahun 1984 dan 1988 berisi
ekspansi bahasa yang cukup besar, yang dianggap telah menca-
pai kematangan sedemikian rupa sehingga
pengembangan lebih lanjut tidak menarik sampai
SDL-92. Versi SDL-92 lebih beror- ientasi objek dengan de nisi TYPE
(mirip dengan kelas
UML) yang dapat digunakan untuk instance proses
dan instance data (misalnya). Namun, konstruk
TYPE ini sebenarnya merupakan templat yang memetakan ke konstruk SDL-88, sehingga SDL-
92 selalu dapat diratakan menjadi SDL-88 dan SDL-88 adalah
subset dari SDL-92.
Dalam SDL-2000 tur TYPE dibuat
men- jadi komponen
dasar bahasa, tetapi
dari sudut pandang
peng- guna dengan
semantik yang sama dengan SDL-92.
Oleh karena itu (dengan beberapa pengecualian) SDL-88 masih dapat digu-
nakan dengan alat yang mendukung SDL-92
dan / atau SDL- 2000.
Versi
awal SDL telah digunakan untuk waktu yang lama sebelum tahun 1988. Pengalaman dari
penggunaan ini telah berkontribusi
pada peningkatan bahasa. Sebuah survei di Fo-
rum SDL 2 dan 3 pada tahun
1985 [2] dan 1987 [3] menunjukkan bahwa SDL digunakan oleh sekitar 5000 orang di seluruh dunia.
SDL - tentu saja - juga digunakan oleh Kelompok Studi CCITT (sekarang ITU-T)
dalam Rekomendasi mereka. Forum menun-
jukkan bahwa kegiatan kontemporer
untuk SDL berfokus pada pengembangan alat berbasis komputer untuk SDL-88. Selan- jutnya ada pengenalan versi ini di
administrasi dan perusahaan industri dalam skala
yang lebih besar. Pada tahun 1990, sudah
ada alat SDL tersedia secara
komersial untuk semua orang.
4
Kebutuhan
Bahasa Spesi kasi dan Deskripsi SDL dirancang untuk
sistem yang:
ˆ
Reaktif;
ˆ Bersamaan; ˆ Real-time;
ˆ Didistribusikan; ˆ Heterogen.
Pengembangan SDL dimulai awal di era sistem
switching Stored Program Control
(SPC). Pada saat
itu, pada akhir 1960-an
-
awal 1970-an, menjadi jelas bagi produsen dan administrasi telepon bahwa bahasa pemrograman maupun bahasa
deskripsi perangkat keras tidak
memberikan dasar untuk
komunikasi yang jelas dan ringkas yang
mereka butuhkan untuk
berhasil mengem- bangkan dan
mempertahankan generasi baru yang sangat sis- tem switching yang kompleks.
Cukup adil untuk mengatakan bahwa tantangan
yang dihadapi perkembangan itu sangat be- rat. Teknologi itu sendiri masih muda
dan perlu dikembangkan sebagai bagian dari proyek. Aplikasi tersebut sangat
kompleks, merepresentasikan beban lalu lintas yang padat dan permintaan
waktu nyata, dan aplikasi tersebut harus terus beroperasi den- gan minimum
malfungsi. Sistem switching adalah, dan mungkin masih, di antara sistem real-time
paling kompleks yang ada. Menghadapi tantangan seperti itu, tidak mengherankan bahwa industri komunikasi menjadi pelopor dalam pengembangan ba- hasa dan metode teknik
sistem. Juga tidak mengherankan bahwa bahasa yang dikembangkan untuk melayani kondisi
sulit seperti
itu, ternyata bermanfaat jauh melampaui
industri telekomu- nikasi yang semula dimaksudkan.
Masalah pertama
untuk pengembangan SDL adalah untuk menyediakan
cara yang lebih baik untuk menggambarkan peri- laku. Perilaku menjadi fokus karena:
ˆ Perilaku sangat
penting untuk tujuan
dan kualitas sistem semacam ini;
ˆ Perilaku sulit untuk dideskripsikan dengan jelas
karena sifatnya yang dinamis, tidak terlihat, dan sering tak ter-
batas;
ˆ Perilaku seringkali sangat kompleks dan sulit untuk
ditin- jau.
Cara yang lebih
baik untuk menggambarkan perilaku masih di-
anggap sangat diperlukan dari setiap upaya serius
untuk meningkatkan sistem dan rekayasa
perangkat lunak. "Lebih baik" ada di sini
dibandingkan dengan program
tradisional dan deskripsi perangkat keras
dalam mendukung:
ˆ
Komunikasi dan pemahaman manusia;
ˆ
Analisis formal dan perbandingan
perilaku;
ˆ
Implementasi alternatif dan optimisasi
desain.
ˆ SDL dimaksudkan untuk digunakan dalam
beberapa cara:
ˆ Untuk standar
internasional di bidang
komunikasi: untuk mende nisikan
standar yang tidak
ambigu dan konsisten;
ˆ Untuk digunakan
dalam tender: untuk menentukan peri- laku yang diperlukan dan membandingkan perilaku yang
disediakan
dari vendor yang berbeda;
ˆ Untuk digunakan dalam pengembangan sistem: untuk
menen- tukan perilaku sistem yang
diperlukan, untuk merancang
dan menghasilkan implementasi yang optimal dan
untuk mendokumentasikan perilaku yang disediakan;
ˆ
Untuk veri kasi dan validasi perilaku.
Konsekuensinya, SDL harus sesuai untuk spesi kasi
perilaku implementasi-independen serta untuk deskripsi perilaku yang sebenarnya
dilaksanakan. Karenanya nama Spesi kasi dan Deskripsi Bahasa - SDL.
Ringkasnya: sebuah bahasa dicari yang dapat
dimengerti oleh manusia, cukup formal untuk mendukung analisis dan per-
bandingan perilaku, implementasi independen, dan realistis dalam arti bahwa itu dapat secara memadai
menggambarkan perilaku sistem nyata.
SDL telah berkembang
secara bertahap baik dalam cakupan dan formalitas. Rekomendasi pertama bahasa,
muncul pada tahun 1976, berfokus pada
perilaku berurutan, hanya mem- buat beberapa asumsi dasar
tentang konkurensi. Kemudian, dalam rekomendasi 1984, notasi untuk komposisi
arsitektur di- tambahkan. Akhirnya, pada tahun 1992, muncul gagasan kuat
tentang jenis dan pewarisan yang menjadikan SDL bahasa beror- ientasi objek yang
ditiup [5] - [9].
5
Konsep
Dalam setiap desain bahasa, asumsi
tentang domain masalah harus dibuat dan dipetakan ke konsep bahasa. Kesesuaian un- tuk kelas masalah tertentu sangat
ditentukan oleh kecocokan
konseptual antara domain masalah dan bahasa.
Dalam kasus SDL, domain masalahnya adalah
perilaku reak- tif. Kebutuhannya
adalah untuk mengatakan sesedikit mungkin tentang
internal, konstruksi sik dari sistem, sambil
menceri- takan kisah lengkap
tentang bagaimana rangsangan
eksternal dan tanggapan terkait
di antarmuka. Pilihan konsep dasar
jelas memposisikan SDL sebagai bahasa berbasis objek sejak awal. Juga
sebagai bahasa konkuren dan formal berdasarkan komu- nikasi mesin negara yang terbatas. Konsep-konsepnya mungkin
terlihat sangat sik pada awalnya. Melihat lebih dekat, bagaimana-
pun, jelas bahwa mereka tidak terikat pada teknologi
tertentu.
Mereka tidak khusus untuk perangkat
keras, atau perangkat lu- nak. Pada
saat yang sama mereka tidak mengecualikan im-
plementasi dalam perangkat keras maupun perangkat lunak. Bahkan, mereka
memungkinkan banyak cara alternatif imple- mentasi memberikan kebebasan
desainer untuk mengoptimalkan untuk persyaratan non-fungsional mengenai,
misalnya, waktu respons dan beban lalu lintas. Pada saat yang sama teori yang
mendasari mengkomunikasikan mesin negara menyediakan dasar
yang kuat untuk analisis dan
perbandingan serta abstraksi yang memungkinkan
kita untuk menggambarkan perilaku kontrol den- gan
jelas dan realistis.
Keputusan penting
adalah membuat asumsi yang sama ten- tang antarmuka
internal dengan antarmuka eksternal.
Tidak hanya memungkinkan kita kebebasan untuk menempatkan batas
sistem di mana kita suka, itu
juga memberi kita transparansi distribusi. Tidak ada asumsi bawaan
tentang proses co-lokalisasi
sik. Seseorang bebas
untuk mendistribusikan proses
sebagaimana yang dianggap sesuai dalam
implementasi.
Sistem yang kami tangani seringkali sangat kompleks dan terdiri dari subsistem yang mungkin
saling berhubungan, di- gunakan
kembali, dan dikon gurasikan dengan berbagai cara.
Sebagai bahasa apa pun, SDL membutuhkan konsep
untuk kom- posisi, generalisasi, dan penggunaan kembali. Ini adalah:
komposisi:
ˆ Perilaku proses dari sub-urutan yang disebut prosedur; ˆ Blok dari
proses dan rute sinyal;
ˆ Sistem dan blok dari blok dan saluran; generalisasi dan penggunaan kembali:
ˆ Tipe konsep
untuk sinyal, prosedur, data, layanan, proses, blok dan sistem;
ˆ Mende nisikan jenis baru berdasarkan (tunggal)
warisan dari jenis lain;
ˆ Tipe pustaka
sebagai paket.
6
Bahasa
Konsep saja tidak membuat bahasa.
Bentuk sintaksis juga diperlukan. Sepertinya tidak penting, bentuk sintaksis
sangat penting bagi kegunaan praktisnya. SDL memiliki dua sintaks konkret:
ˆ SDL / GR yang
merupakan representasi gra k;
ˆ SDL / PR yang merupakan
representasi tekstual.
Bentuk gra k lebih disukai oleh kebanyakan orang untuk spesi-
kasi dan deskripsi kerja aktual, karena
lebih intuitif dan menampilkan hubungan yang lebih jelas
daripada bentuk tekstual. Fragmen
dalam bentuk tekstual tertanam dalam
bentuk gra k di mana teks lebih cocok, mis. untuk deklarasi
data, deklarasi sinyal dan operasi.
Bentuk tekstual
terlihat sedikit seperti
bahasa pemrogra- man. Ini
memiliki keuntungan karena tidak memerlukan
alat yang mahal, tetapi dapat diedit menggunakan
prosesor teks bi- asa.
Penggunaan dan tujuan utamanya adalah untuk berfungsi sebagai format pertukaran independen antar vendor. Dalam peran itu
memiliki kelemahan bahwa informasi
tata letak gra s hilang. Oleh karena itu bahasa pertukaran baru, CIF, saat ini
sedang dikembangkan yang juga melayani informasi
tata letak.
SDL membuat
pemisahan yang agak ketat antara struktur objek
dan perilaku. Berlawanan dengan beberapa bahasa lain, suatu proses bukan
hanya sepotong perilaku. Ini adalah objek
dengan perilaku yang dide nisikan sepenuhnya yang hanya da- pat disusun secara paralel
dengan objek lain untuk membentuk
struktur objek dengan perilaku bersamaan.
SDL berurusan dengan
struktur dengan cara yang berbeda dari model objek
dalam OMT [3], diagram hubungan entitas,
atau diagram aliran data. Dalam SDL adalah mungkin untuk mengidenti kasi instance, dan menunjukkan struktur arsitek- tur suatu
sistem dalam hal instances, banyak dengan cara yang sama seperti cetak biru
untuk mesin atau rumah menunjukkan bagian-bagiannya.
Fitur bahasa ini memungkinkan kami untuk memodelkan aspek-aspek distribusi dan interkoneksi struktural suatu sistem.
Bahasa membuat
perbedaan yang jelas antara jenis
dan con- toh. Suatu tipe dapat dide nisikan secara terpisah, dan
instance dapat dihasilkan dalam konteks banyak sistem. Kecuali diny- atakan
lain, kami akan menggunakan kata "proses" untuk men-
gartikan proses misalnya,
dan menggunakan "tipe proses" untuk merujuk pada konsep. Demikian pula
untuk sistem, blok, dan sinyal.
7
Describing Structure
7.1
System level
Dalam SDL, perilaku selalu dilakukan
dalam konteks suatu sis- tem. Tidak
masalah apakah itu perilaku sederhana yang terdiri dari satu proses tunggal,
atau perilaku kompleks yang terdiri dari sejumlah besar proses yang
diatur dalam hierarki blok. Titik
awal selalu merupakan deskripsi
tingkat atas dari suatu sistem. Mari kita mulai dengan deskripsi sistem. Luangkan sedikit waktu mempelajari Gambar 1
sebelum Anda membaca. Apakah Anda
dapat memahami apa pun tentang sistem dari membaca deskripsi tingkat atas ini?
Diagram sistem
seperti ini, tidak memberi tahu kita banyak ketika
dipelajari secara terpisah. Gambar 1 hanya
memberitahu kita bahwa sistem
khusus ini terdiri dari satu blok yang dise-
but AccessControlUnit, satu set 100 blok serupa yang disebut ap dari
tipe AccessPoint dan blok yang disebut op dari tipe OperationPoint.
Blok
(100) ap terhubung ke lingkungan melalui (100) saluran
yang disebut Panel dan (100) saluran
yang disebut Door, dan ke AccessControlUnit
melalui (100) saluran yang disebut Validasi.
Blok op terhubung ke lingkungan
melalui saluran yang dise- but Terminal dan ke AccessControlUnit
melalui saluran yang disebut
Operasi. Sinyal yang dikirimkan ke setiap
arah melalui saluran ditunjukkan oleh daftar sinyal yang dilampirkan pada panah pada saluran.
7.2
Block level
Dengan
menghadirkan level sistem,
kami secara tidak langsung telah menunjukkan beberapa tur
yang penting untuk men- gelola sistem
yang kompleks:
ˆ Dekomposisi top down. Kami
sudah mulai mendekati de- tail sistem
secara bertahap, dengan cara top down. Ini
adalah cara yang baik untuk mencapai
pemahaman ten- tang sistem yang ada, meskipun mungkin bukan cara itu
dikembangkan.
ˆ Komposisi
bottom-up. Kami telah melihat bahwa sis-
tem ini terdiri dari komponen yang
ditentukan pengguna. Komponen-komponen ini dapat berupa entitas yang kom- pleks
dan semena-mena.
ˆ Jenis komponen yang dapat digunakan kembali. Kita telah
melihat bahwa komponen dapat
dide nisikan secara
ter-
pisah sebagai tipe, yang memungkinkan instance
untuk dipakai banyak tempat dengan sedikit usaha.
ˆ
Ada dua perbedaan penting antara
sistem dan blok:
ˆ Blok hanya dapat
terjadi sebagai komponen di dalam sis- tem dan blok.
ˆ Sistem tidak dapat terjadi
sebagai komponen baik dalam sistem maupun dalam blok.
Oleh
karena itu, sistem hanya terjadi di tingkat atas, sedangkan
blok hanya terjadi di dalam. Blok
adalah wadah seperti sistem. Mereka didekomposisi menjadi blok dan saluran
secara rekur- sif pada tingkat sebanyak yang diinginkan sampai komponen dasar,
proses, tercapai. Gambar 3 adalah contoh yang menun-
jukkan diagram jenis blok untuk AccessPoint dan diagram blok
untuk AccessControlUnit (kami tidak
memberikan contoh blok yang diuraikan menjadi blok di sini). Dalam diagram
contoh ini kami mende nisikan blok dalam hal proses yang dikandungnya. Sekali
lagi, luangkan sedikit waktu untuk mencoba memahami diagram-diagram ini sebelum
membaca.
Dari diagram kita belajar bahwa
setiap blok tipe Access- Point berisi proses yang disebut
UserServer, proses yang disebut ds dari tipe DoorServer, dan satu atau dua
proses yang disebut ps tipe PanelServer.
Kami juga belajar bahwa PanelServer da- pat dibuat secara
dinamis oleh UserServer. Perhatikan bahwa kita hanya
perlu mende nisikan sinyal lokal di
sini, karena yang dide nisikan pada level blok luar masih diketahui.
AccessControlUnit
berisi satu proses yang disebut Access- Control.
Dalam SDL tidak diperbolehkan untuk mencampur
blok dan proses dalam diagram yang sama, dan tidak diizinkan untuk
memiliki proses pada level sistem, hanya pada
level blok. Ini adalah salah satu
alasan mengapa AccessControlUnit diwak- ili
sebagai blok di tingkat sistem, meskipun hanya
berisi satu proses.
Nama-nama yang kami gunakan sejauh ini tampaknya me- nunjukkan bahwa kami berurusan dengan sistem di mana antar- muka
pengguna akan terdiri dari
panel dan pintu. Memang, ini adalah sistem untuk kontrol akses di
gedung-gedung, di mana pengguna mengidenti kasi diri mereka
menggunakan kartu den- gan strip magnetik dan nomor identi kasi pribadi (PIN). Na- mun, ini hanya makna informal. Secara formal, kami hanya
mende nisikan beberapa proses, beberapa rute sinyal dan be- berapa
sinyal. Hanya dengan melihat ke dalam perilaku proses, kita akan belajar dengan tepat bagaimana sistem berhubungan dengan lingkungannya.
Perhatikan bahwa dekomposisi struktural suatu sistem men- jadi
blok dan proses
harus dilihat terutama
sebagai dekomposisi logis yang
dibuat untuk secara tepat mende nisikan perilaku abstrak sistem. Itu tidak
perlu sesuai dengan dekomposisi sik dari
sistem nyata. Ada banyak cara untuk memetakan sistem
SDL menjadi implementasi konkret, dan beberapa di antaranya akan terstruktur sangat berbeda dari
sistem SDL.
Kesulitan
yang diketahui saat menggambarkan perilaku reak-
tif adalah apa yang disebut
"ledakan negara" masalah. Dengan mendekomposisi sistem ke dalam
proses bersamaan, yang se in- dependen mungkin, masalah ini sangat berkurang.
Kami sekarang telah
mengidenti kasi proses yang berperi-
laku berurutan dan akan dapat menggambarkan perilaku mereka tanpa menghadapi ledakan negara.
Meskipun sistem berisi ra- tusan utas perilaku independen, kami sekarang dapat berkon- sentrasi pada
setiap utas secara terpisah. Kami semakin dekat
dengan inti SDL sekarang.
8
Perilaku
8.1
Mesin SDL
Proses SDL dideskripsikan sebagai extended Finite
State Ma- chines, FSM. FSM sangat cocok untuk tujuan SDL karena memu- ngkinkan perilaku rangsangan-respons
untuk dijelaskan dengan jelas, lengkap
dan tidak ambigu dalam hal rangsangan ekster-
nal dan tanggapan. Untuk alasan
ini FSM banyak
digunakan di berbagai bidang
seperti desain perangkat keras, desain pro-
tokol, desain kompiler dan metode rekayasa perangkat lunak. Ini telah
mendapatkan popularitas luas, dan sekarang terma-
suk dalam satu bentuk atau yang lain, dalam banyak metode rekayasa perangkat lunak. SDL
adalah khusus dalam bentuk khusus FSM diperpanjang yang digunakannya, dalam de nisi formal dan dalam cara bersamaan FSM
berkomunikasi dan da- pat dikomposisikan ke dalam sistem besar.
Port input berisi
antrian sinyal masuk yang tidak terbatas dan selalu siap untuk menerima sinyal
baru. Sinyal yang tiba di proses segera dimasukkan ke port input, di mana tetap sam- pai dikonsumsi oleh FSM.
Sinyal yang tiba pada suatu proses akan digabungkan
ke dalam port input sesuai urutan kedatan- gannya. Jika dua sinyal tiba pada saat yang sama, kon ik diselesaikan
dengan memilih urutan berurutan yang sewenang- wenang. Sinyal dari sumber
independen dapat tiba dalam uru- tan apa pun. Mesin keadaan terbatas
mengkonsumsi sinyal dari port input dalam urutan FIFO kecuali ketika pesanan di- modi kasi oleh operator penyelamat (lihat
bagian berikutnya). Untuk setiap sinyal yang dikonsumsi, ia melakukan satu tran-
sisi yang akan memakan waktu singkat tetapi tidak ditentukan. Karena bu ering sinyal di port input, dan dalam
menunda salu- ran, komunikasi dalam
SDL dikatakan asinkron.
Sinyal adalah pesan
tersendiri. Setiap sinyal memiliki nama yang digunakan FSM untuk memilih
transisi. Selain itu sinyal membawa identitas pengirim dan kemungkinan data
tambahan.
FSM
hanya akan mengkonsumsi sinyal ketika sedang dalam keadaan.
Jika tidak ada sinyal di port input untuk dikonsumsi,
itu akan tetap dalam status sampai
sinyal dimasukkan dan dikonsumsi. Untuk setiap sinyal yang dikonsumsi, FSM
melakukan transisi dari satu kondisi ke kondisi
lainnya (atau ke kondisi
yang sama). Pada setiap
transisi mungkin menghasilkan sinyal output, itu
dapat melakukan operasi pada variabel dan melakukan operasi timer.
Perilaku transisi-negara FSM ini diekspresikan dalam diagram proses.
8.2
Diagram Proses
Konten utama dari diagram proses adalah
gra k proses. Ini menentukan dengan tepat bagaimana proses akan menanggapi
setiap
input yang mungkin
di setiap negara
yang memungkinkan. Untuk setiap negara,
serangkaian transisi ditentukan. Untuk se- tiap transisi,
sinyal input yang dapat memicu
transisi ditentukan terlebih
dahulu, kemudian urutan tindakan (mungkin kosong) ditentukan sebelum negara
berikutnya dimasukkan.
8.3
Diagram sistem
Frame Symbol
Sistem itu sendiri diwakili
oleh simbol bingkai
yang mewakili batas sistem. Di luar bingkai adalah lingkungan, yang
tidak di- jelaskan. Simbol
bingkai yang sama
digunakan dalam semua
di- agram SDL yang berbeda untuk
membatasi entitas yang dide n- isikan
dari lingkungannya.
Heading
Di sudut kiri atas di dalam bingkai, kami menemukan
tajuk. Ini terdiri dari teks yang dimulai dengan SISTEM kata kunci diikuti dengan nama sistem, di
sini AccessControl. Judul ini juga
merupakan tur umum dari semua diagram, tetapi kata
kunci akan tergantung pada
jenis entitas yang dide nisikan.
Page numbers
Di sudut kanan atas ada dua angka. Ini adalah nomor
hala- man. Angka pertama adalah jumlah halaman saat ini, yaitu 1 untuk halaman pertama, dan nomor kedua
adalah jumlah hala- man yang terdiri
dari diagram ini, yaitu 2 halaman dalam hal ini. Diagram SDL mungkin
secara umum, membutuhkan beber- apa halaman dan penomoran halaman selalu dilakukan
dengan cara yang sama.
Block
interaction area
Di dalam bingkai, kami menemukan tubuh sistem dide n- isikan
dalam hal blok dan saluran.
Ini juga mende nisikan salu- ran yang menghubungkan sistem ke lingkungan.
ˆ Block symbols. Blok diwakili oleh simbol persegi pan- jang, masing-masing mewakili
baik satu blok atau satu set
blok yang sama. Isi simbol dapat
mengambil tiga bentuk berbeda:
i.
Block reference. Ini hanyalah
sebuah nama. Nama mengacu pada
diagram blok terpisah yang berisi de nisi aktual
dari blok. Ini selalu merupakan blok tunggal.
ii.
Typebased block de nition. Dalam
hal ini, simbol berisi nama blok dan nama tipe blok yang dipisahkan oleh titik dua, dan jumlah
instance opsional. Ini juga mengandung
satu atau lebih nama gerbang. Jenis blok yang
dimaksud dapat dide nisikan secara lokal, seperti
halnya di sini, atau dalam unit lingkup
sekitarnya. Karena tipe blok ditentukan secara
independen dari bagaimana instance saling berhubungan, mereka memiliki gerbang
ke saluran eksternal mana yang
dapat dihubungkan.
iii.
Block diagram. Dimungkinkan untuk
mende nisikan blok yang bersarang
secara langsung di dalam simbol blok. Ini
tidak ditunjukkan dalam contoh kami, dan
tidak ter-
lalu praktis untuk sistem yang lebih besar.
ˆ Channel symbols.
Satu-satunya cara untuk
mengirimkan sinyal antar blok
adalah melalui saluran. Saluran diwak-
ili
oleh garis-garis dengan panah yang menunjukkan arah aliran sinyal melalui saluran.
Sinyal-sinyal saluran dil- ambangkan
dengan daftar sinyal (dan signallists) dalam
tanda kurung. Aliran dapat berupa uni-directional atau
bi-directional.
Ada dua jenis saluran:
i.
Saluran tanpa penundaan. Dalam hal
ini panah ditem- patkan di ujungnya.
ii.
Saluran dengan penundaan. Dalam
hal ini panah tidak ditempatkan di
ujung, tetapi di suatu tempat di sepan- jang garis. Saluran ini memiliki
antrian FIFO implisit di setiap
arah, dan dapat menunda sinyal untuk waktu yang sewenang-wenang.
Kedua jenis saluran akan mengirimkan sinyal pada titik akhir
tujuan dalam urutan yang sama ketika mereka
dimasukkan ke dalam saluran. Jika dua sinyal disajikan secara bersamaan
ke saluran, mereka akan dimasukkan ke dalam saluran secara
acak. Saluran yang terhubung ke set blok akan benar-benar mewakili set instance saluran,
sehingga sebenarnya ada 100 instance
salu- ran Validasi dalam sistem kami. Setiap saluran (atau set salu- ran) harus memiliki nama, dan titik
akhir saluran dilampirkan ke blok yang dihubungkan oleh saluran tersebut
atau ke simbol bingkai jika saluran tersebut merupakan tautan ke lingkungan.
Tipe
area sistem.
Di sini kita mende nisikan
tipe blok, tipe proses, tipe layanan, dan prosedur yang bersifat
lokal bagi sistem. Dimungkinkan un- tuk mende nisikan
tipe baik secara
langsung, atau dengan
refer- ensi. Dalam Gambar 2 de nisi tipe untuk AccessPoint dan Op-
erationPoint direferensikan menggunakan persegi panjang dua sisi yang berisi
nama tipe. Tujuan dari simbol-simbol
ini adalah untuk menunjukkan di mana de nisi tipe dilokalkan tanpa harus memberikan de nisi penuh pada saat itu.
Simbol teks
Simbol teks berisi
deklarasi dan teks informal. Mereka tidak spesi k untuk diagram sistem, tetapi
terjadi di semua jenis di- agram SDL. Dalam diagram sistem dan blok simbol teks
akan berisi:
ˆ Signal De nition. Dalam
SDL perlu untuk
mendeklarasikan semua sinyal sehingga
mereka terlihat oleh proses yang
menanganinya. Sinyal dideklarasikan di dalam simbol
teks. Deklarasi memberikan nama
sinyal dan jenis
parameternya, jika ada.
ˆ Signal list.
Seringkali daftar sinyal yang terkait dengan
saluran cukup komprehensif dan diagram
menjadi ramai. Pemberi sinyal
membantu memperbaiki hal ini. Signal- list adalah daftar sinyal yang telah
diberi nama. Daftar ini juga dapat menyertakan
sinyal penghitung waktu atau nama signallist lainnya.
Jika signallist berisi signallist lain, nama
signallist akan muncul dalam tanda kurung.
ˆ Data de nition.
De nisi tipe data lokal.
ˆ Notes. Notes adalah teks penjelasan yang dianut
oleh / *
... * /.
8.4
Diagram Blok
Block
diagrams sangat mirip dengan diagram
sistem. Ada sim- bol bingkai, area interaksi, area de
nisi jenis dan simbol teks. Perbedaannya adalah sebagai berikut:
ˆ Heading. Kata
kunci tersebut adalah
BLOCK atau BLOCK
TYPE. Jika "tipe blok", nama dapat diikuti
oleh param-
eter konteks formal dan spesialisasi.
Ini akan dijelaskan dalam makalah [1].
ˆ Gate de nitions. Gates diidenti kasi dengan nama ger- bang dan simbol
gerbang. Ini seperti
simbol rute sinyal,
tetapi dipasang di luar simbol frame.
Gates dapat diband- ingkan dengan
"colokan" peralatan rumah tangga. Mereka
digunakan untuk "pasang" contoh dengan benar. Sig- nallist (opsional) membantu memastikan
bahwa instance tipe blok terhubung
dengan benar ke lingkungan mereka.
Perhatikan bahwa gerbang hanya digunakan dengan tipe. Simbol di
luar bingkai blok tunggal seperti AccessControl- Unit, mewakili saluran aktual yang terhubung ke blok itu.
ˆ Block substructure area. Di sini tubuh blok dide nisikan
dalam hal blok dan saluran
dengan cara yang
sama seperti
tubuh diagram sistem. Alternatif ini tidak
ditunjukkan dalam contoh kami, tetapi
digunakan dalam kasus yang lebih kompleks
di mana kita perlu menguraikan blok pada beberapa level sebelum mencapai
proses. Blok berisi
area interaksi proses (lihat di bawah) atau area substruktur. Mungkin juga
mengandung keduanya, dalam
hal ini mereka
dianggap sebagai de nisi alternatif dari blok.
ˆ Process interaction area. Di sini
badan blok dide
nisikan dalam hal proses dan rute sinyal.
Rute sinyal persis
seperti
saluran tanpa penundaan. Mereka dide
nisikan dengan cara yang sama dan berperilaku dengan cara yang sama. Simbol proses
sedikit berbeda dari simbol blok, sehingga
mudah untuk melihat bahwa itu adalah
jenis entitas yang berbeda. Dengan
cara yang sama seperti balok, proses muncul dalam tiga bentuk:
i.
Process reference. Ini adalah
simbol proses yang berisi nama yang
merujuk pada de nisi proses dalam diagram terpisah. Secara opsional dapat
menentukan jumlah min- imum dan
maksimum contoh, di mana jumlah minimum dibuat ketika sistem dibuat, dan sisanya dapat dibuat se- cara dinamis.
ii.
Typebased process de nition. Ini
adalah simbol proses yang berisi nama proses dan nama tipe yang dipisahkan oleh titik dua, dan secara
opsional serangkaian instance dengan cara yang sama seperti di atas.
iii. Process
diagram. Ini adalah diagram, yang mende n-
isikan perilaku proses, langsung di
area interaksi proses. Opsi ini hanya berguna untuk diagram yang sangat kecil
dan tidak diilustrasikan di sini.
ˆ Type in block area. Seperti dalam diagram sistem, ini adalah
tempat untuk de nisi lokal tentang
tipe blok, tipe
proses, tipe layanan, dan prosedur.
ˆ Data de nitions. Tipe blok dapat berisi de nisi
tipe data, tetapi tidak ada
deklarasi variabel.
8.5
Diagram Proses
Diagram proses mengikuti prinsip-prinsip keseluruhan yang
sama yang digunakan dalam
semua diagram SDL: ada simbol frame dan heading. Di luar bingkai adalah gerbang, jika diagram mende nisikan jenis proses.
Di dalam kami menemukan area yang
mengandung gra k proses itu sendiri, kami menemukan
simbol teks yang berisi deklarasi, dan kami menemukan (prose- dur) simbol referensi. Berikut
ini adalah ringkasan singkat dari elemen-elemen utama yang khusus
untuk memproses diagram.
Tajuk Kata kunci
adalah PROSES atau JENIS PROSES. Proses mungkin memiliki parameter. Ini adalah
variabel lokal yang akan menerima nilai awal saat proses dibuat.
Gra k
proses
ˆ Start. Ada satu dan hanya satu simbol
awal per diagram proses.
Ini diikuti oleh transisi awal yang
dipicu ketika
proses
dibuat.
ˆ State, sebelah negara bagian. Negara ditunjuk
dengan nama negara. Simbol negara dengan nama yang sama
mewakili
negara yang sama.
ˆ Input. Simbol input menentukan nama sinyal dan juga untuk variabel lokal
mana parameter sinyal
akan ditetap-
kan,
jika ada.
ˆ Output. Simbol
keluaran menentukan nama
sinyal dan nilai parameter sinyal,
jika ada. Selain itu mereka dapat
menentukan proses tujuan dengan klausa
TO dan / atau klausa VIA. Klausa TO menentukan proses tujuan baik dengan nama atau nilai PId. Klausa VIA digunakan
untuk
membuat daftar jalur signalroutes dan
saluran di mana sinyal akan dikirim. Klausa VIA juga dapat menentukan gerbang. Jika klausa TO- dan VIA-18 dihilangkan, harus ada tujuan unik untuk sinyal berdasarkan nama sinyalnya.
ˆ Save. Simbol simpan mencantumkan nama-nama sinyal yang harus disimpan, dan tidak dikonsumsi, dalam keadaan.
ˆ Task. Task digunakan untuk
mengatur nilai data
berdasarkan penugasan. Simbol
tugas dapat berisi
daftar tugas yang
dipisahkan oleh koma. Atau simbol tugas
dapat berisi teks informal, di
mana penugasan formal tidak dianggap sesuai. Sisi kanan simbol operator penugasan mewakili ekspresi. Kejadian variabel di sebelah kanan operator penugasan berarti
mengekstraksi nilai dari variabel. Vari- abel
di sebelah kiri operator penugasan dimodi kasi
untuk menjadi nilai ekspresi dari sisi
kanan.
ˆ Timer operations. Operasi pengatur waktu
ditempatkan di dalam simbol
tugas. Ketika timer belum SET, itu
tidak aktif.
Ketika SET, itu menjadi aktif.
Timer diatur
dengan nilai TIME. Jika timer aktif SET, maka timer akan terus aktif dengan nilai TIME baru. RESET menye- babkan timer menjadi tidak aktif dan
memastikan bahwa sinyal batas waktu
tidak akan dikonsumsi oleh proses.
ˆ Decision. Simbol keputusan digunakan untuk memilih
di antara berbagai tindakan alternatif berdasarkan suatu
pertanyaan. Pertanyaannya ditulis dalam simbol keputu- san dan dapat berupa ekspresi formal (seperti yang ada dalam contoh kita) atau teks informal.
Pada masing- masing alur dari simbol keputusan
ada jawaban. Jalannya tindakan akan mengikuti garis di mana jawaban yang be- nar dikaitkan.
Keputusan mengubah aliran kontrol sesuai
dengan nilai-nilai variabel internal, sementara keadaan / input
membangun perubahan aliran kontrol sesuai den-
gan rangsangan eksternal. Seringkali ini masalah desain apakah kita menggunakan status dan sinyal atau keputu- san.
ˆ Procedure Call.
Simbol-simbol pemanggilan prosedur menyeru- pai simbol-simbol prosedur (referensi), tetapi sudut-sudutnya
berbeda. Perhatikan bahwa simbol
panggilan prosedur memiliki satu dan hanya satu pintu masuk dan satu dan hanya
satu pintu keluar.
ˆ Create Request.
Ini menyebabkan instance proses
dibuat dan diberi nilai parameter awal.
Hanya anggota proses
yang
menetapkan jumlah instance
maksimum yang belum tercapai yang dapat dibuat.
Perhatikan bahwa blok tidak dapat dibuat secara dinamis. Dalam
diagram blok, kreasi dapat
ditunjukkan oleh garis putus-putus dari proses in- duk ke proses keturunan.
ˆ Stop. Sementara proses dibuat oleh orang tua mereka
(atau
secara implisit pada waktu start-up), proses mungkin
tidak saling membunuh. Proses berakhir
jika mereka men- capai simbol Stop. Ketika suatu proses telah dihentikan,
setiap upaya untuk referensi proses itu akan menghasilkan kesalahan.
Text area.
ˆ
Variabel. Variabel dalam SDL
dideklarasikan dengan cara
yang sama seperti
dalam bahasa pemrograman. DCL adalah kata kunci yang mendahului
deklarasi data. Daftar nama berikut ini diakhiri oleh nama sortir. Sortir
adalah istilah
teknis SDL untuk apa yang biasanya
disebut tipe data.
ˆ Timers and time. Penghitung waktu dinyatakan mirip dengan variabel. Waktu
adalah tipe data khusus dan
terutama digunakan sehubungan dengan
timer. Ekspresi "NOW + 5" adalah nilai waktu, dan itu menambahkan
ekspresi waktu NOW dan Durasi 5 (di sini detik). NOW adalah operator tipe data waktu
dan mengembalikan real-
time saat ini. Durasi adalah tipe data khusus lainnya dan juga terutama
digunakan sehubungan dengan penghitung
waktu. Pengatur waktu seperti jam alarm. Mereka akan mengeluarkan sinyal time-out ketika waktu mereka ter- capai.
Mungkin ada beberapa timer berbeda yang aktif
secara bersamaan.
ˆ Process Identi
er, PId. Setiap
proses SDL memiliki iden- ti kasi unik yang merupakan nilai dari tipe data PId. Ek-
spresi PId digunakan terutama sebagai tujuan output. Ni-
lai PId diperoleh dari ekspresi PId
berikut yang telah di- tentukan sebelumnya dalam semua proses:
i. SELF
Proses itu sendiri.
ii.
OFFSPRING contoh proses terbaru
yang dibuat oleh proses ini.
iii.
PARENT proses pembuatan, jika proses
ini dibuat secara dinamis.
iv.
SENDER pengirim sinyal yang paling
baru dikon- sumsi oleh proses ini.
ˆ Data types.
SDL memiliki tipe
standar yang sangat
mirip dengan yang kita
ketahui dari bahasa
pemrograman. Se-
lain itu, dimungkinkan untuk menentukan
tipe data baru menggunakan generator dan struktur. Dimungkinkan juga untuk mende
nisikan tipe yang sepenuhnya baru, meng- gunakan
pendekatan aksiomatik.
Comment and text extension symbols
Ini sangat mirip,
tetapi dibedakan oleh garis asosiasi. Baris asosiasi untuk simbol komentar
terputus-putus, sedangkan un-
tuk ekstensi teks solid. Seperti
namanya, ekstensi teks adalah ekstensi teks dalam simbol.
Type in
process area.
Area ini berisi
diagram jenis layanan dan / atau diagram prosedur, atau referensi ke diagram
tersebut. Hanya simbol prosedur (referensi) yang ditunjukkan dalam contoh di
sini.
Procedure
Diagram.
Prosedur adalah unit lingkup dan mereka
mungkin memi- liki deklarasi variabel mereka sendiri. Prosedur mengandung
mekanisme yang sama untuk menggambarkan perilaku seperti yang ditemukan dalam proses, tetapi
prosedur bukan aktor mereka
sendiri. Penafsiran dilakukan oleh proses di mana mereka
diny-
atakan. Fitur khusus diagram
prosedur adalah:
ˆ Parameter. Prosedur
dide nisikan dengan
parameter for- mal
yang menerima nilai
aktual ketika
prosedur dipang-
gil. Parameter dapat dilewatkan dengan nilai, yang
meru- pakan standar, atau dengan referensi.
ˆ Prosedur memulai
dan mengembalikan simbol.
Dua sim- bol khusus
mewakili awal prosedur dan kembali dari prose-
dur.
9
SDL dan Bahasa lain
SDL
sangat cocok untuk
menjadi inti dari proyek skala penuh karena kemampuannya untuk berinteraksi dengan
bahasa lain. Bahasa tersebut mencakup notasi tingkat
tinggi lainnya untuk
analisis seperti teknik pemodelan objek (OMT) / model ba- hasa
pemodelan yang tidak terikat (UML) dan kasus penggu-
naan mobile switching center
(MSC), serta notasi
sistem abstrak satu (ASN.1) atau
de nisi arsitektur tipe broker permintaan ob- jek umum (CORBA) / bahasa deskripsi antarmuka (IDL).
Se- lain itu, ada alat yang tersedia yang dapat menghasilkan kode yang dapat
dieksekusi misalnya, C / C ++ atau ITU ba-
hasa tingkat tinggi
(CHILL), langsung dari desain SDL. Pen- gujian juga dapat dihasilkan dari spesi kasi SDL dengan mem- buat rangkaian uji dalam pohon dan gagasan
gabungan tabu- lar (TTCN).
Lihat Gambar 1 untuk hubungan
antara bahasa- bahasa ini.
Biasanya, prosedur mulai dari analisis
persyaratan hingga penerapan dan pengujian produk akan melibatkan langkah-langkah
berikut:
ˆ
Kumpulkan persyaratan awal dalam
dokumen teks.
ˆ Analisis sistem
studi menghasilkan sejumlah
model objek OMT / UML dan kasus penggunaan MSC yang menggam-
barkan skenario tipikal. Kelas yang dihasilkan diimple- mentasikan dalam SDL sebagai diagram
blok SDL dan de
nisi tipe data SDL / ASN.1 / IDL.
ˆ Lengkapi diagram
SDL dan spesi
kasi ASN.1 atau IDL
ke tingkat di mana mereka dapat disimulasikan dan diperiksa
untuk konsistensi dengan analisis persyaratan
sistem.
ˆ Gunakan veri
kasi dan validasi untuk
menentukan apakah properti yang diperlukan telah diterapkan dengan benar
dan lengkap. Prosedur veri kasi juga
mendeteksi kesala- han umum seperti deadlock, balapan sinyal, kehilangan
sinyal, dll. Ketika desain SDL terbukti konsisten dengan persyaratan, kode
untuk aplikasi dapat dihasilkan.
ˆ Buat test suite di TTCN. Tes dapat dihasilkan dari spesi-
kasi SDL. Dalam beberapa kasus,
tes semacam itu sudah
tersedia
(mis., Dari badan standardisasi).
ˆ Hasilkan kode untuk membuat
suite uji yang dapat diek- sekusi yang dapat dijalankan dalam sistem pengujian.
ˆ Jalankan tes yang dapat dieksekusi dan uji aplikasi
di lingkungan target.
10
Karakteristik SDL
SDL adalah bahasa desain dan
implementasi yang didedikasikan untuk
sistem teknis canggih (yaitu, sistem waktu-nyata, sistem terdistribusi, dan
sistem yang digerakkan oleh
peristiwa umum di mana kegiatan paralel dan komunikasi dilibatkan). Area ap-
likasi yang umum adalah sistem telekomunikasi tingkat tinggi dan rendah, sistem aerospace, dan
sistem misi kritis yang ter- distribusi
atau sangat kompleks.
SDL memiliki
serangkaian karakteristik khusus yang mem- bedakannya dari teknologi lain:
ˆ standard SDL adalah bahasa berstandar internasional nonproprietary (standar ITU-T Z.100 dan Z.105).
ˆ formal SDL adalah bahasa
formal yang memastikan ketepatan, konsistensi, dan kejelasan dalam
desain yang sangat
pent-
ing untuk aplikasi mission-critical
(mis., Sebagian besar sistem teknis).
ˆ graphical and symbol-based SDL adalah bahasa berba-
sis gra s dan simbol yang memberikan kejelasan dan ke-
mudahan penggunaan. Desain SDL adalah
implementasi dan dokumentasinya sendiri.
ˆ object-oriented (OO) SDL adalah enkapsulasi bahasa
OO sepenuhnya mendukung,
polimor sme, dan mengikat
dinamis. Selain itu, SDL memperluas
konsep kelas OO berorientasi data tradisional dengan menyesuaikannya un- tuk
aplikasi teknis dan memperkenalkan konsep OO untuk objek aktif (mis., Sistem,
blok, dan mesin negara).
ˆ highly testable SDL memiliki tingkat testabilitas yang tinggi sebagai hasil
dari formalismenya untuk
paralelisme,
antarmuka,
komunikasi, dan waktu. Peningkatan kuali- tas dan kecepatan sangat dramatis
dibandingkan dengan teknik desain nonformal tradisional.
ˆ portable, scalable, and open SDL portable,
scalable, dan terbuka. Implementasi
SDL tidak tergantung pada
kompiler silang, sistem operasi,
prosesor, mekanisme ko- munikasi
antarproses, dan metode distribusi. Implemen- tasi SDL tunggal dapat
digunakan untuk banyak arsitek- tur dan kon gurasi target yang berbeda.
ˆ highly reusable SDL menyediakan
tingkat penggunaan kembali yang tinggi. Karena kejernihan visual,
kemam-
puan uji, konsep
OO, antarmuka yang jelas,
dan mekanisme abstraksi, desain SDL memiliki tingkat usabilitas yang
jauh lebih tinggi daripada jenis desain atau implementasi lainnya.
ˆ e cient Formalisme
dan tingkat abstraksi yang disedi- akan
oleh SDL memungkinkan untuk menerapkan teknik
optimisasi
canggih untuk kompilasi silang.
11
Model dan
Struktur Teoritis
11.1
Model Teoritis
Model teoritis dasar dari sistem SDL terdiri dari satu set mesin
negara terbatas hingga (FSM) yang berjalan secara
paralel. Mesin- mesin ini independen satu sama lain dan berkomunikasi dengan
sinyal diskrit.
Sistem SDL terdiri dari
komponen-komponen berikut:
ˆ
structure hirarki sistem, blok,
proses, dan prosedur
ˆ communication sinyal
dengan parameter dan saluran
sinyal opsional (atau rute sinyal)
ˆ
behavior Proses
ˆ
data tipe data abstrak (ADT)
ˆ inheritance menggambarkan hubungan dan spesialisasi
Subbagian berikut ini memperkenalkan konsep dasar.
11.1.1
Structure
SDL terdiri
dari empat level
hierarki utama: ˆ system
ˆ blocks
ˆ processes ˆ procedures
Membagi suatu sistem menjadi hirarki sistem, blok,
dan proses disebut mempartisi sebuah sistem. Tujuan dari partisi meliputi:
ˆ menyembunyikan informasi (memindahkan detail yang
tidak penting dalam ikhtisar ke level
yang lebih rendah)
ˆ
mengikuti subdivisi fungsional alami
ˆ membuat modul dengan ukuran yang dapat dikelola se-
cara intelektual
ˆ membuat korespondensi dengan perangkat lunak
atau perangkat keras yang sebenarnya
ˆ menggunakan
kembali spesi kasi yang sudah ada
Setiap tipe proses SDL dide nisikan
sebagai mesin status hier- arki bersarang. Setiap mesin substrat
diimplementasikan dalam suatu prosedur. Prosedur dapat
bersifat rekursif; mereka bersi- fat lokal untuk
suatu proses atau mereka dapat tersedia secara global tergantung pada ruang
lingkup mereka. SDL juga men- dukung
paradigma prosedur jarak jauh, yang memungkinkan
seseorang untuk membuat panggilan prosedur yang dieksekusi dalam konteks proses lain.
Proses SDL memiliki
ruang memori yang terpisah, (mis., Data bersifat lokal untuk suatu proses atau prosedur). Ini adalah aspek yang sangat penting yang
secara dramatis mengurangi jumlah kekurangan dan meningkatkan ketahanan.
Seperangkat proses dapat secara
logis dikelompokkan ke dalam
blok (yaitu, subsistem). Blok dapat bersarang di dalam satu sama lain
untuk secara rekursif memecah sistem menjadi sub- sistem enkapsulasi yang lebih
kecil dan dikelola. Mekanisme break-down ini penting untuk upaya pengembangan tim besar, dan SDL menyederhanakan ini dengan juga menyediakan antar-
muka yang jelas antara subsistem.
11.1.2
Struktur Statis dan Dinamis
Struktur statis suatu sistem dide
nisikan dalam hal blok dan saluran. Blok dianggap sebagai modul dengan model
kotak hi- tam yang terkenal.
Struktur dinamis
dide nisikan dengan bantuan proses dan konsep
rute sinyal. Suatu proses adalah perangkat independen yang bereaksi
terhadap rangsangan dalam
bentuk sinyal (konsep
proses dijelaskan lebih lengkap dalam sub-bab Perilaku).
11.1.3
Communication
SDL tidak menggunakan data global apa
pun. SDL memiliki dua mekanisme komunikasi dasar:
sinyal asinkron (dan param- eter
sinyal opsional) dan panggilan prosedur jarak jauh yang sinkron. Kedua mekanisme dapat membawa parameter untuk bertukar dan menyinkronkan informasi
antara proses SDL dan dengan sistem SDL dan lingkungannya (mis., Aplikasi non-SDL atau sistem SDL lainnya).
SDL mende nisikan antarmuka yang jelas antara blok dan
proses melalui saluran gabungan dan arsitektur rute sinyal. Ar- sitektur
komunikasi ini dengan antarmuka sinyal yang jelas se- cara
formal menyederhanakan pengembangan tim besar dan
memastikan konsistensi antara berbagai bagian sistem.
SDL mende nisikan
waktu dan timer dengan cara yang cer- das dan abstrak. Waktu adalah aspek penting dalam semua sistem waktu nyata tetapi juga di sebagian besar sistem
ter- distribusi. Proses SDL dapat mengatur timer yang kedaluwarsa dalam periode
waktu tertentu untuk
mengimplementasikan time- out ketika pengecualian terjadi tetapi juga untuk mengukur dan
mengontrol waktu respons dari proses dan sistem lain.
Ketika
penghitung waktu SDL kedaluwarsa, proses
yang mem- ulai penghitung waktu menerima pemberitahuan (sinyal) den-
gan cara yang sama seperti saat menerima sinyal lainnya. Sebe- narnya timer kedaluwarsa diperlakukan dengan cara yang persis
sama dengan sinyal. Waktu SDL adalah
abstrak dalam arti da- pat secara e sien dipetakan ke waktu sistem target, baik itu timer sistem operasi atau timer perangkat keras. Ini memu-
ngkinkan untuk mensimulasikan waktu
dalam model SDL se- belum sistem target tersedia.
Aspek-aspek lain
dari konsep pensinyalan di SDL adalah se- bagai berikut:
ˆ Prioritas sinyal dan proses tidak
berada dalam ruang
lingkup SDL. Masalah-masalah
ini sebagai gantinya diserahkan
ke fase implementasi di mana pengguna
dengan arahan khusus dapat menetapkan sinyal dan prioritas proses.
ˆ Sinyal SDL hanya
dapat dikirim ke satu
instance proses tertentu pada suatu
waktu. Untuk mengaktifkan penyiaran,
pengguna dapat menyertakan paket dengan beberapa
fungsi tujuan umum yang akan menyediakan mekanisme penyiaran dalam implementasi.
11.1.4
Behavior
Perilaku dinamis dalam sistem
SDL dijelaskan dalam
proses. Hi- rarki sistem / blok hanya deskripsi statis dari struktur sistem. Proses dalam SDL dapat dibuat pada saat sistem
mulai atau
dibuat dan diakhiri pada saat
dijalankan. Lebih dari satu con- toh
proses dapat ada. Setiap instance memiliki pengidenti kasi proses (PId) yang unik. Hal ini memungkinkan untuk mengirim sinyal ke setiap
contoh proses. Konsep
proses dan proses
proses yang bekerja secara otonom dan bersamaan menjadikan SDL bahasa waktu nyata yang sebenarnya.
11.1.5
Data
SDL menerima dua cara untuk
menggambarkan data, tipe data abstrak (ADT) dan ASN.1. Integrasi ASN.1
memungkinkan berbagi data antar bahasa, serta penggunaan kembali struktur data
yang ada.
Konsep ADT yang digunakan dalam SDL sangat
cocok un- tuk bahasa spesi kasi. Tipe data abstrak adalah
tipe data tanpa struktur data yang ditentukan. Alih-alih, ia
menetap- kan serangkaian nilai, serangkaian operasi yang diizinkan, dan serangkaian persamaan yang harus
dipenuhi oleh operasi. Pen- dekatan
ini membuatnya mudah untuk memetakan tipe data SDL ke tipe data yang digunakan dalam bahasa tingkat
tinggi
lainnya.
Himpunan jenis yang telah
ditentukan di SDL
memungkinkan untuk bekerja dengan data dalam SDL dengan cara
tradisional. Variabel jenis standar,
seperti yang berikut, dapat dideklarasikan:
ˆ integer ˆ real
ˆ natural ˆ boolean
ˆ character ˆ duration ˆ time
ˆ charstring ˆ PId
ˆ complex data sorts
Deskripsi penggunaan ADT yang lebih maju berikut, di mana konsep operator digunakan untuk menyembunyikan manipulasi data.
12
Cara
Menggunakan ADT Lanjutan
ADT di SDL dapat digunakan untuk lebih
dari sekadar merep- resentasikan data, seperti untuk yang berikut:
ˆ menyembunyikan
manipulasi data
ˆ menyembunyikan bagian algoritmik dari suatu spesi
kasi ˆ membuat antarmuka ke rutinitas eksternal
Fungsi pembaruan operator adalah untuk memperbarui basis data hasil lengkap dan menghitung
ulang tempat untuk semua peserta
setelah hasil baru. Ini adalah contoh algoritma pengu- rutan dan pencarian yang jauh lebih baik disembunyikan di
op- erator daripada diungkapkan dalam SDL gra s biasa. Namun, operator harus dijelaskan menggunakan diagram SDL.
12.1
Inheritance
Konsep OO SDL memberi pengguna alat
yang kuat untuk pe- nataan dan penggunaan kembali. Konsep ini didasarkan pada deklarasi tipe. Ketik deklarasi dapat
ditempatkan di mana saja, baik di dalam
sistem yang dekat dengan konteksnya, atau pada tingkat sistem.
Gambar 7 menunjukkan sistem kontrol akses dengan jenis blok dan proses di tingkat sistem.
Deklarasi tipe juga dapat ditempatkan dalam paket di luar sistem, untuk berbagi dengan sistem lain.
Salah satu manfaat
utama menggunakan bahasa berorien- tasi objek adalah cara sederhana dan
intuitif objek baru dapat dibuat dengan menambahkan properti baru ke objek yang
ada atau dengan mende nisikan ulang properti objek yang ada. In- ilah yang
biasa disebut sebagai spesialisasi.
Dalam SDL,
spesialisasi tipe dapat dilakukan dengan dua cara:
ˆ Subtipe mungkin
menambahkan properti yang
tidak dide n- isikan dalam supertipe. Misalnya, seseorang dapat
menam-
bahkan transisi baru ke jenis proses,
menambahkan proses
baru
ke jenis blok, dll. (Lihat Gambar 8).
ˆ Subtipe dapat mende nisikan ulang tipe virtual dan tran-
sisi virtual yang dide nisikan dalam
supertype. Dimungkinkan
untuk mende nisikan
ulang konten transisi
dalam tipe proses, untuk mende nisikan ulang konten /
struktur tipe blok,
dll.
13
Sharing
Information, Reuse, and Main- tenance
13.1
Sharing
Information Packages
Paket SDL adalah pustaka
SDL gra s yang mende nisikan struk- tur data, sinyal, tipe proses,
tipe blok, dan tipe sistem yang dapat dibagi antara sistem dan proyek SDL. Ini
memfasilitasi aspek pemeliharaan dan penggunaan kembali
untuk aplikasi be- sar dan memungkinkan untuk berbagi
informasi antara banyak sistem.
13.2
Reuse and
Maintenance (Specialized In- heritance
and Polymorphism)
Selain mendukung data berorientasi
objek (mis., Objek pasif berorientasi
objek) SDL juga mendukung semua tur berori-
entasi objek untuk objek aktif misalnya, sistem, blok, dan mesin negara
hingga tingkat transisi. Ini memperluas konsep
kelas pasif tradisional yang lebih berorientasi pada aplikasi non- teknis
dan ditemukan di UML, OMT, C ++, dan Java. SDL mengkhususkannya untuk aplikasi teknis
(yaitu, sistem waktu- nyata, sistem
terdistribusi, dan sistem berbasis peristiwa, di
mana ada fokus yang lebih berat pada komunikasi
dan objek aktif berorientasi negara).
14
Keterbukaan, Portabilitas, Skalabil- itas, dan Aplikasi
Terdistribusi
14.1
Keterbukaan
Standar SDL terbaru (SDL 96) menetapkan prosedur eksternal
(mis., Prosedur yang diterapkan di luar sistem SDL). Prosedur ini dapat
diimplementasikan dalam bahasa selain SDL, seperti
kode C. Dengan standar ITU Z.105, SDL dikombinasikan den- gan
ASN.1. Ekstensi ini ke SDL
memungkinkan pilihan antara mendeklarasikan data
sesuai dengan sintaks
SDL asli atau
sesuai dengan ASN.1. Modul ASN.1 diperlakukan sebagai paket SDL dan
dapat, misalnya, dibagi antara desain SDL dan test suite TTCN.
14.2
Portabilitas
dan Skalabilitas
Fitur utama SDL adalah mekanisme
abstraksi untuk portabil- itas yang mulus antara cross-compiler dan sistem
operasi. Se- lain itu, mekanisme
abstraksi yang sama memungkinkan peng-
guna untuk memilih cara memetakan
proses SDL ke proses sik, skema IPC (komunikasi antarproses), dan waktu sesuai dengan apa yang
paling e sien dalam setiap kasus aktual. Implemen-
tasi yang sama dapat digunakan untuk banyak kon gurasi dan kernel yang berbeda, mulai dari sistem
monotask kecil hingga sistem multiprosesor kelas atas.
14.3
Aplikasi Terdistribusi
Mekanisme abstraksi yang sama yang
membuat implementasi SDL independen dari cross-compiler, sistem operasi, dan
IPC dan skema pemetaan proses juga membuat sistem SDL inde- penden dari
arsitektur distribusi dan metode distribusi. Ini membuat SDL bahasa yang
sempurna untuk pemodelan dan penerapan sistem terdistribusi. Satu model SDL
mendukung banyak kon gurasi distribusi sik.
15
Graphical dan
Textual Notations dan Application Areas
15.1
Graphical dan Textual
Notations
Bahasa
SDL mendukung dua notasi yang setara. Selain
notasi gra s (SDL
= GR), notasi tekstual
(SDL = PR) distandarisasi.
15.2
Application Areas
Meskipun SDL berevolusi dalam
telekomunikasi, ini menjadi se- makin populer di industri lain juga. Beberapa
contoh aplikasi SDL di luar area telekomunikasi meliputi
yang berikut:
ˆ
komunikasi satelit
ˆ standardisasi aeronautika ˆ peralatan medis
ˆ sistem kontrol kereta api
ˆ
protokol komunikasi di mobil
15.3
Application Area
Bahasa Spesi kasi dan Deskripsi
terutama dikenal dalam bidang telekomunikasi, tetapi memiliki area aplikasi
yang lebih luas. Area aplikasi dapat diringkas sebagai berikut:
ˆ jenis sistem:
waktu nyata, interaktif, didistribusikan, ˆ jenis
informasi: perilaku dan struktur,
ˆ tingkat abstraksi: ikhtisar ke detail.
Bahasa Spesi kasi dan Deskripsi dikembangkan untuk digunakan dalam sistem telekomunikasi termasuk komunikasi data, tetapi sebenarnya dapat
digunakan dalam semua sistem
waktu ny- ata dan interaktif. Ini telah dirancang untuk
spesi kasi dan deskripsi cara sistem
berperilaku di mana ada inter-working an- tara sistem dan lingkungannya. Hal
ini juga dimaksudkan untuk deskripsi struktur internal suatu sistem, sehingga
sistem dapat dikembangkan dan dipahami satu bagian pada suatu waktu. Fi- tur ini sangat penting
untuk sistem terdistribusi.
Bahasa Spesi kasi dan Deskripsi mencakup berbagai tingkat
abstraksi, dari tinjauan
luas hingga tingkat
desain terperinci.
Penggunaan utama adalah untuk membuat
model yang dapat dieksekusi pada tingkat abstraksi yang cukup tinggi.
Meskipun bahasa awalnya tidak
dimaksudkan untuk implementasi, ter- jemahan
ke kode dimungkinkan dan praktis,
karena (asalkan 'teks informal' tidak digunakan) model mesin negara
dapat diek- sekusi. Jalur yang biasa adalah mengonversi ke 'C' atau Java, tetapi terjemahan langsung ke kode mesin dari prosesor
virtual atau nyata juga dilakukan.
16
Keuntungan
Bahasa Spesi kasi
Meskipun sejarah panjang Spesi kasi dan Deskripsi Bahasa, itu adalah
fakta bahwa 1988 hanyalah awal dari era bahasa spe- si kasi. Meskipun
mereka kemudian menjadi lebih populer, diasumsikan bahwa rata-rata pembaca tutorial ini tidak ter- biasa dengan bahasa tersebut. Oleh karena itu pada bagian ini diberikan
garis besar manfaat menggunakan bahasa spesi-
kasi, dibandingkan dengan menggunakan bahasa pemrogra-
man (seperti C atau Java) atau metode
desain (seperti SADT),
yang
dianggap sudah dikenal
luas. Untuk perawatan
yang lebih lengkap, lihat
buku ITU / ISO manual /
Ken Turner
tentang teknik deskripsi formal.
Mungkin diterima
secara luas bahwa kunci keberhasilan su- atu sistem adalah spesi kasi dan desain sistem yang menyelu- ruh. Ini membutuhkan bahasa
spesi kasi yang sesuai,
memenuhi kebutuhan berikut:
ˆ Seperangkat
konsep yang terde nisi dengan baik
ˆ Spesi kasi yang
tidak ambigu, jelas, tepat dan ringkas
ˆ Dasar untuk menganalisis spesi kasi untuk kelengkapan dan kebenaran
ˆ Dasar untuk menentukan kesesuaian implementasi spesi-
kasi
ˆ Dasar untuk
menentukan konsistensi spesi
kasi relatif satu sama
lain
ˆ Menggunakan alat berbasis komputer untuk membuat,
memeli- hara, menganalisis, dan
mensimulasikan spesi kasi.
Hasil
spesi kasi sistem dan aktivitas desain disebut spesi kasi di sini. Untuk suatu sistem mungkin ada
spesi kasi pada berbagai tingkat
abstraksi. Spesi kasi adalah dasar
untuk menurunkan implementasi, tetapi
harus untuk tujuan pemodelan abstrak dari detail implementasi secara berurutan
ˆ untuk memberikan gambaran umum tentang
sistem yang kompleks,
ˆ untuk menunda
keputusan implementasi, dan ˆ tidak mengecualikan implementasi yang valid.
Berbeda dengan program, spesi kasi formal - yang merupakan spesi kasi yang
ditulis dalam bahasa spesi kasi -
tidak (harus) dimaksudkan untuk dijalankan pada platform target. Selain berfungsi sebagai dasar untuk
menurunkan implementasi, spesi-
kasi formal dapat digunakan untuk komunikasi yang tepat dan tidak ambigu
antara orang-orang, terutama untuk pemesanan dan tender.
Penggunaan bahasa
spesi kasi memungkinkan untuk men- ganalisis dan mensimulasikan solusi sistem
alternatif, yang dalam
praktiknya sering tidak mungkin ketika menggunakan bahasa pemrograman
karena biaya dan waktu tunda. Bahasa
spesi kasi menawarkan serangkaian konsep yang dide nisikan dengan
baik untuk pengguna bahasa,
meningkatkan kemampuannya untuk menghasilkan
solusi untuk masalah dan untuk alasan tentang
solusi.
Terlepas dari kriteria spesi kasi di atas,
kenyataannya adalah bahwa dalam semakin banyak
kasus, bahasa yang cocok seperti ITU-T Spesi kasi dan Deskripsi Bahasa dapat digunakan
seba- gai bahasa spektrum
luas yang mengambil deskripsi dari model abstraksi tingkat tinggi ke model
yang dapat dieksekusi yang da- pat sebenarnya bisa digunakan sebagai
implementasinya. Meng-
gunakan satu bahasa menghindari pergeseran paradigma dan pengkodean ulang model
dengan konsekuensi kesalahan yang terjadi dari spesi kasi ke implementasi. Apa yang tersisa un- tuk dilakukan pada
tingkat implementasi adalah penyempur- naan
kinerja dengan mengkodekan ulang beberapa elemen
pent- ing, dan mengukur
dimensi model menjadi
ratusan atau ribuan, daripada angka kecil yang digunakan untuk validasi spesi kasi.
17
Language Overview
Bahasa ini dijelaskan dalam tutorial
ini pada tiga tingkatan. Bagian ini memberikan deskripsi tingkat pertama, untuk
mem- beri pembaca gambaran umum sebelum masuk ke detail lebih lanjut dalam
deskripsi tingkat kedua. Deskripsi tingkat kedua diberikan dalam Ÿ2 - Ÿ8.
Deskripsi tingkat ketiga dalam Ÿ9
-
Ÿ10 memberikan penjelasan yang
lebih menyeluruh tentang konsep-konsep dasar, dan dimaksudkan untuk pembaca yang lebih
maju.
Catatan: Tutorial
ini bukan buku teks di SDL-88. Ini hanya memberikan pengantar, dan tidak
memberikan perawatan lengkap.
Konsultasikan de nisi bahasa
Z.100 [1] untuk deskripsi lengkap
bahasa. Konsultasikan buku teks untuk tutorial yang lebih lengkap.
De nisi,
jenis dan contoh
Untuk sebagian besar
konsep dasar perbedaan yang jelas dibuat antara de nisi, tipe dan contoh. De
nisi mende nisikan tipe. Dari jenis tertentu, sejumlah instance yang diinginkan
dapat dibuat. Jika kita mengambil (misalnya) konsep sistem,
maka deskripsi sistem (de nisi sistem)
dapat dibandingkan den- gan
program sumber.
Catatan: Contoh
sistem dari spesi kasi biasanya hanya ob- jek imajiner: tidak dibuat atau
dibangun sebagai sistem nyata, tetapi dapat disimulasikan.
Untuk alasan
praktis, istilah instance biasanya dihilangkan sebagai berikut. Misalnya
istilah sistem berarti instance sis- tem,
jika tidak dinyatakan sebaliknya. Perhatikan bahwa dalam sintaksis bahasa de nisi istilah digunakan sebagai
istilah netral alih-alih istilah spesi kasi
atau deskripsi.
Perilaku
sistem
Perilaku suatu sistem didasari oleh
perilaku gabungan dari sejumlah proses dalam sistem, lihat gambar 1 di bawah ini. Proses adalah mesin negara
terbatas, yang bekerja
secara otonom dan bersamaan dengan proses lainnya.
Kerjasama antara proses dilakukan secara serempak dengan
pesan diskrit, yang disebut sinyal.
Suatu proses juga
dapat mengirim sinyal ke dan
menerima sinyal dari lingkungan
sistem. Diasumsikan
bahwa lingkun-
gan bertindak dengan cara yang sama seperti Bahasa
Spesi-
kasi dan Deskripsi, dan mematuhi batasan yang
diberikan oleh deskripsi sistem, khususnya ia hanya mengirim sinyal ke sistem
yang dide nisikan pada antarmuka dengan lingkungan.
Perilaku suatu
proses bersifat deterministik: ia bereaksi ter-
hadap rangsangan eksternal (dalam bentuk sinyal) sesuai den- gan uraiannya.
Setiap proses
memiliki identitas unik (dari tipe Pid yang telah
ditentukan). Sinyal selalu membawa identitas
proses pen- giriman dan penerimaan,
di samping nilai data yang mungkin. Dengan
demikian proses penerimaan selalu mengetahui identi-
tas proses pengiriman.
Suatu proses
memiliki memori sendiri untuk penyimpanan variabel (selain informasi status,
yang tidak secara
langsung da- pat diakses oleh pengguna yang membuat model).
Suatu proses tidak dapat
menulis ke dalam variabel dari
proses lain bahkan jika itu adalah
turunan dari proses yang sama.
Catatan: Di SDL-88
sebenarnya ada mekanisme untuk se- cara
langsung mengakses variabel-variabel dari proses lain, tetapi
penggunaannya tidak digunakan karena tidak aman karena per- ilaku aktual dapat tidak dapat
diprediksi. Dalam SDL-2000, akses langsung diizinkan antara proses yang tidak
bersamaan ke data bersama.
Suatu proses
memiliki antrian masukan yang tak terbatas secara
teoritis, di mana sinyal yang masuk diantrikan.
Su- atu proses baik dalam keadaan
menunggu sinyal, atau sedang melakukan
transisi antara dua negara. Transisi dimulai
oleh sinyal pertama dalam antrian
input yang diterima proses dalam keadaan itu. Ketika sinyal telah memulai transisi, itu dihapus
dari antrian input (dan dikatakan dikonsumsi).
Dalam transisi, variabel dapat dimanipulasi, keputusan dapat dibuat, proses
baru dapat dibuat, sinyal dapat dikirim (ke proses lain atau ke proses itu sendiri) dll.
Struktur
sistem
Tujuan penataan adalah untuk mengatasi
kompleksitas. Kon- sep proses cocok juga untuk penataan, tetapi proses di
SDL-88 selalu terkandung dalam sebuah blok, yang merupakan konsep penataan
utama. Suatu sistem mengandung satu atau lebih
Figure
1: System behaviour
blok, saling berhubungan satu sama lain
dan dengan batas sis- tem oleh saluran. Saluran adalah sarana untuk
menyampaikan sinyal. Lihat gambar 2.
Sebuah blok dapat
dipartisi menjadi (sub) blok dan salu- ran,
mirip dengan partisi sistem menurut gambar 2. Faktanya,
sebuah sistem dapat dianggap sebagai jenis blok khusus, tidak memiliki saluran yang terhubung dari luar. Blok dalam blok
sal- ing berhubungan satu sama lain dan dengan batas blok penutup
dengan saluran.
Partisi
blok berulang menghasilkan struktur pohon blok (den-
Figure 2: Static structure of an SDL system
gan sistem sebagai blok root). Dalam
SDL-88 blok dipartisi (yaitu blok yang berisi blok) tidak secara langsung
mengan- dung proses apa pun. Blok daun dari struktur pohon blok di SDL-88 tidak
dipartisi, dan berisi proses. Setiap proses yang
ditunjukkan dalam diagram blok daun memiliki de nisi yang berbeda. Dalam blok daun,
sinyal disampaikan pada rute sinyal
antara proses, dan antara proses dan batas blok (rute sinyal di- analogikan dengan saluran),
lihat gambar 3.
Struktur statis
suatu sistem, tentu saja, tercermin dalam uraiannya.
Figure
3: Structuring a block into process types
Dalam SDL-88
deskripsi blok dapat berisi deskripsi proses (sesuai dengan blok-daun) dan
deskripsi struktur blok (sesuai dengan
blok yang dipartisi). Pilihan antara dua versi
blok ini harus dibuat sebelum waktu interpretasi (hasilnya disebut
bagian porsi konsisten) - lihat "Interpretasi sistem". Namun,
memiliki dua (atau lebih) deskripsi alternatif untuk blok yang sama tidak
ditemukan sangat berguna
dan agak membingungkan,
sehingga tur ini dijatuhkan di SDL-2000.
Data abstrak
Untuk mende nisikan data, pendekatan
tipe data abstrak aksiomatik telah dipilih. Itu berarti bahwa semua tipe data
(yang ditentukan sebelumnya serta yang
ditentukan pengguna) dide nisikan dalam cara yang independen, hanya dalam hal
sifat-sifatnya. De nisi tipe data abstrak oleh aksioma memi- liki tiga
komponen:
ˆ
sekumpulan nilai,
ˆ
serangkaian operasi pada nilai-nilai
ini,
ˆ
set aksioma yang mende nisikan
operasi.
Dimungkinkan juga untuk mendapatkan tipe data dari tipe data lain
yang sudah dide nisikan. Telah dianggap
diinginkan untuk menyediakan beberapa
tipe data yang telah ditentukan dalam bahasa
(meskipun ini tidak mutlak diperlukan), yang akrab
dalam perilaku dan sintaksisnya, misalnya Integer, Boolean, Character, Array.
Catatan: Bahasa
sebenarnya membuat perbedaan antara tipe
data dan mengurutkan (himpunan nilai Integer, Charac- ter dll. Macam).
Perbedaannya dijelaskan dalam "Konsep tipe data", tetapi biasanya
dihilangkan dalam bab-bab lain.
Pendekatan tipe data
abstrak aksiomatik berbeda secara substansial dari pendekatan yang biasa dalam
bahasa pemro- graman, di mana pengguna harus mende nisikan tipe data baru
dengan menggunakan tipe data yang sudah ditentukan, dan pada akhirnya dengan
cara tipe data bahasa yang telah diten- tukan sebelumnya. Pendekatan konstruktif ini digunakan dalam bahasa pemrograman dapat menyiratkan pembatasan yang tidak
diinginkan dan implementasi tertentu.
Di sisi lain, mende
nisikan tipe data abstrak yang terbentuk dengan
baik menggunakan aksioma tidak mudah, dan sulit un- tuk langsung mengimplementasikan atau mensimulasikan de n- isi tersebut. Untuk alasan ini disarankan
untuk menghindari aksioma penulisan dan menggunakan tipe data bawaan. Ketika operasi tambahan diperlukan,
disarankan untuk mende nisikan ini
dengan algoritma operator yang diberikan secara tekstual atau dalam diagram
operator. Dalam SDL-2000, sementara se- mua
tipe data bawaan masih tipe data abstrak yang dide n- isikan menggunakan aksioma, itu tidak diperbolehkan untuk menambahkan deskripsi aksiomatik ke model
bahasa: setiap
tipe data yang ditentukan pengguna
harus dibangun dari yang sudah ada dan operator algoritmik deskripsi.
Formulir
representasi
Keramahan pengguna
SDL-88 sebagian karena representasi
gra s, SDL / GR, di mana sintaksis gra s digunakan untuk memberikan gambaran umum. Ini
dilengkapi dengan sintaksis tekstual
untuk beberapa konsep, di mana simbol gra s tidak
cocok: misalnya, tipe data.
Ada
juga representasi frase
tekstual, SDL / PR, yang
hanya menggunakan sintaksis
tekstual. SDL / GR dan SDL /
PR memiliki subset umum
dari sintaks tekstual, dan dengan demikian tumpang tindih satu sama lain. SDL / PR digunakan terutama untuk komunikasi antar alat.
Part II
Teori
18
Ruang Lingkup Notasi
Tujuan merekomendasikan SDL (Spesi kasi dan Deskripsi Ba- hasa)
adalah untuk menyediakan bahasa
untuk spesi kasi yang tidak ambigu dan deskripsi perilaku
sistem telekomunikasi. Spe- si kasi dan
deskripsi menggunakan SDL dimaksudkan untuk menjadi
formal dalam arti bahwa adalah
mungkin untuk men- ganalisis dan
menafsirkannya dengan jelas. Istilah
spesi kasi dan deskripsi
digunakan dengan makna sebagai berikut: a) spe-
si kasi sistem adalah
deskripsi perilaku yang
diperlukan; dan
b) deskripsi sistem adalah deskripsi
perilaku aktualnya; itulah implementasinya. Spesi kasi sistem, dalam arti luas, adalah
spesi kasi perilaku dan
seperangkat parameter umum sistem. Namun, SDL dimaksudkan untuk menentukan
aspek perilaku suatu sistem; parameter
umum yang menggambarkan sifat-sifat
seperti kapasitas dan berat
harus dijelaskan menggunakan teknik yang berbeda. CATATAN
- Karena tidak ada perbedaan antara penggunaan SDL untuk spesi kasi dan penggunaannya untuk deskripsi,
istilah spesi kasi digunakan dalam
Rekomendasi ini untuk perilaku yang diperlukan dan perilaku yang sebenarnya.
18.1
Objective
Tujuan umum ketika mende nisikan SDL adalah untuk
menye- diakan bahasa yang:
a)
mudah dipelajari, digunakan, dan ditafsirkan;
b) memberikan spesi kasi yang jelas
untuk pemesanan, ten- der dan desain,
sementara juga memungkinkan beberapa masalah dibiarkan terbuka;
c)
dapat diperluas untuk mencakup perkembangan baru;
d) mampu mendukung beberapa metodologi spesi kasi dan desain sistem.
18.2
Application
Rekomendasi ini adalah manual
referensi untuk SDL. Dokumen
kerangka kerja metodologi, yang
memberikan contoh penggu- naan SDL, tersedia sebagai Tambahan 1 hingga Z.100 yang diproduksi pada
periode penelitian 1992-1996. Lampiran I Z.100
pertama kali diterbitkan pada
bulan Maret 1993 juga berisi pe- doman metodologi, meskipun ini tidak
memanfaatkan potensi penuh SDL.
Area utama aplikasi
untuk SDL adalah spesi kasi perilaku
aspek sistem waktu nyata, dan desain sistem tersebut. Aplikasi di bidang telekomunikasi meliputi:
a) pemrosesan panggilan
dan koneksi (misalnya, penanganan
panggilan, pensinyalan telepon,
pengukuran) dalam sistem switch- ing;
b) perawatan dan perawatan kesalahan (misalnya alarm,
pem- bersihan kesalahan otomatis, tes rutin) dalam sistem telekomu-
nikasi umum;
c)
kontrol sistem (misalnya,
kontrol kelebihan beban, modi-
kasi, dan prosedur perluasan);
d) fungsi
operasi dan pemeliharaan, manajemen jaringan;
e) protokol komunikasi data; f) layanan
telekomunikasi.
SDL dapat, tentu
saja, digunakan untuk spesi kasi fung- sional dari perilaku objek apa pun yang
perilakunya dapat di- tentukan menggunakan model diskrit; di situlah objek
berko- munikasi dengan lingkungannya melalui pesan diskrit.
SDL adalah bahasa yang kaya dan dapat digunakan untuk spesi kasi informal (dan / atau
tidak lengkap) tingkat tinggi, spesi kasi semi
formal dan detail. Pengguna harus memilih bagian SDL yang sesuai untuk tingkat komunikasi yang dimak- sud dan lingkungan di mana bahasa
tersebut digunakan. Bergan- tung pada lingkungan di mana spesi kasi digunakan, maka banyak aspek
dapat diserahkan kepada pemahaman umum antara sum- ber dan tujuan spesi kasi.
Dengan demikian SDL dapat digunakan
untuk memproduksi:
a) persyaratan fasilitas;
b) spesi kasi sistem;
c) Rekomendasi
ITU-T, atau Standar serupa lainnya (inter-
nasional, regional atau nasional);
d) spesi kasi desain sistem;
e) spesi kasi terperinci;
f) deskripsi desain sistem
(baik tingkat tinggi
dan cukup rinci untuk langsung menghasilkan implementasi);
g)
deskripsi pengujian sistem
(khususnya dalam kombinasi dengan MSC
dan TTCN). Organisasi pengguna dapat memilih level aplikasi SDL yang sesuai.
Spesi
kasi SDL mende nisikan
perilaku sistem dengan cara stim- ulus
/ respons, dengan asumsi bahwa baik
rangsangan dan re- spons terpisah dan membawa
informasi. Secara khusus spesi-
kasi sistem dipandang sebagai urutan respons
terhadap urutan rangsangan tertentu.
Model spesi kasi sistem didasarkan pada konsep komunikasi
mesin keadaan terbatas.
SDL juga menyediakan konsep penataan yang memfasilitasi
spesi kasi sistem besar dan / atau kompleks. Konstruksi ini
memungkinkan partisi spesi kasi sistem
menjadi unit yang da- pat dikelola yang dapat ditangani dan dipahami secara
inde- penden. Partisi dapat dilakukan dalam sejumlah langkah yang menghasilkan
struktur hirarki unit yang mende nisikan sistem pada tingkat yang berbeda.
Bahasa yang dide nisikan dalam
versi sebelumnya dari
Rekomen- dasi ini adalah
perpanjangan dari Z.100
sebagaimana diterbitkan
dalam Blue Book 1988. Bahasa yang dide nisikan dalam Buku Biru dikenal
sebagai SDL-88 dan bahasa yang dide nisikan
dalam versi sebelumnya dari
Rekomendasi ini disebut SDL-92. Setiap upaya
telah dilakukan untuk membuat SDL-92 ekstensi murni SDL-88, tanpa
membatalkan sintaks atau mengubah semantik dari
setiap penggunaan SDL-88 yang ada. Selain
itu, pen- ingkatan hanya diterima
berdasarkan kebutuhan sebagaimana didukung oleh beberapa anggota ITU-T.
Ekstensi utama berada di bidang
orientasi objek. Sementara SDL-88 adalah objek berdasarkan model yang
mendasarinya,
beberapa konstruksi bahasa telah
ditambahkan untuk memu- ngkinkan SDL-92 untuk
secara lebih lengkap
dan seragam men- dukung
paradigma objek:
a) paket;
b) tipe
sistem, blok, proses dan layanan;
c)
instance sistem, blok, proses, dan
layanan (himpunan) berdasarkan jenis;
d) parameterisasi jenis dengan menggunakan parameter kon- teks;
e) spesialisasi jenis, dan rede nisi jenis dan transisi virtual. Ekstensi lainnya
adalah: transisi spontan, pilihan
non-deterministik,
simbol input dan output internal dalam SDL / GR untuk
kom- patibilitas dengan diagram
yang ada, operator
imperatif non-
deterministik apa pun, saluran tanpa penundaan, panggilan
prose- dur jarak jauh dan
prosedur pengembalian nilai, input bidang variabel, de nisi operator, kombinasi
dengan deskripsi data ek- sternal, kemampuan pengalamatan yang diperluas dalam out-
put, aksi bebas dalam transisi, transisi kontinu dalam keadaan yang sama dengan prioritas
yang sama, koneksi m: n saluran
dan rute sinyal pada batas struktur. Selain itu,
sejumlah relak- sasi kecil untuk sintaks telah diperkenalkan.
Dalam beberapa kasus, perubahan
dilakukan pada SDL-88 di mana de nisi SDL-88 tidak konsisten. Pembatasan dan
pe- rubahan yang diperkenalkan dapat diatasi dengan prosedur ter- jemahan otomatis. Prosedur ini juga
diperlukan, untuk mengkon-
versi dokumen SDL-88
di SDL-92 yang berisi nama yang terdiri dari kata-kata yang merupakan kata
kunci dari SDL-92.
Untuk
konstruk output semantik
disederhanakan antara SDL- 88
dan SDL-92, dan ini mungkin telah membatalkan beberapa penggunaan khusus output
(ketika tidak ada klausa diberikan
dan ada beberapa jalur yang mungkin untuk sinyal) dalam spesi-
kasi SDL-88. Juga, beberapa properti dari properti
kesetaraan berubah.
Untuk
konstruk ekspor / impor diperkenalkan de nisi vari-
abel jarak jauh opsional, untuk
menyelaraskan ekspor variabel
dengan ekspor prosedur yang diperkenalkan (prosedur jarak jauh). Ini mengharuskan perubahan pada
dokumen SDL-88 mana pun, yang memuat kuali kasi
dalam ekspresi impor atau memperke-
nalkan beberapa nama impor dalam
cakupan yang sama dengan jenis yang berbeda. Dalam (jarang) kasus di mana itu perlu un- tuk memenuhi syarat variabel impor
untuk menyelesaikan reso- lusi menurut konteks, perubahan untuk membuat SDL-88 men- jadi SDL-92 adalah untuk memperkenalkan <remote
variable de nition> s dan
untuk memenuhi syarat dengan pengidenti-
kasi
dari remote yang diperkenalkan nama variabel.
Untuk konstruksi
tampilan, de nisi tampilan telah dibuat
lokal untuk proses melihat atau layanan. Ini mengharuskan pe- rubahan
pada dokumen SDL-88, yang berisi kuali kasi
dalam de nisi tampilan atau dalam ekspresi tampilan. Untuk mem- buat
SDL-88 menjadi SDL-92
adalah menghapus kuali kasi ini. Ini
tidak mengubah semantik
ekspresi tampilan, karena
ini dipu- tuskan oleh ekspresi pid (tidak berubah).
Konstruk layanan
dide nisikan sebagai
konsep primitif, alih-
alih menjadi singkatan, tanpa memperluas propertinya. Peng- gunaan layanan tidak terpengaruh
oleh perubahan ini, karena telah
digunakan pula seolah-olah itu adalah konsep primitif. Alasan untuk perubahan ini adalah untuk menyederhanakan
de nisi bahasa dan menyelaraskannya dengan penggunaan ak- tual, dan untuk mengurangi jumlah
pembatasan layanan, yang disebabkan oleh aturan transformasi di SDL-88. Sebagai
kon- sekuensi dari perubahan ini, konstruksi rute sinyal
layanan telah dihapus, rute sinyal dapat digunakan
sebagai gantinya. Ini hanya perubahan konseptual kecil, dan tidak memiliki implikasi untuk penggunaan konkret (sintaks
rute sinyal layanan
SDL-88 dan rute sinyal SDL-92 adalah
sama).
Konstruk keluaran
prioritas telah dihapus
dari bahasa. Kon- struk ini dapat diganti
oleh output ke diri sendiri dengan
prose- dur terjemahan otomatis.
Beberapa de nisi
SDL dasar diperluas secara luas, mis. de n- isi
sinyal. Perlu dicatat bahwa ekstensi
bersifat opsional, tetapi digunakan untuk memanfaatkan daya yang diperkenalkan oleh ekstensi berorientasi objek, mis.
untuk menggunakan parame- terisasi dan spesialisasi untuk sinyal.
Kata kunci SDL-92 yang bukan kata kunci SDL-88 adalah: apapun, seperti,
minimal, koneksi, koneksi
akhir, endopera-
tor, endpackage, selesai, gerbang, antarmuka, nodelay,
noequal-
ity, tidak ada, paket, dide nisikan
ulang, jarak jauh, pengem- balian, ini, gunakan, virtual.
Keputusan strategis dibuat untuk
menjaga SDL stabil untuk pe- riode 1992 hingga 1996, sehingga pada akhir
periode ini hanya sejumlah kecil perubahan yang dilakukan untuk SDL. Ini diter-
bitkan sebagai Addendum 1 hingga Z.100 (10/96) daripada mem- perbarui dokumen
SDL-92. Meskipun versi SDL ini kadang- kadang disebut SDL-96, itu adalah
perubahan kecil diband- ingkan dengan perubahan dari SDL-88 ke SDL-92.
Perubahan- nya adalah:
a)
menyelaraskan sinyal dengan
prosedur jarak jauh dan variabel
jarak jauh;
b) menyelaraskan
saluran dan rute sinyal;
c) menambahkan
prosedur dan operasi eksternal;
d) memungkinkan blok atau proses untuk digunakan sebagai suatu sistem;
e)
menyatakan ekspresi;
f) mengizinkan
paket pada blok dan proses;
g) operator
tanpa parameter.
Ini sekarang telah
dimasukkan ke dalam Z.100, bersama den- gan sejumlah perubahan lain untuk
menghasilkan versi SDL yang dikenal sebagai SDL-2000. Dalam
Rekomendasi ini ba- hasa yang dide
nisikan oleh Z.100 (03/93) dengan Addendum 1
hingga Z.100 (10/96) masih disebut SDL-92.
Keuntungan dari
stabilitas bahasa, yang dipertahankan se- lama
periode 1992-1996, mulai dilampaui oleh kebutuhan un- tuk memperbarui SDL untuk
mendukung dan lebih cocok den- gan bahasa lain yang sering digunakan dalam
kombinasi dengan SDL. Juga alat dan teknik modern telah membuatnya praktis
untuk menghasilkan perangkat lunak lebih langsung dari spe- si kasi
SDL, tetapi keuntungan signi kan lebih
lanjut dapat dibuat dengan memasukkan dukungan yang
lebih baik untuk penggunaan ini
dalam SDL. Sementara SDL-2000 sebagian be- sar
merupakan peningkatan SDL-92, disepakati bahwa beber- apa ketidakcocokan dengan
SDL-92 dibenarkan; jika tidak, ba- hasa
yang dihasilkan akan terlalu
besar, terlalu rumit
dan ter-
lalu tidak konsisten. Sub ayat ini
memberikan informasi ten- tang perubahan. Bagaimana sebagian besar deskripsi
SDL-92 mungkin ditransformasikan
secara sistematis menjadi SDL-2000 diberikan
dalam Lampiran III.
Perubahan telah
dilakukan di sejumlah area, yang fokus pada
penyederhanaan bahasa, dan penyesuaian ke area
aplikasi baru:
a)
penyesuaian konvensi sintaksis ke bahasa lain yang digu- nakan SDL;
b) harmonisasi konsep sistem, blok dan proses yang didasarkan pada "agen", dan penggabungan konsep rute
sinyal ke dalam saluran konsep;
c)
deskripsi antarmuka;
d) penanganan pengecualian;
e) dukungan untuk notasi
teks algoritma dalam
SDL / GR; f) keadaan komposit;
g)
penggantian konstruk layanan
dengan konstruk agregasi negara;
h)
model baru untuk
data;
i)
membangun untuk mendukung
penggunaan ASN.1 den- gan SDL sebelumnya di Z.105 (03/95).
Perubahan lain
adalah: paket bersarang, penahanan lang- sung blok dan proses dalam blok,
parameter out-only.
Pada level
sintaksis, SDL-2000 adalah case-sensitive. Kata kunci tersedia dalam dua ejaan:
semua huruf besar atau semua huruf kecil. Kata kunci SDL-2000 yang bukan kata
kunci SDL- 92 adalah:
abstrak, agregasi,
asosiasi, break, pilihan, komposisi, lan- jut,
endexceptionhandler, endmethod, endobject, endvalue, ex- ception, exceptionhandler, handle, metode, objek, onexception, dipesan, privat, dilindungi,
publik, kenaikan, nilai.
Kata kunci SDL-92
berikut bukan kata kunci dalam SDL- 2000:
semua, aksioma,
konstan, endgenerator, endnewtype, en- dre
nement, endservice, galat, fpar, generator, diimpor, literal, peta, tipe baru, noequal,
pengurutan, penyempurnaan, pengem- balian, ungkapkan, balikkan, layanan, jalur sinyal, tampilan, dilihat.
Sejumlah kecil
konstruksi SDL-92 tidak tersedia di SDL- 2000:
tampilan ekspresi, generator, substruktur blok, substruk- tur saluran, perbaikan sinyal, de nisi data secara
aksiomatis, diagram makro. Konstruksi ini jarang (jika pernah) digunakan, dan overhead menjaga mereka dalam
bahasa dan alat tidak membenarkan retensi mereka.
19.1
Conventions
Teks klausa ini tidak normatif.
Sebaliknya ia mende nisikan konvensi yang digunakan untuk menggambarkan SDL.
Peng- gunaan SDL dalam klausa ini hanya ilustrasi. Bahasa-bahasa metal dan
konvensi yang diperkenalkan semata-mata diperke- nalkan untuk tujuan menggambarkan
SDL dengan jelas.
SDL memberikan pilihan dua bentuk
sintaksis yang berbeda untuk digunakan ketika mewakili suatu sistem;
Representasi
Gra k (SDL / GR), dan
Representasi Frase tekstual (SDL / PR). Karena
keduanya merupakan representasi konkret dari
SDL yang sama, keduanya setara.
Khususnya keduanya
setara den- gan tata
bahasa abstrak untuk
konsep yang sesuai.
Subset dari SDL / PR
adalah umum dengan SDL / GR. Subset ini dise- but tata bahasa teks biasa. Meskipun
SDL dapat ditulis
dalam SDL / PR atau SDL / GR, bahasanya telah dirancang dengan pengetahuan bahwa SDL / PR jarang digunakan untuk tujuan seperti
pertukaran antar alat. Format pertukaran
umum yang ditentukan dalam Z.106
(10/96) selanjutnya mengurangi peng- gunaan SDL / PR. Sebagian
besar pengguna menggunakan SDL
/ GR. Gambar 5-1
menunjukkan hubungan antara
SDL / PR, SDL / GR, tata bahasa
beton dan tata bahasa abstrak.
Ukuran simbol gra s dapat dipilih oleh pengguna.
Batas simbol tidak
boleh overlay atau silang. Pengecualian untuk aturan ini berlaku untuk simbol
garis, yang mungkin sal- ing bersilangan. Tidak ada hubungan logis antara
simbol yang
melakukan
lintas. Berikut ini adalah simbol garis:
<association
symbol>
<channel
symbol>
<create
line symbol>
<dashed
association symbol>
<dependency
symbol>
<
ow line symbol>
<solid
association symbol>
<solid
on exception association symbol>
<specialization
relation symbol>
Metasymbol diikuti oleh menyiratkan < ow line
symbol>.
Simbol garis dapat
terdiri dari satu atau beberapa segmen garis lurus.
Sebuah panah diperlukan pada < ow line symbol>, ketika
memasuki < ow line
symbol> lainnya, <out connector sym- bol>
atau <nextstate area>. Dalam kasus lain,
panah adalah opsional pada < ow line symbol>. < ow line symbol> adalah horisontal
atau vertikal.
Gambar
cermin vertikal <input symbol>, <output sym-
bol>,
<internal input symboll>,
<internal output symbol>,
<priority input symbol>, <raise symbol>, <handle symbol>,
<comment symbol>dan <text extension
symbol> diizinkan.
Argumen kanan dari
metasymbol dikaitkan dengan harus lebih
dekat ke argumen kiri daripada simbol gra s lainnya. El- emen sintaksis dari
argumen kanan harus dapat dibedakan satu sama lain.
Teks dalam simbol
gra s harus dibaca dari kiri ke kanan, mulai dari sudut kiri atas. Tepi kanan
simbol ditafsirkan seba- gai karakter baris baru, menunjukkan bahwa pembacaan
harus dilanjutkan di titik paling kiri dari baris berikutnya (jika ada).
De nisi partisi berikut bukan bagian
dari tata bahasa gra s Beton, tetapi bahasa logam yang sama digunakan.
<page> : : =
<heading area> : : =
<heading> : : =
<frame symbol> c o n t a i n s
{ <heading area> <page
number area>
{ <symbol> | < l e x i c a l unit > }* }
< i m p l i
c i t t e x t symbol> c o n t a i n s
<heading>
< k e r n e
l heading> [< e x t r a heading >]
< k e r n e l heading> : :
=
<drawing kind> : : =
<e x t r a
heading> : : =
<page number area> : : =
[< v i r t u a l i t y >] [
exported ]
<drawing kind> <drawing
q u a l i f i e r > | <drawing name>
package | system [ type ] | b l o c k [ type ] | p r o c e s s [ type ]
s t a t e [ type ] | p r o c e d u r e | o p e r a t o r | method
p a r t o f
drawing heading not i n k e r n e l
heading
< i m p l i
c i t t e x t symbol> c o n t a i n s [
<page number> [
(<number o f pages >) ]
<page number> : : =
<number o f pages> : : =
<symbol> : : =
]
< l i t e r a l
name>
<Natural l i t e r a l
name>
any o f the t e r m i n a l s d e f i n e d with a r u l e name ending i n "
symbol "
<page> adalah
non-terminal awal; oleh karena itu tidak disebut dalam aturan produksi apa pun.
Gambar dapat dipar- tisi ke dalam sejumlah <page>, dalam hal ini
<frame symbol> yang membatasi gambar dan gambar <heading>
digantikan oleh <frame symbol> dan <heading> untuk setiap
<page>.
<symbol>
adalah simbol non-terminal gra s.
<implicit text symbol> tidak diperlihatkan, tetapi tersirat,
agar memiliki pemisahan yang jelas antara<heading area> dan
<page number area>.
<Heading area>
ditempatkan di sudut
kiri atas <frame symbol>.
<page number area> ditempatkan di
sudut kanan atas <frame
symbol>. <title> dan unit sintak- sis
tergantung pada jenis gambar.
<extra
heading> harus ditunjukkan pada halaman pertama gambar, tetapi opsional pada
halaman-halaman berikut. <Head-
ing> dan <drawing type> diuraikan untuk gambar-gambar khusus
dalam masing-masing klausa Rekomendasi ini. <extra head- ing>
tidak ditentukan lebih lanjut oleh Rekomendasi
ini.
<virtuality>
menunjukkan keutamaan jenis yang ditentukan oleh
gambar dan mengekspor apakah suatu prosedur diekspor sebagai prosedur jarak
jauh.
Gambar-gambar SDL / GR adalah<speci cation
area>, <pack- age diagram>, <agent
diagram>, <agent type diagram>, <pro- cedure diagram>, <operation diagram>, <composite state area>, dan <composite state type diagram>.
19.5
Operasi
Grammar abstrak
Dynamic−operation −s i g n a t u r e = Operation −s i g n a t u r e
S
tati c −operation −s i
g n a t u r e = Operation −s i g n a t u r e
Operation −s i
g n a t u r e :
: Operation −name
Formal−argument* [ Result ]
Operation −name = Name
Formal−argument = Virtual
−argument
| Nonvirtual −argument
V irtual −argument : : Argument
Nonvirtual −argument : : Argument
Argument = Sort −r e f e r e n c e − i d e n t i f i e r
Gagasan
kompatibilitas semacam diperluas ke tanda tangan Operasi. S1 Operasi-tanda tangan
adalah kompatibel untuk S2 Operasi-tanda
tangan ketika:
a)
S1 dan S2 memiliki jumlah argumen
formal yang sama; dan
b) untuk setiap argumen-A
Virtual dari S1, pengurutan yang diidenti kasi oleh pengidenti kasi-pengurutan-nya adalah pen- gurutan
yang sesuai dengan pengidenti kasian pengidenti kasi pengurutan-pengurutan dari argumen terkait dalam S2;
c) untuk setiap argumen-Nonvirtual A dari S1, sort yang di- identi kasi oleh Sort-reference-identi er-nya
adalah jenis yang sama dengan sort yang diidenti kasi oleh Sort-reference-identi
er
dari
argumen yang sesuai dalam S2.
Tata
bahasa teks konkret
<o pe rati o n s i g n a t u r e s > : :=
<o perato r l i s t > : :=
<method l i s t > : :=
<o pe rati o n s ig nature
> : :=
<o pe rati o n preamble> :
:=
<o pe rati o n name> : :=
<arguments> : :=
<argument> : :=
<formal parameter> : :=
[< o perato
r l i s t >] [<method l i s t >] o
p e r a t o r s <o pe rati o n s ig nature
>
{ <end> <o pe rati o n s ig nature > }*
<end>
methods <o pe rati o n s ig
nature >
{ <end> <o pe rati o n s ig nature > }*
<end>
<o pe rati o n preamble>
{ <o pe rati o n name>
| <name c l a s s operation
> }
[< arguments >] [< r e
s u l t >] [< r a i s e s >]
[< v i r t u a l i t y >]
[< v i s i b i l i t y >]
| [< v i s i b i l i t y >]
[< v i r t u a l i t y >]
<o pe rati o n name>
| <quoted o pe rati o n
name>
( <argument>
{ , <argument>
}* ) [< argument v i r t u a l i t y >]
<formal parameter>
<parameter kind> <sort
>
<argument v
i r t u a l i t y > : := v i r t u a l <r e s u l t > : :=
< r e s u l t sign > <sort >
Dalam tanda tangan Operasi,
setiap Urutkan-referensi-pengidenti kasi dalam argumen
Resmi diwakili oleh argumen <sort>, dan Hasil-
nya diwakili oleh hasil <sort>. <sort>
dalam <argument>
yang berisi <argumen virtuality> mewakili argumen Virtual, jika tidak <sort> dari
<argument> mewakili argumen Nonvir- tual.
Nama
Operasi adalah unik di dalam unit lingkup penentu
dalam
sintaksis abstrak meskipun
<nama operasi> yang bersangku-
tan mungkin tidak unik. Nama Operasi unik berasal dari:
a)
<nama operasi>; plus
b)
daftar (mungkin kosong) pengidenti
kasi jenis argumen; plus
c)
pengidenti kasi
semacam hasil; plus
d) pengidenti kasi semacam de
nisi tipe data di mana <nama operasi>
dide nisikan.
<nama operasi yang dikutip>
memungkinkan operator dan nama metode yang memiliki bentuk sintaksis khusus.
Sintaks
khusus
diperkenalkan sehingga, misalnya, operasi aritmatika dan operasi
Boolean dapat memiliki bentuk sintaksis yang biasa. Artinya, pengguna dapat
menulis "(1 + 1) = 2" daripada harus menggunakan, misalnya, sama
(tambahkan (1,1), 2).
Jika <tanda tangan
operasi> terkandung dalam <daftar op-
erator>, maka <tanda
tangan operasi> mewakili tanda tangan operasi statis, dan <tanda
tangan operasi> tidak
boleh mengan- dung
<virtuality> atau <argumen virtualitas>. Jika <tanda tangan operasi> terkandung dalam <daftar
metode> dan <vir- tualitas>
tidak ada, maka <tanda tangan
operasi> mewakili tanda tangan
operasi statis dan tidak ada <argument> yang
harus berisi <argumen virtualitas>. Jika <tanda tangan op- erasi>
terkandung dalam <daftar metode> dan <virtualitas> hadir, maka <tanda tangan operasi> mewakili
tanda tangan operasi-Dinamis. Dalam
hal ini, satu set tanda tangan Op- erasi
Dinamis dibentuk yang terdiri dari tanda tangan operasi- Dinamis yang diwakili
oleh <tanda tangan operasi> dan se- tiap
elemen dalam set tanda tangan dari metode pencocokan
dalam supertype dengan nama-Operasi yang berasal dari sama
<nama operasi> mempertimbangkan
penggantian nama, dan tanda tangan Operasi semacam itu kompatibel dengan tanda
tangan Operasi di supertype, jika ada.
Set ini harus
ditutup dalam pengertian berikut: untuk dua tanda tangan Operasi apa pun Si dan
Sj dalam perangkat tanda tangan Operasi, tanda tangan Operasi unik S sedemikian
rupa sehingga:
a) S adalah jenis yang kompatibel dengan Si dan Sj; dan
b) untuk Sk Operasi-tanda tangan apa pun yang kompatibel dengan Si dan Sj, Sk juga kompatibel dengan S,
juga
dalam himpunan tanda tangan operasi-Dinamis.
Kondisi ini memastikan bahwa himpunan tanda tangan operasi- Dinamis membentuk kisi dan menjamin bahwa tanda
tangan
Operasi terbaik yang cocok
dapat ditemukan ketika menafsirkan aplikasi operasi. Jika set tanda tangan operasi dinamis
tidak memenuhi kondisi ini, <sdl spesi kasi>
tidak valid.
CATATAN - Spesialisasi jenis
mungkin mengharuskan tanda
tangan Operasi tambahan ditambahkan ke
<daftar metode> untuk memenuhi kondisi ini.
<result> dalam <tanda tangan
operasi> dapat dihilangkan
hanya jika <tanda tangan operasi> terjadi
dalam <metode daf- tar>.
<argumen
virtualitas> sah hanya jika <virtuality> berisi kata kunci virtual
atau dide nisikan ulang.
Semantik
Bentuk in x atau operator monadik atau
metode yang diku- tip adalah nama yang valid untuk operator atau metode.
Operator atau metode memiliki hasil
semacam, yang meru- pakan jenis yang diidenti kasi oleh hasil.
Model
Jika <tanda tangan
operasi> terkandung dalam <daftar metode> ini diperoleh sintaksis dan ditransformasikan sebagai berikut: sebuah <argument> dibangun dari kata kunci
virtual, jika <virtuality>
hadir, <jenis parameter> in / out, dan <sort
identi er> dari sort yang dide nisikan oleh <data type de - nition> yang terlampir. Jika tidak ada <arguments>, maka
<arguments> terbentuk dari
<argument> yang dikonstruksi dan dimasukkan ke dalam <tanda tangan
operasi>. Jika ada
<argument>, <argument> yang
dibuat ditambahkan ke awal daftar asli <argument> di <argument>.
Jika <sort>
<argument> adalah <anchored sort>, <argu- ment> secara
implisit mengandung <argumen virtuality>. Jika
<tanda tangan operasi> berisi kata kunci yang dide nisikan ulang di <virtuality>, untuk
setiap <argument> dalam <tanda tangan
operasi> yang cocok dari jenis dasar, jika
<argument> ini (secara implisit
atau eksplisit) berisi
<argumen virtualitas>, maka <argument> yang sesuai dalam
<tanda tangan operasi> secara implisit juga mengandung <argumen virtualitas>.
<argument> tanpa
<parameter jenis> yang
eksplisit memi- liki <jenis parameter> implisit.
Part III
OpenGEODE, an SDL Editor for TASTE
20
OpenGEODE
SDL (Spesi kasi dan Deskripsi Bahasa)
adalah bahasa pemode- lan yang kuat untuk menggambarkan
mesin negara secara vi- sual namun formal. Seperti bahasa pemrograman apa pun, SDL hadir dengan sintaksis tekstual, tetapi
selain itu memiliki notasi gra s intuitif yang dapat digunakan untuk membangun model menggunakan editor
interaktif. Semantik SDL yang ter-
de nisi dengan baik menjadikannya kandidat yang tepat untuk menggambarkan
perilaku sistem waktu-nyata yang tertanam.
Standar telah
ditetapkan oleh ITU-T dengan referensi Z100. Antara lain, ini banyak digunakan
di industri telekomunikasi. Lihat [1] untuk informasi lebih lanjut.
Berkat
formalismenya, konsepnya yang terde nisi dengan baik dan kemudahan penggunaan, bahasa SDL menjadi
ukuran untuk pembuatan
perangkat lunak yang aman dan kuat.
TASTE
sekarang termasuk editor gra s SDL
open-source yang menghasilkan kode Ada.
Ini adalah perangkat lunak gratis, diimplementasikan dalam Python
dengan kerangka kerja gra s Qt. Nama "OpenGEODE" dipilih
sebagai penghargaan untuk alat ObjectGEODE yang sebelumnya, yang sayangnya
telah di- hentikan beberapa tahun yang lalu.
OpenGEODE terinspirasi secara bebas dari ergonomi leluhurnya, dan berusaha
menun- jukkan bagaimana bahasa dan alat modern dapat membantu memberikan pengalaman pengguna yang hebat bagi para pro- grammer, bahkan mereka yang tidak
terikat untuk menggu- nakan pendekatan
visual untuk pengembangan.
ˆ Editor gra s proses dan prosedur SDL. Diagram komu-
nikasi ditangkap dengan editor tampilan antarmuka TASTE.
ˆ Fitur SDL2010: UNTUK loop dalam simbol tugas,
status hierarkis dan paralel
ˆ Membaca dan menyimpan le .pr (notasi SDL tekstual),
dengan dukungan CIF untuk informasi gra s
ˆ Mendukung tipe
data ASN.1, termasuk
notasi Nilai - periksa
halaman ini untuk mengetahui lebih
lanjut tentang kom-
piler
dan alat ASN.1 kami
ˆ Mendukung subset simbol yang cukup untuk mengem-
bangkan aplikasi waktu nyata (tidak
termasuk simbol SAVE)
ˆ Menghasilkan kode Ada dengan tipe ASN.1 menggunakan
TASTE ASN.1 "compiler berserti
kat" (SPARK)
ˆ Menghasilkan kode LLVM yang dioptimalkan untuk ke- cepatan
dan kinerja pada target tanpa runtime Ada
ˆ Lengkap sintaks dan pemeriksaan semantik
ˆ Konversi otomatis ke diagram
Statechart
ˆ Simpan seluruh atau sebagian model ke le PNG / SVG
/ PDF
ˆ Hyperlinks (menautkan konten simbol ke dokumen
ekster- nal atau halaman web)
ˆ
Memperbesar, memperkecil
ˆ Pelengkapan otomatis teks
yang tergantung pada
konteks ˆ Penyorotan sintaksis
ˆ Undo / Redo, Copy-Paste
ˆ Mode VIM (Terbatas) - Anda dapat menggunakan: wq
atau:% s, mencari, mengganti, g, dan /
mencari pola
21.1
Pembatasan SDL
Fitur- tur berikut dari bahasa SDL
tidak didukung, sebagian besar karena mereka
tidak kompatibel dengan
sistem embedded atau karena mereka jarang digunakan. Silakan
hubungi kami untuk lebih jelasnya:
ˆ
simbol SIMPAN
ˆ
Kondisi yang memungkinkan
ˆ
Menyatakan prosedur di dalam
ˆ Beberapa sintaks
loop / algoritma tekstual (lihat
ekstensi SDL)
ˆ
Makro
ˆ Tipe data
SDL (gunakan ASN.1
sebagai gantinya) - ter-
masuk operator (prosedur penggunaan)
ˆ
Daftar sinyal
ˆ
Simbol `Alternatif`
ˆ Dukungan CIF penuh Ekstensi SDL
Hampir
tidak ada ekstensi ke bahasa SDL:
ˆ Sintaks dari loop `FOR`
berbeda dari salah
satu standar Sintaks di
OpenGEODE adalah:
1
f o r i t e r a t o r in sequence_ of_ variable | RANGE( [ s t a r t ] , stop , [ step ] ) :
2
l i s t o f SDL statements
3
endf or
CATATAN: Semantiknya sama dengan operator jangkauan di Python:
nilai terakhir dikecualikan dari iterasi, artinya
rentang
(4) akan menghasilkan 4 elemen (0, 1, 2, 3) dan
rentang (1, 3) akan menghasilkan 2 elemen (1, 2).
ˆ Arahan memungkinkan untuk menentukan jalur / nama
le
ASN.1:
USE Datamodel COMMENT 'path/to/
le.asn'; −− In a text box
Beberapa operator matematika didukung secara
native: abs, ceil, cos, oor, round, sin, sqrt, trunc
Operator num (enumerated) memberikan
nilai numerik dari enumerated
gunakan Present (variabel tipe PILIHAN)
untuk mengetahui item mana yang
dipilih
Seperti pada ObjectGeode Anda dapat
menggunakan prose- dur bawaan "tulis" dan "writeln" untuk
menampilkan teks
Penggabungan string dilakukan menggunakan notasi nilai ASN.1: string1_in_ASN.1 // string2_in_ASN.1 mis.
TASK r e s u l
t := { 1 , 2 , 3 } // { 4 , 5 ,
6 } ;
22 Mengapa
SDL dan OpenGEODE ?
SDL memiliki semantik formal dan
sintaksis. Belum memiliki sintaks teks sederhana
dan kemampuan pengecekan tingkat lan- jut. Karena SDL menggunakan tipe data
ASN.1, banyak pe- meriksaan dimungkinkan dengan SDL yang tidak ada dengan
sebagian besar bahasa pemrograman lainnya.
Non-determinisme terdeteksi oleh alat
sebagai kesalahan. Berikut adalah contoh kesalahan yang ditangkap oleh alat.
Jika
Anda mendeklarasikan variabel-variabel ini:
DCL var 1 t_ int 32 , −− with T−I n t 3 2 : : = INTEGER ( −2147483648 . . 2147483647 )
var 2 t_ uint 8 , −− with T−UInt8 : :
= INTEGER ( 0 . . 2 5 5 )
var 4 MyChoice , −− with MyChoice : : = CHOICE {
a BOOLEAN, b Whatever }
var 5 MyEnum; −− with MyEnum : : = ENUMERATED { h e l l
o , world , howareyou }
Part IV
PENUTUP
Setelah menelaah dari penjelasan
diatas, maka, dapat diketahui keuntungan dari penggunaan SDL
atau Speci cation and De- scription
Language adalah :
ˆ Spesi kasi disain
dengan detil dan seksama
ˆ Dapat membantu dalam proses debugging ˆ Meningkatkan kualitas perangkat lunak
ˆ Mempercepat proses
pengembangan perangkat lunak
ˆ Memudahkan pengembangan lanjut
References
[1]
Sarma, A. (1995) SDL-92. Tutorial at the 7th SDL Forum.
Ibid.
[2]
Bræk, R. and Haugen, Ø. (1993)
Engineering Real Time Systems. An
object-oriented methodology using SDL. Hemel
Hempstead: Prentice Hall. ISBN 0-13-034448-6.
[3]
Rumbaugh, J., Blaha, M.,
Premerlani, W., Eddy, F. and Lorensen, W (1991) Object-Ori- ented
Modelling and De- sign. Englewood Cli
s: Prentice-Hall.ISBN 0-13-630054-5.
[4]
Yourdon E. (1989) Modern structured analysis. Englewood Cli s: Prentice-Hall.
ISBN 0-13-598632-X.
[5]
Z.100 (1994), CCITT Speci cation
and description lan- guage (SDL), ITU-T.
[6]
Z.100 C (1994), Initial algebra
model. Annex C to Z.100, ITU-T.
[7]
Z.100 D (1994), SDL prede ned
data. Annex D to Z.100, ITU-T.
[8]
Z.100 F2 (1994), Speci cation and
description language (SDL) - SDL formal de nition:
Static semantics, ITU-T.
[9]
Z.100 F3 (1993), Speci cation and
description language (SDL) - SDL formal de nition: Dynamic semantics, ITU-T Apr. 94.
[10]
Reed, R. Methodology for Real Time
Systems.Tutorial at the 7th SDL Forum. Ibid.