СУ “Св. Климент Охридски”
Специалност “Софтуерно инженерство”
Курс “Софтуерни архитектури и разработка на софтуер
СОФТУЕРНИ АРХИТЕКТУРИ И
РАЗРАБОТКА НА СОФТУЕР
Едносеместриален курс за специалност
“Софтуерно Инженерство”
СУ “Св. Кл. Охридски”
СУ “Св. Климент Охридски”
Специалност “Софтуерно инженерство”
Курс “Софтуерни архитектури и разработка на софтуер
ВЪВЕДЕНИЕ В СОФТУЕРНИТЕ
АРХИТЕКТУРИ
Лекция № 1
СЪДЪРЖАНИЕ
� Нуждата от софтуерна архитектура
� Историческа справка
� Паралел между софтуера и други области
� Понятие за софтуерна архитектура
Място на софтуерната архитектура в
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
соф
туер
� Място на софтуерната архитектура в
софтуерното производство
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
3
НУЖДАТА ОТ АРХИТЕКТУРИ
� Целта е да се решават практически проблеми
възникващи при разработката на големи
софтуерни системи
� Проблеми свързани със спецификата на
софтуерното инженерство
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
соф
туер
софтуерното инженерство
� Необходимост от създаване на условия за
многократна употреба
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
4
СПЕЦИФИКИ НА СОФТУЕРНОТО
ИНЖЕНЕРСТВО
� Сравнително нова област, към която има
твърде големи очаквания
� Създават се твърде комплексни и в същото
време абстрактни и неосезаеми системи
� Софтуерът не се произвежда сам за себе си,
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
соф
туер
� Софтуерът не се произвежда сам за себе си,
много често той трябва да се съобразява с
промени в други области
� Поведението на потребителите е
непредсказуемо
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
5
ПРОИЗХОД НА СОФТУЕРНАТА
АРХИТЕКТУРА
� Понятие за системна архитектура –
съществува от много време
� Много от идеите произлизат от други не-
компютърни области
� Всяка софтуерна система си има архитектура
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
соф
туер
� Всяка софтуерна система си има архитектура
� Дори и да не подозираме за това и да не сме я
проектирали
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
6
ОЩЕ ЗА НУЖДАТА ОТ АРХИТЕКТУРИ
� Всички области свързани със създаване на
някакъв продукт предполагат предварително
изготвяне на проект за него
� Строителство
� Машиностроене
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
соф
туер
� Машиностроене
� Електроника
� И т.н.
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
7
КОРАБЪТ ВАСА – 1628 Г.С
оф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
соф
туер
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
8
НЯКЪДЕ ИЗ СОФИЯ – 2012 Г.С
оф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
соф
туер
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
9
ПОПУЛЯРНИ СОФТУЕРНИ ПРОБЛЕМИ
� Спътник за изледване на климата на Марс
катастрофира през 1999
� Проблем – объркване на мерните единици
� Влак спира да се движи в Англия
� Проблем - фалшива “промяна на
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
соф
туер
� Проблем - фалшива “промяна на
местоположението” на следващата гара,
предизвикана от обновяване на софтуера
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
10
ИЗВОД
� За да е възможно една голяма система да бъде
� Разбрана
� Разработена с предвидими време и цена
се налага информацията за отделните
елементи, които я изграждат да бъде
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
соф
туер
елементи, които я изграждат да бъде
структурирана и подходящо описана
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
11
ИЗВОД
� Софтуерната архитектура (СА) представлява
точно такова описание
� СА играе ролята на инструмент за
комуникация, обосновка, анализ и растеж
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
соф
туер
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
12
КАКВО Е СА?
� Обикновено СА се създава като първа стъпка
по време на проектирането, като целта е да се
гарантира наличието на дадени качества в
системата
� Детайли като алгоритми, представяне на
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
соф
туер
� Детайли като алгоритми, представяне на
данни, реализация, и т.н. не са предмет на СА
� Предмет на СА е поведението и връзките
между различни елементи, разглеждани като
“черни кутии”
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
13
ДЕФИНИЦИЯ
� Съгласно SEI:
“Архитектура на дадена софтуерна система е
някаква съвкупност от структури, показващи
различните софтуерни елементи на системата,
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
соф
туер
различните софтуерни елементи на системата,
външно видимите им свойства и връзките между
тях”
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
14
АНАЛОГИИ СЪС СТРОИТЕЛСТВОТО
� За всяка сграда се описват различни гледни
точки
� Схема на водопроводна мрежа
� Схема на ел. инсталация
� Изкопни схеми
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
соф
туер
� Изкопни схеми
� Схема на разположението на помещенията и др.
� Съществува и документация на съответствието
между тези различни структури
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
15
ОЩЕ АНАЛОГИИ
� Специализация на ролята на различните
заети в създаването на продукта
� Комуникация и удовлетворяване на
изискванията на клиента
� Съществуват редица утвърдени практики под
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
соф
туер
� Съществуват редица утвърдени практики под
формата на тактики, методи, шаблони и
стилове
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
16
ОТ КАКВО СЕ ОПРЕДЕЛЯ СА?
� Широко разпространено е схващането, че СА
зависи само от изискванията;
� Истината е, че се намесват и много други
фактори на обкръжението (environment), а
именно:
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
соф
туер
именно:
� технически, бизнес и социални влияния;
� опит, знания и умения на архитекта;
� съвременните технологии;
� От друга страна, самото създаване на СА
повлиява върху обкръжението, т.е. процесът е
цикличен;
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
17
ЦИКЛИЧЕН ПРОЦЕС НА СЪЗДАВАНЕ НА
АРХИТЕКТУРАТАС
оф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
соф
туер
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
18
ОТ КАКВО СЕ ВЛИЯЕ СА?
� Заинтересованите лица (stakeholders)
� Организационната структура
� Опит на архитекта
� Технологии
Пазар и бизнес модели
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
соф
туер
� Пазар и бизнес модели
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
19
ФАКТОРИ,
КОИТО ВЛИЯЯТ
НА СА
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
соф
туер
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
20
ВЛИЯНИЕ НА ЗАИНТЕРЕСОВАНИТЕ ЛИЦА
� Заинтересовани лица (Stakeholders, ЗЛ) – това
са всички, които имат отношение към
създаването на софтуерната система – напр.
собствениците, управителите, специалистите
по продажби, ръководителя на проекта,
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
соф
туер
по продажби, ръководителя на проекта,
разработчиците, екипа по поддръжка,
различни прослойки от страна на клиента,
крайните потребители и т.н.
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
21
ВЛИЯНИЕ НА ЗЛ
� Всички те имат разнопосочни интереси, напр.:
� Да се държи по определен начин;
� Да работи добре на определен хардуер;
� Да може лесно да се променя;
� Да се стане бързо;
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
соф
туер
� Да се стане бързо;
� Да стане евтино;
� Да я правят хора с конкретни умения;
� Да е многофункционална;
� и т.н.
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
22
ВЛИЯНИЕ НА ЗЛ
� Тези интереси най-често си противоречат;
� Архитектът е в неблагоприятна позиция –
какъвто и ход да предприеме, все някой от
списъка със ЗЛ ще е недоволен;
� Ролята му е да балансира между различните
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
соф
туер
� Ролята му е да балансира между различните
ЗЛ за бъдат конкретните интереси отразени в
спецификацията на изискванията!
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
23
ВЛИЯНИЕ НА ОРГАНИЗАЦИЯТА
� Основното влияние идва от целите, заради
които се създава системата (изискванията
отразяват най-пълно тях);
� Други влияния са:
� Текущо състояние на организацията;
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
соф
туер
� Текущо състояние на организацията;
� Употреба на предишни разработки;
� Организационна структура;
� Стратегия за дългосрочни инвестиции;
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
24
ВЛИЯНИЕ НА ОПИТА НА АРХИТЕКТА
� Знанията и уменията на архитекта влияят
върху създаваната СА:
� Ако архитектът има положителен опит с даден
подход, вероятно ще го използва отново;
� Обратно, ако резултатите са били катастрофални,
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
соф
туер
� Обратно, ако резултатите са били катастрофални,
най-вероятно ще се въздържи;
� Подходът ще зависи и от това къде, какво и колко е
учил и чел архитекта;
� Дали се е сблъсквал с успешни/неуспешни подходи
и/или реализации;
� Наклонности за експерименти;
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
25
ВЛИЯНИЕ НА ТЕХНОЛОГИИТЕ
� Частен случай на влиянието на опита и
средата на архитекта е влиянието на текущите
технологии:
� Индустриални стандарти;
� Най-добри практики;
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
соф
туер
� Най-добри практики;
� Преобладаващи инженерни техники;
� В настоящия момент модерни са уеб-
базираните, ориентирани към услуги
софтуерни архитектури.
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
26
ВЛИЯНИЕ НА ПАЗАРА И БИЗНЕС МОДЕЛА
� Всеки софтуерен продукт се прави от гледна
точка на някакъв интерес
� Пари, реклама, известност и т.н.
� Промяната на пазара води до промяна в
изискванията
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
соф
туер
изискванията
� Скоростта на промяна на пазара е твърде
различна за различните приложения
� Дизайнът на софтуера трябва да отговаря на
склоността на пазара да се променя
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
27
РЕЗУЛТАТ ОТ ТЕЗИ ВЛИЯНИЯ
� В много редки случаи изискванията, породени от
бизнес целите, както и различните влияния, са
напълно разбрани, обяснени и документирани
� Това води до конфликти между различните ЗЛ,
които трябва да се разрешават
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
соф
туер
� За целта архитекта трябва да разбере същността,
източниците и приоритетите на различните
ограничения и трябва да управлява нуждите и
очакванията на ЗЛ
� Крайната цел е ЗЛ да бъдат притиснати да
приближат позициите си така, че да се намери
пресечна точка между противоречивите на пръв
поглед изисквания
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
28
ОБРАТНИ ВРЪЗКИ НА ВЛИЯНИЕ
� Веднъж създадена, СА от своя страна повлиява
същите тези фактори, които са отговорни за
съществуването и: организацията, нейните
цели, опита на архитекта, изискванията към
бъдещи системи, в някои случаи дори
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
соф
туер
бъдещи системи, в някои случаи дори
технологичната среда;
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
29
ОБРАТНИ ВРЪЗКИ НА ВЛИЯНИЕ
� СА повлиява организационната структура
(посредством структурата на системата);
� СА може да повлияе целите на организацията
– в зависимост от успеха или неуспеха на
системата ще бъдат поставени различни
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
соф
туер
системата ще бъдат поставени различни
стратегически и тактически цели за в бъдеще;
� СА може да повлияе изискванията към бъдещи
системи, отново в зависимост от успеха,
неуспеха и наученото по време на
разработката;
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
30
ОБОБЩЕНИЕ
� Разглеждането на софтуерната архитектура е
необходимо за да създаваме софтуер, който
отговаря на изискванията и е с предвидимо
качество
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
соф
туер
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
31
ОБОБЩЕНИЕ
� Софтуерната архитектура се създава на базата
на набор от изисквания
� В последствие в зависимост от фактори като
пазар, бизнес цели, желание на ЗЛ и др. може
повлияе на самите тези изисквания
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
соф
туер
повлияе на самите тези изисквания
� Процесът за проектиране на софтуерната
архитектура е итеративен и е съпътстван от
редица компромиси
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
32
ВЪПРОСИС
оф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
соф
туер
Соф
туер
ни
ар
хи
тек
тур
и и
ра
зр
аботк
а н
а
33
Top Related