Шта је софтверско инжењерство?
Софтверски инжењеринг је дефинисан као процес анализе захтева корисника, а затим дизајнирања, изградње и тестирања софтверске апликације која ће удовољити тим захтевима.
Погледајмо разне дефиниције софтверског инжењерства:
- ИЕЕЕ, у свом стандарду 610.12-1990, дефинише софтверски инжењеринг као примену систематског, дисциплинованог, што је израчунљив приступ за развој, рад и одржавање софтвера.
- Фритз Бауер га је дефинисао као „успостављање и коришћење стандардних инжењерских принципа. Помаже вам да економично набавите софтвер који је поуздан и ефикасно ради на стварним машинама.
- Боехм дефинише софтверско инжењерство, које укључује „практичну примену научног знања на креативни дизајн и изградњу рачунарских програма. Такође укључује повезану документацију потребну за њихов развој, рад и одржавање. '
У овом упутству за софтверски инжењеринг научићете:
- Шта је софтверско инжењерство?
- Зашто софтверски инжењеринг? Криза софтвера и њено решење
- Зашто је софтверско инжењерство популарно?
- Однос софтверског инжењерства и других дисциплина
- Изазови софтверског инжењерства
- Атрибути за софтверске производе
- Карактеристике доброг софтвера
Зашто софтверски инжењеринг? Криза софтвера и њено решење:
Шта је била криза софтвера?
- Било је то крајем 1960-их када су многи софтверски пројекти пропали.
- Многи софтвери су постали прекорачени. Излаз је био непоуздан софтвер који је скуп за одржавање.
- Већи софтвер било је тешко и прилично скупо за одржавање.
- Много софтвера није у стању да задовољи растуће захтеве купаца.
- Сложеност софтверских пројеката повећавала се кад год се повећала његова хардверска способност.
- Потражња за новим софтвером повећавала се брже у поређењу са способношћу генерисања новог софтвера.
Сви горе наведени проблеми воде до „софтверске кризе“.
Раствор
Решење је било у томе што је трансформисао неорганизоване напоре кодирања у дисциплину софтверског инжењерства. Ови инжењерски модели помогли су компанијама да поједноставе пословање и испоруче софтвер који испуњава захтеве купаца.
- Крајем 1970-их приметила се широка употреба принципа софтверског инжењерства.
- Осамдесетих година прошлог века дошло је до аутоматизације процеса софтверског инжењерства и раста (ЦАСЕ) рачунарски подржаног софтверског инжењерства.
- Деведесетих година прошлог века забележено је повећано наглашавање аспеката управљања и управљања стандардима квалитета и процеса, као што је ИСО 9001
Зашто је софтверско инжењерство популарно?
Ево важних разлога који стоје иза популарности софтверског инжењерства:
- Велики софтвер - У нашем стварном животу је сасвим угодније градити зид него кућу или зграду. На исти начин, како величина софтвера постаје велика, софтверски инжењеринг вам помаже да направите софтвер.
- Скалабилност - Ако се процес развоја софтвера заснивао на научним и инжењерским концептима, лакше је поново створити нови софтвер за скалирање постојећег.
- Прилагодљивост : Кад год се софтверски процес заснивао на науци и инжењерству, лако је поново створити нови софтвер уз помоћ софтверског инжењерства.
- Трошковно- хардверска индустрија показала је своје вештине, а велика производња смањује трошкове рачунара и електронског хардвера.
- Динамична природа - Увек расте и прилагођава природу софтвера. Зависи од окружења у којем корисник ради.
- Управљање квалитетом : Нуди бољи начин развоја софтвера за пружање квалитетних софтверских производа.
Однос софтверског инжењерства и других дисциплина
Ево како је софтверски инжењеринг повезан са другим дисциплинама:
- Рачунарске науке: Даје научну основу софтверу јер електротехника углавном зависи од физике.
- Наука о управљању: Софтверски инжењеринг је радно интензиван посао који захтева и техничку и менаџерску контролу. Због тога се широко користи у науци о управљању.
- Економија: У овом сектору софтверски инжењеринг вам помаже у процени ресурса и контроли трошкова. Рачунски систем мора бити развијен, а подаци се треба редовно одржавати у оквиру датог буџета.
- Системско инжењерство: Већина софтвера је компонента много већег система. На пример, софтвер у индустријском систему за надзор или софтвер за лет у авиону. За проучавање ове врсте система треба применити методе софтверског инжењерства.
Изазови софтверског инжењерства
Ево неколико критичних изазова са којима се суочавају софтверски инжењери:
- У подручјима која су критична за безбедност, попут свемира, ваздухопловства, нуклеарних електрана итд., Трошкови квара софтвера могу бити огромни јер су животи угрожени.
- Повећани захтеви тржишта за брзим временом обрта.
- Суочавање са повећаном сложеношћу софтверске потребе за новим апликацијама.
- Разноликост софтверских система треба да комуницира једни са другима.
Атрибути за софтверске производе
Карактеристике било ког софтверског производа укључују функције које производ приказује када се инсталира и стави у употребу.
Они нису услуге које пружа производ. Уместо тога, они су повезани са динамичким понашањем производа и употребом производа.
Примери ових атрибута су:
Efficiency, reliability, robustness, maintainability, etc.
Међутим, релативна важност ових карактеристика варира од једног софтверског система до другог.
Карактеристике производа | Опис |
Одржавање | Софтвер би требало да се развија у складу са променљивим захтевима клијената. |
Поузданост | Поузданост укључује разне карактеристике. Поуздани софтвер никада не би требао проузроковати физичку или економску штету у тренутку квара система. |
Ефикасност | Софтверска апликација треба прекомерно користити системске ресурсе попут меморије и циклуса процесора. |
Употребљивост | Софтверска апликација треба да има специфични кориснички интерфејс и документацију. |
Оптимизација горњег атрибута је веома изазовна. На пример, нуђење бољег корисничког интерфејса може смањити ефикасност система.
Карактеристике доброг софтвера
Било који софтвер треба оцењивати према ономе што нуди и које су методе које вам помажу да га користите.
Сваки софтвер мора задовољити следеће атрибуте:
- Оперативни
- Прелазни
- Одржавање
Ево неколико важних карактеристика доброг софтвера који су развили професионалци софтвера
Оперативни
Ова карактеристика нам је дала до знања о томе како добро софтвер функционише у операцијама које се могу мерити на:
- Буџет
- Ефикасност
- Употребљивост
- Поузданост
- Исправност
- Функционалност
- Сигурност
- Сигурност
Прелазни
Ово је важан аспект када се софтвер премешта са једне платформе на другу:
- Компатибилност
- Могућност поновне употребе
- Преносивост
- Прилагодљивост
Одржавање
Овај аспект говори о томе колико добро софтвер има могућности да се прилагоди у окружењу које се брзо мења:
- Флексибилност
- Одржавање
- Модуларност
- Прилагодљивост
Резиме
- Софтверски инжењеринг је процес анализе захтева корисника, а затим дизајнирање, израда и тестирање софтверске апликације која ће удовољити тим захтевима
- Важни разлози за коришћење софтверског инжењерства су: 1) велики софтвер, 2) скалабилност 3) прилагодљивост 4) цена и 5) динамичка природа.
- Крајем 1960-их многи софтвери прелазе буџет. Стога нуди непоуздан софтвер који је скуп за одржавање.
- Крајем 1970-их приметила се широка употреба принципа софтверског инжењерства.
- Концепт софтверског инжењерства 1) Рачунарство 2) Наука о управљању 3) Системско инжењерство и 4) Економија
- Повећани захтеви тржишта за брзим преокретом највећи су изазови на пољу софтверског инжењерства.
- 1) одрживост, 2) поузданост, 3) ефикасност и, 4) употребљивост су најважнији атрибути софтверских производа.
- Три најважније карактеристике доброг софтвера су 1) оперативно 2) прелазно 3) одржавање.