· 8 years ago · Jan 17, 2018, 07:54 PM
1__________________________________________________________________________________________________________________
2Софтвер
3(дефиниција, карактериÑтики, видови)
4Y2K
5Y2K bug
6Year 2000 bug or Millennium Bug
72
8Софтвер
9ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
10И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
11СОФТВЕРСКО ИÐЖЕÐЕРСТВО
12Софтвер
13ï® Ð—Ð½Ð°Ñ‡ÐµÑšÐµ на Ñофтверот
14ï® Ð¡Ð¾Ñ„Ñ‚Ð²ÐµÑ€ –дефиниција (?!)
15ï® ÐŸÑ€Ð¸Ñ€Ð¾Ð´Ð° на Ñофтверот
16ï® ÐšÐ°Ñ€Ð°ÐºÑ‚ÐµÑ€Ð¸Ñтики на Ñофтверот како
17продукт
183
19Софтвер
20ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
21И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
22СОФТВЕРСКО ИÐЖЕÐЕРСТВО
23Значењето на Ñофтверот денеÑ
24ï® ÐœÐ¾Ð¶ÐµÑ‚Ðµ ли да го замиÑлите Ñветот Ð´ÐµÐ½ÐµÑ Ð±ÐµÐ·
25Ñофтвер?
26ï® Ð¡Ð¾Ñ„Ñ‚Ð²ÐµÑ€Ð¾Ñ‚ е наÑекаде (мобилни телефони, лифтови,
27автомобили, вÑеленÑки летала, нуклеарни
28електрани, ...)
29ï® Ð£Ð»Ð¾Ð³Ð°Ñ‚Ð° на Ñофтверот во економијата на СÐД:
30Софтвер
314
32Total Real Value Added by the Software and Related Services
33(in billions)
34ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
35И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
36СОФТВЕРСКО ИÐЖЕÐЕРСТВО
37СофтверÑка индуÑтрија
38ï® ÐžÐ´ 1997 до 2012 ÑофтверÑката индуÑтрија во С.Ð.Д.
39пораÑнала од 149 милијарди USD на 425 милијарди
40USD, одноÑно нејзиниот удел во GDP од 1.7% на
412.6%
42ï® Ð‘Ñ€Ð¾Ñ˜Ð¾Ñ‚ на директно вработени во ÑофтверÑката
43индуÑтрија во С.Ð.Д. пораÑнал од 778.000 работни
44меÑта во 1990 на над 2.500.000 во 2014 или од 0.9%
45на 2.2% од Ñите вработени.
46ï® Ð¡Ðµ Ñмета дека ÑофтверÑката индуÑтрија во С.Ð.Д.
47поддржува уште над милион работни меÑта кои ја
48ÑервиÑираат
49Софтвер
505
51The software market is large and
52highly globalized…
53Robert J. Shapiro, The U.S. Software Industry: An Engine for Economic Growth and Employment, 2014, www.siia.net
54ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
55И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
56СОФТВЕРСКО ИÐЖЕÐЕРСТВО
57ÐеуÑпешен развој на Ñофтвер
58ï® Ð¡Ð¿Ð¾Ñ€ÐµÐ´ иÑтражување на IBM (1994):
5955% од ÑиÑтемите чинеле повеќе од
60предвиденото
6168% го пробиле рокот за иÑпорака
6288% морало да бидат Ñериозно
63редизајнирани
64Софтвер
656
66ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
67И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
68СОФТВЕРСКО ИÐЖЕÐЕРСТВО
69ЕкономÑки ефект на грешките во
70Ñофтверот
71ï® Ð¡Ð¾Ñ„Ñ‚Ð²ÐµÑ€Ð¾Ñ‚ е подложен на грешки пред Ñè поради
72неговата комплекÑноÑÑ‚.
73ï® Ðовите ÑофтверÑки апликации веќе не Ñе мерат во
74илјади туку во милиони линии на код.
75ï® ÐžÐºÐ¾Ð»Ñƒ 80% од цената за развој на Ñофтвер Ñе троши
76за да Ñе идентификуваат и коригираат дефектите
77ï® Ð¡ÐµÐ¿Ð°Ðº и понатаму иÑклучително мал број на продукти
78Ñе иÑпорачува Ñо толку виÑоко ниво на дефекти како
79Ñофтверот
80ï® Ð—Ð³Ð¾Ð»ÐµÐ¼ÐµÐ½Ð°Ñ‚Ð° комплекÑноÑÑ‚ на Ñофтверот како и
81намалениот очекуван животен век на ÑофтверÑките
82продукти ја зголемува економÑката цена на грешките
83Софтвер
847
85ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
86И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
87СОФТВЕРСКО ИÐЖЕÐЕРСТВО
88Загуби поради Ñофтвер
89ï® ÐŸÑ€Ð¾Ñ†ÐµÐ½ÐºÐ°Ñ‚Ð° е дека ÑофтверÑките грешки ја чинат
90економијата на С.Ð.Д. 59,5 милијарди долари
91годишно или околу 0.6% од GDP*.
92ï® ÐŸÐ¾Ð»Ð¾Ð²Ð¸Ð½Ð° од оваа штета ја трпат кориÑниците на
93Ñофтвер, половина развивчите.
94ï® ÐžÐºÐ¾Ð»Ñƒ 1/3 од овие грешки можеле да бидат
95отÑтранети доколку било имплементирано подобро
96теÑтирање.
97ï® ÐœÐ¾Ð¼ÐµÐ½Ñ‚Ð°Ð»Ð½Ð¾, преку половина од грешките Ñе наоѓаат
98дури по иÑпораката на Ñофтверот (или неговата
99пробна работа во реална Ñредина)
100*) http://www.nist.gov/public_affairs/releases/n02-10.htm
101Софтвер
1028
103ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
104И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
105СОФТВЕРСКО ИÐЖЕÐЕРСТВО
106ÐЕСРЕЌИ
107ï® Ðајголем број на екÑперти Ñе ÑоглаÑува
108дека најверојатниот начин Ñветот
109(животот на нашата планета или
110цивилизацијата каква што ја познаваме)
111да биде уништен е при Ñлучајна неÑреќа
112(by accident).
113Софтвер
1149
115ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
116И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
117СОФТВЕРСКО ИÐЖЕÐЕРСТВО
118Тука наÑтапуваме ние – компјутерÑките
119профеÑионалци!
120* Nathaniel Borenstein, inventor of MIME, in: Programming as if People Mattered:
121Friendly Programs, Software Engineering and Other Noble Delusions, Princeton University Press, Princeton, NJ, 1991.
122ÐИЕ ГИ ПРЕДИЗВИКУВÐМЕ
123СЛУЧÐЈÐИТЕ ÐЕСРЕЌИ!
124Софтвер
12510
126ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
127И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
128СОФТВЕРСКО ИÐЖЕÐЕРСТВО
129Кобни ÑофтверÑки грешки
130ï® ÐœÐ°ÑˆÐ¸Ð½Ð° за радиотерапија Ñо ÑофтверÑки контролер
131кој преозрачил неколку пациенти, некои од нив
132починале
133http://sunnyday.mit.edu/therac-25.html
134ï® Panama 22 May, 2001: 28 пациенти преозрачени; 8
135починале; 3/4 од преоÑтанатите 20 Ñе очекува да
136имаат Ñериозни компликации кои во некои Ñлучаи
137можат да бидат и фатални
138http://www.fda.gov/cdrh/ocd/panamaradexp.html
139ï® Ariane-5 ESA, 1996: Комплетна загуба на ракетата и
140кориÑниот товар (за Ñреќа нема жртви) поради
141грешка во иÑклучок фрлен од ADA код кој и не бил
142потребен по полетувањето
143http://www.esa.int/htdocs/tidc/Press/Press96/ariane5rep.html
144http://www.ima.umn.edu/~arnold/disasters/ariane.html
145Софтвер
14611
147https://www.youtube.com/watch?v=EMVBLg2MrLs
148http://www.cse.psu.edu/~gxt29/bug/softwarebug.html
149ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
150И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
151СОФТВЕРСКО ИÐЖЕÐЕРСТВО
152MIM-104 Patriot SAM
153ï® Ðа 25 февруари 1991 година,
154Ирачка ракета SCUD убива 28
155американÑки војници во Dharan и
156покрај заштитата од најмодерните
157Patriot батерии. ИÑтрагата открила дека
158ова Ñе Ñлучило поради ÑофтверÑка
159грешка во ÑиÑтемот за наведување на
160MIM-104 Patriot SAM ракетите поради
161отÑтапување на ÑофтверÑкиот чаÑовник
162на ÑиÑтемот кој без прекин работел
163преку 100 чаÑа од Ñамо 1/3 Ñекунда што
164резултирало во грешка од 600 метри.
165http://en.wikipedia.org/wiki/Patriot_missile
166Софтвер
16712
168ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
169И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
170СОФТВЕРСКО ИÐЖЕÐЕРСТВО
171Квалитет на Ñофтвер
172ï® Ð•Ð´Ð½Ð° мерка: bugs/kloc
173 може да Ñе измери дури по иÑпораката/интеграцијата
174 проÑекот во индуÑтријата е околу 10
175 виÑок квалитет – 0.1 или помалку
176ï® Ð¡Ñ‚Ð°Ð½Ð´Ð°Ñ€Ð´Ð½Ð°Ñ‚Ð° „гаранција“ при иÑпорака на Ñофтвер е
177безмалку никаква.
178ï® Ð•Ð´Ð¸Ð½Ñтвено Ñофтверот за Ñпецијални ÑиÑтеми
179(контрола на авио-Ñообраќај, контрола на нуклеарни
180централи и Ñл.) е ригорозно „развиван“ за да Ñе
181обезбеди одреден квалитет кој доаѓа и Ñо одредена
182гаранција.
183kloc – KiloLinesOfCode илјада линии изворен код
184Софтвер
18513
186ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
187И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
188СОФТВЕРСКО ИÐЖЕÐЕРСТВО
189“Standard†software disclaimer (1)
190ï® [This] Software is provided 'as is' without warranty of
191any kind, either express or implied, including, but not
192limited to, the implied warranties of fitness for a
193purpose, or the warranty of non-infringement. Without
194limiting the foregoing, the [Firm] makes no warranty
195that:
196ï® the software will meet your requirements
197ï® the software will be uninterrupted, timely, secure or
198error-free
199ï® the results that may be obtained from the use of the
200software will be effective, accurate or reliable
201ï® the quality of the software will meet your expectations
202ï® any errors in the software obtained from the [Firm] will
203be corrected.
204Софтвер
20514
206ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
207И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
208СОФТВЕРСКО ИÐЖЕÐЕРСТВО
209Standard software disclaimer (2)
210ï® In no event shall the [Firm] be liable to you or any third
211parties for any special, punitive, incidental, indirect or
212consequential damages of any kind, or any damages
213whatsoever, including, without limitation, those resulting
214from loss of use, data or profits, whether or not the [Firm]
215has been advised of the possibility of such damages,
216and on any theory of liability, arising out of or in
217connection with the use of this software.
218ï® The use of this software is done at your own discretion
219and risk and with agreement that you will be solely
220responsible for any damage to your computer system or
221loss of data that results from such activities. No advice or
222information, whether oral or written, obtained by you
223from the [Firm] or from the [Firm] web site shall create
224any warranty for the software.
225Софтвер
22615
227ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
228И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
229СОФТВЕРСКО ИÐЖЕÐЕРСТВО
230Што е потребно за да Ñе подобри
231квалитетот на Ñофтверот?
232ï® â€œYou know what’s needed before we get good
233software? Cars in this country got better when
234Japan showed us that cars could be built better.
235Someone will have to show the industry that
236software can be built better.â€
237John Murray, FDA’s software quality guru
238quoted in Software Conspiracy, Mark Minasi,
239McGraw Hill, 2000
240ТОРСТЕ ВИЕ!
241Софтвер
24216
243ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
244И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
245СОФТВЕРСКО ИÐЖЕÐЕРСТВО
246Ðеколку кориÑни Ñовети
247ï® Ð¢Ñ€ÐµÐ±Ð° да научите не Ñамо како да
248пишувате добар код, туку како да
249правите добар Ñофтвер што е поважно.
250ï® Ð¡Ð¾Ñ„Ñ‚Ð²ÐµÑ€ кој ќе биде:
251помалку гломазен
252подиректен
253помалку врзан за технологијата која набргу
254ќе заÑтари
255Софтвер
25619
257ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
258И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
259СОФТВЕРСКО ИÐЖЕÐЕРСТВО
260Ðеколку кориÑни Ñовети
261ï® Ðе штедете време во размиÑлување
262ï® Ðе брзајте да кодирате
263ï® Ð”Ð¸Ð·Ð°Ñ˜Ð½Ð¸Ñ€Ð°ÑšÐµÑ‚Ð¾ е поинтереÑно од дебагирањето
264“I gave desperate warnings against the obscurity, the
265complexity, and over-ambition of the new design, but my
266warnings went unheeded. I conclude that there are two
267ways of constructing a software design: One way is to
268make it so simple there are obviously no deficiencies
269and the other way is to make it so complicated that there
270are no obvious deficiencies.â€
271Tony Hoare, Turing Award Lecture,
2721980 talking about the design of Ada
273Софтвер
27420
275ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
276И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
277СОФТВЕРСКО ИÐЖЕÐЕРСТВО
278Keep it simple!
279ï® ÐžÐ±Ð¸Ð´ÑƒÐ²Ð°Ñ˜Ñ‚Ðµ Ñе Ñекогаш да го избирате
280наједноÑтавниот дизајн кој ја врши
281работата.
282ï® Ðе компликувајте без потреба
283ï® Ð—Ð°Ð¿Ð¾Ð¼Ð½ÐµÑ‚Ðµ дека Ñекогаш е можно
284релативно едноÑтавно нешто од
285едноÑтавно да Ñе направи
286компликувано, но ѓаволÑки тешко е да
287Ñе направи нешто навиÑтина
288едноÑтавно.
289Софтвер
29021
291ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
292И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
293СОФТВЕРСКО ИÐЖЕÐЕРСТВО
294За што ќе зборуваме...
295ï® Ð¨Ñ‚Ð¾ е тоа компјутерÑки Ñофтвер?
296ï® Ð—Ð¾ÑˆÑ‚Ð¾ Ñе трудиме да направиме
297виÑоко-квалитетни компјутерÑки
298ÑиÑтеми?
299ï® ÐšÐ°ÐºÐ¾ може да Ñе категоризира
300Ñофтверот Ñпоред доменот на
301апликација?
302ï® Ð¨Ñ‚Ð¾ означува „ÑофтверÑки процеÑ“?
303Софтвер
30422
305ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
306И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
307СОФТВЕРСКО ИÐЖЕÐЕРСТВО
308Софтвер - дефиниција
309Софтверот Ñе:
3101) инÑтрукции (компјутерÑка програма) кои кога
311Ñе извршуваат ги обезбедуваат
312поÑакуваните оÑобини, функции и
313перформанÑи;
3142) податочни Ñтруктури кои овозможуваат
315програмите адекватно да ги манипулираат
316информациите;
3173) опиÑни информации, како копија на хартија
318или виртуелна форма кои го опишуваат
319работењето и употребата на програмите.
32023
321Софтвер
322ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
323И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
324СОФТВЕРСКО ИÐЖЕÐЕРСТВО
325Софтвер
326ï® Ð¨Ñ‚Ð¾ е тоа? – Продуктот кој го
327дизајнираат и градат ÑофтверÑките
328инженери
329ï® ÐžÐ´ нивен аÑпект -програми,
330документација, податоци
331ï® ÐžÐ´ аÑпект на крајниот кориÑник –
332излезната информација (ефектот) на
333Ñофтверот која го прави нивниот Ñвет
334подобар
335Софтвер
33624
337ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
338И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
339СОФТВЕРСКО ИÐЖЕÐЕРСТВО
340Различни аÑпекти кон Ñофтверот
341ï® ÐžÐ´ аÑпект на ÑофтверÑките инженери
342Ñофтверот е ÑоÑтавен од програми,
343документи и податоци потребни за да
344Ñе развие ÑофтверÑкиот ÑиÑтем
345ï® ÐžÐ´ аÑпект на кориÑникот Ñофтверот е
346Ñамо продукт кој ги задоволува или не
347ги задоволува нивните барања и им ја
348олеÑнува работата
349Софтвер
35025
351ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
352И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
353СОФТВЕРСКО ИÐЖЕÐЕРСТВО
354Двојна природа на Ñофтверот
355ï® Ð¡Ð¾Ñ„Ñ‚Ð²ÐµÑ€Ð¾Ñ‚ е иÑтовремено и краен продукт и
356оÑновно ÑредÑтво за „производÑтво“ и
357иÑпорака на крајниот продукт.
358ï® ÐžÐ²Ð¾Ð·Ð¼Ð¾Ð¶ÑƒÐ²Ð° иÑкориÑтување на
359преÑметковниот и мемориÑкиот потенцијал на
360компјутерÑкиот хардвер
361ï® ÐˆÐ° овозможува оÑновата на контролата на
362компјутерот (ОС), мрежата и овозможува
363креирање и контрола на други програми
364Софтвер
36526
366ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
367И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
368СОФТВЕРСКО ИÐЖЕÐЕРСТВО
369ИнформациÑко општеÑтво
370ï® Ð—ÐµÐ¼Ñ˜Ð¾Ð´ÐµÐ»Ñко општеÑтво
371 поголемиот дел од наÑелението Ñе занимава Ñо
372обработка на земја и производÑтво на храна
373ï® Ð˜Ð½Ð´ÑƒÑтриÑко општеÑтво
374 поголемиот дел од наÑелението Ñе занимава Ñо
375производÑтво на материјални добра
376ï® Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñко општеÑтво
377 поголемиот дел од наÑелението Ñе занимава Ñо
378давање уÑлуги – манипулација на информации
379Софтвер
38027
381ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
382И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
383СОФТВЕРСКО ИÐЖЕÐЕРСТВО
384ТранÑформатор на информации
385ï® Ð¡Ð¾Ñ„Ñ‚Ð²ÐµÑ€Ð¾Ñ‚ врши транÑформација на
386информација
387 креирање
388 менаџирање
389 прибирање
390 промена
391 прикажување
392 преноÑ
393на информации
394ï® Ð¡Ð¾Ñ„Ñ‚Ð²ÐµÑ€Ð¾Ñ‚ го иÑпорачува највредното нешто
395во денешно време
396ИÐФОРМÐЦИЈÐ
397Софтвер
39828
399ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
400И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
401СОФТВЕРСКО ИÐЖЕÐЕРСТВО
402КарактериÑтики на Ñофтверот
403Софтверот е логички а не физички ÑиÑтем!
4041. Софтверот не Ñе произведува, тој Ñе развива
405ï® ÐºÐ²Ð°Ð»Ð¸Ñ‚ÐµÑ‚Ð¾Ñ‚ Ñе поÑтига преку добар дизајн (но нема
406производÑтво на ништо материјално)
407ï® Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾Ñтите завиÑат од луѓе но релациите помеѓу луѓето Ñе
408различни
409ï® Ñ‚Ñ€Ð¾ÑˆÐ¾Ñ†Ð¸Ñ‚Ðµ Ñе концентрирани во инженерÑтвото
4102. Софтверот не Ñе троши (абе), но Ñе „раÑипува“ (Ñе
411збајатува, Ñе влошува)  (Ñл.1, Ñл.2)
4123. И покрај Ñé помаÑовната употреба на „готов“
413Ñофтвер како и Ñé поголемото Ñвртувањето кон
414развој на компонентно базирани ÑиÑтеми, Ñé уште
415најголем дел од Ñофтверот Ñе развива по
416нарачка
417Софтвер
41829
419ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
420И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
421СОФТВЕРСКО ИÐЖЕÐЕРСТВО
422Рата на дефекти за хардвер
423“Infant “Wear outâ€
424mortalityâ€
425Time
426F
427ailure rat
428e
429Софтвер
43030
431ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
432И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
433СОФТВЕРСКО ИÐЖЕÐЕРСТВО
434Рата на дефекти за Ñофтвер
435Increased failure
436rate due to side
437effects
438Time
439F
440ailure ra
441t
442e
443Change
444Actual curve
445Idealized curve
446Софтвер
44731
448ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
449И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
450СОФТВЕРСКО ИÐЖЕÐЕРСТВО
451КарактериÑтики на Ñофтверот
452ï® Ð¡Ð¾Ñ„Ñ‚Ð²ÐµÑ€Ð¾Ñ‚ Ñе јавува и како финален продукт и како
453алатка за развој на други продукти.
454ï® Ð¡Ð¾Ñ„Ñ‚Ð²ÐµÑ€Ð¾Ñ‚ Ñе развива, тој не Ñе произведува
455ï® Ð¡Ð¾Ñ„Ñ‚Ð²ÐµÑ€Ð¾Ñ‚ не Ñе троши (абе), но заÑтарува
456ï® Ðајголемиот дел од Ñофтверот Ñе прави по нарачка
457ï® Ð¡Ð¾Ñ„Ñ‚Ð²ÐµÑ€Ð¾Ñ‚ може да биде екÑтремно комплекÑен па
458поради тоа и тежок за разбирање и Ñледење што
459оÑтава многу голем проÑтор за човечки грешки.
460ï® Ð Ð°Ð·Ð²Ð¾Ñ˜Ð¾Ñ‚ на комплекÑен Ñофтвер кој ќе биде без
461грешки (или барем тие ќе бидат Ñведени на
462прифатливо ниÑко ниво) е неизводливо доколку на
463целиот Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ðµ Ñе приÑтапи на правилен и
464организиран начин.
465Софтвер
46632
467ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
468И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
469СОФТВЕРСКО ИÐЖЕÐЕРСТВО
470Софтвер - домени на примена
471ï® Ð¡Ð¸ÑтемÑки Ñофтвер
472 (компајлери, едитори) обработува комплекÑни но одредени
473информациÑки Ñтруктури
474 (оперативни ÑиÑтеми, драјвери) обработува претежно неодредени
475информации
476ï® Ð’Ð¾ обата Ñлучаја Ñе карактеризира Ñо виÑока
477инеракција/завиÑноÑÑ‚ од хардверот, повеќе кориÑници,
478паралелни операции и раÑпоредување, Ñподелување на
479реÑурÑи, комплекÑни податочни Ñтруктури, надворешни
480интерфејÑи
481 Real-time software
482ï® Ð½Ð°Ð´Ð³Ð»ÐµÐ´ÑƒÐ²Ð° процеÑи и појави од реалниот Ñвет: Ñе појавуваат – треба да бидат
483обработени во реално време. Треба да дава одредени гаранции за
484времетраењето на обработките.
485ï® Ðпликативен Ñофтвер
486 индивидуални програми кои решаваат одредени Ð±Ð¸Ð·Ð½Ð¸Ñ Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸
487(инвентари, платни ÑпиÑоци, ÑметководÑтво, ...)
488Софтвер
48933
490ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
491И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
492СОФТВЕРСКО ИÐЖЕÐЕРСТВО
493Софтвер - домени на примена
494ï® Ð˜Ð½Ð¶ÐµÐ½ÐµÑ€Ñки и научен Ñофтвер
495 CAM, CAD, Ñимулации, комплекÑни нумерички преÑметки, ...
496ï® Ð’Ð³Ñ€Ð°Ð´Ð»Ð¸Ð² (embedded) Ñофтвер
497 вграден во продукти или ÑиÑтеми Ñо цел да обезбеди контролна
498функција за ÑиÑтемот и/или крајниот кориÑник
499 мобилни телефони, MP3 players, routers, микробранови печки,
500автомобили
501ï® Ð¡Ð¾Ñ„Ñ‚Ð²ÐµÑ€ за PC - маÑовен Ñофтвер (Product-line)
502 дизајниран да обезбеди одредени Ñпецифични функционалноÑти за
503различни кориÑници; фокуÑиран на
504ï® Ñпецифичен пазар (магацинÑко работење)
505ï® Ð¼Ð°Ñовен пазар (word processing, spreadsheets, computer graphics,
506multimedia, entertainment)
507ï® Web и мобилни апликации
508 веб апликации на кои им Ñе приÑтапува преку прегледувач (browser)
509 апликации кои Ñе поÑтавени на мобилни уреди
510ï® Ð¡Ð¾Ñ„Ñ‚Ð²ÐµÑ€ за вештачка интелигенција
511 роботика, екÑпертни ÑиÑтеми, препознавање на облици (Ñлика,
512говор) ...
513Софтвер
51434
515ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
516И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
517СОФТВЕРСКО ИÐЖЕÐЕРСТВО
518Legacy software
519ï® Ð¡Ñ‚Ð°Ñ€ „наÑледен“ Ñофтвер (10+ години)
520 понекогаш од одредени причини заÑегнатите Ñакаат да го
521одржат во функција
522 долготраен, менуван и дополнуван
523 на него Ñе потпираат некои од оÑновните Ð±Ð¸Ð·Ð½Ð¸Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸ во
524одредена организација - и критичен за бизниÑот - затоа е
525„незаменлив“
526ï® Ð—Ð° жал, кај ваквите ÑиÑтеми чеÑто Ñе Ñреќава и:
527 Ñлаб квалитет
528 нефлекÑибилен дизајн
529 неразбирлив код
530 Ñлаба или никаква документација
531 Ñлабо одржувана иÑторија на измени
53235
533Софтвер
534ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
535И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
536СОФТВЕРСКО ИÐЖЕÐЕРСТВО
537Прашања...
538... кои ги мачат ÑофтверÑките инженери
539ï® Ð—Ð¾ÑˆÑ‚Ð¾ е потребно толку многу време за да Ñе
540заврши Ñофтверот?
541ï® Ð—Ð¾ÑˆÑ‚Ð¾ развојот е толку Ñкап?
542ï® Ð—Ð¾ÑˆÑ‚Ð¾ не можеме да ги пронајдеме Ñите
543грешки пред да го иÑпорачаме Ñофтверот?
544ï® Ð—Ð¾ÑˆÑ‚Ð¾ губиме толку многу време на
545одржување на поÑтоечки ÑиÑтеми?
546ï® Ð—Ð¾ÑˆÑ‚Ð¾ Ñледењето на прогреÑот при развојот
547на Ñофтвер е Ñе уште тешко?
54836
549Софтвер
550ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
551И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
552СОФТВЕРСКО ИÐЖЕÐЕРСТВО
553Ðови предизвици во развојот
554на Ñофтвер
555ï® Open-world computing
556ï® networking, pervasive, distributed computing
557ï® Netsourcing
558ï® World Wide Web is rapidly becoming a computing
559engine as well as a content provider
560ï® Open source
561ï® distribution of source code for systems applications
562so that many people can contribute to its
563development
564Софтвер
56537
566ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
567И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
568СОФТВЕРСКО ИÐЖЕÐЕРСТВО
569Трендови
570ï® Web апликации и ÑервиÑи
571ï® ÐœÐ¾Ð±Ð¸Ð»Ð½Ð¸ апликации
572ï® Cloud computing
573ï® Product line software
57438
575Софтвер
576ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
577И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
578СОФТВЕРСКО ИÐЖЕÐЕРСТВО
579WEB апликации
580ï® Ð¼Ñ€ÐµÐ¶Ð½Ð¾ интензивни
581ï® ÐºÐ¾Ð½ÐºÑƒÑ€ÐµÐ½Ñ‚Ð½Ð¾ÑÑ‚
582ï® Ð½ÐµÐ¿Ñ€ÐµÐ´Ð²Ð¸Ð´Ð»Ð¸Ð²Ð¾ оптоварување
583ï® Ð¿ÐµÑ€Ñ„Ð¾Ñ€Ð¼Ð°Ð½Ñи
584ï® Ð´Ð¾ÑтапноÑÑ‚
585ï® Ð¿Ð¾Ð´Ð°Ñ‚Ð¾Ñ‡Ð½Ð¾ водени
586ï® Ð·Ð°Ð²Ð¸Ñни од Ñодржината
587ï® Ð¿Ð¾Ñтојана еволуција
588ï® Ð¸Ñ‚Ð½Ð¾ÑÑ‚
589ï® ÑигурноÑÑ‚
590ï® ÐµÑтетика
59139
592Софтвер
593ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
594И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
595СОФТВЕРСКО ИÐЖЕÐЕРСТВО
596Структура на продажната цена на Ñофтверот
597ï® Ð’Ð¾Ð¾Ð±Ð¸Ñ‡Ð°ÐµÐ½Ð¾ Ñе дели на три дела:
5981. up-front fee - Ñе наплаќа на почетокот како
599лиценца (право) на кориÑтење на
600Ñофтверот
6012. maintenance – Ñе наплаќа годишно за
602одржување (15-25% од 1.) – patches,
603upgrades, …
6043. инÑталација, интеграција, обука, ..
605Софтвер
60640
607ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
608И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
609СОФТВЕРСКО ИÐЖЕÐЕРСТВО
610Трендови
611ï® 1990 – околу 70% од приходите на
612јавните ÑофтверÑки компании во СÐД
613биле од up-front fee
614ï® 2000 – околу 50% од приходите Ñе од
615up-front fee
616ï® Ðе Ñе ретки компаниите кај кои овој
617процент е Ñамо 30%
618ï® ÐœÐ¾Ð¶Ðµ да биде и 0% !!!
619Софтвер
62041
621ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
622И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
623СОФТВЕРСКО ИÐЖЕÐЕРСТВО
624Модели на лиценцирање
625ï® free OpenSource Ñофтвер upfront=0
626ï® subscription license – Ñе купува правото на кориÑтење на одредено
627време
628 подолг период 3 години – плаќање на рати
629 Ð¿Ð¾ÐºÑƒÑ Ð¿ÐµÑ€Ð¸Ð¾Ð´ 1 меÑец (хоÑтирање)
630ï® usage license (Oracle)
631 site license
632 on-demand usage-based license
633ï® Software as a service
634ï® â€œRazor and blade†model – оÑновната апликација Ñе нуди беÑплатно а Ñе
635наплаќа за оÑтанатите делови на продуктот (Adobe)
636ï® Service model – оÑновната апликација Ñе дава беÑплатно а Ñе
637заработува на уÑлуги како инÑталација, конфигурација, одржување,
638обука, ... (Red Hat)
639ï® Advertising model – кориÑниците не плаќаат за употребата на
640Ñофтверот, но за Ñметка на тоа мораат да гледаат реклами додека го
641кориÑтат (Google, Microsoft Live)
642Софтвер
64342
644ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
645И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
646СОФТВЕРСКО ИÐЖЕÐЕРСТВО
647Видови на Ñофтвер ©
648ï® Proprietary software
649 non-free software or closed-source software
650ï® Free software (open-source software)
651 source code must be made available
652 Free software licenses
653ï® GNU General Public License
654ï® GNU Lesser General Public License
655ï® BSD License
656ï® Mozilla Public License
657ï® MIT License
658ï® Apache License
659Софтвер
66043
661ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
662И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
663СОФТВЕРСКО ИÐЖЕÐЕРСТВО
664Видови на Ñофтвер (доÑтапноÑÑ‚)
665ï® Freeware (беÑплатен)
666ï® Shareware (беÑплатен во оÑнована /
667ограничена форма или за одредено време)
668ï® Open source (беÑплатен Ñо доÑтапен изворен
669код – може да Ñе менува)
670ï® Commercial
671 Се продава за комерцијални цели
672 Proprietary но може и free (Red Hat, Sun, …)
673ï® Abandonware
674ï® Adware
675Софтвер
67644
677ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
678И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
679СОФТВЕРСКО ИÐЖЕÐЕРСТВО
680ï® Pressman 7th edition, Ch. 1
681or
682ï® Pressman 8th edition, Ch. 1
68345
684ÐŸÑ€Ð¾Ñ†ÐµÑ Ð½Ð° развој на Ñофтвер
685ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
686И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
687СОФТВЕРСКО ИÐЖЕÐЕРСТВО 46
688Софтвер
689______________________________________________________________________________________________________________
690Модели на процеÑи
691за развој на Ñофтвер
692Модели на процеÑи за развој
693на Ñофтвер
694ï¶ ÐŸÑ€Ð¾Ñ†ÐµÑот кој ја обезбедува рамката за практикување на
695ÑофтверÑкото инженерÑтво
696ï¶ Ð¨Ñ‚Ð¾ е ÑофтверÑки Ð¿Ñ€Ð¾Ñ†ÐµÑ (Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ð° развој на Ñофтвер)
697ï¶ ÐšÐ¾Ð¸ Ñе генеричките рамковни активноÑти приÑутни во Ñекој
698ÑофтверÑки процеÑ
699ï¶ ÐšÐ°ÐºÐ¾ Ñе моделираат процеÑите и што Ñе процеÑни шаблони
700(модели)
701ï¶ ÐšÐ¾Ð¸ Ñе пропишани процеÑни модели и кои Ñе нивните предноÑти
702и недоÑтатоци
703ï¶ Ð¨Ñ‚Ð¾ значи агилноÑта за модерното ÑофтверÑко инженерÑтво
704ï¶ Ð¨Ñ‚Ð¾ е агилно ÑофтверÑко инженерÑтво и како Ñе разликува од
705традиционалните процеÑни модели
7062
707Модели на процеÑи за развој на Ñофтвер
708ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
709И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
710СОФТВЕРСКО ИÐЖЕÐЕРСТВО
711Генеричка процеÑна рамка
712ï® ÐšÐ¾Ð¼ÑƒÐ½Ð¸Ñ†Ð¸Ñ€Ð°ÑšÐµ
713ï® ÐŸÐ»Ð°Ð½Ð¸Ñ€Ð°ÑšÐµ
714ï® ÐœÐ¾Ð´ÐµÐ»Ð¸Ñ€Ð°ÑšÐµ
715ï® ÐšÐ¾Ð½Ñтрукција
716ï® Ð£Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð°
717Паралелни активноÑти:
718•Следење и контрола
719•Менаџирање на ризици
720•Проверка на квалитет
721•Формални технички прегледи
722•Measurement
723•Менаџирање на ефектите на
724промена
725•Менаџирање за повторна
726употреба
727•Подготовка и продукција на
728документи
729Модели на процеÑи за развој на Ñофтвер
7303
731ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
732И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
733СОФТВЕРСКО ИÐЖЕÐЕРСТВО
734Process framework
735ï® Ð¡ÐµÐºÐ¾Ñ˜Ð° акција е
736дефинирана Ñо множеÑтво
737на задачи кои ги опишува
738работите кои треба да Ñе
739завршат, продуктот кој ќе
740биде продуциран,
741проверките и граничниците
742на оÑнова на кои ќе Ñе
743проценува прогреÑот
7445
745Модели на процеÑи за развој на Ñофтвер
746Process framework
747Umbrella activities
748framework activity 1 #
749Task sets
750work tasks
751work products
752quality assurance points
753project milestones
754software engineering action 1 1 # .
755Task sets
756work tasks
757work products
758quality assurance points
759project milestones
760software engineering action 1 k # .
761framework activity n #
762Task sets
763work tasks
764work products
765quality assurance points
766project milestones
767software engineering action n 1 # .
768Task sets
769work tasks
770work products
771quality assurance points
772project milestones
773software engineering action n m # .
774Software process
775ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
776И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
777СОФТВЕРСКО ИÐЖЕÐЕРСТВО
778Модели на процеÑи за развој на
779Ñофтвер
780ï® Ð—Ð° да ги реши актуелните проблеми,
781ÑофтверÑкиот инженер (или тим) мора да
782примени Ñтратегија за развој која ги опфаќа
783нивоата на процеÑот, методите и алатките
784како и генеричките фази во развојот на
785Ñофтвер. Оваа Ñтратегија е наречена модел
786на Ð¿Ñ€Ð¾Ñ†ÐµÑ (за развој на Ñофтвер) или
787парадигма на ÑофтверÑкото инженерÑтво.
788ï® Ð˜Ð·Ð±Ð¾Ñ€Ð¾Ñ‚ на моделот завиÑи од природата на
789проектот или апликацијата, методите и
790алатките кои ќе Ñе кориÑтат како и резултатот
791кој Ñе очекува
792Модели на процеÑи за развој на Ñофтвер
7936
794ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
795И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
796СОФТВЕРСКО ИÐЖЕÐЕРСТВО
797Тек на процеÑ
798ï® ÐžÐ¿Ð¸ÑˆÑƒÐ²Ð° како Ñе поÑтавени рамковните активноÑти, акции и
799задачи и ги моделира нивните меѓуÑебни релации во рамките
800на процеÑот (како Ñе организирани во од аÑпект на Ñеквенца и
801време)
802ï® Ð›Ð¸Ð½ÐµÐ°Ñ€ÐµÐ½ процеÑен тек - ги извршува рамковните активноÑти
803во редоÑледен Ñеквенцијален редоÑлед (почнувајќи Ñо
804комуницирање и завршувајќи Ñо иÑпорака)
805ï® Ð˜Ñ‚ÐµÑ€Ð°Ñ‚Ð¸Ð²ÐµÐ½ процеÑен тек ги повторува една или повеќе од
806активноÑтите пред да премине на Ñледна
807ï® Ð•Ð²Ð¾Ð»ÑƒÑ‚Ð¸Ð²ÐµÐ½ поцеÑен тек ги извршува активноÑтите во
808повторувачки циркуларен тек, иÑпорачувајќи покомплетна
809верзија на Ñофтверот Ñо Ñекое поминување низ циклуÑот
810ï® ÐŸÐ°Ñ€Ð°Ð»ÐµÐ»ÐµÐ½ процеÑен тек извршува една или повеќе активноÑти
811паралелно (Ñимултано) Ñо другите активноÑти
812Модели на процеÑи за развој на Ñофтвер
8137
814ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
815И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
816СОФТВЕРСКО ИÐЖЕÐЕРСТВО
817ПроцеÑни модели (1)
8188
819Модели на процеÑи за развој на Ñофтвер
820Communication Planning Modeling
821(a) Linear process flow
822Construction Deployment
823Communication Planning Modeling Construction Deployment
824(b) Iterative process flow
825ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
826И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
827СОФТВЕРСКО ИÐЖЕÐЕРСТВО
828ПроцеÑни модели (2)
8299
830Модели на процеÑи за развој на Ñофтвер
831(c) Evolutionary process flow
832Planning
833Modeling
834Deployment Construction Increment
835released
836Communication
837(d) Parallel process flow
838Construction Deployment
839Communication Planning
840Modeling Time
841ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
842И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
843СОФТВЕРСКО ИÐЖЕÐЕРСТВО
844Групи на задачи
845ï® Ð¡ÐµÐºÐ¾Ñ˜Ð° акција поврзана Ñо некоја од
846рамковните активноÑти на ÑофтверÑкото
847инженерÑтво може да биде претÑтавенa Ñо
848одредена група на задачи
849ï® ÐœÐ°Ð»Ð¸Ñ‚Ðµ проекти (Ñо еден инволвиран) не
850бараат групи на задачи кои Ñе Ñложени и
851детални како задачите кај комплекÑните тим- ориентирании проекти
852ï® Ð“Ñ€ÑƒÐ¿Ð¸Ñ‚Ðµ на задачи Ñе прилагодуваат кон
853Ñпецифичните потреби на конкретниот
854ÑофтверÑки проект и карактериÑтиките на
855проектниот тим
856Модели на процеÑи за развој на Ñофтвер
85710
858ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
859И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
860СОФТВЕРСКО ИÐЖЕÐЕРСТВО
861За едноÑтавен проект
862ï® Ð—Ð° едноÑтавен проект активноÑта
863комуникација може да Ñе Ñведе на:
8641. Контакт по телефон Ñо заÑегнатиот
8652. ДиÑкуÑија околу барањата и прибелешки
8663. Организација на прибелешките во куÑа
867пишан текÑÑ‚ за барањата
8684. ИÑпраќање на текÑтот по електронÑка
869пошта до заÑегнатата Ñтрана на
870одобрување
87111
872Модели на процеÑи за развој на Ñофтвер
873ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
874И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
875СОФТВЕРСКО ИÐЖЕÐЕРСТВО
876За Ñложени проекти
877ï® Ð—Ð° поÑложени проекти Ñо повеќе заÑегнати
878Ñтрани активноÑта комуникација може да
879вклучува повеќе конкретни акции како:
880 inception - почеток, зачнување
881 elicitation - „изнудување“, прибирање на барања
882 elaboration - елаборација (обработка)
883 negotiation - преговарање
884 specification - Ñпецификација, и
885 validation - валидација, проверка
88612
887Модели на процеÑи за развој на Ñофтвер
888ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
889И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
890СОФТВЕРСКО ИÐЖЕÐЕРСТВО
891Ðкции и задачи
892ï® Ð¡ÐµÐºÐ¾Ñ˜Ð° акција може да биде
893претÑтавена Ñо повеќе групи на задачи
894Ñекоја ÑоÑтавена од работни задачи,
895работни продукти, проверка на
896квалитет, граничници, ..., Ñоодветно
897избрани Ñпоред природата на проектот
898и карактериÑтиките на тимот.
899ï® ÐŸÑ€. Requirements gathering
90013
901Модели на процеÑи за развој на Ñофтвер
902ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
903И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
904СОФТВЕРСКО ИÐЖЕÐЕРСТВО
905За помал не многу Ñложен проект
906МножеÑтвото на работни задачи може да биде:
9071. Правење лиÑта на заÑегнати Ñтрани во проектот
9082. Ðеформален ÑоÑтанок Ñо заÑегнатите Ñтрани
9093. Барање до заÑегнатите Ñтрани да ÑоÑтават лиÑта од
910поÑакувани карактериÑтики и функционалноÑти
9114. ДиÑкуÑија за барањата и ÑоÑтавување на конечна
912лиÑта
9135. Одредување приоритети на барањата
9146. Означување на деловите кои Ñе неÑигурни
91514
916Модели на процеÑи за развој на Ñофтвер
917ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
918И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
919СОФТВЕРСКО ИÐЖЕÐЕРСТВО
920За голем, Ñложен проект
921МножеÑтвото на работни задачи може да биде:
9221. Правење лиÑта на заÑегнати Ñтрани во проектот
9232. Интервју Ñо Ñекоја од заÑегнатите Ñтрани за да Ñе одредат вкупните потреби и
924барања
9253. Правење на лиÑта од карактериÑтики и функционалноÑти на оÑнова на иÑказите
926на заÑегнатите Ñтрани
9274. Закажување на Ñерија од ÑоÑтаноци за Ñпецификација на апликацијата
9285. Спроведување на ÑоÑтаноците
9296. КонÑтруирање на неформални кориÑнички Ñценарија како резултат од Ñекој од
930ÑоÑтаноците
9317. Рафинирање на Ñценаријата на оÑнова на повратните информации од
932заÑегнатите Ñтрани
9338. Правење на ревидирана лиÑта од барања на заÑегнатите Ñтрани
9349. Одредување на приоритети на функционалноÑтите
93510. Пакување на функционалноÑтите за да можат да бидат иÑпорачувани
936инкрементално
93711. Обележување на ограничувањата кои Ñе поÑтавени на ÑиÑтемот
93812. ДиÑкуÑија околу методите за валидација на ÑиÑтемот
93915
940Модели на процеÑи за развој на Ñофтвер
941ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
942И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
943СОФТВЕРСКО ИÐЖЕÐЕРСТВО
944Шаблони
945ï® Ð—Ð°Ð´Ð°Ñ‡Ð¸Ñ‚Ðµ во рамките на акција може да
946Ñе изберат Ñоодветно на Ñпецифичните
947потреби Ñпоред типот на проектот,
948клиентот, тимот, ...
949ï® Ð¨Ð°Ð±Ð»Ð¾Ð½Ð¸
950Pattern Name, Forces, Type (stage, task,
951phase), Initial context, Problem, Solution,
952Resulting Context, Related Patterns, Known
953Uses and Examples
95416
955Модели на процеÑи за развој на Ñофтвер
956ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
957И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
958СОФТВЕРСКО ИÐЖЕÐЕРСТВО
959Process Pattern
960Шаблон за процеÑни шаблони
961ï® Pattern Name – пр. TechnicalReviews
962ï® Forces – околина во која Ñе Ñретнува
963ï® Type
9641. Stage pattern – дефинира проблем поврзан Ñо рамковна
965или процеÑн активноÑÑ‚ (пр. EstablishingCommunication)
9662. Task pattern – дефинира проблем поврзан Ñо акција или
967работна задача на ÑофтверÑкото инженерÑтво (пр.
968RequirementsGathering)
9693. Phase pattern - дефинира Ñеквенца на процеÑни
970активноÑти кои Ñе појавуваат во рамките на процеÑот (пр.
971SpiralModel или Prototyping)
97217
973Модели на процеÑи за развој на Ñофтвер
974ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
975И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
976СОФТВЕРСКО ИÐЖЕÐЕРСТВО
977Process Pattern
978ï® Initial context – ги опишува предуÑловите за примена на
979шаблонот
980ï® Ðа пр. за Planning (stage pattern) предуÑлов е да е воÑпоÑтавена
981комуникација, оÑновните барања и огнаничувања за проектот Ñе
982познати
983ï® Solution – Опишува како уÑпешно да Ñе имплементира
984шаблонот
985ï® Resulting Context – Ги опишува уÑловите кои ќе важат по
986уÑпешната примена на шаблонот
987ï® Related Patterns – лиÑта на други процеÑни шаблони кои Ñе
988поврзани Ñо него
989ï® Ðа пр. Communication ги Ñодржи шаблоните ProjectTeam,
990CollaborativeGuidelines, ScopeIsolation, RequirementsGathering,
991ConstraintDescription и ScenarioCreation.
992ï® Known Uses and Examples
99318
994Модели на процеÑи за развој на Ñофтвер
995ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
996И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
997СОФТВЕРСКО ИÐЖЕÐЕРСТВО
998Пример за шаблон
999Pattern name. RequirementsUnclear
1000Intent. This pattern describes an approach for building a
1001model (a prototype) that can be assessed iteratively by
1002stakeholders in an effort to identify or solidify software
1003requirements.
1004Type. Phase pattern.
1005Initial context. The following conditions must be met
1006prior to the initiation of this pattern: (1) stakeholders have
1007been identified; (2) a mode of communication between
1008stakeholders and the software team has been
1009established; (3) the overriding software problem to be
1010solved has been identified by stakeholders; (4) an initial
1011understanding of project scope, basic business
1012requirements, and project constraints has been
1013developed.
1014Problem. Requirements are hazy or nonexistent, yet
1015there is clear recognition that there is a problem to be
1016solved, and the problem must be addressed with a
1017software solution. Stakeholders are unsure of what they
1018want; that is, they cannot describe software requirements
1019in any detail.
1020Solution. A description of the prototyping process
1021would be presented here and is described later in
1022Section 2.3.3.
1023Resulting context. A software prototype that identifies
1024basic requirements (e.g., modes of interaction,
1025computational features, processing functions) is
1026approved
1027by stakeholders. Following this, (1) the prototype may
1028evolve through a series of increments to become the
1029production software or (2) the prototype may be
1030discarded
1031and the production software built using some other
1032process
1033pattern.
1034Related patterns. The following patterns are related to
1035this pattern: CustomerCommunication,
1036IterativeDesign, IterativeDevelopment,
1037CustomerAssessment, RequirementExtraction.
1038Known uses and examples. Prototyping is
1039recommended when requirements are uncertain.
1040Модели на процеÑи за развој на Ñофтвер
104119
1042ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1043И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1044СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1045Process assessment and improvement
1046ï® ÐŸÐ¾Ñтоењето на Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ð° развој на Ñофтвер не е
1047гаранција за уÑпешен Ñофтвер.
1048ï® ÐŸÑ€Ð¾Ñ†ÐµÐ½ÐºÐ° дали процеÑот задоволува одредени
1049оÑновни критериуми кои пракÑата покажала дека
1050еÑенцијални за уÑпешно ÑофтверÑко инженерÑтво
1051ï® Ð Ð°Ð·Ð»Ð¸Ñ‡Ð½Ð¸ приÑтапи:
1052 Standard CMMI Assessment Method for Process Improvement
1053(SCAMPI)
1054 CMM-Based Appraisal for Internal Process Improvement (CBA
1055IPI)
1056 SPICE (ISO/IEC15504)
1057 ISO 9001:2000 for Software
105820
1059Модели на процеÑи за развој на Ñофтвер
1060ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1061И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1062СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1063Capability Maturity Model
1064ï® Software Engineering Institute (SEI) развил модел за
1065изразување на зрелоÑта на ÑофтверÑкиот Ð¿Ñ€Ð¾Ñ†ÐµÑ ÐºÐ°Ñ˜
1066различни организации кои практикуваат развој на
1067Ñофтвер во 5 нивоа Ñпоред 18 дефинирани KPAs:
1068 Level 1: Initial – ad hoc & chaotic
1069 Level 2: Repeatable – оÑновно менаџирање на проект за
1070Ñледење на трошоци, рокови и функционалноÑÑ‚.
1071Предвидлив уÑпех за проекти Ñлични на веќе изработените +
1072Ñé од Level 1
1073 Level 3: Defined – СофтверÑкиот Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¸ за менаџментот и
1074за инженерÑките активноÑти е документиран,
1075Ñтандардизиран и интегриран на ниво на целата
1076организација + Ñé од Level 2
1077 Level 4: Managed – Се вршат детални мерења на
1078ÑофтверÑкиот Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¸ квалитетот на Ñофтверот + Ñé од
1079Level 3
1080 Level 5: Optimizing – Континуирано подобрување на
1081процеÑот е овозможено Ñо помош на квантитативни
1082повратни информации од процеÑот и теÑтирање на
1083иновативни идеи и технологии + Ñé од Level 4
1084ÐŸÑ€Ð¾Ñ†ÐµÑ Ð½Ð° развој на Ñофтвер
108521
1086ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1087И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1088СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1089Материјали:
1090ï® Roger S. Pressman, Software Engineering: A
1091Practitioner’s Approach, 7th edition, McGraw-Hill,
10922010.
1093 Chapter 2: Process Models (pg. 30-64)
1094ï® Roger S. Pressman, Software Engineering: A
1095Practitioner’s Approach, 5th edition, McGraw-Hill, 2001.
1096ï® Pratap P.J. Mohapatra, Software Engineering A Lifecycle
1097Approach, New Age Publishers, 2010.
1098ï® Gary B. Shelly, Harry J. Rosenblatt, Systems Analysis
1099and Design, 9th edition, Cengage Learning, 2011.
110022
1101Модели на процеÑи за развој на Ñофтвер
1102ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1103И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1104СОФТВЕРСКО ИÐЖЕÐЕРСТВО 23
1105Модели на процеÑи за развој на Ñофтвер
1106_________________________________________________________________________________________________________________
1107КлаÑични (пропишани)
1108методи за развој на Ñофтвер
1109Prescriptive process models
1110ï® ÐŸÑ€Ð¾Ð¿Ð¸ÑˆÐ°Ð½Ð¸ процеÑни модели
1111ï® Ð˜Ñторијата забележала дека овие
1112традиционални модели вовеле
1113одредена кориÑна Ñтруктура во
1114процеÑот и разумна водилка за
1115ÑофтверÑките тимови низ процеÑот
1116ï® Ð¡ÐµÐºÐ¾Ñ˜ процеÑен модел пропишува тек на
1117процеÑот (work flow) – начинот на кој
1118процеÑните елементи Ñе во релација
1119едни Ñо други
11202
1121Модели на процеÑи за развој на Ñофтвер
1122ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1123И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1124СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1125Поделба на процеÑните модели (1)
1126ï® ÐŸÑ€Ð¾Ð¿Ð¸ÑˆÐ°Ð½Ð¸ (планÑки водени)
1127 waterfall (водопад)
1128 инкрементални
1129 еволуциÑки
1130 конкурентни
1131ï® Ð¡Ð¿ÐµÑ†Ð¸Ñ˜Ð°Ð»Ð½Ð¸
1132 компонентно ориентирани
1133 формални методи
1134 аÑпектно ориентирани
1135ï® Unified process
11363
1137Модели на процеÑи за развој на Ñофтвер
1138ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1139И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1140СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1141Поделба на процеÑните модели (2)
1142ï® Ðгилни
1143 XP (екÑтремно програмирање)
1144 Industrial XP
1145 Adaptive Software Development (ASD)
1146 Scrum
1147 Dynamic Systems Development Method (DSDM)
1148 Crystal
1149 Feature Drive Development (FDD)
1150 Lean Software Development (LSD)
1151 Agile Modeling (AM)
1152 Agile Unified Process (AUP)
11534
1154Модели на процеÑи за развој на Ñофтвер
1155ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1156И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1157СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1158Модели на ÑофтверÑки процеÑи
1159ï® ÐœÐ¾Ð´ÐµÐ» на водопад (waterfall model) (клаÑичен животен Ñ†Ð¸ÐºÐ»ÑƒÑ - Ñтаромоден, но разумен приÑтап кога барањата Ñе добро
1160разбрани)
1161ï® Ð˜Ð½ÐºÑ€ÐµÐ¼ÐµÐ½Ñ‚Ð°Ð»Ð½Ð¸ модели (иÑпорачува Ñофтвер во мали
1162употребливи парчиња при што Ñекое парче Ñе заÑнова на веќе
1163претходно направените парчиња)
1164ï® Ð•Ð²Ð¾Ð»ÑƒÑ‚Ð¸Ð²Ð½Ð¸ модели
1165 Модел на прототипови (разумен иницијален чекор, кога клиентот
1166има легитимна потреба, но деталите не Ñе добро
1167познати/дефинирани, развивачот треба да Ñе ÑпротивÑтави на
1168притиÑокот на инвеÑтиторот грубиот прототип да Ñе прошири во
1169продукциÑки ÑиÑтем)
1170 Спирален модел (ги комбинира итеративниот приÑтап на
1171прототипови Ñо контролираниот ÑиÑтематÑки аÑпекти на водопад
1172моделот)
1173ï® ÐŸÐ°Ñ€Ð°Ð»ÐµÐ»ÐµÐ½ развоен модел (Ñимултан инженеринг - овозможува
1174ÑофтверÑките тимови да ги претÑтавуваат итеративните и
1175паралелни елементи од кој било процеÑен модел)
1176Модели на процеÑи за развој на Ñофтвер
11775
1178ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1179И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1180СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1181Специјализирани процеÑни
1182модели
1183ï® ÐšÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ‚ÐµÐ½ развоен модел (варијација на
1184Ñпиралниот развоен модел во кој апликации Ñе
1185градат од готови ÑофтверÑки компоненти наречени
1186клаÑи)
1187ï® Ð¤Ð¾Ñ€Ð¼Ð°Ð»Ð½Ð¸ методи (ригорозна математичка нотација
1188која Ñе кориÑти за да Ñе Ñпецифицира, дизајнира и
1189потврди/верификува компјутерÑки-базиран ÑиÑтем)
1190ï® Aspect-Oriented развој на Ñофтвер (аÑпект- ориентирано програмирање - обезбедува процеÑот
1191на дефинирање, Ñпецифицирање, дизајнирање и
1192градење на ÑофтверÑки аÑпекти како кориÑнички
1193интерфејÑи, ÑигурноÑÑ‚ и управување Ñо меморијата
1194кои влијаат на многу делови на ÑиÑтемот кој Ñе
1195развива)
1196Модели на процеÑи за развој на Ñофтвер
11976
1198ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1199И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1200СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1201Линеарен Ñеквенцијален модел
1202ï® Ð›Ð¸Ð½ÐµÐ°Ñ€Ð½Ð¸Ð¾Ñ‚ Ñеквенцијален модел наречен уште и
1203клаÑичен или модел на водопад (waterfall model)
1204Ñугерира ÑиÑтематÑки Ñеквенцијален приÑтап кој ги
1205вклучува Ñледниве активноÑти:
1206 СиÑтемÑко/информационо инженерÑтво и моделирање
1207(бидејќи Ñофтверот е дел од поголем ÑиÑтем)
1208 Ðнализа на барања на Ñофтверот
1209 Дизајн
1210 Генерирање на код
1211 ТеÑтирање
1212 Поддршка
1213Analysis Design Code Test
1214System/information
1215engineering
1216Модели на процеÑи за развој на Ñофтвер
12177
1218ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1219И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1220СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1221Фази во линеарниот Ñеквенцијален модел (1)
1222ï® Ð¡Ð¾Ñ„Ñ‚Ð²ÐµÑ€Ñкиот аналитичар мора да го разбере
1223информациÑкиот домен на Ñофтверот, како
1224потребните функции, однеÑување, перформанÑи и
1225интерфејÑи. Барањата Ñе документираат и Ñе
1226прегледуваат Ñо клиентот.
1227ï® Ð”Ð¸Ð·Ð°Ñ˜Ð½Ð¾Ñ‚ е повеќечекорен Ð¿Ñ€Ð¾Ñ†ÐµÑ ÐºÐ¾Ñ˜ Ñе фокуÑира
1228на 4 атрибути на програмата:
12291. податочни Ñтруктури
12302. ÑофтверÑки архитектури
12313. претÑтава на интерфејÑи
12324. процедурални (алгоритамÑки) детали
1233ï® Ð”Ð¸Ð·Ð°Ñ˜Ð½Ð¾Ñ‚ ги преведува барањата во репрезентација
1234на Ñофтверот преку која ќе може да Ñе провери
1235неговиот квалитет уште пред да почне кодирањето
1236Модели на процеÑи за развој на Ñофтвер
12378
1238ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1239И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1240СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1241Фази во линеарниот Ñеквенцијален модел (2)
1242ï® Ð“ÐµÐ½ÐµÑ€Ð¸Ñ€Ð°ÑšÐµ на код – преведување на
1243дизајнот во машинÑки читлива (извршна)
1244форма
1245ï® Ð¢ÐµÑтирање – Ñе концентрира на проверка на
1246интерната логика на Ñофтверот (да Ñе
1247проверат Ñите функции) – и екÑтерната
1248логика - дали за Ñекој дефиниран влез Ñе
1249добива бараниот излез
1250ï® ÐŸÐ¾Ð´Ð´Ñ€ÑˆÐºÐ° – промени: поправка на грешки,
1251прилагодување на нова околина или
1252функционални и перформанÑни промени
1253барани од клиентот
1254Модели на процеÑи за развој на Ñофтвер
12559
1256ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1257И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1258СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1259КлаÑичен Waterfall модел
1260ï® ÐŸÑ€Ð¸Ñ„Ð°Ñ‚Ð»Ð¸Ð² приÑтап кога проблемот е
1261добро дефиниран
1262ï® Ð¡ÑƒÐ³ÐµÑ€Ð¸Ñ€Ð° ÑиÑтематÑки Ñеквенцијален
1263приÑтап
126410
1265Модели на процеÑи за развој на Ñофтвер
1266Communication
1267 project initiation
1268 requirements gathering
1269Planning
1270 estimating
1271 scheduling
1272 tracking
1273Modeling
1274 analysis
1275 design Deployment
1276 delivery
1277 support
1278 feedback
1279Construction
1280 code
1281 test
1282ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1283И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1284СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1285Waterfall
1286The waterfall model of Boehm (1981)
128711
1288Модели на процеÑи за развој на Ñофтвер
1289ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1290И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1291СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1292V-model
129312
1294Модели на процеÑи за развој на Ñофтвер
1295Code
1296generation
1297Architectural
1298design
1299Component
1300design
1301Requirements
1302modeling
1303Acceptance
1304testing
1305System
1306testing
1307Integration
1308testing
1309Unit
1310testing
1311Executable
1312software
1313ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1314И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1315СОФТВЕРСКО ИÐЖЕÐЕРСТВО 13
1316Модифициран Waterfall модел
1317Requirements Process
1318System Allocation
1319Process
1320Concept Exploration
1321Process
1322Design
1323Process
1324Implementation Process
1325Installation
1326Process
1327Operation &
1328Support Process
1329Verification
1330& Validation
1331Process
1332Модели на процеÑи за развој на Ñофтвер
1333ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1334И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1335СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1336ПредноÑти на waterfall моделот
1337ï® Ð’Ñ€ÐµÐ¼ÐµÑ‚Ð¾ потрошено во раните фази (за нивно
1338прецизно завршување/Ñпецифицирање)
1339повеќектарно Ñе отплатува во подоцнежните фази.
1340Доколку има грешка во дизајнот полеÑно (и многу
1341поевтино е да Ñе промени дизајнот) отколку да Ñе
1342потроши многу време на имплементација на лош
1343дизајн - Big Design Up Front (BDUF).
1344ï® Ð¡ÐµÐºÐ¾Ñ˜Ð° од фазите да Ñе заврши 100% за да Ñе
1345оÑигури нејзина иÑправноÑÑ‚ пред да Ñе проÑледи на
1346Ñледната фаза.
1347ï® Ð“ÐµÐ½ÐµÑ€Ð¸Ñ€Ð°ÑšÐµ и одржување прецизна и опÑежна
1348документација
1349ï® Ð“Ð¾Ð»ÐµÐ¼Ð¸Ñ‚Ðµ компании и владини контрактори работат
1350Ñпоред овој модел.
1351Модели на процеÑи за развој на Ñофтвер
135214
1353ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1354И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1355СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1356ÐедоÑтатоци на линеарниот
1357Ñеквенцијален модел
1358ï® ÐајÑтар, најчеÑто кориÑтен (и најкритикуван)
1359модел. Ðекои од неговите недоÑтатоци Ñе:
1360 Реалните проекти ретко кога го Ñледат Ñтрогиот
1361Ñеквенцијален модел
1362 ЧеÑто е тешко клиентот да ги зададе Ñите Ñвои
1363барања на почетокот на проектот
1364 Клиентот мора да биде трпелив бидејќи работна
1365верзија на програмата ќе добие многу доцна во
1366текот на проектот
1367 blocking states – некои членови од тимот чекаат
1368другите да Ñи ја завршат работата за тие да
1369продолжат (ниÑка продуктивноÑÑ‚)
1370Модели на процеÑи за развој на Ñофтвер
137115
1372ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1373И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1374СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1375Критика на waterfall моделот
1376ï® Ð”Ð¾Ð´ÐµÐºÐ° ÑиÑтемот Ñе имплементира барањата
1377Ñе промениле
1378ï® ÐšÐ¾Ñ€Ð¸Ñниците не можат прецизно да ги
1379дефинираат барањата или не Ñе доволно
1380компетенти
1381ï® Ðе нуди можноÑти за менаџерÑка контрола,
1382планирање на проектот и менаџмент на
1383ризици
1384ï® Ð“Ð¾Ð»ÐµÐ¼Ð° одвоеноÑÑ‚/Ñпецијализација на
1385членовите на тимот
1386Модели на процеÑи за развој на Ñофтвер
138716
1388ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1389И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1390СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1391Инкрементален модел (1)
1392ï® Ð‘Ð°Ñ€Ð°ÑšÐ°Ñ‚Ð° Ñе релативно добро познати, но поÑтои
1393потреба ограничено множеÑтво на функционалноÑти
1394да биде обезбедено што побргу, а потоа да Ñе
1395прочиÑтат и прошират функциолноÑтите
1396ï® ÐšÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñ†Ð¸Ñ˜Ð° на линеарниот Ñеквенцијален модел Ñо
1397итеративната филозофија на развојот на
1398прототипови
1399ï® Ð¡ÐµÐºÐ¾Ñ˜Ð° Ñеквенца (која Ñе повторува) продуцира
1400иÑпорачлив инкремент на апликацијата. Во Ñекоја
1401итерација Ñе додаваат нови можноÑти.
1402ï® Ð—Ð° разлика од прототипот, инкременталниот модел
1403иÑпорачува употреблив продукт (она што работи
1404работи, но не е имплементирано Ñé што е планирано)
1405Модели на процеÑи за развој на Ñофтвер
140617
1407ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1408И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1409СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1410Incremental Process Model
141118
1412Модели на процеÑи за развој на Ñофтвер
1413increment 1 #
1414increment 2 #
1415delivery of
14161st increment
1417delivery of
14182nd increment
1419delivery of
1420nth increment
1421increment # n
1422Project Calendar Time
1423S
1424oftw
1425are
1426F
1427u
1428n
1429ctio
1430n
1431ality
1432a
1433n
1434d
1435F
1436e
1437ature
1438s
1439Communication
1440Planning
1441Modeling (analysis design) ,
1442Construction (code test) ,
1443Deployment (delivery feedback) ,
1444ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1445И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1446СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1447ЕволуциÑки процеÑни модели
1448ï® Ð¤Ð°ÐºÑ‚ е дека Ñофтверот како и Ñите
1449комплекÑни ÑиÑтеми мора да еволуира Ñо тек
1450на времето. Барањата поÑтавени пред него
1451чеÑто Ñе менуваат додека трае Ñамиот проект
1452(живее Ñофтверот). ЧеÑто пати е важно да Ñе
1453издаде делумно оперативна (која задоволува
1454Ñамо дел од првичните барања) верзија на
1455Ñофтверот, а подоцна да Ñе надгради.
1456ï® Ð•Ð²Ð¾Ð»ÑƒÑ†Ð¸Ñките модели го гледаат развојот на
1457Ñофтверот како ÑиÑтем за кој однапред Ñе
1458знае дека ќе мора да Ñе менува
1459Модели на процеÑи за развој на Ñофтвер
146019
1461ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1462И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1463СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1464Модел на прототипови
1465ï® requirements gathering  quick design 
1466prototype construction  prototype evaluation 
1467Ñе концентрираат на
1468деловите видливи за
1469клиентот (input/output),
1470целта не е
1471долготрајна
1472одржливоÑÑ‚ и добар
1473дизајн (Ñамо фаÑада).
1474Треба да Ñе фрли!
1475Модели на процеÑи за развој на Ñофтвер
147620
1477Communication
1478Quick plan
1479Construction
1480of
1481prototype
1482Modeling
1483 Quick design
1484Deployment
1485 Delivery
1486 & Feedback
1487ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1488И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1489СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1490ПредноÑти на развој Ñо
1491прототипови
1492ï® ÐŸÐ¾Ð¼Ð°Ð³Ð° подобро да Ñе разбере што треба да
1493Ñе изгради
1494ï® ÐšÐ¾Ð³Ð° Ñе применува?
1495 ÐејаÑно Ñпецифицирани барања (Ñе
1496идентификуваат облаÑтите каде е неопходна
1497понатамошна попрецизна дефиниција)
1498 Клиентот има легитимен проблем, но не знаат да
1499го иÑкажат (дефинираат)
1500ï® Ð‘Ñ€Ð· (неоптимален) дизајн кој Ñе фокуÑира на
1501аÑпектите видливи за кориÑникот
1502Модели на процеÑи за развој на Ñофтвер
150321
1504ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1505И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1506СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1507Проблеми при развој Ñо прототипови
1508ï® ÐŸÑ€Ð¾Ñ‚Ð¾Ñ‚Ð¸Ð¿Ð¾Ð²Ð¸Ñ‚Ðµ Ñе најчеÑто за една употреба
1509и Ñо Ñтрого одредена намена и не треба да
1510еволуираат кон целоÑен ÑиÑтем
1511 притиÑок од Ñтрана на заÑегнатите Ñтрани
1512(нарачателот)
1513 неÑоодветни компромиÑи од Ñтрана на
1514програмерот
1515ï® Ð£ÑˆÑ‚Ðµ на почетокто да Ñе иÑтакне пред
1516клиентот дека ќе биде креиран прототип и
1517што тоа значи
1518Модели на процеÑи за развој на Ñофтвер
151922
1520ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1521И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1522СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1523Спирален модел (1)
1524ï® Ð¡Ð¿Ð¸Ñ€Ð°Ð»Ð½Ð¸Ð¾Ñ‚ модел е еволуциÑки модел кој ги
1525комбинира итеративната природа на
1526прототип приÑтапот Ñо контролираниот и
1527ÑиÑтематÑки аÑпект на линеарниот
1528Ñеквенцијален модел.
1529ï® Ð¡Ð¾Ñ„Ñ‚Ð²ÐµÑ€Ð¾Ñ‚ Ñе развива Ñо Ñерија на
1530инкрементални изданија
1531ï® Ð’Ð¾ првите фази е Ñамо на хартија или како
1532прототип, додека во подоцнежните фази Ñе
1533оформува кон кончен продукт
1534ï® Ð’Ð¾Ð²ÐµÐ´ÑƒÐ²Ð° попрецизна контрола и
1535менаџирање на ризици
1536Модели на процеÑи за развој на Ñофтвер
153723
1538ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1539И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1540СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1541Спирален модел (2)
1542ï® Ð”ÐµÑ„Ð¸Ð½Ð¸Ñ€Ð° (3-6) рамковните активноÑти
1543(task regions):
1544Customer communication
1545Planning
1546Risk analysis
1547Engineering
1548Construction and release
1549Customer evaluation
1550Модели на процеÑи за развој на Ñофтвер
155124
1552ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1553И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1554СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1555Спирален модел (3)
1556Модели на процеÑи за развој на Ñофтвер
155725
1558Communication
1559Planning
1560Modeling
1561Construction Deployment
1562delivery
1563feedback
1564analysis
1565design
1566code
1567test
1568estimation
1569scheduling
1570risk analysis
1571ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1572И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1573СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1574WINWIN Ñпирален модел
1575ï® ÐœÐ½Ð¾Ð³Ñƒ Ñличен на Ñтандардниот Ñпирален модел во
1576кој комуникацијата Ñо клиентот е претÑтавена како
1577преговарање и наоѓање на компромиÑи помеѓу
1578цената, барањата и роковите.
15795. Define next level of
1580product and process,
1581including partitions
15826. Validate product and
1583process definitions
15843a. Reconcile win conditions
15852. Identify stakeholders'
1586win conditions
15871. Identify
1588next-level
1589stakeholders
15903b. Establish next-level objectives,
1591constraints and alternatives
15927. Review and comment
15934. Evaluate process and
1594product alternatives and
1595resolve risks
1596Модели на процеÑи за развој на Ñофтвер
159726
1598ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1599И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1600СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1601Паралелен модел
1602Паралелниот развоен модел
1603(Concurrent Development
1604Model) може да Ñе претÑтави
1605шематÑки Ñо Ñерија од
1606технички активноÑти, задачи и
1607ним аÑоцирани ÑоÑтојби.
1608Секоја од активноÑтите може
1609да егзиÑтира во различна
1610ÑоÑтојба.
1611Дефинирани Ñе Ñерија од
1612наÑтани кои можат да го
1613иницираат преминот од една
1614во друга ÑоÑтојба.
1615Сите активноÑти може да
1616бидат иÑтовремено активни но
1617Ñекоја во различна ÑоÑтојба
161827
1619Модели на процеÑи за развој на Ñофтвер
1620Under review
1621Baselined
1622Under
1623revision
1624Awaiting
1625changes
1626Under
1627development
1628Inactive
1629Modeling activity
1630Represents the state
1631of a software engineering
1632activity or task
1633Done
1634ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1635И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1636СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1637Паралелен развоен модел за клиент-
1638Ñервер апликации
1639ï® ÐŸÐ°Ñ€Ð°Ð»ÐµÐ»Ð½Ð¸Ð¾Ñ‚ развоен модел вообичаено Ñе кориÑти
1640при развојот на клиент-Ñервер апликации (кои
1641обично може да Ñе претÑтават како збир на
1642функционални компоненти) каде конкурентниот
1643Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð´ÐµÑ„Ð¸Ð½Ð¸Ñ€Ð° активноÑти во две димензии
1644 ÑиÑтемÑка димензија Ñо активноÑти design, assembly, use
1645 компонентна димензија Ñо активноÑти design, realization
1646ï® ÐšÐ¾Ð½ÐºÑƒÑ€ÐµÐ½Ñ‚Ð½Ð¾Ñта Ñе поÑтига на два начина:
16471. СиÑтемÑките и компонентните активноÑÑ‚ Ñе појавуваат
1648Ñимултано и можат да Ñе моделираат Ñо моделот
1649ориентиран на ÑоÑтојби
16502. Типична клиент-Ñервер апликации Ñе реализира Ñо
1651употреба на многу компоненти од кои повеќето можат да Ñе
1652дизајнираат и реализираат паралелно
1653Модели на процеÑи за развој на Ñофтвер
165428
1655ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1656И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1657СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1658Инкрементален и итеративен развој
1659ï® Waterfall model = "big bang" integration.
1660ï® Incremental development = scheduling and staging
1661strategy
1662 Поделба на развојот на фази и нивен раÑпоред Ñо што
1663различни делови од ÑиÑтемот Ñе развиваат во различно
1664време и Ñо различен интензитет и Ñе интегрираат како што
1665Ñе завршени
1666ï® Iterative development = rework scheduling strategy
1667 Се планира време за ревизија и унапредување на делови од
1668ÑиÑтемот (не подразбира задолжителен инкрементален
1669развој)
1670 Продуктот Ñе иÑпорачува на (дел од) клиентите и Ñе
1671ревидира по повратните информации од нив
1672ï® ÐžÐ±ÐµÐ´Ð¸Ð½ÐµÑ‚Ð¸ во Rational Unified Process (RUP)
1673Модели на процеÑи за развој на Ñофтвер
167429
1675ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1676И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1677СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1678Итеративен развој
1679Модели на процеÑи за развој на Ñофтвер
168030
1681ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1682И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1683СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1684Waterfall vs. Iterative Risk
168532
1686Модели на процеÑи за развој на Ñофтвер
1687ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1688И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1689СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1690Компонентно-базиран развој
1691ï® Commercial off-the-shelf (COTS) ÑофтверÑки
1692компоненти, понудени како продукти кои
1693обезбедуваат одредена функционалноÑÑ‚ Ñо прецизно
1694дефинирани интерфејÑи кои може да бидат
1695интегрирани во Ñофтвер кој Ñе гради
1696ï® Component-based Development (CBD) моделот
1697вклучува голем дел од карактериÑтиките на
1698Ñпиралниот модел – еволуциÑки, итеративен приÑтап
1699кон развојот на Ñофтвер. CBD ги гради апликациите
1700кориÑтејќи готови претходно креирани (и теÑтирани)
1701ÑофтверÑки компоненти (клаÑи).
1702Модели на процеÑи за развој на Ñофтвер
170333
1704ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1705И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1706СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1707Компонентно базиран развој
1708ï® ÐŸÑ€Ð¾Ñ†ÐµÑ Ñличен на Ñпиралниот, Ñо Ñледниве чекори:
17091. Пребарување низ раÑположливите компоненти за
1710компоненти погодни за апликациÑкиот домен и
1711нивна проценка
17122. Проценка на интегралибилноÑта на компонентите
17133. Креирање на ÑофтверÑка архитектура во која Ñе
1714интегрираат компонентите
17154. Интеграција на компонентите во архитектурата
17165. Спроведување на темелно теÑтирање за да Ñе
1717оÑигури Ñоодветно функционирање
171834
1719Модели на процеÑи за развој на Ñофтвер
1720ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1721И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1722СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1723Software reusability
1724ï® Ð˜Ð½Ð¶ÐµÐ½ÐµÑ€Ñкиот Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ð°Ð¿Ð¾Ñ‡Ð½ÑƒÐ²Ð° Ñо идентификација
1725на кандидат компоненти и пребарување во базата на
1726раÑположливи компоненти развиени во претходни
1727проекти дали поÑтои готова компонента која може да
1728ги задоволи барањата. Ðко поÑтои иÑтата Ñе кориÑти.
1729Ðко не, Ñе развива нова или адаптира некоја
1730поÑтоечка Ñпоред ОО методи, а потоа Ñе вградува во
1731апликацијата и Ñе Ñтава во базата на компоненти за
1732понатамошна употреба.
1733ï® CBD моделот води кон повторна употреба на
1734Ñофтвер (software reuse) што овозможува некои
1735значајни предноÑти како: 70% намалено време на
1736развој, 84% намалување во цената на проектот и
1737Ð¸Ð½Ð´ÐµÐºÑ Ð½Ð° продуктивноÑÑ‚ од 26.2 (во Ñпоредба Ñо
1738индуÑтриÑкиот Ñтандард од околу 16.9)
1739Модели на процеÑи за развој на Ñофтвер
174035
1741ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1742И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1743СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1744Компонентно-базиран развој
1745Customer
1746evaluation
1747Risk
1748analysis Planning
1749Customer
1750communication
1751Identify
1752candidate
1753components
1754Construct
1755nth iteration
1756of system
1757Put new
1758components
1759in library
1760Look up
1761components
1762in library
1763Extract
1764components
1765if available
1766Engineering
1767construction & release
1768Build
1769components
1770if unavailable
1771Модели на процеÑи за развој на Ñофтвер
177236
1773ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1774И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1775СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1776Модели на формални методи
1777ï® Ð’ÐºÐ»ÑƒÑ‡ÑƒÐ²Ð° збир активноÑти кои водат кон формална
1778математичка Ñпецификација на компјутерÑкиот
1779Ñофтвер. Ваквата Ñпецификација овозможува да Ñе
1780Ñпецифицира, развие и верификува компјутерÑки
1781ÑиÑтем применувајќи ригорозна математичка
1782нотација.
1783ï® Ðејзина варијација е Ñ‚.н. clean room software
1784engineering
1785ï® Ð¤Ð¾Ñ€Ð¼Ð°Ð»Ð½Ð¸Ñ‚Ðµ методи нудат механизам за
1786Ñогледување и отÑтранување на бројни проблеми
1787(како двоÑмиÑленоÑÑ‚, некомплетноÑÑ‚ и
1788неконзиÑтентноÑÑ‚) кои тешко Ñе откриваат ако Ñе
1789кориÑти некоја од другите ÑофтверÑки парадигми
1790Модели на процеÑи за развој на Ñофтвер
179137
1792ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1793И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1794СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1795CleanRoom Software Engineering
1796ï® CleanRoom Software Engineering е Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ð°
1797развој на Ñофтвер развиен во IBM Ñо цел да
1798Ñе произведе Ñофтвер Ñо предвидливо ниво
1799на доверливоÑÑ‚ (ÑигурноÑÑ‚)
1800ï® Ð¡Ðµ фокуÑира на Ñпречувањето на дефекти,
1801намеÑто нивно откривање и иÑправање
1802ï® Ð’Ð¾ поÑледно време Ñе поврзува Ñо можноÑти
1803за автоматÑка верификација на
1804Ñпецификацијата Ñо кориÑтење на формални
1805јазици за Ð¾Ð¿Ð¸Ñ Ð½Ð° Ñпецификацијата
1806Модели на процеÑи за развој на Ñофтвер
180738
1808ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1809И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1810СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1811CleanRoom Software Engineering
1812ï® Ð’Ð¾ пракÑа поретко Ñе применува (оÑвен
1813за развој на критични ÑиÑтеми)
1814ï® Ð¡ÐºÐ°Ð¿Ð° и долготрајна метода
1815ï® ÐŸÐ¾Ñ‚Ñ€ÐµÐ±Ð½Ð¾ Ñпецифично предзнаење за
1816нејзина примена
1817ï® ÐеÑоодветна за комуникација на
1818дизајнот Ñо клиентот
181939
1820Модели на процеÑи за развој на Ñофтвер
1821ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1822И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1823СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1824ÐÑпектно-ориентирано
1825програмирање
1826ï® Aspect-oriented programming (AOP)
1827аÑпектно-ориентирано програмирање е
1828програмÑка парадигма која ги изолира
1829Ñпоредните и уÑлужни функции од
1830Ð±Ð¸Ð·Ð½Ð¸Ñ Ð»Ð¾Ð³Ð¸ÐºÐ°Ñ‚Ð° на главната програма
1831ï® Ð˜Ð¼Ð° за цел да Ñе зголеми модуларноÑÑ‚
1832Ñо тоа што овозможува поделба на
1833грижите, формирајќи ја оÑновата за
1834аÑпектно-ориентиран развој на
1835Ñофтвер.
1836Модели на процеÑи за развој на Ñофтвер
183742
1838ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1839И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1840СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1841ÐÑпектно-ориентиран развој на
1842Ñофтвер
1843ï® ÐÑпектно-ориентиран развој на Ñофтвер (AOSD) е
1844нова технологија за развој на Ñофтвер кој бара нова
1845модуларизација на ÑофтверÑките ÑиÑтеми Ñо цел да
1846Ñе изолираат Ñекундарните и функциите за поддршка
1847од Ð±Ð¸Ð·Ð½Ð¸Ñ Ð»Ð¾Ð³Ð¸ÐºÐ°Ñ‚Ð° на главната програма. AOSD
1848овозможува различните грижи (concerns) да бидат
1849изразени/разгледувани одвоено/изолирано и
1850автоматÑки да бидат обединети во единÑтвен
1851работен ÑиÑтем (cross-cutting concerns)
1852ï® ÐŸÑ€. за concerns
1853 high-level properties of a system (e.g., security, fault tolerance)
1854 functions (e.g., the application of business rules)
1855 systemic (e.g., task synchronization or memory management)
1856Модели на процеÑи за развој на Ñофтвер
185743
1858ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1859И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1860СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1861RAD - Rapid Application Development
1862ï® Rapid Application Development (RAD) е моделот Ñо
1863инкрементални и итеративни компоненти во развојот
1864на Ñофтвер Ñо наглаÑено иÑклучително куÑо време
1865на развој. Забрзана варијанта на линеарниот
1866Ñеквенцијален модел Ñо маÑивна употреба на
1867компонентно ориентирана конÑтрукција на
1868Ñофтверот.
1869ï® RAD моделот ги има Ñледниве фази (Ñпоред
1870Pressman, 5th edition, 2001):
1871 Business modeling
1872 Data modeling
1873 Process modeling
1874 Application generation
1875 Testing and turnover
1876Модели на процеÑи за развој на Ñофтвер
187744
1878ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1879И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1880СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1881RAD модел (1)
1882КарактериÑтики:
1883ï® Ð Ð°Ð½Ð¾ развивање на прототипови (Ñо
1884кориÑтење на алатки за брз развој на
1885прототипови) и нивна евалуација од Ñтрана
1886на клиентот
1887ï® ÐœÐ°Ñовна употреба на готови компоненти
1888ï® ÐŸÐ¾Ð¼Ð°Ð»ÐºÑƒ формални ревизии и комуникација
1889помеѓу тимовите
1890ï® ÐœÐ¸Ð½Ð¸Ð¼Ð°Ð»Ð½Ð¾ планирање
1891ï® JAD (joint application development)
1892ï® ÐšÐ¾Ñ€Ð¸Ñниците Ñе вклучени во Ñите чекори на
1893развојот
189445
1895Модели на процеÑи за развој на Ñофтвер
1896ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1897И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1898СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1899RAD модел (2)
1900ï® ÐŸÑ€Ð¸Ð¼ÐµÐ½Ð»Ð¸Ð² кога:
1901 барањата Ñе добро разбрани
1902 опÑегот на проектот е релативно ограничен (претежно за
1903инфрмациони ÑиÑтеми)
1904 поделба на функционалноÑтите за паралелно да Ñе
1905развиваат од одвоени тимови
1906 на раÑполагање Ñе доволно човечки реÑурÑи
1907 на раÑполагање Ñе ÑофиÑтицирани алатки за автоматизација
1908на процеÑите
1909 поÑветеноÑÑ‚ од Ñтрана на развивачите и клиентите за брз
1910развој (реагирање)
191146
1912Модели на процеÑи за развој на Ñофтвер
1913ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1914И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1915СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1916RAD модел (3)
1917ï® ÐедоÑтатоци
1918 За големи проекти
1919потребни Ñе големи
1920човечки реÑурÑи
1921 Програмери и клиенти
1922поÑветени на RAD моделот
1923 Ðе е применлив на
1924поширок круг на апликации
1925 Ðе применлив кога
1926технолошките ризици Ñе
1927виÑоки (нови технологии,
1928Ñофтвер,
1929интероперабилноÑÑ‚)
1930Business
1931modeling
1932Team #1
1933Data
1934modeling
1935Process
1936modeling
1937Application
1938generation
1939Testing
1940&
1941turnover
1942Business
1943modeling
1944Data
1945modeling
1946Process
1947modeling
1948Application
1949generation
1950Testing
1951&
1952turnover
1953Data
1954modeling
1955Process
1956modeling
1957Application
1958generation
1959Testing
1960&
1961turnover
1962Team #2
1963Team #3
196460–90 days
1965Business
1966modeling
1967Модели на процеÑи за развој на Ñофтвер
196847
1969ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1970И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1971СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1972Unified Software Development Process
1973ï® Unified Process - “use case driven, architecture-centric,
1974iterative and incrementalâ€
1975ï® Ð¡Ð¾ употреба на Unified Modeling Language (UML) Ñе
1976дефинираат компонентите од кои ќе Ñе изгради
1977ÑиÑтемот како и интерфејÑот кој ќе ги поврзува
1978компонентите. Со комбинација на итеративен и
1979инкрементален развој UP ги дефинира функциите на
1980ÑиÑтемот Ñо примена на приÑтап базиран на
1981Ñценарија (од кориÑничка гледна точка). Потоа Ñе
1982развиваат функции кои ÑоодветÑтвуваат на
1983архитектонÑката рамка на ÑиÑтемот која ја опишува
1984формата која ќе ја поприми Ñофтверот.
1985Модели на процеÑи за развој на Ñофтвер
198649
1987ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
1988И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
1989СОФТВЕРСКО ИÐЖЕÐЕРСТВО
1990Rational Unified Process (RUP)
1991ï® Rational Unified Process (RUP) – нуди
1992итеративна флекÑибилна рамка за развој на
1993Ñофтвер Ñо можноÑÑ‚ на прилагодување кон
1994потребите на ÑофтверÑкиот тим и клиентот
1995ï® 6 принципи на RUP
19961. Adapt the process
19972. Balance stakeholder priorities
19983. Collaborate across teams
19994. Demonstrate value iteratively
20005. Elevate the level of abstraction
20016. Focus continuously on quality
2002Модели на процеÑи за развој на Ñофтвер
200350
2004ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2005И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2006СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2007The Unified Process (UP)
2008Модели на процеÑи за развој на Ñофтвер
200951
2010software increment
2011Release
2012modeling
2013construction
2014planning
2015communication
2016deployment
2017ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2018И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2019СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2020RUP project lifecycle
2021ï® RUP фази:
2022 Inception
2023 Elaboration
2024 Construction
2025 Transition
2026 Production
2027RUP претÑтавува
2028имплементација на Ñпирален
2029модел
2030Типичен профил на проект кој го
2031прикажува релативниот Ð¾Ð´Ð½Ð¾Ñ Ð½Ð° фазите
2032Модели на процеÑи за развој на Ñофтвер
203352
2034ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2035И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2036СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2037Inception phase
2038ï® Ð—Ð°Ñ‡Ð½ÑƒÐ²Ð°ÑšÐµ – почетна (иницијална) фаза
2039Business case modeling
2040Rough architecture
2041Plan
2042ï® Ðализи: Success factors (expected revenue,
2043market recognition, etc.), analysis and financial
2044forecast
2045ï® BCM: Basic use case model, project plan, initial
2046risk assessment and project description (the core
2047project requirements, constraints and key features)
2048are generated.
2049Модели на процеÑи за развој на Ñофтвер
205053
2051ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2052И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2053СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2054Elaboration phase
2055ï® Ð•Ð»Ð°Ð±Ð¾Ñ€Ð°Ñ†Ð¸Ñ˜Ð° – проектот почнува да добива
2056форма
2057 problem domain analysis, refines and expands
2058ï® ÐˆÐ° проширува (разработува) архитектурата
2059од различни погледи:
2060 use case model,
2061 requirements model,
2062 design model,
2063 implementation model,
2064 deployment model
2065ï® Ð ÐµÐ²Ð¸Ð·Ð¸Ñ˜Ð° на план, ре-евалуација на ризици
2066Модели на процеÑи за развој на Ñофтвер
206754
2068ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2069И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2070СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2071Construction phase
2072ï® Ðа оÑнова на архитектонÑките модели,
2073барањата и дизајните Ñе развиваат (или
2074земаат готови) компонентите за да Ñе
2075добие оперативен ÑиÑтем
2076ï® Ð”Ð¸Ð·Ð°Ñ˜Ð½Ð¸Ñ€Ð°ÑšÐµ и Ñпроведување на unit
2077теÑтови,
2078ï® Ð˜Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ð¸Ñ˜Ð° на компонентите и
2079интеграциÑко теÑтирање
2080Модели на процеÑи за развој на Ñофтвер
208155
2082ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2083И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2084СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2085Transition phase
2086ï® Ð”Ð¾Ñ†Ð½Ð¸Ñ‚Ðµ фази на конÑтрукција и
2087иÑпорака на кориÑникот
2088ТранÑфер на Ñофтверот кон кориÑникот за
2089теÑтирање
2090Подготовка на документацијата за
2091поддршка
2092Инкрементот Ñтанува употреблив Ñофтвер
2093Модели на процеÑи за развој на Ñофтвер
209456
2095ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2096И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2097СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2098Production phase
2099Употреба на Ñофтверот од Ñтрана на
2100кориÑникот,
2101ï® Ð½Ð°Ð´Ð³Ð»ÐµÐ´ÑƒÐ²Ð°ÑšÐµ,
2102ï® Ð¿Ð¾Ð´Ð´Ñ€ÑˆÐºÐ°
2103ï® Ñ€ÐµÐ°Ð³Ð¸Ñ€Ð°ÑšÐµ на извештаите на грешки и
2104барања за промени
2105ï® Ð²ÐµÑ€Ð¾Ñ˜Ð°Ñ‚Ð½Ð¾ паралелно течат другите
2106фази од RUP за Ñледниот инкремент
2107Модели на процеÑи за развој на Ñофтвер
210857
2109ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2110И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2111СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2112UP Work Products
2113Модели на процеÑи за развој на Ñофтвер
211458
2115ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2116И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2117СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2118Personal Process Models
2119“The best software process is one that is
2120close to the people who will be doing the
2121work.â€
2122ï® ÐˆÐ° наглаÑува потребата од мерења на
2123продуктот и неговиот квалитет, Ñо цел
2124да Ñе преземат мерки за адаптација на
2125процеÑот
2126ï® Ð´Ð¸Ñциплиниран, metrics-based приÑтап
212759
2128Модели на процеÑи за развој на Ñофтвер
2129ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2130И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2131СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2132Personal Process Models
2133ï® PSP дефинира 5 рамковни активноÑти (во Ñите Ñе Ñпроведува мерење)
21341. Planning
2135 проценка на големина и потребни реÑурÑи, идентификација на работни
2136задачи
21372. High-level design
2138 Ñпецификација на дизајнот на компонентите (прототипови по потреба)
21393. High-level design review
2140 формални методи за верификација на дизајнот
21414. Development
2142 ревизија на дизајнот на компонентите, генерирање, ревизија,
2143преведување и теÑтирање на кодот
21445. Postmortem
2145 кориÑтејќи ги Ñобраните мерки и метрики Ñе одредува ефективноÑта на
2146процеÑот (да Ñе разберат типовите на грешки кои Ñе појавуваат и да Ñе
2147преземат активноÑти и адаптација на процеÑот за нивно намалување)
214860
2149Модели на процеÑи за развој на Ñофтвер
2150ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2151И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2152СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2153Team Software Process (TSP)
2154ï® Ð”Ð° Ñе изгради „Ñамо-управувачки“ тим кој Ñе
2155организира Ñамиот за да продуцира Ñофтвер Ñо
2156виÑок квалитет
2157ï® Ð¦ÐµÐ»Ð¸
2158 креирање на тимови кои ќе ја планираат и Ñледат Ñвојата
2159работа (3-20 инженери)
2160 Обука на менаџерите да ги водат и мотивираат Ñвоите
2161тимови
2162 забрзување на подобрувањето на ÑофтверÑкиот процеÑ
2163(CMM Level 5 е вообичаено и очекувано)
2164 обезбедување наÑоки за подобрување
2165 Промовирање на изучувањето тимÑки вештини на
2166индуÑтриÑко ниво на универзитетите
216761
2168Модели на процеÑи за развој на Ñофтвер
2169ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2170И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2171СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2172Process technology tools
2173ï® Ðлатки кои помагаат во моделирање и
2174Ñпроведувањето на процеÑот на развој
2175на Ñофтвер
2176ï® ÐŸÐ»Ð°Ð½Ð¸Ñ€Ð°ÑšÐµ, проценка, надгледување и
2177контрола на активноÑтите, акциите и
2178задачите во моделот на процеÑот
2179ï® Ð›Ð¸Ñти на работи кои треба да бидат
2180Ñработени, материјали кои треба да
2181бидат иÑпорачани, проверки кои треба
2182да бидат Ñпроведени
218362
2184Модели на процеÑи за развој на Ñофтвер
2185ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2186И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2187СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2188Техники на 4-та генерација (4GT)
2189ï® Ð¢ÐµÑ…Ð½Ð¸ÐºÐ¸Ñ‚Ðµ на 4-та генерација вклучуваат
2190различни ÑофтверÑки алатки на кои
2191заедничко им е што овозможуваат на
2192ÑофтверÑкиот инженер да Ñпецифицира
2193одредени карактериÑтики на Ñофтверот на
2194виÑоко ниво. Ðлатката потоа автоматÑки
2195генерира изворен код на оÑнова на
2196зададената Ñпецификација. 4GT парадигмата
2197Ñе фокуÑира на употреба на Ñпецијални
2198јазици или графичка нотација за Ð¾Ð¿Ð¸Ñ Ð½Ð°
2199проблемот.
2200Модели на процеÑи за развој на Ñофтвер
220163
2202ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2203И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2204СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2205Техники на 4-та генерација (4GT)
2206ï® Ðекои од овие алатки Ñе: непроцедурални јазици за
2207упити во база на податоци, генератори на извештаи,
2208манипулација Ñо податоци, генерирање на код,
2209ÑофиÑтицирани графички можноÑти, кориÑнички
2210интерфејÑи, автоматÑко генерирање на HTML или
2211Ñлични јазици и др.
2212ï® ÐŸÑ€ÐµÐ´Ð½Ð¾Ñти: забрзан развој и зголемена
2213продуктивноÑÑ‚
2214ï® ÐžÐ³Ñ€Ð°Ð½Ð¸Ñ‡ÑƒÐ²Ð°ÑšÐ°: применлив на релативно мали
2215проекти и проекти од Ñпецифичен теÑен проблемÑки
2216домен, неефикаÑноÑÑ‚ на произведениот код,
2217отежнато одржување ако Ñе примани кај големи
2218проекти
2219Модели на процеÑи за развој на Ñофтвер
222064
2221ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2222И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2223СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2224Материјали:
2225ï® Roger S. Pressman, Software Engineering: A
2226Practitioner’s Approach, 7th edition, McGraw-Hill,
22272010.
2228 Chapter 2: Process Models (pg. 30-64)
2229ï® Roger S. Pressman, Software Engineering: A
2230Practitioner’s Approach, 5th edition, McGraw-Hill, 2001.
2231ï® Pratap P.J. Mohapatra, Software Engineering A Lifecycle
2232Approach, New Age Publishers, 2010.
2233ï® Gary B. Shelly, Harry J. Rosenblatt, Systems Analysis
2234and Design, 9th edition, Cengage Learning, 2011.
223565
2236Модели на процеÑи за развој на Ñофтвер
2237ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2238И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2239СОФТВЕРСКО ИÐЖЕÐЕРСТВО 66
2240Модели на процеÑи за развој на Ñофтвер
2241____________________________________________________________________________________________________________________________
2242Ðгилни методи
2243за развој на Ñофтвер
2244The Manifesto for
2245Agile Software Development
2246“We are uncovering better ways of developing
2247software by doing it and helping others do it.
2248Through this work we have come to value:
2249ï® Individuals and interactions over processes
2250and tools
2251ï® Working software over comprehensive
2252documentation
2253ï® Customer collaboration over contract
2254negotiation
2255ï® Responding to change over following a plan
2256That is, while there is value in the items on the
2257right, we value the items on the left more.â€
22582001 година
2259Ðгилни методи за развој на Ñофтвер
22602
2261ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2262И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2263СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2264ИÑторија на агилните методи
2265ï® Ð¡Ðµ појавиле како реакција на "heavyweight"
2266методите како waterfall моделот
2267ï® Ð Ð°Ð·Ð»Ð¸Ñ‡Ð½Ð¸ lightweight методи – Ñлични на
2268агилната кои Ñе појавиле пред 2000
2269 Scrum (1986),
2270 Crystal
2271 Extreme Programming (1996),
2272 Adaptive Software Development,
2273 Feature Driven Development,
2274 DSDM (1995).
2275ï® Agile Manifesto – формална дефиниција на
2276агилното програмирање
2277Ðгилни методи за развој на Ñофтвер
22783
2279ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2280И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2281СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2282ÐгилноÑÑ‚
2283ï® ÐŸÑ€Ð¾Ð¼ÐµÐ½Ð¸
2284ï® Ð¤Ð»ÑƒÐ¸Ð´Ð½Ð¾ÑÑ‚
2285ï® Time-to-market
2286ï® Ð»ÑƒÑ“Ðµ (Ñо различни перÑонални и
2287профеÑионални оÑобеноÑти)
22884
2289Ðгилни методи за развој на Ñофтвер
2290ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2291И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2292СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2293Agile software development
2294ï® Ðгилниот развој на Ñофтвер претÑтавува
2295концептуална рамка од ÑофтверÑкото инженерÑтво
2296која промовира итерации при развојот на Ñофтвер
2297низ целиот животен век на проектот
2298ï® ÐœÐ¸Ð½Ð¸Ð¼Ð¸Ð·Ð¸Ñ€Ð°ÑšÐµ на ризикот Ñо развој на Ñофтверот за
2299многу куÑо време
2300ï® Ð¡ÐµÐºÐ¾Ñ˜Ð° итерација (2-4 недели) ги вклучува Ñите фази
2301од развојот на Ñофтвер: планирање, анализа на
2302барања, дизајн, кодирање, теÑтирање и
2303документирање
2304ï® Ð¦ÐµÐ»Ñ‚Ð° е да Ñе има раÑположлив Ñофтвер за иÑпорака
2305(кој работи и без грешки) на крајот на Ñекоја
2306итерација
2307ï® Ðа крајот на Ñекоја итерација тимот ги ре-евалуира
2308проектните приоритети
2309Ðгилни методи за развој на Ñофтвер
23105
2311ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2312И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2313СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2314Agile software development
2315ï® Ðгилните методи претпочитаат лице-в-
2316лице комуникација намеÑто пишани
2317документи
2318ï® Ð“Ð¾ иÑтакнуваат Ñофтверот кој работи
2319како единÑтвена мерка за прогреÑ
2320ï® Ðгилните методи продуцираат многу
2321мал број на документи во Ñпоредба Ñо
2322другите поради што Ñе критикувани како
2323недиÑциплинирани
2324Ðгилни методи за развој на Ñофтвер
23256
2326ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2327И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2328СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2329Ðгилни методологии за развој на
2330Ñофтвер
2331ï® ÐœÑƒ даваат многу помало значење на
2332проектирањето, анализата и
2333документацијата и Ñе концентрираат
2334што побргу да произведат употреблив
2335прототип
2336ï® ÐŸÐ¾Ð²ÐµÑœÐµ итерации
2337ï® ÐŸÐ¾Ñ‡ÐµÑта комуникација Ñо клиентите
2338ï® Ð•ÐºÑтремно програмирање
2339работа во парови на еден компјутер
2340Ðгилни методи за развој на Ñофтвер
23417
2342ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2343И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2344СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2345Цена на промени
23468
2347Ðгилни методи за развој на Ñофтвер
2348Cost of change
2349using conventional
2350software processes
2351Cost of change
2352using agile processes
2353Idealized cost of change
2354using agile process
2355Development schedule progress
2356D
2357e
2358v
2359elo
2360p
2361m
2362e
2363n
2364t
2365c
2366o
2367s
2368t
2369ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2370И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2371СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2372Преглед
2373ï® Ðгилниот развој на Ñофтвер претÑтавува разумен компромиÑ
2374помеѓу преконвенционалниот приÑтап кон ÑофтверÑкото
2375инженерÑтво за одредени клаÑи на Ñофтвер и одредени
2376видови на ÑофтверÑки проекти
2377ï® Ðгилниот развој може да иÑпорача уÑпешен ÑиÑтеми за куÑо
2378време
2379ï® Ðгилниот развој ја потенцира поÑтојаната комуникација и
2380Ñоработка меѓу програмерите и кориÑниците
2381ï® Ðгилниот развој ја опфаќа филозофијата која го поттикнува
2382задоволÑтвото на клиентите, инкременталната иÑпорака,
2383мали проектни тимови (ÑоÑтавени од ÑофтверÑки инженери и
2384заинтереÑирани Ñтрани), неформални методи, а минимална
2385продукција на оÑтанатите продукти на ÑофтверÑкото
2386инженерÑтво (документација)
2387ï® Ðгилниот развој дава приоритет на тајмингот за иÑпорака на
2388оперативен ÑофтверÑки инкремент во Ð¾Ð´Ð½Ð¾Ñ Ð½Ð° анализата и
2389дизајнот (за единÑтвениот навиÑтина важен продукт Ñе Ñмета
2390оперативен ÑофтверÑки инкремент)
2391Ðгилни методи за развој на Ñофтвер
23929
2393ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2394И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2395СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2396ÐгилноÑÑ‚
2397ï® Ðгилната екипа може да одговори на
2398промените во текот на развојот на
2399проектот
2400ï® Ðгилниот развој прифаќа дека
2401проектниот план мора да биде
2402флекÑибилен
2403ï® ÐгилноÑта охрабрува Ñтруктура на
2404тимот и Ñтавови кои ја прават
2405комуникацијата помеѓу програмерите и
2406кориÑниците полеÑна и понепоÑредна
2407ï® ÐžÑ‚Ñтранување на поделба помеѓу
2408клиентите и програмерите
2409Ðгилни методи за развој на Ñофтвер
241010
2411ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2412И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2413СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2414ÐгилноÑÑ‚
2415ï® ÐгилноÑта ја наглаÑува важноÑта на брзата иÑпорака
2416на оперативен Ñофтвер а ги Ñтава во втор план
2417пропратните работни продукти
2418ï® Ðгилниот приÑтап може да Ñе примени на било кој
2419ÑофтверÑки Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñè додека на проектниот тим му е
2420дозволено да ги забрза задачите и го Ñпроведе
2421планирањето на начинот Ñо кој Ñе елиминираат
2422неÑуштинÑките работни продукти
2423ï® Ð¢Ñ€Ð¾ÑˆÐ¾Ñ†Ð¸Ñ‚Ðµ на промена Ñе зголемуваат брзо како што
2424проект напредува кон завршување, колку што порано
2425е направена промената толку е поефтина
2426ï® Ðгилните процеÑи може да ја израмнат кривата на
2427цена на промена дозволувајќи на проектниот тим да
2428Ñе прави промени и подоцна во текот на проектот по
2429многу пониÑки трошоци
243011
2431Ðгилни методи за развој на Ñофтвер
2432ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2433И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2434СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2435Ðгилни процеÑи
2436Клучни претпоÑтавки за Ñите агилни процеÑи
24371. Тешко е однапред да Ñе предвиди кои барања или
2438приоритети на клиентите ќе Ñе променат и кои не
24392. За многу видови на Ñофтвер, дизајнерÑките и
2440изведбени активноÑти Ñе иÑпреплетени (изведбата
2441Ñе кориÑти за да Ñе провери дизајнот)
24423. Ðнализата, дизајнот и теÑтирањето не Ñе толку
2443предвидливи од перÑпектива на планирање колку
2444што би Ñакале
2445ï® Ð—Ð° Ñправување Ñо непредвидливоÑта агилниот
2446Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¼Ð¾Ñ€Ð° поÑтојано и Ñамиот да Ñе адаптира
2447ï® Ð˜Ð½ÐºÑ€ÐµÐ¼ÐµÐ½Ñ‚Ð°Ð»Ð½Ð°Ñ‚Ð° адаптација бара повратни
2448информации од клиентот врз оÑнова на оценка на
2449иÑпорачаниот ÑофтверÑки инкремент (извршни
2450прототипови) во куÑи временÑки периоди
2451Ðгилни методи за развој на Ñофтвер
245212
2453ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2454И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2455СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2456Принципи на агилноÑÑ‚ (1)
24571. ÐајвиÑок приоритет е да Ñе задоволат клиентите преку
2458рана и континуирана иÑпорака на употреблив Ñофтвер
24592. Добредојдени Ñе и промени на барањата подоцна во
2460развојот, на промената Ñе гледа како на зголемување
2461на конкурентната предноÑÑ‚ на кориÑникот
24623. ЧеÑта иÑпорака на употреблив Ñофтвер Ñо
2463преферирање на куÑи периоди на иÑпорака (пр. Ñекои 2
2464до 4 недели)
24654. Деловните луѓе и програмерите мора да работат заедно
2466Ñекојдневно во текот на проектот
24675. ЗаÑновање на проектот околу мотивирани индивидуи,
2468Ñо обезбедување на околината и поддршката која им е
2469потребна, и Ñо верба дека ќе Ñе заврши работата
24706. Директната лице-в-лице комуникација е најефективен
2471метод за пренеÑување на информации во рамките на
2472тимот за развој
2473Ðгилни методи за развој на Ñофтвер
247413
2475ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2476И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2477СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2478Принципи на агилноÑÑ‚ (2)
24797. Извршниот Ñофтвер е примараната мерка Ñо која
2480Ñе проценува напредокот
24818. Ðгилните процеÑи промовираат одржлив развој - програмерите и кориÑниците би можеле да го
2482продолжат развојот на неодредено време
24839. Континуираната грижа за техничка ÑовршеноÑÑ‚ и
2484добар дизајн ја подобрува агилноÑта
248510. ЕдноÑтавноÑÑ‚ (дефинирана како она што не е
2486направено – бидејќи не морало да биде) е од
2487ÑуштинÑко значење
248811. Ðајдобрите архитектури, барања и дизајн
2489произлегуваат од Ñамо-организирачките тимови
249012. Во редовни интервали тимовите Ñогледуваат како
2491да Ñтанат поефикаÑни и го прилагодуваат Ñвоето
2492однеÑување во ÑоглаÑноÑÑ‚ Ñо тоа
2493Ðгилни методи за развој на Ñофтвер
249414
2495ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2496И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2497СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2498Човечки фактори
2499Ðгилните методологии Ñе фокуÑираат на талентите и
2500умешноÑтите на индивидуите прилагодувајќи го
2501процеÑот на ÑпецифичноÑтите на луѓето и тимовите.
2502КарактериÑтики кои треба да ги поÑедуваат членовите
2503на агилниот развоен тим:
2504ï® ÐšÐ¾Ð¼Ð¿ÐµÑ‚ÐµÐ½Ñ‚Ð½Ð¾ÑÑ‚ (talent, software skills, process)
2505ï® Ð—Ð°ÐµÐ´Ð½Ð¸Ñ‡ÐºÐ° цел (to deliver a working software increment
2506on time)
2507ï® Ð¡Ð¾Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ° (team members with one another and all
2508other stakeholders)
2509ï® Ð¡Ð¿Ð¾ÑобноÑÑ‚ за ноÑење одлуки (the team is given
2510autonomy - decision-making authority for both technical
2511and project issues)
2512Ðгилни методи за развој на Ñофтвер
251315
2514ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2515И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2516СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2517Човечки фактори
2518ï® Ð¡Ð¿Ð¾ÑобноÑÑ‚ за решавање непрецизно
2519дефинирани проблеми (непрецизноÑÑ‚, чеÑти
2520промени)
2521ï® Ð—Ð°ÐµÐ¼Ð½Ð° доверба и почитување
2522ï® Ð¡Ð°Ð¼Ð¾-организација
2523 тимот Ñе Ñомоорганизира за работата која треба
2524да ја заврши
2525 тимот го организира процеÑот за најдобро да Ñе
2526прилагоди на уÑловите на околината
2527 раÑпоредот на работа Ñе организира за да Ñе
2528иÑпочитува рокот за иÑпорака
2529 Ñамоорганизацијата ја подобрува Ñоработката и го
2530подига моралот
253116
2532Ðгилни методи за развој на Ñофтвер
2533ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2534И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2535СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2536ЕкÑтремно програмирање
2537ï® Ð•ÐºÑтремно програмирање (Extreme
2538Programming – XP) препорачува
2539практики за менаџерите и програмерите
2540кои Ñтимулираат одредени вредноÑти
2541при развојот на Ñофтвер (software
2542engineering best practices taken to
2543"extreme" levels)
2544Kent Beck, Extreme Programming Explained, October 1999.
2545Ðгилни методи за развој на Ñофтвер
254617
2547ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2548И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2549СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2550XP Цели
2551ï® ÐžÐ±Ð¸Ð´ да Ñе конÑолидираат хуманоÑта и
2552продуктивноÑта
2553ï® ÐœÐµÑ…Ð°Ð½Ð¸Ð·Ð°Ð¼ за Ñоцијални промени
2554ï® ÐŸÑ€ÐµÐ¿Ð¾Ñ€Ð°ÐºÐ¸ за подобрување
2555ï® Ð¡Ñ‚Ð¸Ð» на развој на Ñофтвер
2556ï® Ð”Ð¸Ñциплина при развојот на Ñофтвер
2557Ðгилни методи за развој на Ñофтвер
255818
2559ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2560И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2561СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2562XP ВредноÑти
25631. Communication
2564 informal (verbal) collaboration
25652. Simplicity
2566 design for immediate needs only
25673. Feedback
2568 from the implemented software itself, from the
2569customer, from other software team members
25704. Courage (discipline)
2571 design for now – change it later if needed
25725. Respect
257319
2574Ðгилни методи за развој на Ñофтвер
2575ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2576И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2577СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2578ЕкÑтремно програмирање (2)
2579Ðгилни методи за развој на Ñофтвер
258020
2581user stories
2582 values
2583acceptance test criteria
2584iteration plan
2585
2586simple design
2587CRC cards
2588unit test
2589continuous integration software increment
2590project velocity computed
2591spike solutions
2592
2593prototypes
2594refactoring
2595pair programming
2596acceptance testing
2597Release
2598design
2599coding
2600planning
2601test
2602ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2603И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2604СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2605ЕкÑтремно програмирање (3)
2606ï® Ð¡Ðµ потпира на објектно-ориентиран приÑтап
2607ï® ÐšÐ»ÑƒÑ‡Ð½Ð¸ активноÑти (XP Process)
2608 Планирање (кориÑнички приказни Ñоздадени и подредени
2609Ñпоред вредноÑта за клиентите)
2610 Дизајн (Ñе преферира едноÑтавен дизајн, CRC картички и
2611дизајн прототипови Ñе единÑтвените работни продукти, Ñе
2612поттикнува рефакторирање, Ñе преплетува Ñо кодирањето)
2613 Кодирање (Ñе фокуÑираат на unit теÑтови за проверка на
2614кориÑничките приказни, наглаÑува примена на
2615програмирање во парови за да Ñе Ñоздаде код за
2616приказната, Ñе кориÑти континуирана интеграција и smoke
2617testing)
2618 ТеÑтирање (unit теÑтови кои Ñе Ñоздаваат уште пред кодот
2619Ñе изведуваат Ñо помош на автоматизирана рамка за
2620теÑтирање за да поттикне Ñекојдневна употреба на
2621регреÑиÑко теÑтирање, интеграција и валидациÑко
2622теÑтирање, теÑтот за прифаќање Ñе фокуÑира на ÑиÑтемот
2623оÑобини и функциите видлива од Ñтрана на кориÑникот)
2624ï® Planning
2625ï® user stories, value, cost, project velocity
2626ï® Design
2627ï® CRC cards and spike solutions, continuous design - refactoring
2628ï® Coding
2629ï® develop unit test before the code, pair programming, continuous
2630integration
2631ï® Testing
2632ï® automated testing, XP acceptance tests - derived from user stories
2633Ðгилни методи за развој на Ñофтвер
263421
2635ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2636И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2637СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2638XP ПракÑи
2639ï® Fine scale feedback
2640 Pair Programming
2641 Planning Game
2642 Test Driven Development
2643 Whole Team
2644ï® Continuous process
2645 Continuous Integration
2646 Design Improvement
2647 Small Releases
2648ï® Shared understanding
2649 Coding Standard
2650 Collective Code
2651Ownership
2652 Simple Design
2653 System Metaphor
2654ï® Programmer welfare
2655 Sustainable Pace
2656Ðгилни методи за развој на Ñофтвер
265722
2658ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2659И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2660СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2661Ограничувања на XP
2662ï® ÐŸÑ€Ð¾Ð¼ÐµÐ½Ð»Ð¸Ð²Ð¾ÑÑ‚ на барањата (леÑно може да доведе
2663за измеÑтување на фокуÑот кој може да предизвика
2664потреба од промени во веќе завршената работа
2665Ñпоред тогаш актуелните барања)
2666ï® ÐšÐ¾Ð½Ñ„Ð»Ð¸ÐºÑ‚Ð½Ð¸ потреби на клиентите (за многу проекти
2667Ñо повеќе заÑегнати Ñтрани може да биде тешко да
2668Ñе одговори на потребите на Ñите)
2669ï® Ð¡Ð¾ барањата претÑтавени Ñамо како кориÑнички
2670приказни и теÑÑ‚ за прфатловoÑÑ‚ е тешко да Ñе
2671избегнат пропуÑтите и недоÑледноÑтите
2672ï® ÐедоÑтаток на формален дизајн (кај Ñложените
2673ÑиÑтеми може да e неопходен формален
2674архитектонÑки дизајн за да Ñе обезбеди квалитетен и
2675одржлив продукт)
2676Ðгилни методи за развој на Ñофтвер
267723
2678ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2679И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2680СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2681Industrial XP
2682ï® 2005 – органÑка еволуција на XP
2683ï® Ð—Ð°Ñновано на минимализмот,
2684ориентираноÑта кон кориÑникот и воден
2685од теÑтови развој на XP
2686ï® Ð’ÐºÐ»ÑƒÑ‡ÑƒÐ²Ð° повеќе менаџмент
2687ï® ÐˆÐ° проширува улогата на клиентот
2688ï® Ð“Ð¸ унапредува техничките практики
2689Ðгилни методи за развој на Ñофтвер
269024
2691ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2692И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2693СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2694IXP нови практики
2695ï® ÐžÑ†ÐµÐ½ÐºÐ° на подготвеноÑÑ‚ (readiness assessment)
2696ï® ÐŸÑ€Ð¾ÐµÐºÑ‚Ð½Ð° заедница (project community)
2697 Тим -> (проширена) заедница: правници, контролори, ...
2698Пропишан начин на комуникација Ñо нив
2699ï® ÐŸÑ€Ð¾Ñ†ÐµÐ½ÐºÐ° на оправданоÑÑ‚ на проект (project
2700chartering)
2701ï® ÐœÐµÐ½Ð°ÑŸÐ¸Ñ€Ð°ÑšÐµ водено до теÑтови (test-driven
2702management)
2703 поÑтавување на измерливи цели за проценка на напредокот
2704на проектот
2705ï® Ð ÐµÑ‚Ñ€Ð¾Ñпективи (retrospectives)
2706 Специјализирани ревизии по Ñекој инкремент – (issues,
2707events and lessons learned)
2708ï® Ðепрекинато учење (continuous learning)
2709Ðгилни методи за развој на Ñофтвер
271025
2711ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2712И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2713СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2714IXP модификации
2715ï® ÐœÐ¾Ð´Ð¸Ñ„Ð¸Ñ†Ð¸Ñ€Ð°ÑšÐµ на некои од поÑтоечките XP практики
2716ï® SDD (Story-Driven Development)
2717ï® Ñе инÑиÑтира приказната за теÑÑ‚ на прифатливоÑÑ‚ да биде
2718напишана пред да Ñе пишува кодот
2719ï® DDD (Domain-Driven Design)
2720ï® Ð£Ð½Ð°Ð¿Ñ€ÐµÐ´ÑƒÐ²Ð°ÑšÐµ на ÑиÑтемÑката метафора – креирање на модел
2721на домен
2722ï® Ñ€Ð°Ð±Ð¾Ñ‚ÐµÑšÐµÑ‚Ð¾ во парови е проширено на менаџерите и
2723другите заÑегнати
2724ï® Iterative usability (usability design that evolves)
2725ï® ÐœÐ¾Ð´Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ð¸ на практиките и редефинирање на
2726ролји и одговорноÑти за да Ñе прилагодат кон
2727поÑериозни и поголеми проекти за големи
2728организации
2729Ðгилни методи за развој на Ñофтвер
273026
2731ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2732И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2733СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2734Критика на XP
2735ï® Requirement volatility
2736Ðеформално барање на промени
2737ï® Conflicting customer needs
2738Различни кориÑници може да имаат
2739различни барања
2740ï® Requirements are expressed informally
2741User stories и acceptance tests Ñе
2742единÑтвените формални иÑкази за барања
2743ï® Lack of formal design
2744Ðгилни методи за развој на Ñофтвер
274527
2746ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2747И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2748СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2749Cowboy coding
2750ï® Ðе е агилна метода
2751ï® Ðајгрубо речено програмира кој што
2752Ñака без план и визија
2753ï® software management Anti-pattern – на
2754изглед изгледа како да има предноÑти
2755но овие предноÑти Ñе надвладеани од
2756конÑеквенците и ризикот на ваквиот
2757приÑтап
2758Ðгилни методи за развој на Ñофтвер
275928
2760ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2761И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2762СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2763Other Agile Process Models
2764ï® Extreme Programming (XP)
2765ï® Adaptive Software Development (ASD)
2766ï® Scrum
2767ï® Dynamic Systems Development Method
2768(DSDM)
2769ï® Crystal
2770ï® Feature Driven Development (FDD)
2771ï® Lean Software Development (LSD)
2772ï® Agile Modeling (AM)
2773ï® Agile Unified Process (AUP)
2774Ðгилни методи за развој на Ñофтвер
277529
2776ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2777И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2778СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2779Adaptive Software Development
2780ï® Ð—Ð° комплекÑни
2781ÑиÑтеми
2782ï® ÐŸÐ¾Ñ‡Ð¸Ð²Ð° на Ñоработка
2783и Ñамоорганизација во
2784тимот
2785ï® ÐšÐ¾Ð»Ð°Ð±Ð¾Ñ€Ð°Ñ†Ð¸Ñ˜Ð°
2786 Ðезлонамерно
2787критикување
2788 Помагање без гнев
2789 Без забошотување
2790 ПоÑедување
2791квалификации кои
2792можат да помогнат
2793 Разгледување на
2794проблемите на
2795начин кои води кон
2796ефективна акција
2797Ðгилни методи за развој на Ñофтвер
279830
2799adaptive cycle planning
2800 mission statement
2801
2802project constraints
2803basic requirements
2804time boxed release plan -
2805components implemented tested
2806 focus groups for feedback
2807 /
2808
2809formal technical reviews
2810postmortems
2811
2812Requirements gathering
2813 JAD
2814mini specs
2815software increment
2816-
2817adjustments for subsequent cycles
2818Release
2819
2820collaboration
2821speculation
2822learning
2823ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2824И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2825СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2826Scrum
2827Requirements
2828Analysis
2829Design
2830Evolution
2831Delivery
2832Process pattern = sprint
2833Ðгилни методи за развој на Ñофтвер
283431
2835every 24
2836hours
283730 days
2838Scrum 15 minute daily meeting : .
2839Team members respond to basics :
28401) What did you do since last Scrum
2841meeting?
28422) Do you have any obstacles ?
28433) What will you do before next
2844 meeting? Sprint Backlog
2845 Feature(s)
2846 :
2847assigned
2848to sprint
2849Product Backlog
2850Prioritized product features desired by the customer
2851 :
2852Backlog
2853items
2854expanded
2855by team
2856New functionality
2857is demonstrated
2858at end of sprint Backlog
2859Sprints
2860Scrum meetings
2861Demos
2862ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2863И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2864СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2865DSDM
2866ï® Dynamic Systems Development Model
2867 Incremental prototyping
2868 Pareto принцип – 80% од апликацијата може да Ñе
2869иÑпорача за 20% од времето потребно за да Ñе
2870изработи комплетно (100%)
2871ï® Feasibility study
2872ï® Business study
2873ï® Functional model iteration
2874ï® Design and build iteration
2875ï® Implementation
2876Ðгилни методи за развој на Ñофтвер
287732
2878ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2879И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2880СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2881Crystal
2882ï® Ð¤Ð°Ð¼Ð¸Ð»Ð¸Ñ˜Ð° од методи (означени Ñо различни бои) за
2883различна големина/комплекÑноÑÑ‚ на проекти
2884ï® Ð£Ð²Ð°Ð¶ÑƒÐ²Ð° дека различни проекти имаат потреба од
2885различни полиÑи, конвенции и методологии
2886ï® Crystal Clear
2887ï® Crystal Yellow
2888ï® Crystal Orange
2889ï® Crystal Orange Web
2890ï® Crystal Red
2891ï® Crystal Maroon
2892ï® Crystal Diamond
2893ï® Crystal Sapphire
289433
2895Ðгилни методи за развој на Ñофтвер
2896ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2897И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2898СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2899Feature Driven Development
2900ï® a feature is a client-valued function that can be
2901implemented in two weeks or less
2902Ðгилни методи за развој на Ñофтвер
290334
2904Develop
2905an
2906Overall
2907Model
2908Build a
2909Features
2910List
2911Plan
2912By
2913Feature
2914Design
2915By
2916Feature
2917Build
2918By
2919Feature
2920(more shape
2921than content)
2922A list of features
2923grouped into sets
2924and subject areas
2925A development plan
2926Class owners
2927Feature Set Owners
2928A design
2929package
2930(sequences)
2931Completed
2932client value -
2933function
2934ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2935И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2936СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2937FDD
2938ï® Collaboration among people on a FDD team
2939ï® Feature-based decomposition followed by by
2940integration of software increments
2941ï® Communication of technical detail using verbal,
2942graphical and text-based means
2943Template for defining a feature
2944<action> the <result> <by | for | of | to > a(n) <object>
2945Add the product to shopping cart
2946Display the technical specifications of the product
2947Store the shipping information for the customer
2948Ðгилни методи за развој на Ñофтвер
294935
2950ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2951И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2952СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2953Agile Modeling
2954ï® Large, business-critical systems must be
2955modeled so that:
29561. all constituencies can better understand
2957what needs to be accomplished
29582. the problem can be partitioned effectively
2959among the people who must solve it, and
29603. quality can be assessed as the system is
2961being engineered and built.
296236
2963Ðгилни методи за развој на Ñофтвер
2964ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2965И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2966СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2967Agile Modeling
2968ï® Suggests a set of agile modeling principles
2969Model with a purpose
2970Use multiple models
2971Travel light
2972Content is more important than representation
2973Know the models and the tools you use to
2974create them
2975Adapt locally
2976Ðгилни методи за развој на Ñофтвер
297737
2978ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2979И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2980СОФТВЕРСКО ИÐЖЕÐЕРСТВО
2981Материјали:
2982ï® Roger S. Pressman, Software Engineering: A
2983Practitioner’s Approach, 7th edition, McGraw-Hill,
29842010.
2985 Chapter 3: Agile Development (pg. 65-94)
2986ï® Roger S. Pressman, Software Engineering: A
2987Practitioner’s Approach, 5th edition, McGraw-Hill, 2001.
2988ï® Pratap P.J. Mohapatra, Software Engineering A Lifecycle
2989Approach, New Age Publishers, 2010.
2990ï® Gary B. Shelly, Harry J. Rosenblatt, Systems Analysis
2991and Design, 9th edition, Cengage Learning, 2011.
299238
2993Ðгилни методи за развој на Ñофтвер
2994ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
2995И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
2996СОФТВЕРСКО ИÐЖЕÐЕРСТВО 39
2997Ðгилни методи за развој на Ñофтвер
2998_______________________________________________________________________________________________________________
2999ИнженерÑтво на барања
3000(Requirements Engineering)
3001Барања (побарувања)
3002ï® Ð¨Ñ‚Ð¾ Ñе?
3003ï® ÐšÐ¾Ñ˜ ги дефинира?
3004ï® Ð—Ð¾ÑˆÑ‚Ð¾ Ñе важни?
3005ï® ÐšÐ¾Ð¸ Ñе чекорите (за да Ñе формулираат)?
3006ï® Ð¨Ñ‚Ð¾ е излезен продукт?
3007ï® ÐšÐ°ÐºÐ¾ да знаеме дека Ñме го Ñториле
3008добро?
30092
3010ИнженерÑтво на барања
3011ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3012И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3013СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3014ИнженерÑтво на барања
3015ï® Ð—Ð±Ð¸Ñ€ на активноÑти и техники кои треба да
3016водат кон разбирање на барањата
3017ï® Ð“Ð»Ð°Ð²Ð½Ð°Ñ‚Ð° активноÑÑ‚ која почнува за време на
3018комуникацијата Ñо клиентот и продолжува за
3019време на моделирањето и треба да води кон
3020разбирање на барањата
3021ï® Ðдаптација Ñпоред процеÑот, проектот,
3022продуктот, луѓето, ...
3023ï® ÐœÐ¾Ð¶Ðµ да бидат изразени како: Ñценарија за
3024употреба, лиÑти на функционалноÑти и
3025карактериÑтики, модели или Ñпецификација
30263
3027ИнженерÑтво на барања
3028ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3029И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3030СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3031Requirements engineering (1)
3032ï® Requirements engineering (инженерÑтво на
3033барања/потреби) обезбедува Ñоодветни механизми
3034кои помагаат да Ñе разбере што клиентот точно Ñака,
3035анализирање на потребите, проценка на
3036изводливоÑÑ‚, преговарање околу разумно решение,
3037Ñпецификација на одредено (разумно) решение,
3038валидација на Ñпецификацијата и менаџирање на
3039барањата при нивната транÑформација во
3040„оперативен“ ÑиÑтем
3041ï® Ð˜Ð·Ð»ÐµÐ·Ð¾Ñ‚ од процеÑот на инженерÑтво на барања
3042треба да биде Ñпецификација на компјутерÑки ÑиÑтем
3043кој Ñоодветно ќе ги задоволи потребите на клиентот
3044ИнженерÑтво на барања
30454
3046ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3047И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3048СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3049Requirements engineering (2)
3050ï® Requirements engineering процеÑот може да
3051Ñе подели на 7 чекори:
30521. зачеток (inception)
30532. Ñогледување (requirements elicitation)
30543. елаборација (elaboration)
30554. преговарање (negotiation)
3056ï® Ð°Ð½Ð°Ð»Ð¸Ð·Ð° (requirements analysis and negotiation)
30575. Ñпецификација (requirements specification)
3058ï® Ð¼Ð¾Ð´ÐµÐ»Ð¸Ñ€Ð°ÑšÐµ (system modeling)
30596. валидација (requirements validation)
30607. менаџирање (management)
3061ИнженерÑтво на барања
30625
3063ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3064И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3065СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3066Inception
3067ï® Ð“ÐµÐ½ÐµÑ€Ð°Ð»Ð½Ð¾ кога ќе биде идентификувана нова
3068Ð±Ð¸Ð·Ð½Ð¸Ñ Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð° или ќе биде откриен нов
3069потенцијален пазар или нов ÑервиÑ.
3070ï® Ð—Ð°Ñегнатите Ñтрани дефинираат бизниÑ
3071модел за идејата, првична Ñтудија за
3072изводливоÑÑ‚ и негов првичен опиÑ
3073ï® Ð—Ð° време на зачетокот, Ñе добиваат
3074првичните Ñознанија за проблемот,
3075природата на решението, луѓето кои го
3076бараат решението и начинот на комуникација
3077Ñо нив
30786
3079ИнженерÑтво на барања
3080ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3081И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3082СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3083Requirements Elicitation
3084ï® Ð˜Ð·Ð³Ð»ÐµÐ´Ð° леÑно...
3085ï® Ð”Ð° Ñе прашаат (клиентот, крајните
3086кориÑници, оÑтанатите заÑегнати)
3087Што треба да Ñе поÑтигне?
3088Како ÑиÑтемот треба да Ñе вклопи во
3089деловните потреби?
3090Како ќе Ñе кориÑти при Ñекојдневната
3091работа?
30927
3093ИнженерÑтво на барања
3094ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3095И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3096СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3097Requirements Elicitation
3098Зошто Ñогледувањето на барањата е тешко?
3099ï® Problems of scope (проблеми при дефинирање на опÑегот) -
3100неправилни граници во ÑиÑтемот, детали кои збунуваат намеÑто
3101да појаÑнат)
3102ï® Problems of understanding (проблеми на разбирање ) -
3103клиентите/кориÑниците ни Ñамите не Ñе Ñигурни што точно
3104Ñакаат, ограничено разбирање на можноÑтите и ограничувањата
3105на компјутерÑкиот ÑиÑтем, ограничено разбирање на доменот на
3106проблемот, проблеми во комуникацијата Ñо ÑиÑтемÑкиот
3107инженер, иÑпуштање на „очевидните“ информации,
3108Ñпецифицирање на конфликтни барања или барања кои Ñе
3109непрецизни
3110ï® Problems of volatility (проблеми поради променливоÑÑ‚) –
3111барањата Ñе менуваат во тек на времето
3112ИнженерÑтво на барања
31138
3114ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3115И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3116СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3117Elaboration
3118ï® Ð’Ð¾ процеÑот на елаборација информациите
3119прибрани во тек на зачетокот и
3120Ñогледувањето Ñе
3121 прошируваат
3122 прочиÑтуваат
3123ï® Ð”Ð° Ñе идентификуваат различните аÑпекти на
3124функциите, однеÑувањето и податоците
3125ï® ÐŸÑ€ÐµÐºÑƒ креирање и анализа на кориÑнички
3126Ñценарија за интеракцијата на крајните
3127кориÑници Ñо ÑиÑтемот
31289
3129ИнженерÑтво на барања
3130ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3131И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3132СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3133Negotiation
3134ï® Ð¡Ðµ Ñлучува клиентите да бараат повеќе
3135од она што може да биде поÑтигнато
3136или дури да поÑтават различни
3137(контрадикторни) барања
3138ï® Ð Ð°Ð·Ñ€ÐµÑˆÑƒÐ²Ð°ÑšÐµ на овие конфликти низ
3139Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¾Ð´ преговори во кои некои
3140барања Ñе елиминираат, комбинираат,
3141менуваат
314210
3143ИнженерÑтво на барања
3144ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3145И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3146СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3147Specification
3148ï® Ð¡Ð¿ÐµÑ†Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ˜Ð°, може да биде:
3149пишан документ
3150множеÑтво графички модели
3151формален математички модел
3152збирка кориÑнички Ñценарија
3153прототип
3154комбинација од горенаведените
315511
3156ИнженерÑтво на барања
3157ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3158И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3159СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3160Validation
3161ï® ÐŸÑ€Ð¾Ð²ÐµÑ€ÐºÐ° на квалитетот на Ñработеното
3162(продуцираните материјали) за:
3163 недвоÑмиÑленоÑÑ‚,
3164 јаÑноÑÑ‚,
3165 неконзиÑтентноÑÑ‚,
3166 пропуÑти,
3167 грешки
3168ï® Ð¸ нивно поправање
3169ï® Ð¢ÐµÑ…Ð½Ð¸Ñ‡ÐºÐ° ревизија од Ñтрана на тим од
3170ÑофтверÑки инженери, клиенти, крајни
3171кориÑници и други заÑегнати Ñтрани
317212
3173ИнженерÑтво на барања
3174ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3175И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3176СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3177Requirements management
3178ï® ÐœÐµÐ½Ð°ÑŸÐ¸Ñ€Ð°ÑšÐµ на барањата во текот на
3179нивното формулирање и менување кои
3180ќе поÑтои и за време на изработката и
3181екÑплоатацијата на ÑиÑтемот
3182ï® Ð¡Ð»ÐµÐ´ÐµÑšÐµ на измените
318313
3184ИнженерÑтво на барања
3185ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3186И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3187СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3188Requirements Gathering (1)
3189Чекори при прибирањето на барања:
3190ï® ÐŸÑ€Ð¾Ñ†ÐµÐ½ÐºÐ° на Ð±Ð¸Ð·Ð½Ð¸Ñ Ð¸ технолошката изводливоÑÑ‚ на
3191предложениот ÑиÑтем (feasibility study)
3192ï® Ð¡Ð¾Ð³Ð»ÐµÐ´ÑƒÐ²Ð°ÑšÐµ на луѓето кои можат да помогнат во
3193Ñпецификацијата на барањата и да Ñе разбере
3194нивната организациона поÑтавеноÑÑ‚
3195ï® Ð”ÐµÑ„Ð¸Ð½Ð¸Ñ€Ð°ÑšÐµ на технолошкото опкружување
3196(компјутерÑки архитектури, оперативни ÑиÑтеми,
3197телекомуникациÑки потреби) во кое ÑиÑтемот треба
3198да егзиÑтира
3199ï® Ð˜Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ˜Ð° на ограничувања во доменот
3200(карактериÑтики на деловното опкружувањето
3201Ñпецифични за апликациÑкиот домен) кои
3202наметнуваат ограничувања на функционалноÑта и
3203перформанÑите на ÑиÑтемот или продуктот кој треба
3204да Ñе изгради
3205ИнженерÑтво на барања
320614
3207ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3208И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3209СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3210Requirements Gathering (2)
3211ï® Ð”ÐµÑ„Ð¸Ð½Ð¸Ñ€Ð°ÑšÐµ на еден или повеќе методи за
3212прибирање на барањата (интервјуа, фокуÑни групи,
3213ÑоÑтаноци Ñо тимови)
3214ï® ÐšÐ¾Ð¾Ñ€Ð´Ð¸Ð½Ð¸Ñ€Ð° учеÑтво на повеќе Ñтрани во
3215дефинирањето на барањата од различни точки на
3216гледиште идентификувајќи ги принципите на Ñекое
3217евидентирано барање
3218ï® Ð˜Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ˜Ð° на нејаÑните (непрецизни) барања
3219како кандидати за иÑпитување Ñо конÑтрукција на
3220прототипови
3221ï® ÐšÑ€ÐµÐ¸Ñ€Ð°ÑšÐµ на кориÑнички Ñценарија Ñо цел
3222клиентите/кориÑниците подобро да ги
3223идентификуваат клучните барања
3224ИнженерÑтво на барања
322515
3226ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3227И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3228СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3229Products Produced in
3230Requirements Elicitation
3231Во процеÑот на прибирање на барања Ñе
3232„произведува“:
3233 Извештај за потребите и изводливоÑта (feasibility study)
3234 Извештај ограничен на делокругот на ÑиÑтемот или
3235продуктот
3236 ЛиÑта на клиенти, кориÑници и оÑтанати инволвирани во
3237прибирањето/дефинирањето на барањата
3238 ÐžÐ¿Ð¸Ñ Ð½Ð° техничко-технолошкото опкружување на ÑиÑтемот
3239 ЛиÑта на барања (организирани Ñпоред функција) и
3240Ñоодветните ограничувања на доменот на Ñекое од нив
3241 МножеÑтво на кориÑнички Ñценарија кои проникнуваат во
3242употребата на ÑиÑтемот или продуктот во различни уÑлови
3243 Прототипови развиени поради подобро дефинирање на
3244барањата
3245ИнженерÑтво на барања
324616
3247ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3248И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3249СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3250Requirements Analysis and
3251Negotiation
3252ï® ÐŸÑ€Ð¸ анализата, барањата
3253Ñе категоризираат и Ñе организираат во
3254Ñродни групи
3255Ñе иÑпитува релацијата на Ñекое барање Ñо
3256оÑтанатите
3257Ñе проверуваат нивната конзиÑтентноÑÑ‚,
3258недоÑтатоци и недореченоÑти
3259Ñе рангираат по важноÑÑ‚ Ñпоред барањата
3260на клиентот/кориÑникот
3261ИнженерÑтво на барања
326217
3263ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3264И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3265СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3266Requirements Analysis and
3267Negotiation
3268ï® Ð’Ð¾ процеÑот на анализа на барањата Ñе поÑтавуваат
3269и Ñе одговара на прашања како:
3270 Дали Ñекое од барањата е конзиÑтентно Ñо глобалната цел
3271на проектот?
3272 Дали барањата Ñе Ñпецифицирани на Ñоодветно ниво на
3273апÑтракција?
3274 Дали барањето е неопходно или претÑтавува дополнителна
3275функција која не е еÑенцијална за реализација на ÑиÑтемот?
3276 Дали Ñекое од барањата е Ñоодветно ограничено и
3277прецизно?
3278 Дали Ñекое барање има познат извор (кој го задал)?
3279 Дали некое од барањата е во конфликт Ñо некое друго?
3280 Дали Ñекое од барањата може да Ñе реализира во
3281зададената техничка околина во која ќе егзиÑтира ÑиÑтемот?
3282 Дали Ñекое од барањата може да Ñе провери (теÑтира)
3283откако ќе биде имплементирано?
3284ИнженерÑтво на барања
328518
3286ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3287И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3288СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3289Requirements Analysis and
3290Negotiation
3291ï® Ð Ð°Ð·Ñ€ÐµÑˆÑƒÐ²Ð°ÑšÐµÑ‚Ð¾ на недоÑледноÑтите во
3292барањата Ñе изведува Ñо преговори
3293ï® Ð¡Ðµ рангираат барањата по важноÑÑ‚
3294ï® Ð¡Ðµ прави груба проценка на потребниот
3295напор за да Ñе задоволи Ñекое од нив
3296ï® Ð¡Ðµ проценува цената и времето потребно за
3297реализација на проектот
3298ï® Ð’Ñ€Ð· база на овие проценки некои од
3299иницијалните барања Ñе елиминираат, Ñе
3300комбинираат или Ñе менуваат
3301ИнженерÑтво на барања
330219
3303ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3304И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3305СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3306Requirements Specification
3307ï® Ð¡Ñ‚Ð°Ð½Ð´Ð°Ñ€Ð´ÐµÐ½ шаблон за Ñпецификација
3308ï® Ð¡Ð¸ÑтемÑката Ñпецификација претÑтавува
3309оÑнова за:
3310 хардверÑкото инженерÑтво
3311 ÑофтверÑкото инженерÑтво
3312 податочното инженерÑтво
3313 инженерÑтво Ñо човечки реÑурÑи
3314ï® Ð¡Ð¸ÑтемÑката Ñпецификација ги дефинира
3315функциите и перформанÑите на
3316компјутерÑкиот ÑиÑтем, како и информациите
3317(податоци и контрола) кои Ñе влез и излез од
3318ÑиÑтемот
3319ИнженерÑтво на барања
332020
3321ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3322И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3323СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3324System Modeling
3325ï® ÐœÐ¾Ð´ÐµÐ» на ÑиÑтемот Ñе гради (на хартија
3326/ нацрт) Ñо цел да Ñе евалуираат
3327ÑиÑтемÑките компоненти и нивните
3328меѓурелации, како барањата и
3329ограничувањата Ñе вклопуваат во оваа
3330Ñлика и да Ñе процени „еÑтетиката“ на
3331ÑиÑтемот што и да Ñе подразбира под
3332тоа.
3333ИнженерÑтво на барања
333421
3335ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3336И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3337СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3338Requirements Validation
3339ï® ÐšÐ²Ð°Ð»Ð¸Ñ‚ÐµÑ‚Ð¾Ñ‚ (одржливоÑта) на она што е
3340направено во процеÑот на инженеринг на
3341барања (requirements engineering) Ñе
3342проценува во фазата на валидација на
3343барањата (requirements validation)
3344ï® Ð¡Ðµ иÑпитува Ñпецификацијата дали ги
3345задоволува критериумите и Ñтандардите
3346поÑтавени за проектот
3347ï® ÐŸÑ€Ð¸Ð¼Ð°Ñ€Ð½Ð¸Ð¾Ñ‚ механизам е технички преглед
3348 воочување на можни грешки, недоÑледноÑти,
3349контрадикторноÑти, непрецизноÑти
3350 иÑтакнување на делови каде е потребно
3351дообјаÑнување
3352 воочување на можни конфликтни или нереални
3353барања
3354ИнженерÑтво на барања
335522
3356ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3357И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3358СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3359Прашања за валидација (1)
3360ï® Ð’Ð°Ð»Ð¸Ð´Ð°Ñ†Ð¸Ñ˜Ð°Ñ‚Ð° на барањата може формално да Ñе
3361изведе Ñо формална проверка на Ñекое барање во
3362Ð¾Ð´Ð½Ð¾Ñ Ð½Ð° колекција од прашања во форма на лиÑта
3363за штиклирање (checklist).
3364ï® Ðекои од прашањата кои можат да бидат поÑтавени
3365Ñе:
3366 Дали барањето е јаÑно поÑтавено? Дали може да биде
3367погрешно разбрано?
3368 Дали е идентификуван изворот (човек, регулатива,
3369Ñтандард, документ, препорака) на барањето?
3370 Дали барањето е квантитативно ограничено?
3371 Кои други барања Ñе во врÑка Ñо барањето? Дали Ñе јаÑно
3372означени преку cross-reference matrix или друг механизам?
3373ИнженерÑтво на барања
337423
3375ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3376И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3377СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3378Прашања за валидација (2)
3379 Дали барањето нарушува некои од ограничувањата на
3380доменот?
3381 Дали може да биде теÑтирано? Може ли да Ñе
3382Ñпецифицираат теÑтови (критериуми за валидација) за тоа
3383да Ñе провери?
3384 Дали барањето може да Ñе Ñледи до евентуален модел на
3385ÑиÑтемот? (traceability)
3386 Дали барањето може да Ñе Ñледи до глобалните ÑиÑтемÑки /
3387проектни цели?
3388 Дали Ñпецификациите Ñе дадени во Ñтруктурирана форма
3389која значи леÑно разбирање, референцирање и
3390преведување во потехнички документи?
3391 Дали е креиран Ð¸Ð½Ð´ÐµÐºÑ Ð·Ð° Ñпецификацијата?
3392 Дали барањата кои Ñе однеÑуваат на перформанÑите,
3393однеÑувањето и операционите карактериÑтики на ÑиÑтемот
3394Ñе јаÑно изразени? Кои од барањата Ñе подразбираат (Ñе
3395излишни)?
3396ИнженерÑтво на барања
339724
3398ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3399И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3400СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3401Менаџирање на барања (1)
3402ï® Ð‘Ð°Ñ€Ð°ÑšÐ°Ñ‚Ð° Ñе менуваат...
3403ï® ÐœÐµÐ½Ð°ÑŸÐ¸Ñ€Ð°ÑšÐµ на барања (requirements
3404management) претÑтавува збир од
3405активноÑти кои помагаат на проектниот
3406тим да ги идентификува, контролира и
3407Ñледи промените на барањата во текот
3408на изведбата на проектот.
3409ИнженерÑтво на барања
341025
3411ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3412И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3413СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3414Менаџирање на барања (2)
3415Секое барање Ñе идентификува и Ñе означува
3416Ñо единÑтвен идентификатор
3417<requirement type><requirement #>
3418каде типот на Ñекое од барањата може да биде:
3419ï® F = functional requirement,
3420ï® D = data requirement,
3421ï® B = behavioral requirement,
3422ï® I = interface requirement,
3423ï® P = output requirement.
3424ИнженерÑтво на барања
342526
3426ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3427И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3428СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3429Traceability Tables
3430ï® ÐŸÐ¾ идентификацијата на барањата Ñе прават Ñ‚.н.
3431traceability tables (табели за Ñледење) во кои јаÑно Ñе
3432означуваат врÑките (релациите, завиÑноÑта) на Ñекое
3433од барањата Ñо еден или повеќе од аÑпектите на
3434ÑиÑтемот или околината.
3435ï® Ðекои од можните traceability tables Ñе:
3436 Features traceability table.
3437 Source traceability table.
3438 Dependency traceability table.
3439 Subsystem traceability table.
3440 Interface traceability table.
3441ï® Ð²Ð¾Ð¾Ð±Ð¸Ñ‡Ð°ÐµÐ½Ð¾ Ñе одржуваат како дел од базата на
3442барања
3443ИнженерÑтво на барања
344427
3445ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3446И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3447СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3448Traceability Table
3449Specific aspect of the system or its environment
3450Requirement
3451R01
3452R02
3453R03
3454R04
3455R05
3456Rnn
3457A01 A02 A03 A04 A05 Aii
3458ИнженерÑтво на барања
345928
3460ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3461И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3462СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3463Software Requirements Specification
3464Template (1)
3465A software requirements specification (SRS) is a
3466document that is created when a detailed
3467description of all aspects of the software to be
3468built must be specified before the project is to
3469commence. It is important to note that a formal
3470SRS is not always written.
3471In fact, there are many instances in which effort expended on an SRS
3472might be better spent in other software engineering activities. However,
3473when software is to be developed by a third party, when a lack of
3474specification would create severe business issues, or when a system is
3475extremely complex or business critical, an SRS may be justified.
347629
3477ИнженерÑтво на барања
3478ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3479И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3480СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3481Software Requirements Specification
3482Template (2)
3483Table of Contents
3484Revision History
34851. Introduction
34861.1 Purpose
34871.2 Document Conventions
34881.3 Intended Audience and
3489Reading Suggestions
34901.4 Project Scope
34911.5 References
349230
3493ИнженерÑтво на барања
34942. Overall Description
34952.1 Product Perspective
34962.2 Product Features
34972.3 User Classes and
3498Characteristics
34992.4 Operating Environment
35002.5 Design and Implementation
3501Constraints
35022.6 User Documentation
35032.7 Assumptions and
3504Dependencies
3505ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3506И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3507СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3508Software Requirements Specification
3509Template (3)
35103. System Features
35113.1 System Feature 1
35123.2 System Feature 2
3513... (and so on)
35144. External Interface
3515Requirements
35164.1 User Interfaces
35174.2 Hardware Interfaces
35184.3 Software Interfaces
35194.4 Communications Interfaces
352031
3521ИнженерÑтво на барања
35225. Other Nonfunctional
3523Requirements
35245.1 Performance Requirements
35255.2 Safety Requirements
35265.3 Security Requirements
35275.4 Software Quality Attributes
35286. Other Requirements
3529Appendix A: Glossary
3530Appendix B: Analysis Models
3531Appendix C: Issues List
3532ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3533И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3534СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3535Software Requirements Engineering
3536ï® Ð˜Ð½Ð¶ÐµÐ½ÐµÑ€Ñтво (анализа) на ÑофтверÑки
3537барања е процеÑот на откривање,
3538прочиÑтување, моделирање и Ñпецификација
3539на ÑофтверÑките барања.
3540ï® Ð˜Ð½Ð¶ÐµÐ½ÐµÑ€Ñтво на ÑофтверÑки барања
3541претÑтавува ÑиÑтематÑка употреба на
3542докажани принципи, техники, јазици, и алатки
3543за ефективна анализа, документирање и
3544еволуција на кориÑничките барања и
3545Ñпецификацијата на ÑофтверÑкиот ÑиÑтем кој
3546треба да ги задоволи тие барања.
3547ï® Ð’Ð¾ него активно учеÑтвуваат и клиентот и
3548ÑофтверÑкиот инженер
354932
3550ИнженерÑтво на барања
3551ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3552И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3553СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3554Чекори
3555ï® Ð‘Ð°Ñ€Ð°ÑšÐ°Ñ‚Ð° Ñе идентификуваат преку
3556прибирање податоци од клиентот
3557ï® Ð‘Ð°Ñ€Ð°ÑšÐ°Ñ‚Ð° Ñе анализираат и прочиÑтуваат за
3558да Ñе обезбеди нивна јаÑноÑÑ‚, комплетноÑÑ‚ и
3559конзиÑтентноÑÑ‚.
3560ï® Ð¡Ðµ изработува Ñпецификација вклучувајќи и
3561модел на Ñофтверот и иÑтата Ñе проверува
3562(одобрува) од клиентот. Барањата можат да
3563бидат репрезентирани Ñо прототип,
3564Ñпецификација, Ñимболички модел, ...
3565ï® Ð˜Ð·Ð»ÐµÐ· е документ (Software requirements
3566specification)
356733
3568ИнженерÑтво на барања
3569ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3570И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3571СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3572Принципи при Ñпецификација
3573ï® ÐžÐ´Ð²Ð¾ÐµÐ½Ð¾ÑÑ‚ на функционалноÑта од
3574имплементацијата
3575ï® Ð”Ð° Ñе развие модел за поÑакуваното однеÑување на
3576ÑиÑтемот како одѕиви на Ñтимули од околината
3577ï® Ð’Ð¾ÑпоÑтавување на контекÑтот во кој ќе работи
3578Ñофтверот преку Ñпецифицирање на начинот на кој
3579ÑиÑтемÑките компоненти интер-реагираат Ñо
3580Ñофтверот
3581ï® ÐšÑ€ÐµÐ¸Ñ€Ð°ÑšÐµ на когнитивен модел намеÑто дизајн или
3582имплементација (како ÑиÑтемот го Ñпознаваат
3583кориÑниците)
3584ï® Ð¡Ð¿ÐµÑ†Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ˜Ð°Ñ‚Ð° може да биде и некомплетна и
3585непрецизна
3586ï® Ð’Ð¾ÑпоÑтавување на Ñтруктура на Ñодржината на
3587Ñпецификацијата која овозможува леÑни промени
358834
3589Ðнализа и моделирање на барања
3590ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3591И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3592СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3593Репрезентација
3594ï® Ð¤Ð¾Ñ€Ð¼Ð°Ñ‚Ð¾Ñ‚ и Ñодржината треба да бидат
3595релевантни за проблемот
3596ï® Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ð¸Ñ‚Ðµ презентирани во
3597Ñпецификацијата треба да бидат вгнездени
3598ï® Ð”Ð¸Ñ˜Ð°Ð³Ñ€Ð°Ð¼Ð¸Ñ‚Ðµ и оÑтанатите начини на
3599означување треба да Ñе контролирани и
3600конзиÑтентни (Ñтандардизирани)
3601ï® Ð ÐµÐ¿Ñ€ÐµÐ·ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ˜Ð°Ñ‚Ð° треба да биде погодна за
3602промени
360335
3604Ðнализа и моделирање на барања
3605ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3606И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3607СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3608Репрезентација на ÑофтверÑки
3609барања
3610ï® Ð¡Ð¿ÐµÑ†Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ˜Ð° – кулминација на анализата
3611ï® IEEE standard No. 830-1984 – Ñтандарден формат за
3612репрезентација на ÑофтверÑките барања
3613 Introduction (цели, контекÑÑ‚)
3614 Information description (детален Ð¾Ð¿Ð¸Ñ Ð½Ð° проблемот,
3615Ñодржина, тек и Ñтруктура на информациите, хардверÑки,
3616ÑофтверÑки и кориÑнички интерфејÑи)
3617 Functional Description (за Ñекоја функција која е потребна за
3618решавање на проблемот, наративен опиÑ, ограничувања,
3619перформанÑи, дијаграми, врÑка Ñо оÑтанатите елементи)
3620 Behavioral Description (функционирање на Ñофтверот како
3621поÑледица на надворешни наÑтани и интерна ÑоÑтојба)
3622 Validation Criteria (како да Ñе провери уÑпешно реализиран
3623Ñофтвер, дефинирање на теÑтови
3624 Bibliography and Appendix (друга документација, референци,
3625Ñтандарди, ...)
362636
3627Ðнализа и моделирање на барања
3628ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3629И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3630СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3631Ревизија на Ñпецификација на
3632ÑофтверÑки барања
3633ï® Ð¡Ðµ изведува и од клиентот и од развивачот
3634ï® ÐžÐ±Ð¸Ð´ да Ñе провери дали Ñпецификацијата е
3635комплетна, конзиÑтентна и прецизна
3636ï® ÐŸÐ¾Ñ˜Ð°Ñнување на изразите како: нешто,
3637малку, понекогаш, вообичаено, претежно, ...
3638ï® ÐŸÐ¾ изведената ревизија, Ñпецификацијата Ñе
3639потпишува и Ñтанува дел од договорот
3640помеѓу клиентот и развивачот
3641ï® Ð‘Ð°Ñ€Ð°ÑšÐ°Ñ‚Ð° за дополнителни промени
3642„поинаку“ Ñе третираат
364337
3644Ðнализа и моделирање на барања
3645ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3646И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3647СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3648IEEE Std. 830
3649According to IEEE Std. 830, a Software Requirements
3650Specification (SRS) should address the following issues:
3651ï® Functionality. What is the software supposed to do?
3652ï® External interfaces. How does the software interact
3653with people, the system’s hardware, other hardware, and
3654other software?
3655ï® Performance. What is the speed, availability, response
3656time, recovery time of various software functions, and so
3657on?
3658ï® Attributes. What are the portability, correctness,
3659maintainability, security, and other considerations?
3660ï® Design constraints imposed on an implementation.
3661Are there any required standards in effect,
3662implementation language, policies for database integrity,
3663resource limits, operating environment(s) and so on?
366438
3665Ðнализа и моделирање на барања
3666ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3667И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3668СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3669IEEE Std. 830
3670This is what should be targeted by an SRS. There
3671are other topics that should be excluded from an
3672SRS, according to the standard:
3673ï® The SRS writer(s) should avoid placing either
3674design or project requirements in the SRS.
3675ï® (The SRS) should not describe any design or
3676implementation details. These should be
3677described in the design stage of the project.
3678ï® The SRS should address the software product,
3679not the process of producing the software
3680product.
368139
3682Ðнализа и моделирање на барања
3683ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3684И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3685СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3686IEEE Std. 830
3687IEEE Std. 830 describes the following characteristics of a good SRS,
3688which should be observed both when writing and reviewing an SRS:
3689ï® Correct. An SRS is correct if, and only if, every requirement stated
3690therein is one that the software shall meet.
3691ï® Unambiguous. An SRS is unambiguous if, and only if, every
3692requirement stated therein has only one interpretation.
3693ï® Complete. An SRS is complete if, and only if, it includes the
3694following elements:
3695 a) All significant requirements, whether relating to functionality,
3696performance, design constraints, attributes, or external interfaces.
3697 b) Definition of the responses of the software to all realizable classes of
3698input data in all realizable classes of situations.
3699 c) Full labels and references to all figures, tables, and diagrams in the
3700SRS and definition of all terms and units of measure.
3701ï® Consistent. Consistency refers to internal consistency. If an SRS
3702does not agree with some higher-level document, such as a system
3703requirements specification, then it is not correct.
370440
3705Ðнализа и моделирање на барања
3706ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3707И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3708СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3709IEEE Std. 830
3710ï® Ranked for importance and/or stability. An SRS is ranked
3711for importance and/or stability if each requirement in it has an
3712identifier to indicate either the importance or stability of that
3713particular requirement.
3714ï® Verifiable. An SRS is verifiable if, and only if, every
3715requirement stated therein is verifiable. A requirement is
3716verifiable if, and only if, there exists some finite cost-effective
3717process with which a person or machine can check that the
3718software product meets the requirement.
3719ï® Modifiable. An SRS is modifiable if, and only if, its structure
3720and style are such that any changes to the requirements can
3721be made easily, completely, and consistently while retaining
3722the structure and style.
3723ï® Traceable. An SRS is traceable if the origin of each of its
3724requirements is clear and if it facilitates the referencing of
3725each requirement in future development or enhancement
3726documentation.
372741
3728Ðнализа и моделирање на барања
3729ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3730И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3731СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3732ЗаÑегнати Ñтрани, гледишта,
3733приоритети, ...
3734ï® Ð˜Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÑƒÐ²Ð°ÑšÐµ на заÑегнатите (stakeholder
3735identification)
3736ï® Ð˜Ð½Ð¸Ñ†Ð¸Ñ˜Ð°Ð»Ð½Ð° лиÑта на луѓе (и други извори)
3737кои ќе придонеÑат во откривањето на
3738барањата
3739ï® Ð“Ð»ÐµÐ´Ð¸ÑˆÑ‚Ð° (Viewpoints)
3740 маркетинг, бизниÑ, кориÑници, ÑофтверÑки
3741инженери, одржувачи, ...
3742 да Ñе Ñогледаат неконзиÑтентните и конфликтни
3743барања
3744 воÑпоÑтавување на приоритети
374542
3746ИнженерÑтво на барања
3747ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3748И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3749СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3750Собирање информации за
3751барањата на Ñофтверот
3752ï® Ð¡Ð¾Ñтанок или интервју
3753 КонтекÑтно незавиÑни прашања
3754ï® ÐšÐ¾Ñ˜ Ñтои зад барањето?
3755ï® ÐšÐ¾Ñ˜ ќе го кориÑти решението?
3756ï® ÐšÐ¾Ð¸ би биле економÑките придобивки на уÑпешно
3757решение?
3758 Прашања кои ќе помогнат подобро да го разбере
3759проблемот
3760ï® ÐšÐ¾Ð¸ проблеми треба да ги реши ÑофтверÑкото решение?
3761ï® ÐšÐ°ÐºÐ¾ би Ñе карактеризирало доброто решение?
3762ï® ÐšÐ¾Ñ˜Ð° е околината во која би Ñе кориÑтело решението?
3763ï® Ð”Ð°Ð»Ð¸ поÑтојат Ñпецифични барања околу перформанÑите
3764на решението или дополнителни ограничувања?
376543
3766ИнженерÑтво на барања
3767ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3768И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3769СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3770Собирање информации за
3771барањата на Ñофтверот
3772 Мета-прашања
3773ï® Ð”Ð°Ð»Ð¸ моите прашања Ñе релевантни за вашиот проблем?
3774ï® Ð”Ð°Ð»Ð¸ вашите одговори Ñе официјални?
3775ï® Ð”Ð°Ð»Ð¸ некој друг може да даде дополнителни информации
3776околу проблемот?
3777ï® Ð”Ð°Ð»Ð¸ треба да прашам уште нешто?
3778ï® Ð¡Ð¾Ñтанок како комбинација на
3779 решавање на проблемот
3780 преговори
3781 Ñпецификација
378244
3783ИнженерÑтво на барања
3784ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3785И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3786СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3787FAST
3788ï® Facilitated Application Specification Techniques
3789(FAST) – формирање заеднички тим од
3790клиенти и развивачи на Ñофтвер кои работат
3791заедно за да го идентификуваат проблемот,
3792да понудат елементи на решението, да
3793преговараат околу различните приÑтапи и да
3794Ñпецифицираат прелиминарно множеÑтво на
3795барања
3796ï® ÐŸÑ€ÐµÑ‚ÐµÐ¶Ð½Ð¾ кориÑтен за информациони
3797ÑиÑтеми (JAD – IBM, METHOD)
379845
3799ИнженерÑтво на барања
3800ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3801И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3802СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3803Collaborative Request Gathering
3804ï® Ð¡Ð¾Ñтанок (на неутрален терен)
3805ï® ÐŸÑ€Ð°Ð²Ð¸Ð»Ð° на игра
3806ï® Ðгенда
3807ï® â€žÐžÐ»ÐµÑнувач“
3808ï® ÐœÐµÑ…Ð°Ð½Ð¸Ð·Ð°Ð¼ за дефиниција
3809ï® Ð¦ÐµÐ»Ñ‚Ð° е да Ñе идентификува проблемот, да Ñе
3810предложат елементи на решението, да Ñе разгледаат
3811различните приÑтапи, да Ñе Ñпецифицира
3812прелиминарно множеÑтво на барања во атмоÑфера
3813која поволна за решавање на проблемот
3814ï® ÐŸÑ€ÐµÐ´ ÑоÑтанокот – диÑтрибуција на “product requestâ€
3815документ, Ñекој учеÑник прави лиÑта на Ñвои
3816забелешки (Ñогледувања, дополнувања) (лиÑта на
3817објекти, дополнителни ÑервиÑи, ограничувања,
3818перформанÑи)
381946
3820ИнженерÑтво на барања
3821ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3822И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3823СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3824Product description example
3825Our research indicates that the market for home
3826management systems is growing at a rate of 40 percent
3827per year. The first SafeHome function we bring to
3828market should be the home security function. Most
3829people are familiar with “alarm systems†so this would
3830be an easy sell.
3831The home security function would protect against
3832and/or recognize a variety of undesirable “situationsâ€
3833such as illegal entry, fire, flooding, carbon monoxide
3834levels, and others. It’ll use our wireless sensors to detect
3835each situation. It can be programmed by the
3836homeowner, and will automatically telephone a
3837monitoring agency when a situation is detected.
383847
3839ИнженерÑтво на барања
3840ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3841И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3842СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3843SafeHome
3844ï® Objects
3845 smoke detectors, window and door sensors, motion detectors,
3846an alarm, an event (a sensor has been activated), a control
3847panel, a display, telephone numbers, a telephone call
3848ï® Services (act on objects)
3849 setting the alarm, monitoring the sensors, dialing the phone,
3850programming the control panel, reading the display
3851ï® Constraints
3852 the system must have a manufactured cost of less than $80,
3853must be user-friendly, must interface directly to a standard phone
3854line
3855ï® Performance criteria
3856 a sensor event should be recognized within one second, an
3857event priority scheme should be implemented
385848
3859ИнженерÑтво на барања
3860ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3861И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3862СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3863СоÑтанок
3864ï® ÐžÐ¿Ñ€Ð°Ð²Ð´Ð°Ð½Ð¾ÑÑ‚ на проектот
3865ï® ÐŸÑ€ÐµÐ·ÐµÐ½Ñ‚Ð¸Ñ€Ð°ÑšÐµ на индивидуалните лиÑти (за Ñекоја
3866облаÑÑ‚)
3867ï® Ð›Ð¸Ñтите Ñе комбинираат
3868ï® Ð”Ð¸ÑкуÑија – конÑÐµÐ½Ð·ÑƒÑ Ð»Ð¸Ñта
3869ï® ÐŸÐ¾Ð´ÐµÐ»Ð±Ð° на подтимови кои ќе развијат мини- Ñпецификации
3870 презентација на мини-Ñпецификациите кои можат да
3871откријат нови објекти, ÑервиÑи, ... и диÑкуÑија
3872 лиÑта на отворени прашања
3873ï® ÐšÑ€Ð¸Ñ‚ÐµÑ€Ð¸ÑƒÐ¼Ð¸ за валидација
3874ï® Ð”ÐµÐ»ÐµÐ³Ð¸Ñ€Ð°ÑšÐµ на пишувањето на комплетна драфт
3875Ñпецификација на база на Ñите материјали од FAST
3876ÑоÑтанокот
387749
3878ИнженерÑтво на барања
3879ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3880И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3881СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3882Mini-specification for the SafeHome
3883object control panel
3884The control panel is a wall-mounted unit that is
3885approximately 9 x 5 inches in size. The control panel
3886has wireless connectivity to sensors and a PC. User
3887interaction occurs through a keypad containing 12 keys.
3888A 3 x 3 inch LCD color display provides user feedback.
3889Software provides interactive prompts, echo, and
3890similar functions.
389150
3892ИнженерÑтво на барања
3893ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3894И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3895СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3896Quality Function Deployment
3897ï® Quality function deployment (QFD) е техника за
3898менаџирање на квалитет која ги преведува
3899потребите на кориÑниците во технички барања на
3900Ñофтверот. Се концентрира на Ñогледување што е
3901значајно за кориÑникот и иÑпорака на овие барања
3902низ инженерÑкиот процеÑ.
3903ï® QFD идентификува три типа на барања:
3904 Normal requirements (Ðормални барања – како што Ñе
3905поÑтавени од клиентот)
3906 Expected requirements (Подразбирани барања – ненаглаÑени
3907фундаментални барања)
3908 Exciting requirements (МожноÑти кои не Ñе побарани, но од
3909кои клиентот би бил оÑобено задоволен)
391051
3911ИнженерÑтво на барања
3912ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3913И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3914СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3915QFD
3916ï® ÐœÐ½Ð¾Ð³Ñƒ од QFD концептите Ñе
3917применливи и во процеÑот на Ñобирање
3918на барањата
3919function deployment
3920information deployment
3921task deployment
3922Value analysis (одредување приоритети)
392352
3924ИнженерÑтво на барања
3925ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3926И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3927СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3928Сценарија на употреба
3929(Usage Scenarios)
3930ï® ÐšÐ°ÐºÐ¾ функционалноÑтите и оÑобините
3931ќе бидат кориÑтени од различните клаÑи
3932на крајни кориÑници
3933ï® Ð¡Ñ†ÐµÐ½Ð°Ñ€Ð¸Ñ˜Ð° - use cases
393453
3935ИнженерÑтво на барања
3936ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3937И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3938СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3939Elicitation Work Products
3940ï® Ð˜Ð·Ñ˜Ð°Ð²Ð° за потреба и оÑтварливоÑÑ‚ (statement of need and
3941feasibility)
3942ï® Ð”ÐµÑ„Ð¸Ð½Ð¸Ñ€Ð°ÑšÐµ на опÑег (bounded statement of scope for the system
3943or product)
3944ï® Ð›Ð¸Ñта на заÑегнати Ñтрани
3945ï® ÐžÐ¿Ð¸Ñ Ð½Ð° техничкото опкружување на ÑиÑтемот
3946ï® Ð›Ð¸Ñта на барања (организирана Ñпоред функции и
3947ограничувањата придружени за Ñекое од нив)
3948ï® ÐœÐ½Ð¾Ð¶ÐµÑтво на Ñценарија за употреба кои обезбедуваат увид во
3949употребата на ÑиÑтемот во различни оперативни околноÑти
3950ï® Ð•Ð²ÐµÐ½Ñ‚ÑƒÐ°Ð»Ð½Ð¸ прототипови развиени за подобро да Ñе
3951дефинираат барањата
395254
3953ИнженерÑтво на барања
3954ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3955И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3956СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3957Материјали:
3958ï® Roger S. Pressman, Software Engineering: A
3959Practitioner’s Approach, 7th edition, McGraw-Hill,
39602010.
3961 Chapter 5: Understanding requirements (pg. 119-)
396255
3963Модели на процеÑи за развој на Ñофтвер
3964ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3965И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3966СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3967Прашања?
3968ИнженерÑтво на барања
396956
3970_____________________________________________________________________________________________________________________
3971ÐÐÐЛИЗРИ
3972МОДЕЛИРÐЊЕ
3973дел 1
3974Ðкроними...
3975ï® ERD - Entity Relationship Diagram
3976ï® DFD - Data Flow Diagram
3977ï® STD - State Transition Diagram
3978ï® DOD - Data Object Description
3979ï® DFM - Data Flow Model
3980ï® PSPEC - Process Specification
3981ï® CSPEC - Control Specification
3982ï® PAT - Process Activation Table
3983ï® PDL - Program Design Language
3984ï® CASE - Computer-aided Software Engineering
3985Ðнализа и моделирање на барања
39862
3987ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
3988И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
3989СОФТВЕРСКО ИÐЖЕÐЕРСТВО
3990Ðнализа и моделирање
3991ï® Ðа техничко ниво ÑофтверÑкото инженерÑтво
3992почнува Ñо низа активноÑти на моделирање
3993кои водат кон детална Ñпецификација на
3994барањата и разбирлива репрезентација на
3995дизајнот на Ñофтверот кој треба да Ñе
3996направи.
3997ï® ÐœÐ¾Ð´ÐµÐ»Ð¾Ñ‚ за анализа е првата техничка
3998репрезентација на ÑиÑтемот.
3999ï® Ð”ÐµÐ½ÐµÑ Ð´Ð¾Ð¼Ð¸Ð½Ð¸Ñ€Ð°Ð°Ñ‚ два приÑтапа:
4000 Структурна анализа
4001 Објектно-ориентирана анализа
4002Ðнализа и моделирање на барања
40033
4004ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4005И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4006СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4007Модел
4008ï® ÐœÐ¾Ð´ÐµÐ»Ð¾Ñ‚ креиран за време на анализата на
4009барања е оÑнова за:
4010 анализа за разбирање на информациите кои ги
4011процеÑира ÑиÑтемот, функциите Ñо кои го прави
4012тоа и однеÑувањето на ÑиÑтемот Ñо што процеÑот
4013на прибирање и анализа на барањата го прави
4014полеÑен и поÑиÑтематÑки
4015 ревизија, одредување на комплетноÑÑ‚,
4016конзиÑтентноÑÑ‚ и прецизноÑÑ‚ на Ñпецификацијата
4017 дизајн обезбедувајќи му на дизајнерот оÑновна
4018репрезентација на Ñофтверот кој треба да Ñе
4019преÑлика во имплементациÑки контекÑÑ‚
40204
4021Ðнализа и моделирање на барања
4022ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4023И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4024СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4025Ðнализа
4026ï® Ðнализа е активноÑÑ‚ во која Ñе гради модел
4027ï® Ð’Ð¾ неа Ñе креираат и анализираат податочни,
4028функционални, модели на однеÑување и
4029други модели кои треба да ја претÑтават
4030Ñуштината на она што треба да Ñе изгради
4031ï® Ð¡Ðµ употребува комбинација од текÑÑ‚ и
4032дијаграмÑка (графичка) претÑтава за да Ñе
4033опишат барањата за податоци,
4034функционалноÑÑ‚ и однеÑување на начин кој е
4035едноÑтавен за разбирање и што е уште
4036поважно овозможува проверка на
4037коректноÑта, комплетноÑта и конзиÑтентноÑта
4038Ðнализа и моделирање на барања
40395
4040ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4041И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4042СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4043Моделирање
4044ï® ÐŸÐ¾Ð´Ð°Ñ‚Ð¾Ñ‡Ð½Ð¾Ñ‚Ð¾ моделирање ги дефинира
4045податочните објекти, атрибутите и
4046релациите
4047ï® Ð¤ÑƒÐ½ÐºÑ†Ð¸Ð¾Ð½Ð°Ð»Ð½Ð¾Ñ‚Ð¾ моделирање изразува
4048како податоците ќе Ñе транÑформираат
4049во ÑиÑтемот
4050ï® ÐœÐ¾Ð´ÐµÐ»Ð¸Ñ€Ð°ÑšÐµ на однеÑување го
4051изразува влијанието на наÑтаните на
4052ÑиÑтемот (и неговата реакција)
4053Ðнализа и моделирање на барања
40546
4055ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4056И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4057СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4058Моделирање и анализа на барања
4059ï® Ð¨Ñ‚Ð¾ е?
4060 комбинација од текÑÑ‚ и дијаграми и шеми кои ги
4061отÑликуваат барањата на начин на кој е релативно
4062леÑно да Ñе разберат и ревидираат од аÑпект на
4063коректноÑÑ‚, комплетноÑÑ‚ и конзиÑтентноÑÑ‚
4064ï® ÐšÐ¾Ñ˜ го прави? – ÑофтверÑкиот инженер
4065(аналитичар)
4066ï® Ð—Ð¾ÑˆÑ‚Ð¾ Ñе важни?
4067 при валидацијата Ñе гледаат од неколку различни
4068перÑпективи (модели на Ñценарија, податочни
4069модели, клаÑни модели, ...)
40707
4071Ðнализа и моделирање на барања
4072ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4073И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4074СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4075Моделирање и анализа на барања
4076ï® ÐšÑ€Ð°Ñ˜Ð½Ð¸Ð¾Ñ‚ продукт на анализата (SRS)
4077мора да биде леÑен за одржување
4078ï® ÐŸÑ€Ð¾Ð±Ð»ÐµÐ¼ Ñо големината - ефективно
4079партицинирање (организација на
4080документот)
4081ï® Ð”Ð¸Ñ„ÐµÑ€ÐµÐ½Ñ†Ð¸Ñ€Ð°ÑšÐµ помеѓу логичките
4082(еÑенцијални) и физичките
4083(имплементациÑки) аÑпекти
4084ï® Ð˜Ð½Ñ‚ÐµÑ€Ñ„ÐµÑ˜Ñи, логика, полиÑи, ...
40858
4086Ðнализа и моделирање на барања
4087ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4088И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4089СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4090Ðнализа на барања
4091ï® Ð”Ð° Ñе произведат модели
4092 Scenario-based models
4093 Data models
4094 Class-oriented models
4095 Flow-oriented models
4096 Behavioral models
4097ï® Ð“Ð¸ обезбедуваат клучните информации
4098потребни на дизајнерот на Ñофтвер за
4099моделите да ги преведе во архитектурен
4100дизајн, дизајн на интерфејÑи и дизајн на
4101компоненти
41029
4103Ðнализа и моделирање на барања
4104ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4105И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4106СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4107Ðнализа на барања
4108Ðлката која ги поврзува ÑиÑтемÑкото
4109инженерÑтво и дизајнот на Ñофтвер
4110Software
4111design
4112Software
4113requirements
4114analysis
4115System
4116engineering
411710
4118Ðнализа и моделирање на барања
4119System
4120description
4121Analysis
4122model
4123Design
4124model
4125ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4126И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4127СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4128Ðнализа на барања
4129Ðнализата на барања треба да:
4130ï® Ñ€ÐµÐ·ÑƒÐ»Ñ‚Ð¸Ñ€Ð° Ñо Ñпецификација за
4131оперативните карактериÑтики на
4132Ñофтверот (function, data, behavior)
4133ï® Ð´Ð° ги воочи интерфејÑите на Ñофтверот
4134Ñо оÑтанатите елементи на ÑиÑтемот
4135ï® Ð´Ð° ги воÑпоÑтават ограничувањата кои
4136Ñофтверот мора да ги задоволи
413711
4138Ðнализа и моделирање на барања
4139ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4140И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4141СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4142Ðнализа на барања
4143ï® ÐŸÑ€Ð¾Ñ†ÐµÑот на анализа на барањата на
4144ÑофтверÑкиот дизајнер треба да му обезбеди
4145репрезентација на
4146 информациите,
4147 функциите и
4148 однеÑувањето
4149кои треба да Ñе преточат во
4150 податочен дизајн
4151 архитектурен дизајн
4152 дизајн на кориÑнички интерфејÑ
4153 дизајн на компоненти
415412
4155Ðнализа и моделирање на барања
4156ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4157И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4158СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4159Ðнализа на барања
41601. Препознавање на проблемот
41612. Проценка на проблемот и Ñоздавање решение
4162(евалуација и Ñинтеза)
4163 дефинирање на Ñите екÑтерно видливи податочни објекти
4164 Ñогледување на текот и Ñодржината на информациите
4165 дефинирање и елаборирање на Ñите функции на Ñофтверот
4166 разбирање на однеÑувањето на Ñофтверот во контекÑÑ‚ на
4167наÑтаните кои влијаат на ÑиÑтемот
4168 дефинирање на карактериÑтиките на интерфејÑот кон
4169ÑиÑтемот
4170 откривање на дополнителни ограничувачки фактори во
4171дизајнот
41723. Моделирање
41734. Спецификација
41745. Ревизија
4175концентрирање на ШТО не КÐКО!
417613
4177Ðнализа и моделирање на барања
4178ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4179И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4180СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4181Елементи на моделот за анализа
4182Треба да поÑтигне три оÑновни цели:
41831. Да опише што Ñака клиентот
41842. Да Ñоздаде оÑнова за креирање на
4185ÑофтверÑкиот дизајн
41863. Да Ñе дефинира множеÑтво на барања
4187кои ќе може да Ñе проверат откако
4188Ñофтверот ќе биде направен
4189Ðнализа и моделирање на барања
419014
4191ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4192И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4193СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4194Ðнализа – оÑновни принципи
4195ï® Ð¡ÐµÐºÐ¾Ñ˜ метод за анализа има различен аÑпект
4196ï® Ð—Ð°ÐµÐ´Ð½Ð¸Ñ‡ÐºÐ¸ оперативни принципи за ÑиÑтематÑки
4197приод кон проблемот:
41981. ИнформациÑкиот домен на проблемот мора да
4199биде претÑтавен и разбран
42002. Мора да бидат дефинирани функциите кои треба
4201да ги изведува Ñофтверот
42023. ОднеÑувањето на Ñофтверот (како поÑледица на
4203екÑтерни наÑтани) мора да биде претÑтавено
42044. Моделите кои ги опишуваат информациите,
4205функцијата и однеÑувањето мора да бидат
4206поделени на начин кој ги открива деталите во
4207Ñлоевита (хиерархиÑка) претÑтава
42085. ПроцеÑот на анализа треба да Ñе движи од
4209еÑенцијалните информации кон
4210имплементациÑките детали
421115
4212Ðнализа и моделирање на барања
4213ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4214И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4215СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4216ОÑновни принципи во фазата на
4217анализа
4218ï® ÐŸÑ€Ð¾Ð´ÑƒÑ†Ð¸Ñ€Ð°ÑšÐµ на документи кои леÑно
4219Ñе одржуваат (ажурираат) - SRS
4220ï® ÐŸÐ°Ñ€Ñ‚Ð¸Ñ†Ð¸Ð¾Ð½Ð¸Ñ€Ð°ÑšÐµ (поделба)
4221ï® Ð£Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð° на графички приказ
4222ï® Ð Ð°Ð·Ð»Ð¸ÐºÐ° помеѓу логичката (еÑенцијална)
4223и физичката (имплементациÑка)
4224претÑтава мора да Ñе земе во предвид
4225Ðнализа и моделирање на барања
422616
4227ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4228И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4229СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4230ОÑновни правила при креирање
4231модели за анализа
4232ï® Ñ„Ð¾ÐºÑƒÑирање на барања кои Ñе видливи во доменот на
4233проблемот – нивото на апÑтракција треба да е релативно
4234виÑоко
4235ï® Ñекој елемент треба да придонеÑува во разбирањето на
4236ÑофтверÑките барања и да дава поглед во информациÑкиот,
4237функциÑкиот и доменот на однеÑување на ÑиÑтемот
4238ï® Ð¾Ð´Ð»Ð¾Ð¶ÑƒÐ²Ð°ÑšÐµ на инфраÑтруктурните и други нефункционални
4239модели за подоцна
4240ï® Ð¼Ð¸Ð½Ð¸Ð¼Ð¸Ð·Ð¸Ñ€Ð°ÑšÐµ на поврзаноÑта во ÑиÑтемот
4241ï® Ð¼Ð¾Ð´ÐµÐ»Ð¾Ñ‚ на барања да обезбедува вредноÑÑ‚ за заÑегнатите
4242Ñтрани
4243ï® Ð¼Ð¾Ð´ÐµÐ»Ð¾Ñ‚ да биде што е можно поедноÑтавен
424417
4245Ðнализа и моделирање на барања
4246ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4247И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4248СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4249Domain Analysis
4250ï® Ð¨Ð°Ð±Ð»Ð¾Ð½Ð¸ за анализа чеÑто Ñе
4251појавуваат кај апликации од одреден
4252Ð±Ð¸Ð·Ð½Ð¸Ñ Ð´Ð¾Ð¼ÐµÐ½
4253ï® ÐšÐ¾Ñ˜ ги дефинира, категоризира, ...?
425418
4255Ðнализа и моделирање на барања
4256Domain
4257analysis
4258Sources of
4259domain
4260knowledge
4261Customer surveys
4262Expert advice
4263Current future requirements /
4264Existing applications
4265Technical literature
4266Domain
4267analysis
4268model
4269Functional models
4270Domain languages
4271Reuse standards
4272Class taxonomies
4273ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4274И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4275СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4276ПриÑтапи при моделирање на
4277барања
4278ï® Ð¡Ñ‚Ñ€ÑƒÐºÑ‚ÑƒÑ€Ð½Ð° анализа
4279податоците и процеÑите кои ги
4280транÑформираат податоците ги разгледува
4281како поÑебни ентитети
4282ï® ÐžÐ±Ñ˜ÐµÐºÑ‚Ð½Ð¾-ориентирана анализа
4283дефинирање на клаÑи и начинот на кои
4284колаборираат за да го решат проблемот
428519
4286Ðнализа и моделирање на барања
4287ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4288И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4289СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4290Елементи на анализа
4291Software
4292Requirements
4293Class
4294models
4295e g. ,.
4296class diagrams
4297collaboration diagrams
4298Flow
4299models
4300e g. ,.
4301DFDs
4302data models
4303Scenario based -
4304models
4305e g. ,.
4306use cases
4307user stories
4308Behavioral
4309models
4310e g. ,.
4311state diagrams
4312sequence diagrams
431320
4314Ðнализа и моделирање на барања
4315ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4316И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4317СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4318Scenario-Based Modeling
4319ï® ÐŸÑ€ÐµÐ»Ð¸Ð¼Ð¸Ð½Ð°Ñ€ÐµÐ½ Use Case
4320ï® Ð Ð°Ñ„Ð¸Ð½Ð¸Ñ€Ð°ÑšÐµ на прелиминарниот Use Case
4321ï® Ð”Ð°Ð»Ð¸ актерот на одредено меÑто може да
4322преземе и други акции?
4323ï® Ð”Ð°Ð»Ð¸ актерот може да Ñе Ñретне Ñо грешка на
4324одредено меÑто, каква и што при тоа?
4325ï® Ð”Ð°Ð»Ð¸ е можно актерот да Ñе Ñретне Ñо поинакво
4326однеÑување (иницирано од надворешни
4327наÑтани на пр.) и кои би можеле да бидат тие?
4328ï® Ð¡Ð¾Ñтавување формален Use Case
4329ï® ÐŸÑ€Ð¸Ð´Ñ€ÑƒÐ¶Ð½Ð¸ UML модели (Activity, Swimlane
4330Diagrams)
433121
4332Ðнализа и моделирање на барања
4333ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4334И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4335СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4336Прелиминарен Use-Case
4337ï® Use-Case ~ “contract for behaviorâ€
4338ï® Ð½Ð°Ñ‡Ð¸Ð½Ð¾Ñ‚ на кој актерот го кориÑти компјутерÑкиот
4339ÑиÑтем за да поÑтигне одредена цел
4340ï® Ð³Ð¸ опфаќа интеракциите кои Ñе појавуваат помеѓу
4341креаторите на информации, конÑументите на
4342информации и Ñамиот ÑиÑтем
4343ï® ÐŸÑ€ÐµÐ»Ð¸Ð¼Ð¸Ð½Ð°Ñ€Ð½Ð¸Ð¾Ñ‚ Use-CaseÑе Ñе пишува прво во
4344наративна неформална форма
4345ï® Ð¿Ð¾Ñ‚Ð¾Ð° (ако е потребно) во поформална Ñтруктурна
4346форма
434722
4348Ðнализа и моделирање на барања
4349ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4350И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4351СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4352Use case: Access camera surveillance via the Internet—display
4353camera views (ACS-DCV)
4354Actor: homeowner
4355If I’m at a remote location, I can use any PC with appropriate browser
4356software to log on to the SafeHome Products website. I enter my user
4357ID and two levels of passwords and once I’m validated, I have access
4358to all functionality for my installed SafeHome system. To access a
4359specific camera view, I select “surveillance†from the major function
4360buttons displayed. I then select “pick a camera†and the floor plan of the
4361house is displayed. I then select the camera that I’m interested in.
4362Alternatively, I can look at thumbnail snapshots from all cameras
4363simultaneously by selecting “all cameras†as my viewing choice. Once I
4364choose a camera, I select “view†and a one-frame-per-second view
4365appears in a viewing window that is identified by the camera ID. If I
4366want to switch cameras, I select “pick a camera†and the original
4367viewing window disappears and the floor plan of the house is displayed
4368again. I then select the camera that I’m interested in. A new viewing
4369window appears.
437023
4371Ðнализа и моделирање на барања
4372ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4373И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4374СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4375Подредена Ñеквенца на акции на кориÑникот. Секоја
4376акција претÑтавена Ñо декларативна реченица
43771. The homeowner logs onto the SafeHome Products website.
43782. The homeowner enters his or her user ID.
43793. The homeowner enters two passwords (each at least eight
4380characters in length).
43814. The system displays all major function buttons.
43825. The homeowner selects the “surveillance†from the major function
4383buttons.
43846. The homeowner selects “pick a camera.â€
43857. The system displays the floor plan of the house.
43868. The homeowner selects a camera icon from the floor plan.
43879. The homeowner selects the “view†button.
438810. The system displays a viewing window that is identified by the
4389camera ID.
439011. The system displays video output within the viewing window at one
4391frame per second.
439224
4393Ðнализа и моделирање на барања
4394ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4395И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4396СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4397Примарни Ñценарија
4398ï® Ð¡ÐµÐºÐ²ÐµÐ½Ñ†Ð¸Ñ˜Ð°Ð»Ð½Ð°Ñ‚Ð° презентација не
4399разгледува алтернативни интеракции
4400(додека наративната е поÑлободна и може
4401да Ñодржи и алтернативи)
440225
4403Ðнализа и моделирање на барања
4404ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4405И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4406СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4407Рафинирање на Ñценарио
4408ï® ÐžÐ¿Ð¸Ñ Ð½Ð° алтернативните интеракции
4409ï® Ð¡ÐµÐºÐ¾Ðµ примарно Ñценарио Ñе разгледува од аÑпект
4410на Ñледниве прашања
44111. Може ли актерот да преземе други акции на ова
4412меÑто?
44132. Дали е можно актерот да наиде на грешка на ова
4414меÑто? Ðко може, каква?
44153. Дали е можно актерот да наиде на поинакво
4416однеÑување на ÑиÑтемот на ова меÑто (иницирано
4417од некој наÑтан кој не е под контрола на актерот)?
4418Ðко може, кој наÑтан и какво однеÑување?
441926
4420Ðнализа и моделирање на барања
4421ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4422И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4423СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4424Секундарни Ñценарија
4425ï® ÐžÐ´Ð³Ð¾Ð²Ð¾Ñ€Ð¸Ñ‚Ðµ на претходните прашања водат
4426кон Ñекундарни Ñценарија кои Ñе дел на
4427иÑтиот Use-Case но опишуваат алтернативно
4428однеÑување
4429ï® ÐŸÑ€.
44306. The homeowner selects “pick a camera.â€
44317. The system displays the floor plan of the house.
4432 Може ли да преземе други акции?
4433 Може ли да наиде на грешка?
4434 Може ли да наиде на поинакво однеÑување?
443527
4436Ðнализа и моделирање на барања
4437ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4438И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4439СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4440Use-Case exception
4441ï® Ð˜Ñклучок опишува Ñитуација (иÑпад или алтернатива
4442избрана од кориÑникот) кое предизвикува ÑиÑтемот
4443да Ñе однеÑува поинаку
4444ï® ÐœÐ¾Ð¶Ð½Ð¸ прашања за откривање иÑклучоци: Дали има
4445Ñлучаи ...
4446 ... во кои Ñе појавува одредена „функција за проверка“ во
4447текот на овој Use-Case (која може да предизвика
4448пријавување на грешка)?
4449 ... во кои помошна функција или актер може да не одговори
4450на упатено барање?
4451 ... во кои Ñлаби перформанÑи на ÑиÑтемот може да
4452предизвикаат неочекувани или неÑоодветни кориÑнички
4453акции?
445428
4455Ðнализа и моделирање на барања
4456ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4457И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4458СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4459Формален Use-Case
4460ï® Use case:
4461ï® Iteration:
4462ï® Primary actor:
4463ï® Goal in context:
4464ï® Preconditions:
4465ï® Trigger:
4466ï® Scenario:
4467ï® Exceptions:
446829
4469Ðнализа и моделирање на барања
4470ï® Priority:
4471ï® When available:
4472ï® Frequency of use:
4473ï® Channel to actor:
4474ï® Secondary actors:
4475Channels to
4476secondary actors:
4477ï® Open issues:
4478ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4479И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4480СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4481Formal Use Case (1)
4482ï® Use case: Access camera surveillance via the
4483Internet—display camera views (ACS-DCV)
4484ï® Iteration: 2, last modification: January 14 by V. Raman.
4485ï® Primary actor: Homeowner.
4486ï® Goal in context: To view output of camera placed
4487throughout the house from any remote location via the
4488Internet.
4489ï® Preconditions: System must be fully configured;
4490appropriate user ID and passwords must be obtained.
4491ï® Trigger: The homeowner decides to take a look inside
4492the house while away.
4493ï® Scenario:
44941. …
44952. …
449630
4497Ðнализа и моделирање на барања
4498ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4499И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4500СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4501Formal Use Case (2)
4502ï® Exceptions:
45031. ID or passwords are incorrect or not recognized - see use case
4504Validate ID and passwords.
45052. Surveillance function not configured for this system - system
4506displays appropriate error message; see use case Configure
4507surveillance function.
45083. Homeowner selects “View thumbnail snapshots for all camera†-
4509see use case View thumbnail snapshots for all cameras.
45104. A floor plan is not available or has not been configured - display
4511appropriate error message and see use case Configure floor plan.
45125. An alarm condition is encountered - see use case Alarm
4513condition encountered.
451431
4515Ðнализа и моделирање на барања
4516ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4517И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4518СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4519Formal Use Case (3)
4520Priority: Moderate priority, to be implemented after basic
4521functions.
4522When available: Third increment.
4523Frequency of use: Moderate frequency.
4524Channel to actor: Via PC-based browser and
4525Internet connection.
4526Secondary actors: System administrator, cameras.
4527Channels to secondary actors:
45281. System administrator: PC-based system.
45292. Cameras: wireless connectivity.
453032
4531Ðнализа и моделирање на барања
4532ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4533И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4534СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4535Formal Use Case (4)
4536Open issues:
45371. What mechanisms protect unauthorized use of this
4538capability by employees of SafeHome Products?
45392. Is security sufficient? Hacking into this feature would
4540represent a major invasion of privacy.
45413. Will system response via the Internet be acceptable
4542given the bandwidth required for camera views?
45434. Will we develop a capability to provide video at a higher
4544frames-per-second rate when high bandwidth connections
4545are available?
454633
4547Ðнализа и моделирање на барања
4548ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4549И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4550СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4551Графички репрезентации
4552ï® Ð´Ð¾ÐºÐ¾Ð»ÐºÑƒ е потребно – да Ñе вклучат
4553(појаÑнуваат)
4554ï® Use case Ñе фокуÑира на
4555функционалните барања и барањата за
4556однеÑување на ÑиÑтемот – најчеÑто не
4557Ñоодветен за нефункционалните
4558барања
4559ï® UML модели (дијаграми)
456034
4561Ðнализа и моделирање на барања
4562ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4563И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4564СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4565UML модели (дијаграми)
4566ï® Activity Diagram
4567ï® Swimlane Diagrams
4568ï® State Machine Diagram
4569ï® Interaction / Communication Diagram
4570ï® Sequence / Timing diagrams
457135
4572Ðнализа и моделирање на барања
4573ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4574И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4575СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4576Data-Modeling
4577ï® Ðко Ñофтверот има потреба од креирање,
4578манипулација на комплекÑни податочни Ñтруктури
4579или Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÑ˜Ñ ÐºÐ¾Ð½ база на податоци, вообичаено Ñе
4580прави податочен модел
4581 Еntity-relationship diagram (ERD) ги опишува Ñите податочни
4582објекти кои Ñе внеÑуваат, чуваат, транÑформираат и
4583продуцираат во апликацијата
4584ï® ÐŸÐ¾Ð´Ð°Ñ‚Ð¾Ñ‡Ð½Ð¸ објекти (Data Objects)
4585 предмет, екÑтерен ентитет, појава, наÑтан, улога,
4586организациона единица, ...
4587ï® Ðтрибути
4588 ги дефинираат оÑобините на податочниот објект: именуваат,
4589опишуваат, референцираат
4590ï® Ð ÐµÐ»Ð°Ñ†Ð¸Ð¸
459136
4592Ðнализа и моделирање на барања
4593ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4594И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4595СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4596Податочно моделирање
4597ï® ÐŸÐ¾Ð´Ð°Ñ‚Ð¾Ñ‡Ð½Ð¾Ñ‚Ð¾ моделирање (data modeling)
4598одговара на прашања релевантни за
4599податоците кои Ñе обработуваат:
4600 Кои Ñе примарните податочни објекти кои ќе Ñе
4601процеÑираат?
4602 Кој е ÑоÑтавот на Ñекој од овие објекти и кои Ñе
4603атрибутите кои го карактеризираат?
4604 Каде Ñе наоѓа објектот?
4605 Која е релацијата на Ñекој од објектите Ñо
4606оÑтанатите објекти?
4607 Која е релацијата помеѓу објектите и процеÑите
4608кои ги транÑформираат?
4609ï® Ð—Ð° полеÑно да Ñе одговорат овие прашања Ñе
4610кориÑти ERD (Entity relationship diagram).
4611Ðнализа и моделирање на барања
461237
4613ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4614И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4615СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4616Entity relationship diagram (ERD)
4617ï® ERD – графичка нотација која овозможува
4618идентификација на податочните објекти и
4619нивните релации
4620ï® Ð“Ð¸ разгледува „чиÑтите“ податоци и нивните
4621релации, незавиÑно од процеÑите кои ги
4622транÑформираат
4623ï® ÐŸÐ¾Ð´Ð°Ñ‚Ð¾Ñ‡Ð½Ð¸Ñ‚Ðµ модели Ñе ÑоÑтојат од:
4624 податочни објекти
4625 атрибути кои ги опишуваат објектите
4626 релации кои ги поврзуваат податочните објекти
4627меѓуÑебно
4628Ðнализа и моделирање на барања
462938
4630ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4631И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4632СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4633Data objects, attributes, relationships
4634Objects: Attributes: Relationships:
4635owns
4636Name
4637Address
4638Age
4639Driver's license
4640Number
4641Make
4642Model
4643ID number
4644Body type
4645Color
4646Ðнализа и моделирање на барања
464739
4648ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4649И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4650СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4651ОÑобини на податочен објект
4652ОÑобини на податочен објект:
4653ï® Ð•Ð´Ð¸Ð½Ñтвен идентификатор
4654ï® Ð˜Ð³Ñ€Ð° одредена улога во ÑиÑтемот
4655ï® ÐžÐ¿Ð¸ÑˆÐ°Ð½ е преку атрибутите
4656Типични објекти:
4657ï® External entities (ентитет кој продуцира или конÑумира
4658информации)
4659ï® Things (извештај, приказ)
4660ï® Occurrences or events (телефонÑки повик, аларм)
4661ï® Roles (продавач)
4662ï® Organizational units (ÑметководÑтво)
4663ï® Places (магацин)
4664ï® Structures (датотека)
4665Ðнализа и моделирање на барања
466640
4667ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4668И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4669СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4670Податочен објект
4671ï® ÐŸÐ¾Ð´Ð°Ñ‚Ð¾Ñ‡ÐµÐ½ објект – репрезентација на
4672било која композитна информација.
4673ï® ÐŸÐ¾Ð´Ð°Ñ‚Ð¾Ñ‡Ð½Ð¸Ñ‚Ðµ објекти Ñе во релација
4674едни Ñо други. Релацијата претÑтавува
4675именувана врÑка помеѓу објектите
4676лице поÑедува автомобил
4677ï® ÐŸÐ¾Ð´Ð°Ñ‚Ð¾Ñ‡Ð½Ð¸Ð¾Ñ‚ објект Ñодржи (обединува)
4678Ñамо податоци
4679Ðнализа и моделирање на барања
468041
4681ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4682И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4683СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4684Ðтрибути (1)
4685Make Model ID# Body type Color Owner
4686Identifier
4687Instance
4688Lexus
4689Chevy
4690BMW
4691Ford
4692LS400
4693Corvette
4694750iL
4695Taurus
4696AB123. . .
4697X456. . .
4698XZ765. . .
4699Q12A45. . .
4700Sedan
4701Sports
4702Coupe
4703Sedan
4704White
4705Red
4706White
4707Blue
4708RSP
4709CCD
4710LJL
4711BLF
4712Ties one data object to another,
4713in this case, owner
4714Naming
4715attributes
4716Descriptive
4717attributes
4718Referential
4719attributes
4720object: automobile
4721attributes:
4722 make
4723 model
4724 ID#
4725 body type
4726 color
4727 owner
4728Ðнализа и моделирање на барања
472942
4730ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4731И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4732СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4733Ðтрибути (2)
4734ï® Ðтрибутите ги дефинираат ÑвојÑтвата на
4735објектот и имаат една од трите
4736карактериÑтики:
4737 ја именуваат инÑтанцата на податочниот објект
4738 ја опишуваат инÑтанцата на податочниот објект
4739 референцираат кон друга инÑтанца во друга
4740табела
4741ï® Ð•Ð´ÐµÐ½ (или повеќе) од атрибутите мора да
4742бидат дефинирани како идентификатор (клуч
4743кој може но не мора да биде единÑтвен)
4744ï® Ð˜Ð·Ð±Ð¾Ñ€Ð¾Ñ‚ на атрибути за даден податочен
4745објект завиÑи од проблемот (апликацијата)
4746ï® Ð¡Ðµ прикажуваат во табела или елипÑа
4747Ðнализа и моделирање на барања
474843
4749ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4750И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4751СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4752Class-Based Modelling
4753ï® Ð“Ð¸ опишува
4754објектите Ñо кои ÑиÑтемот ќе манипулира
4755операциите (методи, ÑервиÑи) кои ќе
4756бидат применувани на објектите
4757релациите (некои хиерархиÑки) помеѓу
4758објектите
4759колаборациите помеѓу клаÑите
476044
4761Ðнализа и моделирање на барања
4762ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4763И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4764СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4765Class-Based Modeling
4766ï® Ð˜Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ˜Ð° и анализа на клаÑите
4767ï® Ð¡Ð¿ÐµÑ†Ð¸Ñ„Ð¸Ñ†Ð¸Ñ€Ð°ÑšÐµ на атрибути
4768ï® Ð”ÐµÑ„Ð¸Ð½Ð¸Ñ€Ð°ÑšÐµ на операциите (методите)
4769ï® CRC моделирање (Class-ResponsibilityCollaborator)
4770ï® ÐÑоцијации и завиÑноÑти
4771ï® ÐŸÐ°ÐºÐµÑ‚Ð¸
477245
4773Ðнализа и моделирање на барања
4774ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4775И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4776СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4777Идентификација и анализа на клаÑите
4778ï® Ð˜Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ˜Ð° на клаÑите и методите Ñо
4779анализа на кориÑничките Ñценарија
4780 што може да бидат објекти:
4781ï® External entities (други ÑиÑтеми, уреди, луѓе)
4782ï® Things (извештај, приказ)
4783ï® Occurrences or events (телефонÑки повик, аларм)
4784ï® Roles (продавач)
4785ï® Organizational units (ÑметководÑтво)
4786ï® Places (магацин)
4787ï® Structures (датотека)
4788 што не Ñе објекти
4789ï® Ð¸Ð¼Ð¿ÐµÑ€Ð°Ñ‚Ð¸Ð²Ð½Ð¸ процерури (InvertImage)
479046
4791Ðнализа и моделирање на барања
4792ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4793И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4794СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4795Спецификација на атрибути
4796ï® Ðтрибутите ја опишуваат клаÑата, ја
4797дефинираат и појаÑнуваат
4798ï® Ð—Ð°Ð²Ð¸Ñат од примената на клаÑата
4799(контекÑтто на проблемот)
4800ï® ÐŸÑ€.
4801class: car
4802attributes: maker, model_no, prod_year,
4803milage, color, … ?
4804attributes: reg_no, owner, color, …
480551
4806Ðнализа и моделирање на барања
4807ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4808И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4809СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4810Дефинирање на операции
4811ï® Ð Ð°Ð·Ð»Ð¸Ñ‡Ð½Ð¸ видови на операции, 4 главни
4812категории
48131. Операции Ñо кои Ñе манипулираат
4814податоците (додавање, бришење,
4815реформатирање,...)
48162. Операции кои прават некаква преÑметка
48173. Операции кои проверуваат ÑоÑтојба на
4818објект
48194. Операции кои го надгледуваат објектот за
4820појава на контролирачки наÑтан
482152
4822Ðнализа и моделирање на барања
4823ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4824И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4825СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4826CRC моделирање
4827ï® Class-responsibility-collaborator моделирање
4828ï® Index-cards
4829 class name
4830 class responsibilities (attributes and operations)
4831“anything the class knows or doesâ€
4832 collaborators (други потребни клаÑи за да ги дадат
4833потребните информации за клаÑата да може да
4834одговори на Ñвоите одговорноÑти)
483553
4836Ðнализа и моделирање на барања
4837ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4838И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4839СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4840Index-cards
484154
4842Ðнализа и моделирање на барања
4843Class:
4844Des
4845Res aborat or:
4846Class:
4847De
4848ollaborat or:
4849Class:
4850D
4851Collaborat or:
4852Class FloorPlan :
4853Description
4854Responsibility: Collaborator:
4855Incorporates walls doors and windows , ,
4856Shows position of video cameras
4857Defines floor plan name type /
4858Manages floor plan positioning
4859Scales floor plan for display
4860Scales floor plan for display
4861Wall
4862Camera
4863ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4864И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4865СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4866КлаÑи
4867ï® ÐšÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ð¸ на клаÑи:
4868 Entity classes (called model or business classes) –
4869екÑтрахирани директно од проблемот,
4870вообичаено работи кои Ñе перзиÑтентни за време
4871на извршување на апликацијата, вообичаено Ñе
4872ÑмеÑтуваат во бази на податоци
4873 Boundary classes (гранични клаÑи) – за креирање
4874на интерфејÑи, Ñодржат информации кои му Ñе
4875битни на кориÑникот, менаџираат Ñо начинот на кој
4876ентитетните објекти Ñе презентираат на
4877кориÑниците
4878 Controller classes (контролер клаÑи) …
487955
4880Ðнализа и моделирање на барања
4881ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4882И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4883СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4884Контролер клаÑи
4885ï® Controller classes (контролер клаÑи) –
4886менаџираат одредена работа (која треба да
4887Ñе изведе) од почеток до крај (Ñе дефинираат
4888во процеÑот на дизајн)
4889 креирање и промена на ентитетни објекти
4890 инÑтанцирање на гранични објекти при нивното
4891примање информации од ентитетните објекти
4892 комплекÑни комуникации помеѓу множеÑтва на
4893објекти
4894 валидација на податоците кои Ñе проÑледуваат
4895помеѓу објектите или кориÑникот и објектите
489656
4897Ðнализа и моделирање на барања
4898ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4899И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4900СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4901ОдговорноÑти
4902ï® ÐžÑновни водилки за идентификација на
4903одговорноÑтите
49041. Интелигенцијата на ÑиÑтемот да биде диÑтрибуирана низ
4905клаÑите така што најдобро ќе може да одговори на
4906предизвиците (“Dumb†/ “Smart†classes)
49072. ОдговорноÑтите да бидат што погенерално поÑтавени
49083. Информациите и однеÑувањето придружено Ñо нив треба
4909да биде во иÑта клаÑа (енкапÑулација)
49104. Информациите за едно нешто треба да бидат
4911локализирани во една клаÑа, а не диÑтрибуирани низ
4912повеќе
49135. ОдговорноÑтите треба да бидат делени помеѓу повеќе
4914клаÑи каде што тоа е можно
491557
4916Ðнализа и моделирање на барања
4917ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4918И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4919СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4920Колаборација –
4921Соработка меѓу клаÑите
4922ï® ÐšÐ»Ð°Ñите ги иÑполнуваат Ñвоите
4923одговорноÑти на еден од два начини:
4924Со употреба на ÑопÑтвените операции за
4925манипулација над атрибутите
4926Преку Ñоработка Ñо други клаÑи
492758
4928Ðнализа и моделирање на барања
4929ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4930И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4931СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4932Player
4933PlayerHead PlayerBody PlayerArms PlayerLegs
4934Релации помеѓу клаÑите
4935ï® Ð¢Ñ€Ð¸ генерички релации:
4936is-part-of (UML aggregation)
4937has-knowledge-of
4938depends-upon
493959
4940Ðнализа и моделирање на барања
4941ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4942И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4943СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4944Структурна анализа
4945ï® Ð’Ð¾ некои Ñлучаи поÑоодветно е ÑиÑтемот да
4946Ñе моделира разгледувајќи ги податоците и
4947процеÑите кои иÑтите ги транÑформираат
4948како поÑебни ентитети:
4949 Податочни објекти кои Ñе транÑформираат додека
4950Ñе движат низ ÑиÑтемот
4951 Како апликацијата Ñе однеÑува како поÑледица на
4952надворешните дејÑтвија
4953 Збирка на транÑформации кои Ñе вршат на
4954податоците
495560
4956Ðнализа и моделирање на барања
4957ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4958И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4959СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4960Data model
4961ï® Software = data processing
4962ï® + event processing
4963ï® Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñкиот домен Ñодржи три различни погледи на
4964податоците и контролите:
49651. Information content - Ñодржина и релации на информациите
4966(data model) – (индивидуални податоци и контролни објекти
4967како колекција од информации кои ÑиÑтемот ги
4968транÑформира) paycheck, system status
49692. Information flow - проток на информации (начинот на кој Ñе
4970менуваат податоците и контролите кога минуваат низ
4971ÑиÑтемот)
49723. Information structure - Структура на информации – интерна
4973организација на разни податочни и контролни Ñтруктури (дали
4974да бидат организирани како матрица, дрво, дали
4975информациите да Ñе чуваат во единÑтвена Ñтруктура или во
4976неколку одвоени поврзани Ñтруктури, ...)
497761
4978Ðнализа и моделирање на барања
4979ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4980И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4981СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4982Моделирање
4983Модели на
4984ï® Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¾Ð½Ð¸Ñ€Ð°ÑšÐµ
4985ï® Ð¾Ð´Ð½ÐµÑување
4986Functional models
4987ï® Ð½Ð°Ñ˜Ð¼Ð°Ð»ÐºÑƒ 3 генерички функции: влез,
4988процеÑирање, излез
4989Behavioral models
4990ï® Ñтимул/одѕив карактериÑтики (ÑоÑтојба на
4991програмата – чекање, процеÑирање,
4992печатење, ..., која Ñе менува под дејÑтво на
4993наÑтан)
499462
4995Ðнализа и моделирање на барања
4996ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
4997И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
4998СОФТВЕРСКО ИÐЖЕÐЕРСТВО
4999КуÑа иÑторија
5000ï® ÐŸÐ¾Ñ‡ÐµÑ‚Ð¾Ñ†Ð¸: 70-ти и 80-ти години
5001ï® DeMarco (1979) – името: Ñтруктурна анализа
5002и оÑновни графички Ñимболи и модели
5003ï® Page-Jones, Gane&Sarson и др. - варијации
5004ï® ÐœÐµÑ‚Ð¾Ð´Ð¸ фокуÑирани кон информациони
5005ÑиÑтеми без Ñоодветна нотација за
5006моделирање на контрола и однеÑување
5007ï® Real-time екÑтензии (Ward & Mellor, Hartley &
5008Pirbhai)
5009Ðнализа и моделирање на барања
501063
5011ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5012И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5013СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5014Елементи на моделот за анализа
5015State-transition
5016diagram
5017Entity
5018relationship
5019diagram
5020Data flow
5021diagram
5022Data dictionary
5023Control specification
5024Process specification
5025(PSPEC)
5026Data
5027object description
5028Ðнализа и моделирање на барања
502964
5030ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5031И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5032СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5033Елементи на моделот за анализа
5034Data dictionary – опиÑи на Ñите објекти кои Ñе кориÑтат во моделот
5035Три различни дијаграми:
5036ï® Entity relationship diagram (ERD) – data modeling activity – ги
5037опишува релациите помеѓу објектите
5038 атрибутите на Ñекој објект Ñе опишани во DOD (data object
5039description)
5040ï® Data flow diagram (DFD) – Ñо две цели:
50411. како податоците Ñе транÑформираат при нивното движење низ
5042ÑиÑтемот
50432. да ги опише функциите кои ги транÑформираат податоците
5044 опиÑите на функциите од DFD Ñе презентираат во PSPEC (process
5045specification)
5046ï® State transition diagram (STD) – го опишува однеÑувањето на
5047ÑиÑтемот како поÑледица на надворешни наÑтани
5048 претÑтавува различни модалитети на однеÑување (ÑоÑтојби) и
5049начинот на кој Ñе преминува од една во друга ÑоÑтојба
5050 дополнителни детали за контролните аÑпекти Ñе Ñодржани во
5051CSPEC (control specification)
5052Ðнализа и моделирање на барања
505365
5054ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5055И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5056СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5057Релации
5058ï® ÐŸÐ¾Ð´Ð°Ñ‚Ð¾Ñ‡Ð½Ð¸Ñ‚Ðµ објекти може да бидат поврзани Ñо
5059други објекти на различни начини
5060ï® Ð ÐµÐ»Ð°Ñ†Ð¸Ñ˜Ð°Ñ‚Ð° го претÑтавува видот на поврзаноÑÑ‚
5061ï® Ð’Ñ€Ñката во објект/релација паровите е двонаÑочна
5062Book Bookstore
5063Book Bookstore Stocks
5064Displays
5065Orders
5066Sells
5067Returns
5068Ðнализа и моделирање на барања
506966
5070ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5071И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5072СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5073КардиналноÑÑ‚ на релација
5074ï® ÐžÐ±Ð¸Ñ‡Ð½Ð°Ñ‚Ð° релација (X е во релација Ñо Y)
5075чеÑто не обезбедува доволно информации за
5076поврзаноÑта на објектите од аÑпект на
5077ÑофтверÑкото инженерÑтво
5078ï® ÐšÐ°Ñ€Ð´Ð¸Ð½Ð°Ð»Ð½Ð¾ÑÑ‚ – го дефинира макÑималниот
5079број на објекти кои може да учеÑтвуваат во
5080релација. ИÑкажува колку појави на објектот
5081X Ñе поврзани Ñо колку појави на објектот Y.
5082(Колку = еден или повеќе). Може да биде:
5083 1:1 (еден Ñпрема еден)
5084 1:N (еден Ñпрема многу)
5085 M:N (многу Ñпрема многу)
5086Ðнализа и моделирање на барања
508767
5088ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5089И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5090СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5091МодалноÑÑ‚ на релација
5092ï® ÐœÐ¾Ð´Ð°Ð»Ð½Ð¾Ñта на дадена релација е 0
5093доколку нема екÑплицитна потреба
5094релацијата да поÑтои или иÑтата е
5095опциона
5096ï® ÐœÐ¾Ð´Ð°Ð»Ð½Ð¾Ñта на дадена релација е 1 ако
5097појавата на релацијата е задолжителна
5098Ðнализа и моделирање на барања
509968
5100ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5101И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5102СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5103Графичка претÑтава
5104ï® ÐžÐ±Ñ˜ÐµÐºÑ‚Ð¸Ñ‚Ðµ Ñе претÑтавуваат Ñо
5105правоаголници
5106Ðтрибутите во вид на табела за објектот
5107или во елипÑи под објектот
5108ï® Ð ÐµÐ»Ð°Ñ†Ð¸Ð¸Ñ‚Ðµ Ñе именувани линии кои ги
5109поврзуваат објектите (или Ñе
5110прокажуваат како ромб на линијата)
5111ï® ÐšÐ°Ñ€Ð´Ð¸Ð½Ð°Ð»Ð½Ð¾Ñта и модалноÑта Ñе
5112прикажуваат до излезот на линијата од
5113објектот
5114Ðнализа и моделирање на барања
511569
5116ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5117И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5118СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5119ERD дијаграми (алтернативни прикази)
5120object object relationship 1 2
5121(0:m)
5122(1:1)
5123object1 object2
5124relationship
5125attribute
5126Ðнализа и моделирање на барања
512770
5128ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5129И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5130СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5131Графичка претÑтава на
5132кардиналноÑта и модалноÑта
5133customer Repair action
5134Cardinality Cardinality
5135Modality Modality
5136Is provided with
5137Ðнализа и моделирање на барања
513871
5139ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5140И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5141СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5142Графичка претÑтава
5143ï® Ð¡Ð¸Ð¼Ð±Ð¾Ð»Ð¸Ñ‚Ðµ поблиÑку до објектите ја означуваат
5144кардиналноÑта, а оние подалеку - модалноÑта
5145manufacturer builds car
5146ID#
5147Data object table
5148Model Body type Engine Transmission • • •
5149Ðнализа и моделирање на барања
515072
5151ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5152И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5153СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5154ERD пример 1
5155ï® A customer indicates that there is a problem. If the
5156problem is diagnosed as relatively simple, a single repair
5157action occurs. However, if the problem is complex,
5158multiple repair actions may be required.
5159Customer Repair action is provided with
5160Cardinality:
5161Implies that a single
5162customer awaits repair action(s)
5163Cardinality:
5164Implies that there may be
5165many repair action(s)
5166Modality: Mandatory
5167Implies that in order to
5168have a repair action(s),
5169we must have a customer
5170Modality: Optional
5171Implies that there may
5172be a situation in which a
5173repair action is not necessary
5174Ðнализа и моделирање на барања
517573
5176ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5177И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5178СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5179ERD пример 2
5180Manufacturer Builds Car
5181Licenses Dealership Stocks
5182Contracts Transports
5183Shipper
5184Ðнализа и моделирање на барања
518574
5186ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5187И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5188СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5189ERD пример 3
5190(1:1) (1:m)
5191Customer places request
5192for service
5193generates (1:n)
5194(1:1)
5195work
5196order
5197work
5198tasks
5199materials
5200consists
5201of
5202lists
5203(1:1)
5204(1:w)
5205(1:i)
5206selected
5207from
5208standard
5209task table
5210(1:w)
5211(1:1)
5212(0:1)
5213Ðнализа и моделирање на барања
521475
5215ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5216И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5217СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5218Data object type hierarchies
5219ï® ÐžÑвен ERD може да Ñе приложи и DO
5220хиерархија
5221Car
5222European U.S. Asian
5223Swedish German Italian French/
5224English Japanese Korean
5225Ðнализа и моделирање на барања
522676
5227ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5228И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5229СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5230Associative data object
5231ï® ERD нотацијата нуди и механизам Ñо кој
5232може да Ñе прикаже и аÑоцијацијата
5233помеѓу објекти
5234Electronics
5235Car
5236Engine Chassis Interior Drive train
5237Ðнализа и моделирање на барања
523877
5239ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5240И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5241СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5242Прашања?
524378
5244Ðнализа и моделирање на барања
5245___________________________________________________________________________________________________________________
5246Дизајнирање:
5247концепти и принципи
5248Дизајн
5249ï® Ð’Ð¾Ð´ÐµÐ½ од креативноÑÑ‚ – меÑтото каде што Ñе
5250Ñретнуваат кориÑничките барања и техничките
5251ограничувања во формулација на продукт или ÑиÑтем
5252ï® Ð ÐµÐ¿Ñ€ÐµÐ·ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ˜Ð° на моделот на Ñофтвер но Ñега од
5253аÑпект на архитектура на Ñофтверот, податочни
5254Ñтруктури, интерфејÑи и компоненти
5255ï® Ð”Ð¸Ð·Ð°Ñ˜Ð½Ð¾Ñ‚ Ñе проверува за грешки, неконзиÑтентноÑти,
5256пропуÑти, Ñе проценува дали можеби поÑтојат
5257подобри алтернативи, и дали може да биде
5258имплементиран Ñо зададените ограничувања,
5259реÑурÑи и временÑка рамка
52602
5261Дизајнирање
5262ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5263И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5264СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5265Добар дизајн
5266ï® â€žÐ”Ð¾Ð±Ñ€Ð¾ дизајнираните градби треба да
5267Ñе одликуваат Ñо цврÑтина, вредноÑÑ‚ и
5268задоволÑтво“ (Vitruvius)
5269ï® Ñ†Ð²Ñ€Ñтина – да нема грешки кои би го
5270Ñпречиле во неговата функција
5271ï® Ð²Ñ€ÐµÐ´Ð½Ð¾ÑÑ‚ – Ñоодветен на целите на кои
5272е наменет
5273ï® Ð·Ð°Ð´Ð¾Ð²Ð¾Ð»Ñтво – неговото кориÑтење
5274треба да е позитивно иÑкуÑтво
52753
5276Дизајнирање
5277ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5278И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5279СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5280Дизајн
5281ï® Ð”Ð¸Ð·Ð°Ñ˜Ð½Ð¾Ñ‚ претÑтавува ÑмиÑлена инженериÑка
5282репрезентација на нешто што треба да биде
5283изградено.
5284ï® Ð’Ð¾ Ñекој Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð° дизајнирање поÑтојат две главни
5285фази диверзификација и конвергенција
5286 диверзификација – аквизиција на репертоар од
5287алтернативи и градбениот материјал на дизајнот
5288(компоненти, решенија, знаење од каталози, книги,
5289иÑкуÑтво, хевриÑтика, ...)
5290 конвергенција – избор и комбинирање на Ñоодветни
5291елементи од репертоарот Ñо цел да Ñе задоволат
5292целите на дизајнот Ñпоред барањата, критериуми кои
5293овозможуваат проценка на квалитетот
5294ï® Ð•Ð»Ð¸Ð¼Ð¸Ð½Ð°Ñ†Ð¸Ñ˜Ð° на Ñите оÑвен една конфигурација на
5295компоненти Ñпоред која ќе биде изработен
5296финалниот продукт во итеративен приÑтап кој води
5297кон финалниот дизајн
5298Дизајнирање
52994
5300ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5301И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5302СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5303Дизајнирање
5304ï® Ð”Ð¸Ð·Ð°Ñ˜Ð½Ð¾Ñ‚ треба да може да Ñе Ñледи до
5305барањата на клиентот и иÑтовремено да
5306може да му Ñе процени квалитетот Ñпоред
5307предефинирани критериуми за „добар“
5308дизајн.
5309ï® Ð’Ð¾ контекÑÑ‚ на ÑофтверÑкото инженерÑтво
5310дизајнирањето Ñе фокуÑира на:
5311 податоци (шаблони, ...)
5312 архитектура (шаблони, ...)
5313 интерфејÑи (ергономија)
5314 компоненти (програмирање)
5315Дизајнирање
53165
5317ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5318И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5319СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5320ВажноÑÑ‚ на дизајнот
5321ï® Ð—Ð¾ÑˆÑ‚Ð¾ е важен дизајнот?
5322ï® ÐŸÐ¾Ð°Ñ“Ð° од моделот на барања
5323ï® Ðегов „производ“ е Ñпецификација за дизајнот кој
5324опфаќа дизајнерÑки модели за Ð¾Ð¿Ð¸Ñ Ð½Ð° податоците,
5325архитектурата, интерфејÑите и компонентите.
5326ï® Ð’Ð¾ Ñекоја фаза продуктите на дизајнерÑкиот процеÑ
5327Ñе ревидираат за јаÑноÑÑ‚, коректноÑÑ‚, комплетноÑÑ‚ и
5328конзиÑтентноÑÑ‚ во Ð¾Ð´Ð½Ð¾Ñ Ð½Ð° барањата и меѓуÑебно.
5329ï® Ð¡Ð¾Ñ„Ñ‚Ð²ÐµÑ€Ñкиот дизајн ја нема „длабочината“,
5330флекÑибилноÑта и квантитавниот приÑтап
5331карактериÑтичен за други инженериÑки диÑциплини.
5332Дизајнирање
53336
5334ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5335И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5336СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5337СофтверÑки дизајн
5338ï® Ð¡Ð¾Ñ„Ñ‚Ð²ÐµÑ€Ñкиот дизајн е првата од трите
5339технички активноÑти (дизајн, кодирање,
5340теÑтирање) кои Ñе потребни за да Ñе направи
5341и теÑтира Ñофтверот.
5342ï® ÐœÐ¾Ð´ÐµÐ»Ð¸Ñ‚Ðµ за анализа ги обезбедуваат
5343неопходните информации потребни за
5344градење на четирите дизајн модели:
5345 податочен дизајн (data design)
5346 архитектонÑки дизајн (architectural design)
5347 дизајн на интерфејÑи (interface design)
5348 дизајн на компоненти (component-level design)
5349Дизајнирање
53507
5351ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5352И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5353СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5354Преведување на моделот за анализа
5355во ÑофтверÑки дизајн
5356ion pt i cr
5357es dt c
5358je bo
5359ta
5360aD
5361Control specification (CSPEC)
5362Process specificatio
5363n (PS
5364PEC
5365relationship
5366diagram
5367Data flow
5368diagram
5369Data
5370Dictionary
5371Interface
5372design
5373Componentlevel
5374design
5375Architectural
5376design
5377Data
5378design
5379The analysis model The design model
5380State-transition
5381diagram
5382Дизајнирање
53838
5384ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5385И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5386СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5387Преведување на моделот за
5388анализа во модел за дизајн
53899
5390Дизајнирање
5391Data/Class Design
5392Architectural Design
5393Interface Design
5394Use cases - text
5395Use-case diagrams
5396Activity diagrams
5397Swimlane diagrams
5398Data flow diagrams
5399Control-flow diagrams
5400Processing narratives
5401State diagrams
5402Sequence
5403diagrams
5404Class diagrams
5405Analysis packages
5406CRC models
5407Collaboration diagrams
5408Flow-oriented
5409elements
5410Behavioral
5411elements
5412Class-based
5413elements
5414Scenerio-based
5415elements
5416Component-Level
5417Design
5418Analysis Model
5419ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5420И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5421СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5422Дизајн на податоци
5423ï® Ð”Ð¸Ð·Ð°Ñ˜Ð½Ð¾Ñ‚ на податоци (data design - DD)
5424ги транÑформира информациите од
5425податочното моделирање од процеÑот
5426на анализа во податочни Ñтруктури
5427потребни за имплементација на
5428Ñофтверот кориÑтејќи ги ERD и Data
5429Dictionary.
5430ï® Ð”ÐµÐ» од DD Ñе појавува и при дизајнот на
5431ÑофтверÑката архитектура и дизајнот на
5432компонентите.
5433Дизајнирање
543410
5435ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5436И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5437СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5438Дизајн на архитектура
5439ï® Ðрхитектурата ги дефинира релациите
5440помеѓу главните Ñтруктурни елементи на
5441Ñофтверот и „шаблоните за дизајн“ кои може
5442да Ñе употребат за да Ñе задоволат
5443поÑтавените барања како и ограничувањата
5444кои уÑловуваат кои шаблони за дизајн може
5445да Ñе употребат
5446ï® Ð¡Ð¾Ñ„Ñ‚Ð²ÐµÑ€Ñката архитектурата ја дефинира
5447рамката на ÑиÑтемот која произлегува од
5448Ñпецификацијата на ÑиÑтемот, моделот за
5449анализа и интеракцијата на подÑиÑтемите
5450дефинирани во процеÑот на анализа
5451Дизајнирање
545211
5453ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5454И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5455СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5456Дизајн на интерфејÑи
5457ï® Ð˜Ð½Ñ‚ÐµÑ€Ñ„ÐµÑ˜Ñите го дефинираат начинот
5458на кои ÑофтверÑките компоненти
5459комуницираат меѓу Ñебе, Ñо ÑиÑтемите
5460Ñо кои комуницира и Ñо луѓето кои го
5461кориÑтат.
5462ï® DFD и CFD ги Ñодржат најголем дел од
5463информациите потребни за дизајн на
5464интерфејÑите
5465Дизајнирање
546612
5467ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5468И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5469СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5470Дизајн на компоненти
5471ï® Ð”Ð¸Ð·Ð°Ñ˜Ð½Ð¾Ñ‚ на компоненти ги
5472транÑформира Ñтруктурните елементи
5473на ÑофтверÑката архитектура во
5474процедурален Ð¾Ð¿Ð¸Ñ Ð½Ð° ÑофтверÑки
5475компоненти.
5476ï® Ð”ÐµÑ‚Ð°Ð»Ð½Ð¸Ñ‚Ðµ информации добиени од
5477PSPEC, CSPEC и STD Ñе кориÑтат како
5478оÑнова при дизајнот на компонентите
5479Дизајнирање
548013
5481ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5482И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5483СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5484Зошто е важен дизајнот?
5485ï® ÐšÐ²Ð°Ð»Ð¸Ñ‚ÐµÑ‚Ð¾Ñ‚ на крајниот продукт (Ñофтверот)
5486многу завиÑи од дизајнот.
5487ï® ÐŸÑ€Ð¸ дизајнирањето Ñе ноÑат одлуки кои
5488значително влијаат на уÑпешноÑта на
5489конÑтрукцијата на Ñофтверот како и на
5490неговото понатамошно (леÑно) одржување
5491ï® Ð”Ð¸Ð·Ð°Ñ˜Ð½Ð¾Ñ‚ овозможува репрезентација на
5492Ñофтверот во која може да Ñе процени
5493неговиот квалитет уште пред да биде
5494направен!
5495Дизајнирање
549614
5497ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5498И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5499СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5500Дизајнирање во нивоа
5501ï® Ð”Ð¸Ð·Ð°Ñ˜Ð½Ð¾Ñ‚ претÑтавува итеративен Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð²Ð¾ кој
5502барањата Ñе преведуваат во план за конÑтрукција
5503(реализација) на Ñофтверот.
5504ï® ÐŸÐ»Ð°Ð½Ð¾Ñ‚ претÑтавува холиÑтички поглед на Ñофтверот
5505(ÑиÑтемот) - дизајнот е претÑтавен на виÑоко ниво на
5506апÑтракција на кое леÑно може да Ñе Ñледи
5507Ñпецифичната цел на ÑиÑтемот како и подеталните
5508податочни, функционални и барања на однеÑување.
5509ï® Ðиз итерациите дизајнот Ñе детализира кон Ñè
5510пониÑки нивоа на апÑтракција од кои Ñè уште може да
5511Ñе Ñледи патеката до поедините барања (иако оваа
5512врÑка Ñтанува поÑуптилна)
5513Дизајнирање
551415
5515ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5516И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5517СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5518Контрола на квалитет
5519ï® Ð’Ð¾ тек на процеÑот на дизајнирање
5520квалитетот на дизајнот кој Ñе развива
5521континуирано Ñе контролира (технички
5522прегледи, проверки на дизајнот, ...) при што
5523Ñледните три карактериÑтики Ñе главните
5524водилки кон добар дизајн:
5525 дизајнот мора да ги задоволи Ñите екÑплицитни
5526(Ñодржани во моделот) и имплицитни (од
5527клиентот) барања
5528 дизајнот мора да биде разбирлив за оние кои (ќе)
5529го генерираат кодот, теÑтираат и одржуваат кодот
5530 дизајнот треба да пружи комплетна Ñлика на
5531Ñофтверот од аÑпект на податочниот,
5532функционалниот и доменот на однеÑување од
5533имплементациÑка перÑпектива
5534Дизајнирање
553516
5536ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5537И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5538СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5539Проценка на квалитетот на дизајнот
5540ï® Ð—Ð° уÑпешна проценка на квалитетот на
5541дизајнот неопходно е да Ñе воÑпоÑтават
5542одредени технички критериуми за добар
5543дизајн.
5544ï® Ð”Ð¸Ð·Ð°Ñ˜Ð½Ð¾Ñ‚ треба да:
55451. има добра архитектонÑка Ñтруктура
55461) креиран Ñо употреба на препознатливи шаблони за
5547дизајн
55482) ÑоÑтавен од компоненти кои имаат добри дизајнерÑки
5549карактериÑтики
55503) може да биде имплементиран во еволутивен приÑтап
55512. да е модуларен (логично поделен на елементи
5552кои реализираат Ñпецифични функции и
5553подфункции)
5554Дизајнирање
555517
5556ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5557И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5558СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5559Проценка на квалитетот на дизајнот
55603. да Ñодржи јаÑна репрезентација на податоците,
5561архитектурата, интерфејÑите и компонентите
5562(модулите)
55634. да води кон податочни Ñтруктури Ñоодветни на
5564објектите кои треба да Ñе имплементираат,
5565изведени од познати податочни шаблони
55665. да води кон компоненти кои Ñе карактеризираат
5567Ñо незавиÑни функционални карактериÑтики
55686. да води кон интерфејÑи кои ја намалуваат
5569комплекÑноÑта на поврзаноÑта помеѓу модулите
5570и кон надворешниот Ñвет
55717. да биде изведен низ итеративен Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð²Ð¾Ð´ÐµÐ½
5572од информациите добиени од процеÑот на
5573анализа на барања
5574Дизајнирање
557518
5576ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5577И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5578СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5579Еволуција на ÑофтверÑки дизајн
5580ï® ÐšÑ€Ð¸Ñ‚ÐµÑ€Ð¸ÑƒÐ¼Ð¸ за развој на модуларни
5581програми (Ñтруктурирано
5582програмирање)
5583ï® ÐŸÑ€ÐµÐ²ÐµÐ´ÑƒÐ²Ð°ÑšÐµ на DFD и податочни
5584Ñтруктури во дизајн
5585ï® ÐžÐ±Ñ˜ÐµÐºÑ‚Ð½Ð¾ ориентиран приÑтап
5586ï® Ð”ÐµÐ½ÐµÑ Ð°ÐºÑ†ÐµÐ½Ñ‚Ð¾Ñ‚ Ñе Ñтава на
5587ÑофтверÑките архитектури
5588Дизајнирање
558919
5590ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5591И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5592СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5593Ðтрибути на квалитет
5594ï® Functionality – функционалноÑÑ‚
5595ï® Usability – употребливоÑÑ‚
5596ï® Reliability – ÑигурноÑÑ‚
5597ï® Performance – перформанÑи
5598ï® Supportability - поддршка
5599extensibility+maintainability
5600(проширување/одржување)
560120
5602Дизајнирање
5603ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5604И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5605СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5606Методи за дизајн на Ñофтвер
5607ï® ÐŸÐ¾Ñтојат различни методи за дизајн на
5608Ñофтвер
5609ï® Ð—Ð°ÐµÐ´Ð½Ð¸Ñ‡ÐºÐ¸ карактериÑтики им Ñе:
56101. механизам за преведување на моделот
5611за анализа во репрезентација на дизајнот
56122. нотација за претÑтава на функционалните
5613компоненти и нивните интерфејÑи
56143. хевриÑтика за рафинирање и поделба
56154. Ñугерирани начини за проверка на
5616квалитет
5617Дизајнирање
561821
5619ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5620И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5621СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5622Принципи за дизајн (1)
5623ï® Ð”Ð¸Ð·Ð°Ñ˜Ð½Ð¾Ñ‚ на Ñофтвер е и Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¸
5624модел
5625ï‚¨Ð¿Ñ€Ð¾Ñ†ÐµÑ â€“ Ñеквенца на чекори кои му
5626овозможуваат на дизајнерот да ги опише
5627Ñите аÑпекти на Ñофтверот кој треба да Ñе
5628направи (креативноÑÑ‚, иÑкуÑтво, шаблони,
5629водење од квалитет)
5630модел – еквивалент на архитектонÑкиот
5631план за градба – го изразува глобалниот
5632поглед на целиот Ñофтвер
5633Дизајнирање
563422
5635ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5636И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5637СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5638Принципи за дизајн (2)
5639ï® ÐžÑновните принципи за дизајн треба да
5640обезбедат навигација низ процеÑот на дизајн:
5641 Да не Ñе ограничиме на “tunnel vision†- да Ñе
5642разгледаат и алтернативни приÑтапи
5643 Да може да Ñе траÑира до моделот за анализа
5644 Да не Ñе измиÑлува „топла вода“
5645 Колку што е можно да ја Ñледи Ñтруктурата на
5646проблемот во реалниот Ñвет
5647 УниформноÑÑ‚ (конзиÑтентен Ñтил, формат, ознаки)
5648и интеграција (водење грижа за дефинирање на
5649интерфејÑите помеѓу компонентите)
5650Дизајнирање
565123
5652ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5653И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5654СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5655Принципи за дизајн (3)
5656Структурирана организација кој
5657овозможува промени
5658Организација која ќе обезбеди „нежно“
5659откажување во непредвидени Ñитуации
5660Дизајнот не е кодирање, кодирањето не е
5661дизајн
5662Квалитетот на дизајнот треба
5663континуирано да Ñе проценува
5664Преглед (ревизија) на дизајнот Ñо цел да
5665Ñе минимизираат концептуалните грешки
5666Дизајнирање
566724
5668ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5669И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5670СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5671ЕкÑтерни и интерни фактори за
5672квалитет
5673ï® Ð•ÐºÑтерни фактори за квалитет –
5674карактериÑтики на Ñофтверот кои можат
5675непоÑредно да бидат забележани од
5676кориÑниците (брзина, ÑигурноÑÑ‚,
5677точноÑÑ‚, кориÑноÑÑ‚, леÑна употреба, ...)
5678ï® Ð˜Ð½Ñ‚ÐµÑ€Ð½Ð¸ фактори за квалитет – виÑок
5679квалитет на дизајн од техничка
5680перÑпектива
5681Дизајнирање
568225
5683ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5684И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5685СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5686Концепти на дизајн (1)
5687ï® ÐžÑновните концепти за дизајнот му помагаат
5688на ÑофтверÑкиот инженер да одговори на
5689Ñледниве прашања:
5690 Кои критериуми да Ñе употребат за да Ñе изврши
5691поделба на Ñофтверот на индивидуални
5692компоненти?
5693 Ðа кој начин функционалните и податочни детали
5694за Ñофтверот да Ñе одвојат од концептуалната
5695репрезентација на Ñофтверот?
5696 Кој критериум го дефинира техничкиот квалитет
5697на ÑофтверÑкиот дизајн?
5698Дизајнирање
569926
5700ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5701И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5702СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5703Концепти на дизајн (2)
5704ï® â€œThe beginning of wisdom [for a software
5705engineer] is to recognize the difference
5706between getting a program to work, and
5707getting it right“ (M. A. Jackson)
5708ï® Ð¤ÑƒÐ½Ð´Ð°Ð¼ÐµÐ½Ñ‚Ð°Ð»Ð½Ð¸Ñ‚Ðµ концепти на
5709ÑофтверÑкиот дизајн ја обезбедуваат
5710потребната рамка за ова да Ñе направи
5711на „виÑтинÑкиот начин“.
5712Дизајнирање
571327
5714ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5715И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5716СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5717ОÑновни концепти за дизајн
5718ï® ÐпÑтракција
5719ï® Ð Ð°Ñ„Ð¸Ð½Ð¸Ñ€Ð°ÑšÐµ
5720ï® ÐœÐ¾Ð´ÑƒÐ»Ð°Ñ€Ð½Ð¾ÑÑ‚
5721ï® Ð¡Ð¾Ñ„Ñ‚Ð²ÐµÑ€Ñки архитектури
5722ï® ÐšÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ð½Ð° хиерархија
5723ï® Ð¡Ñ‚Ñ€ÑƒÐºÑ‚ÑƒÑ€Ð½Ð° поделба
5724ï® ÐŸÐ¾Ð´Ð°Ñ‚Ð¾Ñ‡Ð½Ð¸ Ñтруктури
5725ï® Ð¡Ð¾Ñ„Ñ‚Ð²ÐµÑ€Ñки процедури
5726ï® Ð¡Ð¾ÐºÑ€Ð¸Ð²Ð°ÑšÐµ на информациите
5727Дизајнирање
572828
5729ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5730И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5731СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5732ÐпÑтракција
5733ï® ÐпÑтракција му овозможува на дизајнерот
5734да Ñе фокуÑира на решавање на проблемот
5735без да Ñе оÑврнува на ирелевантните
5736детали (на пониÑките нивоа)
5737ï® Ð Ð°Ð·Ð»Ð¸Ñ‡Ð½Ð¸ нивоа на апÑтракција – на повиÑоките
5738нивоа решението Ñе опишува Ñо изрази Ñоодветни на
5739доменот на проблемот, најниÑкото ниво е изворниот
5740код. ПоÑтепен премин од проблемÑки ориентирана
5741кон имплементациÑки ориентирана терминологија
5742ï® ÐŸÑ€Ð¾Ñ†ÐµÐ´ÑƒÑ€Ð°Ð»Ð½Ð° апÑтракција – именувана Ñеквенца на
5743инÑтрукции кои имаат точно одредена функција
5744ï® ÐŸÐ¾Ð´Ð°Ñ‚Ð¾Ñ‡Ð½Ð° апÑтракција – именувана колекција на
5745податочни објекти
5746ï® ÐšÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ð½Ð° апÑтракција – Ñе однеÑува на контролата
5747на програмата без Ñпецифицирање на интерните
5748детали
5749Дизајнирање
575029
5751ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5752И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5753СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5754Рафинирање (прочиÑтување)
5755ï® ÐŸÐ¾Ñтепеното прочиÑтување претÑтавува
5756top-down Ñтратегија за дизајн Ñпоред
5757која програмата Ñе развива преку
5758ÑукцеÑивно рафинирање на
5759процедуралните детали (N. Wirth)
5760ï® Ð Ð°Ñ„Ð¸Ð½Ð¸Ñ€Ð°ÑšÐµÑ‚Ð¾ е Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð°
5761елаборација кој му помага на
5762дизајнерот да ги открива деталите на
5763пониÑките нивоа во текот на
5764напредувањето на дизајнот
5765Дизајнирање
576630
5767ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5768И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5769СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5770ÐпÑтракција ↔ Рафинирање
5771ï® ÐпÑтракцијата и рафинирањето Ñе
5772комплементарни концепти
5773ÐпÑтракцијата му овозможува на
5774дизајнерот Ñпецифицирање на
5775процедурите и податоците игнорирајќи ги
5776имплементациÑките детали
5777Рафинирањето му помага на дизајнерот да
5778ги открие деталите како што
5779дизајнирањето напредува
5780Дизајнирање
578131
5782ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5783И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5784СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5785Separation of concerns
5786ï® C(x) - комплекÑноÑÑ‚ на проблемот x
5787ï® E(x) – напор (време) потребно да Ñе реши
5788проблемот x
5789ï® C(p1) > C(p2) ⇒ E(p1) > E(p2)
5790ï® C(p1 + p2) > C(p1) + C(p2)
5791ï® E(p1 + p2) > E(p1) + E(p2)
5792ï® Ð·Ð°ÐºÐ»ÑƒÑ‡Ð¾Ðº: раздели и владеј – главен аргумент
5793за модуларноÑÑ‚
5794ï® Ñо поделбата на подпроблеми не може да Ñе
5795оди во беÑконечноÑÑ‚!
5796Дизајнирање
579732
5798ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5799И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5800СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5801МодуларноÑÑ‚ (1)
5802ï® ÐајчеÑта манифеÑтација на Separation of
5803concerns принципот
5804ï® ÐŸÐ¾Ð´ÐµÐ»Ð±Ð° на Ñофтверот на индивидуални
5805именувани и адреÑабилни компоненти
5806наречени модули кои Ñе интегрираат Ñо цел
5807да Ñе задоволат проблемÑките барања.
5808ï® ÐœÐ¾Ð´ÑƒÐ»Ð°Ñ€Ð½Ð¾Ñта е оÑновниот атрибут на
5809Ñофтверот кој овозможува одржување и
5810интелектуално менаџирање на Ñложени
5811ÑиÑтеми
5812ï® ÐœÐ¾Ð½Ð¾Ð»Ð¸Ñ‚ÐµÐ½ Ñофтвер
5813Дизајнирање
581433
5815ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5816И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5817СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5818МодуларноÑÑ‚ (2)
5819M
5820Region of minimum
5821cost
5822Number of modules
5823Cost to integrate
5824Total software cost
5825Cost / module
5826Cost or effort
5827Дизајнирање
582834
5829ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5830И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5831СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5832МодуларноÑÑ‚ (4)
5833ï® ÐšÑ€Ð¸Ñ‚ÐµÑ€Ð¸ÑƒÐ¼Ð¸ за евалуација на метод за
5834дизајн од аÑпект на модуларноÑта:
5835ï® Modular decomposability.
5836ï® Modular composability.
5837ï® Modular understandability.
5838ï® Modular continuity. (effects of changes)
5839ï® Modular protection. (effects of errors)
5840Information Hiding
5841Functional Independence
5842Дизајнирање
584335
5844ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5845И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5846СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5847СофтверÑка архитектура (1)
5848ï® Ð¡Ð¾Ñ„Ñ‚Ð²ÐµÑ€Ñката архитектура Ñе однеÑува
5849на глобалната Ñтруктура на Ñофтверот
5850и начинот на кој оваа Ñтруктура го
5851обезбедува концептуалниот интегритет
5852на ÑиÑтемот.
5853ï® Ð’Ð¾ поедноÑтавена форма претÑтавува
5854(хиерархиÑка) Ñтруктура на програмÑки
5855компоненти (модули), начинот на кој
5856иÑтите комуницираат и Ñтруктурата на
5857податоците кои ги кориÑтат
5858Дизајнирање
585936
5860ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5861И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5862СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5863СофтверÑка архитектура (2)
5864ï® Ð•Ð´Ð½Ð° од целите е да ја даде појдовната
5865архитектонÑка шема на ÑиÑтемот која ќе
5866Ñлужи како рамка за детални дизајнерÑки
5867активноÑти
5868ОÑобини кои Ñе дел од архитектонÑкиот дизајн:
5869ï® Ð¡Ñ‚Ñ€ÑƒÐºÑ‚ÑƒÑ€Ð½Ð¸ оÑобини (модули, објекти,
5870филтри)
5871ï® Ð•ÐºÑтра-функционални оÑобини
5872(перформанÑи, капацитет, ÑигурноÑÑ‚,
5873адаптибилноÑÑ‚, ...)
5874ï® Ð¤Ð°Ð¼Ð¸Ð»Ð¸Ñ˜Ð°Ñ€Ð½Ð¾ÑÑ‚ Ñо Ñлични ÑиÑтеми (design
5875patterns, reusability)
5876Дизајнирање
587737
5878ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5879И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5880СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5881ÐрхитектонÑки дизајн
5882ï® Ð—Ð° дадени Ñпецификации за бараните оÑобини на
5883ÑиÑтемот архитектонÑкиот дизајн може да биде
5884претÑтавен Ñо еден или повеќе модели како:
5885 Структурни модели (колекција на програмÑки компоненти)
5886 Рамковни модели (апÑтракција Ñо цел идентификација на
5887повторливи шаблони за архитектонÑки дизајн)
5888 Динамички модели (однеÑување на ÑиÑтемот и како тоа
5889влијае на промена на Ñтруктурата на ÑиÑтемот)
5890 ПроцеÑни модели (дизајн на Ð±Ð¸Ð·Ð½Ð¸Ñ Ð¸Ð»Ð¸ технички процеÑ)
5891 Функционални модели (функционална хиерархија на
5892ÑиÑтемот)
5893ï® ÐˆÐ°Ð·Ð¸Ñ†Ð¸ за Ð¾Ð¿Ð¸Ñ Ð½Ð° архитектури - architectural
5894description languages (ADLs)
5895Дизајнирање
589638
5897ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5898И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5899СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5900Design model
5901ï® Data Design Elements
5902ï® Architectural Design Elements
5903ï® Interface Design Elements
5904ï® Component-Level Design Elements
5905ï® Deployment-Level Design Elements
590641
5907Дизајнирање
5908ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5909И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5910СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5911Software design specification
5912ï® Ð”ÐµÑ„Ð¸Ð½Ð¸Ñ€Ð°ÑšÐµ на делокругот на дизајн процеÑот
5913ï® Ð¡Ð¿ÐµÑ†Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ˜Ð° на податочниот дизајн (DB, file structures, internal data
5914structures and cross reference)
5915ï® ÐŸÑ€Ð¸ÐºÐ°Ð· на начинот на кој дизајнот на програмÑката архитектура е
5916изведен од моделот за анализа + дополнителни Ñтруктурни шеми
5917ï® Ð”Ð¸Ð·Ð°Ñ˜Ð½ на екÑтерни и интерни програмÑки интерфејÑи + GUI
5918ï® Ðаративен Ð¾Ð¿Ð¸Ñ Ð½Ð° индивидуалните програмÑки компоненти
5919ï® Requirements cross reference (матрица)
5920 да Ñе обезбеди дека Ñите барања Ñе задоволени Ñо ÑофтверÑкиот дизајн
5921 да Ñе означи кои компоненти Ñе критични за имплементацијата на
5922Ñпецифичните барања
5923ï® Ð”Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ˜Ð° за теÑтирање (на индивидуалните модули и
5924интеграцијата) или во одвоена Ñпецификација на процедури за
5925теÑтирање
5926ï® Ð”Ð¸Ð·Ð°Ñ˜Ð½ÐµÑ€Ñки ограничувања (меморија, Ñпецијален интерфејÑ, ...)
5927ï® Ð”Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»Ð½Ð¸ информации (Ð¾Ð¿Ð¸Ñ Ð½Ð° алгоритми, алтернативни
5928процедури, други документи, ...)
5929Дизајнирање
593042
5931ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5932И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5933СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5934Прашања?
593543
5936Дизајнирање
5937____________________________________________________________________________________________________________________________
5938СофтверÑки
5939архитектури
5940Дизајн
5941ï® Ð¦ÐµÐ»Ñ‚Ð° на дизајнирањето е да изгради
5942кохерентна, добро иÑпланирана
5943репрезентација на програмите која Ñе
5944концентрира на релациите на нејзините
5945делови
5946ï® Ð”Ð¸Ð·Ð°Ñ˜Ð½Ð¸Ñ€Ð°ÑšÐµÑ‚Ð¾ е водено од
5947информациите
5948ï® Ð¡Ð¸ÑтематÑки приÑтап кон изведувањето
5949на архитектонÑки дизајн
5950СофтверÑки архитектури
59512
5952ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5953И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5954СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5955ÐрхитектонÑки дизајн
5956ï® ÐрхитектонÑкиот дизајн ја репрезентира
5957Ñтруктурата на податочните и
5958програмÑки компоненти потребни за
5959изградба на компјутерÑкиот ÑиÑтем
5960ï® Ð“Ð¾ разгледува архитектонÑкиот Ñтил,
5961Ñтруктурата и карактериÑтиките на
5962компонентите кои ќе го Ñочинуваат
5963ÑиÑтемот, и релациите помеѓу
5964архитектонÑките компоненти на
5965ÑиÑтемот
59663
5967СофтверÑки архитектури
5968ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5969И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5970СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5971Ðрхитектура
5972ï® data architecture - database or data warehouse
5973designer
5974 архитект на бази на податоци
5975ï® system architecture - system architect
5976 ÑиÑтемÑки архитект – избира архитектонÑки Ñтил
5977Ñпоред потребите Ñобрани во фазата на
5978requirements engineering
5979ï® Ð¾Ð±ÐµÐ·Ð±ÐµÐ´ÑƒÐ²Ð° целоÑна Ñлика на интерната
5980Ñтруктура на ÑиÑтемот пред да Ñе поÑветиме
5981на детелите
59824
5983СофтверÑки архитектури
5984ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
5985И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
5986СОФТВЕРСКО ИÐЖЕÐЕРСТВО
5987Што е архитектура?
5988ï® Ð¤Ð¾Ñ€Ð¼Ð° (Ñтил) на физичка Ñтруктура
5989ï® Ðачинот на кој компонентите Ñе интегрирани
5990во една кохерентна функционална целина
5991ï® Ðачинот на кој Ñтруктурата Ñе вклопува во
5992околната
5993ï® Ðачинот на кој ја задоволува Ñвојата оÑновна
5994цел, функционалноÑÑ‚ при задоволувањето на
5995потребите на човекот
5996ï® Ð•ÑтетÑкото чувÑтво за Ñтруктурата – визуелно
5997влијание (детали – оÑветлување, мебел, ...)
5998ï® ÐšÐ¾Ð½ÐµÑ‡Ð½Ð¾, тоа е еден вид уметноÑÑ‚
5999СофтверÑки архитектури
60005
6001ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6002И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6003СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6004СофтверÑка архитектура
6005ï® Ð¡Ð¾Ñ„Ñ‚Ð²ÐµÑ€Ñката архитектура на програма (или
6006компјутерÑки ÑиÑтем) ја претÑтавува
6007Ñтруктурата на ÑиÑтемот кој е ÑоÑтавен од
6008ÑофтверÑки компоненти, екÑтерно видливите
6009карактериÑтики на овие компоненти и
6010нивните меѓуÑебни релации.
6011ï® Ð¡Ð¾Ñ„Ñ‚Ð²ÐµÑ€Ñката архитектура
6012 е Ð¾Ð¿Ð¸Ñ Ð½Ð° Ñтруктурата на ÑиÑтемот
6013 е првиот артефакт кој може да Ñе анализира за да
6014Ñе утврди квалитетот
6015 Ñлужи како појдовен план (шема)
6016 е Ð¾Ð¿Ð¸Ñ Ð½Ð° релациите помеѓу компонентите и
6017нивната поврзаноÑÑ‚
6018СофтверÑки архитектури
60196
6020ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6021И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6022СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6023Што е ÑофтверÑката архитектура?
6024ï® Ð¡Ð¾Ñ„Ñ‚Ð²ÐµÑ€Ñката архитектура не е „оперативен“
6025ÑиÑтем. Таа е репрезентација на ÑиÑтемот која на
6026ÑофтверÑкиот инженер му овозможува:
60271. Да врши анализа дали дизајнот ги задоволува
6028поÑтавените барања
60292. Да разгледа алтернативни архитектури во фаза
6030кога правењето измени во дизајнот е Ñè уште
6031релативно леÑно
60323. Да го намали ризикот придружен Ñо изградбата на
6033Ñофтверот
6034ÐрхитектонÑкиот дизајн Ñе фокуÑира на
6035репрезентацијата на Ñтруктурата на ÑофтверÑките
6036компоненти нивните оÑобини и интеракции.
6037СофтверÑки архитектури
60387
6039ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6040И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6041СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6042СофтверÑки компоненти
6043ï® Ð¡Ð¾Ñ„Ñ‚Ð²ÐµÑ€Ñките компоненти Ñе оÑновните градбени
6044блокови на архитектурата
6045ï® ÐœÐ¾Ð¶Ð°Ñ‚ да бидат едноÑтавни програмÑки модули, ОО
6046клаÑи, БП, middleware, ...
6047ï® ÐžÑобини на ÑофтверÑките компоненти ги
6048претÑтавуваат нивните карактериÑтиките неопходни
6049за да Ñе разбере начинот на кој тие „Ñе поврзуваат“
6050(interact) Ñо оÑтанатите компоненти
6051ï® Ðа ниво на СРнивните интерни оÑобини (алгоритам)
6052не Ñе Ñпецифицирани – не Ñе разгледуваат
6053ï® Ð¡Ð¿Ð¾Ñ€ÐµÐ´ Kazmann дизајнот е инÑтанца на архитектура
6054(како што објект е инÑтанца на клаÑа во ООП)
6055СофтверÑки архитектури
60568
6057ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6058И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6059СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6060Зошто е важна архитектурата?
6061ï® ÐžÐ²Ð¾Ð·Ð¼Ð¾Ð¶ÑƒÐ²Ð° комуникација помеѓу инволвираните во
6062изработката на ÑиÑтемот
6063ï® Ð“Ð¸ иÑтакнува раните одлуки за дизајн кои ќе имаат
6064големо влијание на целата работа на ÑофтверÑкиот
6065инженер која Ñледи како и на конечната уÑпешноÑÑ‚ на
6066ÑиÑтемот
6067ï® ÐžÐ²Ð¾Ð·Ð¼Ð¾Ð¶ÑƒÐ²Ð° прифатлив, релативно едноÑтавен
6068модел на Ñтруктурата на ÑиÑтемот и начинот на кој
6069функционираат компонентите во него (како целина)
6070ÐрхитектонÑкиот дизајн и архитектонÑките шаблони
6071Ñе преноÑливи (применливи и при дизајнирање на
6072други ÑиÑтеми)
6073СофтверÑки архитектури
60749
6075ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6076И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6077СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6078Developing
6079Organization’s
6080Management
6081Stakeholder
6082Marketing
6083Stakeholder
6084End User
6085Stakeholder
6086Customer
6087Stakeholder
6088Maintenance
6089Organization
6090Stakeholder
6091Architect
6092Low cost,
6093keeping
6094people
6095employed!
6096Neat features, short
6097time to market, low
6098cost, parity with
6099competing products!
6100Behavior,
6101performance,
6102security,
6103reliability!
6104Modifiability
6105!
6106Low cost,
6107timely delivery,
6108not changed
6109very often!
6110Ohhhhh
6111…
6112СофтверÑки архитектури
611310
6114ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6115И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6116СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6117Architectural Description
6118ï® Architectural Description – Ð¾Ð¿Ð¸Ñ Ð½Ð° архитектура
6119– колекција на Ñите продукти кои
6120документираат архитектура
6121ï® IEEE-Std-1471-2000 - IEEE Recommended
6122Practice for Architectural Description for
6123Software-Intensive Systems
6124 воÑпоÑтавување на концептуална рамка и речник
6125кои ќе Ñе кориÑтат при развојот на архитектурата
6126 да обезбеди водилки за репрезентација на опиÑот
6127на архитектурата
6128 да охрабри Ñтабилни практики во архитектонÑкиот
6129дизајн
613011
6131СофтверÑки архитектури
6132ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6133И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6134СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6135ÐрхитектонÑки одлуки
6136ï® Ðрхитектура – тоа Ñе илјадници одлуки
6137(големи и мали) кои може да имаат
6138одлучувачко влијание за Ñледните
6139акции во конÑтрукцијата и уÑпешноÑта
6140на целиот ÑиÑтем
6141ï® ÐŸÐ¾Ð³Ð»ÐµÐ´Ð¸
6142ï® stakeholder concerns
6143ï® Ñ€Ð°Ð·Ð³Ð»ÐµÐ´ÑƒÐ²Ð°ÑšÐµ на алтернативи
6144ï® Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð¸Ñ€Ð°ÑšÐµ на главните одлуки
614512
6146СофтверÑки архитектури
6147ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6148И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6149СОФТВЕРСКО ИÐЖЕÐЕРСТВО 13
6150СофтверÑки архитектури
6151ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6152И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6153СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6154ÐрхитектонÑки жанрови
6155ï® Artificial intelligence
6156ï® Commercial and nonprofit
6157ï® Communications
6158ï® Content authoring
6159ï® Devices
6160ï® Entertainment and sports
6161ï® Financial
6162ï® Games
6163ï® Government
616414
6165СофтверÑки архитектури
6166ï® Industrial
6167ï® Legal
6168ï® Medical
6169ï® Military
6170ï® Operating systems
6171ï® Platforms
6172ï® Scientific
6173ï® Tools
6174ï® Transportation
6175ï® Utilities
6176ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6177И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6178СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6179ÐрхитектонÑки Ñтилови
6180ï® ÐрхитектонÑкиот Ñтил ја одредува
6181категоријата на ÑиÑтемот што вклучува
6182 множеÑтво на компоненти кои изведуваат
6183одредени функции на ÑиÑтемот (DB, преÑметковни
6184модули, ...)
6185 множеÑтво на врÑки кои овозможуваат
6186комуникација, координација и кооперација помеѓу
6187компонентите
6188 ограничувања кои ги дефинираат начините на кои
6189компонентите може да Ñе интегрираат во ÑиÑтемот
6190 Ñемантички модел кој му овозможува на
6191дизајнерот да ги разбере глобалните оÑобини на
6192ÑиÑтемот преку анализа на оÑобините на неговите
6193делови
6194ï® ÐŸÐ¾Ð´ÐµÐ»Ð±Ð° на архитектонÑките Ñтилови
6195СофтверÑки архитектури
619615
6197ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6198И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6199СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6200ÐрхитектонÑки шаблони
6201ï® ÐžÐ¿Ñегот на шаблонот е потеÑен од архитектурите,
6202фокуÑирајќи Ñе на еден аÑпект на архитектурата
6203ï® ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¸Ñ‚Ðµ воведуваат некои правила во
6204архитектурата опишувајќи како Ñофтверот ќе Ñе
6205Ñправува Ñо некои аÑпекти на неговата
6206функционалноÑÑ‚ на ниво на инфраÑтруктура
6207(конкурентноÑÑ‚ на пр.)
6208ï® Ð°Ñ€Ñ…Ð¸Ñ‚ÐµÐºÑ‚ÑƒÑ€Ð½Ð¸Ñ‚Ðµ шаблони Ñе однеÑуваат на конкретни
6209аÑпекти на однеÑување во контекÑÑ‚ на архитектурата
6210(како RT апликациите ја решаваат Ñинхронизацијата)
621116
6212СофтверÑки архитектури
6213ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6214И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6215СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6216Преглед на архитектонÑки Ñтилови
6217ï® Ð¡ÐºÐ¾Ñ€Ð¾ Ñите ÑофтверÑки ÑиÑтеми може да Ñе
6218категоризираат во еден од глобалните арх.
6219Ñтилови:
62201. Data-centered architectures (податочно-центрични)
62212. Data-flow architectures (проточни)
62223. Call and return architectures (повикување и
6223враќање)
62244. Object-oriented architectures (објектно-
6225ориентирани)
62265. Layered architectures (Ñлоевити)
622717
6228СофтверÑки архитектури
6229ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6230И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6231СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6232Data-centered architecture
6233ï® data repository / clients
6234ï® data repository can be passive, active (blackboard)
6235ï® integrability
6236СофтверÑки архитектури
623718
6238Client
6239software
6240Client
6241software
6242Client
6243software
6244Client
6245software
6246Client
6247software
6248Client
6249software
6250Client
6251software
6252Client
6253software
6254Data store
6255(repository or
6256blackboard)
6257ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6258И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6259СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6260Data-flow architecture
6261ï® pipe and filter pattern
6262ï® batch sequential
6263Filter
6264Pipes
6265Filter
6266Filter
6267Filter Filter
6268Filter Filter
6269Filter
6270(a) Pipes and filters
6271Filter
6272Filter
6273(b) Batch sequential
6274Filter Filter Filter Filter
6275СофтверÑки архитектури
627619
6277ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6278И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6279СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6280Call and return architecture
6281Main program
6282Controller
6283subprogram
6284Controller
6285subprogram
6286Controller
6287subprogram
6288Application
6289subprogram
6290Application
6291subprogram
6292Application
6293subprogram
6294Application
6295subprogram
6296Application
6297subprogram
6298Application
6299subprogram
6300Application
6301subprogram
630220
6303СофтверÑки архитектури
6304ï® Main-programand-subprogram
6305ï® Remote
6306procedure call
6307ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6308И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6309СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6310Object-oriented architecture
6311ï® Ð’Ð¾ компонентите Ñе енкапÑулирани и
6312податоците и операциите кои ги
6313манипулираат. Комуникацијата и
6314координацијата Ñе изведува Ñо праќање на
6315пораки.
6316СофтверÑки архитектури
631721
6318ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6319И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6320СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6321Layered architectures
6322Core layer
6323Components
6324User interface layer
6325Application layer
6326Utility layer
6327СофтверÑки архитектури
632822
6329ï® Ð¡ÐµÐºÐ¾Ñ˜ Ñлој
6330изведува
6331операции кои
6332прогреÑивно
6333Ñтануваат Ñе
6334поблиÑки до
6335машинÑките
6336ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6337И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6338СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6339Virtual machine architecture
6340Data
6341(Program State)
6342Interpret
6343Engine
6344Internal
6345State
6346Program Being
6347Interpreted
6348Program
6349Instructions
6350State Data
6351Selected Instruction
6352Selected Data
6353Data Updates
6354Inputs
6355Outputs
6356СофтверÑки архитектури
635723
6358ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6359И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6360СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6361СофтверÑки архитектури
636224
6363ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6364И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6365СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6366Организација и прочиÑтување
6367ï® ÐšÐ°ÐºÐ¾ да Ñе избере виÑтинÑката од големиот број
6368архитектонÑки алтернативи?
6369ÐÑпекти:
6370ï® ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ð°
6371 како Ñе Ñпроведува, дали е видлива јаÑна хиерархија, која е
6372улогата на компонентите во неа, како ја
6373Ñподелуваат/пренеÑуваат контролата, дали работата
6374Ñинхроно или аÑинхроно
6375ï® Ð¿Ð¾Ð´Ð°Ñ‚Ð¾Ñ†Ð¸
6376 како Ñе пренеÑуваат податоците помеѓу компонентите, дали
6377протокот е континуиран или Ñпорадичен, дали поÑтојат
6378податочни компоненти и која е нивната улога, дали Ñе
6379паÑивни или активни, каква е интеракцијата помеѓу
6380податоците и контролата во ÑиÑтемот
6381СофтверÑки архитектури
638225
6383ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6384И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6385СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6386Дизајн на архитектура
6387ï® Ð˜Ñ‚ÐµÑ€Ð°Ñ‚Ð¸Ð²ÐµÐ½ процеÑ
6388ï® ÐŸÐ¾Ñ‡Ð½ÑƒÐ²Ð° Ñо дефинирање на контекÑтот
6389(екÑтерните ентитети Ñо кои ÑиÑтемот ќе
6390оÑтварува интеракција и видот на оваа
6391интеракција) – дефинирање на екÑтерните
6392интерфејÑи
6393ï® Ð”ÐµÑ„Ð¸Ð½Ð¸Ñ€Ð°ÑšÐµ на архетипи (апÑтракција која
6394опишува елемент на ÑиÑтемÑко однеÑување)
6395ï® Ð”ÐµÑ„Ð¸Ð½Ð¸Ñ€Ð°ÑšÐµ и рафинирање на ÑофтверÑките
6396компоненти кои би го имплементирале Ñекој
6397архетип
639828
6399СофтверÑки архитектури
6400ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6401И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6402СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6403КонтекÑÑ‚ на ÑиÑтемот
6404ï® Architectural context diagram (ACD)
640529
6406СофтверÑки архитектури
6407Superordinate systems
6408Subordinate systems
6409Depends on
6410Uses
6411Uses
6412Used by
6413Peers
6414Actors
6415Target system
6416интерфејÑ
6417ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6418И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6419СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6420SafeHome Architecture context
642130
6422СофтверÑки архитектури
6423Target system :
6424security function Uses
6425Uses Peers Homeowner
6426SafeHome
6427product
6428Internet based -
6429system
6430Surveillance
6431function
6432Sensors
6433Control
6434panel
6435Sensors
6436Uses
6437ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6438И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6439СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6440Дефинирање на архетипи
6441ï® Ð”ÐµÑ„Ð¸Ð½Ð¸Ñ€Ð°ÑšÐµ на интерфејÑите и
6442идентификација на Ñите податоци кои ќе
6443течат низ нив
6444ï® Ð°Ñ€Ñ…ÐµÑ‚Ð¸Ð¿ – клаÑа или шаблон кој ја опишува
6445оÑновната апÑтракција битна за дизајнот на
6446архитектурата за целниот ÑиÑтем
644731
6448СофтверÑки архитектури
6449ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6450И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6451СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6452Ðрхетипи за Safehome
6453ï® ÐŸÑ€Ð¸Ð¼ÐµÑ€ за архетипи за Safehome
6454Node
6455Detector
6456Indicator
6457Controller
6458ï® Ðивно рафинирање
645932
6460СофтверÑки архитектури
6461Controller
6462Node
6463Communicates with
6464Detector Indicator
6465ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6466И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6467СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6468Рафинирање во компоненти
6469ï® ÐŸÑ€Ð²Ð¸Ñ‡Ð½Ð¾ Ñпоред клаÑите за анализа
6470ï® Ðрхитектурата ќе Ñодржи и многу
6471инфраÑтруктурни компоненти кои ќе
6472ги овозможат апликациÑките
6473компоненти но немаат директна врÑка
6474Ñо апликациÑкиот домен (management
6475components, communication components,
6476database components, ...)
647733
6478СофтверÑки архитектури
6479ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6480И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6481СОФТВЕРСКО ИÐЖЕÐЕРСТВО 34
6482СофтверÑки архитектури
6483SafeHome
6484executive
6485External
6486communication
6487management
6488GUI Internet
6489interface
6490Function
6491selection
6492Security Surveillance Home
6493management
6494Control panel
6495processing
6496Detector
6497management
6498Alarm
6499processing
6500-
6501ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6502И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6503СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6504Елаборација
650535
6506СофтверÑки архитектури
6507External
6508communication
6509management
6510GUI Internet
6511interface
6512Security
6513Control
6514panel
6515processing
6516Detector
6517management
6518Alarm
6519processing
6520Keypad
6521processing
6522CP display
6523functions
6524Scheduler Phone
6525communication
6526Alarm
6527SafeHome
6528executive
6529Sensor
6530ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6531И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6532СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6533Ðнализа на алтернативни архитектури
6534ï® Ð”Ð²Ð° приÑтапа за анализа на
6535алтернативни архитектури:
6536Итеративен метод за проценка на
6537компромиÑите во дизајните (trade-offs)
6538Примена на пÑевдо-квантитативни техники
6539за проценка на квалитетот на дизајнот
6540СофтверÑки архитектури
654136
6542ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6543И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6544СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6545ATAM (1)
6546ï® Software Engineering Institute (SEI) развил метода за
6547развој на архитектури architecture trade-off analysis
6548method (ATAM) која претÑтавува итеративно
6549повторување на активноÑтите:
65501. Собирање Ñценарија
65512. Извлекување на барањата, ограничувањата и опиÑ
6552на околината
65533. ÐžÐ¿Ð¸Ñ Ð½Ð° архитектонÑките Ñтилови/шаблони избрани
6554да ги задоволат Ñценаријата и барањата
6555 module view - work assignments, information hiding
6556 process view - system performance
6557 data-flow view - functional requirements
6558СофтверÑки архитектури
655937
6560ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6561И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6562СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6563ATAM (2)
65644. Проценка на атрибутите на квалитет разгледувајќи
6565го Ñекој одделно (reliability, performance, security,
6566maintainability, flexibility, testability, portability,
6567reusability, interoperability)
65685. Одредување на оÑетливоÑта на Ñекој од атрибутите
6569на квалитет на атрибутите на архитектонÑкиот Ñтил
65706. Критика на кандидат архитектурите (од чекор 3) врз
6571оÑнова на анализата на оÑетливоÑÑ‚ од чекор 5
6572ï® Ð’Ð¾Ð¾Ñ‡ÑƒÐ²Ð°ÑšÐµ на можните компромиÑи помеѓу некои
6573од атрибутите на архитектурата во Ð¾Ð´Ð½Ð¾Ñ Ð½Ð°
6574барањата, промена на архитектурите (евентуално
6575отфрлање на некои од нив) и повторување на
6576чекорите.
6577СофтверÑки архитектури
657838
6579ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6580И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6581СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6582Квантитативни водилки за
6583архитектонÑки дизајн
6584ï® ÐŸÑ€ÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸ Ñе едноÑтавни модели кои
6585би му помогнале на архитектот да ја
6586одреди мерката во која архитектурата
6587одговара на одредени критериуми
6588(design dimensions) на „погодноÑт“.
6589ï® ÐžÐ²Ð¸Ðµ критериуми (design dimensions)
6590најчеÑто вклучуваат атрибути на
6591квалитет (reliability, performance, …)
6592СофтверÑки архитектури
659339
6594ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6595И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6596СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6597Spectrum Analysis модел
6598ï® Ð“Ð¾ проценува дизајнот во Ð¾Ð´Ð½Ð¾Ñ Ð½Ð° Ñпектар „на
6599погодноÑт“ кој Ñе протега од најдобриот до најлошиот
6600дизајн. Секоја предложената архитектура Ñе
6601проценува во Ð¾Ð´Ð½Ð¾Ñ Ð½Ð° добиените резултати за
6602Ñекоја од димензиите на дизајнот на Ñоодветниот
6603Ñпектар, кои Ñе Ñобираат за да Ñе добие вкупниот
6604резултат.
6605ï® Sw – резултат на најлошиот (но применлив) дизајн
6606ï® Sb - резултат на најдобриот дизајн (оптимален но
6607тешко изводлив поради ограничувања – цена, време)
6608ï® Is – spectrum index
6609Is
6610=[(S-Sw)/(Sb-Sw)]×100
6611ï® Ð¾Ð·Ð½Ð°Ñ‡ÑƒÐ²Ð° колку дадената архитектура е блиÑка до
6612оптималниот ÑиÑтем од Ñпектарот на разумно
6613избрани дизајни
6614ï® improvement index Imp=Is1-Is2
6615СофтверÑки архитектури
661640
6617ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6618И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6619СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6620Design selection analysis
6621ï® Design selection analysis
6622d=(Ns/Na)×100
6623ï® Ns - број на задоволени дизајнерÑки
6624димензии
6625ï® Na - вкупен број на дизајнерÑки
6626димензии
6627СофтверÑки архитектури
662841
6629ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6630И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6631СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6632Contribution analysis
6633ï® ÐžÐ´Ñ€ÐµÐ´ÑƒÐ²Ð°ÑšÐµ на релативниот приоритет
6634на барањата при одредувањето на
6635архитектурата
6636ï® Quantified design space (QDS) –
6637референтна матрица на која Ñе внеÑува
6638влијанието на Ñекое од барањата на
6639Ñекој од разгледуваните дизајни (оценка
66401-10)
6641ï® Ð”Ð°Ð²Ð° претÑтава зошто одредени дизајни
6642добиваат помала оценка од други
6643СофтверÑки архитектури
664442
6645ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6646И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6647СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6648КомплекÑноÑÑ‚ на архитектура
6649ï® Ð¢ÐµÑ…Ð½Ð¸ÐºÐ° за проценка на глобалната
6650комплекÑноÑÑ‚ на предложена архитектура.
6651КомплекÑноÑта е одредена од
6652информациÑките/контролните текови во
6653ÑиÑтемот.
6654 Sharing dependencies (две или повеќе компоненти
6655кои кориÑтат иÑти реÑурÑи)
6656 Flow dependencies (да заврши u за да му ги
6657проÑледи податоците на v)
6658 Constrained dependencies (ограничувања при
6659релативниот тек – u и v не може да Ñе одвиваат
6660паралелно – взаемно Ñе иÑклучуваат)
6661СофтверÑки архитектури
666243
6663ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6664И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6665СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6666ADL
6667ï® Architectural Description Languages –
6668јазици за Ð¾Ð¿Ð¸Ñ Ð½Ð° архитектури
6669ï® ÐžÐ±ÐµÐ·Ð±ÐµÐ´ÑƒÐ²Ð°Ð°Ñ‚ Ñемантика и ÑинтакÑа за
6670Ð¾Ð¿Ð¸Ñ Ð½Ð° ÑофтверÑки архитектури
6671разложување архитектонÑки компоненти
6672Ñложување архитектонÑки компоненти
6673ï‚¨Ð¾Ð¿Ð¸Ñ Ð½Ð° интерфејÑи
667444
6675СофтверÑки архитектури
6676ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6677И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6678СОФТВЕРСКО ИÐЖЕÐЕРСТВО 45
6679ПреÑликување на барањата во архитектура
6680ï® Ðе поÑтои генерално преÑликување од
6681моделот на барања во Ñекој од
6682архитектонÑките модели.
6683ï® Ð¢ÐµÑ…Ð½Ð¸ÐºÐ° за преÑликување на моделот
6684на барања во call-and-return
6685архитектура наречен и Ñтруктурен
6686дизајн нуди Ñоодветна транзиција од
6687DFD во ÑофтверÑка архитектура
6688СофтверÑки архитектури
6689ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6690И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6691СОФТВЕРСКО ИÐЖЕÐЕРСТВО 65
6692Финализирање на
6693архитектонÑкиот дизајн
6694ï® ÐŸÐ¾ развојот и рафинирањето на
6695програмÑката Ñтруктура, потребно е уште и
6696да Ñе:
6697 даде наративен Ð¾Ð¿Ð¸Ñ Ð½Ð° процеÑирањето на Ñекој
6698модул (processing, decisions, I/O)
6699 даде Ð¾Ð¿Ð¸Ñ Ð½Ð° интерфејÑите на Ñекој модул
6700 дефинираат локалните и глобалните податочни
6701Ñтруктури
6702 опишат Ñите ограничувања на дизајнот
6703 Ñпроведе преглед и ревизија на дизајнот
6704 да Ñе разгледа потребата од понатамошно
6705рафинирање
6706СофтверÑки архитектури
6707ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6708И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6709СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6710Прашања?
671166
6712СофтверÑки архитектури
6713________________________________________________________________________________________________________________________
6714ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6715Component-Level
6716Design
6717СофтверÑко инженерÑтво
6718ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6719И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6720СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6721Процедурален дизајн
6722ï® ÐŸÑ€Ð¾Ñ†ÐµÐ´ÑƒÑ€Ð°Ð»Ð½Ð¸Ð¾Ñ‚ дизајн (дизајн на
6723компоненти) доаѓа по податочниот,
6724архитектонÑкиот и дизајнот на
6725интерфејÑи.
6726ï® Ð¦ÐµÐ»Ñ‚Ð° е да Ñе транÑформира дизајнот
6727во оперативен Ñофтвер
6728ï® ÐžÐ²Ð° да Ñе направи без воведување
6729грешки во процеÑот (кои подоцна би
6730требало да Ñе иÑправаат)
6731СофтверÑки архитектури
67322
6733ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6734И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6735СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6736Component-Level Design
6737ï® Ð”Ð¸Ð·Ð°Ñ˜Ð½Ð¾Ñ‚ на ниво на компоненти
6738 ги воÑпоÑтавува алгоритамÑките детали
6739неопходни за манипулација на податочните
6740Ñтруктури
6741 ја ефектуира комуникацијата помеѓу компонентите
6742преку интерфејÑите
6743 ги имплементира алгоритмите за процеÑирање во
6744Ñекоја од компонентите
6745ï® Ðаративниот Ð¾Ð¿Ð¸Ñ Ð½Ð° процеÑирањето во
6746Ñекоја од компонентите Ñе преведува во
6747модел на процедурален дизајн (графичка,
6748табелана, текÑтуална, претÑтава)
6749СофтверÑки архитектури
67503
6751ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6752И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6753СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6754Зошто е важно?
6755ï® Ð”Ð¸Ð·Ð°Ñ˜Ð½Ð¾Ñ‚ на ниво на компоненти го
6756претÑтавува Ñофтверот во форма која
6757овозможува ревизија на деталите на дизајнот
6758за коректноÑÑ‚ и конзиÑтентноÑÑ‚ Ñо оÑтанатите
6759репрезентации на дизајнот (податочна,
6760архитектонÑка, интерфејÑи)
6761ï® ÐезавиÑно до механизмот за репрезентација,
6762податочните Ñтруктури, алгоритмите,
6763интерфејÑите и дизајнот на ниво на
6764компоненти треба да Ñледи некои добро
6765познати препораки за процедурален дизајн
6766кои помагаат да Ñе избегнат грешките
6767СофтверÑки архитектури
67684
6769ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6770И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6771СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6772Контролна хиерархија
6773ï® ÐšÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ð½Ð°Ñ‚Ð° хиерархија на
6774програмÑката Ñтруктура ја изразува
6775организацијата на програмÑките
6776компоненти и подразбира хиерархиÑка
6777контрола
6778ï® ÐšÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ð½Ð°Ñ‚Ð° хиерархија не ги
6779репрезентира процедуралните аÑпекти
6780на Ñофтверот како Ñеквенца на
6781процеÑите, наÑтаните, редоÑлед на
6782одлуки или повторување на операции
6783Дизајнирање
67845
6785ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6786И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6787СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6788Структура на контролна хиерархија
6789ï® ÐајчеÑто Ñе кориÑти претÑтава во форма на разгрането дрво
6790Fan-out
6791Fan-in
6792Depth
6793Width
6794a c
6795d e k l m
6796t g h n opq
6797j i r
6798M
6799b
6800superordinate
6801subordinate
6802Visibility
6803Connectivity
6804Дизајнирање
68056
6806ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6807И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6808СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6809Структурна поделба (1)
6810ï® Ð¥Ð¾Ñ€Ð¸Ð·Ð¾Ð½Ñ‚Ð°Ð»Ð½Ð° поделба (влез, процеÑирање,
6811излез)
6812 полеÑно теÑтирање, одржување, проширување
6813 поголемо количеÑтво податоци кои Ñе препраќаат
6814интерфејÑите на модулите и покомплекÑна
6815глобална контрола на текот
6816(a) Horizontal partitioning
6817Function 2
6818Function 1 Function 3
6819Дизајнирање
68207
6821ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6822И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6823СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6824Структурна поделба (2)
6825ï® Ð’ÐµÑ€Ñ‚Ð¸ÐºÐ°Ð»Ð½Ð° поделба (factoring)
6826ï® Ð”Ð¸Ñтрибуција на контролата во top-down приÑтап
6827 повиÑоки нивоа – повеќе контрола
6828 пониÑки нивоа – повеќе работа
6829ï® ÐŸÑ€ÐµÑ‚Ñтава на влијанието на промена
6830Decision-making
6831modules
6832“Workerâ€
6833modules
6834(b) Vertical partitioning
6835Дизајнирање
68368
6837ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6838И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6839СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6840Податочни Ñтруктури
6841ï® ÐŸÐ¾Ð´Ð°Ñ‚Ð¾Ñ‡Ð½Ð¸Ñ‚Ðµ Ñтруктури - репрезентација на
6842логичката поврзаноÑÑ‚ помеѓу индивидуалните
6843податочни елементи
6844ï® ÐœÐ½Ð¾Ð³Ñƒ што завиÑи од нив – начинот на организација и
6845приÑтап до податоците, алтернативите за нивно
6846процеÑирање
6847ï® Ð—Ð°Ñлужуваат најмалку иÑто внимание како и дизајнот
6848на алгоритмите
6849ï® ÐŸÐ¾Ñтојат одреден број на „клаÑични“ податочни
6850Ñтруктури кои ги чинат оÑновните градбени блокови
6851за конÑтрукција на поÑофиÑтицирани Ñтруктури
6852ï® Ñкалари, вектори, полиња, Ñтруктури, поврзани лиÑти,
6853хиерархиÑки Ñтруктури, ...
6854ï® Ð˜Ð·Ð±Ð¾Ñ€Ð¾Ñ‚ на податочната Ñтруктура ги диктира
6855организацијата, методите за приÑтап, Ñтепенот на
6856аÑоцијативноÑÑ‚ и алтернативите за процеÑирање на
6857информациите
6858Дизајнирање
68599
6860ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6861И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6862СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6863СофтверÑки процедури
6864ï® Ð¡Ð¾Ñ„Ñ‚Ð²ÐµÑ€Ñки процедури – детали за процеÑирањето во
6865Ñекој од модулите
6866ï® ÐŸÑ€ÐµÑ†Ð¸Ð·Ð½Ð° Ñпецификација на
6867процеÑирањето кое вклучува
6868Ñеквенца на наÑтани, егзактни
6869точки за одлучување,
6870повторувачки операции па дури
6871и организација на податоците и
6872податочните Ñтруктури
6873ï® ÐŸÐ¾Ð²Ñ€Ð·Ð°Ð½Ð¾Ñта помеѓу Ñтруктурата
6874и процедурите – процеÑирањето
6875во Ñекој модул мора да вклучи
6876референца кон Ñите негови
6877Ñубординирани модули Procedure for ultimately
6878subordinate module
6879Procedure for
6880subordinate module
6881Procedure for
6882superordinate module
6883Дизајнирање
688410
6885ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6886И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6887СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6888Компоненти
6889ï® ÐšÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ‚Ð° – модуларен градбен блок
6890на компјутерÑки Ñофтвер
6891ï® Ð¼Ð¾Ð´ÑƒÐ»Ð°Ñ€ÐµÐ½, иÑпорачлив и заменлив дел
6892на ÑиÑтем кој Ñокрива имплементација и
6893екÑпонира множеÑтво на интерфејÑи
689411
6895СофтверÑки архитектури
6896ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6897И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6898СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6899Class-Based Components
6900Принципи:
6901ï® The Open-Closed Principle (OCP) – модул треба да е отворен за
6902проширување а затворен за измени
6903ï® The Liskov Substitution Principle (LSP) – подклаÑите може да ги заменат
6904клаÑите
6905ï® Dependency Inversion Principle (DIP) – завиÑноÑÑ‚ од апÑтракција, не
6906конкретни компоненти
6907ï® The Interface Segregation Principle (ISP) – повеќе интерфејÑи
6908Ñпецифични за различни клиенти Ñе подобри од еден Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÑ˜Ñ Ð·Ð°
6909општа употреба
6910ï® The Release Reuse Equivalency Principle (REP) – гранулите на
6911реупотреба Ñе гранули на иÑпорака (packages)
6912ï® The Common Closure Principle (CCP) – клаÑите кои Ñе менуваат заедно
6913припаѓаат заедно (кохезивно пакување)
6914ï® The Common Reuse Principle (CRP) – клаÑите кои не Ñе кориÑтат заедно
6915не треба да Ñе Ñпакувани заедно
691612
6917СофтверÑки архитектури
6918ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6919И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6920СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6921Дизајнирање на компоненти
6922ï® ÐšÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ‚Ð¸ – конвенција за именување
6923ï® Ð˜Ð½Ñ‚ÐµÑ€Ñ„ÐµÑ˜Ñи
6924 lollipop instead of UML box and dashed arrow notation
6925 за конзиÑтентноÑÑ‚ интерфејÑите да излегуваат Ñамо до
6926левата Ñтрана на компонентата
6927 да Ñе прикажат Ñамо оние кои Ñе релевантни за
6928компонентата во дадениот контекÑÑ‚ (иако можеби има и
6929други)
6930ï® Ð—Ð°Ð²Ð¸ÑноÑти и наÑледÑтво
6931 моделирање на завиÑноÑтите од лево на деÑно
6932 моделирање на наÑледÑтвото од долу нагоре
6933 завиÑноÑта на компонентите да биде иÑкажана преку
6934нивните интерфејÑи
693513
6936СофтверÑки архитектури
6937ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6938И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6939СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6940Сокривање на информациите
6941ï® Ð¡Ð¾ÐºÑ€Ð¸Ð²Ð°ÑšÐµÑ‚Ð¾ на информации (information hiding) Ñе
6942однеÑува на одлуката како да Ñе изврши поделбата
6943на ÑофтверÑкото решение Ñо цел да Ñе добие „добро“
6944множеÑтво на модули.
6945ï® ÐŸÑ€Ð¸Ð½Ñ†Ð¸Ð¿Ð¾Ñ‚ на криење на информации Ñугерира
6946креирање на модулите така да Ñе „кријат“ еден од
6947друг – информациите (процедурите и податоците) од
6948еден модул да бидат недоÑтапни за оÑтанатите
6949модули кои немаат потреба од иÑтите
6950ï® ÐžÐ³Ñ€Ð°Ð½Ð¸Ñ‡ÑƒÐ²Ð°ÑšÐµ на приÑтапот до информациите во
6951рамките на модулот – помали можноÑти за
6952пропагација на грешки при подоцнежни промени
6953ï® ÐœÐ¾Ð´ÑƒÐ»Ð¸Ñ‚Ðµ меѓуÑебно ги разменуваат Ñамо
6954информациите неопходни за поÑтигнување на
6955функцијата на Ñофтверот
6956Дизајнирање
695714
6958ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6959И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6960СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6961Ефективен модуларен дизајн
6962ï® ÐœÐ¾Ð´ÑƒÐ»Ð°Ñ€Ð½Ð¸Ð¾Ñ‚ дизајн придонеÑува кон:
6963 намалена комплекÑноÑÑ‚
6964 поедноÑтавни промени
6965 поедноÑтавна имплементација (паралелен развој)
6966ï® Ð¤ÑƒÐ½ÐºÑ†Ð¸Ð¾Ð½Ð°Ð»Ð½Ð°Ñ‚Ð° незавиÑноÑÑ‚ Ñе поÑтигнува
6967Ñо развој на модули Ñо „едноумни“ функции и
6968„аверзија“ кон преголема интеракција Ñо
6969други модули
6970ï® Ð¡ÐµÐºÐ¾Ñ˜ модул да обработува Ñпецифична
6971подфункција од барањата и да има
6972едноÑтавен Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÑ˜Ñ Ð³Ð»ÐµÐ´Ð°Ð½ од оÑтатокот од
6973програмÑката Ñтруктура
6974Дизајнирање
697515
6976ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6977И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6978СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6979Зошто незавиÑноÑта е важна?
6980ï® Ð¡Ð¾Ñ„Ñ‚Ð²ÐµÑ€Ð¾Ñ‚ Ñо ефективна модуларноÑÑ‚
6981(незавиÑни модули):
6982 полеÑно Ñе развива (одвоени функции, едноÑтавен
6983интерфејÑ)
6984 полеÑно Ñе одржува и теÑтира (Ñекундарните
6985ефекти поради модификација на кодот или
6986дизајнот Ñе ограничени, пропагацијата на грешки е
6987намалена, reusable modules)
6988ï® ÐезавиÑноÑта Ñе мери преку два
6989квалитативни критериуми:
6990 cohesion – кохезија
6991 coupling – упарување (поврзаноÑÑ‚)
6992Дизајнирање
699316
6994ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
6995И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
6996СОФТВЕРСКО ИÐЖЕÐЕРСТВО
6997Кохезија
6998ï® ÐšÐ¾Ñ…ÐµÐ·Ð¸Ð²ÐµÐ½ модул изведува единÑтвена
6999задача Ñо минимална интеракција Ñо
7000процедури кои Ñе изведуваат во други
7001делови на програмата
7002ï® ÐžÐ´ аÑпект на пожелноÑта кохезијата Ñе
7003претÑтавува како Ñпектар Ñо
7004нелинеарна Ñкала (тежиме кон виÑока
7005кохезија, но и онаа од Ñредниот дел на
7006Ñпектарот е прифатлива)
7007Дизајнирање
700817
7009ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7010И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7011СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7012Кохезија
7013ï® â€žÐµÐ´Ð½Ð¾ÑƒÐ¼Ð½Ð¾Ñт“ на компонентите
7014 Функционална кохезија – компонентата изведува
7015одредена операција и враќа резултат
7016 Слоевита кохезија (пакети, компоненти, клаÑи) -
7017повиÑоките Ñлоеви приÑтапуваат на ÑервиÑите од
7018пониÑките нивоа но не обратно)
7019 КомуникациÑка кохезија - операциите за приÑтап
7020до иÑти податоци Ñе групирани во една клаÑа
7021ï® ÐšÐ»Ð°Ñите и компонентите во кои ги има овие
7022три типа на кохезија релативно леÑно Ñе
7023имплементираат, теÑтираат и одржуваат
702418
7025СофтверÑки архитектури
7026ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7027И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7028СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7029Видови кохезија
7030ï® ÐšÐ¾Ð¸Ð½Ñ†Ð¸Ð´ÐµÐ½Ñ‚Ð½Ð° кохезија - на долниот (непожелен) дел
7031од Ñпектарот е модул кои изведува група Ñлабо
7032поврзани или неврзани задачи (coincidental cohesion)
7033ï® Ð›Ð¾Ð³Ð¸Ñ‡ÐºÐ° кохезија - модул кој изведува логичко
7034поврзани задачи (печатење...) (logical cohesion)
7035ï® Ð’Ñ€ÐµÐ¼ÐµÐ½Ð° кохезија - модули кој обединува задачи кои
7036Ñе изведуваат иÑтовремено (temporal cohesion)
7037ï® ÐŸÑ€Ð¾Ñ†ÐµÐ´ÑƒÑ€Ð°Ð»Ð½Ð° кохезија – процеÑирачките елементи
7038во модулот Ñе меѓузавиÑни и мора да бидат изведени
7039по одреден редоÑлед (procedural cohesion)
7040ï® ÐšÐ¾Ð¼ÑƒÐ½Ð¸ÐºÐ°Ñ†Ð¸Ñка кохезија – Ñите процеÑирачки
7041елементи во модулот Ñе концентрираат на единÑтвен
7042дел од податочната Ñтруктура
7043Дизајнирање
704419
7045ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7046И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7047СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7048ПоврзаноÑÑ‚ (coupling)
7049ï® Coupling - поврзаноÑÑ‚ помеѓу модулите во
7050ÑофтверÑката Ñтруктура
7051ï® Ð—Ð°Ð²Ð¸Ñи од интерфејÑот, меÑтото на
7052рефернцирање и податоците кои Ñе
7053иÑпраќаат преку интерфејÑот
7054ï® Ð’Ð¾ ÑофтверÑкиот дизајн Ñе тежнее кон што
7055помала поврзаноÑÑ‚
7056ï® Ð•Ð´Ð½Ð¾Ñтавната поврзаноÑÑ‚ резултира во
7057Ñофтвер кој е поразбирлив и го намалува
7058пропагирањето на грешките низ ÑиÑтемот
7059Дизајнирање
706020
7061ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7062И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7063СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7064Coupling
7065ï® ÐŸÐ¾Ð²Ñ€Ð·Ð°Ð½Ð¾Ñта на компонентите е
7066неопходна за функционирање на
7067ÑиÑтемот, но
7068ï® ÐºÐ°ÐºÐ¾ што Ñе зголемува Ñтепенот на
7069поврзаноÑÑ‚ помеѓу компонентите, раÑте
7070и комплекÑноÑта на ÑиÑтемот, а Ñо тоа и
7071потешкотиите при негова
7072имплементација, теÑтирање и
7073одржување
707421
7075СофтверÑки архитектури
7076ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7077И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7078СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7079Типови на поврзаноÑÑ‚
7080ï® routine call coupling
7081ï® type use coupling
7082ï® data coupling
7083ï® stamp coupling
7084ï® inclusion or import
7085coupling
7086ï® control coupling
7087ï® external coupling
7088ï® common coupling
7089ï® content coupling
7090Дизајнирање
709122
7092a
7093b c
7094Data
7095structure
7096Data
7097(variables)
7098e
7099Control
7100flag
7101i
7102j k
7103d
7104f g h
7105No direct
7106coupling
7107Global data
7108area
7109ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7110И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7111СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7112Типови на поврзаноÑÑ‚
7113ï® Coupling types:
7114 routine call coupling
7115 type use coupling
7116 data coupling
7117 stamp coupling
7118 inclusion or import coupling
7119 control coupling
7120 external coupling (модули поврзани Ñо околината
7121на ÑиÑтемот - compiler coupling, OS coupling)
7122 common coupling (кориÑти и менува глобални
7123податоци)
7124 content coupling (модифицира локални податоци
7125на друг модул)
7126Дизајнирање
712723
7128ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7129И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7130СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7131ХевриÑтики за дизајн на ефективна
7132модуларноÑÑ‚
7133ï® ÐœÐ°Ð½Ð¸Ð¿ÑƒÐ»Ð°Ñ†Ð¸Ð¸ над програмÑката Ñтруктура:
7134 Ðамалување на поврзаноÑта и зголемување на кохезијата
7135(exploding/imploding modules)
7136 Ðамалување на Ñтруктури Ñо голем fan-out и тежење кон
7137поголем fan-in на подлабоките нивоа
7138 Задржување на опÑегот на ефектите од даден модул во
7139рамките на опÑегот на контрола на иÑтиот модул
7140 Евалуација на интерфејÑите на модулите Ñо цел да Ñе
7141намали комплекÑноÑта и редунданцијата и да Ñе зголеми
7142конзиÑтентноÑта
7143 Дефинирање на модули Ñо предвидлива функција (blackbox)
7144и избегнување на пререÑтриктивни модули
7145 Тежење кон модули Ñо контрола на влез и избегнување на
7146„патолошки врÑки“
7147A pathological connection is a reference to an identifier or any entity inside a module originating from
7148outside the module.
7149Дизајнирање
715024
7151ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7152И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7153СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7154Ефективна модуларноÑÑ‚
7155a
7156b e
7157i
7158j k
7159d
7160m f g h r
7161c
7162n
7163q
7164p
7165x
7166Avoid a "pancaked" structure
7167Дизајнирање
716825
7169ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7170И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7171СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7172Дизајн на компоненти
71731. Идентификувај ги Ñите клаÑи кои
7174кореÑпондираат на доменот на проблемот
71752. Идентификувај ги Ñите клаÑи кои
7176кореÑпондираат на инфраÑтруктурниот
7177домен (не Ñе опишани во барањата и чеÑто
7178не Ñе внеÑени во архитектонÑкиот модел)
717926
7180СофтверÑки архитектури
7181ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7182И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7183СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7184Дизајн на компоненти
71853. Елеаборирај ги Ñите клаÑи кои не Ñе
7186реупотребуваат како готови
7187a) Специфицирај ги пораките каде клаÑите или
7188компонентите колаборираат (collaboration
7189diagram)
7190b) Идентификувај ги Ñоодветните интерфејÑи за
7191Ñекоја компонента
7192c) Елеаборација на атрибутите и дефинирање на
7193типовите и податочните Ñтруктури потребни за
7194нивна имплементација (UML activity diagram)
719527
7196СофтверÑки архитектури
7197ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7198И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7199СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7200Дизајн на компоненти
72014. Опиши ги перзиÑтентните извори на
7202податоци (бази на податоци и датотеки) и
7203идентификувај ги клаÑите потребни за нивно
7204менаџирање
72055. Развиј и елаборирај го однеÑувањето на
7206клаÑата или компонентата (UML state
7207diagrams)
72086. Елаборирај deployment дијаграми и
7209дополнителни имплементациÑки детали
72107. Рефакторирање на Ñекој компонентен дизајн
7211и поÑтојано разгледување на алтернативи
721228
7213СофтверÑки архитектури
7214ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7215И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7216СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7217Објекно-ориентиран дизајн
7218Design classes
72191. User interface classes (апÑтракции за HCI – визуелни
7220репрезентации на метафори)
72212. Business domain (атрибути и ÑервиÑи)
72223. Process classes (Ð±Ð¸Ð·Ð½Ð¸Ñ Ð°Ð¿Ñтракции од пониÑко ниво)
72234. Persistent classes (претÑтавуваат datastore / DB – чуваат
7224податоци и кога Ñофтверот не Ñе извршува)
72255. System classes (функции за контрола и управување Ñо
7226Ñофтверот кои овозможуваат ÑиÑтемот да работи и
7227комуницира Ñо околината)
7228ï® ÐšÐ»Ð°Ñите за анализа (Ð±Ð¸Ð·Ð½Ð¸Ñ Ð¿Ð¾Ð³Ð»ÐµÐ´)
7229ï® Ð”Ð¸Ð·Ð°Ñ˜Ð½ÐµÑ€Ñки клаÑи (многу повеќе технички детали)
723029
7231Дизајнирање
7232ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7233И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7234СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7235Well-formed classes
7236ï® Complete and sufficient
7237ï® Primitiveness (еден начин за да Ñе
7238поÑтигне една работа)
7239ï® High cohesion
7240ï® Low coupling
724130
7242Дизајнирање
7243ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7244И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7245СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7246Структурирано програмирање
7247ï® Djikstra (1960-ти) предложил употреба
7248на множеÑтво од ограничени логички
7249конÑтрукции од кои може да Ñе
7250конÑтруира Ñекоја програма
7251ï® ÐŸÑ€ÐµÑликување на функционалниот
7252домен – го Ñледи процедуралниот „тек“
7253ï® ÐšÐ¾Ð½Ñтрукции Ñо предвидлива логичка
7254Ñтруктура – влез на врвот, излез на
7255дното
7256СофтверÑки архитектури
725731
7258ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7259И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7260СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7261ОÑновни конÑтрукции
7262ï® ÐžÑновни конÑтрукции:
7263 Ñеквенца (sequence)
7264 уÑловно гранење (condition)
7265 повторување (repetition)
7266ï® Ð¡Ñ‚Ñ€ÑƒÐºÑ‚ÑƒÑ€ÐµÐ½ дизајн:
7267 намалена комплекÑноÑÑ‚
7268 подобрена читливоÑÑ‚
7269 подобрено теÑтирање
7270 подобрено одржување
7271 chunking (препознавање на цели процедурални
7272елементи)
7273СофтверÑки архитектури
727432
7275ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7276И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7277СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7278Графички претÑтави
7279ï® Ð‘Ð»Ð¾Ðº Дијаграм на тек
7280First
7281task
7282Next
7283task
7284Sequence
7285Condition
7286F T
7287If-then-else
7288Then-part
7289Selection
7290Case
7291condition
7292Case part
7293T
7294T
7295T
7296F
7297F
7298F
7299T
7300F
7301T
7302F
7303Do white Repeat until
7304Else-part
7305СофтверÑки архитектури
730633
7307ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7308И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7309СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7310Вгнездување
7311Else-part First task
7312Next task
7313Then-part
7314Loop task
7315Loop
7316condition
7317Condition
7318СофтверÑки архитектури
731934
7320ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7321И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7322СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7323ÐедоÑтатоци
7324ï® Ð”Ð¾Ð³Ð¼Ð°Ñ‚Ñката употреба на Ñтруктурните
7325конÑтрукции може да предизвика
7326неефикаÑноÑÑ‚ во некои Ñлучаи (излез
7327од тело на вгнездени циклуÑи)
7328ï® ÐœÐ¾Ð¶Ð½Ð¸ решенија:
7329редизајнирање на процедуралната
7330репрезентација за да Ñе изгуби излезот од
7331Ñредина на блок
7332контролирано нарушување на Ñтрогата
7333Ñтруктурна конÑтрукција
7334СофтверÑки архитектури
733535
7336ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7337И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7338СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7339Box diagram
7340ï® ÐžÐ½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶ÐµÐ½Ð¾ нарушување на
7341Ñтруктурната конÑтрукција (NassiShneiderman,
7342N-S charts, Chapin charts)
73431. функционален домен (леÑно видлива
7344Ñликовно претÑтавена Ñтруктура)
73452. произволно пренеÑување на контролата
7346не е можно
73473. леÑно одредување на опÑегот на важење
7348на локалните и глобалните променливи
73494. леÑна претÑтава на рекурзија
7350СофтверÑки архитектури
735136
7352ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7353И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7354СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7355Box diagram
7356First task
7357Next task
7358Next +1 task
7359Sequence
7360Loop condition
7361Do-whilepart
7362Loop condition
7363Repeat-untilpart
7364Repetition Selection
7365Condition
7366F T
7367Elsepart
7368Thenpart
7369Case condition
7370Value Value
7371Casepart
7372Casepart
7373If-then-else
7374СофтверÑки архитектури
737537
7376ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7377И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7378СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7379Табеларна претÑтава
7380ï® ÐŸÑ€Ð¸ потреба од евалуација на Ñложена
7381комбинација од уÑлови за Ñелекција на
7382Ñоодветна акција
7383ï® Ð¢Ð°Ð±ÐµÐ»Ð¸ за одлучување – претÑтава на
7384уÑловите и акциите во табеларна
7385форма
7386ï® Ð¢Ð°Ð±ÐµÐ»Ð¸Ñ‚Ðµ
7387потешко може да бидат погрешно разбрани
7388полеÑно Ñе имплементираат директно во
7389машинÑки читлива форма
7390СофтверÑки архитектури
739138
7392ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7393И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7394СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7395Табела за одлучување (1)
7396Conditions 1 2 3 4
7397Rules
7398n
7399Condition #1
7400Condition #2
7401Condition #3
7402Action #1
7403Action #2
7404Action #3
7405Action #4
7406Action #5
7407Actions
7408СофтверÑки архитектури
740939
7410ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7411И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7412СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7413Табела за одлучување (2)
7414ï® ÐšÐ¾Ð½Ñтрукција на табела за одлучување
74151. Ðабројување на Ñите акции поврзани Ñо
7416одреден модул
74172. Ðабројување на Ñите уÑлови (одлуки) кои
7418Ñе релевантни за дадениот модул
74193. Поврзување на одредени групи уÑлови Ñо
7420Ñоодветните акции
74214. Дефинирање на правилата кои
7422одредуваат кои акции Ñе појавуваат при
7423одредена комбинација на уÑлови
7424СофтверÑки архитектури
742540
7426ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7427И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7428СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7429Пример
7430Conditions 1
7431TTFFF
7432FFTTF
7433TFTF
7434FTFT
74352345
7436Rules
7437Fixed rate acct.
7438Variable rate acct.
7439Consumption <100 kwh
7440Consumption ≥100 kwh
7441Min. monthly charge
7442Schedule A billing
7443Schedule B billing
7444Other treatment
7445Actions
7446If the customer account is
7447billed using a fixed rate
7448method, a minimum monthly
7449charge is assessed for
7450consumption of less than 100
7451KWH (kilowatt-hours).
7452Otherwise, computer billing
7453applies a Schedule A rate
7454structure. However, if the
7455account is billed using a
7456variable rate method, a
7457Schedule A rate structure will
7458apply to consumption below
7459100 KWH, with additional
7460consumption billed according
7461to Schedule B.
7462СофтверÑки архитектури
746341
7464ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7465И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7466СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7467Пример
7468ï® ÐŸÐ¾Ð¿ÑƒÑÑ‚ за prepaid мобилен
7469ï® Ð”Ð¾ÐºÐ¾Ð»ÐºÑƒ е кориÑник подолго од 1 година, за
7470вредноÑÑ‚ на Ñообраќај 200-499 ден. добива
7471попуÑÑ‚ од 20 ден, а за Ñообраќај над 500 ден.
7472добива попуÑÑ‚ од 50 ден. и 10 беÑплатни SMS
7473пораки.
7474ï® Ðко е кориÑник помалку од 1 година, за
7475вредноÑÑ‚ на Ñообраќај 300-499 ден. добива
7476попуÑÑ‚ од 20 ден, а за Ñообраќај над 500 ден.
7477добива попуÑÑ‚ од 40 ден. и 5 беÑплатни SMS
7478пораки.
7479СофтверÑки архитектури
748042
7481ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7482И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7483УÑлови 1 2 3 4 5 6 7 8
7484КориÑник>1год. F F F F T T T T
7485Сообраќај
7486<200 ден. T T
7487200-299 ден. T T
7488300-499 ден. T T
7489>500 ден. T T
7490Ðкции
7491ПопуÑÑ‚ 0 ден.   
7492ПопуÑÑ‚ 20 ден.   
7493ПопуÑÑ‚ 40 ден. 
7494ПопуÑÑ‚ 50 ден. 
7495Ð‘Ð¾Ð½ÑƒÑ SMS 0 0 0 5 0 0 0 10
7496СофтверÑки архитектури
749743
7498ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7499И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7500СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7501Пример:
7502ï® ÐŸÑ€ÐµÑметка за кабелÑки интернет (наративно):
7503ï® ÐŸÐ¾Ñтојат фикÑен и прогреÑивен модел.
7504ï® ÐšÐ°Ñ˜ фикÑниот модел (проток од xx Kb/s) Ñекој претплатник плаќа
7505фикÑна претплата од 500 ден. во која Ñе вклучени 500 MB
7506оÑтварен проток. По надминувањето на оваа вредноÑÑ‚ протокот
7507опаѓа на yy Kb/s.
7508ï® ÐšÐ°Ñ˜ прогреÑивниот модел (проток од zz Kb/s) претплатник плаќа
7509фикÑна претплата од 1000 ден. во која Ñе вклучени 1 GB
7510оÑтварен проток.
7511ï® Ð—Ð° Ñекои дополнителни започнати 500 MB Ñе наплаќаат
7512дополнителни 200 денари
7513ï® ÐœÐ°ÐºÑималната Ñума која може да му Ñе наплати на
7514претплатникот (без оглед на оÑтварениот транÑфер) не може да
7515надмине 1500 ден.
7516СофтверÑки архитектури
751744
7518ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7519И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7520СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7521Program design language
7522ï® Program design language (PDL), Ñтруктуриран
7523англиÑки или пÑевдокод - речник на говорен а
7524ÑинтакÑа на програмÑки јазик
7525ï® Ð—Ð° разлика од „виÑтинÑките“ програмÑки јазици PDL
7526има и наративен дел.
7527ï® ÐšÐ°Ñ€Ð°ÐºÑ‚ÐµÑ€Ð¸Ñтики на PDL:
7528 фикÑна ÑинтакÑа Ñо клучни зборови кои овозможуваат
7529Ñтруктурни конÑтрукции, декларации на податоци и
7530модуларноÑÑ‚
7531 Ñлободна ÑинтакÑа на говорниот јазик Ñо која Ñе опишува
7532процеÑирањето
7533 можноÑÑ‚ за декларирање на едноÑтавни (Ñкалар, поле) и
7534комплекÑни (лиÑти, Ñтебла) податочни Ñтруктури
7535 можноÑÑ‚ за дефинирање на подпрограми и техники за нивно
7536повикување (и Ð¾Ð¿Ð¸Ñ Ð½Ð° интерфејÑи)
7537СофтверÑки архитектури
753845
7539ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7540И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7541СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7542Пример
7543PROCEDURE security.monitor;
7544INTERFACE RETURNS system.status;
7545TYPE signal IS STRUCTURE DEFINED
7546name IS STRING LENGTH VAR;
7547address IS HEX device location;
7548bound.value IS upper bound SCALAR;
7549message IS STRING LENGTH VAR;
7550END signal TYPE;
7551TYPE system.status IS BIT (4);
7552TYPE alarm.type DEFINED
7553smoke.alarm IS INSTANCE OF signal;
7554fire.alarm IS INSTANCE OF signal;
7555water.alarm IS INSTANCE OF signal;
7556temp.alarm IS INSTANCE OF signal;
7557burglar.alarm IS INSTANCE OF signal;
7558TYPE phone.number IS area code + 7-digit number;
7559СофтверÑки архитектури
756046
7561ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7562И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7563СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7564Пример
7565•
7566•
7567initialize all system ports and reset all hardware;
7568CASE OF control.panel.switches (cps):
7569WHEN cps = "test" SELECT
7570CALL alarm PROCEDURE WITH "on" for test.time in seconds;
7571WHEN cps = "alarm-off" SELECT
7572CALL alarm PROCEDURE WITH "off";
7573WHEN cps = "new.bound.temp" SELECT
7574CALL keypad.input PROCEDURE;
7575WHEN cps = "burglar.alarm.off" SELECT deactivate signal
7576[burglar.alarm];
7577•
7578•
7579•
7580DEFAULT none;
7581ENDCAS
7582СофтверÑки архитектури
758347
7584ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7585И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7586СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7587Пример
7588REPEAT UNTIL activate.switch is turned off
7589reset all signal.values and switches;
7590DO FOR alarm.type = smoke, fire, water, temp, burglar;
7591READ address [alarm.type] signal.value;
7592IF signal.value > bound [alarm.type]
7593THEN phone.message = message [alarm.type];
7594set alarm.bell to "on" for alarm.timeseconds;
7595PARBEGIN
7596CALL alarm PROCEDURE WITH "on", alarm.time in seconds;
7597CALL phone PROCEDURE WITH message [alarm.type], phone.number;
7598ENDPAR
7599ELSE skip
7600ENDIF
7601ENDFOR
7602ENDREP
7603END security.monitor
7604СофтверÑки архитектури
760548
7606ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7607И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7608СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7609Attributes of design notation
7610ï® Modularity
7611ï® Overall simplicity
7612 relatively simple to learn
7613 relatively easy to use
7614 generally easy to read
7615ï® Ease of editing
7616ï® Machine readability
7617ï® Maintainability
7618ï® Structure enforcement
7619ï® Automatic processing
7620ï® Data representation
7621ï® Logic verification
7622ï® "Code-to" ability
7623СофтверÑки архитектури
762449
7625ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7626И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7627СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7628Прашања?
762950
7630СофтверÑки архитектури
7631_______________________________________________________________________________________________________________
7632ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7633КориÑнички
7634интерфејÑи
7635СофтверÑко инженерÑтво
7636ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7637И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7638СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7639Дизајн на интерфејÑи
7640ï® Ð”Ð¸Ð·Ð°Ñ˜Ð½ на интерфејÑи помеѓу
7641ÑофтверÑките компоненти
7642ï® Ð”Ð¸Ð·Ð°Ñ˜Ð½ на интерфејÑи помеѓу Ñофтверот
7643и други технички ÑредÑтва кои
7644продуцираат или конÑумираат
7645информации
7646ï® Ð”Ð¸Ð·Ð°Ñ˜Ð½ на интерфејÑи помеѓу човекот
7647(кориÑникот) и компјутерот
7648СофтверÑки архитектури
76492
7650ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7651И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7652СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7653КориÑнички интерфејÑ
7654ï® Ð¢Ñ€Ð°Ð±Ð° да обезбеди ефикаÑен комуникациÑки
7655медиум помеѓу човекот и компјутерот
7656ï® Ð¡Ð¿Ð¾Ñ€ÐµÐ´ него кориÑникот го препознава и цени
7657Ñофтверот
7658ï® ÐšÐ¾Ñ€Ð¸Ñникот помалку ги гледа Ñкриените
7659квалитети и функционалноÑÑ‚ на Ñофтверот и
7660го цени Ñпоред едноÑтавноÑта Ñо која може
7661да ги поÑтигне Ñвоите цели
7662ï® Ð”Ð¸Ð·Ð°Ñ˜Ð½Ð¾Ñ‚ на Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÑ˜Ñ Ð·Ð°Ð²Ð¸Ñи како од
7663технолошките прашања така и од
7664проучување на потребите, однеÑувањето и
7665желбите на кориÑникот
7666СофтверÑки архитектури
76673
7668ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7669И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7670СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7671Дизајн на кориÑнички интерфејÑ
7672Златни правила:
76731. Да Ñе даде контролата на кориÑникот
76742. Да Ñе намали оптоварувањето на
7675меморијата на кориÑникот
76763. КонзиÑтентен интерфејÑ
7677ï® Ðаметнување ограничувања во интерфејÑот
7678Ñо цел да Ñе поедноÑтави, но за кого?
7679ЕдноÑтавна имплементација -
7680фруÑтрирачка употреба
7681СофтверÑки архитектури
76824
7683ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7684И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7685СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7686Контролата на кориÑникот
7687ï® Ð”ÐµÑ„Ð¸Ð½Ð¸Ñ€Ð°ÑšÐµ на модови на интеракција кои нема да
7688го принудуваат кориÑникот да преземе непотребни
7689или неÑакани акции
7690ï® ÐžÐ±ÐµÐ·Ð±ÐµÐ´ÑƒÐ²Ð°ÑšÐµ флекÑибилна интеракција (keyboard,
7691mouse, …)
7692ï® Ð˜Ð½Ñ‚ÐµÑ€Ð°ÐºÑ†Ð¸Ñ˜Ð° која ќе може да Ñе откаже (прекине) и
7693поништи (undo) (одÑтори?ïŠ)
7694ï® Ð£Ð½Ð°Ð¿Ñ€ÐµÐ´ÑƒÐ²Ð°ÑšÐµ на интеракцијата Ñо иÑкуÑтвото на
7695кориÑникот и можноÑÑ‚ за нагодување (macro)
7696ï® Ð¡Ð¾ÐºÑ€Ð¸Ð²Ð°ÑšÐµ на техничките детали од обичниот
7697кориÑник
7698ï® ÐžÐ²Ð¾Ð·Ð¼Ð¾Ð¶ÑƒÐ²Ð°ÑšÐµ директна интеракција Ñо објектите на
7699екранот
7700СофтверÑки архитектури
77015
7702ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7703И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7704СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7705КориÑникот да треба што
7706помалку да памти (и размиÑлува)
7707ï® Ðамалување на потребата од краткотрајна
7708меморија (да не мора да ги памти минатите
7709акции)
7710ï® Ð’Ð¾ÑпоÑтавување на Ñоодветни подразбирани
7711вредноÑти (за проÑечен кориÑник, можноÑÑ‚ за
7712Ñпецифицирање индивидуални преференци,
7713реÑет)
7714ï® Ð”ÐµÑ„Ð¸Ð½Ð¸Ñ€Ð°ÑšÐµ на интуитивни кратенки
7715(shortcuts)
7716ï® Ð’Ð¸Ð·ÑƒÐµÐ»ÐµÐ½ изглед на интерфејÑот заÑнован на
7717метафора од реалниот Ñвет
7718ï® ÐŸÑ€Ð¾Ð³Ñ€ÐµÑивен приÑтап до деталите
7719СофтверÑки архитектури
77206
7721ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7722И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7723СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7724КонзиÑтентен интерфејÑ
77251. Организација на визуелните
7726информации Ñпоред Ñтандарди за
7727дизајн кои Ñе применуваат на Ñите
7728прикази
77292. КонзиÑтентна употреба на ограничени
7730број начини за внеÑување на податоци
77313. КонзиÑтентно дефинирани и
7732имплементирани механизми за
7733навигација
7734СофтверÑки архитектури
77357
7736ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7737И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7738СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7739КонзиÑтентен интерфејÑ
7740ï® Ð›ÐµÑна идентификација на контекÑтот на
7741тековната акција од Ñтрана на
7742кориÑникот
7743ï® Ð—Ð°Ð´Ñ€Ð¶ÑƒÐ²Ð°ÑšÐµ на конзиÑтентноÑта низ
7744фамилија од апликации
7745ï® Ð”Ð° не Ñе прават промени од
7746вообичаените очекувања на кориÑникот
7747за интерфејÑот (Ñтандардот) без добра
7748причина
7749СофтверÑки архитектури
77508
7751ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7752И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7753СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7754Ðнализа и дизајн на
7755интерфејÑи
7756ï® user model – профил на кориÑникот на
7757ÑиÑтемот (возраÑÑ‚, пол, образование,
7758...)
7759ï® design model (user: novice,
7760knowledgeable intermittent/frequent user)
7761ï® mental model (system perception)
7762ï® implementation model – изглед и
7763однеÑување на интерфејÑот
77649
7765СофтверÑки архитектури
7766ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7767И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7768СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7769The User Interface Design Process
7770Interface
7771validation
7772Implementation Interface design
7773User, task, and
7774environment analysis
7775СофтверÑки архитектури
777610
7777Interface construction
7778Interface analysis and modeling
7779ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7780И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7781СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7782ÐктивноÑти при дизајн на
7783интерфејÑ
7784ï® Ðнализа на кориÑниците
7785 кориÑници, задачи, Ñодржина, околина
7786 информации од: интервју, продажба, маркетинг, поддршка
7787ï® Ðнализа и моделирање на задачите
7788ï® Ð”Ð¸Ð·Ð°Ñ˜Ð½ на интерфејÑ
7789 воÑпоÑтавување на цели
7790 преÑликување на Ñекоја цел во Ñеквенца на Ñпецифични
7791акции
7792 индицирање на ÑоÑтојбата на ÑиÑтемот и дефинирање на
7793контролни механизми
7794ï® Ð”ÐµÑ„Ð¸Ð½Ð¸Ñ€Ð°ÑšÐµ на објекти и акции на интерфејÑот
7795(изглед и раÑпоред на контроли, копчиња, икони,
7796type, click, drag, drop, …)
7797СофтверÑки архитектури
779811
7799ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7800И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7801СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7802Design issues
7803ï® System response time
7804 length
7805 variability
7806ï® User help facilities
7807 integrated (context sensitive)
7808 add-on
7809ï® Error information handling
7810 describe the problem in jargon that the user can understand
7811 provide constructive advice for recovering from the error
7812 indicate any negative consequences of the error
7813 accompanied by an audible or visual cue
7814 should be "nonjudgmental." never place blame on the user
7815ï® Command labeling
7816 Will every menu option have a corresponding command?
7817 What form will commands take?
7818 How difficult will it be to learn and remember the commands? What can
7819be done if a command is forgotten?
7820 Can commands be customized or abbreviated by the user?
7821ï® Accessibility / Internationalization
7822СофтверÑки архитектури
782312
7824ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7825И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7826СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7827Имплементација на кориÑнички
7828интерфејÑ
7829ï® UIDS (user-interface toolkits or user-interface
7830development systems)
7831 managing input devices (such as a mouse or keyboard)
7832 validating user input
7833 handling errors and displaying error messages
7834 providing feedback (e.g., automatic input echo)
7835 providing help and prompts
7836 handling windows and fields, scrolling within windows
7837 establishing connections between application software and the
7838interface
7839 insulating the application from interface management functions
7840 allowing the user to customize the interface
7841СофтверÑки архитектури
784213
7843ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7844И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7845СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7846Прашања?
784714
7848СофтверÑки архитектури
7849____________________________________________________________________________________________________________________________
7850ТеÑтирање
7851Менаџирање на квалитет
7852ï® ÐšÐ²Ð°Ð»Ð¸Ñ‚ÐµÑ‚ на Ñофтвер
7853user satisfaction =
7854compliant product + good quality
7855+ delivery within budget and schedule
7856ï® ÐšÐ°ÐºÐ¾ да Ñе поÑтригне?
7857Методи на СИ
7858Техники на проектен менаџмент
7859Контрола на квалитет
7860Обезбедување квалитет
78612
7862ТеÑтирање
7863ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7864И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7865СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7866Обезбедување квалитет
7867ï® ÐŸÑ€ÐµÐ³Ð»ÐµÐ´Ð¸ (review)
7868ï® Ð¢ÐµÑтирање
7869Техники
7870Стратегии
7871ï® Ð¤Ð¾Ñ€Ð¼Ð°Ð»Ð½Ð¸ модели и верификација
7872ï® ÐœÐµÐ½Ð°ÑŸÐ¸Ñ€Ð°ÑšÐµ на конфигурации
7873ï® ÐœÐµÑ‚Ñ€Ð¸ÐºÐ¸
78743
7875ТеÑтирање
7876ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7877И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7878СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7879ТеÑтирање
7880ï® ÐŸÐ¾Ñ€Ð°Ð´Ð¸ човечката неÑпоÑобноÑÑ‚ да
7881работи и комуницира перфектно (без
7882грешки), Ñофтверот мора да Ñе
7883проверува
7884ï® Ð¢ÐµÑтирањето е критичниот елемент во
7885процеÑот за проверка на квалитетот на
7886Ñофтверот и претÑтавува конечна
7887ревизија на Ñпецификацијата, дизајнот
7888и кодирањето
7889ТеÑтирање
78904
7891ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7892И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7893СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7894ВажноÑÑ‚ на теÑтирањето
7895ï® Ð¢ÐµÑтирањето е една од фазите на
7896развој на Ñофтвер која (иÑто така) треба
7897да Ñе планира
7898ï® Ð¡Ðµ Ñлучува и 30-40% од трудот во
7899проектот да Ñе потроши на теÑтирање
7900ï® ÐšÐ°Ñ˜ некои Ñпецијални ÑиÑтеми
7901теÑтирањето може да чини 3-5 пати
7902повеќе од Ñите оÑтанати фази на
7903развојот на Ñофтвер заедно
7904ТеÑтирање
79055
7906ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7907И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7908СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7909Цел на теÑтирањето
7910ï® Ð¦ÐµÐ»Ñ‚Ð° на теÑтирањето е да Ñе откријат (и
7911поправат) што поголем број грешки пред
7912Ñофтверот да Ñе иÑпорача на клиентот.
7913ï® Ð—Ð° да Ñе поÑтигне ова треба да Ñе
7914„конÑтруираат“ и изведат Ñерија на теÑтови
7915кои имаат голема веројатноÑÑ‚ да пронајдат
7916грешка
79172 главни приÑтапа:
7918 теÑтови кои ја проверуваат интерната логика на
7919компонентите
7920 теÑтови кои генерирајќи влез и набљудувајќи го
7921излезот од програмата Ñе обидуваат да откријат
7922грешки во функционирањето, однеÑувањето и
7923перформанÑите на Ñофтверот
7924ТеÑтирање
79256
7926ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7927И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7928СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7929Кој го изведува?
7930ï® Ð¡Ð¾Ñ„Ñ‚Ð²ÐµÑ€Ñкиот инженер - во почетните
7931фази на развојот на Ñофтвер
7932(Ñпецификацијата, архитектурата)
7933ï® ÐŸÑ€Ð¾Ð³Ñ€Ð°Ð¼ÐµÑ€Ð¾Ñ‚ – Ñвојот дел од кодот
7934ï® Ð¡Ð¿ÐµÑ†Ð¸Ñ˜Ð°Ð»Ð¸ÑÑ‚ (теÑтер) – во поÑледните
7935фази – интеграција
7936ï® ÐšÑ€Ð°Ñ˜Ð½Ð¸Ð¾Ñ‚ кориÑник – во текот на целиот
7937животен век на кориÑтење на
7938апликацијата
7939ТеÑтирање
79407
7941ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7942И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7943СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7944Зошто е важно?
7945ï® ÐŸÑ€Ð¸ ревизиите и оÑтанатите техники за
7946SQA може да Ñе откријат грешки но не
7947Ñе доволни
7948ï® Ð—Ð° да Ñе пронајдат што е можно повеќе
7949грешки неопходно е теÑтовите да бидат
7950конÑтруирани диÑциплинирано (test
7951case design) и да Ñе изведат
7952ÑиÑтематÑки
7953ТеÑтирање
79548
7955ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7956И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7957СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7958Како Ñе прави?
7959ï® Ð¢ÐµÑтирањето на Ñофтверот Ñе прави од две
7960перÑпективи:
79611. White box testing – креирање на теÑтови на
7962оÑнова на интерната програмÑка логика
79632. Black box testing - креирање на теÑтови од
7964аÑпект Ñамо на влезот и излезот од ÑиÑтемот
7965ï® ÐŸÑ€Ð¸ теÑтирањето треба да Ñе промени
7966перÑпективата – да Ñе обидеме да го
7967„урнеме“ Ñофтверот
7968ТеÑтирање
79699
7970ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7971И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7972СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7973Грешки...
7974ï® Ð—Ð° разлика од оÑтанатите активноÑти
7975при развојот на Ñофтвер кои Ñе
7976„конÑтруктивни“, теÑтирањето е
7977ÑиÑтематÑко Ñпроведување
7978„деÑтруктивна“ активноÑÑ‚
7979ï® Ðко го прифатиме фактот дека човекот
7980(и Ñè што тој прави) не е Ñовршен(о) и
7981дека е човечки да Ñе греши, мора да Ñе
7982вложи дополнителен труд за нивно
7983лоцирање и поправање
7984ТеÑтирање
798510
7986ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
7987И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
7988СОФТВЕРСКО ИÐЖЕÐЕРСТВО
7989Цели
7990ï® Ð¢ÐµÑтирањето претÑтавува извршување на
7991програмата Ñо цел да Ñе пронајдат грешки
7992во неа
7993ï® Ð”Ð¾Ð±Ð°Ñ€ теÑÑ‚ е оној кој има виÑока веројатноÑÑ‚
7994да пронајде неоткриени грешки
7995ï® Ð£Ñпешен теÑÑ‚ е оној кој уÑпеал да открие Ñе
7996уште неоткриена грешка
7997ï® Ð¦ÐµÐ»Ñ‚Ð° е да Ñе дизајнираат теÑтови кои ќе
7998откријат најголем број грешки Ñо минимален
7999напор и време
8000ТеÑтирање
800111
8002ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8003И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8004СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8005ÐуÑпродукти
8006ï® Ð¡Ð¾ теÑтирањето не Ñамо што Ñе
8007откриваат грешки туку и Ñе проверува
8008дали програмата работи Ñпоред
8009Ñпецификациите
8010ï® ÐŸÐ¾Ð´Ð°Ñ‚Ð¾Ñ†Ð¸Ñ‚Ðµ Ñобрани при теÑтирањето
8011претÑтавуваат добар показател на
8012доверливоÑта и квалитетот на
8013Ñофтверот
8014ï® Ð¢ÐµÑтирањето не може да докаже
8015непоÑтоење на грешки во Ñофтверот
8016ТеÑтирање
801712
8018ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8019И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8020СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8021Принципи
80221. Сите теÑтови мора да може да Ñе траÑираат
8023до барањата на клиентот
80242. ТеÑтирањето треба да Ñе планира доволно
8025долго пред да започне
80263. Pareto принцип – 80% од грешките Ñе
8027лоцирани во 20% од модулите
80284. Почнување Ñо теÑтирање „на мало“ и
8029поÑтепено помеÑтување кон теÑтирање „на
8030големо“
80315. ИÑцрпно теÑтирање не е можно
80326. За да биде најефективно теÑтирањето е
8033најдобро да биде изведено од незавиÑна
8034Ñтрана
8035ТеÑтирање
803613
8037ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8038И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8039СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8040Testability
8041ï® Testability = колку леÑно одредена
8042програма може да биде теÑтирана
8043ï® Ð£ÑˆÑ‚Ðµ при креирањето на програмата да
8044Ñе миÑли на нејзиното теÑтирање и како
8045би можело иÑтото да Ñе олеÑни
8046ТеÑтирање
804714
8048ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8049И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8050СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8051Testability атрибути
8052КарактериÑтики (атрибути) на Ñофтверот од
8053аÑпект на можноÑтите за негово теÑтирање:
8054ï® Operability
8055ï® Observability
8056ï® Controllability
8057ï® Decomposability
8058ï® Simplicity
8059ï® Stability
8060ï® Understandability
806115
8062ТеÑтирање
8063ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8064И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8065СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8066Operability (оперативноÑÑ‚)
8067“The better it works, the more efficiently it can be testedâ€
8068(Колку подобро работи, поефикаÑно може да Ñе
8069теÑтира)
8070ï® Ð¡Ð¸Ñтемот има малку грешки (грешките значат
8071дополнителна анализа и извештаи во процеÑот на
8072теÑтирање)
8073ï® Ðема грешки кои го блокираат извршувањето на
8074теÑтови
8075ï® ÐŸÑ€Ð¾Ð´ÑƒÐºÑ‚Ð¾Ñ‚ Ñе развива во функционални чекори
8076(овозможува иÑтовремен развој и теÑтирање).
807716
8078ТеÑтирање
8079ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8080И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8081СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8082Observability (набљудливоÑÑ‚)
8083“What you see is what you test“
8084(Она што Ñе гледа е она што Ñе теÑтира)
8085ï® Ð’Ð»ÐµÐ·Ð¾Ð²Ð¸Ñ‚Ðµ внеÑени при теÑтирањето
8086произведуваат одреден излез
8087ï® Ð¡Ð¾Ñтојбата на ÑиÑтемот и променливите Ñе
8088видливи за време на извршувањето
8089ï® ÐŸÐ¾Ð³Ñ€ÐµÑˆÐ½Ð¸Ñ‚Ðµ излези Ñе леÑно забележливи
8090ï® Ð˜Ð½Ñ‚ÐµÑ€ÐµÐ½Ð¸Ñ‚Ðµ грешки автоамтÑки Ñе фаќаат и
8091пријавуваат
8092ï® Ð˜Ð·Ð²Ð¾Ñ€Ð½Ð¸Ð¾Ñ‚ код е доÑтапен
809317
8094ТеÑтирање
8095ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8096И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8097СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8098Controllability (контрола)
8099“The better we can control the software, the more the
8100testing can be automated and optimizedâ€
8101(Колку подобро можеме да го контролираме
8102Ñофтверот, толку теÑтирањето може да Ñе
8103автоматизира и оптимизира)
8104ï® Ð¡Ð¸Ñ‚Ðµ можни излези може да бидат генерирани преку
8105некоја комбинација на влезови, а влезно/излезните
8106формати Ñе конзиÑтентни и Ñтруктурирани
8107ï® Ð¡Ð¸Ñ‚Ðµ делови од кодот може да Ñе извршат Ñо
8108Ñоодветна комбинација на влезовите
8109ï® Ð¢ÐµÑтовите можат да бидат формално
8110Ñпецифицирани, автоматизирани и репродуцирани
811118
8112ТеÑтирање
8113ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8114И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8115СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8116Decomposability (разложливоÑÑ‚)
8117“By controlling the scope of testing, we can more
8118quickly isolate problems and perform smarter
8119retesting“
8120(Со контролирање на опÑегот на теÑтирање,
8121може побрзо да Ñе изолираат проблемите и
8122помудро да Ñе изведува повторно теÑтирање)
8123ï® Ð¡Ð¾Ñ„Ñ‚Ð²ÐµÑ€Ñкиот ÑиÑтем е изграден од
8124незавиÑни модули кои може да Ñе теÑтираат
8125незавиÑно
8126ТеÑтирање
812719
8128ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8129И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8130СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8131Simplicity (едноÑтавноÑÑ‚)
8132"The less there is to test, the more quickly we can test it“
8133(Колку помалку има за теÑтирање, побргу може да Ñе
8134иÑтеÑтира)
8135ï® Functional simplicity (множеÑтвото на
8136функционалноÑти е минимизирано Ñамо на
8137неопходно потребните за задоволување на
8138барањата)
8139ï® Structural simplicity (архитектурата е модуларизирана
8140за да Ñе намали пропагацијата на грешки)
8141ï® Code simplicity (уÑвоени Ñтандарди за кодирање Ñо
8142што Ñе олеÑнува инÑпекцијата и одржувањето)
8143ТеÑтирање
814420
8145ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8146И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8147СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8148Stability (ÑтабилноÑÑ‚)
8149"The fewer the changes, the fewer the disruptions
8150to testing.“
8151(Колку помалку промени, толку помалку
8152прекини во теÑтирањето)
8153ï® ÐŸÑ€Ð¾Ð¼ÐµÐ½Ð¸Ñ‚Ðµ во Ñофтверот Ñе ретки и
8154контролирани
8155ï® ÐововнеÑените промени не ги нарушуваат
8156поÑтојните теÑтови
8157ï® Ð¡Ð¾Ñ„Ñ‚Ð²ÐµÑ€Ð¾Ñ‚ добро Ñе Ñправува Ñо иÑпади
8158ТеÑтирање
815921
8160ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8161И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8162СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8163Understandability (разбирливоÑÑ‚)
8164"The more information we have, the smarter we
8165will test“
8166(Колку повеќе информации имаме, подобро
8167може да теÑтираме)
8168ï® ÐрхитектонÑкиот дизајн и завиÑноÑтите
8169помеѓу интерните, екÑтерните и делените
8170компоненти Ñе добро разбрани
8171ï® Ð¢ÐµÑ…Ð½Ð¸Ñ‡ÐºÐ°Ñ‚Ð° документација е леÑно доÑтапна,
8172добро организирана, детална, прецизна и
8173точна.
8174ï® ÐŸÑ€Ð¾Ð¼ÐµÐ½Ð¸Ñ‚Ðµ во дизајнот Ñе проÑледуваат до
8175теÑтерите
8176ТеÑтирање
817722
8178ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8179И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8180СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8181Ðтрибути на „добар“ теÑÑ‚
8182Ðтрибути на „добар“ теÑÑ‚:
81831. ВиÑока веројатноÑÑ‚ да пронајде грешка
81842. Добриот теÑÑ‚ не Ñмее да биде редундантен
8185– времето и реÑурÑите за теÑтирање Ñе
8186ограничени
81873. Добриот теÑÑ‚ треба да биде најдобриот од
8188видот
8189ï® (од група Ñлични теÑтови да Ñе избере оној кои има
8190најголема веројатноÑÑ‚ да открие цела клаÑа на грешки)
81914. Добриот теÑÑ‚ не треба да биде ниту
8192премногу едноÑтавен ниту премногу
8193комплекÑен
8194ТеÑтирање
819523
8196ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8197И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8198СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8199Test Case Design
8200Цел:
8201ï® ÐšÑ€ÐµÐ¸Ñ€Ð°ÑšÐµ теÑтови кои имаат најголема
8202веројатноÑÑ‚ да откријат најмногу грешки
8203Ñо минимален напор и за најмалку
8204време
8205ï® ÐŸÐ¾Ñтојат бројни методологии кои
8206обезбедуваат ÑиÑтематÑки приÑтап кон
8207теÑтирањето
8208ТеÑтирање
820924
8210ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8211И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8212СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8213Black / White box testing
8214ï® Ð¡Ð¸Ñ‚Ðµ инженерÑки (и некои други) продукти може во
8215принцип да Ñе теÑтираат на два различни начини
82161. Познавајќи ја Ñпецификацијата на функцијата за
8217која продуктот е дизајниран, може да Ñе изведуваат
8218теÑтови кои ќе демонÑтрираат дека Ñите функции
8219Ñе оперативни, иÑтовремено барајќи грешки во
8220Ñекоја од функциите – Black box testing („црна
8221кутија“ – без познавање на деталите како ÑиÑтемот
8222е реализирани и функционира)
82232. Познавајќи ја интерната Ñтруктура (и начин на
8224функционирање) на продуктот, може да Ñе
8225изведуваат теÑтови кои ќе оÑигурат дека интерно
8226Ñè функционира како што траба (Ñпоред
8227Ñпецификациите) – White box testing (glass box
8228testing)
8229ТеÑтирање
823025
8231ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8232И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8233СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8234Black / White box кај Ñофтвер
8235За Ñофтверот:
8236ï® Black box testing – теÑтирање преку
8237интерфејÑот на Ñофтверот на неговата
8238функционалноÑÑ‚ (влез, излез, DB),
8239фундаменталните аÑпекти на ÑиÑтемот без
8240оÑврт на неговата интерната Ñтруктура и
8241организација
8242ï® White box testing – теÑтирање на
8243процедуралните детали на Ñофтверот преку
8244теÑтови кои проверуваат Ñпецифични групи
8245на уÑлови и/или циклуÑи
8246ТеÑтирање
824726
8248ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8249И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8250СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8251Ограничувања
8252ï® Ð˜ покрај можноÑта за ÑеопфатноÑÑ‚ на white
8253box теÑтовите, физички е невозможно да Ñе
8254изведат Ñите можни теÑтови (да Ñе проверат
8255Ñите можни патеки на извршување на
8256програмата)
8257ï® ÐŸÑ€Ð¸Ð¼ÐµÑ€ - 100 реда C програма во која има:
8258 2 вгнездени циклуÑи кои Ñе повторуваат од 1 до 20
8259пати Ñекој завиÑно од податок на влезот
8260 во внатрешниот Ñ†Ð¸ÐºÐ»ÑƒÑ Ð¸Ð¼Ð° 4 if-then-else Ñтруктури
8261ï® ÐŸÐ¾Ñтојат околу 1014 можни патеки по кои
8262може да Ñе изведе оваа програма
8263Ðко 1 test case = 1 ms → преку 3000 години
8264ТеÑтирање
826527
8266ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8267И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8268СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8269White Box Testing (1)
8270ï® White box testing (glass box testing) е метод за
8271дизајнирање на теÑтови кој го кориÑти познавањето
8272на контролна Ñтруктура на процедуралниот дизајн за
8273изведување на теÑтови.
8274ï® Ðа овој начин можат да Ñе изведат теÑтови кои:
8275 гарантираат дека Ñите незавиÑни контролни патеки во
8276модулот ќе бидат извршени барем еднаш
8277 ги извршуваат Ñите логички одлуки на нивната виÑтинита и
8278невиÑтинита Ñтрана
8279 ги извршуваат Ñите циклуÑи на Ñамите граници и во рамките
8280на предвидениот опÑег
8281 ја проверуваат валидноÑта на интерните податочни
8282Ñтруктури
8283ТеÑтирање
828428
8285ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8286И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8287СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8288White Box Testing (2)
8289ï® Ð˜ покрај ограничувањата (физичката неможноÑÑ‚ да
8290Ñе проверат Ñите теÑтови кои може да Ñе генерираат)
8291white box теÑтирањето е важно бидејќи:
8292 Појавата на логички грешки и погрешни претпоÑтавки е
8293обратно пропорционална Ñо веројатноÑта на преземањето
8294на патеката низ програмата (поверојатни грешки кај
8295Ñпецијалните Ñлучаи)
8296 Логичките патеки за кои миÑлиме дека ретко Ñе извршуваат,
8297вÑушноÑÑ‚ можеби Ñе извршуваат регуларно – да не наведе
8298на погрешен дизајн
8299 ПоÑтојат Ñлучајни типографÑки грешки (голем број ги открива
8300компајлерот, но некои оÑтануваат незабележани -
8301подеднакво е веројатно да Ñе појават и на ретките и на
8302вообичаените патеки низ програмата)
8303ТеÑтирање
830429
8305ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8306И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8307СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8308Basis Path Testing
8309ï® Basis path testing (McCabe, 1976) –
8310изведување на мера за логичка
8311комплекÑноÑÑ‚ на процедуралниот
8312дизајн. КориÑтење на иÑтата во
8313дизајнирањето на оÑновното множеÑтво
8314на извршни патеки кои гарантираат
8315извршување на Ñекоја наредба во
8316програмата најмалку еднаш при
8317теÑтирањето
8318ТеÑтирање
831930
8320ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8321И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8322СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8323Flow Graph Notation
8324ï® Ð“Ñ€Ð°Ñ„Ð¸Ñ‡ÐºÐ° претÑтава на контролниот
8325логички тек на програмата во форма на
8326граф
8327ï® Ð¡ÐµÐºÐ¾Ñ˜Ð° Ñтруктура во процедуралниот
8328Ð¾Ð¿Ð¸Ñ Ñе заменува Ñо Ñоодветен Ñимбол
8329If While
8330The structured constructs in flow graph form:
8331Where each circle represents one or more
8332nonbranching PDL or source code statements
8333Until
8334Case
8335Sequence
8336ТеÑтирање
833731
8338ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8339И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8340СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8341ПреÑликување во Flow Graph (1)
83421
83433
834410
83456
83469
83472
83484
83497 8 5
835011
83511
83522,3
83536 4,5
83549
835510
835611
83577 8
8358R1
8359R3
8360R2
8361R4
8362Region
8363Node
8364Edge
8365path 1: 1-11
8366path 2: 1-2-3-4-5-10-1-11
8367path 3: 1-2-3-6-8-9-10-1-11
83681-2-3-4-5-10-1-2-3-6-8-9-10-1-11 path 4: 1-2-3-6-7-9-10-1-11
8369basis
8370set
8371paths
8372ТеÑтирање
837332
8374ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8375И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8376СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8377ПреÑликување во Flow Graph (2)
8378ï® Ð¡ÐµÐºÐ¾Ñ˜ јазел во графот на тек претÑтавува
8379една или повеќе процедурални „наредби“
8380блокови
8381ï® Ð¡ÐµÐºÐ²ÐµÐ½Ñ†Ð° на процеÑни блокови и ромб за
8382(едноÑтавна) одлука може да Ñе претÑтават
8383Ñо единÑтвен јазел
8384ï® Ð¡ÐµÐºÐ¾Ñ˜Ð° врÑка мора да заврши во јазел дури и
8385ако тој не претÑтавува процедурален блок
8386ï® ÐžÐ±Ð»Ð°Ñтите ограничени Ñо јазли и врÑки Ñе
8387нарекуваат региони
8388ТеÑтирање
838933
8390ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8391И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8392СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8393ПреÑликување во Flow Graph (3)
8394ï® ÐšÐ°Ñ˜ Ñложените уÑлови (AND, OR) PDL изразите Ñе
8395преÑликуваат во поинаков граф. За Ñекој од
8396примитивните уÑлови Ñе креира одвоен јазел
8397ï® predicate node – јазел за (одлука) гранење од кој
8398излегуваат најмалку 2 врÑки
8399Predicate
8400node
8401.
8402.
8403.
8404IF a OR b
8405then procedure x
8406else procedure y
8407ENDIF
8408y
8409b
8410a
8411x
8412x
8413ТеÑтирање
841434
8415ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8416И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8417СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8418Cyclomatic Complexity
8419ï® Ð¡Ð¾Ñ„Ñ‚Ð²ÐµÑ€Ñка метрика која претÑтавува квантитативна
8420мера на логичката комплекÑноÑÑ‚ на програма
8421ï® ÐžÐ´ аÑпект на теÑтирањето на оÑновни патеки
8422вредноÑта на цикломатÑката комплекÑноÑÑ‚ го
8423дефинира бројот на незавиÑни патеки во програмата
8424и ја дава горната граница на теÑтови кои треба да Ñе
8425изведат за да Ñе обезбеди Ñекоја наредба да биде
8426извршена барем еднаш
8427ï® ÐезавиÑна патека е произволна патека на
8428извршување низ програмата која воведува
8429извршување на барем еден нов процеÑирачки израз
8430или уÑловно гранење (поминува низ барем една нова
8431врÑка од графот)
8432ТеÑтирање
843335
8434ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8435И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8436СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8437ПреÑметување на цикломатÑката
8438комплекÑноÑÑ‚
8439ï® Ð¦Ð¸ÐºÐ»Ð¾Ð¼Ð°Ñ‚Ñка комплекÑноÑÑ‚ може да Ñе
8440преÑмета на три начини:
84411. Бројот на регионите на графот на тек
8442ÑоодветÑтвува на цикломатÑката
8443комплекÑноÑÑ‚
84442. ЦикломатÑката комплекÑноÑÑ‚ V(G) на
8445графот G е дефинирана како:
8446V(G) = E – N + 2
8447каде E е бројот на врÑки (рабови) во графот,
8448N е бројот на јазли
84493. V(G) = P + 1
8450каде P е бројот на предикатни јазли во
8451графот G
8452ТеÑтирање
845336
8454ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8455И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8456СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8457ЦикломатÑката комплекÑноÑÑ‚
84581
84592,3
84606 4,5
84619
846210
846311
84647 8
8465R1
8466R3
8467R2
8468R4
84691
84702
84716 3
84729
84734
84745
84757 8
8476региони = 4
8477V(G)= 11 рабови
8478V(G)= 3 предикатни јазли + 1 = 4
84791. Број на регионите
84802. V(G) = E – N + 2
84813. V(G) = P + 1
8482– 9 јазли +2 = 4
8483ТеÑтирање
848437
8485ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8486И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8487СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8488Deriving Test Cases
84891. Од PDL или од кодот Ñе црта графот
8490на тек
84912. Одредување на цикломатÑка
8492комплекÑноÑÑ‚ од графот
84933. Одредување на оÑновното множеÑтво
8494на незавиÑни патеки
84954. Подготовка на теÑтови кои ќе
8496овозможат извршување на Ñекоја од
8497патеките од оÑновното множеÑтво
8498ТеÑтирање
849938
8500ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8501И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8502СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8503Пример
8504PROCEDURE average;
8505This procedure computes the average of 100 or fewer
8506numbers that lie between bounding values; it also computes the
8507sum and the total number valid.
8508INTERFACE RETURNS average, total.input, total.valid;
8509INTERFACE ACCEPTS value, minimum, maximum;
8510TYPE value[1:100] IS SCALAR ARRAY;
8511TYPE average, total.input, total.valid;
8512minimum, maximum, sum IS SCALAR;
8513TYPE i IS INTEGER;
8514ТеÑтирање
851539
8516ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8517И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8518СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8519i = 1;
8520total.input = total.valid = 0;
8521sum = 0;
8522DO WHILE value[i] <> –999 AND total.input < 100
8523ENDDO
8524IF total.valid > 0
8525ENDIF
8526END average
8527increment total.input by 1;
8528IF value[i] > = minimum AND value[i] < = maximum
8529ENDIF
8530increment i by 1;
8531THEN average = sum / total.valid;
8532ELSE average = –999;
8533THEN increment total.valid by 1;
8534sum = s sum + value[i]
8535ELSE skip
85361
85373
85386
85394
85405
85417
85428
85439
854410
854511 12
854613
85472 1
85482
85493
85504
85515
85526
85537
85548
85559
855610
855712 11
855813
8559V(G) = 6 regions
8560V(G) = 17 edges 13 nodes + 2 = 6
8561V(G) = 5 predicate nodes + 1 = 6
8562ТеÑтирање
856340
8564ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8565И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8566СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8567Патеки
8568path 1: 1-2-10-11-13
8569path 2: 1-2-10-12-13
8570path 3: 1-2-3-10-11-13
8571path 4: 1-2-3-4-5-8-9-2-. . .
8572path 5: 1-2-3-4-5-6-8-9-2-. . .
8573path 6: 1-2-3-4-5-6-7-8-9-2-. . .
85741
85752
85763
85774
85785
85796
85807
85818
85829
858310
858412 11
858513
8586ТеÑтирање
858741
8588ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8589И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8590СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8591Test Cases (1)
8592Path 1 test case:
8593value(k) = valid input, where k < i for 2 ≤ i ≤ 100
8594value(i) = 999 where 2 ≤ i ≤ 100
8595Expected results: Correct average based on k values and proper
8596totals.
8597Note: Path 1 cannot be tested stand-alone but must be tested as
8598part of path 4, 5, and 6 tests.
8599Path 2 test case:
8600value(1) = 999
8601Expected results: Average = 999; other totals at initial values.
8602Path 3 test case:
8603Attempt to process 101 or more values.
8604First 100 values should be valid.
8605Expected results: Same as test case 1.
8606ТеÑтирање
860742
8608ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8609И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8610СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8611Test Cases (2)
8612Path 4 test case:
8613value(i) = valid input where i < 100
8614value(k) < minimum where k < i
8615Expected results: Correct average based on k values and proper
8616totals.
8617Path 5 test case:
8618value(i) = valid input where i < 100
8619value(k) > maximum where k <= i
8620Expected results: Correct average based on n values and proper
8621totals.
8622Path 6 test case:
8623value(i) = valid input where i < 100
8624Expected results: Correct average based on n values and proper
8625totals.
8626ТеÑтирање
862743
8628ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8629И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8630СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8631Матрица на граф
8632ï® ÐœÐ°Ñ‚Ñ€Ð¸Ñ†Ð° на граф е квадратна матрица Ñо онолку
8633редови колку што има јазли графот. Ќелиите
8634ÑоодветÑтвуваат на врÑки помеѓу јазлите.
86351
86363
86374
86382
86395
8640a
8641b
8642c
8643d
8644e
8645f
8646g
8647Flow graph
86481 34 2 5
86491
86503
86514
86522
86535
8654a
8655g e
8656c f
8657d b
8658Connected to
8659node
8660Node
8661Graph matrix
8662ТеÑтирање
866344
8664ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8665И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8666СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8667ï® Ð¡Ð¾ воведување на тежини на врÑките помеѓу
8668јазлите може да Ñтане моќна алатка за
8669проценка на програмÑката контролна
8670Ñтруктура при теÑтирањето. Тежината може
8671да претÑтавува:
8672 ВеројатноÑта дека врÑката (дел од патеката) ќе
8673биде извршена
8674 Потрошено процеÑорÑко време при изведувањето
8675на врÑката
8676 Потребна меморија
8677 Потребни реÑурÑи
8678ТеÑтирање
867945
8680ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8681И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8682СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8683Connection matrix
8684ï® 1 – поÑтои врÑка помеѓу јазлите i и j,
86850 – не поÑтои врÑка.
8686ï® ÐžÐ´Ñ€ÐµÐ´ÑƒÐ²Ð°ÑšÐµ на цикломатÑката комплекÑноÑÑ‚
8687од матрицата
86881 34 2 5
86891
86903
86914
86922
86935
86941
86951 1
86961 1
86971 1
8698Connected to
8699node
8700Node
8701Graph matrix
8702Connections
87031 – 1= 0
87042 – 1 = 1
87052 – 1 = 1
87062 – 1 = 1
8707—
87083 + 1 = 4
8709Cyclomatic
8710complexity
87111
87123
87134
87142
87155
8716a
8717b
8718c
8719d
8720e
8721f
8722g
8723Flow graph
8724ТеÑтирање
872546
8726ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8727И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8728СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8729Condition Testing
8730ï® ÐœÐµÑ‚Ð¾Ð´ за дизајн на теÑтови кои ги иÑпитуваат
8731логичките изрази во програмÑки модул – булова
8732променлива или релациÑки израз
8733E1 <relational-operator> E2
8734ï® ÐºÐ°Ð´Ðµ E1 и E2 Ñе аритметички изрази, а операторот е
8735еден од: <, ≤, =, ≠,> или ≥
8736ï® Ð¡Ð»Ð¾Ð¶ÐµÐ½ израз е ÑоÑтавен од два или повеќе изрази,
8737загради и булови операции (AND, OR, NOT)
8738ï® Ðко уÑловот е погрешен, тогаш барем една негова
8739компонента е погрешна
8740 Boolean operator error
8741 Boolean variable error
8742 Boolean parenthesis error
8743 Relational operator error
8744 Arithmetic expression error
8745ТеÑтирање
874647
8747ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8748И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8749СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8750Condition Testing
8751ï® Ð”Ð²Ðµ предноÑти:
8752ЕдноÑтавна проценка на покриеноÑÑ‚ Ñо
8753теÑтот
8754ПокриеноÑта до уÑловите обезбедува
8755водÑтво при генерирањето на
8756дополнителни теÑтови
8757ï® Ð¦ÐµÐ»Ñ‚Ð° е да Ñе најдат не Ñамо грешки во
8758уÑловите туку преку нив и други грешки
8759ТеÑтирање
876048
8761ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8762И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8763СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8764Branch Testing
8765ï® Ð—Ð° Ñложен израз C, треба да Ñе изведат
8766и гранката за точен и гранката за
8767неточен уÑлов како и Ñите проÑти
8768уÑлови во C.
8769ТеÑтирање
877049
8771ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8772И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8773СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8774Domain Testing
8775ï® Ð˜Ð·Ð²ÐµÐ´ÑƒÐ²Ð°ÑšÐµ на 3 до 4 теÑта за релационен
8776израз
8777E1 <relational-operator> E2
8778ï® ÐŸÐ¾Ñ‚Ñ€ÐµÐ±Ð½Ð¸ Ñе три теÑта за да Ñе покријат
8779Ñлучаите кога E1 e >, < и = Ñо E2.
8780ï® Ð—Ð° Булови изрази Ñо n променливи потребни
8781Ñе Ñите 2n теÑтови.
8782ï® BRO (Branch and relational operator) testing
8783ï® ÐžÐ³Ñ€Ð°Ð½Ð¸Ñ‡ÑƒÐ²Ð°ÑšÐµ на уÑловот D за изразот C е
8784покриен Ñо извршувањето на C ако за време
8785на извршувањето на C резултатот на Ñекој
8786проÑÑ‚ израз во C го задоволува уÑловот D.
8787ТеÑтирање
878850
8789ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8790И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8791СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8792BRO testing
8793ï® C1: B1 & B2
8794cc (D1, D2) {(t, t), (f, t), (t, f)}
8795ï® C2: B1 & (E3 = E4)
8796cc (D1, D2) {(t, =), (f, =), (t, >), (t, <)}
8797ï® C3: (E1 > E2) & (E3 = E4)
8798cc (D1, D2) where D1, D2 is >, =, <
8799{(>, =), (=, =), (<, =), (>, >), (>, <)}
8800ТеÑтирање
880151
8802ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8803И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8804СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8805Data Flow Testing
8806ï® Ð˜Ð·Ð±Ð¾Ñ€ на патеки за теÑтирање на оÑнова на
8807локациите на дефиниција на променливи во
8808програмата и нивна употреба
8809ï® Ð—Ð° изразот Ñо реден број S:
8810 DEF(S) = {X | statement S contains a definition of X}
8811 USE(S) = {X | statement S contains a use of X}
8812ï® Ð”ÐµÑ„Ð¸Ð½Ð¸Ñ†Ð¸Ñ˜Ð°Ñ‚Ð° на променливата X во изразот S е
8813жива во изразот S’ ако поÑтои патека од изразот S до
8814S’ во која нема друга дефиниција на X
8815ï® Definition-use (DU) chain на променливата X е во
8816форма [X, S, S’] каде S и S’ Ñе броеви на изрази, X е
8817во DEF(S) и во USE(S’) и дефиницијата на X е жива
8818во S’.
8819ТеÑтирање
882052
8821ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8822И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8823СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8824Data Flow Testing Strategy
8825ï® DU testing strategy - да Ñе покријат Ñите
8826DU вериги барем по еднаш
8827ï® ÐŸÐ¾Ð³Ð¾Ð´Ð½Ð¸ за избор на теÑÑ‚ патеки во
8828програми Ñо вгнездени гренења и
8829циклуÑи
8830ТеÑтирање
883153
8832ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8833И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8834СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8835Definition-use testing
8836proc x
8837B1;
8838do while C1
8839if C2
8840then
8841if C4
8842then B4;
8843else B5;
8844endif;
8845else
8846if C3
8847then B2;
8848else B3;
8849endif;
8850endif;
8851enddo;
8852B6;
8853end proc;
8854нека променливата X е дефинирана во
8855поÑледниот израз во блоковите B1,
8856B2, B3, B4 и B5,
8857и нека е употребена во првиот израз во
8858блоковите B2, B3, B4, B5 и B6.
8859DU – извршување на најкуÑата патека
8860од Ñекој Bi
8861, 0 < i ≤ 5 до Ñекој Bj
8862, 1 < j ≤
88636.
8864(ваквите патеки ја покриваат и
8865употребата на X во уÑловите C1, C2,
8866C3 и C4)
8867Иако поÑтојат 25 можни DU вериги,
8868потребни Ñе Ñамо 5 патеки за да Ñе
8869покријат Ñите вериги (ако Ñе
8870повторува, циклуÑот ги опфаќа)
8871ТеÑтирање
887254
8873ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8874И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8875СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8876Assume that all variables are integers (of type int). In the following code:
88771 i = get_a_number_from_console();
88782 j = get_a_number_from_console();
88793 if (a<30) {
88804 i= get_a_number_from_console();
88815 } else {
88826 j=5;
88837 }
88848 if (a>b) {
88859 i=8;
888610 j=6;
888711 } else {
888812 printf("%d\n",j);
888913 }
889014 if (b<30) {
889115 printf("%d\n",i);
889216 j=6;
889317 } else {
889418 printf("%d\n",i);
889519 }
889655
8897ТеÑтирање
8898DEF(i) = { 1, 4, 9 }
8899USE(i) = { 15, 18 }
89006 DU pairs
89011-18 (a=35, b=32)
89021-15 (a=35, b=29)
89034-15 (a=25, b=24)
89044-18 (not feasible)
89059-15 (a=29, b=25)
89069-18 (a=35, b=34)
8907ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8908И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8909СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8910Definition-use path
8911ï® DU-path = патека која за променливата
8912v поÑÑ‚oјан DEF(v, m), USE(v, n) јазли
8913така што m и n Ñе почетниот и крајниот
8914јазел на патеката Ñоодветно.
891556
8916ТеÑтирање
8917DEF DEF
8918USE
8919ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8920И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8921СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8922Definition-clear path
8923ï® DC-path = DU патека во која почетниот
8924јазел е единÑтвениот дефинициÑки
8925јазел во патеката.
892657
8927ТеÑтирање
8928DEF
8929USE
8930DEF DEF
8931USE
8932ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8933И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8934СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8935Loop Testing
8936ï® Ð¢ÐµÑ…Ð½Ð¸ÐºÐ° за теÑтирање која Ñе фокуÑира
8937Ñамо на валидноÑта на циклуÑите
8938Simple loops
8939Nested loops
8940Concatenated
8941loops
8942Unstructured
8943loops
8944Четири клаÑи на циклуÑи
8945ï® Ð¾Ð±Ð¸Ñ‡Ð½Ð¸ (simple loops)
8946ï® Ð½Ð°Ð½Ð¸Ð¶Ð°Ð½Ð¸ (concatenated
8947loops)
8948ï® Ð²Ð³Ð½ÐµÐ·Ð´ÐµÐ½Ð¸ (nested
8949loops)
8950ï® Ð½ÐµÑтруктурирани
8951(unstructured loops)
8952ТеÑтирање
895358
8954ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8955И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8956СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8957Simple Loops
8958ï® Ð¡Ð»ÐµÐ´Ð½Ð¸Ð²Ðµ теÑтови може да Ñе изведат
8959над обичните циклуÑи:
89601. ПреÑкокни го целоÑно циклуÑот
89612. Едно изминување низ циклуÑот
89623. Две изминувања
89634. m изминувања низ циклуÑот (m<n)
89645. n-1, n, n+1 изминувања низ циклуÑот
8965ТеÑтирање
896659
8967ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8968И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8969СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8970Nested Loops
89711. Почни на највнатрешниот циклуÑ. ПоÑтави ги Ñите
8972оÑтанати циклуÑи на минимална вредноÑÑ‚
89732. Изведи ги теÑтовите за едноÑтавен Ñ†Ð¸ÐºÐ»ÑƒÑ Ð·Ð°
8974највнатрешниот циклуÑ, додека надворешните
8975циклуÑи Ñтојат на минимална вредноÑÑ‚. Додади
8976дополнителни теÑтови за надвор од опÑег и
8977иÑклучени вредноÑти
89783. Движи Ñе нанадвор, теÑтирајќи го Ñледниот
8979надворешен циклуÑ, додека Ñите оÑтанати
8980надворешни циклуÑи Ñе на минимална вредноÑÑ‚, а
8981вгнездените циклуÑи на „типични“ вредноÑти
89824. Продолжи Ñè додека Ñите циклуÑи не Ñе теÑтирани
8983ТеÑтирање
898460
8985ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8986И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8987СОФТВЕРСКО ИÐЖЕÐЕРСТВО
8988Concatenated and Unstructured Loops
8989ï® Ð½Ð°Ð½Ð¸Ð¶Ð°Ð½Ð¸Ñ‚Ðµ циклуÑи
8990Ñе теÑтираат како обични ако Ñе незавиÑни
8991Ñе теÑтираат како вгнездени ако Ñе завиÑни
8992ï® Ð¡ÐµÐºÐ¾Ð³Ð°Ñˆ кога е можно
8993неÑтруктурираните циклуÑи треба да Ñе
8994преработат во Ñтруктурен дизајн
8995ТеÑтирање
899661
8997ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
8998И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
8999СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9000Black Box Testing
9001ï® Black Box Testing (behavioral testing) Ñе
9002фокуÑира на функционалните барања
9003на Ñофтверот
9004ï® Ð”Ð° Ñе изведат множеÑтва на влезови
9005кои целоÑно би ги провериле
9006функционалните барања на програмата
9007ï® ÐšÐ¾Ð¼Ð¿Ð»ÐµÐ¼ÐµÐ½Ñ‚Ð°Ñ€ÐµÐ½ (а не алтернативен)
9008приод во Ð¾Ð´Ð½Ð¾Ñ Ð½Ð° White box testing кој
9009би требало да открие друг вид на
9010грешки
9011ТеÑтирање
901262
9013ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9014И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9015СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9016Грешки кај Black Box теÑтирање
9017ï® Black Box теÑтирањето Ñе обидува да
9018пронајде грешки во Ñледниве категории:
90191. погрешна или функција која недоÑтаÑува
90202. грешки во интерфејÑот
90213. грешки во податочните Ñтруктури или
9022базите на податоци
90234. грешки во однеÑувањето или
9024перформанÑите
90255. грешки при иницијализација и терминирање
9026ТеÑтирање
902763
9028ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9029И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9030СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9031Black Box теÑтирање
9032ï® ÐžÐ±Ð¸Ñ‡Ð½Ð¾ Ñе изведува во подоцнежните фази на развој
9033на Ñофтвер (за разлика од White Box)
9034ï® Ðамерно ја игнорира програмÑката Ñтруктура и Ñе
9035концентрира на грешки во информациÑкиот домен:
9036 How is functional validity tested?
9037 How is system behavior and performance tested?
9038 What classes of input will make good test cases?
9039 Is the system particularly sensitive to certain input values?
9040 How are the boundaries of a data class isolated?
9041 What data rates and data volume can the system tolerate?
9042 What effect will specific combinations of data have on system
9043operation?
9044ТеÑтирање
904564
9046ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9047И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9048СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9049Black Box техники
9050ï® Ð¡Ð¾ примена на Black Box техниките за
9051теÑтирање Ñе изведуваат теÑтови кои:
9052го намалуваат за повеќе од еден бројот на
9053дополнителни теÑтови кои треба да ги
9054направиме за да Ñе поÑтигне прифатливо
9055теÑтирање
9056ни кажуваат нешто за приÑуÑтво или
9057отÑуÑтво на комплетни клаÑи на грешки, а
9058не Ñамо за изолирана конкретна грешка за
9059конкретен теÑÑ‚
9060ТеÑтирање
906165
9062ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9063И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9064СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9065Graph-Based Testing Methods
9066ï® ÐŸÑ€Ð² чекор е да Ñе разберат објектите кои Ñе
9067моделирани во Ñофтверот и релациите кои ги
9068поврзуваат овие објекти
9069ï® ÐšÑ€ÐµÐ¸Ñ€Ð°ÑšÐµ на граф на важните објекти и
9070релациите помеѓу нив
9071 nodes – објекти
9072 links – релации
9073 node weights – одредени оÑобини на објектот
9074 link weights – карактериÑтики на релацијата
9075ï® Ð˜Ð·Ð²ÐµÐ´ÑƒÐ²Ð°ÑšÐµ Ñерија теÑтови кои ќе го покријат
9076графот Ñо проверка на Ñекој објект и релации
9077и ќе ги откријат евентуалните грешки
9078ТеÑтирање
907966
9080ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9081И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9082СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9083Object Graph
9084ï® directed link
9085ï® bidirectional link,
9086(symmetric link)
9087ï® parallel link
9088New file
9089menu
9090select
9091Menu select generates Document
9092window
9093Document
9094text
9095Is represented as
9096Contains
9097Allows editing of
9098(generation time < 1.0 sec)
9099Attributes:
9100Start dimension: default setting
9101 or preferences
9102Background color: white
9103Text color: default color
9104 or preferences
9105ТеÑтирање
910667
9107ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9108И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9109СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9110Graph-Based Testing
9111ï® ÐŸÐ¾Ñтојат методи за теÑтирање на
9112однеÑување кои употребуваат графови
9113ï® Ð¡Ðµ цртаат објектите и релациите во форма
9114на граф и Ñе нанеÑуваат Ñоодветни тежини
9115ï® Ð¡Ðµ анализираат релациите и нивните
9116ÑвојÑтва (транзитивноÑÑ‚, Ñиметрија,
9117рефлекÑивноÑÑ‚)
9118ï® Ð¡Ðµ изведуваат Ñоодветни теÑтови кои ќе ги
9119проверат нивните воочени оÑобини
9120ТеÑтирање
912168
9122ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9123И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9124СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9125Equivalence Partitioning
9126ï® Ð“Ð¾ дели влезниот домен на програмата на
9127клаÑи на податоци од кои Ñе изведуваат
9128теÑтовите
9129ï® Ð˜Ð´ÐµÐ°Ð»Ð½Ð¸Ð¾Ñ‚ теÑÑ‚ открива цела клаÑа на
9130грешки
9131ï® Ð•Ð²Ð°Ð»ÑƒÐ°Ñ†Ð¸Ñ˜Ð° на еквивалентни клаÑи за влезни
9132уÑлови
9133ï® Ð¡ÐµÐºÐ¾Ñ˜Ð° еквивалентна клаÑа претÑтавува
9134множеÑтво на валидни или невалидни
9135влезови (типично валидни или невалидни
9136нумерички вредноÑти, опÑези, множеÑтво
9137поврзани вредноÑти или булов уÑлов
9138ТеÑтирање
913969
9140ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9141И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9142СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9143Equivalence Classes
9144ï® Ð•ÐºÐ²Ð¸Ð²Ð°Ð»ÐµÐ½Ñ‚Ð½Ð¸Ñ‚Ðµ клаÑи може да Ñе дефинираат
9145Ñпоред Ñледниов рецепт:
91461. Ðко влезниот уÑлов дефинира опÑег, Ñе
9147дефинираат една валидна и две невалидни
9148еквивалентни клаÑи
91492. Ðко влезниот уÑлов претÑтавува Ñпецифична
9150вредноÑÑ‚, Ñе дефинираат една валидна и две
9151невалидни еквивалентни клаÑи
91523. Ðко влезниот уÑлов дефинира елемент од
9153множеÑтво, Ñе дефинираат една валидна и една
9154невалидна еквивалентна клаÑа
91554. Ðко влезниот уÑлов е булова логичка вредноÑÑ‚, Ñе
9156дефинираат една валидна и една невалидна
9157еквивалентна клаÑа
9158ТеÑтирање
915970
9160ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9161И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9162СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9163ï® During the log-on sequence, the software
9164supplied for the banking application
9165accepts data in the form
9166area code—blank or three-digit number
9167prefix—three-digit number not beginning with
91680 or 1
9169suffix—four-digit number
9170password—six digit alphanumeric string
9171commands—check, deposit, bill pay, and the
9172like
9173ТеÑтирање
917471
9175ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9176И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9177СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9178The input conditions associated with each data element for
9179the banking application can be specified as
9180area code: Input condition, Boolean—the area code may
9181or may not be present.
9182Input condition, range—values defined
9183between 200 and 999, with specific exceptions.
9184prefix: Input condition, range—specified value >200
9185Input condition, value—four-digit length
9186password: Input condition, Boolean—a password may or
9187may not be present.
9188Input condition, value—six-character string.
9189command: Input condition, set—containing commands
9190noted previously.
9191ТеÑтирање
919272
9193ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9194И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9195СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9196Boundary Value Analysis (BVA)
9197ï® ÐžÐ´ Ñеуште недоволно разјаÑнети
9198причини, поголем број на грешки Ñе
9199јавуваат на границите на влезниот
9200домен отколку во Ñредината
9201ï® Ðнализата на гранични вредноÑти е
9202техника за теÑтирање комплементарна
9203на еквивалентно партиционирање
9204ï® BVA води кон креирање на теÑтови кои
9205оперираат на работ на доменот
9206ТеÑтирање
920773
9208ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9209И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9210СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9211BVA
9212ï® Guidelines for BVA are similar in many respects to those
9213provided for equivalence partitioning:
92141. If an input condition specifies a range bounded by values
9215a and b, test cases should be designed with values a
9216and b and just above and just below a and b.
92172. If an input condition specifies a number of values, test
9218cases should be developed that exercise the minimum
9219and maximum numbers. Values just above and below
9220minimum and maximum are also tested.
92213. Apply guidelines 1 and 2 to output conditions.
92224. If internal program data structures have prescribed
9223boundaries (e.g., an array has a defined limit of 100
9224entries), be certain to design a test case to exercise the
9225data structure at its boundary.
9226ТеÑтирање
922774
9228ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9229И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9230СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9231Comparison Testing
9232ï® Ð’Ð¾ Ñпецијални Ñитуации Ñе развиваат
9233незавиÑни ÑиÑтеми Ñпоред иÑта
9234Ñпецификација
9235ï® Ð¡Ðµ извршуваат паралелно и им Ñе
9236Ñпоредуваат резултатите
9237ТеÑтирање
923875
9239ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9240И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9241СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9242Orthogonal Array Testing
9243ï® Ð¡Ðµ применува кај апликации кај
9244кои влезниот домен е релативно
9245мал, но Ñепак преголем за
9246иÑцрпно теÑтирање на Ñите
9247можни комбинации
9248ï® OAT Ñе обидува да генерира
9249влез за теÑтовите кои ќе бидат
9250униформно диÑперзирани низ
9251доменот на теÑтот
9252Y
9253X
9254Y
9255X
9256Z
9257ТеÑтирање
925876
9259ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9260И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9261СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9262ï® â€œone input item at a time†testing strategy
9263ï® Such test cases are useful only when one is
9264certain that these test parameters do not
9265interact.
9266ï® The orthogonal array testing approach enables
9267us to provide good test coverage with far fewer
9268test cases than the exhaustive strategy.
9269Y Y
9270X X
9271Z Z
9272One input item at a time L9 orthogonal array
9273ТеÑтирање
927477
9275ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9276И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9277СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9278ï® Detect and isolate
9279all single mode
9280faults.
9281ï® Detect all double
9282mode faults.
9283ï® Multimode faults.
9284Test
9285case Test parameters
9286PPPP
92871
92881234
92892
92903
92913
92921
92932
92942
92953
92961
92971
92982
92993
93002
93013
93021
93033
93041
93052
93061
93072
93083
93091
93102
93113
93121
93132
93143
93151
93161
93171
93182
93192
93202
93213
93223
93233
93241
93252
93263
93274
93285
93296
93307
93318
93329
9333ТеÑтирање
933478
9335ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9336И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9337СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9338ТеÑтирање на Ñпецијални околини,
9339архитектури и апликации
9340ï® Testing GUIs
9341ï® Testing of Client/Server Architectures
9342ï® Testing Documentation and Help Facilities
9343ï® Testing for Real-Time Systems
9344Task testing.
9345Behavioral testing.
9346Intertask testing.
9347System testing.
9348ТеÑтирање
934979
9350ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9351И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9352СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9353Прашања?
935480
9355ТеÑтирање
9356_________________________________________________________________________________________________________________________________________________
9357ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9358СТРÐТЕГИИ
9359за теÑтирање
9360на Ñофтвер
9361СофтверÑко инженерÑтво
9362ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9363И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9364СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9365Стратегии за теÑтирање
9366ï® Ð¡Ñ‚Ñ€Ð°Ñ‚ÐµÐ³Ð¸Ð¸Ñ‚Ðµ за теÑтирање на Ñофтвер
9367го опфаќаат процеÑот на:
9368планирање на теÑтирањето
9369организирано развивање на теÑтови
9370нивно Ñпроведување
9371прибирање на податоците и нивна
9372обработка
9373иÑправање на грешките
9374ТеÑтирање
93752
9376ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9377И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9378СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9379Што опфаќаат?
9380ï® ÐŸÐ»Ð°Ð½Ð¸Ñ€Ð°ÑšÐµ на Ñпроведувањето на
9381теÑтирањето
9382ï® Ð”Ð°Ð»Ð¸ да Ñе теÑтира целата програма
9383или дел по дел? По кој редоÑлед?
9384ï® Ð”Ð°Ð»Ð¸ да Ñе повторуваат и Ñпроведените
9385теÑтови по додавањето на нови
9386компоненти?
9387ï® Ð’Ð¾ кој момент во теÑтирањето да Ñе
9388вклучи и клиентот?
9389ТеÑтирање
93903
9391ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9392И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9393СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9394Кој го прави и зошто е важно
9395ï® ÐšÐ¾Ñ˜ го прави?
9396Го планираат менаџерот, ÑофтверÑкиот
9397инженер и ÑпецијалиÑти за теÑтирање
9398ï® Ð—Ð¾ÑˆÑ‚Ð¾ е важно?
9399Знае да зафат значително време (и
9400реÑурÑи) од проектот – разумно е да Ñе
9401Ñпроведува ÑиÑтематÑки и Ñтратешки
9402ТеÑтирање
94034
9404ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9405И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9406СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9407Стратешки приод кон теÑтирањето
9408ï® Ð¢ÐµÑтирањето претÑтавува множеÑтво активноÑти кои
9409можат да Ñе планираат однапред и да Ñе Ñпроведат
9410ÑиÑтематÑки
9411ï® ÐŸÑ€ÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸ Ñе повеќе Ñтратегии (шаблони) Ñо
9412Ñледниве генерички карактериÑтики:
9413 ТеÑтирањето почнува на ниво на компоненти и Ñе проÑтира
9414„нагоре“ кон целоÑно интегрираниот ÑиÑтем
9415 Различни техники за теÑтирање Ñе Ñоодветни за различни
9416моменти
9417 ТеÑтирањето го Ñпроведуваат програмерите и ÑпецијалиÑти
9418за теÑтирање
9419 ТеÑтирањето и дебагирањето (отÑтранувањето на грешки)
9420Ñе различни работи (но ÑоÑтавен дел на Ñекоја Ñтратегија за
9421теÑтирање)
9422ТеÑтирање
94235
9424ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9425И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9426СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9427Верификација и валидација
9428ï® Ð’ÐµÑ€Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ˜Ð°Ñ‚Ð° Ñе однеÑува на активноÑти
9429кои обезбедуваат Ñофтверот коректно да
9430имлементира одредена функција.
9431ï® Ð’Ð°Ð»Ð¸Ð´Ð°Ñ†Ð¸Ñ˜Ð°Ñ‚Ð° Ñе однеÑува на други
9432активноÑти кои обезбедуваат изградениот
9433Ñофтвер да ги задоволува барањата на
9434клиентот.
9435Verification: "Are we building the product right?"
9436Validation: "Are we building the right product?“
9437ï® V&V вклучуваат активноÑти кои Ñе
9438однеÑуваат на SQA. ТеÑтирањето е Ñамо
9439една. Квалитетот не Ñе теÑтира!
9440ТеÑтирање
94416
9442ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9443И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9444СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9445Организирање на теÑтирањето
9446ï® Ð¢ÐµÑтирање – конфликт на интереÑи
9447 Самите програмерите најдобро го знаат Ñвојот
9448продукт, но кон него имаат позитивно чувÑтво
9449(како кон Ñвое дело) и чеÑто премногу „нежно“ го
9450третираат во теÑтовите
9451 Програмерите Ñе одговорни за теÑтирањето на
9452одвоените модули и првите фази на интеграцијата
9453 Потоа теÑтирањето може да го преземе ITG
9454(Independent Test Group)
9455 Програмерите и ITG мора да Ñоработуваат при
9456теÑтирањето (и ITG Ñе дел од проектот)
9457ТеÑтирање
94587
9459ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9460И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9461СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9462Стратегија за теÑтирање на Ñофтвер
9463System testing
9464Validation testing
9465Integration testing
9466Unit testing
9467Code
9468Design
9469Requirements
9470System engineering
9471ТеÑтирање
94728
9473ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9474И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9475СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9476Стратегија за теÑтирање
94771. Unit testing (white-box testing tehniques)
94782. Integration testing (verification and
9479program construction) – mainly black-box
94803. Validation testing – testing validation
9481criteria form requirements analysis -
9482black-box exclusively
94834. System testing – outside software
9484engineering
9485ТеÑтирање
94869
9487ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9488И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9489СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9490Чекори при теÑтирање
9491Unit
9492test Code
9493Design
9494Requirements
9495Testing
9496“directionâ€
9497Integration test
9498High-order
9499tests
9500ТеÑтирање
950110
9502ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9503И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9504СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9505Критериуми за комплетирање на
9506теÑтирањето
9507ï® ÐšÐ¾Ð³Ð° Ñме завршиле Ñо теÑтирањето?
9508 Ðикогаш – „должноÑта“ преминува на клиентот...
9509ï® ÐšÐ¾Ð³Ð° ние Ñме завршиле Ñо теÑтирањето?
9510 Кога ќе Ñнема време или пари...
9511 Иако никогаш не можеме да бидеме Ñигурни дека
9512нема грешки, потребни Ñе поригорозни
9513квантитативни критериуми како, на пример:
9514 Доволно Ñме теÑтирале кога ќе можеме Ñо 95%
9515ÑигурноÑÑ‚ да кажеме дека веројатноÑта
9516програмата да не „падне“ по 1000 CPU чаÑа
9517работа во проÑечна околина е поголема од 0.995.
9518ТеÑтирање
951911
9520ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9521И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9522ï® Logarithmic Poisson execution-time model
9523каде
9524f(t)- е очекуваниот кумулативен број на грешки кои
9525наÑтанале за одредено време на извршување t
9526l0 - иницијален интензитет на иÑпади (бр. на иÑпади во
9527единица време на почетокот на теÑтирањето)
9528p - екÑпоненцијално намалување на интензитетот на
9529иÑпади Ñо откривањето и поправањето на грешките
9530Тековната вредноÑÑ‚ на интензитетот на иÑпади Ñе
9531добива како извод на f(t)
9532( ) (1/ )ln( 1) f t = p l0 pt +
9533( ) /( 1) f t = l0 l0 pt +
9534ТеÑтирање
953512
9536ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9537И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9538СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9539Failure model
9540ï® ÐœÐ¾Ð¶Ðµ да Ñе предвиди ратата на иÑпади во текот на
9541теÑтирањето. Ðко измерените вредноÑти разумно Ñе
9542Ñовпаѓаат Ñо кривата на моделот – ќе може да Ñе
9543предвиди потребното време за кривата да падне под
9544одредено ниво
9545Execution time,t
9546l
95470
9548Predicted ailure intensity. l( t)
9549Data collected during testing
9550ТеÑтирање
955113
9552ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9553И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9554СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9555Strategic Issues
9556ï® Specify product requirements in a
9557quantifiable manner long before testing
9558commences.
9559ï® State testing objectives explicitly.
9560ï® Understand the users of the software and
9561develop a profile for each user category.
9562ï® Develop a testing plan that emphasizes
9563“rapid cycle testing.â€
9564ТеÑтирање
956514
9566ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9567И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9568СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9569Strategic Issues
9570ï® Build “robust†software that is designed to
9571test itself.
9572 antibugging techniques, automated and regression
9573testing
9574ï® Use effective formal technical reviews as a
9575filter prior to testing.
9576ï® Conduct formal technical reviews to
9577assess the test strategy and test cases
9578themselves.
9579ï® Develop a continuous improvement
9580approach for the testing process.
9581ТеÑтирање
958215
9583ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9584И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9585СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9586Unit testing
9587ï® Ð’ÐµÑ€Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ˜Ð° на
9588најмалите делови на
9589ÑофтверÑкиот дизајн –
9590компоненти и модули
9591ï® white-box
9592ï® Ð¿Ð°Ñ€Ð°Ð»ÐµÐ»Ð½Ð¾
9593Цел – откривање на грешки:
9594ï® Ð²Ð¾ преÑметки
9595ï® Ð²Ð¾ Ñпоредувања
9596ï® Ð²Ð¾ контролен тек Test
9597cases
9598Module Interface
9599Local data structures
9600Boundary conditions
9601Independent paths
9602Error handling paths
9603ТеÑтирање
960416
9605ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9606И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9607СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9608More Common Errors in Computation
96091. misunderstood or incorrect arithmetic
9610precedence
96112. mixed mode operations
96123. incorrect initialization
96134. precision inaccuracy
96145. incorrect symbolic representation of an
9615expression
9616ТеÑтирање
961717
9618ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9619И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9620СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9621Common Errors in Control
9622ï® Comparison and control flow are closely coupled to one
9623another (i.e., change of flow frequently occurs after a
9624comparison). Test cases should uncover errors such as:
96251. comparison of different data types
96262. incorrect logical operators or precedence,
96273. expectation of equality when precision error makes
9628equality unlikely
96294. incorrect comparison of variables
96305. improper or nonexistent loop termination
96316. failure to exit when divergent iteration is encountered,
9632and
96337. improperly modified loop variables
9634ТеÑтирање
963518
9636ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9637И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9638СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9639Error handling testing
96401. Error description is unintelligible.
96412. Error noted does not correspond to error
9642encountered.
96433. Error condition causes system intervention
9644prior to error handling.
96454. Exception-condition processing is incorrect.
96465. Error description does not provide enough
9647information to assist in the location of the cause
9648of the error.
9649ТеÑтирање
965019
9651ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9652И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9653СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9654Unit Test Procedures
9655ï® Because a
9656component is not a
9657stand-alone program,
9658driver and/or stub
9659software must be
9660developed for each
9661unit test.
9662ï® Drivers and stubs
9663represent overhead.
9664Test
9665cases
9666Interface
9667Local data structures
9668Boundary conditions
9669Independent paths
9670Error handling paths
9671Module
9672to be
9673tested
9674Stub Stub
9675Driver
9676RESULTS
9677ТеÑтирање
967820
9679ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9680И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9681СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9682Integration Testing
9683ï® Ð˜Ð½Ñ‚ÐµÐ³Ñ€Ð°Ñ†Ð¸Ñ˜Ð° – интерфејÑи
9684ï® ÐºÑƒÐ¼ÑƒÐ»Ð°Ñ‚Ð¸Ð²Ð½Ð° непрецизноÑÑ‚
9685ï® Ð³Ð»Ð¾Ð±Ð°Ð»Ð½Ð¸ податоци
9686ï® â€œbig bang†approach
9687ï® incremental integration
9688програмата Ñе интегрира и теÑтира во мали
9689инкременети при што грешките полеÑно Ñе
9690изолираат и поправаат
9691ÑиÑтематÑки приÑтап
9692ТеÑтирање
969321
9694ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9695И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9696СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9697Top-down Integration
9698ï® ÐœÐ¾Ð´ÑƒÐ»Ð¸Ñ‚Ðµ Ñе интегрираат движејќи Ñе
9699надолу во контролната хиерархија (Ñе
9700почнува Ñо главната програма)
9701ï® ÐœÐ¾Ð´ÑƒÐ»Ð¸Ñ‚Ðµ Ñе интегрираат или во
9702длабочина (depth-first) или во широчина
9703(breadth-first)
9704ТеÑтирање
970522
9706ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9707И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9708СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9709Top-down Integration
9710M1
9711M2 M3
9712M5 M6 M7
9713M8
9714M4
9715ТеÑтирање
971623
9717ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9718И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9719СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9720Integration Process Steps
9721The integration process is performed in a series of five
9722steps:
97231. The main control module is used as a test driver and
9724stubs are substituted for all components directly
9725subordinate to the main control module.
97262. Depending on the integration approach selected (i.e.,
9727depth or breadth first), subordinate stubs are replaced
9728one at a time with actual components.
97293. Tests are conducted as each component is integrated.
97304. On completion of each set of tests, another stub is
9731replaced with the real component.
97325. Regression testing may be conducted to ensure that
9733new errors have not been introduced.
9734ТеÑтирање
973524
9736ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9737И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9738СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9739Top-down Integration
9740ï® Top-down приÑтапот за интеграција ги
9741верификува клучните контролни
9742Ñтруктури и точки на одлука рано во
9743процеÑот на теÑтирање
9744ï® confidence builder
9745ï® stubs, drivers = overhead
9746ТеÑтирање
974725
9748ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9749И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9750СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9751Bottom-up Integration
9752ï® Ð“Ð¾ почнува теÑтирањето и
9753обединувањето на модулите и
9754компонентите на најниÑкото ниво на
9755програмÑката Ñтруктура и Ñе движи
9756нагоре (no stubs)
9757ТеÑтирање
975826
9759ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9760И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9761СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9762Integration Process Steps
9763A bottom-up integration strategy may be
9764implemented with the following steps:
97651. Low-level components are combined into
9766clusters (sometimes called builds) that perform
9767a specific software subfunction.
97682. A driver (a control program for testing) is
9769written to coordinate test case input and output.
97703. The cluster is tested.
97714. Drivers are removed and clusters are combined
9772moving upward in the program structure.
9773ТеÑтирање
977427
9775ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9776И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9777СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9778Bottom-up Integration
9779M c
9780Ma
9781D2 D3 D1
9782Mb
9783Cluster 1
9784Cluster 3
9785Cluster 2
9786ТеÑтирање
978728
9788ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9789И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9790СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9791Regression Testing
9792ï® Ð¡Ð¾ Ñекое додавање на нов модул во
9793процеÑот на интеграција Ñофтверот Ñе
9794менува
9795ï® Ð ÐµÐ³Ñ€ÐµÑиÑки теÑтови – повторно
9796извршување на подмножеÑтво на веќе
9797Ñпроведени теÑтови Ñо цел да Ñе
9798провери дека промените не
9799предизвикале неÑакани Ñпоредни
9800ефекти
9801ï® capture/playback tools
9802ТеÑтирање
980329
9804ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9805И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9806СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9807Regression Test Types
9808The regression test suite (the subset of tests to be
9809executed) contains three different classes of test
9810cases:
9811ï® A representative sample of tests that will
9812exercise all software functions.
9813ï® Additional tests that focus on software functions
9814that are likely to be affected by the change.
9815ï® Tests that focus on the software components
9816that have been changed.
9817ТеÑтирање
981830
9819ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9820И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9821СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9822Smoke Testing
98231. Software components that have been translated into
9824code are integrated into a “build.†A build includes all
9825data files, libraries, reusable modules, and engineered
9826components that are required to implement one or more
9827product functions.
98282. A series of tests is designed to expose errors that will
9829keep the build from properly performing its function. The
9830intent should be to uncover “show stopper†errors that
9831have the highest likelihood of throwing the software
9832project behind schedule.
98333. The build is integrated with other builds and the entire
9834product (in its current form) is smoke tested daily. The
9835integration approach may be top down or bottom up.
9836ТеÑтирање
983731
9838ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9839И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9840СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9841Smoke Testing Benefits
9842ï® Smoke testing provides a number of
9843benefits when it is applied on complex,
9844timecritical software engineering projects:
9845ï® Integration risk is minimized.
9846ï® The quality of the end-product is improved.
9847ï® Error diagnosis and correction are
9848simplified.
9849ï® Progress is easier to assess.
9850ТеÑтирање
985132
9852ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9853И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9854СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9855ï® ÐŸÑ€ÐµÐ´Ð½Ð¾Ñти и недоÑтатоци на top-down и
9856bottom-up приÑтапите
9857ï® Sandwich testing
9858ï® Ð˜Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ˜Ð° на критичните модули и
9859нивно теÑтирање што е можно порано
9860 addresses several software requirements
9861 has a high level of control (resides relatively high in
9862the program structure)
9863 is complex or error prone (cyclomatic complexity may
9864be used as an indicator), or
9865 has definite performance requirements.
9866ТеÑтирање
986733
9868ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9869И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9870СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9871Integration Test Documentation
9872ï® Ð¦ÐµÐ»Ð¾Ñниот план за интеграција на компонентите и
9873Ð¾Ð¿Ð¸Ñ Ð½Ð° Ñпецифичните теÑтови како и на генералната
9874методологија Ñе документира во test specification и
9875Ñодржи план и процедури за теÑтирање кое може да
9876биде поделено во фази
9877ï® ÐšÑ€Ð¸Ñ‚ÐµÑ€Ð¸ÑƒÐ¼Ð¸ при теÑтирањето:
9878 Interface integrity
9879 Functional validity
9880 Information content
9881 Performance
9882ï® ÐžÐ¿Ð¸Ñ Ð½Ð° дополнителниот Ñофтвер (stubs and drivers)
9883ï® ÐžÐ¿Ð¸Ñ Ð½Ð° околината за теÑтирање и потребните
9884реÑурÑи (хардвер, Ñимулатори, ...)
9885ТеÑтирање
988634
9887ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9888И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9889СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9890Testing in the OO Context
9891ï® Unit Testing in the OO Context
9892ï® Integration Testing in the OO Context
9893thread-based testing (respond to one input or
9894event)
9895use-based testing (independent classes - use
9896very few server classes toward dependent
9897classes)
9898Stubs/drivers
9899Cluster testing
990035
9901ТеÑтирање
9902ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9903И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9904СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9905Validation Testing
9906ï® ÐŸÐ¾Ñ‡Ð½ÑƒÐ²Ð° откако Ñофтверот е целоÑно
9907интегриран
9908ï® Ð”Ð°Ð»Ð¸ Ñофтверот ги задоволува
9909очекувањата на клиентот (Ñпоред
9910Software Requirements Specification – ги
9911опишува кориÑнички видливите
9912атрибути на Ñофтверот)
9913ï® Ð¡ÐµÑ€Ð¸Ñ˜Ð° на black-box теÑтови (deficiency
9914list)
9915ï® Alpha and Beta Testing
9916ТеÑтирање
991736
9918ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9919И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9920СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9921System Testing
9922ï® Recovery Testing
9923 forces the software to fail and than recover
9924ï® Security Testing
9925 verify that protection mechanisms built into a system
9926will, protect it from improper penetration
9927ï® Stress Testing
9928 executes a system in a manner that demands
9929resources in abnormal quantity, frequency, or volume
9930ï® Performance Testing
9931ï® Deployment testing (configuration testing)
9932ТеÑтирање
993337
9934ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9935И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9936СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9937Debugging
9938ï® ÐšÐ°ÐºÐ¾ поÑледица на уÑпешните теÑтови – откриените грешки треба да Ñе поправат – debugging
9939Identified
9940causes
9941Suspected
9942causes
9943Additional
9944tests
9945Corrections
9946Regression
9947tests
9948Execution
9949of cases
9950Results
9951Test
9952cases
9953Debugging
9954ТеÑтирање
995538
9956ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9957И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9958СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9959ï® Ð”ÐµÐ±Ð°Ð³Ð¸Ñ€Ð°ÑšÐµ – барање и поправање на грешки – барање на
9960причината за забележана поÑледица (дополнителни теÑтови за
9961прецизно лоцирање на проблемот)
9962ï® Ð—Ð¾ÑˆÑ‚Ð¾ дебагирањето е тешко:
99631. The symptom and the cause may be geographically remote.
99642. The symptom may disappear (temporarily) when another error is
9965corrected.
99663. The symptom may actually be caused by nonerrors (e.g., round-off
9967inaccuracies).
99684. The symptom may be caused by human error that is not easily traced.
99695. The symptom may be a result of timing problems, rather than processing
9970problems.
99716. It may be difficult to accurately reproduce input conditions (e.g., a real- time application in which input ordering is indeterminate).
99727. The symptom may be intermittent. This is particularly common in
9973embedded systems that couple hardware and software inextricably.
99748. The symptom may be due to causes that are distributed across a number
9975of tasks running on different processors.
9976ТеÑтирање
997739
9978ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9979И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9980СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9981Debugging Approaches
9982ï® Ð¦ÐµÐ»Ñ‚Ð° е да Ñе пронајде и иÑправи
9983забележана аномалија – завиÑи од:
9984 ÑиÑтемÑки приÑтап
9985 интуиција
9986 Ñреќа
9987ï® Debugging approaches
9988 brute force,
9989 backtracking,
9990 cause elimination.
9991 When all else fails, get help!
9992ТеÑтирање
999340
9994ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
9995И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
9996СОФТВЕРСКО ИÐЖЕÐЕРСТВО
9997Пред да Ñе поправи грешката
9998ï® Three simple questions that every software engineer
9999should ask before making the "correction" that removes
10000the cause of a bug:
100011. Is the cause of the bug reproduced in another part
10002of the program?
10003 erroneous pattern of logic that may be reproduced elsewhere
100042. What "next bug" might be introduced by the fix I'm
10005about to make?
10006 If the correction is to be made in a highly coupled section of the
10007program, special care must be taken when any change is made.
100083. What could we have done to prevent this bug in the
10009first place?
10010 establishing a statistical software quality assurance approach
10011ТеÑтирање
1001241
10013ФÐКУЛТЕТ ЗРИÐФОРМÐТИЧКИ ÐÐУКИ
10014И КОМПЈУТЕРСКО ИÐЖЕÐЕРСТВО
10015СОФТВЕРСКО ИÐЖЕÐЕРСТВО
10016Прашања?
1001742
10018ТеÑтирање
10019_______________________________________________________________________________________________________________________________________