Иди на текст

Дефиниција техничке документације

Ако пробаш да пронађеш на Google претраживачу нешто о техничкој документацији, пронаћи ћеш да је техничка документација присутна у различитим пројектима у виду: архитектонских и конструкцијско-грађевинских пројеката, пројеката хидротехничке инсталације, пројеката електроенергетских инсталација, пројеката телекомуникационих и сигналних инсталација, пројеката машинских инсталација, пројеката технолошких процеса итд.

Напомена!!!

Фокус овог предмета је на техничкој документацији која се користи у области софтверског инжењерства, а не у архитектури, грађевини, енергетици или сличним дисциплинама!

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

Зашто је потребна техничка документација?

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

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

Шта је техничка документација?

Техничка документација је основно средство изражавања и комуникације у техничким дисциплинама. У контексту софтверског инжењерства, она прати цео животни циклус развоја софтвера:

Шта је техничка документација?

Техничка документација је организован скуп докумената који описују захтеве, дизајн, архитектуру, имплементацију, тестирање и одржавање софтвера током његовог животног циклуса.

Техничка документација софтверског пројекта треба да опише шта софтвер треба да ради, како је конципиран и изграђен, како функционише, како се тестира и одржава, односно, како се надограђује.

Техничка документација није нешто што се пише накнадно, или ако остане времена. Добра документација штеди више времена него што је потребно да се направи. Она представља незаменљив извор информација за:

  • чланове тима који тренутно раде на пројекту,
  • нове чланове тима који се накнадно укључују,
  • клијента, који треба да разуме шта добија и како то да користи, и
  • чланове тима који ће касније одржавати или надограђивати систем.

Замисли да си наследио неки софтверски пројекат од више хиљада линија кода без икакве техничке документације - колико би ти времена требало да га разумеш? Техничка документација то време драстично скраћује.

Техничка документација треба да буде довољно дуга да буде корисна, а довољно кратка да је неко заиста и прочита.

Модел система

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

Шта је модел система?

Модел система је поједностављени, апстрактни приказ система који истиче одређени аспект система (структуру, понашање, ток података), а занемарује детаље који нису битни за тај приказ.

У техничкој документацији софтверског пројекта, модели служе као мост између архитектуре система и људи који тај систем граде, користе или одржавају.

Основни делови модела система представљају: елементи (ентитети) - компоненте које модел приказује; односи (везе) између елемената - како елементи међусобно комуницирају тј. како су повезани; и перспектива (угао посматрања) - из ког угла систем треба приказати.

Најавити ученицима да ће се на наредном часу детаљније обрадити сваки од ових елемената, фаза по фаза.

Зашто су модели важни у техничкој документацији?

  1. Смањење сложености (апстракција): Модели изостављају детаље имплементације и фокусирају се на суштину.
  2. Универзална комуникација: Модели у виду дијаграма убрзавају разумевање. Блок-дијаграм могу да разумеју и чланови развојног тима и клијенти који не морају да разумеју програмски кôд.
  3. Јединствени извор истине (Single Source of Truth): Документација са јасним моделима смањује могућност за погрешна тумачења захтева.
  4. Брже укључење нових чланова тима: Нови чланови тима најбрже схватају архитектуру система путем дијаграма система.
  5. Мапа пројекта: Модели система служе као мапа пројекта на коју се увек можеш вратити.

Шта следи?

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

Фаза развоја Елемент документације
Анализа захтева Функционална спецификација захтева
Дизајн Документација дизајна (модели, дијаграми)
Имплементација Документација имплементације
Тестирање План тестирања, резултати тестирања
Употреба система Корисничка упутства

На наредном часу детаљније ће бити обрађен сваки од ових елемената, фаза по фаза, на конкретном примеру који демонстрира како документација "расте" заједно са пројектом.