Yüz bakımı: yağlı cilt

Programın fonksiyonel şeması. Programların yapısal tasarımı. Yaklaşık sistem fonksiyonları listesi

Programın fonksiyonel şeması.  Programların yapısal tasarımı.  Yaklaşık sistem fonksiyonları listesi

Konu 3. YAZILIM

Bilgisayarın yeterli kullanımı için ( bilgi işlem) ile çalışırken ihtiyacınız olan programların amacını ve özelliklerini bilmeniz gerekir. Bir dizi program ve beraberindeki belgeler ( Bu programların çalışmasında kullanılan), denir yazılım(ÜZERİNDE). Yazılım, herhangi bir bilgi işlem sisteminin ayrılmaz bir parçasıdır ve paylaşılır ( randevuyla) üç kategoriye ayrılır: sistem yazılımı(bilgisayarı kontrol etmek, diğer kullanıcı programlarının oluşturulması ve yürütülmesini desteklemek, kullanıcıya bir dizi çeşitli hizmet sağlamak için gerekli), programlama sistemleri veya alet sistemleri (bilgisayarlar için yeni programların oluşturulmasını sağlamak) ve uygulama yazılımı (Kullanıcının ihtiyaç duyduğu işin performansını doğrudan sağlamak).


Yazılım yapısı

Sistem yazılımı bilgisayar donanımlarının ve bilgisayar ağlarının çalışmasını kontrol eden bir dizi program içerir ( kural olarak, bu programlar belirli kullanıcı görevlerini çözmez, ancak çözümleri için koşullar yaratır.). Sistem yazılımı şu adrese gönderildi:

bir bilgisayarın ve bir bilgisayar ağının kararlı çalışmasını sağlamak;

uygulama programlarının normal çalışması için koşullar yaratmak;

yardımcı işlemleri gerçekleştirmek için;

bilgisayar donanımının ve bilgisayar ağının teşhisi için;

Tüm sistem programları seti iki büyük gruba ayrılabilir: temel yazılım ve hizmet sistemleri. Temel yazılım, bilgisayarın çalışmasını sağlayan minimum yazılım setidir.

Temel alt sınıf Yazılım şunları içerir:

· İşletim sistemleri (İŞLETİM SİSTEMİ) - uygulama programlarını yürütme, bilgisayar bilgi işlem kaynaklarını planlama ve yönetme sürecini kontrol eden bir dizi program ( İşletim sistemi, PC ekipmanının sağlığını izlemek gibi işlemlerin yürütülmesini üstlenir; önyükleme prosedürünü gerçekleştirmek; tüm PC cihazlarının çalışmasını yönetmek; dosya sistemi yönetimi; PC ile kullanıcı etkileşimi; uygulama programlarının yüklenmesi ve yürütülmesi; PC kaynaklarının dağıtımı - uygulama programları arasında RAM, işlemci süresi ve çevresel aygıtlar).

işletim kabukları - işletim sistemi komutlarıyla kullanıcı iletişimini kolaylaştırmak için tasarlanmış, son kullanıcı arayüzü için metin ve grafik seçeneklerine sahip özel programlar ( kabuk programları, bir bilgisayarla iletişim kurmak için uygun ve görsel bir yol sağlar, disklerdeki dizinlerin içeriğini görsel olarak görüntülemenize, dosyaları kolayca kopyalamanıza, yeniden adlandırmanıza, göndermenize ve silmenize vb.).



· ağ işletim sistemleri - verilerin ağ üzerinde işlenmesini, iletilmesini ve depolanmasını sağlayan bir dizi program.

Yakın zamana kadar, çoğu bilgisayarda bir işletim sistemi kuruluydu. MSDOS 1981 yılında Microsoft tarafından oluşturulan ( Microsoft'un orijinal gelişimi olmadığını unutmayın - Bill Gates'in şirketi yalnızca başka bir şirket tarafından oluşturulan QDOS adlı "OS" u sonlandırdı). Windows'un ortaya çıkmasından önce, MS DOS disk işletim sistemi en popüler ve yaygın olarak kullanılan sistemdi. Kendi ortamında tam bir yazılım nesli yaratılmıştır. MS DOS temelinde, bilgisayar teknolojisi geliştirme sürecinde Windows ortaya çıktı ( 1996'dan beri MS DOS, Windows 95 işletim ortamına dahil edilmiştir.). MS DOS ortamında geliştirilen işletim sisteminin ana bileşenleri klasiktir ve genel olarak yazılımın ve temel işletim sistemlerinin geliştirilmesinde yeni bir aşamada Windows'a organik olarak dahil edilir.

MS DOS, kompakt, mütevazı donanım gereksinimleri olan ve kullanıcılar ve programlar için minimum düzeyde işlev gerçekleştiren 16 bitlik tek görevli bir "komut satırı arabirimi" işletim sistemidir. DOS'un ana dezavantajları:

Ana zayıf noktası, sınırlı RAM ile çalışıyor ( MS-DOS'un yaratıldığı dönemde, çoğu bilgisayarın RAM'i 256 kilobaytı geçmedi. DOS, 640 kilobayt RAM ile çalışabilir ve Bill Gates, kimsenin daha fazlasına ihtiyaç duymayacağını savundu, ancak zaman geçtikçe, çalışmak için daha fazla RAM'e ihtiyaç duyan ve özel programlar kullanmak zorunda kalan programlar ortaya çıktı - bellek yöneticileri, ancak çözülmediler. sorun);

DOS'un ikinci dezavantajı, tam teşekküllü bir grafik modunda çalışmanın imkansızlığıydı ( zamanın bilgisayarları zaten bunun için destek sağlayabilir olsa da);

· MS-DOS'un üçüncü dezavantajı tek görevdi.

DOS ailesinin işletim sistemleri, basitliklerine ve uygun maliyetli olmalarına rağmen eskimiş ve yerini yeni nesil işletim sistemlerine bırakmıştır. Bu işletim sistemleri, ailenin işletim sistemlerini içerir. pencereler, ailenin işletim sistemleri Unix ve benzeri.

Servis sistemleri- bilgisayar bakımı için tasarlanmıştır ( temel alınan yazılımın yeteneklerini genişletmek). İşlevsel olarak hizmet yazılımı arasında şunları ayırt edebiliriz:

Disk bakım programları ( disk yüzeyinin kalitesinin doğrulanması, dosya güvenliği kontrolü, disk sıkıştırması, sigorta kopyalarının oluşturulması, harici ortamda veri yedeklemesi vb.);

antivirüs yazılımı ( bilgisayar koruması, virüslü dosyaların algılanması ve kurtarılması);

veri arşivleme programları ( depolamak için bellek miktarını azaltmak için dosyalardaki bilgileri sıkıştırma işlemini sağlamak);

ağ bakım programları.

bir bilgisayarın sağlığını teşhis etmek için programlar;

Yardımcı veri işleme işlemlerini veya bilgisayar bakımını gerçekleştirmek için kullanılan programlar ( tanılama, test etme, disk alanı kullanımının optimizasyonu, manyetik diskte yok edilen bilgilerin kurtarılması vb.) yardımcı programlar denir.

Programlama sistemleri veya araç sistemleri programlama teknolojisini destekleyen yazılım ürünleridir. Bu doğrultuda, aşağıdakileri içeren uygulamalar oluşturmak için araçlar vardır:

programların oluşturulmasında bireysel çalışmaların performansını sağlayan yerel araçlar;

· Program geliştirme konusunda birbiriyle ilişkili bir dizi çalışmanın uygulanmasını sağlayan program geliştiriciler için entegre ortamlar.

Yerel yazılım geliştirme araçları, programlama dilleri ve sistemleri ile kullanıcının araç ortamını içerir. Makine programlama dilleri vardır ( bilgisayar donanımı tarafından kabul edilen makine kodları), makine yönelimli diller ( belirli bir bilgisayar türünün yapısını yansıtan programlama dilleri - montajcılar), algoritmik ( evrensel) Fortran gibi bilgisayar mimarisinden bağımsız diller ( Fortran), Kobol ( COBOL), Algol ( Algol), Pascal ( paskal), TEMEL ( Temel), Si ( C), C++ ( C++) ve benzeri.; prosedürel diller ( programı bir dizi prosedür olarak tanımlamanın mümkün olduğu durumlarda - alt programlar), alana özgü diller ( belirli bir sınıfın problemlerini çözmek için tasarlanmış), entegre programlama sistemleri. Programlama dillerinin sınıflandırılmasının GOST'ler tarafından sabitlenmediğini unutmayın ( eğitim amaçlı olarak, genellikle çeşitli kriterlere göre sınıflandırılırlar.). Bir programlama dilinde hazırlanan bir program çeviri, hata ayıklama ve test aşamalarından geçer.

Entegre yazılım ortamlarının araç setinin temel amacı, programcıların üretkenliğini artırmak, grafiksel bir kullanıcı arayüzü sağlayan programların oluşturulmasını otomatikleştirmek vb.

Ek olarak, karmaşık bilgi sistemleri oluşturmak için araçlar vardır ( DAVA - teknoloji). Bilgi sistemlerinin tasarımı, içinde yer alan yüksek nitelikli uzmanlar gerektiren, emek yoğun ve zaman alıcı bir iştir. Yakın geçmişte tasarım, genellikle sanat unsurlarını, pratik deneyimi, uzman yargısını ve maliyetli deneysel performans testlerini içeren resmi olmayan yöntemlerle sezgisel bir düzeyde yapılırdı. 70'lerin başında. ABD'de bir programlama krizi vardı ( yazılım krizi). Bu, büyük projelerin zamanlamanın gerisinde veya maliyet tahminlerinin üzerinde gerçekleştirilmeye başlanması, geliştirilen ürünün gerekli işlevselliğe sahip olmaması, performansının düşük olması ve ortaya çıkan yazılımın kalitesinin tüketicilere uymaması gerçeğine yansıdı. Yazılım geliştirme sürecini kontrol etme, geliştirme maliyetini, sonuçların zamanlamasını ve kalitesini tahmin etme ve garanti etme ihtiyacı, zanaatkardan endüstriyel yazılım oluşturma yöntemlerine geçme ihtiyacına ve yazılım oluşturmak için bir dizi mühendislik yöntemi ve aracının ortaya çıkmasına neden oldu. , "yazılım mühendisliği" ortak adıyla birleştirilmiştir ( yazılım Mühendisliği). Yazılım mühendisliği, yazılım tasarımının öğrenilebilen ve geliştirilebilen resmi bir süreç olduğu fikrine dayanır. 80'lerin sonunda. programlama alanında çok sayıda araştırma yapılmıştır ( üst düzey dillerin geliştirilmesi ve uygulanması, yapılandırılmış ve modüler programlama yöntemleri, tasarım dilleri ve destek araçları, sistem gereksinimlerini ve özelliklerini tanımlamak için resmi ve gayri resmi diller vb.). VAKA terimi ( Bilgisayar Destekli Yazılım Mühendisliği) çok geniş bir anlama sahiptir. Başlangıçta, CASE teriminin anlamı yalnızca yazılımın geliştirilmesini otomatikleştirme sorunlarıyla sınırlıydı, ancak şimdi yeni bir anlam kazandı ve bir bütün olarak karmaşık bilgi sistemleri geliştirme sürecini kapsar. CASE teknolojisi, bilgi sistemleri tasarlamak için bir dizi yöntemin yanı sıra, bir konu alanını görsel olarak modellemenize, bu modeli geliştirme ve bakımın tüm aşamalarında analiz etmenize ve bilgi gereksinimlerine uygun uygulamalar geliştirmenize olanak tanıyan bir dizi araç. kullanıcılar. Mevcut CASE araçlarının çoğu, dış gereksinimleri, sistem modelleri arasındaki ilişkileri, sistem davranış dinamiklerini ve yazılım mimarilerini tanımlamak için diyagramlar veya metinler biçimindeki özellikleri kullanan yapısal veya nesne yönelimli analiz ve tasarım yöntemlerine dayanır.

Uygulama programları- uygulamalı kullanıcı görevlerini çözmek için tasarlanmıştır ( bilgisayarda kullanıcı için gerekli görevlerin yürütülmesini sağlar). koşullu ( amaçlarına göre) aşağıdaki alt sınıflara ayrılabilir:

kelime işlem programları;

· grafik düzenleyici;

fotoğraf ve video görüntülerini işlemek için programlar;

sunum hazırlama programları;

elektronik tablolar;

Veritabanı Yönetim Sistemleri;

· Ekonomik ve istatistiksel analiz programları;

Bilgisayar destekli tasarım sistemleri (CAD);

bilgi alma sistemleri;

ağ yazılımı ( e-posta programları, video konferansa erişim, İnternet tarayıcıları vb.);

oyun programları.

Uygulama yazılımı şunlardan oluşur: uygulama paketleri(PPP) ve kullanıcı uygulama programları.

Şu anda, uygulama yazılımında önemli bir yer, uygulama kapsamına göre bölünmüş olan uygulama yazılım paketleri tarafından işgal edilmektedir. etki alanına özel paketler (dar bir dizi sorunu çözmeyi amaçlayan), genel amaçlı paketler (tipik veri işleme görevlerini çözmek için tasarlanmıştır) ve entegre paketler (uygulamalarının kapsamı esas olarak ekonomik alandır; genellikle şunları içerirler: bir elektronik tablo, bir metin düzenleyici, bir veritabanı yönetim sistemi, bir grafik düzenleyici, iletişim araçları). Uygulama programları belirli bir bilgi işlem ortamının parçası olarak oluşturulur ( genellikle, uygulandıkları PPP veya OS anlaşması kapsamında duruma göre geliştirilirler.).

Bu yöntemde karmaşık bir sistemin birkaç alt sisteme bölünmesine " denir. böl ve yönet» (divide et impera), hiyerarşik veya işlevsel ayrıştırma, vb. Bu durumda temel ilkeler şunlardır:

a) "böl ve yönet";

b) Yukarıdan aşağıya tasarım - sorunun genel ifadesinden bireysel alt görevlere, vb.;

c) Sistemi oluşturan parçaların hiyerarşik ağaç yapılarında düzenlenmesini ve her seviyede yeni detayların eklenmesini içeren hiyerarşik sıralama ilkesi.

Karmaşık yazılım tasarlama süreci, yapısını netleştirmek, yani yapısal bileşenleri ve bunlar arasındaki ilişkileri belirlemekle başlar. Yapı iyileştirmenin sonucu, yapısal ve/veya işlevsel diyagramlar ve bileşenlerin tanımları (spesifikasyonları) şeklinde sunulabilir.

Geliştirilen yazılımın blok şeması

Yapısal Geliştirilmekte olan yazılımın parçalarını yönetmede kompozisyonu ve etkileşimi yansıtan bir şema çağırın. Tipik olarak, bu tür şemalar, büyük bir paketin her programı için geliştirilir ve programların listesi, referans şartlarında belirtilen işlevlerin analiz edilmesiyle belirlenir.

En basit yazılım türü, yapısal bileşenler olarak yalnızca alt rutinleri ve kaynak kitaplıklarını içerebilen bir programdır. Programın blok diyagramının geliştirilmesi genellikle adım adım detaylandırma yöntemiyle gerçekleştirilir.

Bir yazılım sisteminin veya kompleksinin yapısal bileşenleri programlar, alt sistemler, veri tabanları, kaynak kitaplıkları vb. olabilir.

Bu nedenle, yazılım paketinin şeması, Şekil 2'de gösterildiği gibi, sevkıyat programından ilgili programa kontrolün transferini gösterir. 4.1. Kompleksin programları, kural olarak, gevşek bir şekilde bağlantılıdır. Bu nedenle, ortak çalışmalarını organize etmek için bir sevk memuru kullanılır.

Pirinç. 4.1. Bir yazılım paketinin blok diyagramına bir örnek.

yapısal şema yazılım sistemi, kural olarak, alt sistemlerin veya diğer yapısal bileşenlerin varlığını gösterir. Bir yazılım sisteminin karmaşık, tek tek parçalarının (alt sistemlerin) aksine, birbirleriyle ve muhtemelen ana programla yoğun bir şekilde veri alışverişinde bulunur. Yazılım sisteminin blok şeması, kural olarak, Şekil 2'den görülebileceği gibi bunu göstermez. 4.2.


Genellikle, kontrol alt rutinleri arasındaki çok seviyeli hiyerarşik bir etkileşim şemasıdır. İlk aşamada, diyagram iki hiyerarşi seviyesini gösterir, yani programın genel yapısını gösterir. Ancak aynı yöntem, çok sayıda seviyeli blok diyagramların elde edilmesini mümkün kılar.


adım yöntemi yukarıdan aşağıya bir yaklaşım uygular ve yapılandırılmış programlamanın temel yapılarına dayanır. Şekil 4.3'te gösterildiği gibi, algoritmanın adım adım geliştirilmesini içerir. Bu durumda her adım, işlevin alt işlevlere ayrıştırılmasını içerir. Böylece ilk aşamada, ortak alt görevler vurgulanarak görevin çözümü açıklanır. Bir sonrakinde, bir sonraki seviyenin öğelerini formüle ederken, alt görevler de benzer şekilde tanımlanır. Böylece her adımda tasarlanan yazılımın işlevleri rafine edilir. Çözümleri belli olan algoritmalara, alt görevlere ulaşana kadar süreç devam eder.

Bu durumda, her şeyden önce, kontrol süreçlerinin detaylandırılması ve sonunda operasyonların iyileştirilmesini verilerle bırakmak gerekir. Bunun nedeni, kontrol süreçlerinin öncelikli detaylandırılmasının, hiyerarşinin tüm seviyelerindeki bileşenlerin yapısını büyük ölçüde basitleştirmesi ve karar verme sürecini uygulamadan ayırmamayı mümkün kılmasıdır. Bir alternatif seçme koşulunu belirledikten sonra, onu uygulayan modül hemen çağrılır.

Fonksiyonel diyagram veya veri şeması (GOST 19. 701-90) - yazılım bileşenlerinin bilgi akışlarının açıklaması, akışlardaki verilerin bileşimi ve kullanılan dosya ve cihazların bir göstergesi ile etkileşiminin bir diyagramı. Bu şemaları göstermek için standart tarafından belirlenen özel tanımlamalar kullanılır.

Fonksiyonel diyagramlar yapısal olanlardan daha bilgilendiricidir. Şek. 4.4, karşılaştırma için yazılım sistemleri ve sistemlerinin işlevsel diyagramlarıdır.



b)

Pirinç. 4.4. İşlevsel şema örnekleri: a - bir dizi program, b - bir yazılım sistemi.

Yapısal ve işlevsel diyagramların tüm bileşenleri tanımlanmalıdır. Yapılandırılmış bir yaklaşımla, en maliyetli hatalar bunlara bağlı olduğundan, interprogramming arayüz spesifikasyonlarının özellikle dikkatli bir şekilde üzerinde çalışılması gerekir.

Yapısal tasarım üç ana model (şema) kullanır:

1) SADT (Yapısal Analiz ve Tasarım Tekniği - yapısal analiz ve tasarım yöntemi) - modeller ve ilgili fonksiyonel diyagramlar;

2) DFD (Veri Akış Şemaları) - veri akış diyagramları;

3) ERD (Varlık-İlişki Diyagramları) - "varlık-ilişki" diyagramları.

Fonksiyonel SADT Modeli nesnenin işlevsel yapısını gösterir, yani. gerçekleştirdiği eylemler ve bu eylemler arasındaki bağlantılar.

Modelin ana bileşeni, diyagram . Üzerinde tüm fonksiyonlar ve arayüzler sırasıyla bloklar ve yaylar şeklinde sunulur. Arkın blok ile bağlantı noktası, arayüz tipini belirler. Kontrol Bilgileri bloğa dahil üstünde. giriş işlenmekte olan bilgiler ile gösterilir ayrıldı Blok tarafı ve sonuç(çıkış) - ile Sağ. mekanizma(insan veya otomatik sistem) işlemi gerçekleştiren blokta yer alan bir yay ile temsil edilir. aşağıdan(Şek. 4.5).

SADT modelinin inşası, tüm sistemin en basit bileşen biçiminde temsili ile başlar - bir blok ve sistem dışındaki fonksiyonlara sahip bir arabirimi gösteren yaylar. Daha sonra bu blok, arayüz yaylarıyla birbirine bağlanan birkaç blok kullanılarak başka bir diyagramda detaylandırılır. Yeni bloklar, orijinal işlevin ana alt işlevlerini tanımlar ve bunlar sırayla detaya inebilir ve bu böyle devam eder. (bkz. şekil 4.6).


Pirinç. 4.6

Veri akış şemaları(DFD), tasarlanan sistem için işlevsel gereksinimleri modellemenin ana yoludur. Onların yardımıyla, bu gereksinimler, veri akışlarıyla birbirine bağlanan işlevsel bileşenlerin (süreçlerin) hiyerarşileri şeklinde sunulur. Bu gösterimin temel amacı, her bir sürecin girdilerini nasıl çıktılara dönüştürdüğünü göstermek ve bu süreçler arasındaki ilişkileri ortaya koymaktır.

Veri akış diyagramlarının ana bileşenleri şunlardır:

a) dış kuruluşlar;

b) sistemler ve alt sistemler;

c) süreçler;

d) veri depolama cihazları;

e) veri akışı.

dış varlık maddi bir nesneyi veya bilgi kaynağı veya alıcısı olan bir kişiyi temsil eder. Şekil 4.7'de gösterildiği gibi yazıtlı üç boyutlu bir dikdörtgen olarak tasvir edilmiştir.

alt sistem(bkz. şekil 4.8) veya işlem(Şekil 4.9), kenarları yuvarlatılmış bir dikdörtgen ile temsil edilir. Üç alan içerir:

a) Sayılar;

c) Fiziksel uygulama.

Alt sistem ve süreç ad olarak farklıdır. Birincisi alt sistemin adını, ikincisi ise sürecin ne yaptığını tanımlayan fiili içerir.

Pirinç. 4.8. STI - Eyalet Vergi Müfettişliği

Veri depolama bilgi depolamak için soyut bir cihazdır. Şekilde gösterildiği gibi tasvir edilmiştir. 4.10. Tanımı D harfi ile başlar.

Veri akışı diyagramda, akış yönünü gösteren bir okla biten bir çizgi ile temsil edilir. Her veri akışının içeriğini yansıtan bir adı vardır.

Bir veri akış diyagramı örneği, Şekil 1'de gösterilmiştir. 4.11.

Şekil 2'de daha karmaşık bir veri akış şeması gösterilmektedir. 4.12.

ER diyagramları daha sonra tartışılacaktır.

Ders projesinde, fonksiyonel diyagrama ek olarak, en karmaşık fonksiyonlar için (örneğin, sıralama ve arama) algoritmaların sunulması gereklidir.

Bir PC'deki sorunları çözmek için tasarlanmış bir dizi programa yazılım denir. PC yazılımının bileşimine yazılım konfigürasyonu denir. Yazılım üç kategoriye ayrılabilir (Şekil 1):

Şekil 1. Yazılım sınıflandırması

    kullanılan bilgilerin kopyalarını oluşturma, bilgisayarla ilgili yardım bilgilerini yayınlama, bilgisayar cihazlarının çalışabilirliğini kontrol etme vb. gibi çeşitli yardımcı işlevleri yerine getiren sistem yazılımı (genel kullanım programları).

    bir bilgisayarda gerekli çalışmaları sağlayan uygulama yazılımı: metin belgelerini düzenleme, çizim veya resim oluşturma, bilgi dizilerini işleme vb.

    bir programlama dilinde bir bilgisayar için yeni programların geliştirilmesini sağlayan araç yazılımı (programlama sistemleri).

Sistem yazılımı işlemci, RAM, giriş-çıkış aygıtları, ağ ekipmanı gibi bilgisayar sistem bileşenlerinin etkin kontrolünü sağlayan, bir tarafında donanım, diğer tarafında ise “katmanlar arası arayüz” görevi gören bir dizi programdır. - kullanıcı uygulamaları. Uygulama yazılımından farklı olarak, sistem yazılımı belirli uygulama sorunlarını çözmez, yalnızca diğer programların çalışmasını sağlar, bir bilgisayar sisteminin donanım kaynaklarını yönetir, vb.

Bu genel kullanım programları, belirli bir PC uygulamasıyla ilgili değildir ve geleneksel işlevleri yerine getirir: görevleri zamanlama ve yönetme, G/Ç'yi yönetme, vb. Başka bir deyişle, sistem programları çeşitli yardımcı işlevleri yerine getirir, örneğin kullanılan bilgilerin kopyalarını oluşturma, bilgisayar hakkında yardım bilgilerini yayınlama, bilgisayar cihazlarının çalışabilirliğini kontrol etme vb. Sistem yazılımı şunları içerir:

    işletim sistemleri (bilgisayar açıldığında bu program RAM'e yüklenir)

    kabuk programları (bilgisayarla iletişim kurmak için Norton Commander gibi DOS komut satırını kullanmaktan daha kullanışlı ve görsel bir yol sağlar)

    işletim kabukları, grafik arayüzler, çoklu programlama vb. oluşturmak için kullanılan arayüz sistemleridir.

    Sürücüler (çevresel aygıtların bağlantı noktalarını kontrol etmek için tasarlanmış programlar genellikle bilgisayar başladığında RAM'e yüklenir)

    yardımcı programlar (kullanıcıya bir dizi ek hizmet sağlayan yardımcı veya hizmet programları)

Yardımcı programlar şunları içerir:

    dosya yöneticileri veya dosya yöneticileri

    dinamik veri sıkıştırma araçları (dinamik sıkıştırması nedeniyle diskteki bilgi miktarını artırmanıza izin verir)

    görüntüleyici ve oynatma araçları

    teşhis araçları; kontrol araçları, bilgisayar yapılandırmasını kontrol etmenize ve başta sabit sürücüler olmak üzere bilgisayar cihazlarının çalışabilirliğini kontrol etmenize olanak tanır.

    iletişim araçları (iletişim programları), bilgisayarlar arasında bilgi alışverişini organize etmek için tasarlanmıştır.

    bilgisayar güvenlik araçları (yedekleme, anti-virüs yazılımı).

Yardımcı programlar, dar bir dizi yardımcı görevi çözmek için tasarlanmış programlardır.

Bazen yardımcı programlar hizmet yazılımı olarak sınıflandırılır.

Yardımcı programlar aşağıdakiler için kullanılır:

    Sensör ve ekipman performansının göstergelerinin izlenmesi - işlemci, video adaptörünün sıcaklıklarının izlenmesi; S.M.A.R.T okumak sabit sürücüler;

    Ekipman parametrelerinin kontrolü - CD sürücüsünün maksimum dönüş hızının sınırlandırılması; fan hızını değiştirme.

    Göstergeler kontrolü - referans bütünlüğü kontrolü; verilerin doğru şekilde kaydedilmesi.

    Geliştirmeler - veri koruma ile diski biçimlendirme ve / veya yeniden bölümleme, kurtarma olasılığı olmadan silme.

Yardımcı program türleri:

Disk Yardımcı Programları

      Birleştiriciler

      Diski kontrol etme - disk alanının verimli kullanımı için diskin yanlış kaydedilmiş veya çeşitli şekillerde hasar görmüş dosya ve bölümlerinin aranması ve ardından silinmesi.

      Disk Temizleme - geçici dosyaları, gereksiz dosyaları silin, "geri dönüşüm kutusunu" boşaltın.

      Disk bölümleme - bir diski, farklı dosya sistemlerine sahip olabilen ve işletim sistemi tarafından birkaç farklı disk olarak algılanan mantıksal disklere bölme.

      Yedekleme - tüm disklerin ve bireysel dosyaların yedek kopyalarını oluşturma ve bu kopyalardan geri yükleme.

      Disk sıkıştırma - sabit disklerin kapasitesini artırmak için disklerdeki bilgileri sıkıştırır.

      • Kayıt defteri yardımcı programları

        Donanım İzleme Yardımcı Programları

        Ekipman Testleri

Şekil 2. Bilgisayarın çok düzeyli yapısında açık kaynaklı yazılımların yeri

Bazı yardımcı programların işletim sisteminin bir parçası olduğu, diğer kısmın ise özerk olarak çalıştığı belirtilmelidir. Genel (sistem) yazılımının çoğu, işletim sisteminin bir parçasıdır (Şekil 2). Genel yazılımın bir kısmı bilgisayarın kendisinde bulunur (işletim sistemi programlarının ve kontrol testlerinin bir kısmı sistem kartında kurulu ROM veya PROM'a kaydedilir). Paylaşılan yazılımlardan bazıları bağımsız yazılımdır ve ayrı olarak mevcuttur.

          Uygulama yazılımı. Uygulama programları tek başına veya yazılım sistemlerinin veya paketlerinin bir parçası olarak kullanılabilir. Uygulama yazılımı - bir bilgisayarda gerekli çalışmanın doğrudan yapılmasını sağlayan programlar: metin belgelerini düzenleme, çizimler veya resimler oluşturma, elektronik tablolar oluşturma vb. Uygulama yazılım paketleri, kapsamlarına göre problemlere ayrılan bir program sistemidir. odaklı, genel paket varış noktaları ve entegre paketler. Modern entegre paketler, beş adede kadar işlevsel bileşen içerir: bir test ve elektronik tablo işlemcisi, bir DBMS, bir grafik düzenleyici ve telekomünikasyon araçları. Uygulama yazılımı, örneğin şunları içerir:

    MS OFİS süiti

    muhasebe sistemleri

    Finansal analitik sistemler

    Entegre ofis iş paketleri

    CAD - sistemler (bilgisayar destekli tasarım sistemleri)

    HTML veya Web editörleri

    Tarayıcılar - Web görüntüleyiciler

    Grafik düzenleyici

    Uzman sistemler.

          Araç yazılımı. Araç yazılımı veya programlama sistemleri, bir programlama dilinde yeni programların geliştirilmesini otomatikleştiren sistemlerdir. En genel durumda, seçilen programlama dilinde (sistem programlama dili) bir program oluşturmak için aşağıdaki bileşenlere sahip olmanız gerekir: 1. Programın kaynak koduyla bir dosya oluşturmak için metin düzenleyici. 2. Derleyici veya yorumlayıcı. Kaynak metin, bir derleyici programı kullanılarak bir ara nesne koduna çevrilir. Büyük bir programın kaynak kodu birkaç parçadan oluşur. modüller(kaynak dosyaları). Her modül, daha sonra tek bir bütün halinde birleştirilmesi gereken nesne koduyla ayrı bir dosyada derlenir.3. Nesne modüllerini birbirine bağlayan ve çalıştırılabilir bir uygulama - yürütülebilir kod üreten bir bağlayıcı veya birleştirici. Yürütülebilir kod, programın oluşturulduğu işletim sistemine sahip herhangi bir bilgisayarda çalıştırılabilen eksiksiz bir programdır. Kural olarak, ortaya çıkan dosya .EXE veya .COM.4 uzantısına sahiptir. Son zamanlarda, Windows uygulamaları oluşturmaya odaklanan görsel programlama yöntemleri (script dillerini kullanarak) yaygınlaştı. Bu süreç, hızlı tasarım ortamlarında otomatikleştirilir. Bu durumda, özel editörler kullanılarak yapılandırılan hazır görsel bileşenler kullanılır. Görsel tasarım için en popüler editörler (görsel araçları kullanan programlama sistemleri):

    Borland Delphi - hemen hemen tüm uygulama programlama problemlerini çözmek için tasarlanmıştır

    Borland C++ Builder, DOS ve Windows uygulamaları geliştirmek için mükemmel bir araçtır

    Microsoft Visual Basic, Windows programları oluşturmak için popüler bir araçtır.

    Microsoft Visual C++ - bu araç, Microsoft Windows gibi bir işletim sistemi ortamında çalışan tüm uygulamaları geliştirmenize olanak tanır

Test soruları:

    Bir işletim sistemi tanımlayın.

    Hangi yazılımlar sistem yazılımı olarak sınıflandırılır?

    Yardımcı yazılımı adlandırın.

    Hangi yazılım uygulanır?

    Yazılımın amacı nedir?

    Programların ana sınıfları nelerdir? Her sınıftaki programlara amaca göre örnekler verin.

Yazılım tasarımı, yapısını tanımlamakla başlar.

5. 1. Yapısal ve işlevsel şemaların geliştirilmesi.

Karmaşık yazılım tasarlama süreci, yapısını netleştirmek, yani yapısal bileşenleri ve bunlar arasındaki ilişkileri belirlemekle başlar. Yapı iyileştirmenin sonucu, yapısal ve/veya işlevsel diyagramlar ve bileşenlerin tanımları (spesifikasyonları) şeklinde sunulabilir.

Geliştirilen yazılımın blok şeması

Yapısal diyagram, geliştirilmekte olan yazılımın bölümlerinin yönetimindeki bileşimi ve etkileşimi yansıtan bir diyagramdır.

Blok diyagramları yazılım paketleri bilgilendirici değildir, çünkü programların paketler halinde düzenlenmesi, aralarında kontrolün transferini sağlamaz. Bu nedenle her bir paket program için blok diyagramlar geliştirilmekte ve referanslarda belirtilen fonksiyonlar analiz edilerek paket programların listesi belirlenmektedir.

En basit yazılım türü, yapısal bileşenler olarak yalnızca alt rutinleri ve kaynak kitaplıklarını içerebilen bir programdır.

Programın blok diyagramının geliştirilmesi genellikle adım adım detaylandırma yöntemiyle gerçekleştirilir.

Bir yazılım sisteminin veya yazılım paketinin yapısal bileşenleri programlar, alt sistemler, veri tabanları, kaynak kitaplıkları vb. olabilir.

yapısal şema yazılım paketi kumanda programından ilgili programa kontrolün transferini gösterir (Şekil 1.1).

Pirinç. 5.1. Bir yazılım paketinin blok diyagramına bir örnek.

yapısal şema yazılım sistemi, kural olarak, alt sistemlerin veya diğer yapısal bileşenlerin varlığını gösterir. Bir yazılım paketinden farklı olarak, bir yazılım sisteminin ayrı parçaları (alt sistemler) birbirleriyle ve muhtemelen ana programla yoğun bir şekilde veri alışverişinde bulunur. Bir yazılım sisteminin blok diyagramı genellikle bunu göstermez (Şekil 1.2).


Pirinç. 5.2. Bir yazılım sisteminin blok diyagramına bir örnek.

Tasarlanan yazılımın bileşenlerinin birbirleriyle ve dış ortamla etkileşimi açısından daha eksiksiz bir resmi, işlevsel bir diyagram ile verilmektedir.

Fonksiyonel diyagram

Fonksiyonel diyagram veya veri diyagramı (GOST 19. 701-90) - yazılım bileşenlerinin bilgi akışlarının açıklaması, akışlardaki verilerin bileşimi ve kullanılan dosya ve cihazların bir göstergesi ile etkileşiminin bir diyagramı. Fonksiyonel şemaları göstermek için standart tarafından belirlenen özel tanımlamalar kullanılır.

Fonksiyonel diyagramlar yapısal olanlardan daha bilgilendiricidir. Şek. 1.3 karşılaştırma için yazılım sistemleri ve sistemlerinin işlevsel diyagramlarıdır.



Pirinç. 5.3. İşlevsel şema örnekleri: a - bir dizi program, b - bir yazılım sistemi.

Yapısal ve işlevsel diyagramların tüm bileşenleri tanımlanmalıdır. Yapısal bir yaklaşımla, en pahalı hataların sayısı tanımlarının kalitesine bağlı olduğundan, programlar arası arayüzlerin özelliklerini özel bir dikkatle çalışmak özellikle gereklidir. En pahalısı, karmaşık testler sırasında bulunan hatalardır, çünkü bunların ortadan kaldırılması, halihazırda hata ayıklanmış metinlerde ciddi değişiklikler gerektirebilir.

5.2. Yazılım yapısını tasarlamak için adım adım yöntemi kullanmak.

20. yüzyılın 70'lerinde formüle edildiği biçimde programlamaya yapısal yaklaşım, programların ayrıştırılmasını adım adım detaylandırma yöntemiyle gerçekleştirmeyi önerdi. Ayrıştırmanın sonucu, kontrol alt rutinleri arasındaki çok seviyeli hiyerarşik bir etkileşim şeması olan programın bir blok diyagramıdır. En azından, böyle bir şema iki hiyerarşi düzeyi gösterir, yani programın genel yapısını gösterir. Ancak aynı yöntem, çok sayıda seviyeli blok diyagramların elde edilmesini mümkün kılar.

Adım adım yöntem, yukarıdan aşağıya bir yaklaşım uygular ve yapılandırılmış programlamanın temel yapılarına dayanır. Algoritmanın adım adım geliştirilmesini içerir. Bu durumda her adım, işlevin alt işlevlere ayrıştırılmasını içerir. Böylece, ilk aşamada, görevin çözümü, ortak alt görevler vurgulanarak açıklanır, bir sonraki aşamada, bir sonraki seviyenin alt görevleri formüle edilirken, alt görevlerin çözümü benzer şekilde tanımlanır. Böylece her adımda tasarlanan yazılımın işlevleri rafine edilir. Çözümleri belli olan algoritmalara, alt görevlere ulaşana kadar süreç devam eder.

Adım adım detaylandırma yöntemini kullanarak bir programı ayrıştırırken, dikey kontrol ilkesinden kaynaklanan temel yapısal ayrıştırma kuralına uyulmalıdır: her şeyden önce, ayrıştırılmış bileşenin kontrol süreçlerini detaylandırın, veri işlemlerinin iyileştirilmesini bırakın. Sonunda. Bunun nedeni, kontrol süreçlerinin öncelikli detaylandırılmasının, hiyerarşinin tüm seviyelerindeki bileşenlerin yapısını önemli ölçüde basitleştirmesi ve karar verme sürecini uygulamadan ayırmamayı mümkün kılmasıdır: böylece seçim koşulunu belirlemiş olmak. bir alternatif, onu uygulayan modül hemen çağrılır.

Son çare olarak yapılarla detaylandırma işlemleri, bu verilere bağlı modüllerin sayısını azaltarak, spesifikasyonlarının belirlenmesini ertelemeyi ve bu yapıların nispeten ağrısız modifikasyonu imkanını sağlayacaktır.

Ayrıca, aşağıdaki önerilere uyulması tavsiye edilir:

Başlatma ve sonlandırma modülleri zayıf uyum (geçici) ve güçlü bağlantıya (kontrol tarafından) sahip olduğundan, başlatma ve sonlandırma işlemlerini karşılık gelen işlemlerden ayırmayın;

Çok özel veya çok genel modüller tasarlamayın, çünkü çok özel modüller tasarlamak onların sayısını artırır ve çok genel modüller tasarlamak karmaşıklıklarını artırır;

Eylemlerin farklı modüllerde tekrarlanmasından kaçının, çünkü bunlar değiştiklerinde, yürütüldükleri tüm program parçalarında düzeltmeler yapılması gerekecektir - bu durumda, bu Eylemlerin ayrı bir modülde uygulanması tavsiye edilir;

Hata mesajlarını kaynak kitaplığı türüne göre tek bir modülde gruplayın, o zaman ifadeler üzerinde anlaşmak, mesajların tekrarını önlemek ve ayrıca mesajları başka bir dile çevirmek daha kolay olacaktır.

Aynı zamanda, her sorunun çözümünü tanımlarken, organize hesaplama sürecinin yapısını daha net bir şekilde hayal etmenizi sağlayan while döngüsü veya dallanma gibi 1-2'den fazla yapısal kontrol yapısının kullanılması arzu edilir. .

Bu tür tasarımda modüllere ayırma, önerilen modül boyutlarına (20-60 satır) ve yapının karmaşıklığına (iki veya üç iç içe kontrol yapısı) dayalı olarak buluşsal olarak gerçekleştirilir. Prensipte bir modül (alt program) olarak, detaylandırma sürecinin herhangi bir adımında formüle edilen alt görevlerin çözümünü uygulamak mümkündür, ancak modüllerin üretilebilirliğini sağlama ilkeleri, programın modüllere bölünmesinde belirleyici bir rol oynamaktadır.

Ortaya çıkan modül hiyerarşisinin üretilebilirliğini analiz etmek için Constantine veya Jackson yapısal haritalarının kullanılması tavsiye edilir.

5. 3. Konstantin'in yapısal haritaları.

Yapısal haritada, modüller arasındaki ilişkiler, köşeleri modüllere ve ortak veri alanlarına ve yaylara - modüller arası çağrılara ve ortak veri alanlarına çağrılara karşılık gelen bir grafik olarak temsil edilir.

Dört tür köşe vardır (Şekil 1.4.):

Modül - alt program,

Alt sistem - program,

Kitaplık - ayrı bir modülde bulunan bir dizi alt program,

Veri alanı - dışarıdan erişilebilen özel olarak tasarlanmış bir veri seti.

a). b). içinde). G).

Pirinç. 5.4. IBM, ISO ve ANSI standartlarına göre tepe noktalarının belirlenmesi:

a – modül; b - alt sistem; c - kitaplık; d – veri alanı.

Bu durumda, yazılım sisteminin tek tek parçaları (programlar, alt programlar) sıralı, paralel veya eşyordamlar olarak çağrılabilir (Şekil 1.5.).


Pirinç. 5.5. Çağrı tipi tanımı:

a – sıralı arama; b - paralel çağrı; c bir eşyordam çağrısıdır.

En sık kullanılan tutarlı Modüllerin kontrolü geçtikten sonra, kesintiye uğrayan işleme devam etmek için çağrılan programın veya alt programın yürütülmesinin tamamlanmasını beklediği bir çağrı.

Altında paralelçağrı, başka bir işlem etkinleştirildiğinde, bu işlem çalışmaya devam ettiğinde, birkaç bilgisayardaki hesaplamaların paralelleştirilmesi olarak anlaşılır. . Çoklu programlama ortamlarındaki tek işlemcili bilgisayarlarda, bu durumda ilgili programların alternatif yürütülmesi başlar. Paralel süreçler ya senkrondur ya da asenkrondur. Senkronizasyon noktaları, senkronize süreçler için belirlenir - süreçler arasında bilgi alışverişinin yapıldığı anlardır. Eşzamansız işlemler, yalnızca paralel işlemin etkinleştirildiği anda bilgi alışverişinde bulunur.

Altında eşyordam çağrısı aynı anda çalışan iki programın sıralı yürütülmesi olasılığını anlayın, örneğin, bir program çıktı için bir veri paketi hazırladıysa, ikincisi bunu çıkarabilir ve ardından bir sonraki partiyi bekleme durumuna geçebilir. Ayrıca, çok programlı sistemlerde, verileri aktaran ana program çalışmaya devam eder ve bekleme durumuna girmez.

Yapısal Konstantin haritaları, bir programı modüllere ayırmanın sonucunu görselleştirmenize ve kalitesini, yani yapılandırılmış programlama (bağlantı ve bağlantı) önerilerine uygunluğu değerlendirmenize olanak tanır.

5.4. Veri yapılarının tasarlanması.

Veri yapılarının tasarımı, temsillerinin bellekte geliştirilmesi olarak anlaşılır. Veri yapılarını tasarlarken dikkate alınması gereken ana parametreler şunlardır:

Her veri öğesi için saklanan bilgi türü;

Veri öğeleri ve iç içe yapılar arasındaki ilişkiler;

Veri depolama süresini yapılandırın (“ömür boyu”);

Genel olarak veri öğeleri, iç içe yapılar ve yapılar üzerinde bir dizi işlem

Depolanan bilgi türü karşılık gelen bellek alanının türünü belirler. Kullanılan programlama diline bağlı olarak, aşağıdakiler veri öğeleri olarak kabul edilebilir:

Çeşitli formatlarda tamsayı ve gerçek sayılar;

Semboller;

Boole değerleri: true ve false;

bazı yapısal veri türlerinin yanı sıra, örneğin:

Özel olarak ilan edilen sınıflar.

Aynı zamanda, sayısal alanlar için olası değerlerin aralığını ve dize verileri için - dizenin mümkün olan maksimum uzunluğunu doğru bir şekilde belirlemek çok önemlidir.

Öğeler ve iç içe yapılar arasındaki ilişkiler ve bunların kararlılığı ve öğeler ve iç içe yapılar üzerindeki işlemler kümesi, verileri temsil etmek için kullanılan bellek yapılarını belirler. Verileri statik veya dinamik belleğe ve ayrıca harici belleğe yerleştirirken kullanım ömrü dikkate alınır.

Verilerin dahili temsili için mevcut seçenekleri, öğelerini ve aralarındaki ilişkileri daha ayrıntılı olarak düşünün.

Verilerin RAM'de temsili

RAM'de verileri düzenlemek için iki temel yapı vardır: vektör ve liste.

vektör çerçeve veri alanlarını yerleştirmek için kullanılan bir bayt bellek dizisidir (Şekil 1.6.).

Pirinç. 5.6. Vektör bellek yapısı.

Organize veri yapılarının sıralı yerleşimi, öğelere doğrudan erişime izin verir: dizine (endeks kümesi) göre - dizilerde veya dizelerde veya alan adına göre - kayıtlarda veya nesnelerde.

Bununla birlikte, dizi öğelerini yerleştirmek için vektör yapılarını kullanırken öğelerin eklenmesi ve çıkarılması, birden çok öğe kaydırma gerektirebilir.

Vektör gösterimindeki veri yapıları hem statik hem de dinamik belleğe yerleştirilebilir. Vektör temsillerinin dinamik bellekteki konumu, bazen RAM kullanımının verimliliğini önemli ölçüde artırabilir. Ara sonuçları depolayan geçici yapıların ve boyutları büyük ölçüde girdi verilerine bağlı olan yapıların dinamik belleğe yerleştirilmesi arzu edilir.

Liste Yapıları bilgi bölümüne ek olarak, bir veya daha fazla işaretçi de dahil olmak üzere özel öğelerden oluşturulur - bu öğeyle ilişkili öğelerin veya iç içe yapıların adresleri. Bu tür öğeleri dinamik belleğe yerleştirerek çeşitli iç yapıları düzenleyebilirsiniz (Şekil 1.7.).


Pirinç. 5.7. Liste bellek yapılarına örnekler:

a - doğrusal tekil bağlantılı liste; b - ağaç benzeri liste; c n bağlantılı bir listedir.

Ancak liste yapılarını kullanırken şunu unutmayın:

İşaretçileri depolamak için ek bellek gerekir;

Doğrusal listelerde bilgi araması yapılır art arda, ve bu nedenle daha fazla zaman gerektirir;

Listeler oluşturmak ve listelerde saklanan veri öğeleri üzerinde işlem yapmak, daha yetenekli programcılar gerektirir, daha fazla zaman alır ve ilgili alt rutinler daha fazla hata içerir ve bu nedenle daha kapsamlı testler gerektirir.

Tipik olarak, bir vektör temsili, matrisler, satırlar, kayıtlar gibi statik kümeleri, tabloları (tek boyutlu ve çok boyutlu) ve ayrıca bir bitişiklik matrisi, bir olay matrisi veya analitik olarak temsil edilen grafikleri depolamak için kullanılır. Liste görünümü, dinamik (değişen) yapıları ve karmaşık ilişkilere sahip yapıları depolamak için kullanışlıdır.

En kritik durumlarda, bir iç temsil seçerken, çeşitli seçenekler için bir veri yapısı veya öğeleriyle en yaygın işlemleri gerçekleştirmenin hesaplama karmaşıklığını belirlemeniz önerilir. Ayrıca kapasitif karmaşıklıklarını da değerlendirin.

Verilerin harici bellekte temsili

Modern işletim sistemleri, verileri harici bellekte düzenlemenin iki yolunu destekler: sıralı ve doğrudan erişim.

Verilere sıralı erişimle, veri öğelerinin yalnızca sıralı okunması veya sıralı yazılması mümkündür. Bu seçenek, klavye veya ekran gibi mantıksal aygıtlarla çalışırken, metin dosyaları veya işlem sırasında kayıt biçimi değişen dosyalar işlenirken varsayılır.

Doğrudan erişim, yalnızca sabit uzunluklu kayıtlarla (ikili C dosyaları veya yazılan Pascal dosyaları) değiş tokuş edilen disk dosyaları için mümkündür. Böyle bir dosyanın yazma adresi, dosyadan belirlenebilir. sayı, bu da istediğiniz kayda doğrudan erişmenizi sağlar.

Veri yapılarını bulmak için bir bellek türü seçerken şunları unutmayın:

RAM'e, hem okumak hem de değiştirmek için hızlı erişim gerektiren veriler yerleştirilir;

Dışta - program sona erdikten sonra kaydedilmesi gereken veriler.

Çalışma sırasında, erişimi hızlandırmak için verilerin RAM'de saklanması ve tamamlandığında, uzun süreli depolama için harici belleğe yeniden yazılması tavsiye edilebilir. Çoğu metin düzenleyicinin kullandığı yöntem budur: metinle çalışırken, tümü veya bir kısmı RAM'e yerleştirilir ve gerektiğinde buradan harici belleğe yeniden yazılır. Bu gibi durumlarda, iki veri temsili geliştirilir: operasyonel ve harici bellekte.

Doğru yapı seçimi, geliştirilen yazılımın etkinliğini ve teknolojik niteliklerini büyük ölçüde belirler, bu nedenle kullanılan yaklaşımdan bağımsız olarak bu konuya yeterince dikkat edilmelidir.

5.5. Veri ayrıştırmasına dayalı yazılım tasarımı.

Neredeyse aynı anda, veri ayrıştırmasına dayalı Jackson ve Warnier-Orr yazılım tasarım teknikleri önerildi. Her iki teknik de karmaşık ancak hiyerarşik olarak organize edilmiş veri yapılarıyla çalışan "basit" programlar oluşturmak için tasarlanmıştır. Her iki durumda da yazılım sistemleri geliştirmek gerekiyorsa, öncelikle sistemin ayrı programlara bölünmesi ve ardından bu tekniklerin kullanılması önerilmektedir.

Jackson Yöntemi

M. Jackson, metodolojisini oluştururken, ilk veri ve sonuçların yapılarının programın yapısını belirlediği gerçeğinden hareket etti.

Teknik, ilk verilerin yapıları ile sonuçlar arasındaki yazışmaların aranmasına dayanmaktadır. Ancak uygulandığında, bazı seviyelerde yazışmaların olmadığı durumlar mümkündür. Örneğin, kaynak dosyadaki kayıtlar, raporda karşılık gelen satırların görünmesi gereken sırada sıralanmaz. Bu tür durumlar "çarpışma" olarak adlandırılmıştır. Farklı şekillerde çözülen çeşitli çarpışma türleri vardır. Farklı bir kayıt dizisiyle, işlenmeden önce basitçe sıralanırlar.

Program yapılarının metodolojiye uygun olarak geliştirilmesi şu şekilde gerçekleştirilir:

Giriş ve çıkış veri yapılarının bir görüntüsünü oluşturun;

Bu veriler arasındaki işleme bağlantılarının (yazışmaların) tanımlanmasını gerçekleştirin;

veri yapılarına ve tespit edilen eşleşmelere dayalı bir program yapısının oluşturulması;

eşleşme bulunmayan öğeleri işlemek için bloklar ekleyin;

Tutarsızlıkları analiz edin ve işleyin, yani "çarpışmaları" çözün;

Gerekli işlemleri ekleyin (giriş, çıkış, dosyaları açma/kapama vb.); programı yapısal gösterimde (sözde kod) yazın.

Warnier-Orr tekniği.

Warnier-Orr tekniği, Jackson tekniği ile aynı konuma dayanmaktadır, ancak bir diyagram oluşturulurken çıktı veri yapıları ana yapılar olarak kabul edilir ve eğer girdi veri yapıları çıktı yapılarına karşılık gelmiyorsa, bunlar değiştirilebilir. Böylece, çarpışmaların ana nedeni ortadan kaldırılmıştır.

Ancak uygulamada girdi veri yapılarını yeniden düzenlemek her zaman mümkün değildir: örneğin programların yürütülmesi sırasında elde edilen veriler kullanılıyorsa bu yapılar zaten kesin olarak belirtilebilir, bu nedenle bu teknik daha az kullanılır.

Yukarıdakilerden de anlaşılacağı gibi, Jackson ve Warnier-Orr yöntemleri, yalnızca geliştirilen programların verileri bir hiyerarşi veya bir dizi hiyerarşi şeklinde temsil edilebiliyorsa kullanılabilir.

5.6. Yapısal analiz ve tasarım metodolojilerine dayalı vaka teknolojileri.

Şimdiye kadar, ilgili CASE araçlarında iyi bilinen yapısal analiz ve tasarım metodolojilerinin çoğunun başarılı bir şekilde kullanılması konusunda deneyim kazanılmıştır. En yaygın kullanılan metodolojiler şunlardır: SADT (%3,3), Gein-Sarson Yapısal Sistemler Analizi (%20,2), Jordan-De Yapısal Analiz ve Tasarım (%36,5), Jackson Sistem Geliştirme (%7,7), yapısal DSSD geliştirme (Veri Yapılandırılmış Sistem Geliştirme) Warnier-Orr (%5,8), gerçek zamanlı sistem tasarımı analizi Ward-Mellore ve Hutley, bilgi modelleme Martin (%22,1).

Yukarıdaki istatistiklerden görülebileceği gibi, veri akış diyagramlarını kullanan yapısal metodolojiler en büyük kullanımı bulmuştur. Bu iki nedenden kaynaklanmaktadır:

Veri akış diyagramları, işlevsel diyagramlardan daha ayrıntılı olarak, şu anda çok sayıda veri akışının özelliklerini yansıtmaktadır. bilgi sistemler: işlenmiş bilgilerin katı bir şekilde yazılmasını gerektirmezler, veri depolama imkanı sağlarlar, dış dünya ile etkileşimi belirlerler, karmaşık bir yazılım modeli elde etmeyi sağlarlar, vb.;

Veri akış diyagramlarına dayalı tasarım spesifikasyonlarının (Jackson veya Constantine yapısal haritaları) oluşturulması için, bu tür spesifikasyonların otomatik olarak oluşturulmasını mümkün kılan bir yöntem geliştirilmiştir.

Verileri girdikten sonra, kullanıcıya sertifika formunu ve istemcinin bir kopyasını yazdırma fırsatı vermek gerekir. bu işlem hatasız yapılmalıdır. Baskı iki tür yazıcıda yapılabilir: darbeli (matris) ve mürekkep püskürtmeli. Kağıt kalitesi gereksinimlerinin artması nedeniyle lazer yazıcılarda yazdırma yardımı mümkün değildir. Nokta vuruşlu yazıcıda yardım yazdırırken, karbon kağıdı kullanarak tek geçişte iki kopya (yardım + kopya) yazdırabilirsiniz. Bir mürekkep püskürtmeli yazıcı her kopyayı ayrı ayrı yazdırmalıdır. Bu nedenle, kopya sayısı için kullanıcı tarafından değiştirilebilen bir sayaç veya yazıcı tipi için özel bir ayar işlevi sağlamak gereklidir.

Şekil.2 Etkileşim şeması ve veri bağlantıları

Programın işlevsel bir şemasının geliştirilmesi.

Programın işlevsel bileşimi, EP'nin kasiyerinin veri girişi, işlemlerin kaydı ve raporlama belgelerinin yürütülmesi ile ilgili resmi görevlerini yerine getirmesi için gerekli yetenekleri azami ölçüde sağlamalıdır. Bunu yapmak için, sistemimizde uygulanması gereken işlevlerin yaklaşık bir listesini derleyeceğiz.

Yaklaşık sistem fonksiyonları listesi.

1) Bir takas işleminin kaydı

Para biriminin satın alınmasıyla ilgili verilerin girilmesi

Döviz satışına ilişkin verilerin girilmesi

Para birimi dönüştürme hakkında veri girme

・Müşteri referansını yazdır

2) Belgeleri görüntüle

· Günün belgelerinin listesini görüntüleyin

Arşivlenmiş belgelerin bir listesini görüntüleyin

3) Dizinlerin bakımı

· Değer kodlarıyla veri girişi

· Belge türlerine göre veri girişi

Para birimi kodlarına göre veri girme

Tarihe göre döviz kurlarını girme

4) Raporlama belgelerinin oluşturulması

· Nakit ruble için satın alınan nakit döviz kaydının yazdırılması;

· Nakit ruble için satılan nakit döviz kaydının basılması;

· Nakit döviz bozdurma (dönüştürme) kaydının yazdırılması;

5) Diğer fonksiyonlar

Dizinden giriş alanına veri girme

Sayıyı dijitalden küçük harfe dönüştürme (kelime cinsinden tutar)

· İmlecin görünümünü değiştirme

Verileri arşiv dosyalarına kaydetme

Yukarıdaki liste, OP'nin iş akışı bölümünde açıklanan tüm prosedürleri kapsar ve veri girişi ve düzeltme işlemi sırasında ihtiyaç duyulacak bazı işlevlerle desteklenir.

Programın blok diyagramının geliştirilmesi.

Yazılım paketinin blok diyagramı, genel olarak hem tasarlanan sistemin görünümünü hem de kullanıcı ile etkileşim ilkelerini belirler. Tasarlanan sistemin şeması, veri girişi, işlenmesi ve çıktısı için prosedürleri tanımlayan hiyerarşik bir ağaç yapısı olacaktır. Bilgi ve referans sınıfı programlarının bu prensibe göre yapılandırılması, sistemin bir bütün olarak değiştirilmesini oldukça kolaylaştırır ve program ilkesinin algılanmasını ve anlaşılmasını kolaylaştırır. Bir blok diyagram oluşturmak için yukarıda sıralanan veri işleme prosedürlerinin hiyerarşisini ve bağlantısını belirlemek gerekir. Böyle bir şema, prosedürlerin "önemi" ve "kullanılabilirliği" şemasına tekabül ettiğinden, önceki bölümde tarif edildikleri biçimde bir prosedürler hiyerarşisi oluşturmak doğaldır. Yukarıdakilerin tümü dikkate alınarak programın blok şeması Şekil 2'de gösterilmektedir.

Programın ekran arayüzünün geliştirilmesi

Ekran arayüzü tasarımına yönelik mevcut yaklaşımlar

Programın ekran arayüzü, büyük ölçüde kullanıcının rahatlığını belirler ve yaptığı işin verimini etkileyen önemli faktörlerden biridir. Kendisine atanan tüm işlevleri yerine getiren ve yüksek hıza sahip bir program, kabul edilemez bir kullanıcı arayüzü nedeniyle iş için tamamen uygun olmayabilir. Sadece birkaç yıl önce, yazılım tasarımına bu yaklaşımı mükemmel bir şekilde gösteren bir metin editörü vardı. Bir satıra karakter eklemek için tek harfli bir komut kodu yazmanız gereken, işlenmekte olan satırın numarası (neyse ki ikili değil), sonra yeni karakterin ekleneceği karakter ve bu karakterin kendisi. Tabii ki, bu yaklaşım tamamen kabul edilemez.

En pratik ve kullanıcı dostu sistemler, açılır menü sistemi temelinde oluşturulmuş bir ekran arayüzüne sahip sistemlerdir. Şu anda en yaygın olanı, hem belirli bir ekran üstü pencere biçimini hem de bir renk şemasını ve açılır listelerin görünümünü içeren iki ideolojidir (DOS uygulamaları anlamına gelir). Bunlar Borland'ın Araç Ortamları ve Symantec'in Norton İşletim Kabuğu'dur. Her iki ideoloji de ekran alanının belirli bilgi nesneleri ve eylemlerine yönelik alanlara veya bölgelere belirli bir şekilde bölünmesini sağlar. Bölgeler, kullanıcının isteği üzerine bir dereceye kadar yeniden yapılandırılabilir: ekrandaki boyutlar ve konum değiştirilir. Veri işleme komutları menü sisteminden çağrılır, ekranda kalıcı olarak bulunur (Borland) veya fonksiyon tuşu (Symantec) ile çağrılır.

Her iki durumda da tüm sistem komutları işlevsel özelliklerine göre gruplara dağıtılır ve ana menüde

komut gruplarının gerçek adları. Kullanıcı, bir grup seçerek, ikinci düzey gruplara vb. gruplandırılmış komutları da içerebilen grup komutları listesine erişebilir.

Böylece çok seviyeli bir açılır menü sistemi oluşturulmuş olur. Böyle bir ideolojinin kullanılması, oldukça karmaşık, birçok seçenek içeren çok seviyeli bir menüye sahip bir sistemde yönlendirmenin rahatlığını sağlar. Doğal olarak, seçim listelerinin yuvalanmasındaki ve boyutundaki artış, neyse ki, monitörün sınırlı bir ekran alanı şeklinde olan makul sınırlara sahip olmalıdır. Çoğu sistemde, kullanıcının isteği üzerine renk paletini özelleştirme yeteneği de vardır. Norton işletim kabuğu, çeşitli standart seçeneklerden bir dizi gam seçeneği sunar; Borland sistemlerinde en küçük ayrıntısına kadar kendi renk gamınızı oluşturabilirsiniz. Bazı ekran nesnelerinin yaklaşık bir görünümü Şekil 4,5'te gösterilmektedir.

Ekran arayüzünün ideolojisinin seçimi