ood lesson1

36
Обьект хандалтат шинжилгээ ба зохиомж Лекц №1 Багш: Б.Мөнхтуул

Upload: tuul-tuka

Post on 22-Dec-2014

1.534 views

Category:

Documents


1 download

DESCRIPTION

LEGTS 1

TRANSCRIPT

Page 1: Ood lesson1

Обьект хандалтат шинжилгээ ба зохиомж

Лекц №1Багш: Б.Мөнхтуул

Page 2: Ood lesson1

2

Агуулга

Дүгнэх тухай Хичээлийн зорилго Сэтгэлгээний төрлүүд

Процедур хандалтат Обьект хандалтат Үйлчилгээ хандалтат

Програмчлалын төрлүүд Системийг загварчлах болон зохиох: Бүтэцлэгдсэн болон

объект хандалтат арга зүй

Page 3: Ood lesson1

Хэрхэн дүгнүүлэх вэ?

16 : Ирц

20 : Тест 1, Тест 2

18 : Бие даалт

16 : Ангийн ажил, даалгавар

70

Нэмэлт онооны ажил : 10 : Ангид илтгэл тавих

3

Page 4: Ood lesson1

Хичээлийн зорилго

Обьект хандалтат сэтгэлгээ

Процедур болон обьект хандалтат програмчлалын (ОХП) ялгаа

Обьект хандалтат програмчлалын түлхүүр элементүүд тэдгээрийн ач холбогдол

Бүтэцлэгдсэн болон объект хандалтат арга зүй

4

Page 5: Ood lesson1

5

Сэтгэлгээний төрлүүд

Ямар нэг асуудлыг шийдэх, ямар нэг зүйлийг бүтээхэд хэд хэдэн янзаар хийж болно :

Процедур хандалтат буюу бүтэцлэгдсэн сэтгэлгээ Үйл ажиллагаануудыг бүлэглэн тэдгээрийг асуудлыг шийдэхдээ ашиглах.

Обьект хандалтат сэтгэлгээ Бие даасан обьектуудыг ашиглан асуудлыг шийдвэрлэх

Үйлчилгээ хандалтат сэтгэлгээ Бие даасан системүүдээс хэрэгтэй үйлчилгээгээ аван нэгтгэх замаар

шийдвэрлэх

Page 6: Ood lesson1

6

Сэтгэлгээний төрлүүд

Шийдвэрлэх асуудал :

Дарханд байгаа өвөөдөө цэцэг хэрхэн хүргэх вэ?

Page 7: Ood lesson1

7

Процедур Хандалтат Сэтгэлгээ

Цэцэг тарь.

Цэцгээ усал. Цэцгээ борд.

Цэцгээ түү.

Дархан руу цэцгээ аваад яв.

Өвөөгөө хайж ол.

Page 8: Ood lesson1

8

Обьект Хандалтат Сэтгэлгээ

“Цэцгийн дэлгүүр”-тэй (обьект) холбоо барь. Хүргэх хаягаа өгч төлбөрөө төл.

Page 9: Ood lesson1

9

Обьектуудын харилцааБи

Улаанбаатарын цэцгийн дэлгүүр

Дарханы цэцгийн дэлгүүр

Хүргэгч хүн

ӨвөөЦэцэг арчлагч

Менежер

Цэцэг таригч

Page 10: Ood lesson1

10

Сэтгэлгээний төрлүүд

Шийдвэрлэх асуудал :

Зусландаа байшин барих ?

Page 11: Ood lesson1

11

Процедур Хандалтат Сэтгэлгээ

Материалуудаа цуглуулах Банз, хадаас, шил, бариул, цемент, .....

Сууриа тавих Ханаа хийх

Цонх, хаалга хийх Өрөө тасалгаануудыг хийх Дээвэр хийх Дулаан, бохир, цэвэр усны шугамууд тавих Будах, цэвэрлэх

Page 12: Ood lesson1

12

Обьект Хандалтат Сэтгэлгээ

Хувийн байшин барьдаг компанид хандах Хийлгэх байшингаа тайлбарлах Төлбөрөө банкинд хийх Байшинг тухайн компани барих

Хаалга хийдэг компаниас бүргэд хаалга захиалах Цонх хийдэг компаниас вакум цонх захиалах Барилгын материал зардаг компаниудаас банз, хадаас,

обой, цемент ..... захиалах, хүргүүлэх Зураг төслийн хүнээр зургийг хийлгэх Барилгачдаар зургийн дагуу байшинг барих

Өнгөөр ялгасан нь бие даасан обьектууд.

Page 13: Ood lesson1

13

Обьектуудын харилцаа“Голомт” банк

Би

“ЭКО” барилгын компани

“Материал” компани

“Тээвэрлэгч” компани

Барилгачин Инженер

Зураг төсөл

Page 14: Ood lesson1

14

Сэтгэлгээний төрлүүд

Процедур хандалтат сэтгэлгээ Бүх хүмүүс өөрийн амьдарлын бүх зүйлийг өөрөө хийнэ. Хэн нэгний дадлага туршлага бусдад тус болохгүй Чанаргүй болно Үнэтэй болно Мэдлэг дутна Буруу зүйл их хийх тул засахад их цаг орно Нэг хүн асар их зүйл сурсан байх шаардлагатай болно. Эвдрэл дутагдал гарвал өөрөө л засах хэрэгтэй болно.

Page 15: Ood lesson1

15

Сэтгэлгээний төрлүүд

Обьект хандалтат сэтгэлгээ Өөр өөр мэргэжлийн хүмүүс (обьектууд) өөр өөрийн ажлыг

(үйлчилгээ) хийж нэгдсэн бүтээл гаргана. Сурч эзэмшихэд цаг бага орно

Нэг хүн нэг л төрлийн зүйлийг сайн хийж чаддаг байх хэрэгтэй тул

Чанар маш өндөр болно : Хүн бүр эзэмшсэн чиглэлээрээ олон газар юм хийж өгөх тул тухайн

ажлаа чадварлаг мэргэжлийн өндөр төвшинд хийдэг болно. Хүн бүр өөрийн хийсэн зүйлийн хариуцлагыг үүрнэ. Нэг хүний туршлага маш олон газарт ашиглагдана. Хамтран ажиллахад хялбар

Хэн нэг нь нөгөөхөөсөө тэрийг энийг хийгээд өг гэж хүсэхэд л болно. Тэр хүн түүнийг хийхийн тулд ямар тооцоо хийж юу юуг яаж бэлтгэн яаж

хийх нь захиалсан хүнд сонин биш. Мэдэх ч албагүй болно.

Page 16: Ood lesson1

16

Програмчлалын төрлүүд

Энэ хоёр төрлийн сэтгэлгээнээс болж хоёр төрлийн програмчлалын үндсэн хэлбэр үүссэн.

Анх програмчлалын хэлүүд процедур хандалтат байсан. Basic, Pascal, C, Delphi, Visual basic, …..

Яваандаа томоохон төслүүд дээр ажиллахад дээрх дутагдлууд гарч байсан тул обьект хандалтат сэтгэлгээг хэрэгжүүлж өгөх обьект хандалтат хэл хэрэгтэй болсон. C++, Java, C#, PHP 5 , …..

Page 17: Ood lesson1

17

Процедур Хандалтат Програмчлал

Үндсэн функц

Функц 1 Функц 1 Функц 1

Функц 1 Функц 1

Page 18: Ood lesson1

18

Процедур Хандалтат ПрограмчлалStructured Programming Дутагдал :

Төсөл томрох тусам нэмэгдэх кодын хэмжээ улам ихсэж байдаг. Програмын кодыг ойлгоход улмаар засварлахад их төвөгтэй. Үндсэн функцээр дамжуулан функцүүд хоорондоо хэрхэн холбогдож

байгааг тодорхойлоход төвөгтэй. Шинээр функц нэмэгдэхэд бусад нь өөрчлөгдөх хэрэгтэй болж

болзошгүй. Глобаль буюу нийтийн дунд байдаг хувьсагч нь том програмд маш

хүндрэл үзүүлдэг. Бэлэн болсон програмыг өөрчлөн сайжруулахад маш төвөгтэй. Програмын хэсгийг өөр програмд ашиглах боломж тун бага. Багаар ажиллан програм хийхэд маш хэцүү.

Page 19: Ood lesson1

19

Процедур Хандалтат ПрограмчлалStructured Programming Давуу тал :

Жижигхэн ойр зуурын програмыг хурдан хийх боломжтой. Шинжлэх ухааны төрлийн програмуудыг хийхэд илүү

тохиромжтой (томоохон хэмжээний програм бол үгүй) Бар код тайлах Шугаман тэгшитгэл бодох

Page 20: Ood lesson1

20

Обьект Хандалтат ПрограмчлалObject Oriented Programming

Дутагдал :

Зарим тохиолдолд системд хэрэгтэй обьектуудыг тодорхойлох, тэдний бүтцийг зохиомжлоход төвөгтэй байдаг.

Жижиг хэмжээний програм хийхэд процедур хандалтат хэлээс илүү их зүйл бичдэг.

Бэлэн болсон програм нь процедур хандалтат програмаас хурдны хувьд үл мэдэг бага. Энэ нь ихэнх програмд огт мэдрэгддэггүй. Маш ихээр процессорын цаг

ашиглах програмуудын хувьд ялгаа нь харагддаг.

Page 21: Ood lesson1

21

Обьект Хандалтат ПрограмчлалObject Oriented Programming

Давуу тал :

Бусад програмистуудын хийсэн бэлэн обьектуудыг програмдаа авч ашиглах замаар програмыг хурдан хийж болдог.

Бие даасан “обьектуудын” кодыг ойлгоход засварлахад хялбар Том хэмжээний програм бичих тусам бичих кодын хэмжээ багасна. Бэлэн болсон програмыг ирээдүйд засварлах, хөгжүүлэхэд хялбар. Багаар ажиллан програм хийхэд маш тохиромжтой. Обьектуудын өгөгдлийн далдлалтаас болж програм маш

тогтвортой(stable), өөрчлөхөд хялбар байдаг. Програмын хэсгийг (обьектийг нь ) өөр програмуудад ямар ч

асуудалгүй ашиглаж болдог.

Page 22: Ood lesson1

22

ОХП хэзээ хэрэглэх вэ?

Ерөнхийдөө системүүд үргэлж өөрчлөгдөж хөгжиж байдаг боловч системд байдаг обьектууд нь ихэнхдээ хэвээр байсаар байдаг. Жишээ нь “Улаанбаатар ” ДС сургууль яаж ч өөрчлөгдсөн дараах

обьектууд байсаар л байна : Тэнхим, Хичээл, Багш, Оюутан, Анги, Байшин...

Тиймээс ОХП ашиглан бичигдсэн систем илүү тогтвортой (өөрчлөлтөд бага өртөх) байдаг.

ОХП-г хэрэглэхэд тохиромжтой : Том хэмжээний систем Өөрчлөлт ихээр хийгддэг систем

Page 23: Ood lesson1

23

Үйлчилгээ Хандалтат ПрограмчлалService Oriented Programming

Обьект хандалтат програмчлалд бие даасан бие биеээсээ хамааралгүй обьектууд нийлэн ажиллаж програмын үйл ажиллагааг хангадаг. Өөрөөр хэлбэл обьектууд нийлж нэг систем бүтээнэ.

Үйлчилгээ хандалтат програмчлал нь бие даасан системүүд хамтран ажиллан нэг өөр системийг бүтээх санаанд үндэслэсэн байдаг. Систем бүр нь бусдадаа өгөх боломжтой үйлчилгээнүүдийг агуулна.

Нэг системийг обьектууд бүтээнэ. Програмистийн хийж буй програм нь өөр янз бүрийн системүүд рүү

хандан үйлчилгээг нь аваад түүний үр дүнг нь нэгтгэн боловсруулан програмаа ажиллуулдаг. Жишээ нь байгууллагын мэдээллийн системийн програм нь

санхүүгийн тайлангаа интернэт дэх санхүүгийн системд хандан гаргуулж авах. Энэ тохиолдолд санхүүгийн тооцоо хэрхэн хийдэг нь манай програмистэд огт хамааралгүй болох юм.

Page 24: Ood lesson1

24

Үйлчилгээ Хандалтат ПрограмчлалService Oriented Programming

Дутагдал :

Програм нь сүлжээн дэх өөр системүүдээс хамаарна. Өөрөөр хэлбэл сүлжээ тасарвал тухайн үйлчилгээг авах боломжгүй байна.

Үйлчилгээнүүд нь төлбөртэй байж болно.

Сүлжээний хурдаас хамааран үйлчилгээг авах хурд өөр өөр байж улмаар програмын ажиллагааны хурданд нөлөөлнө.

Page 25: Ood lesson1

25

Үйлчилгээ Хандалтат ПрограмчлалService Oriented Programming

Давуу тал :

Бэлэн цогц үйлчилгээнүүдийг ашигласнаар програмын кодыг бичих нь улам бага болно. Төрөл бүрийн мэдлэгийг мэдэх албагүй болно. Жишээ нь санхүүгийн тайлан гаргах сүлжээний үйлчилгээ

монголд нэг газарт нэг л удаа бичээд өгөхөд санхүүгийн тайлан гаргах бүх бусад програмууд уг үйлчилгээг сүлжээгээр ашиглан тайлангаа хийгээд байж болно. Энэ тохиолдолд бусад програмистууд дахин хэзээ ч санхүүгийн тайлан гаргах тухай судлан код бичих шаардлаггүй болно.

Програм автоматраар сайжрах боломж. Үйлчилгээ үзүүлж буй газар нь үйлчилгээгээ цаг үргэлж

сайжруулж алдааг нь засан боломжийг нь нэмэгдүүлж байна. Энэ тохиолдолд уг үйлчилгээг авч буй бүх програмд ашигтай юм.

Page 26: Ood lesson1

26

Програм Хангамж Бүтээх Эндээс үүдэн системийг програмчлахдаа хоёр төрлийн

сэтгэлгээний аль нэг дээр тулгуурлаж болно :

1. Системийн үйл ажиллагаануудад нь тулгуурлах. Жишээ нь “Улаанбаатар” ДС системийн одоо явагдаж буй үйл

ажиллагаанууд нь : Алтанцэцэг багш өглөө 8:40-д ажилдаа ирдэг. Даваа гаригт 2-р пар дээр “Програмчлалын хэл” хичээлийг

ордог. Лхагва гаригт хуралд сууна. Их завсарлагаа 11:10-11-40 хооронд үргэлжилнэ. Оюутны танилцах үдэшлэг 9 сарын 25-нд болно. .....

Гэх мэт үйл ажиллагаануудыг нь програмчилсаар энэ системийг хийж болно.

Энэ нь үйл ажиллагаанд тулгуурлаж буй процедур хандалтат сэтгэлгээ юм.

Page 27: Ood lesson1

27

Програм Хангамж Бүтээх

Системийн үйл ажиллагаа огцом биш ч янз бүрээр өөрчлөгдөж байдаг. Харин системд байгаа обьектууд бараг өөрчлөгддөггүй.

Тиймээс эхний аргын дутагдалтай тал нь : Алтанцэцэг багш байхаа больж захирал болбол програмын

кодонд маш их засвар орно. Алтанцэцэг “Програмчлалын хэл” хичээлийг заахаа боливол

мөн адил зүйл болно. “Програмчлалын хэл” хичээл хасагдвал мөн өөрчлөлт ихээр

хийгдэнэ. Баахан үйл ажиллагаануудын кодыг хараад ойлгоход хүнд. Сургуулийн барилга солигдоход бүх код өөрчлөгдөнө ......

Page 28: Ood lesson1

28

Програм Хангамж Бүтээх Дараачийн арга нь :

2. Системийг бүрдүүлж буй обьектуудад нь тулгуурлах Жишээ нь “Улаанбаатар” ДС системийг бүрдүүлж буй обьектууд нь

Сургалтын алба, багш, хичээл, оюутан, анги, тэнхим, танилцах үдэшлэг, хурал, хичээлийн хуваарь ......

Системийн үйл ажиллагаанууд нь хамааралтай обьектууддаа бичигдэнэ. Багш хичээл заана, дүгнэнэ, диплом удирдана..... Оюутан хичээл үзнэ, төгсөнө, үдэшлэгт оролцоно.... Сургалтын алба хичээлийн хуваарь гаргана, үйл ажиллагаа

төлөвлөнө, ..... Энэ нь обьектуудад тулгуурлаж буй обьект хандалтат сэтгэлгээ юм.

Page 29: Ood lesson1

29

Програм Хангамж Бүтээх

Хэрвээ дээрх хоёр аргаар хоёр байшин хийсэн бол :

Процедур хандалтат байшин

Обьект хандалтат байшин

Гаднаасаа ялгаагүй мэт харагдана !

Page 30: Ood lesson1

30

Програм Хангамж Бүтээх Хэрвээ энэ хоёр байшингийн нүүрийг хуулж бүтцийг нь харвал :

Зураасаар системд явагдах үйл ажиллагааг (эсвэл тулгуур мод) төлөөлүүлэв.

Процедур хандалтат байшин Обьект хандалтат

байшин1. Аль байшинг бүтээхэд хялбар вэ?

2. Аль системд ямар нэг үйл ажиллагаа (эсвэл тулгуур мод) өөрчлөгдвөл илүү тогтвортой байх вэ, өөрчлөхөд хялбар байх вэ!

3. Аль системд шинээр цонх нэмэхэд (хасахад) хялбар вэ?

Цонх, дээвэр, хана ... обьектууд

Page 31: Ood lesson1

31

Програм Хангамж бүтээх

Асуудлыг юу юу хийх вэ гэдгээр нь судлахад хүндрэлтэй. Програм ямархуу байх талаар загвар гаргахад хэцүү болдог. (Процедур хандалтат байшингийн бүтцийг харна уу)

Аль нэг үйлдлийг өөрчлөхөд програмын олон газар даган өөрчлөгдөх хэрэгтэй болдог.

Том хэмжээний системд бүх зүйлүүд холилдож эхэлдэг.

Page 32: Ood lesson1

32

Програм Хангамж бүтээх

Асуудлыг ямар ямар үүрэгтэй ямар ямар хүмүүс, обьектууд байх вэ гэдгээр нь судлахад хялбар байдаг. Бодит амьдралаас харан програмаа загварчилдаг.

Обьектууд бие биеийнхээ дотоод ажиллагааг, дотоод бүтцийг мэддэггүй, түүнээс хамаарахгүй.

Тиймээс ямар нэг обьект өөрчлөгдөхөд бусад обьектод нөлөөлөхгүй.

Обьект нэмэх замаар системийг цаашид сайжруулан хөгжүүлж болно.

Том хэмжээний системийг эмх цэгцтэй болгоно.

Page 33: Ood lesson1

33

Бусдаасаа үл хамаарсан обьектууд байснаар ажил үүргийн нарийн хуваарилалт үүснэ.

Ингэснээр тухайн үйлдлийг чанартай аюулгүй гүйцэтгэх боломж гарна.

Обьект Хандалтат Програмчлал

Page 34: Ood lesson1

34

Жишээ нь: Ресторонд Тогооч гэсэн обьект байхгүй байсан бол уг рестораны

бүх ажилтан янз бүрээр хоол хийж эхэлнэ. Тэгснээр гарах хоолны чанар муудна. Хэн нэг нь буруу ажиллаж шарах шүүгээг эвдэлнэ... гм асуудлууд гарна. Харин тогооч обьект нь гал тогоотой ажиллах бүх үйлдэлийг эзэмшсэн тул бусад нь зөвхөн түүнд хоол хийж өгөх хүсэлт тавьж (мэссэж дамжуулж) тогооч нь хоолыг хийх болно.

Тогооч маань ажлаасаа гарч өөр газар ажиллавал түүнд ч шинэ компанид ч ямар нэг асуудал байхгүй. ӨХ обьектийг өөрчлөлгүйгээр өөр програмд ашиглах боломж

Хэрэв хоолны шинэ төрөл нэмэгдвэл Тогооч л түүний сурахад хангалттай, тогоочгүй системд бүх хүнд заах хэрэгтэй болно.

Обьект Хандалтат Програмчлал

Page 35: Ood lesson1

35

Системийг олон обьектуудаар нь бүтээх нь олон хүмүүс зэрэг зэрэг нэг програм дээр ажиллах боломж олгоно.

Жишээ нь гар утсыг аваад үзье : Дэлгэц Баттерей Цэнэглэгч Процессор Микрофон Чихэвч СИМ карт Memory карт

Нэг утасны эдгээр обьектуудыг өөр өөр компанид үйлдвэрлэн тэднийг угсран нэг утас болгодог.

Обьект Хандалтат Програмчлал

Page 36: Ood lesson1

36

Жишээ нь гар утсыг аваад үзье : Дэлгэц Баттерей Цэнэглэгч Процессор Микрофон Чихэвч СИМ карт Memory карт

Баттерей гэмтэхэд түүнийг өөр баттерейгээр солихын тулд утасны бусад хэсгийг өөрчлөх шаардлаггүй.

Өөр хүний СИМ карт хийсэн ч утасанд өөрчлөлт хийх шаардлаггүй.

Обьект Хандалтат Програмчлал