Object-oriented System Analysis
and Design
Лекц №5. Объект Хандлагат Технологийн
ндэсү
◦ ОХТ-ийн үндсэн ойлголтууд:
 Class
 Object
 Instance
 Message
 Encapsulation
 Inheritance & Method override
 Polymorphism
◦ Объект Хандлагат Технологийн тулгын 3 чулуу:
 Enсapsulation
 Inheritance
 Polymorphism буюу товчоор (EIP)
Дампуурсан
Хэрэгжүүлсэн боловч ажлын
шаардлага хангаагүй
Гол ажлуудыг шинээр
дахиж хийх шаардлагатай
Засвар хийх
шаардлагатай
5%- аас бага Амжилттай хэрэгжсэн
95%-аас илүү
Шаардлага
хангаагүй
Software
Crisis
Програм хангамж нь
• Чанар муутай
• Бүтээмж муутай
• Засвар үйлчилгээ авахдаа муу
Чанартай
Бүтээмжтэй
Засвар
үйлчилгээ
авахдаа сайн
SystemSystem
Объект Хандлагат Технологи хэрхэн
ноёрхох болов
OOT conceptsOOT concepts
EncapsulationEncapsulation
InheritanceInheritance
PolymorphismPolymorphism
 Хийсвэрлэл (Abstraction)
◦ Хүн төрөлхтөн өөртөө хүндрэлтэй асуудлаа хийсвэрлэн дүрсэлж ирсэн бөгөөд
компьютерийн програмчлалд ч програмын хүндрэл (software complexity)-ийг
удирдан зохицуулах зорилгоор хийсвэрлэлийг өргөн ашигладаг.
◦ Програмчлалд Өгөгдлийн Хийсвэр Төрөл (ӨХТ) тодорхойлж, ашиглах замаар
хийсвэрлэлийг хэрэгжүүлдэг. Програмчлалын хэл бүр өөрийн гэсэн Өгөгдлийн
Хийсвэр Төрөлтэй. Тухайлбал:
 Паскаль хэлний ӨХТ нь Бичлэг (record)
 С хэлний ӨХТ нь Бүтэц (struct)
 Java болон бусад ОХПрограмчлалын хэлний ӨХТ нь класс юм.
“ОХП хэлнүүдийн өгөгдлийн хийсвэр төрөл болох Класс хэмээх ойлголт
нь Объект Хандлагат хэмээх хүчирхэг технологийн амжилтын нууц юм.”
• Класс
– Объект хэмээх ойлголттой салшгүй холбоотой.Объект хэмээх ойлголттой салшгүй холбоотой. Ижил шинж чанар болонИжил шинж чанар болон
үйлдлүүдтэй объектуудын нэгдэл юм.үйлдлүүдтэй объектуудын нэгдэл юм.
• Объект
– Бодит амьдралын биет юмс буюу түүний хийсвэрлэл юм. Жишээ нь:Бодит амьдралын биет юмс буюу түүний хийсвэрлэл юм. Жишээ нь:
o Бодит объект: Ном, Үзэг, Компьютер...Бодит объект: Ном, Үзэг, Компьютер...
o Хийсвэр объект: Хичээл, ШүлэгХийсвэр объект: Хичээл, Шүлэг
– Бид өдөр тутмынхаа амьдралд янз бүрийн объектуудтай харьцаж байдаг.Бид өдөр тутмынхаа амьдралд янз бүрийн объектуудтай харьцаж байдаг.
– Аливаа систем нь объектуудаас бүрддэг.Аливаа систем нь объектуудаас бүрддэг.
Жишээ нь: МашинЖишээ нь: Машин
Машин
Íýð
¯íý
Өнгө ӨВвв
Давхих
Õóäàëäàæ-
àâàõ
Çàñàõввв
◦ Класс нь гишүүн өгөгдөл ба гишүүн функцын нэгдлээр илэрхийлэгдэх логик бүтэц
юм. Жишээ нь:
Класс, объектКласс, объект
Encapsulation
Encapsulation: Тухайн объектод шаардлагатай өгөгдлүүд болон
үйлдлүүдийг нэгтгэн далдлах үйл явц юм.
 Нэгтгэх: Тухайн объектын өгөгдлүүд болон функцуудыг нэг
капсулд хийх.
 Далдлах: Объектын дотоод бүтцийг далдлах. Ингэснээрээ Data
hiding-г програмчлад хэрэгжүүлэх боломж олгож байна
Computer
Processor speed
RAM
Use();
Buy();
Тухайн объектод
шаардлагатай
өгөгдлүүд
Тухайн объект дээр
хийгдэх үйлдлүүд
Student_name, Salary, GPA, Course_number,
Teacher_name, Student_code, Room_number …
Method
Choose_lesson, Give_lecture, Pay_payment
Do_homework Get_salary …
Data
Encapsulation (1- Нэгтгэх)
Object 1
Data
Method
Object 2
Data
Method
Object 3
Data
Method
 Method.Энэ нь класс дотор агуулагдах функц юм.Та
цаашдаа функцууд үргэлж класстай хамт хэрэглэгдэж
түүнд хамаатай болохыг олж мэдэх болно.
 Message.Энэ нь функц дуудахтай адил ухагдахуун юм.
Обьект хандлагат програмчлалд бид функц дуудахын
оронд мэдээ илгээх (send message) болно.
Encapsulation (1- Нэгтгэх)
STUDENT TEACHER
Student_code
Student_name
GPA
Course_number
Teacher_name
Salary
Room_number
Choose_lesson
Pay_payment
Do_homework
Give_lecture
Get_salary
Encapsulation (2- Далдлах)
ОХП хэлний ӨХТөрөлд өгөгдлийн далдлалтыг хэрэгжүүлэхОХП хэлний ӨХТөрөлд өгөгдлийн далдлалтыг хэрэгжүүлэх
боломжтой болсноор Классыг хар хайрцагболомжтой болсноор Классыг хар хайрцаг (black box)-(black box)-ны шинжны шинж
чанартай болгож өгдөг.чанартай болгож өгдөг.
Өгөгдлийн далдлалтыг хэрхэн хэрэгжүүлэх вэ?
Хандалтуудын харагдах байдал (Visibiliy)-ыг товч
тодорхойлвол:
private хандалттай гишүүд нь програмын бусад хэсгээс (үндсэн
функц болон бусад классаас) далдлагдсан байна. Түүнд
хандахдаа тухайн классын нийтийн хандалттай гишүүн
функцээр дамжуулж хандана.
public хандалттай гишүүдэд програмын дурын хэсгээс хандах
боломжтой.
protected хандалттай гишүүд нь өөрийн хүү классдаа харагддаг,
харин програмын бусад хэсгээс далдлагдан байдаг.
Encapsulation (2- Далдлах)
• Удамшил (Inheritance)
– Бодит амьдрал дээр объект нь дан ганцаар бие даан оршинБодит амьдрал дээр объект нь дан ганцаар бие даан оршин
тогтнодоггүй, өөр бусад объектуудтай байнгын харьцаж байдаг.тогтнодоггүй, өөр бусад объектуудтай байнгын харьцаж байдаг.
Тухайлбал: Объект нь өмнө оршин байсан объектын тодорхойТухайлбал: Объект нь өмнө оршин байсан объектын тодорхой
шинжүүдийг өвлөн авах, мөн өөр объектыг өөртөө агуулах, өөршинжүүдийг өвлөн авах, мөн өөр объектыг өөртөө агуулах, өөр
бусад объектод чөлөөтэй хандах...бусад объектод чөлөөтэй хандах...
– Иймд ОХП-д классуудын шаталсан харьцааны дараах 2 хэлбэрИймд ОХП-д классуудын шаталсан харьцааны дараах 2 хэлбэр
байдаг. Үүндбайдаг. Үүнд
 Удамшил харьцааУдамшил харьцаа /өгүүлбэрзүйн/өгүүлбэрзүйн is ais a харьцаагаар/харьцаагаар/
 Бүрдмэл харьцааБүрдмэл харьцаа // өгүүлбэрзүйнөгүүлбэрзүйн has ahas a харьцаагаархарьцаагаар //
– ОХ аргаар хөгжүүлсэн програм хангамжийн нэг давуу тал нь дахинОХ аргаар хөгжүүлсэн програм хангамжийн нэг давуу тал нь дахин
ашиглагдах чадварашиглагдах чадвар (reuseability)-(reuseability)- тай байдаг.тай байдаг. Удамшил хэмээхУдамшил хэмээх
ойлголт нь програмыг дахин ашиглагдах боломжийг дэмждэг ОХП-ойлголт нь програмыг дахин ашиглагдах боломжийг дэмждэг ОХП-
ын нэг чухал ойлголт юм.ын нэг чухал ойлголт юм.
Тээврийн хэрэгсэл
Эзэмшигч
Төрөл
Өнгө
Хурдлах
Асаах
Зогсоох
Эх класс
Хүү класс
Такси
Үйлчлүүлэгч
Хүн тээвэрлэх
Ачааны тэрэг
Даац
Ачаа тээвэрлэхОнцлог функц
Онцлог өгөгдөл
Удамшил харьцаа /Inheritance/
Taxi is a Transportation
Truck is a Transportation
Үндсэн
класс1
Удамшсан
класс
a) Үндсэн
класс1
Удамшсан
класс
b) Үндсэн
класс2
Энгийн удамшил Нийлмэл удамшил
Удамшил харьцаа
Бүрдмэл харьцаа
Computer
CPU Mouse Disk
Computer has a CPU
Computer has a mouse
Computer has a Disk
 Объект Хандлагат Програмчлалын хэлнүүдийн үндсэн тулгуур болсон 3
ойлголтын нэг нь Polymorphism хэмээх ойлголт юм.
1.Encapsulation
2.Inheritance
3.Polymorphism
 Polymorphism гэсэн грек үгийг үгчилэн орчуулвал:
 ерөнхийд нь “олон хэлбэрт шилжих” гэнэ.
 ОХТ дахь Polymorphism гэдэг нь ойлголт нь ижил үйлдлээр ялгаатай үр
дүнд хүрэх чадвар юм.
 Polymorphism хэмээх ойлголт нь Хийсвэрлэл (Abstraction), Битүүмжлэл
(Encapsluation), Удамшил (Inheritance) гэсэн 3 ойлголтын нэгдэл юм. Энэ
утгаараа тэдгээр 3 ойлголтын програмд үзүүлэх давуу боломж, ач
холбогдлуудыг өөртөө шингээсэн хүчирхэг ойлголт.
 Полиморфизмыг зөв хэрэгжүүлсэнээр програмын
◦ Уян хатан чанар (flexibility)
◦ Засвар үйлчилгээ авах чанар (maintainability) нэмэгддэг.
“MIAOW”
“BOWWOW”
“PIYOPIYOP”
Kei:Master
rio : Cat
cry()
attack()
move()
hamu : Dog
cry()
attack()
move()
ku-chi : Parakeet
cry()
attack()
move()
rio.cry()
hamu.cry()
ku-chi.cry()
“MIAOW”
“BOWWOW”
“PIYOPIYOP”
Kei:Master
rio : Cat
cry()
attack()
move()
hamu : Dog
cry()
attack()
move()
ku-chi : Parakeet
cry()
attack()
move()
rio.attack()
hamu.attack()
ku-chi.attack()
“Маажих”
“Хазах”
“Шүүрэх”
“MIAOW”
“BOWWOW”
“PIYOPIYOP”
Kei:Master
rio : Cat
cry()
attack()
move()
hamu : Dog
cry()
attack()
move()
ku-chi : Parakeet
cry()
attack()
move()
rio.move()
hamu.move()
ku-chi.move()
“Маажих”
“Хазах”
“Шүүрэх”
“Үсрэх”
“Давхих”
“Нисэх”
Method Override
Ажилтан_мэдээлэл
Нэр
Төрсөн огноо
Нас
Хаяг
calc__age(birthday)
calc__salary(age)
Удамшил Method override:
Ижил нэртэй
ялгаатай функц
тодорхойлох
Багш__мэдээлэл
Хичээлийн код
calc__salary(age)

Ood lesson5

  • 1.
    Object-oriented System Analysis andDesign Лекц №5. Объект Хандлагат Технологийн ндэсү
  • 2.
    ◦ ОХТ-ийн үндсэнойлголтууд:  Class  Object  Instance  Message  Encapsulation  Inheritance & Method override  Polymorphism ◦ Объект Хандлагат Технологийн тулгын 3 чулуу:  Enсapsulation  Inheritance  Polymorphism буюу товчоор (EIP)
  • 3.
    Дампуурсан Хэрэгжүүлсэн боловч ажлын шаардлагахангаагүй Гол ажлуудыг шинээр дахиж хийх шаардлагатай Засвар хийх шаардлагатай 5%- аас бага Амжилттай хэрэгжсэн 95%-аас илүү Шаардлага хангаагүй
  • 4.
    Software Crisis Програм хангамж нь •Чанар муутай • Бүтээмж муутай • Засвар үйлчилгээ авахдаа муу
  • 5.
    Чанартай Бүтээмжтэй Засвар үйлчилгээ авахдаа сайн SystemSystem Объект ХандлагатТехнологи хэрхэн ноёрхох болов OOT conceptsOOT concepts EncapsulationEncapsulation InheritanceInheritance PolymorphismPolymorphism
  • 6.
     Хийсвэрлэл (Abstraction) ◦Хүн төрөлхтөн өөртөө хүндрэлтэй асуудлаа хийсвэрлэн дүрсэлж ирсэн бөгөөд компьютерийн програмчлалд ч програмын хүндрэл (software complexity)-ийг удирдан зохицуулах зорилгоор хийсвэрлэлийг өргөн ашигладаг. ◦ Програмчлалд Өгөгдлийн Хийсвэр Төрөл (ӨХТ) тодорхойлж, ашиглах замаар хийсвэрлэлийг хэрэгжүүлдэг. Програмчлалын хэл бүр өөрийн гэсэн Өгөгдлийн Хийсвэр Төрөлтэй. Тухайлбал:  Паскаль хэлний ӨХТ нь Бичлэг (record)  С хэлний ӨХТ нь Бүтэц (struct)  Java болон бусад ОХПрограмчлалын хэлний ӨХТ нь класс юм. “ОХП хэлнүүдийн өгөгдлийн хийсвэр төрөл болох Класс хэмээх ойлголт нь Объект Хандлагат хэмээх хүчирхэг технологийн амжилтын нууц юм.”
  • 7.
    • Класс – Объектхэмээх ойлголттой салшгүй холбоотой.Объект хэмээх ойлголттой салшгүй холбоотой. Ижил шинж чанар болонИжил шинж чанар болон үйлдлүүдтэй объектуудын нэгдэл юм.үйлдлүүдтэй объектуудын нэгдэл юм. • Объект – Бодит амьдралын биет юмс буюу түүний хийсвэрлэл юм. Жишээ нь:Бодит амьдралын биет юмс буюу түүний хийсвэрлэл юм. Жишээ нь: o Бодит объект: Ном, Үзэг, Компьютер...Бодит объект: Ном, Үзэг, Компьютер... o Хийсвэр объект: Хичээл, ШүлэгХийсвэр объект: Хичээл, Шүлэг – Бид өдөр тутмынхаа амьдралд янз бүрийн объектуудтай харьцаж байдаг.Бид өдөр тутмынхаа амьдралд янз бүрийн объектуудтай харьцаж байдаг. – Аливаа систем нь объектуудаас бүрддэг.Аливаа систем нь объектуудаас бүрддэг. Жишээ нь: МашинЖишээ нь: Машин Машин Íýð ¯íý Өнгө ӨВвв Давхих Õóäàëäàæ- àâàõ Çàñàõввв
  • 8.
    ◦ Класс ньгишүүн өгөгдөл ба гишүүн функцын нэгдлээр илэрхийлэгдэх логик бүтэц юм. Жишээ нь: Класс, объектКласс, объект
  • 9.
    Encapsulation Encapsulation: Тухайн объектодшаардлагатай өгөгдлүүд болон үйлдлүүдийг нэгтгэн далдлах үйл явц юм.  Нэгтгэх: Тухайн объектын өгөгдлүүд болон функцуудыг нэг капсулд хийх.  Далдлах: Объектын дотоод бүтцийг далдлах. Ингэснээрээ Data hiding-г програмчлад хэрэгжүүлэх боломж олгож байна Computer Processor speed RAM Use(); Buy(); Тухайн объектод шаардлагатай өгөгдлүүд Тухайн объект дээр хийгдэх үйлдлүүд
  • 10.
    Student_name, Salary, GPA,Course_number, Teacher_name, Student_code, Room_number … Method Choose_lesson, Give_lecture, Pay_payment Do_homework Get_salary … Data Encapsulation (1- Нэгтгэх) Object 1 Data Method Object 2 Data Method Object 3 Data Method
  • 11.
     Method.Энэ нькласс дотор агуулагдах функц юм.Та цаашдаа функцууд үргэлж класстай хамт хэрэглэгдэж түүнд хамаатай болохыг олж мэдэх болно.  Message.Энэ нь функц дуудахтай адил ухагдахуун юм. Обьект хандлагат програмчлалд бид функц дуудахын оронд мэдээ илгээх (send message) болно. Encapsulation (1- Нэгтгэх)
  • 12.
    STUDENT TEACHER Student_code Student_name GPA Course_number Teacher_name Salary Room_number Choose_lesson Pay_payment Do_homework Give_lecture Get_salary Encapsulation (2-Далдлах) ОХП хэлний ӨХТөрөлд өгөгдлийн далдлалтыг хэрэгжүүлэхОХП хэлний ӨХТөрөлд өгөгдлийн далдлалтыг хэрэгжүүлэх боломжтой болсноор Классыг хар хайрцагболомжтой болсноор Классыг хар хайрцаг (black box)-(black box)-ны шинжны шинж чанартай болгож өгдөг.чанартай болгож өгдөг.
  • 13.
    Өгөгдлийн далдлалтыг хэрхэнхэрэгжүүлэх вэ? Хандалтуудын харагдах байдал (Visibiliy)-ыг товч тодорхойлвол: private хандалттай гишүүд нь програмын бусад хэсгээс (үндсэн функц болон бусад классаас) далдлагдсан байна. Түүнд хандахдаа тухайн классын нийтийн хандалттай гишүүн функцээр дамжуулж хандана. public хандалттай гишүүдэд програмын дурын хэсгээс хандах боломжтой. protected хандалттай гишүүд нь өөрийн хүү классдаа харагддаг, харин програмын бусад хэсгээс далдлагдан байдаг. Encapsulation (2- Далдлах)
  • 14.
    • Удамшил (Inheritance) –Бодит амьдрал дээр объект нь дан ганцаар бие даан оршинБодит амьдрал дээр объект нь дан ганцаар бие даан оршин тогтнодоггүй, өөр бусад объектуудтай байнгын харьцаж байдаг.тогтнодоггүй, өөр бусад объектуудтай байнгын харьцаж байдаг. Тухайлбал: Объект нь өмнө оршин байсан объектын тодорхойТухайлбал: Объект нь өмнө оршин байсан объектын тодорхой шинжүүдийг өвлөн авах, мөн өөр объектыг өөртөө агуулах, өөршинжүүдийг өвлөн авах, мөн өөр объектыг өөртөө агуулах, өөр бусад объектод чөлөөтэй хандах...бусад объектод чөлөөтэй хандах... – Иймд ОХП-д классуудын шаталсан харьцааны дараах 2 хэлбэрИймд ОХП-д классуудын шаталсан харьцааны дараах 2 хэлбэр байдаг. Үүндбайдаг. Үүнд  Удамшил харьцааУдамшил харьцаа /өгүүлбэрзүйн/өгүүлбэрзүйн is ais a харьцаагаар/харьцаагаар/  Бүрдмэл харьцааБүрдмэл харьцаа // өгүүлбэрзүйнөгүүлбэрзүйн has ahas a харьцаагаархарьцаагаар // – ОХ аргаар хөгжүүлсэн програм хангамжийн нэг давуу тал нь дахинОХ аргаар хөгжүүлсэн програм хангамжийн нэг давуу тал нь дахин ашиглагдах чадварашиглагдах чадвар (reuseability)-(reuseability)- тай байдаг.тай байдаг. Удамшил хэмээхУдамшил хэмээх ойлголт нь програмыг дахин ашиглагдах боломжийг дэмждэг ОХП-ойлголт нь програмыг дахин ашиглагдах боломжийг дэмждэг ОХП- ын нэг чухал ойлголт юм.ын нэг чухал ойлголт юм.
  • 15.
    Тээврийн хэрэгсэл Эзэмшигч Төрөл Өнгө Хурдлах Асаах Зогсоох Эх класс Хүүкласс Такси Үйлчлүүлэгч Хүн тээвэрлэх Ачааны тэрэг Даац Ачаа тээвэрлэхОнцлог функц Онцлог өгөгдөл Удамшил харьцаа /Inheritance/ Taxi is a Transportation Truck is a Transportation
  • 16.
  • 17.
    Бүрдмэл харьцаа Computer CPU MouseDisk Computer has a CPU Computer has a mouse Computer has a Disk
  • 18.
     Объект ХандлагатПрограмчлалын хэлнүүдийн үндсэн тулгуур болсон 3 ойлголтын нэг нь Polymorphism хэмээх ойлголт юм. 1.Encapsulation 2.Inheritance 3.Polymorphism  Polymorphism гэсэн грек үгийг үгчилэн орчуулвал:  ерөнхийд нь “олон хэлбэрт шилжих” гэнэ.  ОХТ дахь Polymorphism гэдэг нь ойлголт нь ижил үйлдлээр ялгаатай үр дүнд хүрэх чадвар юм.  Polymorphism хэмээх ойлголт нь Хийсвэрлэл (Abstraction), Битүүмжлэл (Encapsluation), Удамшил (Inheritance) гэсэн 3 ойлголтын нэгдэл юм. Энэ утгаараа тэдгээр 3 ойлголтын програмд үзүүлэх давуу боломж, ач холбогдлуудыг өөртөө шингээсэн хүчирхэг ойлголт.  Полиморфизмыг зөв хэрэгжүүлсэнээр програмын ◦ Уян хатан чанар (flexibility) ◦ Засвар үйлчилгээ авах чанар (maintainability) нэмэгддэг.
  • 19.
    “MIAOW” “BOWWOW” “PIYOPIYOP” Kei:Master rio : Cat cry() attack() move() hamu: Dog cry() attack() move() ku-chi : Parakeet cry() attack() move() rio.cry() hamu.cry() ku-chi.cry()
  • 20.
    “MIAOW” “BOWWOW” “PIYOPIYOP” Kei:Master rio : Cat cry() attack() move() hamu: Dog cry() attack() move() ku-chi : Parakeet cry() attack() move() rio.attack() hamu.attack() ku-chi.attack() “Маажих” “Хазах” “Шүүрэх”
  • 21.
    “MIAOW” “BOWWOW” “PIYOPIYOP” Kei:Master rio : Cat cry() attack() move() hamu: Dog cry() attack() move() ku-chi : Parakeet cry() attack() move() rio.move() hamu.move() ku-chi.move() “Маажих” “Хазах” “Шүүрэх” “Үсрэх” “Давхих” “Нисэх”
  • 22.
    Method Override Ажилтан_мэдээлэл Нэр Төрсөн огноо Нас Хаяг calc__age(birthday) calc__salary(age) УдамшилMethod override: Ижил нэртэй ялгаатай функц тодорхойлох Багш__мэдээлэл Хичээлийн код calc__salary(age)