Badral's personal blog
Интернет миний ертөнцийг хардаг цонх …

February, 2011Archive for

Software Requirements Specification

Wednesday, February 16th, 2011

Болорсофт фирмийн үйл ажиллагаанд өмнө боловсруулж байсан үүргийн дэвтэр болон Системийн тодорхойлолт-оо ашиглахаар туршсан боловч амжилт олсонгүй. Манайхан маш ерөнхий, баримтжуулах дургүй, системчлэх чадвар сул тул их нарийвчлах нь тусгүй бололтой юм. Тиймээс эргээд нөгөө 2-оо нэгтгээд арай ерөнхий бас хялбар болгочихлоо. Англиар Software Requirements Specification хэмээх энэхүү баримтын тоймыг энд нийтэлье.
Software Requirements Specification
Баримтад систем гэсэн үгийг тогтолцоо, функционалыг үйл ажиллагаа гэх мэтээр монголчлон авсан болно.
Тогтолцооны бүрэн тодорхойлолт 1
(Software Requirements Specification) 1
1 Өмнөх үг (Introduction) 4
2 Анхны нөхцөл ба зорилго (Initial situation and goal) 4
3 Үйл ажиллагааны шаардлага (Functional specification) 5
4 Үйл ажиллагааны бус шаардлага (Non-functional specification) 6
5 Амьдралын мөчлөгийн бүдүүвч ба тогтолцооны архитектур (Life cycle draft and complete
system architecture) 7
6 Тогтолцооны интерфейсүүд (System interfaces) 8
7 Нийлүүлэлтийн хүрээ (Scope of delivery) 9
8 Хүлээн авах болзол ( Acceptance criteria ) 10
9 Товчилсон үгийн жагсаалт (List of abbreviations) 11
10 Зургийн жагсаалт (List of figures) 11
11 Номзүй (Bibliography) 11
Эх баримтыг Болорсофтын дотоод үйл ажиллагаанд ашиглаж байгаа тул энд бүрэн эхээр нь оруулах боломж байсангүй.

Programming is not just writing command lines but rather an art

Friday, February 11th, 2011

Миний харж байгаагаар орчин үеийн програм хангамж хөгжүүлэх нь хуучны математикч хүн бодож байгаад хэдэн тушаал цувуулан бичсэн алгоритм гаргадаг байсан зүйл биш болж УРЛАГ, УРАН САЙХАН болсон байна гэж үзэж байна. Яг л зураач хүн бэх, будаг зэрэг хэрэгслээ барьж байгаад, хийсвэрлэн сэтгэсэн зүйлээ цаасан дээр хүн харж баясдаг, бодит зүйл болгон буулгадаг шиг програм хөгжүүлэгч хүн компьютер, програм, цаас, харандаа зэрэг хэрэгслүүд барьж байгаад толгойдоо орж ирсэн хийсвэр санаа бодлоо програм хангамж гэдэг зүйл болгон хүн бүрийн өдөр бүр шахуу хэрэглэдэг бодит материал болгон буулгаж байгаа нь яг л адилхан. УРАН САЙХНЫГ ҮЗҮҮЛНЭ гэдэг нь 10 мөр кодыг 2 мөр кодоор сольж бичих. Кодыг гоё, цэвэрхэн хэлбэршилтэй бичих. Үг үсгийн алдаагүй, хамгийн оновчтой тайлбар бичих. Хатуу тэмдэгт мөрийг холихгүй байх. Хамгийн хурдтай бөгөөд үр ашигтай функц, процедур, хэрэглүүр ашиглах. Маш оновчтой, дахин ашиглагдах функц, хэрэглүүр бичих. Стандартыг нягт барьж, бүх газар нь дүрмээ мөрдөх зэрэг болно.
Ирээдүйн программистууд бүгд инженер болох бөгөөд тэд зураад л сууж байх болно. Жаахан ядаргаатай зүйл байвал код шигтгэж өгнө. Тохиргоо хийнэ. Сүүлийн үед эх кодыг үүсгэдэг програм хангамжийн хэрэгслүүд нэлээд хөгжиж хүч түрэн орж ирж байна. Ихэнх хөгжүүлэгчдийн хэрэглэдэг Микрософт визуал студио, эмбаркадеро хэрэгслүүдэд ч сайн муу ч бүрэн болон хагас автомат код үүсгэх хэсэг нэлээд агуулагдах болжээ. Аль 5,6 жилийн өмнө хийж байсан миний мастерын ажил ч “Граф хандалтат програмчлалын жава эх кодыг” үүсгэх агуулгатай ажил байсан билээ.

За нэг зүйл хэлэхгүй зүгээр өнгөрч чадахгүй нь. Манай улсын их дээд сургуулиуд програм хангамжийн салбарт чанартай боловсон хүчин огт бэлтгэж чадахгүй байна. Ер нь манай салбарт ч гэлтгүй ихэнх нь л өөрчлөлт шинэчлэлт, халаа сэлгээ, энэ ч газрын туршлага, тэр ч газрын жишиг гэх мэт ганхаж савласаар нэг л сонин өөрийн онцлог, суурь байхгүй хачин болчихсон мэт.
Миний харж байгаагаар: “Дунд сургуулиуд бол сурагчдыг янз бүрийн хуурай онолоор дарах биш, эсвэл шавь төвтэй сургалт гэж зөнгөөр нь хаях биш, тухайн сурагчид СУРАХ АРГА БАРИЛ эзэмшүүлэх нь гол зорилго байдаг баймаар.” Гэтэл энэхүү зорилгын хэр биелж байгааг та бүхэн харж мэдэрч байгаа биз ээ.
Харин их дээд сургуулиуд оюутнуудыг мөн шавь төвтэй сургалт гэж зөнд нь хаях, эсвэл болсон болоогүй хэрэглээний талаар дурдах (дурдаад дуусах ч зүйл биш), эсвэл толгой сэхээгүй цээж бичиг хийж сургах биш “АСУУДЛЫГ ТОДОРХОЙЛОХ, АСУУДЛЫГ ШИНЖЛЭХ БОЛОН ШИЙДЭХ ЧАДВАР, СУДАЛГААНЫ АРГА БАРИЛ ЭЗЭМШҮҮЛЭХ” нь гол зорилго баймаар санагдах юм. Их дээд сургуулиуд ямархуу зорилго тавьсан байдгийг мэдэхгүй юм. Ямар ч гэсэн “Програм хангамжийн инженерчлэлийн үндэс” гэсэн хичээл үзэлгүйгээр “Програм хангамжийн инженер” гэсэн гарчигтай диплом олгоод сууж байгаа нь хэвээрээ л байна.
Асуудлыг тодорхойлох нь бодлогын тавилыг тодорхойлно л гэсэн үг. За байз маш хялбар өдөр тутмын амьдрал дээрээс нэг жишээ авъя.
“5 литрийн савтай усыг 5 алхмын газар зөөгөөд тавь” гэсэн даалгавар өгөхөд 7 настай балчраас 70 настай буурлууд (6 кг зүйл даах чадвартай бүх хүн) дор нь гүйцэтгэх нь тодорхой. Харин манай салбарын хувьд ийм даалгавар өгөхөд дараах байдалтай л байна.
1. Асуудлыг тодорхойлохдоо: За ерөнхийдөө бол савтай зүйлийг хаа нэгтэй газар аваачих юм байна. Асуудлыг тодорхойлно гэдэг ерөнхийг нарийвчлах. Бүрхэг зүйл байвал тодруулах. Гэтэл харин ч эсрэгээрээ “5 л сав нь ямар нэг сав, ус гэдэг нь ямар нэг зүйл, 5 алхмын газар нь нэг тийш” болчихсон байх жишээтэй.
Бодлогын тавил бол ямар ч гэсэн: “5 литрийн савтай усыг 5 алхмын газар зөөгөөд тавь“. Жаахан нарийвчилбал магад “5 литрийн төмөр савтай дүүрэн эсвэл тэдэн л усыг баруун зүгт 5 алхмын газар зөөгөөд тавь” гэж гарч ирж болох юм.
2. Асуудлыг шинжлэхдээ: 5 литрийн сав юм байна, устай эд байх нь, 5 алхмын газар зөөж тавих юм байна. Асуудлыг шинжлэх болон асуудлыг тодорхойлох хоёрыгоо ялгаж ерөөсөө чадахгүй юм.
Уг нь бол: 5 литрийн сав нь төмөр юм уу хуванцар юм уу, бариултай юм уу үгүй юм уу, бариултай бол оосор байна уу, хатуу эд байна уу, тагтай юм уу үгүй юм уу, ус нь дүүрэн юм уу дундхан юм уу, 5 алхмын газар нь хаана ямаршуухан юм байна, бартаа саад нь юу юм бол, аль чиглэлд аваачих юм бол, тавих газар нь тэгшхэн юм уу үгүй юм болов уу гэх зэргийг шинжлэх баймаар.
3. Асуудлыг шийдэхдээ: За даа би ч төмөр сав мэдэхээс хуванцар сав мэдэхгүй юм байна, хэнээс будаа идэх вэ? (Тодруулбал: би Жава хэл л мэдэхээс PHP сураг байхгүй. Яая даа байз?) Эсвэл манайхны сийрэг толгойтой сэргэлэн гээд магтаад байдаг зарим нөхдийн нэг бол: За хө хаанаас яг адилхан хоосон 5-н сав олж ирээд даалгаврыг нь яг хийчихсэн юм шиг харагдуулах вэ??. За арай дээр шинжилсэн нь: Өө юухан байхав, 5-н сав юм чинь үсрээд л 5 хан литр ус шүү дээ. Тэрийг бол чигчий хуруугаараа л өргөнө дөө. Арай даруухан бөгөөд гайгүй нэг нь за байз амсраас нь хоёр гараараа чимхээд өргөхөд яаж ийж байгаад тэр хавь руу нь дөхүүлээд хаячих л байлгүй дээ. Тэгж байгаад зүтгэнэ дээ.
Уг нь бол За хө энийг хаанаас нь барьж авах вэ? Оосортой юм байна. Аль нэг тал руугаа унжсан байж таараа. Тэрийг нь чимхэж бариад өргөөд үзье. Даахааргүй бол жаахан ахиулаад атгаж барихыг бодъё эсвэл шинжилснээ харж байгаад тагтай байвал өнхрүүлж байгаад 5 алхмын газар явуулаад босгоё гэх мэт баймаар.
4. Үр дүн нь: Амархан даалгавар болохоор нь чигчий хуруугаараа өргөөд явж байсан чинь дүүрэн устай байсан болохоор алдчихлаа ш дээ. Гэхдээ тэр хар даа. Савыг нь аваачаад тавьчихсан байгаа биз дээ. Эсвэл За байз яаж сайхан биелүүлчихсэн юм шиг харагдуулах вэ. Батаагийн хоосон савыг л аваачиж тавихаас. Өөрөөр амжихаасаа өнгөрлөө.
Хамгийн гайгүй шийдсэн нь: Амсраас нь хоёр гараараа чимхээд явж байтал яг дунд нь ороод гар чилж алдаад уснаас нь жаахан асгасан. Гэхдээ дажгүй шүү амжилттай зөөлөө. Уг нь жаахан эртхэн эхэлсэн бол дунд нь нэг амраад тавьсан бол ч усыг нь дундруулахгүй л гүйцэтгэчих байлаа. Дараагийн удаа эртнээс эхэлнэ ээ.
Уг нь бол үр дүн нь: 5 литрийн, таггүй, баруун тал руугаа унжсан мяндсан оосортой савтай 4 орчим литр усыг, оосроос нь чангахан барьж байгаад таван алхмын цаана буй довны ёроолд тавьчихлаа. Тагтай байсан бол өнхрүүлье гэж бодсон чинь таг байсангүй. Уг нь би ийм төмөр савыг мэдэхгүй л дээ, хуванцар сав л өргөж үзэж байсан. Ер нь асуудлаа л олж хараад зөв бариад авсан бол адилхан л байдаг юм байна. Гэх зэргээр л боддог баймаар юм.
Манай салбарт иймэрхүү л байдалтай боловсон хүчин бэлтгэгдээд байх шиг байна эсвэл би буруу яриад байна уу?

Сарны хөдөлгөөн ба монгол цаг тоолол

Friday, February 4th, 2011

Сайхан шинэлцгээж байна уу. За өмнөх бичлэгтээ амласан ёсоор нөгөө цаглабараа хийхээр Jean Meeus “Astronomical algorithms” гэсэн номыг татаж аваад шинэ, бүтэн сар олох алгоритмыг нь ямар ч гэсэн PHP дээр биччихээд цагаан сарын битүүний өдрийг олох функц бичих гэтэл нөгөө илүү дутуу сарын асуудлыг шийдэх хэрэгтэй болов. Юуны өмнө орсон гарсан гийчинд хэрэгтэй юм болов уу гээд нар сар дэлхий гурваа нэгэн гадаад сайтын санаанаас хулгайлж монголчлон зурав.
Сарны хөдөлгөөн
Ингээд цааш мэдээлэл хайн интернетээр шүүрдэж эхлэв. Эхний удаад
http://nominarhiv.blogspot.com/2010/03/blog-post_1415.html мэдээллийг оллоо. За хө нээрээ ч тийм ч буруу хэлээгүй л байх шиг байна лээ. Үнэхээр бид намар ч шинэлдэг байсан нь үнэн мэт. Энэхүү мэдээлэлд бидэнд хамаатай нэг л маш сайхан санаа байна. Тэр нь жинхэнэ монгол тоололд өнөөдрийнх шиг 2 шинийн нэгэн эсвэл ямар нэг 2 адилхан дугаартай өдөр байснаа нэг өдөр алгасаж бариад явчихдаг тийм хөгийн юм байхгүй, яг сайхан дэс дараалаад явдаг байсан гэсэн өгүүлбэр. Үнэхээр зөв. Тоолол шуу юм зохиож л байгаа юм бол 2 ижил өдөр байснаа нэг өдөр ор тас хасаад л байгаа нь нэг бол нүд нь булдруу болсон амьтан сарныхаа хэлбэрийг нарийн ялгаж чадалгүй ижил тэмдэглэсэн, үгүй бол гарч харахаа мартчихаад бантсан нэрэндээ ижил тэмдэглэчихээр тоолол нь цаглабар биш болоод ирхээр бүр бантаад нэг өдөр хасчихаж байгаагаа юм шиг л харагдаж байна. Үүнд илүү дутуу логик ямар нэг утга үгүй гэдэг дээр би л лав мөрий тавихад бэлэн.
Мөн намар цагаан сараа тэмдэглэдэг байсныг нь батлах мэт
http://mongolians.multiply.com/journal/item/4/4 олдлоо. Энд ч авууштай хэрэгтэй сургаал нэлээн харагдана лээ шүү, уншчихаарай.
За даа бид ч нэг л их түүх ярьж цээжээ дэлдсэн мундаг нөхдүүд байдаг хэрнээ үнэн түүхээ ч мэддэггүй юм байна даа. Дээр нь тэр түүхийн баримтуудын цаг тооллоо өдгөө бидний ч, бишдийнх нь ч хэрэглэж байгаа Грегорийн цаг тоолол руу шилжүүлэх гэж бантан хутгаж өгч дээ хэмээн бодогдов. Шаардлагатай бол түүхийн улсууд нь холбоо бариад надаар хөрвүүлүүлж авч болно шүү.
Гэхдээ одоо ямар би нөгөө цаглабараа өдгөөгийн намрын дунд сарын шинийн нэгэнд эхлүүлнээ гээд суугаад байлтай биш цааш хайлтаа үргэлжүүллээ.
http://www.doldon.com/xe/sambar2/24506 оллоо. Өнөө миний шүүмжлээд байгаа Тэрбиш гуай ярьсан нь дүрээрээ олдлоо. Хичнээн монгол монгол гэж орилсон ч төвд зурхай л юм байна шүү дээ. Тэр шороон үхэр энээ тэрээ зураад байдаг нь хятад зурхай юм байна. Бид хужаагуудаас л зөрүүлж байвал болоо яадгийн гээд байсан чинь хөөрхийс шороон үхрийн өнгө гээд л дандаа хужаа зураг хараад л, шинжээд, мэргэлээд л суугаад байдаг юм байна ш дээ. Золигийн ч юм бол доо. хэхэ Тэгээд л монгол монгол гэчихээд дүвзий одтой ямар ямар өдөр ч гэнэ вээ бүү мэд. Чихэнд наалдах л юм лав алга.
Харин ямар ч гэсэн бид битүүн гэсэн өдөртэй байхад ямар ч тохиолдолд хятадуудтай нэг өдөр шинэлэхгүй шүү дээ. Зарим үед давхцаж таараад байгаа бол Тэрбиш гуайн балаг шүү. Тэгж хэзээ ч таарах ёсгүй. Бид ядаж л нэг өдрийн дараа шинэлж байх ёстой. (битүүнтэй тул) За за дээрх материал манжийн дарлалын гайгаар бидэнд тулгасан төвд тоолол болон төвд сургаалаас цааш олигтой мэдээлэл өгөөгүй тул цааш хайлаа.
http://www.postnews.mn/index.php?cp=news&task=view&news_id=3199&page=5 ээ буянаа нэм. Ямар буянтай нь үүнийг оруулчихсан юм бол, маш их баярлалаа. Арван жилийн хүүхдүүдэд зориулж оруулсан мэдээлэл бололтой юм. Товч бөгөөд маш сайхан өгөөжтэй юм.
Одоо ямар ч гэсэн цагаан сарын шинийн нэгэн битүүний өдрөө олоход асуудалгүй боллоо. Хэрэв хэн нэгэн буянтай нь өнгөрсөн жилийн илүү сар нь “хавар, зун, намар, өвөл” дөрвийн аль нь илүү сартай байсныг сэтгэгдлээр оруулбал баярлах болно. Тэгвэл маргааш алгоритмаа дуусгаад тавьчихнаа.
Харин бүрэн хэмжээний цаглабар хийх болбол өдөр хоног хасдаг давхцуулдаг гажиг догол юм хийх хэрэггүй байх, тийм үү? За одоо хоолой өвдөөд халуурч суугаа тул өндөрлөе.
Сар шинэдээ сайхан шинэлээрэй.

Цагаан сарын маргааныг эцэслэн шийдье

Thursday, February 3rd, 2011

За нөгөө архагшсан бичлэгээ оруулъя даа. Энэ жил бид 1 хоног түрүүлж битүүлж байна. Харин яахав 2 шинийн нэгэнтэй ч гэх шиг сонин юм ярьж байгаад нэг өдөр сунгаад 2 дахь шинийн нэгэн дээр нь зөв шинэлж таарч байх шиг байна. Тухайн өдрийг би 2008 онд Цагаан сар ба хар нулимс бичлэгтээ тэмдэглэж байсан билээ.
Би түүнээс хойш 2009 онд Бас л цагаан сарын маргаан, 2010 онд Сар шинийн мэнд дэвшүүлье! гэсэн бичлэгүүдийг жил алгасалгүй бичиж байсан.
Харин энэ удаад цаашид бичлэг оруулж байх зав олдохгүй болох хандлагатай тул асуудлыг эцэслэн шийдье гэж бодоод http://moon.bolor-toli.com/ гэсэн хаягт цагаан сарын шинийн нэгэн болон битүүний өдрийг гаргадаг, сар бүрийг тэргэл, шинэ саруудыг гаргаж ирдэг цаглабарыг хийж тавихаар шийдлээ.