Софтверска конструкција

Из Википедије, слободне енциклопедије
Иди на навигацију Иди на претрагу
Развојни циклус софтвера
Делатност
Парадигме и модели
Методологије и оквири
Подршка дисциплине
Алати
Стандарди и књиге

Софтверска конструкција је дисциплина  софтверског инжењеринга. То је детаљно стварање радног смисленог софтвера кроз комбинацију кодирања, верификације, тестирање јединице, тестирање интеграција, и отклањање грешака. То је повезано са свим осталим софтверским инжењерским дисциплинама, најоштрије дизајн софтвера и тестирање софтвера.[1]

Основе софтверске конструкције[уреди]

Минимизирање комплексности[уреди]

Смањена комплексност се остварује кроз истицање стварања кода који је једноставан и читљив а не само паметан. Минимизирање комплексности је остварено кроз коришћење стандарда, као и кроз бројне специфичне технике у кодирању. Такође је подржан од стране техника квалитетне фокусиране градње .[1]

Очекивана промена[уреди]

Очекивана промена је подржана од стране многих специфичних техника кодирања:[1]

  • Комуникационе методе: као што су стандарди за формате и садржаје докумената.
  • Програмски језик
  • Платформе
  • Алати: Као дијаграм стандарда за ознаке као што је UML.

Изградња за верификацију[уреди]

Изградња за верификацију значи изградња софтвера на такав начин да грешке могу бити избачене лако од софтверских инжењера писањем софтвера, као и током независног тестирања и оперативних активности. Специфичне технике које подржавају изградњу за верификацију укључују следеће стандарде кодирања да подрже код мишљења, јединицу за тестирање, организовање кода за подршку аутоматског тестирања, и ограничено коришћење сложених или тешко разумних језичких структура, између осталог. .[1]

Стандарди у изградњи[уреди]

Стандарди који директно утичу на грађевинска питања укључују:[1]

Управљање изградњом[уреди]

Грађевински модели[уреди]

Бројни модели су створени за развој софтвера, од којих неки наглашавају изградњу више од других. Неки модели су линеарни од тачке гледишта изградње , као водопад и организован-испоручен модел животног циклуса. Ови модели третирају конструкцију као активност која се јавља тек након када је значајни предуслов посла завршен укључујући ближе услове рада, опсежног пројектовања и детаљног планирања. Остали модели су учестали, као што су еволутивни прототипови, екстремно програмирање, и Скрам. Ови приступи теже да третирају конструкцију као активност која се јавља истовремено са другим развојним софтверским активности, укључујући и захтеве, дизајн и планирање, или да се преклапају.[1]

Грађевинско планирање[уреди]

Избор грађевинског метода је кључни аспект планирања изградње активности. Избор грађевинског метода утиче на степен у којем се обављају грађевински предуслови, редослед којим се врше, и степен до којег се очекује да буде завршен пре почетка грађевинских радова. Грађевинско планирање такође дефинише редослед којим су компоненте креиране и интегрисане, процес управљања квалитета софтвера, расподела радних задатака за специфичне софтверске инжењере, као и друге послове, у складу са изабраном методом.[1]

Грађевинско мерење[уреди]

Бројни грађевински радови и предмети могу се мерити, укључујући развијени код, модификован код , код за поновну употребу, уништени код, комплексност кода, код инспекцијске статистике, цене фиксних грешака и нађених грешака, напор и заказивање. Ове мере могу бити корисне за потребе управљања изградњом, осигуравање квалитета у току изградње, побољшање процеса изградње, као и из других разлога.[1]

Практични разлози[уреди]

Софтверска конструкција је вођена од стране многих практичних разлога:

Грађевински дизајн[уреди]

Да би се узеле у обзир за непредвиђене празнине у дизајну софтвера, у току изградње софтвера неке модификације дизајна морају бити у мањем или већем обиму софтверског дизајна. [1]

Грађевински језици[уреди]

Грађевински језици укључују све облике комуникације којима човек може да наведе извршење решења проблема за рачунаром. Они укључују конфигурацију језика, алат језика и програмске језике: [1]

  • Конфигурацијски језици су језици на којима софтверски инжењери бирају из ограниченог скупа предефинисаних опција да створе нове или прилагођене софтверске инсталације.
  • Алатни језици се користе за изградњу апликација из комплета алата и да су сложенији од конфигурације језика.
  • Програмски језици су најнапреднији тип грађевинских језика који користе три врсте опште нотације:
    • Језичке ознаке које се одликују нарочито коришћењем речи попут низова или текста да представе сложене софтверске конструкције, као и комбинација тих речи попут струне у обрасцима које имају реченице попут синтаксе.
    • Формалне ознаке које се ослањају мање на интуитиву, свакодневним значењем речи и текст стринговима и више на дефиницијама резервне копије прецизним, недвосмисленим и формалним (или математичким) дефиницијама.
    • Визуелне ознаке које се мање ослањају на текст-оријентисане нотације и језичке и формалне изградње, и уместо тога се ослањају на директну визуелну интерпретацију и пласман визуелних ентитета који представљају основни софтвер.

Кодирање[уреди]

Следећа разматрања се односе на софтвер за изградњу активности кодирања:[1]

  • Технике за стварање разумљивог  изворног кода, укључујући и именовање и распоред изворног кода 
  • Коришћење класа, набројаних типова, варијабли, константи наведених и других сличних субјеката
  • Коришћење контролне структуре
  • Руковање грешкама услова-планиране грешке и изузеци (унос лоших података, на пример)
  • Превенција нарушавања сигурности код нивоа (тампон прекорачења или индекс низ поплава, на пример)
  • Коришћење ресурса преко употребе механизама искључености и дисциплине у приступу серијских, за вишекратну употребу, ресурса (укључујући тема или брава базе података)
  • Организација изворног кода  (у изјавама, рутиникласама, пакетима, или другим структурама)
  • Код документација

Тестирање изградње[уреди]

Сврха тестирања изградње је да се смањи јаз између времена у којем су грешке убачене у код  и времена када су те грешке откривене. У неким случајевима, тестирање изградње се врши након исписивања кода. У тесту првог програма, тест случајеви су створени пре него што је код писан. Изградња обухвата два облика тестирања, која се често обављају од стране софтверског инжењера који је написао код:[1]

Поновна употреба[уреди]

Роновна iмплементација софтвера подразумева више од стварања и коришћења средстава библиотеке. То захтева формализовање праксе поновне употребе интеграцијом поновне употребе процеса и активности у животном циклусу софтвера. Задаци који се односе на поновно коришћење у функцији конструкције током кодирања и тестирања су:[1]

  • Избор за вишекратну употребу јединица, базе података, тест процедурама или тест података.
  • Процена кода или теста употребљивости.
  • Извештавање о поновном коришћењу информација о новом коду, тест процедурама или тест података.


Квалитетна градња[уреди]

Примарне технике које се користе да се обезбеди квалитет кода као што је конструисан укључују: [1]

Интеграција[уреди]

Кључна активност у току изградње је интеграција одвојено изграђених рутина, класа, компонената и подсистема. Поред тога, посебан софтверски систем ће можда морати да буде интегрисан са другим софтвер или хардвер системом. Забринутост у вези са грађевинском интеграцијом укључује планирање редоследа у којем ће бити интегрисане компоненте, стварајући скеле за подршку привремене верзије софтвера, одређивање степена тестирања и квалитета обављеног посла на компоненте пре него што су интегрисане, и одређивање тачке у пројекту на коме се привремене верзије софтвера тестирају.

[1]

Види још[уреди]

Референце[уреди]

  1. 1,00 1,01 1,02 1,03 1,04 1,05 1,06 1,07 1,08 1,09 1,10 1,11 1,12 1,13 1,14 SWEBOK Pierre Bourque, Robert Dupuis; executive editors, Alain Abran, James W. Moore, eds. (2004).

Спољашње везе[уреди]