Konsep asas model data objek. Model objek

Sekarang kita mempunyai semua konsep yang diperlukan untuk menerangkan proses membina model objek. Proses ini termasuk langkah-langkah berikut:

· definisi objek dan kelas;

· penyediaan kamus data;

· penentuan kebergantungan antara objek;

· penentuan atribut objek dan sambungan;

· organisasi dan penyederhanaan kelas apabila menggunakan warisan;

· penyelidikan lanjut dan penambahbaikan model.

2.2.1. Definisi kelas. Analisis keperluan luaran untuk PS yang direka memungkinkan untuk menentukan objek dan kelas objek yang berkaitan dengan masalah yang digunakan yang mesti diselesaikan oleh sistem ini. Semua kelas mesti bermakna dalam pertimbangan kawasan permohonan; kelas yang berkaitan dengan pelaksanaan komputer, seperti senarai, tindanan, dsb. tidak boleh ditadbir pada peringkat ini.

Anda perlu bermula dengan mengenal pasti kelas yang mungkin daripada pernyataan bertulis masalah yang digunakan (spesifikasi teknikal dan dokumentasi lain yang disediakan oleh pelanggan). Perlu diingat bahawa ini adalah peringkat pembangunan yang sangat sukar dan bertanggungjawab, kerana nasib masa depan projek itu sebahagian besarnya bergantung padanya.

Apabila mengenal pasti kelas yang mungkin, anda harus cuba mengenal pasti seberapa banyak kelas yang mungkin, menulis nama setiap kelas yang terlintas di fikiran. Khususnya, setiap kata nama yang terdapat dalam pernyataan awal masalah boleh mempunyai kelas yang sepadan. Oleh itu, apabila mengenal pasti kelas yang mungkin, setiap kata nama tersebut biasanya dikaitkan dengan kelas yang mungkin.

· kelas berlebihan: jika dua atau lebih kelas menyatakan maklumat yang sama, hanya satu daripadanya harus dikekalkan;

· tidak relevan(tidak berkaitan langsung dengan masalah) kelas: untuk setiap nama kelas yang mungkin, ia dinilai betapa perlunya dalam sistem masa hadapan (ini selalunya sangat sukar untuk dinilai); kelas yang tidak berkaitan dikecualikan;



· tidak jelas(dari sudut masalah) kelas(lihat klausa 2.3.1);

· sifat-sifat: beberapa kata nama lebih sesuai dengan atribut dan bukannya kelas; kata nama sedemikian, sebagai peraturan, menerangkan sifat objek (contohnya, nama, umur, berat, alamat, dll.);

· operasi: sesetengah kata nama lebih berkemungkinan menjadi nama operasi dan bukannya kelas (cth. panggilan_telefon tidak mungkin menunjukkan sebarang kelas);

· peranan: Sesetengah kata nama mentakrifkan nama peranan dalam model objek (contohnya, pemilik, pemandu, bos, pekerja; semua nama ini dikaitkan dengan peranan dalam pelbagai kebergantungan objek kelas orang);

· struktur pelaksanaan: nama yang lebih dikaitkan dengan pengaturcaraan dan perkakasan komputer tidak boleh dibandingkan dengan kelas pada peringkat ini, kerana ia tidak mencerminkan ciri PS yang direka; contoh nama sedemikian: subrutin, proses, algoritma, gangguan, dsb.

Selepas menghapuskan nama semua kelas yang mungkin tidak perlu (berlebihan), senarai awal kelas yang membentuk sistem yang direka bentuk akan diperolehi.

2.2.2. Menyediakan kamus data. Perkataan individu mempunyai terlalu banyak tafsiran. Oleh itu, adalah perlu untuk menyediakan pada awal reka bentuk kamus data, mengandungi takrifan yang jelas dan jelas bagi semua objek (kelas), atribut, operasi, peranan dan entiti lain yang dipertimbangkan dalam projek. Tanpa kamus sedemikian, membincangkan projek dengan rakan pembangun dan pelanggan sistem adalah tidak bermakna, kerana semua orang boleh mentafsir istilah yang dibincangkan dengan cara mereka sendiri. Untuk contoh kamus, lihat perenggan 2.3.2.

2.2.3. Definisi tanggungan. Pada peringkat seterusnya membina model objek, kebergantungan antara kelas ditentukan. Pertama sekali, atribut yang merupakan pautan eksplisit ke kelas lain dikecualikan daripada kelas; atribut tersebut digantikan dengan kebergantungan. Maksud penggantian ini ialah kebergantungan mewakili abstraksi pada tahap yang sama dengan kelas, dan oleh itu tidak mempunyai kesan langsung ke atas pelaksanaan masa hadapan (rujukan kepada kelas hanyalah satu cara untuk melaksanakan kebergantungan).

Dengan cara yang sama bahawa nama kelas yang mungkin diperoleh daripada kata nama yang terdapat dalam pernyataan awal masalah aplikasi, nama kemungkinan kebergantungan boleh diperolehi daripada kata kerja atau frasa kerja terdapat dalam dokumen yang ditentukan. Beginilah cara mereka biasanya menerangkan: kedudukan fizikal (mengikut_di belakang, adalah_bahagian, terdapat_terdiri), tindakan terarah (membawa_kepada_pergerakan), komunikasi (bercakap_kepada), kepunyaan (mempunyai, adalah_bahagian), dsb. Contoh mengasingkan frasa kata kerja tersurat dan tersirat daripada rumusan awal masalah gunaan khusus dibincangkan dalam bahagian 2.3.3.

Anda kemudiannya harus mengalih keluar kebergantungan yang tidak perlu atau salah menggunakan kriteria berikut:

· kebergantungan antara kelas yang dikecualikan mesti dikecualikan atau dirumuskan semula dari segi kelas yang tinggal (lihat klausa 2.3.3);

· kebergantungan yang tidak relevan dan kebergantungan pelaksanaan mesti dikecualikan (lihat klausa 2.3.3);

· tindakan: pergantungan harus menerangkan sifat struktur domain aplikasi, dan bukan peristiwa yang tidak penting (lihat klausa 2.3.3);

· tanggungan latihan: kebanyakan kebergantungan antara tiga atau sebilangan besar kelas boleh diuraikan kepada beberapa kebergantungan binari, menggunakan kelayakan jika perlu (lihat bahagian 2.3.3); dalam beberapa kes (jarang berlaku) penguraian sedemikian tidak boleh dilakukan; sebagai contoh, pergantungan trenari "Profesor sedang mengajar kursus di bilik 628" tidak boleh diuraikan menjadi binari tanpa kehilangan maklumat;

· kebergantungan terbitan: adalah perlu untuk mengecualikan kebergantungan yang boleh dinyatakan melalui kebergantungan lain, kerana kebergantungan itu berlebihan (lihat bahagian 2.3.3); apabila mengecualikan kebergantungan berlebihan (berasal), anda perlu berhati-hati, kerana tidak semua kebergantungan pendua antara kelas adalah berlebihan; dalam beberapa kes, kebergantungan lain membenarkan kami untuk mewujudkan hanya kewujudan pergantungan terbitan lain, tetapi tidak membenarkan kami mewujudkan kepelbagaian pergantungan ini; sebagai contoh, dalam kes yang ditunjukkan dalam Rajah. 2.36, syarikat itu mempunyai ramai pekerja dan memiliki banyak komputer; setiap pekerja dibekalkan kegunaan peribadi beberapa komputer, selain itu terdapat komputer penggunaan biasa; kepelbagaian kebergantungan yang disediakan_untuk_penggunaan tidak boleh disimpulkan daripada kebergantungan yang dilayan dan dimiliki; walaupun kebergantungan terbitan tidak menambah maklumat baru, mereka selalunya mudah; dalam kes ini, ia boleh ditunjukkan pada rajah dengan menandakannya dengan garis miring.

nasi. 2.36. Kebergantungan tidak berlebihan

Setelah mengalih keluar kebergantungan berlebihan, anda perlu menjelaskan semantik kebergantungan yang tinggal seperti berikut:

· kebergantungan yang salah nama: mereka harus dinamakan semula supaya maksudnya menjadi jelas (lihat klausa 2.3.3);

· nama peranan: anda perlu menambah nama peranan jika perlu; nama peranan menerangkan peranan yang dimainkan oleh kelas yang sepadan dalam kebergantungan tertentu dari sudut pandangan kelas lain yang mengambil bahagian dalam kebergantungan itu; jika nama peranan jelas daripada nama kelas, ia boleh ditinggalkan (lihat bahagian 2.3.3);

· kelayakan: Dengan menambah kelayakan jika perlu, kami memperkenalkan elemen konteks, yang membolehkan kami mencapai pengenalan objek yang tidak jelas; kelayakan juga memungkinkan untuk memudahkan beberapa kebergantungan dengan mengurangkan kepelbagaiannya;

· kepelbagaian: adalah perlu untuk menambah sebutan untuk kepelbagaian tanggungan; Perlu diingat bahawa kepelbagaian kebergantungan mungkin berubah dalam proses analisis lanjut keperluan sistem;

· kebergantungan yang tidak dikira mesti dikenal pasti dan ditambah kepada model.

2.2.4. Penjelasan atribut. Pada peringkat seterusnya, sistem atribut dijelaskan: atribut kelas diselaraskan, atribut baharu diperkenalkan, jika perlu. Atribut menyatakan sifat objek kelas berkenaan, atau tentukan keadaan semasanya.

Atribut biasanya sepadan dengan kata nama; contohnya, car_color (objek property), cursor_position (objek state). Atribut, sebagai peraturan, mempunyai sedikit kesan ke atas struktur model objek.

Anda tidak seharusnya cuba menentukan seberapa banyak atribut yang mungkin: sejumlah besar atribut merumitkan model dan menjadikannya sukar untuk memahami masalah. Ia adalah perlu untuk memasukkan hanya atribut yang berkaitan dengan sistem aplikasi yang direka bentuk, meninggalkan atribut rawak, tidak penting dan terbitan.

Bersama-sama dengan atribut objek, ia juga perlu memasukkan atribut kebergantungan antara kelas (hubungan antara objek).

Apabila menentukan atribut, ia dipandu oleh kriteria berikut:

· Menggantikan atribut dengan objek. Jika kehadiran sesuatu entiti lebih penting daripada nilainya, maka ia adalah objek jika makna lebih penting, maka ini adalah atribut: sebagai contoh, bos adalah objek (tidak kira siapa bos, perkara utama ialah seseorang itu), gaji adalah atribut (maknanya sangat penting); bandar sentiasa menjadi objek, walaupun dalam beberapa kes ia mungkin kelihatan sebagai atribut (contohnya, bandar sebagai sebahagian daripada alamat syarikat); dalam kes di mana anda mahu bandar menjadi atribut, anda harus menentukan kebergantungan (katakan, terletak) antara firma kelas dan bandar.

· Kelayakan. Jika nilai atribut bergantung pada konteks tertentu, ia harus dijadikan sebagai kelayakan (lihat bahagian 2.3.4).

· Nama. Nama biasanya lebih baik dipadankan oleh kelayakan daripada oleh atribut objek; dalam semua kes apabila nama membenarkan seseorang memilih daripada objek bagi set tertentu, ia harus dijadikan sebagai kelayakan (lihat bahagian 2.3.4).

· Pengecam. Pengecam objek dikaitkan dengan pelaksanaannya. Pada peringkat awal reka bentuk mereka tidak boleh dianggap sebagai atribut.

· Pautan Atribut. Jika sesetengah harta tidak mencirikan objek itu sendiri, tetapi hubungannya dengan objek lain (objek), maka ini adalah atribut sambungan, dan bukan atribut objek.

· Nilai dalaman. Atribut yang mentakrifkan hanya keadaan dalaman objek, tidak kelihatan di luar objek, harus dikecualikan daripada pertimbangan.

· Butiran yang tidak penting. Adalah disyorkan untuk meninggalkan atribut yang tidak menjejaskan pelaksanaan kebanyakan operasi.

2.2.5. Menyusun sistem kelas menggunakan warisan. Seterusnya, anda perlu cuba mencari superclass untuk kelas yang diperkenalkan. Ini berguna kerana ia menjelaskan struktur model dan memudahkan pelaksanaan seterusnya. Contoh dibincangkan dalam perenggan 2.3.5.

2.2.6. Kajian lanjut dan penambahbaikan model. Hanya dalam kes yang jarang berlaku, model objek yang dibina serta-merta menjadi betul. Model mesti diteliti dan nyahpepijat. Beberapa ralat boleh ditemui semasa memeriksa model tanpa komputer, yang lain - semasa mentafsirkannya bersama-sama dengan model dinamik dan berfungsi pada komputer (model ini dibina selepas model objek telah dibina).

Di sini kita akan melihat teknik untuk carian bebas komputer dan pembetulan ralat dalam model objek. Ia berdasarkan tanda luar yang boleh digunakan untuk mencari ralat dalam model; tanda-tanda ini boleh digabungkan ke dalam kumpulan berikut.

Tanda-tanda objek hilang (kelas):

· asimetri sambungan dan generalisasi (warisan); untuk membetulkan ralat anda perlu menambah kelas yang hilang;

· ketidakpadanan antara atribut dan operasi kelas; untuk membetulkan ralat, adalah perlu untuk membahagikan kelas kepada beberapa kelas lain, supaya atribut dan operasi kelas baharu sepadan antara satu sama lain;

· operasi telah dikesan yang tidak mempunyai kelas sasaran yang memuaskan; Untuk membetulkan ralat, anda perlu menambah kelas sasaran yang hilang;

· beberapa tanggungan dengan nama dan tujuan yang sama ditemui; Untuk membetulkan ralat, anda perlu membuat generalisasi dan menambah superclass yang hilang.

Tanda-tanda kelas yang tidak perlu (berlebihan):

· kekurangan atribut, operasi dan kebergantungan kelas tertentu; Untuk membetulkan ralat, anda perlu mempertimbangkan sama ada kelas sedemikian harus dikecualikan.

Tanda-tanda kebergantungan yang hilang:

· tiada laluan akses kepada operasi; Untuk membetulkan ralat, anda perlu menambah kebergantungan baharu yang menyediakan keupayaan untuk menyediakan permintaan yang sepadan.

Tanda-tanda kebergantungan yang tidak perlu (berlebihan):

· maklumat berlebihan dalam tanggungan; untuk membetulkan ralat, adalah perlu untuk mengecualikan kebergantungan yang tidak menambah maklumat baharu, atau menandakannya sebagai kebergantungan terbitan;

· tidak ada operasi yang mencukupi melintasi pergantungan; Untuk membetulkan ralat, anda perlu mempertimbangkan sama ada pergantungan sedemikian harus dikecualikan.

Tanda-tanda penempatan yang tidak betul kebergantungan:

· nama peranan terlalu luas atau terlalu sempit untuk kelas mereka; Untuk membetulkan ralat, anda mesti mengalihkan kebergantungan ke atas atau ke bawah hierarki kelas.

Tanda-tanda peletakan atribut yang salah:

· tidak perlu mengakses objek dengan nilai salah satu atributnya; Untuk membetulkan ralat, anda perlu mempertimbangkan sama ada anda perlu memperkenalkan pergantungan yang layak.

Contoh permohonan praktikal Untuk simptom yang diterangkan, lihat perenggan 2.3.6.

Contoh model objek

Mari kita pertimbangkan proses membina model objek untuk sistem perkhidmatan perbankan dalam proses menganalisis keperluan dan reka bentuk awal sistem ini. Untuk membina model objek sistem yang sedang dipertimbangkan, kita perlu melengkapkan semua langkah yang disenaraikan dalam perenggan 2.2.

2.3.1. Definisi objek dan kelas. Dalam klausa 1.3, tugasan dirumuskan dan gambar rajah rangkaian perkhidmatan perbankan ditunjukkan (Rajah 1.3). Dengan menganalisis pernyataan masalah ini, adalah mungkin untuk mengenal pasti kelas yang mungkin dengan memadankannya dengan kata nama yang disebutkan dalam rumusan awalnya; Ini menghasilkan senarai nama kelas yang mungkin berikut (dalam susunan abjad):

Kami memeriksa senarai ini, tidak termasuk nama kelas daripadanya menurut cadangan perenggan 2.2.1:

· kelas berlebihan: Adalah jelas bahawa pelanggan dan pengguna bermaksud konsep yang sama; Untuk sistem perbankan adalah lebih wajar untuk meninggalkan kelas pelanggan;

· kelas yang tidak berkaitan: kelas sedemikian ialah kelas harga (ia tidak berkaitan secara langsung dengan operasi rangkaian perbankan);

· kelas yang tidak jelas: kelas tersebut adalah perkhidmatan penyimpanan_rekod dan pemeriksaan keselamatan (perkhidmatan ini adalah sebahagian daripada pengeposan), sistem (dalam kes kami, ia tidak jelas apa ini), rangkaian_perbankan (keseluruhan PS akan berkhidmat kepada rangkaian perbankan);

· sifat-sifat: data transaksi, data akaun, wang (bermaksud wang sebenar yang diberikan kepada pelanggan oleh juruwang atau ATM, atau diterima oleh juruwang), resit (yang dikeluarkan kepada pelanggan bersama-sama dengan wang) adalah lebih semula jadi untuk dimiliki sebagai sifat;

· struktur pelaksanaan nama nyata seperti perisian_perisian dan akses; mereka juga harus dikecualikan daripada senarai nama kelas yang mungkin.

Selepas menghapuskan semua nama kelas yang tidak diperlukan, kami memperoleh senarai kelas berikut yang membentuk sistem perbankan yang direka (kelas ini dibentangkan dalam Rajah 2.5):

2.3.2. Menyediakan kamus data. Berikut ialah sebahagian daripada kamus data yang mengandungi definisi kelas yang digunakan dalam projek.

ATM (ATM) ialah terminal yang membolehkan pelanggan membuat transaksi sendiri menggunakan kadnya untuk pengenalan. ATM (ATM) berinteraksi dengan pelanggan untuk mendapatkan maklumat transaksi yang diperlukan, menghantar maklumat transaksi ke komputer pusat untuk pengesahan dan penggunaan selanjutnya dalam transaksi, dan mengeluarkan wang dan resit kepada pelanggan. Diandaikan bahawa ATM (mesin juruwang automatik) tidak perlu beroperasi secara bebas daripada rangkaian.

Bank ialah organisasi kewangan yang memegang akaun untuk pelanggannya dan mengeluarkan kad yang membenarkan akses kepada akaun melalui rangkaian ATM (mesin juruwang automatik).

Kad - kad plastik yang dikeluarkan oleh bank kepada pelanggannya, yang membenarkan akses kepada akaun melalui rangkaian ATM (ATM). Setiap kad mengandungi kod bank dan nombor kad, dikodkan mengikut piawaian kebangsaan untuk kad bank. Bank_code secara unik mengenal pasti bank dalam konsortium. Nombor_kad menentukan akaun yang boleh diakses oleh kad. Kad tidak semestinya menyediakan akses kepada semua akaun pelanggan. Setiap kad hanya boleh dimiliki oleh seorang pelanggan, tetapi beberapa salinan mungkin wujud, jadi pertimbangan harus diberikan kepada penggunaan serentak kad yang sama dari ATM (ATM) yang berbeza.

Juruwang ialah pekerja bank yang mempunyai hak untuk membuat transaksi dari terminal tunai, serta menerima dan mengeluarkan wang dan cek kepada pelanggan. Urus niaga, wang dan cek yang setiap juruwang bekerja mesti direkodkan dan diakaunkan dengan betul.

Cash_terminal - terminal tempat juruwang membuat transaksi untuk pelanggan. Apabila juruwang menerima dan mengeluarkan wang serta cek, terminal POS mencetak resit. Terminal POS berinteraksi dengan bank_computer untuk menyemak dan melengkapkan pengeposan.

Pelanggan ialah pemegang satu atau lebih akaun bank. Pelanggan mungkin terdiri daripada satu atau lebih individu atau organisasi. Orang yang sama yang memegang akaun di bank lain dianggap sebagai pelanggan yang berbeza.

Komputer_bank ialah komputer milik bank yang berinteraksi dengan rangkaian ATM (ATM) dan terminal_tunai bank itu sendiri. Bank mungkin mempunyai rangkaian komputer dalaman sendiri untuk memproses invois, tetapi di sini kami hanya mempertimbangkan bank_komputer yang berkomunikasi dengan rangkaian ATM.

Konsortium adalah persatuan bank yang memastikan operasi rangkaian ATM (ATM). Rangkaian menghantar transaksi bank kepada konsortium.

Penyiaran ialah permintaan bersepadu tunggal untuk melaksanakan urutan operasi tertentu pada akaun satu pelanggan. Telah diandaikan bahawa ATM (mesin juruwang automatik) hanya mengeluarkan wang, tetapi mereka tidak seharusnya mengecualikan kemungkinan mencetak cek atau menerima wang dan cek. Kami juga ingin memastikan fleksibiliti sistem, yang pada masa hadapan akan memberikan keupayaan untuk memproses akaun secara serentak daripada pelanggan yang berbeza, walaupun ini belum diperlukan lagi. Pelbagai operasi mestilah seimbang dengan betul.

Akaun - satu akaun bank di mana pengeposan dibuat. Akaun mungkin pelbagai jenis; pelanggan boleh mempunyai beberapa akaun.

Central_computer - komputer yang dimiliki oleh konsortium yang mengedarkan transaksi dan keputusannya antara ATM (ATM) dan bank_computers. Central_computer menyemak kod bank tetapi tidak menyiarkan.

2.3.3. Definisi tanggungan. Mengikut cadangan perenggan 2.2.3, kami membezakan yang tersurat dan tersirat frasa kerja daripada penyataan awal masalah dan menganggapnya sebagai nama kebergantungan yang mungkin. Daripada rumusan masalah rangkaian perbankan (lihat bahagian 1.3), ungkapan berikut boleh diekstrak:

Frasa kata kerja (tersurat dan tersirat):

Rangkaian perbankan termasuk juruwang dan ATM

Konsortium mengedarkan hasil transaksi melalui ATM

Bank memiliki komputer bank

Komputer bank menyokong akaun

Bank memiliki terminal tunai

Terminal tunai berinteraksi dengan komputer bank

Juruwang masuk menghantar ke invois

ATM berinteraksi dengan komputer pusat semasa pendawaian

Komputer pusat berinteraksi dengan komputer bank

ATM menerima kad

ATM berkomunikasi dengan pengguna

ATM isu tunai

ATM cetakan resit

Sistem mengawal selia akses dikongsi

Bank menyediakan perisian

Konsortium terdiri bank

Konsortium memiliki komputer pusat

Sistem menyediakan pembalakan

Sistem menyediakan keselamatan

Pelanggan mempunyai kad

Kad menyediakan akses ke akaun

Di dalam bank hidang juruwang

Kemudian kami mengecualikan kebergantungan yang tidak perlu atau tidak betul menggunakan kriteria yang dirumuskan dalam perenggan 2.2.3:

· kebergantungan antara kelas yang dikecualikan: kebergantungan berikut dikecualikan: Rangkaian perbankan termasuk juruwang dan ATM (kelas rangkaian_perbankan tidak termasuk), ATM cetakan resit (kelas resit tidak termasuk), ATM isu tunai (wang kelas tidak termasuk), Sistem menyediakan urus niaga pembalakan (kelas perkhidmatan penyimpanan_rekod dikecualikan), System menyediakan keselamatan pengurusan akaun (kelas keselamatan_perkhidmatan dikecualikan), Bank menyediakan perisian (perisian_perisian kelas dikecualikan);

· kebergantungan yang tidak relevan dan kebergantungan berkaitan pelaksanaan: pergantungan "Sistem" mengawal selia akses dikongsi" dikecualikan sebagai berkaitan pelaksanaan;

· tindakan digambarkan oleh kebergantungan seperti "ATM menerima kad" dan "ATM berkomunikasi dengan pengguna"; kami mengecualikan kebergantungan ini;

· tanggungan latihan: ketagihan "Juruwang" masuk pengeposan pada akaun" diuraikan kepada dua kebergantungan binari "Juruwang masuk pendawaian" dan " Pendawaian merujuk kepada akaun". Kebergantungan "ATM". berinteraksi dengan komputer pusat semasa pendawaian" dikembangkan menjadi "ATM". berinteraksi dengan komputer pusat" dan "Pendawaian bermula dengan ATM";

· kebergantungan terbitan: pergantungan "Konsortium" mengedarkan ATM adalah akibat daripada kebergantungan Konsortium memiliki komputer pusat" dan "ATM". berinteraksi dengan komputer pusat."

Dengan mengalih keluar kebergantungan berlebihan, kami mendapat senarai kebergantungan berikut:

Bank memiliki komputer bank

Komputer bank menyokong akaun

Bank memiliki terminal tunai

Terminal tunai berinteraksi dengan komputer bank

Juruwang masuk pendawaian

Pendawaian merujuk kepada akaun

ATM berinteraksi dengan komputer pusat

Pendawaian bermula dengan ATM

Komputer pusat berinteraksi dengan komputer bank

Konsortium terdiri bank

Konsortium memiliki komputer pusat

Pelanggan mempunyai kad

Kad menyediakan akses ke akaun

Di dalam bank hidang juruwang

Mari kita jelaskan semantik kebergantungan yang tinggal seperti berikut:

· jom tukar nama menamakan kebergantungan secara salah supaya maknanya menjadi lebih jelas; jadi pergantungan Computer_bank menyokong adalah lebih mudah untuk menggantikan akaun dengan pergantungan Bank memegang akaun.

· nama peranan mungkin tidak digunakan, kerana ia jelas daripada nama kelas yang terlibat dalam kebergantungan, seperti untuk kebergantungan ATM berinteraksi dengan komputer pusat;

· kebergantungan yang tidak dikira: Pendawaian bermula daripada cash_terminal, Pelanggan mempunyai Akaun, Penyiaran berdaftar kad perlu ditambah pada model.

Setelah kebergantungan telah dijelaskan, versi awal gambarajah objek boleh disusun. Untuk masalah yang sedang dipertimbangkan, ia akan mempunyai bentuk yang ditunjukkan dalam Rajah. 2.37.

nasi. 2.37. Versi pertama gambarajah objek untuk rangkaian perbankan

2.3.4. Penjelasan atribut. Menggunakan kriteria yang dirumuskan dalam klausa 2.2.4, kami memperoleh:

Kad mengandungi bank_code dan card_code; mereka boleh dianggap sebagai atribut objek kelas kad, tetapi lebih mudah untuk menggunakannya sebagai kelayakan, kerana bank_code memastikan pilihan bank, mengurangkan kepelbagaian konsortium - hubungan bank; untuk penggunaan card_code yang serupa, anda perlu menambah kebergantungan Bank isu kad, yang kelayakannya ialah card_code.

Selepas membuat perubahan di atas, rajah akan mengambil bentuk yang ditunjukkan dalam Rajah. 2.38.

2.3.5. Menyusun sistem kelas menggunakan warisan. Dalam contoh yang sedang dipertimbangkan, adalah wajar untuk mentakrifkan superclass untuk objek yang mentakrifkan pelbagai terminal: cash_terminal dan ATM (ATM), dan untuk objek yang mentakrifkan urus niaga: cashier_transaction dan remote_transaction (dari ATM).

Setelah membuat perubahan yang sesuai, kami memperoleh gambar rajah objek yang ditunjukkan dalam Rajah. 2.39.

nasi. 2.38. Gambar rajah objek untuk rangkaian perbankan selepas menyatakan atribut dan menambah kelayakan

nasi. 2.39. Gambar rajah objek untuk perbankan dengan mengambil kira warisan

2.3.6. Penambahbaikan model selanjutnya. Kad bertindak dalam dua entiti: sebagai unit pendaftaran dalam bank (buku simpanan), yang menyediakan pelanggan akses kepada akaunnya, dan sebagai struktur data yang ATM berfungsi. Oleh itu, adalah mudah untuk membahagikan kelas kad kepada dua kelas: registration_card dan card; kelas pertama ini memberikan pelanggan akses kepada akaun banknya, dan kelas kedua mentakrifkan struktur data yang ATM berfungsi.

Adalah mudah untuk membayangkan kelas penyiaran sebagai pengagregatan kelas perubahan, kerana penyiaran adalah urutan yang dipersetujui untuk membuat perubahan pada akaun dan dokumen perbankan lain; Apabila bekerja dengan dokumen bank, tiga jenis perubahan dipertimbangkan: pengeluaran, penempatan dan permintaan.

Adalah wajar untuk menggabungkan kelas bank dengan kelas komputer_bank, dan kelas konsortium dengan kelas komputer_pusat.

nasi. 2.40. Pandangan akhir gambarajah objek untuk rangkaian perbankan

Selepas membuat perubahan di atas, rajah objek akan mengambil bentuk yang ditunjukkan dalam Rajah. 2.40. Ini melengkapkan pembinaan model objek peringkat reka bentuk awal. Penambahbaikan lanjut model objek akan dijalankan pada fasa seterusnya kitaran hayat sistem.

Pengasingan subsistem

2.4.1. Konsep subsistem. Jadi, PS ialah satu set objek yang saling bergantung. Setiap objek dicirikan oleh satu set atribut, nilai yang menentukan keadaan objek, dan satu set operasi yang boleh digunakan pada objek ini. Apabila membangunkan sistem perisian, adalah mudah untuk menganggap bahawa semua atribut objek ditutup (iaitu, mereka tidak boleh diakses di luar objek, dan untuk mengetahui nilai atribut objek lain dalam objek, atau menukar ia, adalah perlu untuk menggunakan salah satu operasi awam objek ini, jika, sudah tentu, operasi sedemikian ditakrifkan). Operasi objek boleh sama ada awam atau peribadi.

Oleh itu, setiap objek mempunyai definisi yang ketat antara muka, iaitu satu set operasi awam yang boleh digunakan pada objek ini. Semua objek kelas yang sama mempunyai antara muka yang sama. Antara muka kelas (dan, akibatnya, setiap objek kelas ini) ditentukan oleh senarai tandatangan operasi terbuka (awam)nya (dan kaedah yang melaksanakannya); tandatangan operasi tertutup tidak termasuk dalam antara muka objek kelas yang sepadan.

Model objek sistem menentukan set objek saling bergantung yang membentuk sistem, dan oleh itu mentakrifkan set antara muka yang tersedia dalam sistem. Semua keupayaan pemprosesan data dalam sistem (iaitu, dalam setiap objek yang merupakan sebahagian daripada sistem) ditentukan oleh set antara muka ini, yang mentakrifkan persekitaran dalaman(atau Rabu) sistem.

Bersama dengan persekitaran dalaman sistem, adalah mungkin untuk menentukannya persekitaran luaran . Ia ditentukan oleh fungsi (operasi) yang dilaksanakan sebagai sebahagian daripada perisian sistem (iaitu sistem pengendalian, sistem pengaturcaraan, pelbagai editor, DBMS, dsb.), serta dalam yang lain sistem aplikasi dan perpustakaan yang digunakan bersama dengan sistem. Objek dan operasi yang membentuk persekitaran luaran sistem juga boleh diakses dalam sistem. Untuk mengingati perkara ini, kita boleh menambah objek lain pada model objek yang antara mukanya akan mewakili keupayaan persekitaran yang digunakan dalam sistem (antara muka sedemikian biasanya hanya mewakili sebahagian daripada keupayaan persekitaran luaran). Tetapi ini tidak sepenuhnya tepat, kerana persekitaran luaran direalisasikan bukan oleh satu, tetapi oleh beberapa objek. Sebaliknya, di dalam sistem tidak ada sebab untuk mempertimbangkan struktur persekitaran luarannya. Jalan keluar daripada percanggahan ini adalah dengan memperkenalkan entiti lain ke dalam pertimbangan - subsistem.

Subsistem ialah satu set objek dan subsistem yang menyediakan beberapa fungsi dan berinteraksi antara satu sama lain mengikut antara muka mereka. Antara muka subsistem mewakili subset menggabungkan antara muka semua objek dan subsistem yang membentuk subsistem ini. Subsistem mungkin termasuk satu atau lebih objek dan/atau subsistem yang saling bergantung.

Set antara muka objek (dan subsistem), yang bersama-sama membentuk subsistem tertentu, membentuk persekitaran dalaman subsistem ini. Setiap subsistem mesti termasuk subsistem persekitaran yang mewakili persekitaran luaran subsistem ini. Subsistem persekitaran untuk sistem perkhidmatan perbankan, dianggap sebagai contoh hujung ke hujung, ditunjukkan dalam Rajah. 2.41. Antara muka subsistem persekitaran menentukan dalam persekitaran perisian sistem yang direka bentuk akan beroperasi dan apakah keupayaan persekitaran ini akan digunakan semasa operasinya (ini penting apabila terdapat keperluan untuk pengubahsuaian atau penggantian komponen individu persekitaran).

Ambil perhatian bahawa subsistem persekitaran hanya mewakili antara muka sistem perkhidmatan perbankan dengan persekitaran luarannya. Persekitaran luaran sistem perkhidmatan perbankan terdiri daripada beberapa subsistem dan perpustakaan, dan model objek juga boleh dibangunkan untuknya, yang juga boleh mengandungi sistem yang sedang dibangunkan (dalam model objek ini ia akan menjadi salah satu subsistem).

Model objek sistem perkhidmatan perbankan dan persekitaran sistemnya (luaran) juga boleh digambarkan dalam bentuk rajah objek (namun, rajah objek ini tidak akan termasuk objek, tetapi hanya subsistem; setiap subsistem digambarkan pada rajah sebagai segi empat tepat dengan rangkap dua sisi menegak). Kebergantungan antara subsistem yang digambarkan dalam rajah objek ini (Rajah 2.42) mencerminkan interaksi sistem perbankan yang direka bentuk dan subsistem yang sepadan semasa operasi sistem. Ini menentukan keperluan sistem yang direka bentuk untuk persekitaran sistemnya.

nasi. 2.41. Gambar rajah objek rangkaian perbankan, yang menunjukkan antara muka dengan persekitaran sistem

nasi. 2.42. Gambar rajah objek rangkaian perbankan dan persekitaran sistemnya

Pengenalan konsep subsistem dan keupayaan untuk memasukkan subsistem dalam model objek bersama-sama dengan objek (kelas) mentakrifkan struktur hierarki model objek dan membenarkan penggunaan metodologi OMT apabila mereka bentuk sistem perisian yang agak kompleks yang mengandungi nombor besar pelbagai objek dan kelas.

2.4.2. Antara muka dan persekitaran. Objek dan subsistem yang membentuk subsistem peringkat lebih tinggi akan dipanggil komponen yang terakhir. Seperti yang telah dinyatakan, bagi setiap komponen yang merupakan sebahagian daripada model objek subsistem, ia antara muka, iaitu satu set operasi terbuka (awam) yang boleh digunakan pada komponen ini (objek atau subsistem).

Antara Muka Objek ditakrifkan oleh antara muka kelas yang sepadan dan ditentukan oleh senarai tandatangan operasi awamnya (kaedah). Antara muka subsistem ditakrifkan melalui antara muka objek konstituen dan subsistemnya seperti berikut: operasi boleh dimasukkan ke dalam antara muka subsistem jika subsistem ini mengandungi objek (subsistem) yang antara mukanya mengandungi operasi ini. Antara muka diterangkan dalam bahasa penerangan antara muka IDL (Bahasa Definisi Antara Muka).

Semua keupayaan pemprosesan data dalam subsistem (iaitu, dalam setiap komponen yang termasuk dalam komposisinya) ditentukan oleh satu set antara muka komponennya, yang menentukan persekitaran dalaman subsistem.

Jika bagi sesetengah subsistem ternyata tiada satu pun daripada komponennya mengandungi operasi yang wajar dimasukkan ke dalam antara mukanya, objek yang melaksanakan operasi sedemikian boleh ditambah pada komposisinya. Objek sedemikian dipanggil objek antara muka. Objek antara muka membolehkan anda menyelaraskan antara muka luaran subsistem dengannya persekitaran luaran, iaitu dengan antara muka objek dan subsistem lain, yang, bersama-sama dengan subsistem berkenaan, membentuk subsistem peringkat lebih tinggi.

Mari kita terangkan konsep yang diperkenalkan menggunakan contoh sistem perkhidmatan perbankan. Dalam komposisinya, seseorang boleh membezakan subsistem bank (sebenarnya, sistem itu akan mempunyai beberapa salinan subsistem bank - satu untuk setiap bank yang termasuk dalam konsortium). Dalam kes ini, model objek sistem akan mengambil bentuk yang ditunjukkan dalam Rajah. 2.43.

nasi. 2.43. Gambar rajah objek rangkaian perbankan selepas menyerlahkan subsistem bank

Pada masa yang sama, antara muka luaran bank dan subsistem persekitaran, bersama-sama dengan antara muka ATM dan objek konsortium, membentuk persekitaran dalaman sistem perkhidmatan perbankan. Persekitaran luarannya ditunjukkan dalam Rajah. 2.42; ia terdiri daripada antara muka luaran pelbagai sistem perisian yang digunakan dalam sistem perbankan (angka hanya menunjukkan sebahagian daripada sistem ini), dan antara muka luarannya sendiri.

Pendekatan berorientasikan objek adalah berdasarkan satu set prinsip yang dipanggil model objek. Prinsip utama ialah

  • - abstraksi;
  • - enkapsulasi;
  • - modulariti;
  • - hierarki.

Prinsip-prinsip ini adalah yang utama dalam erti kata bahawa tanpanya model tidak akan berorientasikan objek. Sebagai tambahan kepada yang utama, kami akan menamakan tiga prinsip tambahan:

  • - menaip;
  • - selari;
  • - pemeliharaan.

Dengan memanggilnya pilihan, kami bermaksud bahawa ia berguna dalam model objek, tetapi tidak diperlukan.

Abstraksi

Orang ramai telah berkembang dengan luar biasa teknologi yang berkesan mengatasi kerumitan. Kita abstrak diri kita daripadanya. Jika kita tidak dapat mencipta semula sepenuhnya objek kompleks, maka anda perlu mengabaikannya tidak terlalu banyak butiran penting. Akibatnya, kita berurusan dengan model umum dan ideal bagi objek.

Sebagai contoh, apabila mengkaji proses fotosintesis dalam tumbuhan, kita memberi tumpuan kepada tindak balas kimia dalam sel tertentu daun dan tidak memberi perhatian kepada bahagian lain - keratan, urat, dll.

Abstraksi menyerlahkan ciri-ciri penting beberapa objek yang membezakannya daripada semua jenis objek lain, dan dengan itu mentakrifkan dengan jelas sempadan konsepnya dari sudut pandangan pemerhati.

Abstraksi menumpukan perhatian kepada ciri luaran objek dan membolehkan anda memisahkan ciri tingkah laku yang paling ketara daripada yang tidak penting. Pemisahan makna dan pelaksanaan ini dipanggil halangan abstraksi. Penubuhan satu atau satu lagi halangan kepada abstraksi menimbulkan banyak abstraksi yang berbeza untuk objek atau fenomena yang sama dunia sebenar. Abstrak ke tahap yang lebih besar atau lebih kecil daripada pelbagai aspek manifestasi realiti, kita berada pada tahap abstraksi yang berbeza.

Sebagai contoh, pertimbangkan unit sistem komputer. Pengguna yang menggunakan komputer untuk menaip teks tidak mengambil kira bahagian mana yang terdiri daripada blok ini. Baginya ia adalah kotak putih dengan butang dan kapasiti untuk cakera liut. Ia mengabstrakkan konsep seperti "pemproses" atau " Ram". Sebaliknya, pengaturcara, program penulisan V kod mesin, halangan abstraksi terletak jauh lebih rendah. Dia perlu mengetahui struktur pemproses dan arahan yang difahami olehnya.

Satu lagi prinsip tambahan berguna, dipanggil prinsip paling tidak terkejut. Menurutnya, abstraksi harus meliputi semua tingkah laku objek, tetapi tidak lebih dan tidak kurang, dan tidak memperkenalkan kejutan atau kesan sampingan, terletak di luar skop kebolehgunaannya.

Sebagai contoh, kita perlu menggunakan struktur data yang serupa dengan timbunan (dengan akses dijalankan mengikut peraturan "masuk dahulu, keluar terakhir"), tetapi kita perlu menyemak kehadiran beberapa elemen dalam "timbunan". Jika kita memanggil struktur data ini sebagai timbunan dan membentangkannya kepada pengaturcara luar, dia akan sangat terkejut apabila melihat operasi "tambahan".

Semua abstraksi mempunyai sifat statik dan dinamik. Sebagai contoh, fail sebagai objek memerlukan sejumlah memori pada peranti tertentu, mempunyai nama dan kandungan. Atribut ini adalah sifat statik. Nilai khusus setiap sifat yang disenaraikan adalah dinamik dan berubah semasa penggunaan objek: fail boleh ditambah atau dikurangkan, nama dan kandungannya boleh ditukar.

Kami akan memanggil pelanggan sebarang objek yang menggunakan sumber objek lain, dipanggil pelayan. Kami akan mencirikan kelakuan sesuatu objek dengan perkhidmatan yang diberikannya kepada objek lain dan operasi yang dilakukannya pada objek lain. Pendekatan ini memberi tumpuan kepada manifestasi luaran objek dan melaksanakan model pengaturcaraan kontrak yang dipanggil. Model ini adalah seperti berikut: manifestasi luaran objek dipertimbangkan dari sudut pandangan kontraknya dengan objek lain; selaras dengan ini, ia organisasi dalaman(selalunya - dalam interaksi dengan objek lain). Kontrak merekodkan semua kewajipan yang dimiliki oleh objek pelayan terhadap objek klien. Dalam erti kata lain, kontrak ini mentakrifkan tanggungjawab objek—tingkah laku yang menjadi tanggungjawabnya.

Setiap operasi yang disediakan oleh kontrak ditentukan secara unik oleh tandatangannya - senarai jenis parameter formal dan jenis nilai pulangan. Set lengkap operasi yang pelanggan boleh lakukan pada objek lain, bersama-sama dengan susunan yang betul di mana operasi tersebut dipanggil, dipanggil protokol. Protokol mencerminkan segala-galanya cara yang mungkin, yang mana objek boleh bertindak atau terjejas. Oleh itu, protokol mentakrifkan sepenuhnya kelakuan luaran abstraksi.

Contoh. Dalam rumah hijau hidroponik, tumbuhan ditanam dalam larutan nutrien tanpa pasir, kerikil atau tanah lain. Menguruskan mod pengendalian pemasangan rumah hijau adalah perkara yang sangat bertanggungjawab. Ia bergantung kepada kedua-dua jenis tanaman yang ditanam dan pada peringkat penanaman. Beberapa faktor perlu dikawal: suhu, kelembapan, pencahayaan, keasidan dan kepekatan nutrien. Di ladang besar, untuk menyelesaikan masalah ini mereka sering menggunakan sistem automatik, yang mengawal dan mengawal faktor ini. Matlamat automasi di sini adalah untuk mencapai pematuhan dengan rejim yang semakin meningkat dengan campur tangan manusia yang minimum.

Salah satu abstraksi utama dalam masalah ini ialah sensor. Beberapa jenis sensor diketahui. Semua yang menjejaskan hasil mesti diukur. Oleh itu, penderia diperlukan untuk suhu air, suhu udara, kelembapan, keasidan, pencahayaan dan kepekatan nutrien.

DENGAN titik luaran Dalam penglihatan, sensor suhu adalah objek yang mampu mengukur suhu di mana ia berada. Suhu ialah parameter berangka yang mempunyai julat nilai yang terhad dan ketepatan tertentu dan bermakna beberapa darjah Celsius.

Lokasi penderia adalah beberapa tempat yang ditakrifkan secara unik di rumah hijau, suhu yang perlu anda ketahui. Mungkin terdapat sedikit tempat seperti itu. Untuk penderia suhu, bukan lokasi itu sendiri yang penting, tetapi hanya fakta bahawa penderia ini terletak di tempat tertentu ini.

Mari kita lihat unsur-unsur melaksanakan abstraksi kami dalam C++.

Typedef float Suhu; // Suhu dalam Celsius

typedef unsigned int Lokasi; // Nombor yang mentakrifkan secara unik

// kedudukan sensor

Di sini dua pengendali definisi jenis Suhu dan Lokasi memperkenalkan alias yang mudah untuk jenis yang paling mudah, dan ini membolehkan kami menyatakan abstraksi kami dalam bahasa bidang subjek. Suhu adalah jenis angka data dalam format titik terapung untuk merekodkan suhu. Nilai lokasi menunjukkan lokasi di mana penderia suhu boleh ditempatkan.

Mari kita lihat tanggungjawab sensor suhu. Penderia mesti mengetahui suhu di lokasinya dan melaporkannya atas permintaan. Pelanggan boleh melakukan tindakan berikut berhubung dengan penderia: menentukur penderia dan menerima nilai suhu semasa daripadanya. Oleh itu, objek "Sensor Suhu" mempunyai dua operasi: "Kalibrasi" dan "Suhu semasa".

struct TemperatureSensor (

Suhu curSuhu; // suhu semasa dalam

// lokasi sensor

Loc lokasi; // lokasi sensor

void calibrate(Suhu sebenarSuhu); // menentukur

Suhu semasaTemperature(); // suhu semasa

Penerangan ini memperkenalkan jenis baru Pengesan suhu. Perkara penting di sini ialah, pertama, data dan fungsi yang mengubahnya digabungkan bersama dalam satu penerangan dan, kedua, kami tidak bekerja secara langsung dengan data, tetapi mengubahnya melalui fungsi yang sesuai.

Objek jenis ini dimasukkan dengan cara yang sama seperti pembolehubah jenis standard:

TSensor Suhu; // tatasusunan seratus objek jenis

// Pengesan suhu

Fungsi yang diisytiharkan dalam pengisytiharan dipanggil fungsi ahli. Mereka hanya boleh dipanggil pada pembolehubah jenis yang sesuai. Sebagai contoh, anda boleh menentukur sensor seperti ini:

TSensor. menentukur(0.); // nombor sensor 3 ditentukur

Oleh kerana nama objek di mana fungsi ahli dipanggil dihantar secara tersirat kepadanya, senarai argumen fungsi tidak mengandungi hujah jenis TemperatureSensor yang menentukan sensor khusus untuk beroperasi. Objek ini boleh diakses secara eksplisit dalam fungsi menggunakan penunjuk ini. Sebagai contoh, dalam badan fungsi penentukuran anda boleh menulis satu daripada dua operator yang setara

ini -> curTemperature = actualTemperature;

Idea utama abstraksi ialah konsep invarian. Invarian ialah keadaan logik yang nilainya (benar atau salah) mesti dikekalkan. Untuk setiap operasi objek, anda boleh menentukan prasyarat (iaitu, invarian yang diandaikan oleh operasi) dan postconditions (iaitu, invarian yang dipenuhi oleh operasi).

Mari kita lihat invarian yang dikaitkan dengan operasi Suhu semasa. Prasyarat termasuk andaian bahawa penderia dipasang di dalamnya tempat yang betul dalam rumah hijau, dan keadaan pascanya ialah penderia mengembalikan nilai suhu dalam darjah Celsius.

Menukar invarian melanggar kontrak yang berkaitan dengan abstraksi. Jika prasyarat dilanggar, maka pelanggan tidak menunaikan kewajipannya dan pelayan tidak dapat menyelesaikan tugas dengan betul. Jika syarat pasca dilanggar, maka pelayan telah melanggar kewajipannya, dan pelanggan tidak boleh mempercayainya lagi.

Untuk menyemak keadaan, bahasa C++ menyediakan alat khas dalam pustaka assert.h.

Sekiranya berlaku pelanggaran mana-mana syarat, a situasi yang luar biasa. Objek boleh menimbulkan pengecualian untuk menghalang pelaksanaan operasi selanjutnya dan memberi amaran kepada objek lain tentang masalah itu, yang seterusnya boleh mengambil alih untuk menangkap pengecualian dan menangani masalah tersebut.

C++ mempunyai mekanisme pengendalian pengecualian khas yang sensitif konteks. Konteks untuk menaikkan pengecualian ialah blok percubaan. Jika pengecualian berlaku apabila melaksanakan pernyataan di dalam blok cuba, kawalan dipindahkan kepada pengendali pengecualian, yang ditentukan oleh kata kunci tangkapan dan terletak di bawah blok cuba. Secara sintaksis, pengendali tangkapan kelihatan seperti pengisytiharan fungsi dengan satu hujah tanpa menyatakan jenis pulangan. Untuk satu blok percubaan, beberapa pengendali boleh ditentukan, berbeza dalam jenis hujah.

Pengecualian dibangkitkan dengan menyatakan kata kunci lempar dengan hujah ungkapan pilihan. Pengecualian akan dikendalikan dengan memanggil pengendali tangkapan yang jenis parameternya sepadan dengan jenis hujah lontaran. Jika terdapat blok percubaan bersarang (contohnya, disebabkan oleh panggilan fungsi bersarang), pengendali blok terdalam akan digunakan. Jika pengendali yang sepadan dengan jenis hujah lontaran tidak ditemui pada tahap ini, keluar akan dilaksanakan. fungsi semasa dan mencari dalam blok percubaan dengan kedalaman bersarang yang kurang, dsb. Selepas pengecualian dikendalikan, kawalan dipindahkan ke penyata mengikut penerangan pengendali tangkapan.

Contoh. Pertimbangkan tindanan yang dilaksanakan menggunakan tatasusunan panjang tetap.

timbunan int; // tidak lebih daripada seratus elemen pada timbunan

int atas=-1; // bilangan elemen yang tersedia

tolak kosong (int el) (

if(atas == 99) baling (1); // semak limpahan

else stack[++top] = el; // tolak elemen ke atas timbunan

if(atas == -1) baling (0); // semak kekosongan

lain timbunan kembali; // pop elemen daripada timbunan

cuba ( // blok percubaan

catch(int error)(. . .) // jika ralat = 0, maka tindanan itu kosong;

// jika ralat = 1, maka timbunan penuh

Objek ialah entiti yang ditakrifkan secara unik yang mengandungi atribut yang menerangkan keadaan objek dunia sebenar dan tindakan yang dikaitkan dengannya (peraturan tingkah laku). Dalam banyak cara, objek dan entiti RDB mempunyai sifat yang sama, tetapi entiti hanya memodelkan keadaan, dan objek itu juga merangkum peraturan tingkah laku.

Antara atribut objek, atribut rujukan menonjol: ia mengandungi nilai/koleksi nilai, yang ia sendiri adalah objek. Dalam erti kata lain, atribut rujukan adalah sama dari segi konsep kunci asing dalam RDB atau petunjuk dalam PL.

Setiap objek diberikan OID pada masa penciptaan. Ia mempunyai ciri-ciri berikut:

1. Dijana oleh sistem

2. Mengenal pasti objek ini secara unik

3. Ia tidak boleh diubah semasa objek itu terus wujud

4. Setelah objek dicipta, pengecamnya tidak boleh digunakan semula pada masa hadapan dalam sebarang syarat.

5. Tidak bergantung pada nilai atribut objek, i.e. 2 objek mungkin mempunyai keadaan yang sama, tetapi mereka sentiasa mempunyai OID yang berbeza.

6. Sebaik-baiknya, OID disembunyikan daripada pengguna.

Disebabkan oleh OID, integriti entiti dijamin secara automatik.

Objek merangkum bukan sahaja data, tetapi juga berfungsi (kaedah). Dalam pangkalan objek, kaedah boleh mengubah keadaan objek dengan menukar nilai atribut atau membuat pertanyaan terhadap nilai tertentu atribut tertentu.

Mesej adalah cara interaksi antara objek. Kandungan mesej adalah permintaan daripada satu objek (pengirim) kepada yang lain (penerima), di mana objek kedua diminta untuk melaksanakan salah satu kaedahnya.

Kelas ialah kumpulan objek yang sama.

Warisan - satu kelas ditakrifkan sebagai kes khas (subkelas) lebih kelas am(Kelas super). Subkelas mewarisi semua sifat superclass + tambahan. mentakrifkan sifat dan kaedahnya sendiri. Semua contoh subkelas adalah contoh kelas super. Prinsip penggantian: contoh subkelas sentiasa boleh menggunakan sebarang kaedah/atribut superclass atau dalam mana-mana pembinaan di mana superclass digunakan. Konsep subkelas, superclass dan warisan juga wujud dalam model RDB lanjutan. Walau bagaimanapun, dalam model objek tulen, pewarisan merujuk kepada keadaan dan tingkah laku.

Lebihan beban membolehkan anda menggunakan semula nama kaedah dalam satu atau lebih kaedah kelas. Kes khas lebihan adalah bertindih. Ia membolehkan anda mentakrifkan semula nama harta dalam subkelas.

Pautan dinamik membolehkan anda menangguhkan pemautan sehingga pelaksanaan.

Model Objek

Model objek membolehkan anda menyelesaikan beberapa masalah yang berkaitan dengan beberapa pangkalan data hubungan.

Masalah:


1. Menyokong berbilang versi

Kawalan versi ialah proses mengekalkan evolusi objek.

Mekanisme penjejakan versi mesti mengurus perubahan pada sifat objek supaya rujukan objek sentiasa menghala ke versi yang betul.

Untuk kawalan versi, terdapat tiga jenis versi: 1) versi sementara - dianggap tidak stabil, boleh dipadam atau dikemas kini dan disimpan dalam ruang kerja peribadi pembangun projek.

2) Versi berfungsi - dianggap lebih stabil, tidak boleh dikemas kini, tetapi boleh dipadamkan oleh penciptanya, dan juga disimpan dalam ruang kerja pembangun tertutup.

3) Versi yang dikeluarkan (keluaran) dianggap stabil, tidak boleh dikemas kini atau dipadam, disimpan dalam pangkalan data terbuka dan diletakkan di sana hasil daripada mengekstrak versi berfungsi dari ruang pembangun tertutup.

2. Sokongan untuk transaksi yang panjang

Bagi pengguna yang memulakan transaksi jangka panjang, adalah penting untuk menyimpan beberapa keputusan pertengahan sekiranya transaksi gagal, contohnya disebabkan konflik kunci.

Pilihan penyelesaian masalah: 1) protokol kawalan pelaksanaan selari dengan cap masa diperkenalkan.

Untuk setiap elemen data, pangkalan data menyimpan tiga kali ganda nilai yang sepadan dengan setiap perubahan dalam nilai elemen. Kami simpan nilai eigen elemen versi, kami menyimpan kali terakhir versi dibuka, cap waktu entri versi.

Dalam kes ini, berbilang transaksi dibenarkan untuk membaca dan menulis versi berbeza bagi item data yang sama.

Versi boleh dipadamkan serta-merta selepas keseluruhan transaksi selesai.

1) Cap masa transaksi tertua dalam sistem ditentukan, semua di bawah transaksi ini dipadamkan.

2) Model transaksi yang lebih baik diperkenalkan. (urus niaga lengkap diuraikan menjadi struktur pokok jumlah urus niaga yang dilaksanakan secara selari.

3) Penggunaan mata simpanan dan emulasi transaksi bersarang. (Titik simpan ialah beberapa titik dalam transaksi rata yang digunakan sebagai titik permulaan semula perantaraan.

4) Mekanisme kronik (saga) pangkalan data menjamin sama ada semua urus niaga yang termasuk dalam kronik akan selesai, atau transaksi pampasan akan dilancarkan.

3. Sokongan untuk evolusi projek i.e. Kemudahan fleksibel disediakan definisi dinamik dan perubahan pada skema pangkalan data.

Untuk mencapai matlamat ini, pelbagai pendekatan kreatif digunakan, contohnya, beberapa produk memperkenalkan litar invarian yang tidak sepatutnya berubah dengan sebarang pengubahsuaian.

Secara umum, kaedah pengubahsuaian pangkalan data adalah berdasarkan kehadiran atau pengenalan buatan pesanan separa (pesanan seperti #) ke dalam objek sistem; ini adalah mustahil dalam pangkalan data hubungan.

Kelemahan: boleh dikatakan pangkalan data objek ditulis secara manual.

Pangkalan data objek mempunyai analogi dengan teknik asas bekerja dalam pangkalan data hubungan.

Normalisasi dalam pangkalan objek bermakna setiap atribut objek mesti bergantung pada pengecam objek.

Hubungan dalam pangkalan data objek diwakili menggunakan atribut rujukan.

Integriti rujukan.

Pilihan kawalan: 1) pengguna dilarang memadamkan objek secara eksplisit; sistem itu sendiri memadamkan objek yang menjadi tidak boleh diakses.

2) pengguna dibenarkan untuk memadam objek apabila ia menjadi tidak perlu, maka sistem secara automatik mengesan rujukan tidak sah dan memberikan rujukan tidak sah kepada NULL.

3) pengguna dibenarkan menukar dan memadam objek, dan sistem menggunakan atribut terbalik.

CIRI-CIRI AM MODEL DATA HUBUNGAN OBJEK

Idea umum Model OR terdiri daripada menambah model P dengan keupayaan berorientasikan objek, iaitu, sistem jenis data yang boleh dikembangkan pengguna ditambah, enkapsulasi, pewarisan dan polimorfisme ditambah, dan penggunaan objek kompleks, dan pengenalan objek ditambah.

Faedah: Penggunaan semula dan perkongsian komponen standard.

Pelayan pangkalan data dilengkapi dengan fungsi standard yang tidak perlu ditulis dalam borang kod boleh laku sebagai sebahagian daripada aplikasi berasingan.

Contoh sokongan pengaturcaraan linear, apabila fungsi dilakukan secara berpusat.

Kemungkinan peralihan beransur-ansur kepada kaedah objek dengan peningkatan kelayakan pengguna.

Kelemahan: Penyelewengan ideologi objek.

STANDARD SQL LANJUTAN 3. ASAS UNTUK MEMBINA DBMS PERHUBUNGAN OBJEK

Termasuk: pembina jenis, keseluruhan rentetan boleh disimpan sebagai pembolehubah atau diluluskan sebagai parameter atau dikembalikan sebagai hasil daripada panggilan fungsi.

Jenis, prosedur, fungsi, pengendali yang ditentukan pengguna dibenarkan.

Sebagai peraturan, prosedur atau fungsi ditulis di luar DBMS dan dipanggil dalam SQL menggunakan operator CALL.

Pembina untuk jenis koleksi: satu jadual dibuat di mana terdapat beberapa peringkat sarang.

Sokongan objek besar. Objek besar- medan jadual yang mengandungi sejumlah besar data.

Standard SQL mengandungi tiga objek besar teratas:

1) gumpalan

2) objek simbolik yang besar

Piawaian SQL 3 membenarkan operasi tertentu dengan objek: contohnya, operator penggabungan - mengembalikan rentetan aksara yang dibentuk dengan menyambungkan rentetan aksara dalam susunan yang ditentukan.

Terdapat fungsi untuk mengekstrak subrentetan aksara:

Fungsi pertindihan baris.

Daftar fungsi lipatan penukaran.

Fungsi untuk mengira panjang rentetan.

MODEL GUDANG DATA

Gudang data ialah set data khusus domain, bersepadu, terikat masa dan tidak berubah yang direka bentuk untuk menyokong pembuatan keputusan.

Gudang data mempunyai banyak persamaan dengan model hubungan.

1) Gudang data disusun bukan di sekitar kawasan aktiviti, tetapi di sekeliling (objek, barang, dll.).

2) Data tidak dikemas kini, tetapi hanya diisi semula.

3) Pangkalan data hubungan direka untuk menyediakan pemprosesan intensif sebilangan kecil transaksi, gudang data direka untuk memproses pertanyaan sewenang-wenangnya tunggal.

4) Objek asas model storan ialah fakta terikat masa.

5) Operasi utama adalah pengagregatan dan masalah utama kelajuan maksimum akses kepada fakta.

Simpanan data.

Pangkalan data dalam konsep gudang diterangkan menggunakan kaedah "pemodelan dimensi".

Setiap model kaedah ini terdiri daripada jadual dengan kunci utama komposit (jadual fakta), yang dilampirkan satu set fakta kecil (jadual dimensi).

Setiap jadual dimensi mempunyai bukan komposit (mudah) kunci utama, yang betul-betul sepadan dengan salah satu komponen kunci komposit dalam jadual fakta

Skim bintang - struktur logik di tengahnya yang terdapat jadual fakta, dikelilingi oleh jadual dimensi yang mengandungi data rujukan, manakala jadual dimensi biasanya dinormalisasi. (lihat gambarajah bintang)

Jadual fakta biasanya bersaiz besar berbanding dengan jadual dimensi; kebanyakan jadual fakta ialah data berangka dan hasil penambahan nombor.

Dalam gudang data, hampir tidak pernah berlaku pada rekod tunggal, operasi asas bagi mereka ia adalah pengagregatan.

Pada masa yang sama, jadual dimensi biasanya mengandungi deskriptif maklumat teks, yang mana atribut dimensi digunakan sebagai kekangan dalam pertanyaan kepada gudang data.

Kebolehgunaan konsep gudang data secara langsung bergantung kepada kejayaan penstrukturan jadual dimensi.

Skema bintang boleh mempercepatkan pelaksanaan pertanyaan melalui penyahnormalan kerana ia mengenal pasti entiti yang kerap diakses, tetapi penyahnormalan tidak boleh digunakan jika data tambahan tidak diperlukan dengan kerap.

Skim kepingan salji - varian skema bintang, di mana setiap dimensi boleh mempunyai dimensi sendiri.

Kelebihan gudang data:

1. Kecekapan - keseragaman struktur menyediakan akses yang lebih cekap kepada data, tanpa mengira cara capaian.

2. Semua dimensi sama-sama menyediakan akses kepada jadual fakta, oleh itu projek mempunyai keupayaan yang lebih besar untuk menyokong pertanyaan pengguna sewenang-wenangnya.

3. Kebolehlanjutan - perubahan biasa:

1. Menambah fakta baharu, ini boleh dilakukan dengan syarat ia mempunyai tahap perincian yang sama dengan jadual fakta.

2. Penambahan dimensi baharu boleh dilakukan dengan syarat terdapat satu nilai untuk dimensi tertentu yang ditakrifkan untuk setiap rekod sedia ada dalam jadual fakta.

3. Menambah atribut baharu.

4. Memecahkan dimensi sedia ada kepada rekod dengan tahap perincian yang lebih rendah, bermula dengan titik tertentu masa.

Model data OLAP

Meja masuk DBMS hubungan mewakili data multidimensi hanya dalam 2 dimensi, teori kiub multidimensi kegunaan, yang mudah diwakili sebagai ruang dengan dimensi n, setiap sisi kubus sedemikian boleh ditafsirkan sebagai jadual dua dimensi.

Setiap sel kubus mengandungi fakta yang berasingan, dan set koordinat sel ini mewakili tatasusunan lengkap data tentang fakta ini.

1. Pangkalan data berbilang dimensi sangat padat, ia menyediakan remedi mudah melihat dan memanipulasi elemen dan data.

2. Kubus mudah dikembangkan, setiap sel kubus boleh dikembangkan menjadi subkubus.

3. Terdapat radas matematik yang berkuasa untuk bekerja dengan kiub multidimensi, ini adalah matriks.

1. Apabila bilangan dimensi bertambah, bilangan sel dalam kubus meningkat secara eksponen dan masa pemprosesan pertanyaan berbilang dimensi meningkat.

2. Sebagai peraturan, struktur tersebut adalah matriks yang sangat jarang. Banyak NULL.

Untuk mencipta yang berkesan asas multidimensi Terdapat beberapa cara yang mungkin:

1. Kenal pasti struktur hierarki dalam data.

2. Kenal pasti susunan jenis kekisi lain bagi dimensi biasa.

3. Membahagikan hypercube kepada banyak kiub kecil dengan sel yang terisi.

Oleh itu, tanpa mengira struktur storan, kecekapan ditentukan oleh metadata, iaitu, pilihan yang diharapkan untuk penempatan data.

Model data separa berstruktur

Lemah - merujuk kepada data yang mempunyai struktur tertentu, tetapi struktur ini ternyata tidak konsisten, tidak cukup dikaji atau tidak lengkap. Sebagai peraturan, data sedemikian tidak boleh digunakan. diterangkan menggunakan satu skema yang tidak berubah.

Jika DBMS mesti menyimpan data separa berstruktur, maka DBMS mesti menjana skema berdasarkan data ini.

Kebanyakan pendekatan untuk mengurus data sedemikian menggunakan bahasa pertanyaan yang merentasi graf berlabel seperti pokok. Sehubungan itu, pelaksanaan pertanyaan menjadi bukan hiasan, tetapi tradisional.

Pilihan untuk merekod data separa berstruktur:

1. Model pertukaran data objek OEM. Model untuk mewakili berbilang objek ditentukan melalui dirinya sendiri. Membolehkan anda memaparkan data dengan struktur yang tidak teratur dan jenis yang tidak ditentukan. Ia ialah graf berlabel, berorientasikan, dalam nod yang terdapat objek khas (objek OEM), untuk setiap objek pengecam unik ditentukan, deskriptif label teks, jenis, nilai. Objek dibahagikan kepada asas dan komposit. Yang asas ialah daun; ia dipaparkan pada graf tanpa tepi keluar. semua yang lain dipanggil komposit, dan satu dan objek yang sama boleh mempunyai nombor sewenang-wenangnya objek induk. Jenis objek tertentu ditakrifkan sebagai satu set ID objek. Bekerja dengan pembinaan jenis ini adalah sukar, kerana adalah mustahil untuk memilih struktur graf kosong.

2. Bahasa XML ialah bahasa meta, bahasa untuk menerangkan bahasa lain. Sistem untuk menentukan jenis dokumen berstruktur dan bahasa penanda yang mewakili contoh jenis dokumen tertentu. Kelebihan:

1. Boleh digunakan untuk menanda sebarang dokumen, termasuk teks dan multimedia.

2. Membolehkan anda menerangkan dengan jelas struktur data. Boleh digunakan untuk menerangkan pangkalan data heterogen (heterogen).

3. Membolehkan anda menyimpan kandungan dokumen dan kaedah pembentangannya secara berasingan (secara bebas).

Algebra hubungan dan kalkulus hubungan

Bahasa SQL menyokong rumusan algebra bagi pelaksanaan pertanyaan; rumusan algebra adalah prosedural, iaitu, ia adalah secara eksplisit menentukan urutan tindakan untuk melengkapkan permintaan.

wujud Pilihan alternatif untuk menerangkan pertanyaan yang dipanggil kalkulus logik.

Terdapat dua varian logik hubungan - kalkulus tuple dan kalkulus domain.

Kalkulus Tuple - pembolehubah ialah tupel (baris) badan hubungan.

Untuk membentuk syarat untuk pensampelan daripada satu set hubungan, formula yang dipanggil dengan baik digunakan - ini adalah syarat yang dikenakan ke atas pembolehubah tuple.

Contoh: PEKERJA SL_NOM = KETUA_NOM

Untuk membina WFF, penghubung logik dan peraturan logik matematik digunakan.

Cara ia berfungsi: Sistem ini melalui semua kombinasi tupel yang tersedia dalam pangkalan data, contohnya, untuk setiap tupel projek, melihat melalui kawasan definisi tupel pekerja dan memilih gabungan tupel tersebut yang WFF adalah benar.

Oleh itu, ini bersamaan dengan sistem yang melakukan operasi gabungan secara lalai.

Kalkulus domain: Perbezaan formal utama antara kalkulus domain dan kalkulus tuple ialah kehadiran set predikat tambahan yang memungkinkan untuk mengasingkan syarat keahlian.

Perbandingan Algebra Perhubungan dan Kalkulus Perhubungan.

Secara formal, terdapat perbezaan antara mereka, tetapi dari sudut pandangan sistem masa jalan, algebra hubungan dan kalkulus hubungan adalah setara secara logik. Setiap ungkapan algebra hubungan boleh ditukar secara unik kepada ungkapan kalkulus hubungan dan sebaliknya.

Contoh: Subd yang dijalankan pada Linux ialah INGRES (Integratie graphics retrielale System) (apa yang dikatakan, ia mempunyai garis bawah melengkung).

Dan bahasanya ialah bentuk jadual Query by Example

Mari kita pertimbangkan proses membina model objek untuk sistem perkhidmatan perbankan (lihat klausa 1.3) dalam proses menganalisis keperluan dan reka bentuk awal sistem ini. Untuk membina model objek sistem yang sedang dipertimbangkan, kita perlu melengkapkan semua langkah yang disenaraikan dalam klausa 2.2.

2.3.1. Menentukan Objek dan Kelas

Dalam klausa 1.3 tugasan dirumuskan dan gambar rajah rangkaian perkhidmatan perbankan ditunjukkan (Rajah 1.3). Dengan menganalisis pernyataan masalah ini, adalah mungkin untuk mengenal pasti kelas yang mungkin dengan membandingkannya dengan kata nama yang disebutkan dalam rumusan awalnya; Ini akan memberi anda senarai nama kelas yang mungkin berikut (dalam susunan abjad):

Kami memeriksa senarai ini, tidak termasuk nama kelas daripadanya menurut cadangan perenggan 2.2.1:

    kelas berlebihan: Adalah jelas bahawa pelanggan dan pengguna bermaksud konsep yang sama; bagi sistem perbankan adalah lebih wajar untuk meninggalkan kelas pelanggan;

    kelas yang tidak berkaitan: kelas sedemikian ialah kelas harga (ia tidak berkaitan secara langsung dengan operasi rangkaian perbankan);

    kelas yang tidak jelas: kelas tersebut ialah perkhidmatan penyimpanan rekod dan pemeriksaan keselamatan (perkhidmatan ini adalah sebahagian daripada pengeposan), sistem (dalam kes kami, ia tidak jelas apa ini), rangkaian perbankan (keseluruhan kami sistem perisian akan berkhidmat kepada rangkaian perbankan);

    sifat-sifat: data transaksi, data akaun, wang (bermaksud wang sebenar yang diberikan kepada pelanggan oleh juruwang atau ATM, atau diterima oleh juruwang), resit (yang dikeluarkan kepada pelanggan bersama-sama dengan wang) adalah lebih semula jadi untuk dimiliki sebagai sifat;

    struktur pelaksanaan nama nyata seperti perisian dan akses; mereka juga harus dikecualikan daripada senarai nama kelas yang mungkin.

Selepas menghapuskan semua nama kelas yang tidak diperlukan, kami memperoleh senarai kelas berikut yang membentuk sistem perbankan yang direka (kelas ini dibentangkan dalam Rajah 2.5):

2.3.2. Menyediakan Kamus Data

Berikut ialah sebahagian daripada kamus data yang mengandungi definisi kelas yang digunakan dalam projek.

ATM (ATM) ialah terminal yang membolehkan pelanggan membuat transaksi sendiri menggunakan kadnya untuk pengenalan. ATM (mesin juruwang automatik) berinteraksi dengan pelanggan untuk mendapatkan maklumat transaksi yang diperlukan, menghantar maklumat transaksi ke komputer pusat untuk pengesahan dan kemudian digunakan dalam membuat transaksi, dan mengeluarkan wang dan resit kepada pelanggan. Diandaikan bahawa ATM (mesin juruwang automatik) tidak perlu beroperasi secara bebas daripada rangkaian.

Bank ialah organisasi kewangan yang memegang akaun untuk pelanggannya dan mengeluarkan kad yang membenarkan akses kepada akaun melalui rangkaian ATM (mesin juruwang automatik).

Kad – kad plastik yang dikeluarkan oleh bank kepada pelanggannya, yang membenarkan akses kepada akaun melalui rangkaian ATM (ATM). Setiap kad mengandungi kod bank dan nombor kad, dikodkan mengikut piawaian kebangsaan untuk kad bank. Kod bank secara unik mengenal pasti bank dalam konsortium. Nombor kad menentukan akaun yang boleh diakses oleh kad. Kad tidak semestinya menyediakan akses kepada semua akaun pelanggan. Setiap kad hanya boleh dimiliki oleh seorang pelanggan, tetapi mungkin terdapat beberapa salinannya, jadi pertimbangan harus diberikan kepada kemungkinan menggunakan kad yang sama dari ATM yang berbeza (mesin juruwang automatik) pada masa yang sama.

Juruwang ialah pekerja bank yang mempunyai hak untuk membuat transaksi dari terminal tunai, serta menerima dan mengeluarkan wang dan cek kepada pelanggan. Urus niaga, wang dan cek yang setiap juruwang bekerja mesti direkodkan dan diakaunkan dengan betul.

Terminal tunai – terminal tempat juruwang membuat transaksi untuk pelanggan. Apabila juruwang menerima dan mengeluarkan wang serta cek, terminal POS mencetak resit. Terminal POS antara muka dengan komputer bank untuk mengesahkan dan melengkapkan pengeposan.

Pelanggan ialah pemegang satu atau lebih akaun bank. Pelanggan mungkin terdiri daripada satu atau lebih individu atau organisasi. Orang yang sama yang memegang akaun di bank lain dianggap sebagai pelanggan yang berbeza.

Komputer bank ialah komputer yang dimiliki oleh bank yang berinteraksi dengan rangkaian ATM (ATM) dan terminal tunai bank itu sendiri. Sebuah bank mungkin mempunyai rangkaian komputer dalaman sendiri untuk memproses bil, tetapi di sini kita hanya mempertimbangkan komputer bank yang berkomunikasi dengan rangkaian ATM.

Konsortium ialah persatuan bank yang memastikan operasi rangkaian ATM (ATM). Rangkaian menghantar transaksi bank kepada konsortium.

Penyiaran ialah permintaan bersepadu tunggal untuk melaksanakan urutan operasi tertentu pada akaun satu pelanggan. Telah diandaikan bahawa ATM (mesin juruwang automatik) hanya mengeluarkan wang, tetapi mereka tidak seharusnya mengecualikan kemungkinan mencetak cek atau menerima wang dan cek. Kami juga ingin memastikan fleksibiliti sistem, yang pada masa hadapan akan memberikan keupayaan untuk memproses akaun secara serentak daripada pelanggan yang berbeza, walaupun ini belum diperlukan lagi. Pelbagai operasi mesti seimbang dengan betul.

Akaun – satu akaun bank di mana pengeposan dibuat. Akaun boleh terdiri daripada pelbagai jenis; pelanggan boleh mempunyai beberapa akaun.

Komputer pusat ialah komputer yang dimiliki oleh konsortium yang mengedarkan transaksi dan keputusannya antara ATM (ATM) dan komputer bank. Komputer pusat menyemak kod bank, tetapi tidak membuat pengeposan itu sendiri.

Ringkasan

Kelemahan model TCP/IP

Walaupun popularitinya yang besar, model TCP/IP dan protokolnya mempunyai beberapa kelemahan:

· kekurangan perbezaan antara konsep konsep antara muka, protokol dan perkhidmatan tahap, yang agak jelas dilakukan dalam model ISO/OSI. Akibatnya, model TCP/IP tidak boleh digunakan semasa membangunkan rangkaian baharu;

· menggunakan model TCP/IP, tiada timbunan protokol lain selain TCP/IP boleh diterangkan;

· model tidak membezakan antara tahap fizikal dan saluran, sedangkan ia berbeza sama sekali dan model yang betul harus mengambil kira perkara ini;

· Protokol IP dan TCP adalah yang paling teliti difikirkan dan dibangunkan. Banyak protokol lain dalam timbunan telah dibangunkan oleh pelajar (pelajar untuk berfikir tentang!) dan diedarkan secara bebas, akibatnya ia telah tertanam secara meluas dalam amalan dan kini sukar untuk digantikan dengan apa-apa yang baru yang ditawarkan oleh skim komersial.

Sebagai ringkasan, model ISO/OSI berguna untuk penyelidikan teori dan pembangunan rangkaian baharu, walaupun protokol OSI tidak digunakan secara meluas. Untuk TCP/IP, kenyataan yang bertentangan boleh dibuat: timbunan tidak boleh dianggap sebagai model lengkap, manakala protokol itu sendiri diuji dengan baik dan sangat popular.

Memandangkan model rujukan dari sudut pandangan keperluan baru yang mengalirkan maklumat pada proses pemindahan dalam rangkaian maklumat dan komunikasi, dua masalah harus diketengahkan.

Pertama, dua mekanisme pemindahan bebas dilaksanakan pada lapisan pengangkutan dan pautan. Pembahagian tugas mengangkut maklumat ini pada satu masa ditentukan oleh keperluan untuk menggabungkan pelbagai rangkaian menggunakan teknologi yang berbeza untuk mengakses saluran komunikasi. Walau bagaimanapun, kehadiran dua mekanisme penghantaran yang tidak konsisten menimbulkan masalah untuk memastikan kualiti perkhidmatan semasa memindahkan maklumat. Mencapai tingkah laku yang diselaraskan pengangkutan dan peringkat saluran(melalui lapisan rangkaian) adalah mustahil, berdasarkan prinsip autonomi lapisan dalam model ISO/OSI. Walau bagaimanapun, konsep moden untuk pembangunan rangkaian berdasarkan pelbagai perkhidmatan (khususnya konsep NGN) menyediakan strategi untuk kelakuan yang diselaraskan bagi lapisan pengangkutan dan pautan data, memintas lapisan rangkaian, yang secara rasmi melanggar prinsip autonomi dan melangkaui skop model rujukan.

Kedua, disebabkan oleh penumpuan rangkaian dan penyatuan aliran maklumat pelbagai perkhidmatan ke dalam aliran umum trafik heterogen, terdapat keperluan untuk mengenal pasti kandungannya. Dalam keadaan di mana rangkaian yang sangat khusus menghantar maklumat mengalir jenis tertentu, masalah ini tidak wujud.



Kebanyakan pengeluar peralatan rangkaian sedang mencari penyelesaian kepada masalah ini.

Walaupun dengan pandangan yang paling cetek pada fungsi rangkaian, ia menjadi jelas rangkaian maklumat ialah kompleks kompleks komponen perisian dan perkakasan. Dalam kes ini, perisian yang menentukan kefungsian rangkaian maklumat.

Perisian rangkaian moden dalam darjat tertinggi tersusun. Fungsi teras dan keseluruhan seni bina komunikasi (model protokol) pada asasnya dilaksanakan dalam perisian rangkaian.

Analisis struktur program membolehkan anda mempertimbangkan hierarki perisian rangkaian. Unsur-unsur struktur ini ialah modul perisian di mana objek rangkaian dan modul logik dilaksanakan.

Hierarki perisian boleh diwakili dalam borang berikut:

· perisian aplikasi;

· perisian tengah;

· perisian asas.

DALAM perisian aplikasi Objek aplikasi dilaksanakan. Terdapat dua jenis aplikasi yang mempengaruhi struktur organisasi perisian - tempatan terhad Dan diedarkan aplikasi.

Permohonan Terhad Tempatan dipasang, dipanggil, diurus dan dilaksanakan sepenuhnya dalam satu sistem akhir dan tidak memerlukan penglibatan fungsi komunikasi. Contohnya ialah mengedit dokumen semasa menyediakan teks pada komputer pengguna (terminal pengguna).

Permohonan pengedaran terdiri daripada beberapa komponen yang boleh dilaksanakan dalam sistem akhir yang berbeza dan, oleh itu, memerlukan organisasi interaksi antara sistem akhir ini. Contohnya, penyuntingan bersama teks penerbitan yang banyak oleh pengguna yang terletak di tempat yang berbeza.

Komponen aplikasi yang diedarkan boleh digunakan berulang kali oleh aplikasi lain. Dalam kes ini mereka menjadi objek perisian tengah dan perkhidmatan sokongan yang berkaitan dengan kecerdasan rangkaian.

Middleware melaksanakan fungsi dan fungsi pengurusan perkhidmatan dalam rangkaian pengurusan pentadbiran rangkaian. Objek kedua-dua kumpulan perisian, serupa dengan komponen aplikasi pengedaran, berinteraksi melalui fungsi komunikasi rangkaian.

Perisian asas bertujuan untuk menyediakan perisian aplikasi dan objek middleware dengan keupayaan untuk melaksanakan dan berinteraksi dengan objek lain dengan menyediakan persekitaran untuk interaksi dengan fungsi komunikasi rangkaian dan antara muka pengguna logik. Organisasi persekitaran ini dijalankan oleh sistem perisian bersatu yang dipanggil rangkaian sistem operasi . Kecekapan bukan sahaja objek aplikasi dan perisian tengah, tetapi juga rangkaian secara keseluruhannya bergantung pada konsep pengurusan sumber yang menjadi asas kepada OS rangkaian. Hari ini, sistem UNIX dan versi rangkaian Windows telah menjadi piawaian de facto untuk sistem pengendalian rangkaian. Komponen logik fungsi komunikasi yang dilaksanakan dalam perisian yang memastikan komunikasi antara objek jauh juga tergolong dalam fungsi perisian asas.

Perisian asas juga termasuk pemprosesan data dan objek storan yang dilaksanakan sedemikian sistem perisian, seperti DBMS (sistem pengurusan pangkalan data), perisian pelayan pemprosesan transaksi asas, dsb.

Sifat interaksi antara objek ditentukan oleh jenis antara muka objek, yang serupa protokol Dan titik rujukan berfungsi.

Membezakan jenis berikut antara muka objek ( antara muka perisian):

· protokol aplikasi (Protokol Aplikasi, AP) – antara muka logik antara objek aplikasi;

· antara muka program aplikasi (Antara Muka Program Aplikasi, API) – antara muka logik antara objek aplikasi dan objek middleware yang menyokong objek aplikasi;

· protokol perisian tengah(Managing Protocol, MP) – antara muka logik antara objek middleware;

· antara muka program asas(Antara Muka Program Asas, BPI) – antara muka logik antara perisian tengah dan objek perisian asas yang menyokong objek perisian tengah;

· antara muka manusia-komputer Antara Muka Pengguna-Komputer (UCI) ialah antara muka logik antara pengguna dan terutamanya menjadi hos objek perisian, tetapi mungkin juga termasuk antara muka logik dengan objek middleware dan juga objek aplikasi.

Perisian rangkaian ialah sumber yang terlibat dalam organisasi platform penyampaian perkhidmatan, dan oleh itu prinsip komposisi untuk menggabungkan modul perisian tertakluk kepada dinamik yang sama seperti prinsip pembinaan model berfungsi rangkaian.