You are on page 1of 85

NESNEYE YNELK

PROGRAMLAMA
Yrd.Do.Dr. Zeynep ORMAN
ormanz@istanbul.edu.tr

Nesne Tabanl Programlama Kavramlar


Nesne Tabanl Programlama (OOP) teknii, gerek

dnyadaki somut nesnelerin bir yazlmn sunduu


soyut modelde birer karl olmasna dayanr.
Bu karlklara da Nesne (object) denir.
Nesne tabanl programlama ile gerek dnyadaki

varlklar ile bu varlklarn yer ald ilikilerin bire bir


modellenmesi ve bu modele gre kod yazlmas
mmkndr.

Nesne Tabanl Programlama Kavramlar


rnein, Bir insann sahip olabilecei iki varlk ve bu

lnn yazlma elenmesi

Nesne Tabanl Programlama Kavramlar


Nesne tabanl gelitirmede de dier sistem gelitirme

srelerinde olduu gibi modelleme ayn zamanda bir


sadeletirmedir. Ne kadar sade modellerimiz olursa o
kadar sade kodlarmz olur.
rnein bir bordro programnda insanlarn boy ve
kilolarnn nemi olmaz.
Baz durumlarda da ayn kii tamamen ayn
verilerden beslenen baka bir role sahip olabilir.
rnein, salk sisteminde ayn veriler bir hastay
simgeleyecektir.

rnek: (Personel Sadeletirmesi - Bordro)

(Personel Sadeletirmesi Salk)

Nesne Tabanl Programlama Kavramlar


Bu sadeletirmeler sonucunda iimize yarayan ve

yazlm bak asndan grlen veriler ve bu veriler


zerinde tanmlanm ilemler ieren bir modele
ularz.
Bu modele alan modeli (domain model) ad verilir.
Bu modeli kullanarak benzer zellikleri olan birden
fazla nesnenin zerinde ilemler tanmlayabiliriz.

Nesne Tabanl Programlama Kavramlar


Nesneye Ynelik programlamada zerinde ilem

yaplacak bu nesnelerin yaratlmas ve tannmas


gerekir.
Nesnelerin programda nasl yaratlaca dilden dile
farkllk gsterir (C++, Java).
Ancak nesnenin yaratlmas iin nesnenin bir plana
ihtiyac vardr. Bu plana snf (class) denir

SINIF
Bir snf, ortak zellikleri ve davranlar olan
nesnelerin szkonusu ortak zelliklerini ve ortak
davranlarn barndran soyut bir kavramdr.
Yani bir snf temel olarak bir tanmdr.
Bir zellik ve davran yn sunar ve bu yna

topluca erimemiz iin bize birer isim verir.


Bu ismi tayan nesneler bu yndaki zellik ve
davranlara sahip olurlar.
Bu ilikiyi nesne snfa aittir (belongs to) diyerek
aklarz.
***Bir nesne bir snfta tanmlanan zellik ve
davranlara sahipse o snfa aittir.

NESNE
Snf nesne ilikisinde kullanlan nemli dier bir

kavramda bir nesnenin ait olduu snfn bir rnei


(instance) olmasdr.
Bir nesne, uygulama alrken bellekte ya da baka
bir kayt ortamnda (dosya, veritaban, vs) bulunan ve
ait olduu snfn tanmlad davran biimlerine uyan
bir rnektir.

Nesne Tabanl Programlama Kavramlar


Bir uygulama alrken bir snfa ait deiik

saylarda rnek (yani nesne) bulunabilir.


Herhangi bir anda o snfa ait hi nesne
olmayabilecei gibi bir yada daha fazla sayda
nesne de olabilir.
Bir nesne genelde yalnzca bir snfn rneidir.
(Ancak C++ gibi dillerde bir nesnenin birden fazla
snfn rnei olmasna izin vardr ama tercih
edilmez)

rnek: (Nesnenin snf rneklemesi)

Bir snftan birden fazla nesnenin


bulunmas

Nesne Tabanl Programlama Kavramlar


Snflar ve nesnelerden bahsederken srekli olarak

nesnelerin zellikleri ve davranlarndan bahsederiz.


Bir nesnenin zellikleri (attributes), o nesnenin iindeki
veriler ve bu verilerin yapsn kapsar.
zellikler deiik seviyelerdeki soyutlamalar ierebilir.
Yani bir nesnenin bir zellii baka bir nesne olarak
ifade edilebilir.
Bu dier nesne ayn snftan ya da farkl bir snftan
olabilir.
rnek: Bir Ev snf dnn; komu zellii de bir baka

Ev nesnesi olabilir.

Nesne Tabanl Programlama Kavramlar


Bir nesne zerindeki ilemler (operations) ile

nesnenin davrann (behavior) niteleriz.


Davran nesnenin sistemde kullanld zaman
yapacaklar ve yapacaklarnn sistemin durumu
zerinde yol aaca deiikliklerden oluur.
Davran sonunda deiime urayan sadece nesne
olmak zorunda deildir. evresi de deiime
urayabilir.
Bazen davran sonucu nesnenin kendisi hi
deimezken evresindeki dier nesneler deiebilir.

Nesne Tabanl Programlama Kavramlar


rnein, elimizde bir tmz olsun. tnn markas,

modeli, rengi, alt elektrik voltaj, ne tr kumalar


tleyebildii bu tye ait zelliklerdir (veri).
Ayn zamanda tmz stabiliriz, tleme iinde
kullanabiliriz ve soumaya brakabiliriz. Bunlar ise tnn
fonksiyonlardr (metot).

Nesne Tabanl Programlama Kavramlar


Eer t ile ilgili bir program yapm olsak ve nesne

tabanl programlama tekniini kullansak hemen bir


t snf (class) olutururduk.
Bu snfta tye ait bilgiler (veriler) ve t ile
yapabileceimiz iler (metot) bulunurdu.
O zaman nesne tabanl programlamada bir snfta,
snfa ait veriler ve bu verileri ileyip bir takm faydal
sonular reten fonksiyonlar metotlar bulunur.
Dahas, biz bir tane t snf tasarlarsak bu snftan
istediimiz sayda deiik tler (Object veya
instance) yapabiliriz.

Nesne Tabanl Programlama Kavramlar


Bir nesne zerindeki kstlamalar (constraints),

nesnenin uymas gereken kurallar simgeler.


Bu kurallar genellikle nesnenin zellikleri ile ilgilidir.
Nesnenin veri btnlnn korunmas iin gereken
eylerdir.
Bu kstlamalar sayesinde nesnenin zellikleri anlaml
olmaya devam eder.
(Kstlamalar kt bir ey olarak alglanmamaldr.)

Nesne Tabanl Programlama Kavramlar


rnein, bir araba iin srcnn iki aya

olacandan, debriyaj, fren ve gaz pedallarndan ayn


anda en ok ikisine baslabilir.
Bunu bir kural olarak tanmlarsak, Araba snfndan
nesneler iin bir kstlama olacaktr.

Nesne Tabanl Programlama Kavramlar


Kstlamalara benzer dier bir kavram da bir

nesnenin uymas beklenen szlemesi


(contract) dir.
Szleme, nesnenin zerindeki ilemler
gerekletirilirken nasl davranmas gerektii
zerine kurallardr.
Kstlamalar ise nesnenin zelliklerinin her zaman

uymas gereken kurallardr.


Szlemelerin daha ok davrana, kstlamalarn

ise veriye odakl kurallar olduunu syleyebiliriz.

UML Snf ve Nesne emalar


UML (Unified Modelling Language), nesne tabanl

sistemlerin modellenmesinde kullanlan bir


modelleme dilidir.
Snflar ve nesneler iin eitli notasyonlar sunar.
Bu notasyonlar grafik notasyonlardr.
bir miktar metin katksna da izin verirler.

UML snf emas 3 blml bir dikdrtgenden oluur:


En st blm snfn adn,
Ortadaki blm zellikleri
En son blmde yntemleri (metotlar) gsterir.

UML Snf ve Nesne emalar


Nokta
x: double
y: double

no:Nokta
x = x0
y = y0
Nesne
emas
n1:Nokta

Snf emas

x = x1
y = y1

UML Snf ve Nesne emalar


Nesne emalarnda isimlerin alt izili ve nesnenin

zelliklerine deer atanmas durumunda atama


iareti (=) kullanlmtr.
UMLde nesnelerin zelliklerinin tiplerini belirlemek
mmkndr.
zelliin adndan sonra iki nokta st ste iareti (:) ile
ayrlarak tipinin ad belirtilir.
Ayn tipten birden fazla zellik olsa bile her zelliin
tipi tek tek belirtilecektir.
rnein, double

UML Snf ve Nesne emalar


yi bir snf tasarm iyi bir modeldir ve iyi modellerde

bulunmas gereken zellikler unlardr:


 gerek dnyay doru ifade etmelidir.
 ilevi tasarmdan ayrmaldr.
 btn nemli zellikleri dorudan sunmaldr.
Snflar tasarlarken karmza kan en nemli
tasarm kriteri sade ve genel olmas gerekliliidir.
Gereksiz zellikler olmamaldr!!

Ancak ou kez, bir snfn programlama diline bal

olarak zenginletirilmesi gerekebilir.

UML Snf ve Nesne emalar


rnek: Gelien nokta snf
Nokta
x: double
y: double
equals(o:Object):boolean
toString():String

Yntemler (metotlar)

Javada equals() ve toString() yntemleri olduka

kullanlan ve yararl yntemlerdir ve yazlmalar nerilir.


Uygulama Javada yazlacaksa snf geniletmek gerekir.

Nesne Tabanl Programlama


Kavramlar- Devam
Nesneye-ynelik programlamann temel

ilkeleri unlardr:


Soyutlama
 Saklama, Paketleme

SINIF

 Kaltm

SINIF
HYERARS

 ok biimlilik

Nesne Tabanl Programlama


Kavramlar- Devam
Nesneye-ynelik programlamann temel kavramlar,
1.

byk programlar yazmay kolaylatran soyutlama


ve
programlar
deitirmeyi
ve
korumay
kolaylatran saklama

2.

kaltm ve ok biimlie izin veren ve programlar


kolayca geniletilebilir klan snf hiyerarisidir.

Herhangi bir programlama dilinde bu kavramlar

uygulayabilirsiniz;
fakat,
nesneye-ynelik
programlama dilleri salt bu amala tasarlanmlardr.

Soyutlama
Soyutlama nemli zelliklere odaklanabilmek

iin ayrntlar gz ard etme srecidir.


Geleneksel
olarak, bir programlama dili
soyutlama yapmaya izin verdii lde yksekdzeyli (high-level) kabul edilir.
C++ (ve dier nesneye-ynelik programla dilleri)
verilen bir ii Cden daha soyut bir tarzda
tanmlama imkan verirken, C de Birletirici
Dillerden daha soyut bir ortam sunar.

Soyutlama
Soyutlama ,
belirli bir bak
asndan, nemli
zelliklere
odaklanabilmek
iin ayrntlar gz
ard etme
srecidir.

PROSEDREL SOYUTLAMA
lemlere ilikin ayrntlar gz ard etmemize izin

veren prosedrel soyutlama en yaygn soyutlama


tarzdr.
Programlarda kiiletirilmi kod kullanmak yerine,
belirli grevleri gerekletirmek iin standart
fonksiyonlarn oluturulmas
bir prosedrel
soyutlamadr.
Kendi fonksiyonlarnz yazarak, programn yapt
bir dizi ileme bir isim vermi olursunuz.

PROSEDREL SOYUTLAMA
Belirli bir dilde bir program yazarken programc

kendisini bu dilin sunmu olduu soyutlama


dzeyiyle snrlamak zorunda deildir. Birok dil
kullanc-tanml fonksiyonlar (rutinler, prosedrler)
yardmyla prosedrel soyutlama dzeyini daha
yukarlara tamaya izin verir.
Prosedrel
soyutlama ile kod tekrarlarndan
kurtulmak mmkndr.

Veri Soyutlamas
Bir veri tipinin nasl yaplandnn ayrntlarn gz

ard etmemize izin veren soyutlama tarzna veri


soyutlamas denir.
rnein, bilgisayardaki her tr veri ikili saylar olarak

dnlebilir. Fakat, birok programc ondalk


saylarla dnmeyi tercih ettii iin, dillerin ou tam
ve floating saylar destekler.
Basic dili karakter katar (string) tipini bir veri soyutlamas

olarak destekler. Dier yandan, C dili string soyutlamasn


dorudan desteklemez. Bu dilde stringler ardk bellek
hcrelerini igal eden bir dizi karakter olarak tanmlanmtr.

Veri Soyutlamas
Prosedrel soyutlama kapasitelerinin aksine, birok

dil yeni veri soyutlamas dzeyleri


konusunda snrl destek salarlar.

yaratmak

C kullanc tanml veri tiplerini structurelar ve

typedefler araclyla destekler.


C

dili, isel olarak birbirlerine bal olmalarna


ramen,
prosedrel
soyutlamay
ve
veri
soyutlamasn iki ayr teknik olarak sunar.
Bu tekniklerin birletii noktada nesne-tabanl ya da
nesneye-ynelik programlama yaklam doar.

Saklama, Paketleme (Encapsulation)


Saklama (Paketleme), soyutlamay desteklemek

ya da glendirmek iin bir snfn i yapsnn


gizlenmesidir.
Bu ekilde veriler fonksiyonlarla gizlenebilir.
Nesnenin iindeki kod, veri veya her ikisi bu
nesneye private (zel) veya public (genel)
olabilir.

Saklama, Paketleme (Encapsulation)


Private kod ve veriler, sadece o nesneye ait

bileenler tarafndan bilinebilir ve eriilebilir.


Programda nesneye ait olmayan bileenler, bu
private kod ve verilere eriemez.
Kod ve verilerimiz public ise, belirli bir nesnenin
iinde tanmlansalar da programn dier paralar
tarafndan eriilebilirler.
Nesnelere ait public elemanlar, private
elemanlara denetlenebilir ekilde eriebilmek
amacyla kullanrz.

Snf Hiyerarisi
Nesneye-ynelik programlamann, prosedrel

programlamada bulunmayan, bir zellii, tip


hiyerarisi tanmlayabilme yeteneidir.
Nesneye-ynelik programlama, bir snfn baka bir
snfn alt-tipi olarak tanmlanmasna; snflar aras
benzerlikleri bir ortak st-snf altnda toplamaya
izin verir.
Birka snf iin ortak bir st-snf tanmlama da bir
tr soyutlamadr.
Snflarn ortaklaa tadklar baz ynler zerinde
odaklap dierlerini gz ard etmeye izin verir.

Snf Hiyerarisi
Aslan, kaplan, ay ve inek trnn stsnf ne olabilir?

KALITIM (MRAS ALMA) - Inheritance


Kaltm, bir snfa ait zellikler ve ilemlerin
yeni bir snfa birebir aktarlmasdr.
Yeni snf eski snfn zellikleri ve ilemlerine
sahip olmasna ek olarak kendisi de zellikler
ve ilemler tanmlayabilir.

KALITIM (MRAS ALMA) - Inheritance


Kaltm yolu ile eldeki snflardan yeni snflar

tretilir.
Treyen snflar tredikleri snfn zelliklerini
kaltm yoluyla devralrlar ve kendisi de yeni
zellikler tanmlayabilir.
Tretme ile snflar arasnda hiyerarik bir yap
kurulabilir.

KALITIM
Bir snf hiyerarisi tanmlamann 2 pratik

faydas vardr:
Tretilmi snf st-snfn kodunu paylaabilir

(Kod Kaltm)
Tretilmi snf st-snfn arayzn
paylaabilir
(Arayz Kaltm)

KOD KALITIMI
Eer yeni bir snf tanmlyorsanz ve mevcut

bir snfn ilevselliinden yararlanmak


istiyorsanz, yeni snfnz mevcut snftan
tretirsiniz.
Bu durumda kaltm mekanizmalar size
mevcut kodu yeniden kullanma imkan salar.

rnek: Veri Girii Formlarnn tasarlanmas.

ARAYZ KALITIMI
Bir dier kaltm stratejisi, tretilmi snfn st-

snfnn eleman fonksiyonlarnn yalnzca


isimlerini kaltm yoluyla almasdr.
Tretilmi snf bu fonksiyonlar iin kendi
kodunu kullanr.
Arayz kaltmnn temel faydas okbiimlilie izin vermesidir.
rnek: Farkl veri tiplerindeki form girileri ayr

ayr alnr.

OK BMLLK (Polymorphism)
Genel anlam ile bir adn birbiriyle alakal

fakat teknik adan farkl iki veya daha fazla


ama iin kullanlabilmesi yeteneidir.
NYPde ise oluturulan nesnelerin
gerektiinde baka bir nesne gibi
davranabilmesine denir.
ok biimlilikle programdaki her nesne kendi
davrann deitirmeden, kaltm
hiyerarisine gre farkl biimlerde grlebilir.

Bir ok Biimlilik rnei


rnein C dilinde, mutlak deer bulma ilemi iin

farkl fonksiyon tanmldr: abs(), labs() ve


fabs().
Fakat ok biimlilii destekleyen C++'da bu
fonksiyonlar, abs() gibi tek bir isimle adlandrlrlar.
Fonksiyonu armak iin kullanlan veri tipi,
gerekte hangi fonksiyonun alacan belirler.
Bylece bir fonksiyon adnn birka farkl ama iin
kullanlmas mmkndr.
Buna fonksiyonlarn ar yklenmesi denir.

Bir ok Biimlilik rnei

UML DYAGRAMLARI
Kullanm Senaryolar ve
Kullanm Durum Diyagramlar
(Use Case Diagrams)

Kullanm Durumlarnn Tanm


Kullanm durumlar, sistemin kullanclara

sunaca bir hizmetin senaryo eklinde anlatmdr.


Sistem gereksinimlerinin anlalmasn ve ifade
edilmesini salayan bir yntemdir.
Senaryo, anlaml bir sonuca (amaca) ulamak iin
aktr ile sistem arasnda gerekleen olaylarn belli
bir zinciridir.
Bir sistemin almas srasnda birden fazla
senaryo gerekleebilir
Olas tm senaryolar, kullanm durumlarn (use
case) olutururlar.

Kullanm Senaryolar
Yazlm dnyasndaki nemli isimleri kullanm

senaryolar ile ilgili orijinal tanmlar aada verilmitir:


(Jacobson, Booch &Rumbaugh, 1999):
Bir Kullanm Senaryosu, bir sistemin gerekletirdii ve
belirli bir aktr iin gzlemlenebilir bir sonu ortaya
karan ve eitli varyasyonlar ieren eylemler serisini
ifade eder."
(Cockburn, 2000):
Bir Kullanm Senaryosu, tasarlama aamasndaki bir
sistem ve harici aktrler arasnda belirli bir hedefe
ynelik gelien olas etkileim serilerinin
koleksiyonudur."

Senaryo 1 - a

Senaryo 1 - b

Senaryo 1 - c

Senaryo 1 - d

Senaryo 1 - e

Senaryo 2 - a

Senaryo 2 - b

Senaryo 2 - c

Senaryo 2 - d

Aktr

Birincil Aktr ve Sistemin Snrlar


zerinde altmz sistemi hangi dzeyde

incelediimize ve snrlarn ne ekilde


izdiimize bal olarak birincil aktrler
deiiklik gsterir.
Kullanm senaryolarn yazarken sistemin

snrlarn doru olarak belirlemek, nelerin


darda nelerin ieride olacana doru karar
vermek gerekir.

Birincil Aktr ve Sistemin Snrlar

Birincil Aktr ve Sistemin Snrlar

Birincil Aktr ve Sistemin Snrlar

Birincil Aktr ve Sistemin Snrlar

Kullanm Senaryolarnn Yazlmas


htiyalarn ve istenen zelliklerin listelenmesi

eklinde DEL.
Sistem kara kutu olarak ele alnr. Sistemin i
yaps grlmez, sistemin darya (aktrlere)
kar sorumluluklar ifade edilir.
Aktrler ile sistem arasndaki etkileim etken
cmleler ile ifade edilir.
"Ne yapar?" sorusu cevaplanr, "Nasl
yapar?" deil.

Kullanm Senaryolarnn Yazlmas


Sistemin sorumluluklarn nasl yerine

getirecei daha sonra gelinecek olan tasarm


aamasnda ele alnacak bir problemdir.
Kullanm senaryolarn yazdmz imdiki
aamada ise sadece istekler anlalmaya
allyor.
Sistemin bitmi hali hayal edilerek bu sistem
altnda oluabilecek senaryolar yazlr.

Kullanm Senaryolarnda Yer Alan


Blmler
Her kullanm senaryolar grubunun (use case) bir ad ve

numaras vardr. simden sonra adaki blmler gelir.

nsz (Preface) Blm

nsz (Preface) Blm


Birincil aktr, destek aktr ve dier aktrlerin

belirlenmesi sistemin snrlarn izer.


Kullanm senaryolar ilgililerin (aktrlerin) tm
beklentilerini karlayan tm olaylar ve
sadece onlar ierir.
Tm ilgililerin ve beklentilerin ilk bata
belirlenmesi nemlidir.
Aksi durumda senaryolarda baz durumlar
unutulabilir ve bu eksiklik ancak ileriki
aamalarda anlalabilir.

Ana Baarl Senaryo (Temel Ak)


Blm

Ana Baarl Senaryo (Temel Ak)


Blm

Uzantlar (Alternatif Aklar) Blm

Uzantlar (Alternatif Aklar) Blm

Dier Blmler
Sra D Durumlar Blm (Exceptions) :
Sistemde hatalar olutuunda yaplacaklar sralanr.
Baz tasarmclar bu blmdeki olaylar da uzantlar
blmnde ele alrlar.
zel stekler Blm (Special Requirements) :
levler ile ilgili olmayan istekler bu blmde belirtilir.
Bu istekler genellikle hz, gvenilirlik, rahat kullanm
gibi kalite kriterlerine yneliktir.
Teknolojik Beklentiler Blm :
Kullanclarn n grdkleri donanm zellikleri burada
sralanr. rnein giri/k ilemlerinin hangi cihazlar
ile yaplmas istendii bu blme yazlr.

RNEK
Senaryo Grubu (Use Case) SG1: Sat lemleri
Konu: Market Sistemi
Birincil Aktr: Kasa Grevlisi
lgililer (Aktrler) ve Beklentileri (Stakeholders and

Interests):
Kasa Grevlisi: Bilgilerin doru ve hzl girilmesi,
toplamn doru hesaplanmas, para stnn doru
hesaplanmas
Sat Eleman: Komisyonun doru hesaplanmas ve
kayt edilmesi
Mdr: Yetkili ilemleri (kasa grevlisinin
yapamad) kolaylkla yapabilmek

RNEK
lgililer (Aktrler) ve Beklentileri (Stakeholders and

Interests):
Vergi Dairesi: Vergilerin doru hesaplanabilmesi ve
toplanabilmesi
Kredi Kart Asllama Merkezi: deme bilgilerinin
doru formatta gelmesi ve asllama bilgilerinin kayt
edilmesi

RNEK
n Koullar (Preconditions):

Kasa grevlisi sisteme giri yapmtr.


Son Koullar (Postconditions):
Sat bilgileri kayt edilmitir.
Vergi doru olarak hesaplanmtr.
Muhasebe ve envanter kaytlar gncellenmitir.
Komisyon kayt edilmitir.
Fatura oluturulmutur.
Kredi kart onay kayt edilmitir.

RNEK

Ana Baarl Senaryo (Doal Ak)

RNEK

Ana Baarl Senaryo (Doal Ak)

RNEK
Uzantlar (Alternatif Aklar):

*a. Herhangi bir anda mdr yetkili bir ilem yapmak


ister ve ifresini girer:
1.Sistem mdr-yetkisi konumuna geer.
2.Mdr yetkili bir ilem gerekletirir. rnein
sat iptal eder, bir rnn fiyatn indirir vs.
3.Mdr sistemden kar.
4.Sistem normal konuma (kasa grevlisi yetkisi)
geer.

RNEK
Uzantlar (Alternatif Aklar):
*b. Herhangi bir anda sistemde bir hata oluur:
Bu durumlarda bilgilerin kayt edilmesi ve sistemin kald
yerden devam edebilmesi istenir.
1. Kasa grevlisi sistemi yeniden balatr, sisteme giri
yapar ve sistemin nceki durumdan devam etmesini ister.
2. Sistem nceki durumu oluturur.
2a. Sistem nceki durumu olutururken
anormallik sezer.
1. Sistem hata uyars verir, hatay kayt eder
ve temiz (balang) duruma geer.
2. Kasa grevlisi yeni bir sat balatr.

RNEK
Uzantlar (Alternatif Aklar):
3a. Geersiz bir rn kodu (Sistemde bulunamad):
1. Sistem hata uyars verir, rn reddeder.
2. Kasa grevlisi hataya tepki verir:
2a. rnn stnde okunabilir bir kod vardr:
1. Kasa grevlisi kodu sisteme elle (manual)
girer.
2. Sistem rnn tantc bilgisini ve fiyatn gsterir.
2b. rnn stnde kod yoktur, ama fiyat yazldr:
1. Kasa grevlisi mdrden yetkili bir ilem yapmasn
ister.
2. Mdr ifresini girer.
3. Kasa grevlisi fiyat elle girer.

RNEK
Uzantlar (Alternatif Aklar):

3b. Ayn rnden bir taneden fazla alnmtr (5 ie


iecek):
1. Kasa grevlisi rn kodunu ve adetini sisteme girer.
3-6a. Mteri kasa grevlisine bir rn almaktan
vazgetiini syler:
1. Kasa grevlisi sattan karlacak rnn kodunu
sisteme girer.
2. Sistem rn sattan karr ve geerli toplam
gsterir.
3-6b. Mteri alveriten vazgetiini syler:
1. Kasa grevlisi sat iptal eder.

RNEK
5. Mteri indirim hakk olduunu syler (mteri kartna sahiptir):
1. Kasa grevlisi mteri kodunu sisteme girer.
2. Sistem indirimi uygular ve yeni toplam gsterir.
7a. Nakit deme:
1. Kasa grevlisi denen nakit miktar sisteme girer.
2. Sistem para stn gsterir ve para ekmecesini aar.
3. Kasa grevlisi mteriden demeyi alr ve para stn
verir.
4. Sistem nakit demeyi kayt eder.
7b. Kredi kart ile deme:
1. ....
7c. ek ile deme:
1.

RNEK
zel stekler (Special Requirements):
Dz kare monitr. Yazlar 1 metre uzaklktan okunabilmeli.
Kredi kart sorgulamasnn cevab en ge 30 saniyede

gelmeli.
....

RNEK
Teknolojik Beklentiler (Technology Variations List):

*a. Mdr kendisini sisteme bir kart okutarak ya da tu


takmndan ifresini girerek tantr.
3a. rn kodlar bir barkod okuyucu ile veya tu
takmndan elle girilebilir.
7b. Kredi kart bilgiler kart okuyucu ile veya tu
takmndan elle girilebilir.
....

You might also like