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

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

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

уреди

Минимизирање комплексности

уреди

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

Очекивана промена

уреди

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

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

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

уреди

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

Стандарди у изградњи

уреди

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

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

уреди

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

уреди

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

Грађевинско планирање

уреди

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

Грађевинско мерење

уреди

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

Практични разлози

уреди

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

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

уреди

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

Грађевински језици

уреди

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

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

Кодирање

уреди

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

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

Тестирање изградње

уреди

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

Поновна употреба

уреди

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

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


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

уреди

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

Интеграција

уреди

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

Види још

уреди

Референце

уреди
  1. ^ а б в г д ђ е ж з и ј к л љ м SWEBOK Pierre Bourque, Robert Dupuis; executive editors, Alain Abran, James W. Moore, eds. (2004).

Спољашње везе

уреди