Софтверски захтеви. Софтверска решења за финансије и менаџмент: Инжењеринг софтверских захтева

Similar documents
Apache Tomcat - Постављање прве веб апликације

Aritmetičko-logička jedinica (ALU)

за годину COMPTES RENDUS DES SÉANCES DE LA SOCIÉTÉ SERBE DE GÉOLOGIE pour les année 2013

Пре него што повежамо табеле, потребно је да се креира табела Autorstva која представља везу типа N:N између табела Knjige и Autori.

Имплементација веб сервиса коришћењем технологија NodeJS и MongoDB

1/29 Развој софтвера 2

41 ГОДИНА ГРАЂЕВИНСКОГ ФАКУЛТЕТА СУБОТИЦА

ИИИ Интегрисани систем за детекцију и естимацију развоја пожара праћењем критичних параметара у реалном времену

Конфигурација FreeRADIUS-а за LDAP

Thermal analysis of solid and vented disc brake during the braking process

Објектно оријентисана парадигма у програмском језику Пајтон

ЗАШТИТА ПОДАТАКА. Симетрични алгоритми заштите. додатак

Developing Engineering Ontology for Domain Coordinate Metrology

>> A=[ ; ] A = >> A' ans =

Алати за контролу верзија

Конфигурација FreeRADIUS-а за Active Directory

Струјно управљање електромагнетном кочницом применом PLC контролера

Eugeniusz Rusiński. Jerzy Czmochowski. Przemysław Moczko. Damian Pietrusiak. Keywords: Modal Analysis, Bucket Wheel Excavator.

Променити назив прве колоне у ID_izdavača. Оставити тип података AutoNumber.

Увод Типови прекида Опслуживање захтева за прекид Повратак из прекидне рутине Приоритети прекида Примери

6. Претраживање и сортирање практичан рад

ГЛАСНИК СРПСКОГ ГЕОГРАФСKОГ ДРУШТВА BULLETIN OF THE SERBIAN GEOGRAPHICAL SOCIETY ГОДИНА СВЕСКА LXXXIX - Бр. 4 YEAR 2009 TOME LXXXIX - N о 4

Упутство за коришћење услуге веб-филтрирања

Analysis of Dynamic Stress Intensity Factor of Finite Piezoelectric Compo site Plate Under a Dynamic Load

Како да го променам корисничкиот ПИН на Gemalto ID Prime PKI токен? How to change the user PIN for the Gemalto ID Prime PKI token?

Увод у организацију и архитектуру рачунара 2

PHOSPHOGYPSUM SURFACE CHARACTERISATION USING SCANNING ELECTRON MICROSCOPY

Analysis of the Minimum Required Coefficient of Sliding Friction at Brachistochronic Motion of a Nonholonomic Mechanical System

ЗАШТИТА ПОДАТАКА. Симетрични алгоритми заштите AES

XML-ТЕХНОЛОГИЈЕ И ДИГИТАЛИЗАЦИЈА

ТЕХНИЧКО РЕШЕЊЕ КОМПЈУТЕРСКА ПОДРШКА ЗА ОДРЕЂИВАЊЕ ОПТИМАЛНОГ БРОЈА КОМАДА У СЕРИЈСКОЈ ПРОИЗВОДЊИ

HOW TO REDUCE DIMENSIONALITY OF DATA: ROBUSTNESS POINT OF VIEW

Креирање база података у конкретном окружењу

ТЕСТИРАЊЕ У НАСТАВИ СТРАНИХ ЈЕЗИКА ТЕОРИЈСКЕ И ПРАКТИЧНЕ ПОСТАВКЕ

Filling and Emptying State of Silos Above Discharge Devices

ЗАШТИТА ПОДАТАКА. Симетрични алгоритми заштите AES

ФРАЗАЛНИ ГЛАГОЛИ СА ПАРТИКУЛОМ OFF И ЊИХОВИ ЕКВИВАЛЕНТИ У СРПСКОМ ЈЕЗИКУ 2

КРАТКО УПУСТВО ЗА ИЗРАДУ МАСТЕР РАДА И ДОКТОРСКЕ ДИСЕРТАЦИЈЕ

Увод. JPEG - Joint Photographic Experts Group. ITU - International Telecommunication Union 3. ISO - International Organization for Standardization 4

Effect of blade type on a 3D FC centrifugal fan

Z Similarity Measure Among Fuzzy Sets

J. Serb. Chem. Soc. 78 (11) (2013) UDC : : JSCS : Short communication

УПРАВЉАЊЕ РИЗИЦИМА НА РЕАЛИЗАЦИЈИ ПРОЈЕКТА ЗА ОДБРАНУ ОД БУЈИЧНИХ ПОПЛАВА ПРИМЕНОМ MONTE CARLO СИМУЛАЦИЈЕ

УДК 398.4(497.11) Софија Н. Костић

УПУТСТВО ЗА ПИСАЊЕ НАУЧНО-ИСТРАЖИВАЧКОГ РАДА ИЗ МАТЕМАТИКЕ

6 th INTERNATIONAL CONFERENCE

МОГУЋНОСТИ ПРИМЕНЕ ЛИНЕАРНОГ ПРОГРАМИ- РАЊА У ПЛАНИРАЊУ ГАЗДОВАЊА ШУМАМА

Први пример!? 1. Доказати да је за сваки природан број n, збир првих n. 1. Доказати да је n = број n. , за сваки природан.

ВИСОКА ШКОЛА ЕЛЕКТРОТЕХНИКЕ И РАЧУНАРСТВА СТРУКОВНИХ СТУДИЈА БЕОГРАД. Јекић Радослав

Шта је депресивни поремећај

Примена образовног софтвера Greenfoot у настави Рачунарства и информатике у другом разреду средње школе

Слађа Луковић Школски психолог

STRESS DEGRADATION OF LISINOPRIL DIHYDRATE IN DIFFERENT AQUEOUS MEDIA

ЕЛЕКТРОНИКЕ ЗА УЧЕНИКЕ ТРЕЋЕГ РАЗРЕДА

MODELING OF SELF HEALING MATERIALS AND FITTING PARAMETERS PROCEDURE

УТВРЂИВАЊЕ ОБИМА САКУПЉАЊА ВРГАЊА И ЛИСИЧАРКЕ У СРБИЈИ У ОДНОСУ НА РАЗЛИЧИТЕ СЦЕНАРИЈЕ КЛИМАТСКИХ ПРОМЕНА

ОБРАДА СЛИКА НА РАЧУНАРУ

Introduction. DjORDjIJE BOŽOVIĆ 1, DUŠAN POLOMČIĆ 2, DRAGOLJUB BAJIĆ 2

АРХИТЕКТУРА РАЧУНАРСКОГ СИСТЕМА. Структура и принципи функционисања рачунара

Објектно орјентисано програмирање

АРХИТЕКТУРА И ОРГАНИЗАЦИЈА РАЧУНАРА

Објектно орјентисано програмирање

САДРЖАЈ: I. Увод у програмирање... 3 II. Структура и синтакса Delphi / Pascal програма:... 6 III. Основни елементи програмског језика Pascal...

HOMOLOGY MODELLING AND DOCKING ANALYSIS OF L-LACTATE DEHYDROGENASE FROM STREPTOCOCCUS THERMOPILUS

Преглед ЗАШТИТА ПОДАТАКА. Савремени блок алгоритми. Блок алгоритми наспрам алгоритама тока података (Block vs Stream) Биће објашњено:

Поглавље 14 у књизи: Core Java - Volume 1 - Fundamentals, Eighth Edition, C. Horstmann & G. Cornell MULTITHREADING

НАСИЉЕ МЕЂУ ИНТИМНИМ ПАРТНЕРИМА

УПРАВЉАЊЕ, СТАБИЛНОСТ И УПРАВЉИВОСТ МОТОРНИХ ВОЗИЛА (1)

ФРАЗНИ ГЛАГОЛ У ЕНГЛЕСКОМ ЈЕЗИКУ

Жене између каријере и дискриминације 1

Estimation of Triboresistance of Erythrocytes during Surface Scanning with the Use of Atomic Force Microscopy

ЗАВРШНИ (BACHELOR) РАД

СТУДИЈСКИ ИСТРАЖИВАЧКИ РАД

ГРАФИЧКА ИНДУСТРИЈА КАО ЗАГАЂИВАЧ ОКОЛИНЕ, НА ПРИМЕРУ ФЛЕКСО ШТАМПЕ

Jaroslav M. Katona*, Alena Tomšik, Sandra Dj. Bučko and Lidija B. Petrović

Упутство за рад с програмом. Е-Деловодник. верзија 2.1

EFFECTS OF TEMPERATURE AND LIGHT INDUCTION OF Chl a

ТЕОРИЈА УЗОРАКА час 9

INVESTIGATION OF SAND IN PIPING

Finite element analysis of deep beams on nonlinear elastic foundations

Experimental Analysis of Multiport Averaging Device and Effect of Body Shape on Flow Coefficient

Aquagrams: Water Spectral Pattern as Characterization of Hydrogenated Nanomaterial

Јован Бабић ЕТИКА РАТА И ТЕОРИЈА ПРАВЕДНОГ РАТА

Review Paper HIGH-DIMENSIONAL DATA IN ECONOMICS AND THEIR (ROBUST) ANALYSIS

Supercritical Flow in Circular Pipe Bends

ВИСОКА ШКОЛА ЕЛЕКТРОТЕХНИКЕ И РАЧУНАРСТВА СТРУКОВНИХ СТУДИЈА УПУТСТВО ЗА ИЗРАДУ СТРУЧНИХ (ЗАВРШНИХ И СПЕЦИЈАЛИСТИЧКИХ) РАДОВА. Београд, април 2016.

Specific Cost Ratio in a Port Modelling by M/E k /1 Queue

СТРУКТУРИСАЊЕ САДРЖАЈА ШКОЛСКЕ АРИТМЕТИКЕ

РЕГИОНАЛНИ ЦЕНТАР ЗА ТАЛЕНТЕ УПУТСТВО ЗА ПИСАЊЕ НАУЧНО-ИСТРАЖИВАЧКОГ РАДА ИЗ ПСИХОЛОГИЈЕ

Жаргон Милијана Томић, IV - 1. Садржај

Рачунарске мреже. Александар Картељ

5 th INTERNATIONAL CONFERENCE Contemporary achievements in civil engineering 21. April Subotica, SERBIA

ANALYSIS OF THE BRACHISTOCHRONIC MOTION OF A VARIABLE MASS NONHOLONOMIC MECHANICAL SYSTEM. Bojan Jeremić, Radoslav Radulović, and Aleksandar Obradović

КОНТРАСТИВНА АНАЛИЗА КОЛОКАЦИЈА СА ИМЕНИЦАМА КОЈЕ ОЗНАЧАВАЈУ ЉУДСКА БИЋА У ЕНГЛЕСКОМ И СРПСКОМ ЈЕЗИКУ

Calculation of the effective diffusion coefficient during the drying of clay samples

Основни појмови Структура улазно/излазног уређаја Приступ подацима на уређају DMA контролер

Привиђења у западној Србији

Available online at

Modeling and Control of Crane Payload Lift-off and Lay-down Operations

Thermal-Stress Behaviour of RCC Gravity Dams

Transcription:

1 Софтверски захтеви Истраживања и искуства из праксе указују да ефикасно управљање софтверским захтевима има значајан утицај на успешност софтверских пројеката. Међутим, термин софтверски захтев се не користи конзистентно, и у неким случајевима се односи на врло површну тврдњу високог нивоа апстракције о сервису који пружа софтвер, а у другим случајевима се односи на детаљни формални опис функционалности коју пружа софтвер. Софтверски захтев представља спецификацију шта софтвер треба да ради, као и ограничења у погледу његове употребе. Софтверски захтев треба да представља јасно дефинисане потребе корисника у погледу софтверског система који се за њега пројектује, као на пример контрола неког уређаја, издавање понуде, реализација финансијске трансакције или проналажење информације. Захтеви за одређени софтвер су обично сложена комбинација захтева од већег броја људи са различитих позиција у оквиру организације. Основна карактеристика софтверских захтева је да се могу верификовати као индивидуална својства софтвера, која се онда посматрају као функционални захтеви, или као својства на нивоу система која се посматрају као не-функционални захтеви. Софтверски захтеви се могу појединачно идентификовати, што значи да се могу пратити током целог животног циклуса софтвера. Софтверски захтеви се изводе од корисничких захтева, који представљају опис на природном језику шта сервис или систем треба да обезбеди кориснику и која ограничења постоје. Поред софтверских захтева, на основу корисничких захтева се изводе и системски захтеви који се односе на систем као целину и обухватају софтвер, хардвер, људе, сервисе и пословне процесе. Софтверски захтеви се изводе из доменских захтева, који треба да одсликавају специфичности домена употребе софтвера а не специфичне потребе корисника. Основни проблем са доменским захтевима настаје због тога што софтверски инжењери могу имати проблема са разумевањем карактеристика домена у којем се софтвер користи, због чега некда нису у могуности да сагледају да ли су сви захтеви обухваћени, као и да ли постоје конфликти у спецификацијама различитих захтева. Софтверски захтеви се у основи деле на: Функционални захтеви (Functional requirements) су захтеви који описују како систем реагује на неке подстицаје или како се понаша у појединим ситуацијама. Не-функционални захтеви (Nonfunctional requirements) су захтеви који се најчешће односе на нека ограничења функционалности и сервиса које пружа систем. Ова ограничења су најчешће наметнута стандардима који важе у домену проблема, али могу бити и временска ограничења или ограничења појединих процеса. Нефункционални захтеви се обично односе на систем као целину. Функционални захтеви могу бити општи у погледу шта систем треба да ради, али и врло специфични и одређени локалним правилима и начином рада у неком малом подсистему. Функционални захтеви морају бити комплетни, што значи да све функционалности морају бити дефинисане. Такође, веома је важно да су функционални захтеви конзистентни, што значи да различити захтеви не садрже противречне дефиниције функционалности или сервиса. Јасна граница између функционалних и не-функционалних захтева врло често не постоји. На пример, захтев по питању сигурноси и идентификације корисника је не-функционалан захтев, али се приликом детаљне анализа и потом конструкције софтвера преводи у низ функционалних захтева који обезбеђују механизме заштите сигурности. Не-функционални захтеви су обично врло строги у погледу карактеристика система, и ако се избегне њихова имплементација систем може бити неупотребљив. Имплементација нефункционалних захтева се обично односи на цео систем или на поједине сегменте система, а ретко на појединачне компоненте. У основи постоје три извора не-функционалних захтева:

2 Захтеви производа (Product requirements) су захтеви се односе на ограничења у вези софтверског производа и његових перформанси као што су брзина извршавања, употреба меморије, прихватљиви степен отказивања, употребљивост итд. Организациони захтеви (Organizational requirements) се односе на ограничења изведена из правила и процедура организације која је наручилац софтвера и организације која производи софтвер. У ову групу спадају захтеви који се односе на избор оперативног система за извршавање софтвера, начин употребе софтвера, избор радних оквира и програмског језика за реализацију софтвера, као и поштовање процеса и стандарда у домену примене и развоја софтвера. Спољашњи захтеви (External requirements) се односе на све захтеве који се не односе на софтверски производ и организације које су укључене у његов развој (произвођач) и употребу (корисници). У ову групу спадају ограничења у вези разних регулатива пословања, законодавна ограничења и етички аспекти употребљивости софтвера. Не-функционални захтеви проистичу из корисничких потреба, а услед постојања ограничења буџета, организационих правила и процедура, потребе за интероперабилношћу софтвера са другим софтверима у радном окружењу, хардверских захтева и спољашњих фактора, као што је приказано на слици 1. Не-функционални захтеви Захтеви производа Употребљивост Поузданост Организациони захтеви Захтеви окружења Захтеви у вези извршавања софтвера Спољашњи захтеви Регулатива у домену примене и развоја софтвера Законодавство Безбедност Захтеви у вези развоја софтвера Етички захтеви Ефикасност Слика 1. Извори не-функционалних софтверских захтева Инжењеринг софтверских захтева Инжењеринг софтверских захтева је област софтверског инжењерства која се односи на систематско руковање софтверским захтевима, што обухвата идентификацију захтева, анализу и документовање, као и контролу и валидацију. Иако се налази на самом почетку животног циклуса софтвера, инжењеринг софтверских захтева је повезан са свим фазама у животном циклусу софтвера, као и са различитим процесима везаним за софтвер, што је приказано на слици 2. Софтверски и системски захтеви представљају основу за планирање пројеката у оквиру животног циклуса софтвера. На основу захтева се дефинише ток пројекта, улоге у оквиру пројекта, рокови, употреба одговарајућих метода и алата, као и ток животног циклуса софтвера. Такође, софтверски и системски захтеви служе као основа за сагледавање ризика, трошкова и ограничења у реализацији пројеката.

3 Слика 2. Инжењеринг софтверских захтева и различите фазе у животном циклусу софтвера Дизајн и конструкција софтвера се ослањају на детаљно специфициране софтверске захтеве. Међутим, приликом дизајна и конструкције се може појавити потреба за изменом захтева како би се добио функционалан софтвер, што је на слици 2. приказано постојање две стрелице које указују на ток информација између блокова за инжењеринг софтверских захтева и дизајн и конструкцију софтвера. Врло је важно напоменути, да се промена спецификације може јавити више пута услед идентификоване потребе током дизајна и конструкције, па се на тај начин остварује итеративни процес који укључује спецификацију, дизајн и конструкцију софтвера. Тестирање софтвера у основи се састоји од тестирања појединих делова и целог система од стране организације која производи софтвер, при чему се врши верификација спецификације софтверских захтева, тј. провера да ли је софтвер креиран према спецификацији. Након тога следи тест прихватања од стране организације која је корисник софтвера, при чему се врши валидација спецификације софтверских захтева, тј. провера да да ли софтвер задовољава захтеве које је дефинисао корисник (захтеве дефинисане у домену проблема). Софтверски захтеви се документују у виду спецификације која се касније користи током наредних фаза у животном циклусу софтвера. Током животног циклуса софтвера, софтверски захтеви се могу променити, што се обично дешава током итеративног циклуса развоја софтвера, или касније када се током одржавања врше измене софтвера. Инжењеринг софтверских захтева у основи обухвата активности креирања софтверских захтева и обезбеђује управљање софтверским захтевима, као што је приказано на слици 3. Управљање софтверским захтевима обухвата све активности везане за софтверске захтеве. Слика 3. Инжењеринг софтверских захтева - основне активности

4 Процес софтверских захтева Процес софтверских захтева обухвата активности прикупљања, анализе, спецификације и валидације захтева, а такође и уређује њихово повезивање у процес који треба да је прилагођен специфичним пројектима и организацијама. Основни елементи процеса софтверских захтева су приказани на слици 4. Важно је напоменути да процес софтверских захтева није дискретна активност на почетку животног циклуса софтвера, већ да је то процес који се иницира на почетку пројекта, али траје и прилагођава се током целог животног циклуса. Основне везе процеса софтверских захтева и осталих фаза животног циклуса су приказане у претходној секцији. Управљање захтевим Слика 4. Процес софтверских захтева Полазна претпоставка за процес софтверских захтева представљају јасно дефинисани стратешки и оперативни захтеви организације каја има потребу за софтвером. Пре иницијализације процеса, понекад је неопходно реализовати студију изводљивости да би се сагледали сви фактори и ограничења који могу утицати на процес софтверских захтева, а касније и на цео животни циклус софтвера. Овим процесом најчешће руководи специјалиста за софтверске захтеве у оквиру организације која производи софтвер. Наравно то је у случају да организација има особу са таквим задужење. На пример, у малим софтверским предузећима врло је чест случај да је иста особа ангажована у реализацији већине активности у животном циклусу софтвера. Са аспекта учесника у процесу, овај процес је мултидисциплинарни и укључује и експерте из домена проблема и софтверске инжењере. Прикупљање захтева Прикупљање захтева (requirements elicitation, requirements discovery, requirements acquisition) је прва фаза у изградњи и разумевању софтвера који се развија за решавање одређених проблема. Током ове активности се идентификују све заинтересоване стране у развоју софтвера и успостављају се односи између њих. Ова фаза представља везу између домена проблема и техничког домена у оквиру којег софтверски инжењери развијају софтвер. У овој фази процеса софтверских захтева се дефинише опсег пројекта и дефинише се софтверски производ који треба да задовољи потребе корисника. Врло је важно да се у овој фази сагледају сви потенцијални извори захтева, и да се сагледају сви циљеви ове фазе: (1) усаглашавање софтверског производа са пословним циљевима организације која има потребу за софтвером, (2) сагледавање ризика и креирање студије изводљивости, (3) упознавање са доменским знањем на основу којег се изводе софтверски захтеви и идентификација концепата у домену проблема,

5 (4) узимање у обзир различитих погледа различитих група корисника софтвера (5) идентификација пословних правила која поставвљају различита ограничења у погледу структуре и функционалности софтвера, (6) сагледавање крактеристика и ограничења окружења у којем ће се софтвер користити, и (7) сагледавање организационог окружења у које се софтвер имплементира (пословна правила, организациона култура, итд.). Прикупљање софтверских захтева се заправо односи на прикупљање информација на основу којих ће се извести и дефинисати софтверски захтеви. Ово је веома тежак са значајним уделом људског фактора у реализацији. Технике за прикупљање софтверских захтева су: Интервјуи - техника која обезбеђује прикупљање захтева кроз разговор са корисницима софтвера. Овај разговор је обично полу-структуриран и вођен постављеним циљевима. Разговор се снима и касније анализира. Анализа захтева Сценарији - техника која је базирана на представљању и анализи различитих сценарија употребе на основу питања која се односе на начин реализације послова у радном окружењу. Ова техника се најчешће реализује применом дијаграма случајева употребе (UML Use Case Diagrams). Прототипови - техника која је погодна за разрешавање нејасних или противречних захтева, а базира се на представљању радног окружења које треба корисницима да помогне да разјасне захтеве. Прототипови се могу реализовати као описи и скице на папиру, али као мале приручне, ад-хок софтверске апликације које демонстрирају потенцијална решења и радна окружења за софтвер. Радни састанци - техника која укључује више људи у дискусију и идентификацију идеја у вези захтева. Основна претпоставка овог приступа је да заједнички рад и дискусија више људи може позитивно утицати на идентификацију проблема и захтева. Посматрање праксе - техника која подразумева активан боравак у организацији и праћење свакодневних активности. Ово је дуготрајан и захтеван посао у смислу времена потребног за посматрање праксе и ресурса које мора организација да одвоји. Посматрање праксе се обично реализује социолошким методама истраживања, као што је на пример етнографија. Корисничке приче - техника која се базира на кратким причама у којима корисници описују начин реализовања послова на основу којих се дефинишу функционални захтеви. Ова прича се анализира и потом се дефинишу захтеви, а важну улогу има валидација захтева од стране корисника који је извор информација (приче). Анализа софтверских захтева (requirement analysis) је скупа активности који има следеће циљеве: ( 1) уочавање и отклањање конфликата у захтевима, (2) идентификација граница софтверског производа и дефинисање интеракције са окружењем - техничким и организационим, и (3) детаљни опис системских захтева са циљем да се идентификују софтверски захтеви. Основне активности у фази анализе софтверских захтева су: Класификација захтева. Класификација захтева се може извршити на основу више критеријума: функционални и не-функционални, захтев се односи на процес или производ, захтев је основни или изведен из других захтева, приоритизација (обавезан, веома пожељан, пожељан, опциони), опсег захтева (софтвер, модуо, компонента), и стабилност/променљивост током животног циклуса софтвера. Класификација захтева зависи од правила и праксе организације која наручује софтвер. Концептуално моделовање. Концептуално моделовање реалног проблема је основа за дефинисање захтева и касније за моделовање софтвера. Концептуални модел треба да обухвати домен и контекст употребе софтвера, као и ентитете који постоје у

6 домену проблема. Уобичајени начин за концептуално моделовање је применом дијаграма Језика за Обједињено Моделовање ( Unified Modeling Language, UML), а најчешће се користе дијаграми случајева коришћења (Use Case Diagrams) који описују сценарије употребе. Фактори који највише утичу на концептуално моделовање су: природа проблема, стручност софтверског инжењера који прикупља захтеве, и специфичност захтева које пријављују различити корисници. Дизајн архитектуре и алокација захтева. У овој фази се процес захтева преклапа са процесом дизајнирања система и софтвера и блиско је повезан са концептуалним моделовањем. У овој фази је посебно важна алокација компоненти система према појединим захтевима. Усаглашавање захтева. С обзирома да се захтеви прикупљају од различитих корисника, чест је случај да постоје контрадикторни захтеви који се морају усагласити ( нпр. различито виђење једне функционалности или атрибута неког доменског ентитета). У овој фази је битно разрешити све међусобно искључиве захтеве и потом извршити приоритизацију идентификованих захтева. Формална анализа. Формална анализа захтева се врши у завршној фази процеса захтева када су сви захтеви јасно дефинисани. Формалном анализом се обезбеђује испуњење захтева различитих актера. Алати који се овде користе су најчешће доказивачи теорема (theorem provers) и алати за проверу модела (model checkers). Специфицирање захтева Специфицирање захтева ( requirements specification) је активност током које се креирају документи који се могу прегледати, евалуирати и одобрити за наредне фазе животног циклуса софтвера. Уобичајено се креирају следећи документи: Дефиниција система (System Definition Document). Овај документ се још назива и документ са кориссничким захтевима (user requirements document) или концептуални документ операција система ( document or concept of operations document). Овај документ садржи опис домена проблема, циљ изградње софтвера, и опис ограничења и претпоставки које утичу на изградњу софтвера. Документ може садржати концептуалне моделе система, окружења, ентитета и корисника. Спецификација системских захтева (System Requirements Specification). Документ садржи опис елемената система који нису софтвер: оперативни систем, хардвер, комуникациона инфраструктура и остали специфични уређаји (мерни уређаји, бар код читачи, итд.). Спецификација софтверских захтева (Software Requirements Specification). Овај документ представља основу за потписивање уговора између организације која је наручилац софтвера и организације која производи софтвер. Овај документ садржи детаљан опис: софтверских захтева, процењих рокова, идентификованих ограничења и ризика, као и план за верификацију и валидацију захтева и софтвера. Софтверски захеви се обично описују наративно, али се спецификација софтверских захтева најчешће реализује применом неке нотације која је формална или полу-формална. Избор нотације за опис спецификације софтверских захтева зависи од експертизе софтверских инжењера који рализују посао и од интерних правила софтверске организације. Валидација захтева Валидација захтева (requirements validation) обезбеђује постизање следећих циљева: (1) проверу да ли су сви захтеви добро протумачени од стране софтверских инжењера, (2) проверу да ли креирани документи са спецификацијом захтева јесу усаглашени са стандардима организације која производи софтвер, и (3) проверу да ли су захтеви конзистентни, разумљиви и комплетни. Формална спецификација захтева значајно олакшава валидацију захтева пошто омогућује

7 примену специфичних алата за проверу захтева, као и за праћење еволуције захтева током животног циклуса софтвера ( управљање конфиурацијом, верзијама и променама). Валидација се може реализовати неколико пута у току процеса захтева. Технике за валидацију спецификације захтева су: Преглед документације (Requirements Reviews). Ова техника обично укључује неколико особа које прегледају документацију, листу ставки које треба проверити (checklist), као и водич/правила за спровођење прегледа документације (дефинисан у софтверској организацији). Развој прототипова (Prototyping). Ова техника обезбеђује проверу да ли су софтверски инжењери добро разумели спецификацију захтева. Ова техника обезбеђује прикупљање повратних информација о спецификацији што омогућује проверу да ли спецификација задовољава корисничке захтеве. Валидација модела (Model Validation). Валидација модела има смисла када се одради формална анализа и спецификација реализује применом стандардних формалних техника моделовања. Валидација модела се најчешће врши помоћу специјалних софтверских алата. Тестови прихватања (Acceptance Tests). Основна претпоставка у дизајну и имплементацији процеса софтверских захтева је да се добије производ - спецификација софтверских захтева - који се може проверити. Тестови прихватања се креирају за функционалне захтеве и у њима учествују и корисници софтвера. Литература [1] Ian Sommerville. Software Engineering, 9th edition. Addison-Wesley, Boston, MA, USA. 2011. [2] Pierre Bourque and Richard E. (Dick) Fairley (Editors). Guide to the Software Engineering Body of Knowledge (SWEBOK), Version 3.0. IEEE. 2014. [3] Shari Lawrence Pfleeger and Joanne M. Atlee. Software Engineering: Theory and Practice. 3rd edition. Prentice Hall. Upper Saddle River, NJ, USA. 2006.