• Bir yazılım sisteminin nesne modelini oluşturmak. Nesne modeli oluşturma

    Uygulama sistemi birbirine bağlı nesneler kümesidir. Her nesne, değerleri nesnenin durumunu belirleyen bir dizi özellik ve bu nesneye uygulanabilecek bir dizi işlemle karakterize edilir.

    Uygulama sistemleri geliştirirken nesnelerin tüm özelliklerinin özel olduğunu (yani nesnenin dışında mevcut olmadığını) dikkate almak uygundur. Nesne işlemleri genel veya özel olabilir.

    Böylece her nesnenin kesin olarak tanımlanmış bir arayüzü vardır; bu nesneye uygulanabilecek bir dizi genel işlem. Aynı sınıftaki tüm nesneler aynı arayüze sahiptir.

    Nesne modeli, tasarlanan sistemin (alt sistemin) istatistiksel yapısını temsil eder. Ancak statik yapının bilgisi alt sistemin çalışmasını anlamak ve değerlendirmek için yeterli değildir. Alt sistemin işleyişi sırasında nesnelerde meydana gelen değişiklikleri ve aralarındaki ilişkileri tanımlayacak araçlara sahip olmak gerekir.

    Bu araçlardan biri dinamik model alt sistemler. Alt sistemin nesne modeli oluşturulduktan ve ön kararlaştırılıp hata ayıklandıktan sonra oluşturulur. Dinamik Model Alt sistem, alt sistem nesnelerinin durum diyagramlarından oluşur.

    Bir nesnenin mevcut durumu, niteliklerinin ve bağlantılarının bir dizi mevcut değeri ile karakterize edilir. Sistemin çalışması sırasında, onu oluşturan nesneler birbirleriyle etkileşime girer ve bunun sonucunda durumları değişir. Etki birimi etkinlik: her olay sistemdeki bir veya daha fazla nesnenin durumunun değişmesine veya yeni olayların ortaya çıkmasına neden olur. Sistemin işleyişi, içinde meydana gelen olayların sırası ile karakterize edilir.

    Zamanın bir noktasında bir olay meydana gelir. Olay örnekleri: roket fırlatılması, 100 metre yarışının başlaması, görevlendirmenin başlaması, para verilmesi vb. Bir olayın süresi yoktur (daha doğrusu ihmal edilebilir bir zaman alır).

    Olayların nedenselliği yoksa (yani mantıksal olarak bağımsızlarsa), olaylara denir. bağımsız(eşzamanlı ). Bu olaylar birbirini etkilemez. Olaylar herhangi bir sırada meydana gelebileceği için bağımsız olayları sıralamanın bir anlamı yoktur. Modeli dağıtımlı sistem bağımsız etkinlik ve faaliyetler içermelidir.

    Olaylar dizisine senaryo denir. Senaryolar geliştirilip analiz edildikten sonra, her senaryo olayını üreten ve alan nesneler tanımlanır.

    Bir olay meydana geldiğinde, yalnızca nesne yeni bir duruma geçmekle kalmaz, aynı zamanda bu olayla ilişkili eylem de gerçekleştirilir. Eylem, bir olayla ilişkili anlık bir işlemdir.

    Bir nesne modeli oluşturma süreci aşağıdaki adımları içerir:

    Nesnelerin ve sınıfların tanımı;

    Veri sözlüğünün hazırlanması:

    Nesneler arasındaki bağımlılıkların belirlenmesi;

    Nesnelerin ve bağlantıların özelliklerinin belirlenmesi;

    Kalıtım kullanılırken sınıfların organizasyonu ve basitleştirilmesi;

    Modelin daha fazla araştırılması ve geliştirilmesi.

    UML modelleme dilini kullanarak problemin nesne modelini oluşturmak.

    StarUML'DE İŞ YAPILIYOR

    Kurşun zamanı:

    2 - 3 ders

    Çalışmayı korumak için, Rational Rose paketinde oluşturulan ve üç tür diyagram içeren bir proje sağlanmalıdır: kullanım senaryoları, sınıflar (arayüz, veriler) ve her işleve ilişkin diziler.

    GÖREV ÖRNEĞİ:

    Aşağıdaki bilgilerin veritabanında saklanması gerekir:

    - öğrenci bilgileri

    Ö AD SOYAD.,

    Ö adres,

    Ö pasaport verileri,

    Ö hesap numarası,

    Ö Doğum tarihi,

    Ö grup);

    - uzmanlıklar hakkında bilgi

    Ö uzmanlığın adı,

    Ö şifre;

    - grup bilgisi

    Ö uzmanlık,

    Ö kabul yılı

    Ö grup numarası.

    Aşağıdaki alanları içeren “Grup Listesi” belgesinin verilmesini sağlayın:

    · seri numarası,

    · AD SOYAD.,

    · hesap numarası.


    İş emri

    Nesne modeli Rational Rose paketinde oluşturulmuştur. Bunu yapmak için boş bir proje oluşturacağız. Çalışmanıza bir kullanım senaryosu diyagramıyla başlayın. Şekil 9'da gösterildiği gibi Kullanım Durumu Görünümü bölümünün Ana alanına inşa edilmiştir.

    Bir diyagram oluşturmaya başlamadan önce sistem kullanıcılarının (aktörlerin) rollerini ve işlevlerini (kullanım senaryoları) tanımlamak gerekir. Bizim durumumuzda sistemle iki aktör çalışıyor - bu “eğitim departmanı çalışanı” ve “dekanlık çalışanı”. Eğitim departmanının bir çalışanının işlevleri, uzmanlıkların bir listesinin tutulmasını içerir (aşağıda) liste bakımı girişleri eklemeyi, ayarlamayı ve silmeyi anlayacağız). Dekanın ofis çalışanının görevleri arasında öğrenci listesinin tutulması ve grupların bir listesinin tutulması yer alır.

    Oluşturulan diyagram Şekil 2'de gösterilmektedir. 10.


    Daha sonra Mantıksal Görünüm bölümünde iki sınıf diyagramı oluşturun. Bunun için iki paket oluşturabilirsiniz. İlk diyagram, tasarlanmakta olan uygulamanın arayüz sınıflarını içermelidir (bkz. Şekil 11). Bu şekilde, şeklin karmaşıklığını önlemek için Grup Listesi ve Öğrenci Listesi sınıflarında Ekle, Değiştir ve Sil işlemleri çıkarılmıştır. Grup listesi (alt sınıf) çıktı belgesidir (belirli bir gruptaki öğrencilerin bir listesini almak gerektiğinden "Grup Seçimi" sınıfından önce gelir). İkinci diyagram veritabanı varlıklarıdır (bkz. Şekil 12).



    Oluşturulan sınıf diyagramı gelecekteki uygulamanın tüm biçimlerini ve bunların ilişkilerini gösterir.

    Anahtar alanları bir kenara bırakmalı ve bir bağlantı kurmalısınız (okun içerik menüsünden - Çokluk).

    Sonraki aşama bir nesne modeli oluşturmak - sıra diyagramları oluşturmak. Kullanım senaryosu diyagramındaki her kullanım durumu için sıra diyagramları oluşturulur. Bir kullanım senaryosuna sıra diyagramı eklemek için onu ağaçta seçip çağırmanız gerekir. içerik menüsü(Yeni Sıra Diyagramı) şekil 2'de gösterildiği gibi. 13.

    "Uzmanlıkların bir listesinin sürdürülmesi" kullanım senaryosu için bir sıra şeması örneği şekil 2'de gösterilmektedir. 14.

    "Grup Listesi" çıktı belgesi için bu tür bir diyagram oluştururken, bizim durumumuzda, önce "Grup seç" formunda bir grup seçmeniz gerektiğine dikkat edilmelidir (bu da " Grup" varlığı) ve ardından verilerin zaten "Öğrenci" varlığından geldiği çıktı belgesinin biçimini görüntüleyin.

    Veri tabanı. Yazışma öğrencileri

    Laboratuvar #1

    UML modelleme dilini kullanarak problemin nesne modelini oluşturmak.

    Çalışmayı korumak için, Rational Rose paketinde oluşturulan ve üç tür diyagram içeren bir proje sağlanmalıdır: kullanım senaryoları, sınıflar (arayüz, veriler) ve her işleve ilişkin diziler.

    Genel bilgi

    Geliştirilmekte olan sistemi daha iyi anlamak için bir model oluşturmak gereklidir.

    Modelleme aşağıdaki sorunları çözmenizi sağlar:

    Sistemin mevcut veya istenilen halini bizim için görselleştirin;

    Sistemin yapısını veya davranışını belirleyin;

    Daha sonra bir sistem tasarlamanıza olanak tanıyan bir şablon edinin;

    Ortaya çıkan modelleri kullanarak aldığınız kararları belgeleyin.

    Sınıf(Sınıf), ortak niteliklere, işlemlere ve ilişkilere sahip bir nesne koleksiyonunun açıklamasıdır. Grafiksel olarak bir sınıf, Şekil 1'de gösterildiği gibi genellikle adını, niteliklerini ve işlemlerini içeren bir dikdörtgen olarak gösterilir. 1. Varlık sınıfının çeşitlerinden biri aktör(Aktör). Tipik olarak bir aktör, bir kişinin belirli bir sistemde oynadığı rolü temsil eder. donanım aygıtı hatta başka bir sistem. Şekil 2'de gösterildiği gibi. 2'de oyuncular insan figürleri olarak tasvir edilmiştir.

    emsal(Kullanım Senaryosu), belirli bir aktör (Aktör) için anlamlı olan gözlemlenebilir bir sonuç üreten, sistem tarafından gerçekleştirilen eylemler dizisinin bir açıklamasıdır. Kullanım senaryosu, modelin davranışsal varlıklarını yapılandırmak için kullanılır. Grafiksel olarak bir kullanım durumu, Şekil 2'de gösterildiği gibi, genellikle yalnızca adını içeren, sürekli bir çizgiyle sınırlanan bir elips olarak gösterilir. 3.

    Davranışsal Varlıklar UML modelinin dinamik bileşenleridir. Bunlar dilin fiilleridir: modelin zaman ve mekandaki davranışını tanımlarlar. İki tür davranışsal varlık vardır:

    Etkileşim;

    Otomatik (Durum makinesi).

    Etkileşim(Etkileşim), özü, belirli bir hedefe ulaşmak için belirli bir bağlam içindeki nesneler arasında mesaj (Mesaj) alışverişi olan bir davranıştır. Grafiksel olarak mesajlar, Şekil 2'de gösterildiği gibi hemen hemen her zaman ilgili işlemin adının yazıldığı bir ok şeklinde gösterilir. 4.

    Varlıkları gruplandırma UML'nin düzenleyici kısımlarıdır. Bunlar modelin ayrıştırılabileceği bloklardır. Yalnızca tek bir gruplama varlığı vardır, yani paket.

    Paketler(Paketler), öğeleri gruplar halinde düzenlemek için evrensel bir mekanizmadır. Yapısal, davranışsal ve hatta diğer gruplandırma varlıklarını bir pakete koyabilirsiniz. Sistem çalışırken var olan bileşenlerin aksine paketler doğası gereği tamamen kavramsaldır, yani yalnızca geliştirme sırasında var olurlar. Paket, kural olarak yalnızca adı içeren bir sekmeye sahip bir klasör olarak görüntülenir (bkz. Şekil 5).

    Detaylandırma Varlıkları- UML modelinin açıklayıcı kısımları. Bunlar için yapılan yorumlar Ek açıklama, modelin herhangi bir unsuruna ilişkin açıklamalar veya açıklamalar. Yalnızca bir tür ek açıklama öğesi vardır: Not.

    Not basitçe bir öğeye veya öğe grubuna eklenen yorumları veya kısıtlamaları tasvir eden bir semboldür. Grafiksel olarak not, Şekil 2'de gösterildiği gibi bir metin veya grafik yorumu içeren kavisli kenarı olan bir dikdörtgen olarak görüntülenir. 6.

    İÇİNDE UML dili dört tür ilişki tanımlanır:

    Bağımlılık;

    Dernek;

    genelleme;

    Uygulama.

    Bu ilişkiler UML'deki temel yapı taşlarıdır ve doğru modelleri oluşturmak için kullanılır.

    Bağımlılık(Bağımlılık), iki varlık arasındaki anlamsal bir ilişkidir; bunlardan birinde bağımsız olan bir değişiklik, bağımlı diğerinin anlamını etkileyebilir. Grafiksel olarak bağımlılık genellikle bir okla düz noktalı bir çizgi olarak gösterilir (bkz. Şekil 7).

    Dernek(İlişki) – bir dizi bağlantıyı tanımlayan yapısal bir ilişki; İlişki nesneler arasındaki bağlantıdır. Grafiksel olarak bir ilişkilendirme, yanında çokluk ve rol adları gibi ek sembollerin bulunabileceği düz bir çizgiyle (bazen bir okla biten veya bir etiket içeren) temsil edilir. Şek. Şekil 8'de bu tür bir ilişkinin bir örneği gösterilmektedir.

    UML diyagramı, çoğunlukla köşeler (varlıklar) ve kenarlar (ilişkiler) ile bağlantılı bir grafik olarak gösterilen bir dizi öğenin grafiksel bir temsilidir. Sistemi görselleştirmek için diyagramlar çizilir. farklı noktalar görüş. UML'de dokuz tür diyagram vardır:

    sınıf diyagramları;

    Nesne diyagramları;

    Durum Diyagramları;

    Sıra diyagramları;

    İşbirliği şemaları;

    Durum diyagramları;

    Eylem diyagramları;

    Bileşen Diyagramları;

    Dağıtım diyagramları.

    Açık sınıf diyagramı sınıfları, arayüzleri, nesneleri ve işbirliklerini ve bunların ilişkilerini gösterir. Nesneye yönelik sistemleri modellerken bu tür diyagram en sık kullanılır. Sınıf diyagramları, tasarım açısından sistemin statik görünümüne karşılık gelir.

    Açık kullanım senaryosu diyagramı emsaller ve aktörler sunulmaktadır ( özel durum sınıflar) ve aralarındaki ilişkiler. Kullanım senaryosu diyagramları, kullanım senaryoları açısından bir sistemin statik görünümünü ifade eder. Bir sistemin davranışını organize etmede ve modellemede özellikle önemlidirler.

    Sıra diyagramları etkileşim diyagramlarının özel bir durumudur. Açık etkileşim diyagramları nesneler arasındaki bağlantılar sunulur; özellikle nesnelerin değiş tokuş edebileceği mesajları gösterir. Etkileşim diyagramları, dinamik görünüm sistemler. Aynı zamanda sıra diyagramları mesajların zamansal sıralamasını yansıtır.

    Çalışma sırası aşağıdaki görev örneğinde ele alınacaktır:

    Aşağıdaki bilgilerin veritabanında saklanması gerekir:

    - öğrenciler hakkında bilgiler (tam adı, Ev Adresi, pasaport bilgileri, kayıt numarası, doğum tarihi, grup);

    - uzmanlıklara ilişkin bilgiler (uzmanlığın adı, kodu);

    - gruplar hakkında bilgi (uzmanlık alanı, kabul yılı, grup numarası).

    Seri numarası, tam ad, kayıt numarası alanlarını içeren “Grup listesi” belgesinin verildiğinden emin olun.

    Nesne modeli Rational Rose paketinde oluşturulmuştur. Bunu yapmak için boş bir proje oluşturacağız. Çalışmanıza bir kullanım senaryosu diyagramıyla başlayın. Şekil 9'da gösterildiği gibi Kullanım Durumu Görünümü bölümünün Ana alanına inşa edilmiştir.

    Bir diyagram oluşturmaya başlamadan önce sistem kullanıcılarının (aktörlerin) rollerini ve işlevlerini (kullanım senaryoları) tanımlamak gerekir. Bizim durumumuzda sistemle iki aktör çalışıyor - bu “eğitim departmanı çalışanı” ve “dekanlık çalışanı”. Eğitim departmanının bir çalışanının işlevleri, uzmanlıkların bir listesinin tutulmasını içerir (aşağıda) liste bakımı girişleri eklemeyi, ayarlamayı ve silmeyi anlayacağız). Dekanın ofis çalışanının görevleri arasında öğrenci listesinin tutulması ve grupların bir listesinin tutulması yer alır.

    Oluşturulan diyagram Şekil 2'de gösterilmektedir. 10.


    Daha sonra Mantıksal Görünüm bölümünde iki sınıf diyagramı oluşturun. Bunun için iki paket oluşturabilirsiniz. İlk diyagram, tasarlanmakta olan uygulamanın arayüz sınıflarını içermelidir (bkz. Şekil 11). İkinci diyagram veritabanı varlıklarıdır (bkz. Şekil 12).

    Oluşturulan sınıf diyagramı gelecekteki uygulamanın tüm biçimlerini ve bunların ilişkilerini gösterir.

    Bir nesne modeli oluşturmanın bir sonraki adımı sıra diyagramları oluşturmaktır. Kullanım senaryosu diyagramındaki her kullanım durumu için sıra diyagramları oluşturulur. Bir emsale bir sıra diyagramı eklemek için, onu ağaçta seçmeniz ve Şekil 2'de gösterildiği gibi içerik menüsünü (Yeni-Sıra Diyagramı) çağırmanız gerekir. 13.

    "Uzmanlıkların bir listesinin sürdürülmesi" kullanım senaryosu için bir sıra şeması örneği şekil 2'de gösterilmektedir. 14.

    Nesne Modeli Mevcut iş emsallerin nasıl ve hangi yöntemlerle uygulandığını gösterir. Bu model işletmenin iç yapısını, yani kullanım senaryolarını uygulamak için ne tür kaynakların kullanıldığını ve bunların nasıl etkileşime girdiğini ortaya çıkarır. Nesne modelinin tanımı "nesne" kavramına dayanmaktadır. Nesneler süreç katılımcılarını ve çeşitli türdeki varlıkları (bitmiş ürünler, siparişler vb.) temsil eder.

    İncelenen iş sürecinin arayüz nesneleri:

    • 1. Hesap yöneticisi. Nitelikler: tam ad, pozisyon, maaş. Sorumluluklar: Müşterilerle etkileşime girer, sipariş verir, siparişler için müşterilerden ödeme kabul eder.
    • 2. Sorumlu depo sahibi. Nitelikler: tam ad, pozisyon, maaş. Sorumluluklar: Tedarikçilerle etkileşim, malzemeleri kabul etme ve faturayı imzalama.
    • 3. Yönlendirme sürücüsü. Nitelikler: tam ad, pozisyon, maaş. Sorumluluklar: Bitmiş ürünün müşteriye teslimi.

    İncelenen iş sürecinin kontrol nesneleri:

    • 1. Tasarımcı. Nitelikler: tam ad, pozisyon, maaş. Sorumluluklar: ürün tasarımı, proje yönetimi, kontrol.
    • 2. Otomatik muhasebe operatörü. Nitelikler: tam ad, pozisyon, maaş. Sorumluluklar: otomatik muhasebeyi sürdürmek, veritabanıyla çalışmak.
    • 3. Mobilya ustası (Montajcı). Nitelikler: tam ad, pozisyon, maaş. Sorumluluklar: Ürünün projeye uygun imalatı.

    İncelenen iş sürecinin varlık nesneleri:

    • 1. Çek - siparişin ödenmesi üzerine verilen bir belge.
    • 2. Katalog - ürün yelpazesini yansıtan bir belge.
    • 3. Sipariş formu - sipariş numarasını, sipariş tarihini, müşteri bilgilerini, seçilen tipi, ürün taslağını, müşteri isteklerini içeren bir belge.
    • 4. Ürün tasarımı - sipariş edilen mobilyaların tasarımı.
    • 5. Malzeme başvurusu - karakterize edici bir belge gerekli malzemeler ve bunların hacimleri.
    • 6. Veritabanı - şirketteki malzeme kayıtlarını tutmanıza olanak sağlayan bir program.
    • 7. Malzemeler - özel bir ürünün üretimi için gerekli.
    • 8. Fatura - malzemelerin nakliyesi üzerine imzalanan bir belge.
    • 9. Bitmiş ürün - herhangi bir siparişe ait olmasıyla karakterize edilen üretimin sonucu.

    Tablo 5.1'de nesnelerin birbirleriyle ilişkisi açıklanmaktadır.

    Tablo 5.1 Nesnelerin birbirleriyle etkileşiminin açıklaması

    İletişim nesneleri

    İletişim türü

    Müşteri - Müşteri İlişkileri Müdürü

    iletişim tutumu

    Müşteri, mobilya üretimi için sipariş vermek üzere yöneticiye hitap eder

    Yönetici - Müşteri

    iletişim tutumu

    Yönetici müşteriye olası ürün taslaklarından oluşan bir katalog sağlar

    Müşteri - Katalog

    kullanım oranı

    Müşteri uygun taslağı seçer

    Müşteri yöneticisi

    iletişim tutumu

    Müşteri seçimini ve isteklerini ifade eder

    Yönetici - Müşteri

    iletişim tutumu

    Yönetici şartlar ve koşulları açıklıyor

    Müşteri yöneticisi

    iletişim tutumu

    Müşteri siparişin bedelini öder

    Yönetici - Kontrol Et

    kullanım oranı

    Yönetici bir çek yazdırır

    Yönetici - Müşteri

    iletişim tutumu

    Yönetici müşteriye bir çek verir

    Yönetici - Sipariş Formu

    kullanım oranı

    Yönetici bir sipariş formu oluşturur

    Yönetici - Tasarımcı

    iletişim tutumu

    Yönetici sipariş formunu tasarım departmanındaki tasarımcıya götürür.

    Tasarımcı - Sipariş Formu

    kullanım oranı

    Tasarımcı sipariş formunu kabul eder

    kullanım oranı

    Tasarımcı projeyi geliştirir

    Tasarımcı - Ürün tasarımı

    kullanım oranı

    Tasarımcı projeyi değerlendirir

    Tasarımcı - Malzeme başvurusu

    kullanım oranı

    Tasarımcı malzeme için bir talep oluşturur

    Tasarımcı - Otomatik muhasebe operatörü

    iletişim tutumu

    Tasarımcı, malzemeler için otomatik muhasebe operatörüne bir başvuru gönderir

    Otomatik muhasebe operatörü - Malzeme başvurusu

    kullanım oranı

    Otomatik muhasebe operatörü malzeme başvurusunu kabul eder

    Otomatik Muhasebe Operatörü - Veritabanı

    kullanım oranı

    Otomatik muhasebe operatörü, gerekli malzemelerin kullanılabilirliğini mevcut malzemelerle kontrol eder

    Sorumlu mağaza sorumlusu - Tedarikçiler

    iletişim tutumu

    Sorumlu depo sahibi gerekli malzemeleri tedarikçilerden sipariş eder

    Tedarikçiler - Sorumlu depo sahibi

    iletişim tutumu

    Malzemelerin teslimi

    Sorumlu depo sorumlusu - Malzemeler

    kullanım oranı

    Malzemelerin kabulü

    Sorumlu mağaza sorumlusu - Fatura

    kullanım oranı

    Faturayı imzalar

    Sorumlu depo sorumlusu - Montajcı

    iletişim tutumu

    Depo bildirimi

    Tasarımcı - Montajcı

    iletişim tutumu

    Ürün tasarımının montajcıya aktarılması

    Montajcı - Ürün tasarımı

    kullanım oranı

    Mobilya montajcısı ürünün tasarımını alır ve inceler

    Montajcı - Bitmiş ürün

    kullanım oranı

    Montajcı ürünü yapar

    Montajcı - Tasarımcı

    iletişim tutumu

    Montajcı, ürünün kalitesini kontrol etmesi için tasarımcıyı çağırır

    Tasarımcı - Bitmiş ürün

    kullanım oranı

    Ürün kalite kontrolü

    Tasarımcı - Montajcı

    iletişim tutumu

    Tasarımcı, ürün kalite değerlendirmesinin

    Montajcı - Bitmiş ürün

    kullanım oranı

    Bitmiş üründeki kusurların düzeltilmesi

    Toplayıcı - Teslimat sürücüsü

    iletişim tutumu

    Sipariş formunun ve bitmiş ürünün nakliye sürücüsüne aktarılması

    Yönlendirme sürücüsü - İstemci

    iletişim tutumu

    Bitmiş ürünün transferi

    Not: Gerekli malzemeler stokta mevcut ise bu tablonun 18, 19, 20, 21. maddeleri atlanır.

    Departmanlar ve müşteri arasındaki etkileşimin dinamik modeli, "Özel bir ürünün satışı" durumunda, Şekil 5.1'de gösterilmektedir ", Şekil 5.3'te gösterilmektedir. "İmalat" durumunda, çalışan etkileşiminin dinamik modeli, Şekil 5'de gösterilmektedir. 5.4.

    Şekil 5.1 "Özel ürün satışı" kullanım senaryosunun sıra diyagramı

    Şekil 5.2 Ödeme Kullanım Senaryosunun Sıra Diyagramı

    Şekil 5.3 "Tasarım" kullanım senaryosunun sıra diyagramı

    Şekil 5.4 "Make" kullanım senaryosunun sıra diyagramı

    UML modelleme dili kullanılarak "bir spor kulübünün süreçlerinin organizasyonu" konusunun nesne modelinin oluşturulması

    1. NESNE ODAKLI METODOLOJİNİN ANA TEORİK HÜKÜMLERİ

    1.1 Nesneye yönelik yaklaşımın temel kavramları

    konu dili programlama modeli

    Uzun bir süredir programlama, yapılandırılmış bir prosedür modeli kullanmıştır. Proje hedeflerinin seçimi, "yukarıdan aşağıya" ve buna bağlı olarak "aşağıdan yukarıya" adı verilen iki yaklaşımdan biriyle gerçekleştirilir.

    1. Yukarıdan aşağıya yaklaşım, görevin alt görevlere bölündüğünü ve bunların da bir sonraki düzeyin alt görevlerine vb. bölündüğünü ima eder. Ayrıştırma adı verilen bu süreç, alt görevlerin basitleştirilmesi, resmileştirilebilecek temel işlevlere indirgenene kadar devam eder.

    2. Aşağıdan yukarıya yaklaşım, prosedürlerin basit sorunları çözmek için yazıldığını, daha sonra bunların istenen etki elde edilene kadar daha karmaşık prosedürler halinde sırayla birleştirildiğini ima eder.

    Önemli programlama kavramları prosedürel yönelimli programlama ve nesne yönelimli programlamadır.

    Prosedür odaklı programlama, sıralı olarak yürütülen ifadelerin, dilin kendi mekanizmalarını kullanarak alt programlara, yani daha büyük bütünleşik kod birimlerine birleştirilebildiği, emir dilinde programlamadır.

    Nesne yönelimli programlama (OOP), gerçek dünyanın davranışını, uygulama ayrıntılarını gizleyecek şekilde yakalayan bir programlama stilidir.

    Bir nesne, özellikleri, davranışları ve diğer uygulama nesneleriyle etkileşimiyle diğer varlıklar arasında öne çıkan bir tür ayrı varlıktır.

    Bu teknolojinin kullanılması, programın yapısını birbirleriyle etkileşime giren bir dizi nesne olarak temsil etmeyi mümkün kılar. Nesneler arasında mesajların iletilmesiyle gerçekleştirilen bu etkileşim sonucunda programın belirtilen işlevleri uygulanır. Bir mesaj alındığında nesne, yöntem adı verilen belirli bir eylemi gerçekleştirebilir.

    OOP ile prosedürel programlama arasında iki önemli fark vardır:

    1. OOP'ta programcı ilk önce sınıfları açıklamadan çıkarır. konu alanı daha sonra sorunu çözmek için bir nesne modeli oluşturulur ve ancak bundan sonra yöntemlerinin ve özelliklerinin analizine geçilir.

    2. Yöntemler ve özellikler, ilgili işlemleri gerçekleştirmek üzere tasarlanmış bir sınıfla ilişkilendirilir.

    Bir kişinin etrafındaki dünyadaki çeşitli pratik sorunları nasıl çözdüğünü analiz edersek, bu dünyanın da nesne yönelimli olduğunu anlayabiliriz. Örneğin, bir kişi işe gitmek için genellikle araç gibi bir nesneyle etkileşime girer. Araç ise birbiriyle etkileşime giren, onu harekete geçiren nesnelerden oluşur ve bu sayede kişi görevini gerçekleştirir - istenen noktaya ulaşır. Aynı zamanda ne sürücünün ne de yolcunun aracı oluşturan nesnelerin nasıl etkileşimde bulunduğunu bilmesine gerek yoktur.

    Nesneye yönelik programlamada, gerçek dünyada olduğu gibi, program kullanıcıları birbirinden izole edilmiştir. mantık diyagramı görevleri tamamlamak için gerekli. Örneğin, bir sayfayı yazdırmak için Metin düzeltici kullanıcı araç çubuğundaki bir düğmeye basarak belirli bir işlevi çağırır ancak gerçekleşen dahili süreçleri görmez. Program çalışırken bir sayfa yazdırırken, nesnelerin karmaşık bir etkileşimi söz konusu olur ve bu etkileşimler de yazıcıyla etkileşime girer.

    Nesneye yönelik bir program oluştururken konu alanı, sınıflar halinde birleştirilen nesnelerin bir koleksiyonu olarak temsil edilir. Programın yürütülmesi, nesnelerin mesaj alışverişinde bulunması (birbirleriyle etkileşime girmesi) gerçeğinden oluşur. Konu alanına ait gerçek bir nesneyi temsil ederken program sınıfı Gerçek bir nesnedeki temel özelliklerini ayırmak ve diğer birçok özelliği göz ardı etmek, kendimizi yalnızca pratik bir sorunu çözmek için gerekli olanlarla sınırlamak gerekir. Bu tekniğe soyutlama denir.

    Soyutlama, bir nesneyi diğer nesnelerden ayıran temel özelliklerin seçilmesidir. Ayrıca, temel özelliklerin listesi modellemenin hedeflerine bağlıdır ve farklı görevler tamamen farklı olabilir. Örneğin, bir göç biyologunun, bir veterinerin veya bir aşçının bakış açısından "sıçan" nesnesi tamamen farklı özelliklere sahip olacaktır.

    Bir sınıf, sahip olan nesnelerin bir koleksiyonudur. Genel Özellikler ve davranış. Dolayısıyla bir sınıf bir tür genellik olarak tanımlanabilir. belirli nesneler açıklama olarak - ne olmaları gerektiği ve ne yapmaları gerektiği. Eğer nesneler uygulamalarda gerçekten mevcutsa, o zaman sınıf, nesneleri bulundukları ve etkileşimde bulundukları ortamdaki özelliklerine ve davranışlarına göre tek bir grupta birleştiren bir soyutlamadır. Örneğin, bir formdaki Button1, tüm spesifik özellikleri ve eylemiyle birlikte Button sınıfının bir nesnesidir.

    Davranış, bir nesnenin diğer nesneleri nasıl etkilediğinin veya onların etkisi altında kendisini nasıl değiştirdiğinin bir özelliğidir. Davranış, bir nesnenin durumlarının nasıl değiştiğini etkiler.

    Nesne yönelimli programlama teknolojisinin kalbinde "üç balina" vardır: kapsülleme, kalıtım ve polimorfizm.

    Kapsülleme (kapsülleme) - durumu ve davranışı birleştirme ve tek bir yapı içinde saklanma özelliği dahili cihaz nesne ve uygulama ayrıntıları ("kapsül" sözcüğünden). Herhangi bir nesnenin önemli bir özelliği izolasyonudur. Nesnenin uygulama ayrıntıları, ör. bunların işlenmesine yönelik dahili veri yapıları ve algoritmalar, nesnenin kullanıcısından gizlenir ve istenmeyen değişikliklere açık değildir. Nesne bir arayüz (bir dizi erişim kuralı) aracılığıyla kullanılır. Örneğin, geçiş yapmak için televizyon program, uzaktan kumandada yeterince şey var uzaktan kumanda numarasını çevirin; bu, sonunda istenen sonuca yol açacak karmaşık bir mekanizmayı başlatacaktır. Uzaktan kumandada ve TV'de neler olduğunu bilmemize gerek yok, sadece TV'nin bu yeteneğe (yönteme) sahip olduğunu ve nasıl etkinleştirilebileceğini bilmemiz gerekiyor. Kapsülleme veya uygulama gizleme, OOP'nin temel bir özelliğidir. Gerekli yöntemlere sahip özel nesneler oluşturmanıza ve daha sonra bu nesnelerin yapısına girmeden bunlar üzerinde işlem yapmanıza olanak tanır. Dolayısıyla kapsülleme, veri ve veri işleme (manipülasyon) yöntemlerini birleştiren ve hem dış müdahalelerden hem de yanlış kullanımdan koruyan bir mekanizmadır. Kodun bir sınıf içinde kapsüllenmesi, bu kodun bireysel sınıfların uygulama ayrıntılarındaki herhangi bir değişiklikle "kırılmamasını" sağlar. Bu nedenle, bir nesneyi başka bir ortamda kullanabilir ve kendisine ait olmayan bellek alanlarını bozmadığından emin olabilirsiniz. Hala sınıfta bir şeyi değiştirmeniz veya eklemeniz gerekiyorsa, kalıtım ve polimorfizm mekanizmaları kullanılır.

    Kalıtım, sınıfların hiyerarşiye dayalı olarak ata sınıfların özellik ve davranışlarını içerme ve onlara kendi davranış ve özelliklerini ekleme yeteneğidir. Dünyada her yıl çok sayıda program yazılıyor ve önceden yazılmış kodun kullanılması önemlidir. Nesne yönelimli programlamanın avantajı, bir nesnenin davranışını değiştiren veya artıran alt öğeleri tanımlayabilmenizdir. Bu durumda sadece tekrarlamaya gerek yoktur. kaynak ana nesne, ancak ona erişiminiz bile var. Bu sayede programın değiştirilmesi ve mevcut program temel alınarak yeni programların oluşturulması basitleştirilmiştir. Kaynak kodu mevcut olmayan ancak değiştirilmesi gereken nesnelerin kullanılması yalnızca miras yoluyla mümkündür. Böylece, devralırken yalnızca yeni işlevsellik eklemekle kalmaz, aynı zamanda mevcut olanı da değiştirebilirsiniz. Ve birçok bakımdan polimorfizm sayesinde sağlanır.

    Polimorfizm ("birçok form") - farklı işlemleri belirtmek için aynı ifadeleri kullanma yeteneği, alt sınıfların ata sınıfı için açıklanan yöntemi farklı şekillerde uygulama yeteneği, yani. programın yürütülmesi sırasında farklı eylemler gerçekleştirme veya aynı adı kullanarak nesnelere erişme yeteneği farklı tip. Polimorfizm, alt sınıflarda yöntem geçersiz kılma yoluyla uygulanır (yöntem aynı ada ve aynı parametrelere sahiptir, ancak farklı çalışır) - bu, dinamik bağlama yoluyla sanal yöntemlerin bir mekanizmasıdır. Ayrıca, polimorfizm "aşırı yükleme" yöntemleri olarak uygulanır (bir yöntem aynı ada ve farklı parametrelere sahiptir) - bu, örneğin, gerçek veya tam sayı sınıfına ve dize sınıfına eklemeyi belirtmek için + işaretinin kullanılmasıdır : benzer mesajlar tamamen farklı sonuçlar verir. Polimorfizm, ortak özellikleri soyutlama yeteneği sağlar.

    Modülerlik, kendi içinde tutarlı ancak gevşek bir şekilde bağlanmış modüllere ayrıştırılmış bir sistemin bir özelliğidir.
    Bir sistemi modüllere bölme sürecinde iki kural yararlı olabilir. Birincisi, modüller bir programın sistem genelinde yeniden kullanılabilecek temel ve bölünemez birimleri olarak hizmet ettiğinden, sınıfların ve nesnelerin modüllere tahsisinde bu durumun dikkate alınması gerekir. İkincisi, birçok derleyici her modül için ayrı bir kod bölümü oluşturur. Bu nedenle modülün boyutunda kısıtlamalar olabilir. Alt program çağrılarının dinamikleri ve modüller içindeki açıklamaların düzenlenmesi, bağlantı yerini ve sayfa yönetimini büyük ölçüde etkileyebilir. sanal bellek. Prosedürler modüllere kötü bir şekilde bölünürse, bölümler arasındaki karşılıklı çağrılar daha sık hale gelir, bu da önbellek verimliliği kaybına ve sık sayfa değişikliklerine yol açar.

    Bu tür çelişkili gereksinimleri bir araya getirmek oldukça zordur ancak asıl önemli olan, projedeki sınıfların ve nesnelerin izolasyonunun ve modüler bir yapının organizasyonunun bağımsız eylemler olduğunu anlamaktır. Sınıfları ve nesneleri ayırma süreci, sistemin mantıksal tasarım sürecinin bir parçasıdır ve modüllere bölme, fiziksel tasarımın aşamasıdır. Elbette bazen bir sistemin fiziksel tasarımını tamamlamadan mantıksal tasarımını tamamlamak mümkün olmayabilir veya bunun tersi de geçerlidir. Bu iki işlem tekrarlanarak gerçekleştirilir.

    Yazma, bir sınıftan nesnelerin diğerinin yerine kullanılmasına karşı koruma sağlamanın veya en azından bunu kontrol etmenin bir yoludur.

    Eşzamanlılık, aktif nesneleri pasif olanlardan ayıran bir özelliktir.

    Kalıcılık - bir nesnenin zaman içinde var olma, onu doğuran süreçten sağ çıkma ve (veya) uzayda orijinal adres alanından hareket etme yeteneği.

    Programlamada OOP'un temel kavramları felsefe, mantık, matematik ve göstergebilim gibi diğer bilgi alanlarından ve en azından bu kavramların özü itibarıyla özel bir değişikliğe uğramadan taşınmıştır. Nesne ayrıştırma (temsil) yöntemi doğaldır ve yüzyıllardır kullanılmaktadır. Bu nedenle programlama teknolojisinin evrim sürecinde hak ettiği yeri alması şaşırtıcı değildir.

    Bu nedenle, nesne yönelimli programların geliştirilmesi sürecinde şunlar gereklidir:

    1. onu oluşturan nesne sınıfları kümesini belirleyecek (ayrıştırma);

    2. her nesne sınıfı için bir dizi gerekli veriyi (alanları) belirtin;

    3. her nesne sınıfı için, nesneler tarafından gerçekleştirilen bir dizi eylem (yöntem) belirtin;

    4. Her nesne sınıfı için nesnelerin yanıt vereceği olayları belirtin ve uygun işleyici prosedürlerini yazın.

    Orijinal program kodu tüm program nesneleri için sınıf açıklamaları içermelidir. Ayrıca değişkenlerin tür olarak belirtilen ilgili sınıfların adlarıyla birlikte bildirilmesi gerekir. Sınıf örnekleri (nesneler) programın yürütülmesi sırasında oluşturulur.

    Sınıfın bir örneğinin oluşturulduktan sonra tüm alanlarına ilişkin değerleri alması gerekir. Aynı sınıfın farklı örnekleri farklı alan değerlerine sahip olabilir ancak aynı yöntemlere sahip olabilir. Sınıf alanları atama dahil doğrudan erişime açık değildir. Bu, programların güvenilirliğini artırmak için yapılır. Bir nesne alanına doğrudan değer atamak yerine, bu atamayı gerçekleştiren ve girilen değerin doğruluğunu kontrol eden ilgili sınıfın özel bir yöntemine çağrı yapılmalıdır. Benzer şekilde bir alanın değerini okumak için özel sınıf yöntemleri de kullanılabilir. Alanları, değerlerini okuma/yazma yöntemleriyle ilişkilendirmek için özellikler adı verilen sınıf üyeleri kullanılır. Kullanıcı, nesnenin alanlarına yazmak için veri giren veya alanların değerlerini okuyan, bu alanları temsil eden özelliklerle ilgilenir. Bu nedenle genellikle "alan değerleri" yerine "özellik değerleri" terimi kullanılmaktadır.

    Sınıf üyeleri şunlar olabilir:

    1. verileri depolamak için kullanılan alanlar;

    2. Özel alanlara erişim aracı olarak mülkler;

    3. Nesnelerin işlevselliğini tanımlayan yöntemler;

    4. program kontrol araçları olarak olaylar ve bunların işleyicileri.

    Mir Computerov LLC'nin faaliyetlerini yönetme problemlerini çözme otomasyonu

    MUP "RPKHB" bilgi sisteminin kavramsal bir modelinin oluşturulması

    Rational Rose paketi hemen hemen her tasarım sorununu çözebilir bilgi sistemi: iş süreci analizinden belirli bir programlama dilinde kod oluşturmaya kadar. Hem üst düzey geliştirmenizi sağlar...

    UML modelleme dili kullanılarak "bir spor kulübünün süreçlerinin organizasyonu" konusunun nesne modelinin oluşturulması

    OOP teknolojisinde veri ve algoritma arasındaki ilişki daha düzenlidir: ilk olarak sınıf ( temel kavram Bu teknoloji) verileri (yapılandırılmış değişken) ve yöntemleri (işlevleri) birleştirir. İkincisi...

    Delphi matematiksel süreçlerinde programlama

    Motorlu taşımacılık şirketi "TransAvto"nun kargo taşımacılığı siparişlerinin muhasebeleştirilmesine yönelik bir sistem projesi

    Şirketteki ana iletişim kanalı, geleneksel (kağıt) yöntemle yapılan, iş hızını önemli ölçüde azaltan rapor, bülten şeklinde yazılı mesajlardır. İşin çoğu elle yapılıyor...

    BPwin kullanarak bilgi sistemleri tasarlama

    Bir kütüphanecinin işyerini otomatikleştirmek için bir bilgi sisteminin geliştirilmesi

    Üniversite dekanlığı için nesne yönelimli bilgi alt sistemi modelinin geliştirilmesi (öğrenci ilerlemesinin muhasebeleştirilmesi)

    Etkili öğrenci veri tabanı yönetimi otomasyon sistemi olmadan mümkün değildir. "Dekanlık ofisi" bilgi sistemi, öğrencilerin kişisel dosyalarını yönetmek için tasarlanmıştır ve ayrı olarak veya "Elektronik Vedomosti" IS'nin bir parçası olarak çalışabilir...

    Bir bilgi sisteminin nesne yönelimli modelinin geliştirilmesi eğitim kütüphanesi

    Modernin gelişimindeki eğilimler Bilişim Teknolojileri insan faaliyetinin çeşitli alanlarında oluşturulan bilgi sistemlerinin (IS) karmaşıklığında sürekli bir artışa yol açmak ...

    Bir OOMD'nin geliştirilmesi, modellemeye nesne yönelimli bir yaklaşım kullanarak bir veri modeli geliştirmektir...

    Kharkov Tekstil ve Tasarım Koleji için "Kütüphane fonunun muhasebeleştirilmesi" görevi için bir veritabanı şemasının geliştirilmesi

    Belirli bir sistemin uygulanması için bir DBMS seçerken, bugün mevcut olan teknolojilerin tüm özelliklerini dikkate almak gerekir. Yani OO ve ER modellerinin en gelişmiş olduğu düşünülebilir ...