Pembinaan model objek. Pengaturcaraan berorientasikan prosedur ialah pengaturcaraan dalam bahasa imperatif, di mana pernyataan yang dilaksanakan secara berurutan boleh dihimpunkan ke dalam subrutin, iaitu unit kod integral yang lebih besar, menggunakan


PENGENALAN

Ciri yang paling penting bagi mana-mana sistem ialah struktur dan proses berfungsi. Struktur sistem difahami sebagai set perhubungan yang stabil masa antara elemen atau komponennya. Ia adalah struktur yang mengikat semua elemen bersama-sama dan menghalang sistem daripada hancur menjadi komponen yang berasingan. Struktur sesebuah sistem boleh mencerminkan pelbagai perhubungan, termasuk penyusunan unsur-unsur satu sistem kepada sistem yang lain. Dalam kes ini, adalah kebiasaan untuk memanggil sistem yang lebih kecil atau bersarang sebagai subsistem. Proses berfungsi sistem berkait rapat dengan perubahan sifat atau tingkah lakunya dari semasa ke semasa. Di mana ciri penting sesuatu sistem ialah keadaannya, yang difahami sebagai satu set sifat atau ciri yang pada setiap saat dalam masa mencerminkan ciri yang paling penting bagi kelakuan sistem. Harta bersama semua model ialah persamaannya sistem asal. Kepentingan membina model terletak pada kemungkinan menggunakannya untuk mendapatkan maklumat tentang sifat atau tingkah laku sistem asal. Dalam kes ini, proses membina dan aplikasi model seterusnya untuk mendapatkan maklumat tentang sistem asal dipanggil pemodelan. Model am sistem mengandungi beberapa maklumat penting tentang ciri fungsi sistem tertentu, yang memberikan gambaran tentang kelakuannya selanjutnya.

Kajian proses pemodelan merupakan objek kajian dalam kerja kursus ini. Pembinaan khusus model objek, kajian tingkah lakunya akan dianggap sebagai subjek kajian. Untuk mencapai matlamat ini ia digunakan kaedah berikut: kajian literatur yang diperlukan, perbandingan, contoh dari pengalaman hidup Memandangkan pembinaan model objek akan dijalankan menggunakan contoh perkhidmatan kereta, adalah perlu untuk mengkaji prinsip operasi organisasi ini. Untuk melakukan ini, sudah cukup untuk melawati laman web rasmi pelbagai perkhidmatan kereta. Tetapi untuk mengkaji prinsip membina model objek, saya mempelajari kesusasteraan saintifik dalam dan luar negara. Ia ternyata satu aktiviti yang sangat menarik.

Akhirnya, matlamat saya kerja kursus menjadi: untuk membina model objek sistem maklumat "Perkhidmatan Auto", untuk mengkaji prinsip membina model objek, untuk menerangkan proses pembinaan, untuk membuktikan kepentingan memiliki pengetahuan ini dan keupayaan untuk menerapkannya dalam amalan.

Struktur kerja kursus adalah seperti berikut: pertama, teori pembinaan model objektif dikaji, kemudian pelaksanaan teori diuji menggunakan contoh praktikal.

  1. Konsep asas pendekatan berorientasikan objek

Pendekatan berorientasikan objek adalah berdasarkan penggunaan model yang sistematik. Objek dan konsep terlibat dalam perumusan matlamat dunia sebenar berkaitan dengan sistem perisian yang dibangunkan. Dengan pendekatan berorientasikan objek, objek dan konsep ini digantikan dengan modelnya, i.e. struktur formal tertentu yang mewakilinya dalam sistem perisian.

Model ini tidak mengandungi semua ciri dan sifat objek atau konsep yang diwakilinya, tetapi hanya ciri yang penting untuk sistem perisian yang dibangunkan. Oleh itu, model adalah lebih mudah daripada objek (konsep) yang diwakilinya. Ini memudahkan kedua-dua pembangunan dan kajian (analisis) model dan pelaksanaannya pada komputer. Khususnya, sifat formal model membolehkan kami mendapatkan model formal sistem perisian yang dibangunkan sebagai komposisi model formal komponennya.

Oleh itu, pendekatan berorientasikan objek membantu mengatasi masalah yang kompleks seperti mengurangkan kerumitan perisian; meningkatkan kebolehpercayaan perisian; memungkinkan untuk mengubah suai komponen individu perisian tanpa mengubah komponennya yang lain; memastikan kemungkinan menggunakan semula komponen perisian individu.

Aplikasi sistematik pendekatan berorientasikan objek membolehkan pembangunan sistem perisian yang tersusun dengan baik, boleh dipercayai, dan agak mudah diubah suai. Ini menjelaskan minat pengaturcara dalam pendekatan berorientasikan objek. Pendekatan berorientasikan objek adalah salah satu bidang pengaturcaraan teori dan gunaan yang paling pesat membangun.

Pembangunan perisian berorientasikan objek melibatkan penggunaan model berorientasikan objek dalam pembangunan sistem perisian dan komponennya.

Pembangunan berorientasikan objek boleh bermula pada peringkat pertama kitaran hidup; ia tidak berkaitan dengan bahasa pengaturcaraan di mana sistem perisian yang sedang dibangunkan sepatutnya dilaksanakan: bahasa ini mungkin tidak berorientasikan objek. Pada peringkat pembangunan, objek ialah beberapa struktur formal (contohnya, segi empat tepat dengan sudut bulat, dengan bantuan yang mereka digambarkan dalam rajah), belum disambungkan dalam apa-apa cara dengan pelaksanaan masa depan mereka dalam salah satu bahasa pengaturcaraan.

Pembangunan perisian berorientasikan objek melibatkan penggunaan metodologi berorientasikan objek (teknologi). Biasanya, metodologi berorientasikan objek ini disokong oleh alat perisian, tetapi walaupun tanpa alat sedemikian ia berguna, kerana ia membolehkan pemahaman yang baik tentang pelbagai aspek dan sifat sistem perisian yang dibangunkan, yang kemudiannya memudahkan pelaksanaan, pengujian, penyelenggaraan, pembangunan versi baharu dan pengubahsuaian yang lebih ketara.

Reka bentuk sistem perisian aplikasi bermula dengan analisis keperluan yang perlu dipenuhi. Analisis sedemikian dijalankan untuk memahami tujuan dan keadaan operasi sistem yang cukup untuk dapat merangka reka bentuk awalnya.

Dengan pendekatan berorientasikan objek, analisis keperluan sistem datang kepada pembangunan model sistem ini. Model sistem (atau mana-mana objek atau fenomena lain) ialah penerangan rasmi sistem, yang mengenal pasti objek utama yang membentuk sistem dan hubungan antara objek ini. Membina model ialah cara yang meluas untuk mengkaji objek dan fenomena yang kompleks. Model ini meninggalkan banyak butiran yang menjadikannya sukar untuk difahami. Pemodelan meluas dalam kedua-dua sains dan teknologi.

Model membantu menyemak prestasi sistem yang sedang dibangunkan pada peringkat awal pembangunannya, berkomunikasi dengan pelanggan sistem, menjelaskan keperluannya untuk sistem, dan membuat (jika perlu) perubahan pada reka bentuk sistem (kedua-duanya pada permulaan reka bentuknya dan pada fasa lain kitaran hayatnya).

Model yang dibangunkan dan dinyahpepijat dalam fasa pertama kitaran hayat sistem terus digunakan dalam semua fasa berikutnya, memudahkan pengaturcaraan sistem, nyahpepijat dan ujian, penyelenggaraan dan pengubahsuaian selanjutnya.

Model objek menerangkan struktur objek yang membentuk sistem, atribut, operasi dan hubungannya dengan objek lain. Model objek harus mencerminkan konsep dan objek dunia sebenar yang penting untuk sistem yang dibangunkan. Model objek terutamanya mencerminkan pragmatik sistem yang sedang dibangunkan, yang dinyatakan dalam penggunaan istilah. kawasan permohonan berkaitan dengan penggunaan sistem yang dibangunkan.

Mari kita pertimbangkan konsep asas yang digunakan dalam membina model objek.

Objek ialah abstraksi atau apa-apa perkara dengan sempadan yang jelas yang masuk akal dalam konteks masalah yang digunakan. Pengenalan objek mempunyai dua matlamat: memahami tugas yang digunakan (masalah) dan memperkenalkan asas untuk pelaksanaan pada komputer.

Tujuan membangunkan model objek adalah untuk menerangkan objek yang secara kolektif membentuk sistem yang direka, serta untuk mengenal pasti dan menunjukkan pelbagai kebergantungan antara objek.

Kelas ialah deskriptor untuk set objek yang mempunyai sifat yang sama. Kelas menerangkan sifat beberapa objek. Setiap objek adalah contoh hanya satu kelas.

Semua objek kelas yang sama dicirikan oleh set atribut yang sama. Walau bagaimanapun, pengelompokan objek ke dalam kelas tidak ditentukan oleh set atribut, tetapi oleh semantik. Jadi, sebagai contoh, objek stabil dan kuda boleh mempunyai sifat yang sama: harga dan umur. Selain itu, mereka boleh tergolong dalam kelas yang sama jika mereka dianggap dalam masalah semata-mata sebagai produk, atau kepada kelas yang berbeza, yang lebih semula jadi.

Menggabungkan objek ke dalam kelas membolehkan anda memperkenalkan abstraksi ke dalam masalah dan menganggapnya dalam rumusan yang lebih umum. Kelas mempunyai nama (seperti kuda) yang digunakan untuk semua objek kelas itu. Selain itu, kelas mengandungi nama atribut yang ditakrifkan untuk objek. Dalam pengertian ini, perihalan kelas adalah serupa dengan perihalan jenis struktur (rekod); Selain itu, setiap objek mempunyai makna yang sama seperti contoh struktur (pembolehubah atau pemalar jenis yang sepadan).

Atribut objek ialah nilai yang mencirikan objek dalam kelasnya. Contoh atribut: buatan, tahun pembuatan, warna (atribut objek kelas kereta), dsb.

Operasi ialah fungsi (atau transformasi) yang boleh digunakan pada objek kelas tertentu. Contoh operasi: semak, keluarkan, pasang (untuk objek kelas alat ganti).

Semua objek kelas tertentu menggunakan contoh yang sama bagi setiap operasi (iaitu, menambah bilangan objek kelas tertentu tidak meningkatkan jumlah yang dimuatkan kod program). Objek dari mana operasi dipanggil dihantar kepadanya sebagai hujah tersiratnya (parameter).

Operasi yang sama boleh digunakan pada objek kelas yang berbeza: operasi sedemikian dipanggil polimorfik kerana ia boleh mempunyai bentuk yang berbeza untuk kelas yang berbeza.

Ketergantungan antara kelas adalah dua hala: semua kelas dalam kebergantungan mempunyai hak yang sama. Ini benar walaupun dalam kes di mana nama kebergantungan nampaknya memperkenalkan arah ke kebergantungan. Kebergantungan antara kelas sepadan dengan kebergantungan antara objek kelas ini. Ketergantungan, seperti kelas, boleh mempunyai atribut.

Diskriminator ialah atribut jenis "penghitungan" yang menunjukkan sifat objek yang dibuat dari generalisasi tertentu.

Peranan menentukan satu sisi pergantungan. Dalam pergantungan binari, dua peranan ditakrifkan. Nama peranan secara unik mengenal pasti satu sisi pergantungan. Peranan memungkinkan untuk melihat kebergantungan binari sebagai hubungan antara objek dan set objek bergantung: setiap peranan ialah penetapan objek atau set objek yang disambungkan oleh kebergantungan kepada objek di hujung kebergantungan yang lain. Nama peranan boleh dianggap sebagai atribut terbitan yang set nilainya ialah set objek yang dikaitkan dengan peranan tersebut. Dalam pergantungan binari, sepasang nama peranan boleh digunakan untuk mengenal pasti pergantungan itu.

Nama peranan mesti dinyatakan dalam kes di mana kebergantungan diwujudkan antara objek kelas yang sama. Nama peranan mestilah unik kerana ia digunakan untuk membezakan objek yang terlibat dalam kebergantungan.

Kelayakan ialah atribut yang membolehkan anda mengurangkan kepelbagaian berkesan pergantungan. Kelayakan digunakan dalam kebergantungan satu-ke-banyak atau banyak-ke-banyak.

Pengagregatan ialah pergantungan antara kelas objek komposit dan kelas yang mewakili komponen objek ini (hubungan "keseluruhan" - "bahagian").

Generalisasi dan pewarisan memungkinkan untuk mengenal pasti analogi antara kelas objek yang berbeza dan menentukan klasifikasi objek berbilang peringkat. Oleh itu, dalam sistem grafik mungkin terdapat kelas yang menentukan gambaran pelbagai bentuk geometri: titik, garisan (garis lurus, lengkok bulat dan lengkung yang ditakrifkan oleh spline), poligon, bulatan, dll.

Diskriminator ialah atribut jenis "penghitungan" yang menunjukkan sifat objek yang dibuat dari generalisasi tertentu.

Perlu diingatkan bahawa klasifikasi berbilang peringkat yang meluas harus dielakkan kerana kelakuan subkelas peringkat bawah klasifikasi berbilang peringkat mungkin sukar difahami: kebanyakan (dan selalunya semua) atribut dan operasi kelas tersebut ditakrifkan dalam kelas super mereka dari pelbagai peringkat. Jika bilangan tahap pengelasan telah menjadi terlalu besar, anda perlu mengubah sedikit penstrukturan sistem.

Generalisasi dan pewarisan digunakan secara meluas bukan sahaja dalam analisis keperluan untuk sistem perisian dan reka bentuk awalnya, tetapi juga dalam pelaksanaannya.

Kadangkala subkelas perlu mengatasi operasi yang ditakrifkan dalam salah satu kelas supernya. Untuk mencapai matlamat ini, operasi yang boleh diperoleh daripada superclass hasil daripada warisan juga ditakrifkan dalam subkelas; takrifan semula ini "mengaburkan" takrifannya dalam superclass, supaya operasi yang ditindih dalam subkelas, bukan yang diwarisi, digunakan. Ingat bahawa setiap operasi ditakrifkan oleh tandatangannya; oleh itu, tandatangan penggantian operasi mesti sepadan dengan tandatangan operasi dalam kelas super yang ditindih oleh operasi.

Pembatalan boleh memenuhi salah satu tujuan berikut:

sambungan: operasi baharu memanjangkan operasi yang diwarisi, dengan mengambil kira pengaruh atribut subkelas;

had: operasi baharu dihadkan untuk melaksanakan hanya sebahagian daripada tindakan operasi yang diwarisi, menggunakan spesifik objek subkelas;

pengoptimuman: menggunakan spesifik objek subkelas membolehkan anda memudahkan dan mempercepatkan kaedah yang sepadan;

kemudahan.

Adalah dinasihatkan untuk mematuhi peraturan semantik pewarisan berikut:

semua operasi pertanyaan (operasi yang menggunakan nilai atribut tetapi tidak mengubahnya) mesti diwarisi oleh semua subkelas;

semua operasi yang mengubah nilai atribut mesti diwarisi dalam semua sambungannya;

semua operasi yang mengubah nilai atribut terhad atau atribut yang menentukan kebergantungan mesti menyekat dalam semua sambungannya;

operasi tidak seharusnya ditakrifkan semula secara asas; semua kaedah yang melaksanakan operasi yang sama mesti melakukan penukaran atribut yang serupa;

Operasi yang diwarisi boleh diperhalusi dengan menambahkan tindakan tambahan.

Dengan mengikuti peraturan ini, yang, malangnya, jarang disokong oleh bahasa pengaturcaraan berorientasikan objek, anda boleh menjadikan program yang anda bangunkan lebih mudah difahami, lebih mudah untuk diubah suai dan kurang terdedah kepada pelbagai ralat dan kesilapan.

Kelas abstrak tidak boleh mempunyai objek kerana ia tidak mentakrifkan operasi pada objek; objek mesti tergolong dalam subkelas konkrit kelas abstrak. Kelas abstrak digunakan untuk menentukan antara muka untuk operasi (kaedah yang melaksanakan operasi ini kemudiannya ditakrifkan dalam subkelas kelas abstrak). Kelas abstrak adalah mudah semasa fasa menganalisis keperluan sistem, kerana ia membolehkan kami mengenal pasti analogi dalam operasi yang kelihatan berbeza yang ditakrifkan dalam sistem yang dianalisis.

Pewarisan berbilang membolehkan kelas mempunyai lebih daripada satu superclass, mewarisi sifat (atribut dan operasi) semua superclassnya. Kelas yang mempunyai berbilang superclass dipanggil kelas kesatuan. Sifat kelas moyang yang muncul lebih daripada sekali dalam graf warisan diwarisi dalam satu salinan sahaja. Konflik antara definisi selari mewujudkan kekaburan yang mesti diselesaikan semasa pelaksanaan. Dalam praktiknya, kekaburan atau pemahaman yang lemah harus dielakkan walaupun bahasa pengaturcaraan tertentu yang dipilih untuk melaksanakan sistem menyediakan keupayaan untuk menyelesaikannya menggunakan keutamaan atau beberapa cara lain.

Dalam reka bentuk berorientasikan objek, kami berurusan dengan set objek yang saling berkaitan. Setiap objek boleh dianggap sebagai pembolehubah atau pemalar jenis struktur (dengan cara ini, kaedah yang diterangkan dalam objek dianggap sebagai alamat fungsi yang dibenarkan untuk digunakan pada objek ini). Oleh itu, satu set objek ialah satu set data yang saling berkaitan, i.e. sesuatu yang hampir sama dengan pangkalan data. Oleh itu, aplikasi konsep pangkalan data selalunya berguna dalam analisis berorientasikan objek dan reka bentuk berorientasikan objek sistem perisian aplikasi.

Metadata ialah data yang menerangkan data lain. Sebagai contoh, takrif kelas ialah metadata, kerana kelas itu menerangkan data lain - objek kelas ini. Model ialah metadata kerana ia menerangkan objek yang dimodelkan. Satu lagi contoh metadata ialah kelas abstrak.

Pelakon ialah peranan yang dimainkan oleh entiti yang berinteraksi secara langsung dengan sistem.

Pelakon mentakrifkan peranan yang dimainkan oleh sesetengah entiti luaran apabila berinteraksi secara langsung dengan sistem tertentu. Ia mungkin mewakili peranan pengguna atau peranan yang dilakukan oleh sistem atau perkakasan lain yang menyentuh sempadan sistem.

Saya sangat menyukai penerangan konsep "pelakon" dalam karya Jim Arlow dan Isle Neustadt "UML 2 dan Proses Bersatu": "Untuk memahami pelakon, adalah penting untuk memahami konsep peranan. Peranan boleh dianggap sebagai topi yang dipakai dalam situasi tertentu." (halaman 92).

Apabila konsep asas diketahui, kita boleh mempertimbangkan untuk membina model itu sendiri

  1. Membina model objek
    1. Menentukan kelas

Analisis keperluan luaran untuk sistem aplikasi yang direka bentuk membolehkan kami menentukan objek dan kelas objek yang berkaitan dengan masalah aplikasi yang mesti diselesaikan oleh sistem ini. Anda perlu bermula dengan mengenal pasti kelas yang mungkin daripada pernyataan bertulis masalah yang digunakan ( terma rujukan dan dokumentasi lain yang disediakan oleh pelanggan). 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;

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

kelas yang ditakrifkan secara samar-samar (dari sudut masalah yang sedang dipertimbangkan);

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

operasi: sesetengah kata nama lebih cenderung menjadi nama operasi daripada kelas (contohnya, panggilan_telefon tidak mungkin bermaksud mana-mana kelas);

peranan: beberapa 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);

pembinaan pelaksanaan: nama yang lebih dikaitkan dengan pengaturcaraan dan perkakasan komputer tidak boleh dibandingkan dengan kelas pada peringkat ini, kerana ia tidak mencerminkan ciri sistem aplikasi yang direka bentuk; 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.

    1. Menyediakan Kamus Data

Perkataan individu mempunyai terlalu banyak tafsiran. Oleh itu, adalah perlu pada awal reka bentuk untuk menyediakan kamus data yang 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.

2.3. Menentukan kebergantungan

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).

Sama seperti nama kelas yang mungkin diperoleh daripada kata nama yang terdapat dalam pernyataan awal masalah aplikasi, nama kemungkinan kebergantungan boleh diperoleh daripada kata kerja atau frasa kata kerja yang 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.

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

kebergantungan antara kelas yang dikecualikan mesti dihapuskan, atau dirumuskan semula dari segi kelas yang tinggal;

Kebergantungan yang tidak relevan dan berkaitan pelaksanaan harus dihapuskan;

tindakan: pergantungan harus menerangkan sifat struktur domain aplikasi, dan bukan peristiwa tidak penting;

kebergantungan trenary: kebanyakan kebergantungan antara tiga atau sebilangan besar kelas boleh diuraikan kepada beberapa kebergantungan binari, menggunakan kelayakan jika perlu; dalam beberapa kes (sangat jarang) 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; apabila mengecualikan kebergantungan berlebihan (berasal), anda perlu berhati-hati, kerana tidak semua kebergantungan pendua antara kelas adalah berlebihan; dalam sesetengah kes, kebergantungan lain membenarkan kami untuk mewujudkan hanya kewujudan pergantungan terbitan lain, tetapi tidak membenarkan kami mewujudkan kepelbagaian pergantungan ini.

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

kebergantungan yang dinamakan secara salah: ia harus dinamakan semula supaya maknanya menjadi jelas;

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;

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

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

kebergantungan yang tidak dikira mesti dikenal pasti dan ditambah pada model.

2.4. Penapisan 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.

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 makna atribut bergantung pada konteks tertentu, ia harus dijadikan sebagai kelayakan.

Nama. Nama biasanya lebih baik dipadankan oleh kelayakan daripada oleh atribut objek; dalam semua kes di mana nama membenarkan seseorang memilih daripada objek set tertentu, ia harus dijadikan kelayakan.

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

Atribut sambungan. 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.5. Pengasingan subsistem

Sistem aplikasi 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. Semasa pembangunan sistem aplikasi adalah mudah untuk menganggap bahawa semua atribut objek adalah peribadi (iaitu, mereka tidak boleh diakses di luar objek, dan untuk mengetahui nilai atribut objek lain dalam objek, atau mengubahnya, adalah perlu untuk gunakan salah satu operasi awam objek ini, melainkan, sudah tentu, operasi sedemikian ditakrifkan). Operasi objek boleh sama ada awam atau peribadi.

Oleh itu, setiap objek mempunyai antara muka yang ditetapkan dengan ketat, i.e. 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.


dan lain-lain.................

Sistem aplikasi mewakili satu set objek yang saling bergantung. Setiap objek dicirikan oleh satu set sifat, nilai yang menentukan keadaan objek, dan satu set operasi yang boleh digunakan pada objek ini.

Apabila membangunkan sistem aplikasi, adalah mudah untuk menganggap bahawa semua sifat objek adalah peribadi (iaitu, ia tidak boleh diakses di luar objek). Operasi objek boleh sama ada awam atau peribadi.

Oleh itu, setiap objek mempunyai antara muka yang ditetapkan dengan ketat, i.e. satu set operasi awam yang boleh digunakan pada objek ini. Semua objek kelas yang sama mempunyai antara muka yang sama.

Model objek mewakili struktur statistik sistem yang direka (subsistem). Walau bagaimanapun, pengetahuan struktur statik tidak cukup untuk memahami dan menilai subsistem robot. Ia adalah perlu untuk mempunyai cara untuk menerangkan perubahan yang berlaku dengan objek dan sambungannya semasa operasi subsistem.

Salah satu cara ini ialah model dinamik subsistem. Ia dibina selepas model objek subsistem telah dibina dan dipersetujui dan dinyahpepijat sebelum ini. Model dinamik subsistem terdiri daripada gambar rajah keadaan objek subsistemnya.

Keadaan semasa sesuatu objek dicirikan oleh satu set nilai semasa atribut dan hubungannya. Semasa operasi sistem, objek konstituennya berinteraksi antara satu sama lain, akibatnya keadaan mereka berubah. Unit pengaruh ialah peristiwa: setiap peristiwa membawa kepada perubahan dalam keadaan satu atau lebih objek dalam sistem, atau kepada berlakunya peristiwa baharu. Operasi sistem dicirikan oleh urutan peristiwa yang berlaku di dalamnya.

Sesuatu peristiwa berlaku pada satu ketika. Contoh acara: pelancaran roket, permulaan perlumbaan 100 m, permulaan pendawaian, pengeluaran wang, dsb. Acara tidak mempunyai tempoh (lebih tepat, ia mengambil masa yang boleh diabaikan).

Jika peristiwa tidak mempunyai hubungan sebab akibat (iaitu ia bebas secara logik), ia dipanggil bebas(serentak). Peristiwa sebegini tidak menjejaskan satu sama lain. Tidak ada gunanya memesan acara bebas, kerana ia boleh berlaku dalam sebarang susunan. Model sistem teragih mesti semestinya mengandungi acara dan aktiviti bebas.

Urutan peristiwa dipanggil skrip. Selepas senario dibangunkan dan dianalisis, objek yang menjana dan menerima setiap peristiwa senario ditentukan.

Apabila peristiwa berlaku, bukan sahaja objek beralih kepada keadaan baharu, tetapi juga tindakan yang dikaitkan dengan acara ini dilakukan. Tindakan ialah operasi segera yang dikaitkan dengan peristiwa.

Proses membina model objek termasuk langkah-langkah berikut:

Definisi objek dan kelas;

Menyediakan kamus data:

Menentukan kebergantungan antara objek;

Menentukan sifat objek dan sambungan;

Mengadakan dan memudahkan kelas apabila menggunakan warisan;

Kajian lanjut dan penambahbaikan model.

Model objek perniagaan sedia ada menunjukkan bagaimana dan disebabkan oleh apakah preseden yang dilaksanakan. model ini mendedahkan organisasi dalaman perniagaan, iaitu: jenis sumber yang digunakan untuk melaksanakan preseden dan cara ia berinteraksi. Penerangan model objek adalah berdasarkan konsep "objek". Objek mewakili peserta proses dan pelbagai jenis entiti (produk siap, pesanan, dll.).

Objek antara muka proses perniagaan yang dikaji:

  • 1. Pengurus perkhidmatan pelanggan. Atribut: nama penuh, jawatan, gaji. Tanggungjawab: berinteraksi dengan pelanggan, membuat pesanan, menerima bayaran daripada pelanggan untuk pesanan.
  • 2. Penjaga stor yang bertanggungjawab dari segi kewangan. Atribut: nama penuh, jawatan, gaji. Tanggungjawab: berinteraksi dengan pembekal, menerima bahan dan menandatangani invois.
  • 3. Pemandu penghantaran. Atribut: nama penuh, jawatan, gaji. Tanggungjawab: Penghantaran produk siap kepada pelanggan.

Kawal objek proses perniagaan yang dikaji:

  • 1. Pereka bentuk. Atribut: nama penuh, jawatan, gaji. Tanggungjawab: reka bentuk produk, pengurusan projek, kawalan.
  • 2. Operator perakaunan automatik. Atribut: nama penuh, jawatan, gaji. Tanggungjawab: mengekalkan rekod automatik, bekerja dengan pangkalan data.
  • 3. Tukang perabot (Assembler). Atribut: nama penuh, jawatan, gaji. Tanggungjawab: Pengilangan produk mengikut projek.

Objek entiti proses perniagaan yang dikaji:

  • 1. Cek - dokumen yang dikeluarkan selepas pembayaran pesanan.
  • 2. Katalog - dokumen yang menggambarkan rangkaian produk.
  • 3. Borang pesanan - dokumen yang mengandungi nombor pesanan, tarikh pesanan, maklumat pelanggan, jenis yang dipilih, lakaran produk, kehendak pelanggan.
  • 4. Reka bentuk produk - reka bentuk perabot yang ditempah.
  • 5. Permohonan untuk bahan - pencirian dokumen bahan yang diperlukan dan jilid mereka.
  • 6. Pangkalan Data - program yang membolehkan anda mengekalkan rekod bahan dalam syarikat.
  • 7. Bahan - perlu untuk penghasilan produk tersuai.
  • 8. Invois - dokumen yang ditandatangani semasa penghantaran bahan.
  • 9. Produk siap adalah hasil pengeluaran, dicirikan oleh kepunyaan mana-mana pesanan.

Jadual 5.1 memberikan penerangan tentang hubungan objek antara satu sama lain.

Jadual 5.1 Penerangan tentang bagaimana objek berinteraksi antara satu sama lain

Objek komunikasi

Jenis komunikasi

Pelanggan - Pengurus Akaun

sikap komunikasi

Pelanggan menghubungi pengurus untuk membuat pesanan untuk pengeluaran perabot

Pengurus - Pelanggan

sikap komunikasi

Pengurus menyediakan pelanggan dengan katalog lakaran produk yang mungkin

Pelanggan - Katalog

nisbah penggunaan

Pelanggan memilih lakaran yang sesuai

Pengurus pelanggan

sikap komunikasi

Klien menyatakan pilihan dan kehendaknya

Pengurus - Pelanggan

sikap komunikasi

Pengurus menerangkan syarat dan terma

Pengurus pelanggan

sikap komunikasi

Pelanggan membayar untuk pesanan

Pengurus - Semak

nisbah penggunaan

Pengurus mencetak cek

Pengurus - Pelanggan

sikap komunikasi

Pengurus memberikan cek kepada pelanggan

Pengurus - Borang Pesanan

nisbah penggunaan

Pengurus membuat borang pesanan

Pengurus - Pereka

sikap komunikasi

Pengurus mengambil borang pesanan kepada pereka di bahagian reka bentuk

Pereka - Borang pesanan

nisbah penggunaan

Pereka bentuk menerima borang pesanan

nisbah penggunaan

Pereka bentuk membangunkan projek itu

Pereka - Reka Bentuk Produk

nisbah penggunaan

Pereka bentuk menilai projek

Pereka - Permintaan untuk bahan

nisbah penggunaan

Pereka bentuk membuat permintaan untuk bahan

Pereka - Pengendali perakaunan automatik

sikap komunikasi

Pereka bentuk menyerahkan permintaan untuk bahan kepada pengendali perakaunan automatik

Pengendali perakaunan automatik - Permintaan untuk bahan

nisbah penggunaan

Pengendali perakaunan automatik menerima permohonan untuk bahan

Pengendali perakaunan automatik - Pangkalan Data

nisbah penggunaan

Pengendali perakaunan automatik menyemak ketersediaan bahan yang diperlukan dengan bahan yang tersedia

Penjaga stor yang bertanggungjawab dari segi kewangan - Pembekal

sikap komunikasi

Penjaga stor yang bertanggungjawab secara material memesan bahan yang diperlukan daripada pembekal

Pembekal - Penjaga stor yang bertanggungjawab dari segi kewangan

sikap komunikasi

Penghantaran bahan

Penjaga stor yang bertanggungjawab dari segi kewangan - Bahan

nisbah penggunaan

Penerimaan bahan

Penjaga stor yang bertanggungjawab dari segi kewangan - Invois

nisbah penggunaan

Menandatangani invois

Penjaga stor yang bertanggungjawab dari segi kewangan - Pengumpul

sikap komunikasi

Mesej tentang ketersediaan bahan di gudang

Pereka - Pemasang

sikap komunikasi

Memindahkan reka bentuk produk kepada pemasang

Assembler - Reka Bentuk Produk

nisbah penggunaan

Pemasang perabot menerima dan mengkaji reka bentuk produk

Assembler - Produk siap

nisbah penggunaan

Pemasang membuat produk

Asembler - Pereka

sikap komunikasi

Pemasang memanggil pereka bentuk untuk mengawal kualiti produk

Pereka - Produk siap

nisbah penggunaan

Kawalan kualiti produk

Pereka - Pemasang

sikap komunikasi

Pereka bentuk memberikan penilaian kualiti produk

Assembler - Produk siap

nisbah penggunaan

Pembetulan kecacatan pada produk siap

Pemungut - Pemandu hadapan

sikap komunikasi

Menyerahkan borang pesanan dan produk siap kepada pemandu penghantaran

Pemandu penghantaran - Pelanggan

sikap komunikasi

Pemindahan produk siap

Nota: Jika bahan yang diperlukan ada dalam stok, maka perenggan 18, 19, 20, 21 jadual ini dilangkau.

Model dinamik interaksi antara jabatan dan pelanggan dalam preseden "Menjual produk tersuai" ditunjukkan dalam Rajah 5.1 Model dinamik interaksi antara jabatan, pekerja dan pelanggan dalam preseden "Pemesanan" ditunjukkan dalam Rajah 5.2 Model dinamik interaksi antara jabatan, pekerja dan pelanggan dalam preseden "Reka Bentuk" ditunjukkan dalam Rajah 5.3. Model dinamik interaksi pekerja, dalam preseden "Pembuatan" ditunjukkan dalam Rajah 5.4.

Rajah 5.1 Gambarajah jujukan kes penggunaan Jualan Produk Tersuai

Rajah 5.2 Gambarajah jujukan kes penggunaan "Place an order".

Rajah 5.3 Reka Bentuk Rajah Jujukan Kes Penggunaan

Rajah 5.4 Rajah jujukan kes penggunaan Pembuatan

Asas konsep pendekatan berorientasikan objek ialah model objek. Prinsip utama pembinaannya ialah:

· abstraksi;

· enkapsulasi;

· modulariti;

· hierarki.

Abstraksi ialah pemilihan ciri yang paling penting dan penting bagi sesetengah objek, yang membezakannya daripada semua jenis objek lain dan, dengan itu, mentakrifkan dengan jelas sempadan konsepnya dari sudut pandangan pertimbangan dan analisis selanjutnya, dan mengabaikan yang kurang penting atau tidak penting. butiran.

Abstraksi membolehkan anda mengurus kerumitan sistem dengan memfokuskan pada sifat penting objek. Abstraksi menumpukan perhatian kepada ciri luaran objek dan membolehkan anda memisahkan ciri paling penting bagi tingkah lakunya daripada butiran pelaksanaannya. Pilihan set yang betul abstraksi untuk sesuatu yang diberikan bidang subjek mewakili tugas utama reka bentuk berorientasikan objek. Abstraksi bergantung pada domain dan sudut pandangan - apa yang penting dalam satu konteks mungkin tidak penting dalam konteks yang lain. Objek dan kelas adalah abstraksi asas domain.

Enkapsulasi ialah penyetempatan fizikal sifat dan tingkah laku dalam satu abstraksi (dianggap sebagai "kotak hitam"), menyembunyikan pelaksanaannya di sebalik antara muka awam.

Enkapsulasi adalah proses pemisahan antara satu sama lain elemen individu objek yang menentukan struktur dan tingkah lakunya. Enkapsulasi berfungsi untuk mengasingkan antara muka objek, yang mencerminkan tingkah laku luarannya, daripada pelaksanaan dalaman objek. Pendekatan objek menganggap bahawa sumber asli, yang hanya boleh dimanipulasi oleh operasi objek itu sendiri, tersembunyi daripada persekitaran luaran. Abstraksi dan enkapsulasi adalah pelengkap: abstraksi memfokuskan perhatian pada ciri luaran objek, manakala enkapsulasi (atau sebaliknya menyekat akses) menghalang objek pengguna daripada membezakan struktur dalaman objek.

Enkapsulasi adalah serupa dengan konsep penyembunyian maklumat. Ini adalah keupayaan untuk menyembunyikan banyak butiran objek dari dunia luar. dunia luar objek ialah segala yang ada di luarnya, termasuk seluruh sistem. Penyembunyian maklumat memberikan manfaat yang sama seperti enkapsulasi: fleksibiliti.

Modulariti ialah sifat sistem yang dikaitkan dengan kemungkinan penguraiannya menjadi beberapa subsistem (modul) yang berganding kuat secara dalaman, tetapi saling berkaitan lemah.

Modulariti mengurangkan kerumitan sistem dengan membenarkan pembangunan bebas modul individu. Enkapsulasi dan modulariti mewujudkan halangan antara abstraksi.

Hierarki ialah sistem abstraksi berperingkat atau tersusun, susunannya mengikut tahap.

Jenis utama struktur hierarki berhubung dengan sistem yang kompleks ialah struktur kelas (hierarki mengikut tatanama) dan struktur objek (hierarki mengikut komposisi). Contoh hierarki kelas adalah mudah dan pusaka berbilang(satu kelas menggunakan bahagian struktur atau fungsi, masing-masing, satu atau lebih kelas lain), dan hierarki objek ialah pengagregatan.

Kelas boleh dianjurkan sebagai struktur hierarki, yang menurut penampilan menyerupai skema klasifikasi dalam logik konseptual. Hierarki konsep dibina seperti berikut. Konsep atau kategori yang paling umum dianggap sebagai konsep yang mempunyai jumlah terbesar dan, dengan itu, kandungan terkecil. Ini yang paling banyak tahap tinggi abstraksi untuk hierarki tertentu. Kemudian diberikan konsep umum ditentukan, iaitu isipadunya berkurangan dan kandungannya bertambah. Konsep yang kurang umum muncul, yang dalam rajah hierarki akan terletak satu tahap di bawah yang asal. Proses mengkokritkan konsep ini boleh diteruskan sehingga peringkat bawah sesuatu konsep tidak akan diperoleh, spesifikasi lanjut yang dalam konteks ini adalah sama ada mustahil atau tidak praktikal.