Програм хангамжийн архитектур (Software Architecture)

Similar documents
Програм хангамжийн архитектур (Software Architecture)

netcat Гарчиг Tuguldur BiBO

Програм хангамжийн архитектур (Software Architecture)

Multimedia Authoring and Tools L-2

Агуулга. Клоуд гэж юу вэ? Клоуд үйлчилгээний загвар. Клоуд Deployment загвар. Microsoft Azure. Business case. Асуулт & Харуулт

Бараа материалын нөөцийн удирдлага (Managing Inventory)

OO Package Design Principles

Article begins on next page

Лекц 1 Сэдэв: Дэд сэдвүүд : Си хэлний тухай Си хэлний бүтэц Тайлбар

ИНТЕРНЭТИЙН СҮЛЖЭЭНД СУУРИЛСАН ДОТУУР ХОЛБООНЫ ҮЙЛЧИЛГЭЭ. (Хэрэглэгчийн гарын авлага) 1 Хуудас

Программ суулгах ажилж эхлэх талаар гардаг нийтлэг асуултууд

Dependency Inversion Principle (DIP) Package Design: Coupling Principles

ЭДИЙН ЗАСАГЧИД СОНГУУЛЬД ОРОЛЦДОГ УУ? Д.Долгорсүрэн, Удирдлагын академийн эдийн засгийн тэнхмийн багш доктор, дэд профессор

UML and Design Patterns Prof. Dr. Eric Dubuis, V. June Engineering and Information Technology. On Package Design

CLOUD COMPUTING БУЮУ ҮҮЛЭН ТООЦООЛЛЫН ВИРТУАЛЧЛАЛЫН АРГЫГ БАНКНЫ СИСТЕМД НЭВТРҮҮЛСЭН ТУРШИЛТЫН ҮР ДҮНГЭЭС

Software Engineering

Хэмнэл ба давтамж. Лекц 13. МУИС-ХШУИС-МКУТ-ийн багш П.Гантуяа

Single Responsibility Principle (SRP)

ХАМТРАН АЖИЛЛАХ БИЗНЕС САНАЛ

Тоон хэлбэрт дуу авиаг боловсруулах

ДӨРӨВ.НИЙЛҮҮЛЭГЧИЙН ЭРХ, ҮҮРЭГ

Компьютерын сүлжээ Лекц-14

Халдлага Илрүүлэх Системийн Хосолмол Загварын Судалгаа

3.5. Гэнэтийн саатал гэж тухайн системийн үйл ажиллагаа 2 (хоёр) минутаас дээш хугацаагаар, төлөвлөгөөт бусаар хэсэгчлэн болон бүрэн зогсохыг.

LOGO. ШУТИС, ГУУС, ГГ- ийн салбарын дэд проф Г. Сарантуяа

ХӨРӨНГӨ ОРУУЛАГЧИЙН САНХҮҮГИЙН ХЭРЭГЦЭЭ, ЧАДАМЖ, ХУВИЙН ЗАН ТӨЛӨВТ НИЙЦСЭН ОНОВЧТОЙ БАГЦ БҮРДҮҮЛЭХ MB 1.0 ПРОГРАММ

Гарчиг Веб портал ашиглан үйлчилгээний тохиргоо хийх заавар... 2

ЗӨВЛӨХ ҮЙЛЧИЛГЭЭНИЙ ТУХАЙ ЗАРЛАЛ

Principles of Object-Oriented Design

Agile Software Development

МОНГОЛ УЛСАД ТУЛГАРААД БУЙ ӨРИЙН ХЯМРАЛ

Object-oriented design principles

МОНГОЛ УЛСЫН ЭРЧМИЙН САЛБАРЫН ӨНӨӨГИЙН БАЙДАЛ, ТУЛГАМДСАН АСУУДЛУУД, ШИЙДВЭРЛЭХ АРГА ЗАМ

СТАТИСТИК СИСТЕМ ГАРЫН АВЛАГА (ТӨСВИЙН ОРЛОГО, ЗАРЛАГЫН ГҮЙЦЭТГЭЛ; ХӨРӨНГИЙН ТАЙЛАН) Шинэчилсэн огноо:

Stability. Introduction

MANUAL DROUGHTWATCH SYSTEM. DroughtWatch 3.1. Information and Research Institute of Meteorology, Hydrology and Environment

[ ] Гүйцэтгэлийн түлхүүр үзүүлэлтүүд БЕРНАРД МАРР. Менежер бүр мэдвэл зохих 75 KPI

MATLAB ПРОГРАММЫН ТУХАЙ

ЦАЛИН ХӨЛСНИЙ СИСТЕМ

Стандартчиллын үндэсний зөвлөлийн 2011 оны 11 дүгээр сарын 24 -ний өдрийн 54 дүгээр тогтоолоор батлав.

The Release Reuse Equivalency Principle (REP) The Common Closure Principle (CCP) The Common Reuse Principle (CRP)

USB flash memory, USB принтер зэргийг клиент тус бүрээр ашиглахыг зөвшөөрөх/хориглох тохиргоог хийх боломжтой юу?

Лекц 16 Судалгааны ажлын боловсруулалт хийх Excel програмд дэд програм нэмж суулгах Excel Solver Datanalysis Office Excel File Options

БИЗНЕСИЙН УХААЛАГ МЭДЭЭЛЭЛИЙГ СУДЛАХ НЬ (Business Intelligence) Б.Гэрэлтуяа. О.Намуунцэцэг

Дизайн дахь өнгө ба гэрэл. Лекц 5

МОНГОЛБАНКНЫ ТӨЛБӨР ТООЦОО, БҮРТГЭЛИЙН ГАЗАР ТӨЛБӨР ТООЦООНЫ ТӨВ ТӨЛБӨРИЙН КАРТЫН EMV СТАНДАРТЫГ ДЭМЖИЖ АЖИЛЛАХ, ОДООГИЙН БАЙДАЛ

Иргэний бүртгэлийн систем

Computer graphics, 3D

Манай интернэт Wi-Fi ашиглах заавар

Долоодугаар бүлэг. ЗАХ ЗЭЭЛИЙН СЕГМЕНТЧИЛЭЛ, ЗОРИЛТОТ ЗАХ зээлийн сонголт, БҮТЭЭГДЭХҮҮНИЙ ХОНОГШУУЛАЛТ

Өнгөний тухай. МУИС ХШУИС МКУТийн багш П.Гантуяа

Буффер Overflow(Дүүргэх) (БОФ) гэж юу вэ? Сүлжээний орчинд БОФ exploit хэрхэн хийх вэ? (Зөвхөн x86 процессорын хувьд FreeBSD дээр)

Харилцагчийн удирдлагын систем

CrossPower. Microgrids-ийн хосолмол эрчим хүчний систем. цахилгаан түгээлт

Олон улсын салбарууд. улс. үйлчлүүлэгч байгууллагууд. Орос. Eвроп болон ТУХН. Aзи. Энэтхэг. Латин Америк

ТЕХНИК ТУСЛАЛЦАА ҮЙЛЧИЛГЭЭ

Олон улсын салбарууд. улс. үйлчлүүлэгч байгууллагууд. Орос. Eвроп болон ТУХН. Aзи. Энэтхэг. Латин Америк

УГСААТНЫ ЗҮЙН ҮЗЭСГЭЛЭН

Article begins on next page

Article begins on next page

МЭДЭЭЛЛИЙН АЮУЛГҮЙ БАЙДАЛ ӨНӨӨ ҮЕД

Bruno Bossola SOLID Design Principles

БОЛОВСРОЛ ИРЭЭДҮЙД: Төсөөлөл. Б.Зоригтбаатар ШУТИС, МХТС-ийн Электроникийн салбарын профессор. Мэдээлэл, холбооны технологи боловсролд ММТ 2017

Тохокү Их Сургууль Номын сангийн Хөтөч

САНСРЫН ХОЛБООНЫ IRIDIUM УТАС АШИГЛАХ ЗААВАР бусад сүлжээнээс

Манай интернэт Wi-Fi ашиглах заавар

Agile Principles, Patterns, and Practices in C#

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

Уламжлалт бус мэдээллийн хэрэглээ, анхаарах асуудал. Ш.Ариунболд

Abstraction. Design fundamentals in OO Systems. Fundamental Software Development Principles

SOLID Principles. Equuleus Technologies. Optional Subheading October 19, 2016

ТЕХНИКИЙН ТОДОРХОЙЛОЛТ

Object-Oriented Design

Олон улсын салбарууд. улс. үйлчлүүлэгч байгууллагууд. Орос. Eвроп болон ТУХН. Aзи. Энэтхэг. Латин Америк

Ардчилал ба улстөрийн авилга

Техникийн даалгавар Эрх зүйн цахим хөтөчийн програм хангамж, цахим хуудас

Их сургуулийн танхимаас

Фраскатийн гарын авлага СУДАЛГАА, ТУРШИЛТ ХӨГЖЛИЙН АСУУЛГАД БАРИМТЛАХ ЖИШИГ СТАНДАРТ

ZTESmart. Гарын авлага. МЦХ ний Мэдээллийн Технологийн Газар

Object design. François Schwarzentruber ENS Cachan Antenne de Bretagne

- Интернэтийн орчинд байвал хүссэн газраасаа шууд... - Компьютер, Таблет, гар утасны шинэ төрлийн хамгаалалт

Produced by. Agile Software Development. Eamonn de Leastar

Монгол Улс. Хэвлэл мэдээллийн эрх зүй. Онлайн, оффлайн орчин дахь хувь хүний нууц ба цахим эрх Сургалтын гарын авлага

09. Component-Level Design

Open Closed Principle (OCP)

KASPERSKY ENDPOINT SECURITY FOR BUSINESS ТАНИЛЦУУЛГА

"D. a&fcvn<m. /РСлркетиЯг,

Монгол улсын Өмнөд бүсийн (ӨГБ) газар доорх усны үнэлгээ Урьдчилсан дүгнэлт оны 9-р сар

Faculty of Information Technology Department of SE Marking Scheme

Төслийн МэдээллийнТайлан

ДЭЭД БОЛОВСРОЛ БА ИННОВАЦИ

Information from Hawaii!! Шашинд хөтлөн оруулах. Buddha's Wisdom Changes Your Life

МОНГОЛЫН ХӨРӨНГИЙН ЗАХ ЗЭЭЛИЙН ЗАГВАР (MSMM) : ДЭЛХИЙН САНХҮҮГИЙН ХЯМРАЛЫН ЭДИЙН ЗАСАГ, ХӨРӨНГИЙН ЗАХ ЗЭЭЛД ҮЗҮҮЛЭХ НӨЛӨӨ

ГАР БАГАЖНЫ танилцуулга

Төгрөгийн бодит ханшийн гажилт: BEER загвар

ДОТООДЫН ЗОЧИД БУУДЛЫН ҮЙЛЧИЛГЭЭНИЙ ӨРСӨЛДӨХ ЧАДВАРЫГ НЭМЭГДҮҮЛЭХ АРГА ЗАМУУД

Object design. François Schwarzentruber ENS Cachan Antenne de Bretagne

Монгол Улc - Нээлттэй мэдээлэл

ХҮНИЙ НӨӨЦИЙН БҮРТГЭЛ, МЭДЭЭЛЛИЙН СИСТЕМИЙН ХӨГЖҮҮЛЭЛТ ХӨДӨӨ АЖ АХУЙН ИХ СУРГУУЛИЙН ЖИШЭЭН ДЭЭР. Б.Аззаяа *, Д.Мөнхтуяа

SLD-1-MN П р о г р а м х а н г а м ж и й н к а т а л о г. Хамтдаа хөгжиж Хамтдаа бүтээцгээе /

Transcription:

Архитектурын зарчмууд Програм хангамжийн архитектур (Software Architecture) 2012 С. Бадрал

Нэр томьёо Агуулга Класс ба архитектурын төвшний загварууд SOLID Average Component Dependency Архитектурын төвшний загварууд Common Closure Principle Дүгнэлт Common Reuse Principle Acyclic Dependencies Principle Average Component Dependency Stable Dependencies Principle

Нэр томьёо Principle - Зарчим Substitution - Орлуулалт Segregation Тусгаарлалт Dependency Хараат байдал Inversion урвуулах Stable тогтвортой Instable - тогтворгүй

ОХ загварын зарчмууд S O L I D - Single Responsibility Principle - Open Closed Principle - Liskov Substitution Principle - Interface Segregation Principle - Dependency Inversion Principle

Single Responsibility Principle - SRP Хариуцлага = Өөрчлөх шалтгаан Interface Modem { Public void dial(string pno); Public void hangup(); Public void send(); Public void receive(); } Модем 2 хариуцлагыг хэрэгжүүлж байна. There should never be more than one reason for a class to change. Хоёр хариуцлага өөр өөр үндэслэлээр өөрчлөгдөж болно. Хоёр хариуцлага өөр өөр нэгжээр дуудагдаж болно.

Open Closed Principle - OCP A module should be open for extension but closed for modification.

Open Closed Principle - OCP Элементүүд өргөтгөхөд нээлттэй харин өөрчлөхөд хаалттай байх хэрэгтэй Элементүүд нийлүүлэгдсэнээрээ хэрэглэгдэх хэдий ч өргөтгөх боломжтой байх хэрэгтэй Полиморфоор хэрэгждэг Ирээдүйн өргөтгөл нь оршин буй эх кодыг өөрчлөгдөхгүйгээр хийгдэх боломжтой байх хэрэгтэй Зөвхөн хийсвэрлэлийн хараат байдал зөвшөөрөгдөж, конкрет хэрэгжүүлэлтийн хараат байдал зөвшөөрөгдөхгүй

Liskov Substitution Principle - LSP Subtypes must be substitutable for Their base types. Дэд төрөл өөрийн дээд төрлийн бүх гэрээг биелүүлнэ. Дарагдсан методууд нь урьдач нөхцлөөс илүү хүчтэй эсвэл дараах нөхцлөөс сул нөхцөл авахгүй. Тойрог ба Эллипсийн эрсдэлтэй модел

Liskov Substitution Principle - LSP Public void mymethod (Ellipse e) { Point p1 = new Point (10, 10); Point p2 = new Point (20, 20); e.setfocus (p1, p2); assert (e.getfocusa() == p1); assert (e.getfocusb() == p2); } Cirlce c = new Circle(); this.mymethod(c); Жава-д InstanceOf-г их дуудах нь дээд класс эсвэл зурвасыг хэрэглэхэд алдаа гарсан гэдгийг заана.

Interface Segregation Principle - ISP Many client specific interfaces are better than one general purpose interface. Хэрэв А Класс олон клиенттэй бол клиентийн методуудыг зурваст задлах хэрэгтэй. Клиентэд хамаатай зурвасууд нь А класст хэрэгжүүлэгдэнэ. Клиентэд хамаатай гэдэг нь нэг тодорхой зурвас хэрэглэж буй төстэй клиентүүдийг ангилна гэсэн үг. Хэрэв нэг эсвэл хоёр Клиент төрөл нэг өөрсдийн методоо хэрэглэж байвал тухайн методуудыг хоёр зурваст хоёуланд нь нэмнэ.

Dependency Inversion Principle - DIP Depend upon abstraction. Do not depend upon concretions. Процедурал зохиомжийн хараат байдлын бүтэц main mid1 mid2 mid3 details1 details2 details3 details4 Энд дээд төвшний компонентүүд нь нарийвчилсан хэрэгжүүлэлтээсээ хамаарна.

Dependency Inversion Principle - DIP ОХ зохиомжид хамаарлууд эргэсэн байдаг. Учир нь нарийвчилсан хэрэгжүүлэлтүүд хийсвэр зурвасаас хамаардаг. (Удамшил) High level policy Abstract interface Abstract interface Abstract interface details1 details2 details3 Энд дээд төвшний элементүүд нь зөвхөн зурвасуудаас хамаарна.

DIP Жишээ: Модем

Average Component Dependency - ACD ACD = Dep (Component) / #Components 6 3 3 3 1 1 1 1 1 2 3 2 ACD = 15/6 = 2,5 ACD = 12/6 = 2,0 Энд дээд төвшний элементүүд нь зөвхөн зурвасуудаас хамаарна.

Common Closure Principle - CCP Classes that change together, belong together Томоохон төслүүдэд классууд нь дэд пакетуудад, пакетууд нь дэд системүүдэд хуваагддаг. Нэг Release-д хэдийчинээ олон пакет/дэд систем өөрчлөгдөнө, нийт системийн дахин build хийх, шалгалт хийх, суурилуулт хийх зардал төдийчинээ өндөр байна. Тиймээс өөрчлөгдсөн пакет ба дэд системийн тоог хязгаарлах нь тустай байдаг. Үүнд хүрэхийн тулд ихэнхдээ нэгэн зэрэг өөрчлөгддөг классуудыг хамтад нь нэг дэд системд ангилах болдог.

Common Reuse Principle - CRP Classes that are not reused together, should not be grouped together Пакет эсвэл дэд системээс хараат байх нь энэ нэгжийн бүх элементээс хараат байна гэсэн үг. Хэрэв клиент нэгжийн зөвхөн цөөн хэдэн классаас хараат бөгөөд тэдгээрт нь өөрчлөлт ороогүй байсан ч дэд системүүдийг дахин шалгах болон суулгах (шинэ Release) зардал гардаг.

Acyclic Dependencies Principle - ADP The dependency between packages must not form cycles

Average Component Dependency ACD with Cycle ACD = Dep (Component) / #Components 6 6 3 3 6 6 1 1 1 1 6 1 ACD = 15/6 = 2,5 ACD = 26/6 = 4,33 Циклүүд нь ACD үр дүнг муутгана.

Логик Архитектур Зөвшөөрөгдсөн холбоосууд Кредит Данс Үйлчлүүлэгч DB Objects Business Objects Logic GUI

Логик Архитектур Зөвшөөрөгдсөн холбоосууд Кредит Данс Үйлчлүүлэгч DB Objects Business Objects Logic GUI

Average Component Dependency (1) ACD = 60/12 = 5 Кредит Данс Үйлчлүүлэгч GUI 12 8 4 Logic 9 6 3 Business Objects 6 4 2 DB Objects 3 2 1

Average Component Dependency (2) ACD = 51/12 = 4,25 racd = 15% Кредит Данс Үйлчлүүлэгч GUI 12 8 4 Logic 9 6 3 Business Objects 2 2 2 DB Objects 1 1 1

Average Component Dependency (2) ACD = 63/12 = 5,25 racd = ~23% Кредит Данс Үйлчлүүлэгч GUI 12 12 12 Logic 9 6 3 Business Objects 2 2 2 DB Objects 1 1 1

Stable Dependencies Principle - SDP Depend upon packages whose stability is lower than yours Ca = afferent couplings Тухайн пакет доторх классаас хамааралтай гадаад пакетын классын тоо. (Incoming dependencies) Ce = efferent couplings Тухайн пакет доторх класс нь хамааралтай гадаад пакетын классын тоо. (Outgoing dependencies) Instability I = Ce / Ca + Ce. [0,1]

Stable Dependencies Principle - SDP Instability I(x) = 0 / #Class + 0 Хэрэв Outgoing dependencies байхгүй бол I = 0 бөгөөд пакет stable Хэрэв Incoming dependencies байхгүй бол I = 1 бөгөөд пакет instable

Дүгнэлт Удаан амьдрах систем бүтээхийн тулд системийн бүх төвшинд тодорхой, ойлгомжтой бүтцийг анхаарах хэрэгтэй. Энэ зорилгоор өч төчнөөн зарчмууд бий Класс диаграмм Бид тэндээс SOLID, CCP, CRP, ADP, SDP -тай танилцлаа Бүтцийн нөлөөллийг хэмжих цэгнүүр буюу метрик ACD-метрик, Тогтвортой байдал