Софтуерен инженеринг базиран на компоненти
DESCRIPTION
Софтуерен инженеринг базиран на компоненти. Цели. Да покаже, че тази тема е свързана с разработката на стандартни компоненти и съчетаването им в приложения. Да опише компонентите и моделите им Да покаже основните действия в процеса CBSE - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/1.jpg)
Софтуерно инженерство 19 Slide 1
Софтуерен инженеринг базиран на компоненти
![Page 2: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/2.jpg)
Софтуерно инженерство 19 Slide 2
Цели
Да покаже, че тази тема е свързана с разработката на стандартни компоненти и съчетаването им в приложения.
Да опише компонентите и моделите им Да покаже основните действия в процеса
CBSE Да се обсъдят подходите при
съчетаването на компонентите и проблемите, които могат да възникнат.
![Page 3: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/3.jpg)
Софтуерно инженерство 19 Slide 3
Теми
Компоненти и модели на компоненти Процесът на CBSE Съчетаване на компоненти Component composition
![Page 4: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/4.jpg)
Софтуерно инженерство 19 Slide 4
Разработка базирана на компоненти
CBSE е подход за разработка на софтуер, който почива на многократното използване.
Този подход е резултат от неуспеха на ОО разработването да поддържа многократното използване. Единичните класове са твърде подробни и специфични.
Компонентите са по абстрактни от класовете обекти и могат да се разглеждат като самостоятелни доставчици на услуги.
![Page 5: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/5.jpg)
Софтуерно инженерство 19 Slide 5
Съществени елементи на CBSE
Независими компоненти специфицирани от интерфейсите си.
Стандарти за компонентите за улеснение на интегрирането на компонентите.
Middleware – междинни компоненти, които осигуряват поддръжката на взаимодействието м/у компонентите
Процес на разработка, пригоден за проект на многократно използване
![Page 6: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/6.jpg)
Софтуерно инженерство 19 Slide 6
CBSE принципите на проектиране
Освен на многократното използване, CBSE се основава на сигурни принципи:• Компонентите са независими и не си влияят;• Реализацията на компонентите е скрита;• Комуникацията се извършва чрез добре
дефинирани интерфейси.• Съществуват споделени платформи на
високо ниво, които намаляват разходите за разработка.
![Page 7: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/7.jpg)
Софтуерно инженерство 19 Slide 7
Проблеми при CBSE
Степен на доверие в компонентата – как може да се вярва в качествата на компонента без сорс код.
Сертифициране на компонентата – кой ще сертифицира качеството на компонентите?
Предвиждане на интегралните свойства – как ще се предскажат интегралните (emergent) свойства на взаимодействащите се компоненти?
Компромис на изискванията – как да анализираме баланса между възможностите на различни компоненти?
![Page 8: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/8.jpg)
Софтуерно инженерство 19 Slide 8
Компоненти
Компонентите доставят услуга като не е от значение, къде се изпълнява компонентата или програмния език, на който е написана.• Компонентата е независим изпълнима
единица,, която може да е съставена от един или повече изпълними обекти.
• Интерфейсът на на компонентата е публичен и всички взаимодействия се извършват чрез него.
![Page 9: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/9.jpg)
Софтуерно инженерство 19 Slide 9
Дефиниции на компоненти
Councill and Heinmann:• A software component is a software element that
conforms to a component model and can be independently deployed and composed without modification according to a composition standard.
Szyperski:• A software component is a unit of composition with
contractually specified interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third-parties.
![Page 10: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/10.jpg)
Софтуерно инженерство 19 Slide 10
Компонентата като доставчик на услуги
Компонентата е независима изпълнима единица. Не е нужно да се компилира преди да се използва с други компоненти.
Всички предлагани услуги са достъпни през интерфейс и всички взаимодействия с компонентата се извършват през този интерфейс.
![Page 11: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/11.jpg)
Софтуерно инженерство 19 Slide 11
Характеристики на компонентите 1
Стандартизирани Това означава, че компонентата, използвана в процеса на CBSE, трябва да отговаря на някакъв стандартизиран модел. Този модел може да дефинира интерфейсите, мета-данните, документацията, композирането и предаването.
Независими Компонентата трябва да е независима – трябва да може да се композира и предава, без да са необходими други специфични компоненти. Там, където компонентата има нужда от външно доставени услуги, те трябва да са указани в спецификация ‘requires’ на интерфейса.
Готови да се композират с други компоненти
Всички външни взаимодействия трябва да се извършват през публично дефиниран интерфейс. Освен това, компонентата трябва да дава достъп до информация за себе си като методи и атрибути.
![Page 12: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/12.jpg)
Софтуерно инженерство 19 Slide 12
Характеристики на компонентите 2
Готова за предаване Компонентата трябва да независима и да способна да функционира като самостоятелна единица на някаква компонентна платформа, която компонентния реализира модел. Това обикновено означава, че компонентната е бинарна и не се нуждае от компилация преди да бъде предадена.
Документирана Компонентите трябва да са напълно документирани, за да могат потенциалните потребители да решат, дали компонентата отговаря на нуждите им. Синтаксисът и семантиката на интерфейса трябва да са описани.
![Page 13: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/13.jpg)
Софтуерно инженерство 19 Slide 13
Интерфейси на компонентите
Изходен интерфейс (provides interface)Дефинира услугите, които се доставят чрез
интерфейса от компонентата към други компоненти.
Входен интерфейс (requires interface)Дефинира услугите, които трябва да са
достъпни, за да може компонентата да работи според спецификацията.
![Page 14: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/14.jpg)
Софтуерно инженерство 19 Slide 14
Интерфейси на компонентите
Изходен интерфейсВходен интерфейс
ComponentДефинира услугите от обкръжението на компонентата, които тя използва
Дефинира услугите, доставяни от компонентата
![Page 15: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/15.jpg)
Софтуерно инженерство 19 Slide 15
Компонента за събиране на данни
Provides interfaceRequires interface
Data collector
addSensorremoveSensorstartSensor
stopSensor
testSensor
listAllreport
initialise
sensorManagement
sensorData
![Page 16: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/16.jpg)
Софтуерно инженерство 19 Slide 16
Компоненти и обекти
Компонентите са самостоятелни, готови за предаване единици.
Компонентите не дефинират типове Реализацията на компонентите е скрита. Компонентите са независими от езика. Компонентите са стандартизирани.
![Page 17: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/17.jpg)
Софтуерно инженерство 19 Slide 17
Компонентен модел
Това е дефиниция на стандарти за реализация, документация и предаване на компонентите.
Примери на компонентни модели• EJB model (Enterprise Java Beans)• COM+ model (.NET model)• Corba Component Model
Компонентният модел специфицира, как трябва да се дефинира интерфейсът и елементите, които трябва да се включат в тази дефиниция.
![Page 18: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/18.jpg)
Софтуерно инженерство 19 Slide 18
Елементи на компонентен модел
Component model
InterfacesUsage
informationDeployment
and use
Interfacedefinition
Specificinterfaces
Composition
Namingconvention
Meta-dataaccess
Customisation
Packaging
Documentation
Evolutionsupport
![Page 19: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/19.jpg)
Софтуерно инженерство 19 Slide 19
Поддържащи системи
Компонентният модел е основа за система, която осигурява поддръжката на изпълняваните компоненти.
Тези системи осигуряват:• Платформени услуги, които позволяват компоненти
написани съгласно модела да комуникират помежду си.
• Хоризонтални услуги – независими от приложението услуги, използвани от различните компоненти
За да използват услугите на модела, компонентите се оформят в контейнер. Това е набор от интерфейси, използвани за достъп до реализацията на услугите на модела и за достъп на услугите на компонентата от други компоненти.
![Page 20: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/20.jpg)
Софтуерно инженерство 19 Slide 20
Услуги на компонентния модел
Platform services
AddressingInterfacedefinition
Componentcommunications
Exceptionmanagement
Horizontal services
Security
Transactionmanagement
Concurrency
Componentmanagement
Persistence
Resourcemanagement
![Page 21: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/21.jpg)
Софтуерно инженерство 19 Slide 21
Разработка на компоненти за многократно използване
За да се пригодят за многократно използване, компонентите, които са разработени за специфично приложение, се нуждаят от обобщаване.
Една компонента е по-пригодна за многократно използване, ако е свързана със стабилна абстракция на областта на приложение (бизнес обекта).
Например, за една болница, стабилните абстракции са свързани с основното предназначение – сестри, пациенти, лечение и др.
![Page 22: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/22.jpg)
Софтуерно инженерство 19 Slide 22
Разработка на компоненти за многократно използване
Тези компоненти могат да са разработени специално чрез обобщаване на съществуващи такива.
Многократното използваната компонента трябва• Да се основава на стабилна абстракция на областта;• Да крие представянето на състоянията;• Да бъде колкото се може по-независима• Да публикува изключенията чрез интерфейса си.
Има компромис м/у многократност и използваемостКолкото по-общ е интерфейсът, толкова по-вече приложения
могат да я използват, но тогава е по-сложен и по-малко използваем.
![Page 23: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/23.jpg)
Софтуерно инженерство 19 Slide 23
Промени правени за многократно използване.
Премахват се специфичните методи Променят се имената с по-общи. Добавят се методи за да се разшири
приложението. Обработката на изключенията се прави
последователна. Добавя се конфигурационен интерфейс за
адаптация Интегриране на изискваните компоненти, за да
се намали зависимостта.
![Page 24: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/24.jpg)
Софтуерно инженерство 19 Slide 24
Компоненти от наследени с-ми
Съществуващи с-ми, които изпълняват полезни бизнес функции могат да се препакетират като компоненти за многократно използване.
Това предполага написването на обгръщаща (wrapper) компонента, която реализира интерфейсите на наследената с-ма.
Макар и скъпо, това може и да много по-евтино отколкото пренаписването на наследената с-ма.
![Page 25: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/25.jpg)
Софтуерно инженерство 19 Slide 25
Компоненти за многократно използване
Разработката на компоненти за многократно използване може да е по-скъпо от разработката на специфични такива. Това увеличение на цената трябва да по-скоро за сметка на организацията, отколкото на проекта.
Обобщените компоненти може да са по-малко ефективни, като изисквания за памет и процесорно време от техните специфични еквиваленти.
![Page 26: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/26.jpg)
Софтуерно инженерство 19 Slide 26
Процесът на CBSE
Когато се използват готови компоненти, е съществено да се направи компромис м/у идеалните изисквания и услугите доставяни от разполагаемите компоненти.
Това включва:• Разработка на предварителни изисквания;• Търсене на компоненти и след това промяна
на изискванията в съответствие със съществуващата функционалност.
• Ново търсене на по-добри компоненти удовлетворяващи новите изисквания.
![Page 27: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/27.jpg)
Софтуерно инженерство 19 Slide 27
Процесът на CBSE
Identify candidatecomponents
Outlinesystem
requirements
Modifyrequirements
according to discoveredcomponents
Identify candidatecomponents
Architecturaldesign
Composecomponents tocreate system
![Page 28: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/28.jpg)
Софтуерно инженерство 19 Slide 28
Процес на идентификация на компонентите
Componentselection
Componentsearch
Componentvalidation
![Page 29: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/29.jpg)
Софтуерно инженерство 19 Slide 29
Въпроси на идентификацията на компонентите
Доверие. Трябва да се има доверие на доставчика на компонентата. В най-добрия случай калпавата компонента няма да работи както е в рекламата, а в най-лошия ще пробие сигурността.
Изисквания. Различни групи от компоненти удовлетворяват различни изисквания.
Валидиране• Спецификацията на компонентата може де не е
достатъчно подробна, за да се разработят добри тестове.
• Компонентите могат да имат нежелана функционалност. как може да се тества дали тя няма да влияе на конкретното приложение?
![Page 30: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/30.jpg)
Софтуерно инженерство 19 Slide 30
Провалът при изстрелването на Ariane
През 1996 г. се провали първият опит за изстрелване на Ariane 5, когато софтуерът на изстрелването излезе от контрол 37 сек. след началото.
Проблемът беше в използвана от предишна версия компонента ((the Inertial Navigation System), която отказа, защото предположенията, при които беше разработвана компонентата не бяха верни за Ariane 5.
Функционалността, която беше причина за срива, не се изискваше за Ariane 5.
![Page 31: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/31.jpg)
Софтуерно инженерство 19 Slide 31
Сглобяване на компонентите
Процес на събиране на компонентите за създаване на действаща с-ма.
То включва интегриране на компонентите една с друга и с инфраструктурата.
Нормално трябва да се пише "свързващ код" (glue code), за да се свържат компонентите.
![Page 32: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/32.jpg)
Софтуерно инженерство 19 Slide 32
Типове на сглобяване
Последователно, при което компонентите се изпълнява последователно. Това предполага сглобяване на изходните интерфейси на всяка компонента.
Йерархично, при което една компонента извиква услугите на друга. Изходният интерфейс на едната компонента се сглобява с входния интерфейс на другата.
Адитивна, когато интерфейсите на 2 компоненти се събират за създаването на нова компонента.
![Page 33: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/33.jpg)
Софтуерно инженерство 19 Slide 33
Типове на сглобяване
(a)
A A
B B
A B
(b) (c)
![Page 34: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/34.jpg)
Софтуерно инженерство 19 Slide 34
Несъвместимост на интерфейсите
Несъвместимост на параметрите – операциите имат еднакви имена, но различни типове.
Несъвместимост на операциите – имената на операциите в сглобяваните интерфейси са различни.
Незавършеност на операциите – изходният интерфейс на едната компонента е подмножество на входния интерфейс на другата.
![Page 35: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/35.jpg)
Софтуерно инженерство 19 Slide 35
Несъвместими компоненти
addressFinder
phoneDatabase (string command)string location(string pn)
string owner (string pn)
string propertyType (string pn)
mapper
mapDB (string command)displayMap (string postCode, scale)
printMap (string postCode, scale)
![Page 36: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/36.jpg)
Софтуерно инженерство 19 Slide 36
Компоненти - адаптери
Служат за решаване на проблема на несъвместимостта като съгласуват интерфейсите, които трябва да се сглобят.
За различните типове сглобяване са нужни различни типове адаптери.
addressFinder и mapper могат да се сглобят чрез адаптер, който извлича пощенския код от един адрес и го подава на компонентата mapper.
![Page 37: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/37.jpg)
Софтуерно инженерство 19 Slide 37
Сглобяване чрез адаптер
Компонентата postCodeStripper е адаптер, който улеснява последователната композиция на компонентите addressFinder и mapper.
![Page 38: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/38.jpg)
Софтуерно инженерство 19 Slide 38
Адаптер за компонентата за събиране на данни
Data collector
addSensorremoveSensorstartSensor
stopSensortestSensor
listAllreportinitialise
sensorManagement
sensorData
Adaptersensor
start
getdata
stop
![Page 39: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/39.jpg)
Софтуерно инженерство 19 Slide 39
Семантика на интерфейса
За да решите, дали съвместими по синтаксис интерфейси са действително съвместими, вие трябва да разчитате на документацията.
Да разгледаме интерфейс на компонента PhotoLibrary
public void addItem (Identifier pid ; Photograph p; CatalogEntry photodesc) ;public Photograph retrieve (Identifier pid) ;public CatalogEntry catEntry (Identifier pid) ;
![Page 40: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/40.jpg)
Софтуерно инженерство 19 Slide 40
Сглобяване на Photo library
PhotoLibrary
adaptorImage
Manager
getImage
UserInterface
getCatalogEntry
addItem
retrieve
catEntry
![Page 41: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/41.jpg)
Софтуерно инженерство 19 Slide 41
Документация на Photo Library
“This method adds a photograph to the library and associates the photograph identifier and catalogue descriptor with the photograph.”
"какво се случва ако идентификаторът е вече асоцииран със снимка в библиотеката?""дали описанието на снимката е асоциирано кактос каталога, така и със самата снимка, т.е. ако изтрия снимката, ще изтрия ли и информацията в каталога?"
![Page 42: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/42.jpg)
Софтуерно инженерство 19 Slide 42
Object Constraint Language (OCL)
Object Constraint Language е проектиран да дефинира ограниченията асоциирани с UML моделите.
Основава се на понятието за спецификация пре и пост условията – подобно на езика Z.
![Page 43: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/43.jpg)
Софтуерно инженерство 19 Slide 43
Формално описание на фото-библиотеката
![Page 44: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/44.jpg)
Софтуерно инженерство 19 Slide 44
Условия за фото-библиотеката
Както е показано OCL асоцииран с компонентата Photo Library казва,че:• Не може да има снимка в библиотеката със същия
идентификатор както на тази, която се добавя;• Библиотеката трябва да съществува – предполага се,
че със създаването на библиотеката се добавя един елемент;
• Всеки добавен елемент увеличава размера на библиотеката с 1
• Ако извличате, като използвате същия идентификатор, ще получите снимката, която сте добавили;
• Ако търсите в каталога, използвайки същия идентификатор, ще намерите елемента, който сте създали.
![Page 45: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/45.jpg)
Софтуерно инженерство 19 Slide 45
Компромиси при сглобяването
Когато сглобявате компоненти, може да откриете конфликти м/у функционалните и нефункционалните изисквания и конфликти м/у нуждата за бързо приключване и усъвършенстване на с-мата.
Трябва да вземете някои решения като:• Коя композиция от компоненти е ефективна за
осигуряване на функционалните изисквания?• Коя композиция от компоненти позволява бъдещи
промени?• Какви ще бъдат интегралните свойства на
композираната с-ма?
![Page 46: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/46.jpg)
Софтуерно инженерство 19 Slide 46
Събиране на данни и генериране на отчети
(a) Datacollection
(b)
Datamanagement
Reportgenerator
Datacollection Data base
Report
Report
![Page 47: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/47.jpg)
Софтуерно инженерство 19 Slide 47
Обобщение
CBSE е подход, основан на многократното използване и на съчетаването на слабо свързани компоненти в с-ми.
Компонента е софтуерна единица, чиято функционалност и зависимост са напълно определени от интерфейсите й.
Един компонентен модел дефинира набор стандарти, които трябва да се следват от доставчиците и създателите на с-ми.
По време на CBSE процеса, процесите на инженеринга на изискванията и на проектирането на с-мата се припокриват.
![Page 48: Софтуерен инженеринг базиран на компоненти](https://reader036.vdocuments.pub/reader036/viewer/2022081501/568151c8550346895dbffd9a/html5/thumbnails/48.jpg)
Софтуерно инженерство 19 Slide 48
Обобщение
Композирането на с-мата е процес на "навързване" на компонентите, за да се създаде с-ма
Когато се сглобяват готови компоненти, обикновено трябва да се пишат адаптери, които съгласуват интерфейсите им.
Когато се избират компоненти, трябва да се взимат под внимание функционалните изисквания, нефункционалните изисквания и перспективата за еволюция на с-мата.