Софтваре Енгинееринг вс Цомпутер Сциенце
У савременом друштву рачунари су постали саставни и незаобилазни део. Међутим, мање се фокусирамо на унутрашње деловање ових познатих ствари. Рачунарска наука је теоријска основа рачунарских система, док је софтверски инжењеринг примена тих принципа на проблеме у развоју софтверског решења.
Информатика
Информатика је основна наука о рачунару хардвера и софтвера. Омогућава увид у механизам софтверских и хардверских компоненти и теоријске основе израчуна за имплементацију и примену у рачунарским системима.
Информатика се састоји од многих главних под-дисциплина. Рачунарска теорија, теорија информација и кодирања, алгоритми и структура података те теорија програмског језика припада теоријској рачунарској науци. Поддисциплине примењене рачунарске науке су вештачка интелигенција, рачунарска архитектура и инжењерство, рачунарска графика и визуализација, криптографија и рачунарска безбедност, рачунарске мреже, истодобни, паралелни и дистрибуирани системи, базе података и проналажење информација и софтверски инжењеринг.
Многе од ових дисциплина темеље се на математичким теоријама. Неки аспекти примене повезани су са мехатроником и другим примењеним наукама.
Такође, ове се под-дисциплине шире у мање студије. На пример, рачунска теорија садржи подручја истраживања као што су теорија аутомата, теорија рачунања, теорија сложености, криптографија и квантна теорија рачунања.
Софтверско инжењерство
Софтверски инжењеринг може се сматрати једном од главних под-дисциплина примењене рачунарске науке. Фокусира се на изградњу ефикасних софтверских система који користе строг инжењерски приступ. Може се описати као систематски, дисциплинован, мјерљив приступ дизајну, развоју, раду и одржавању софтвера и проучавању ових приступа. Не постоји једна прихваћена дефиниција софтверског инжењеринга, већ интерпретација његове намене.
Фритз Бауер је софтверски инжењеринг дефинисао као „Успостављање и коришћење здравих принципа инжењеринга како би се добио економски развијен софтвер који је поуздан и ефикасно ради на стварним машинама“.
Софтвер није физички; то су логични ентитети који раде унутар рачунарског система. Стога мора бити дизајниран за оптималне перформансе како у хардверском тако и у оперативном погледу. За постизање ових циљева софтверски инжењери користе развојне моделе. Ови модели укључују главне кораке развоја софтвера попут дизајнирања, кодирања, решавања проблема и одржавања у кохезиван оквир који омогућава систематски напредак софтвера кроз његов животни циклус.
Која је разлика између софтверског инжењерства и рачунарске науке?
• Рачунарство се фокусира на теоријске аспекте рачунарства, како у софтверу, тако и у хардверу.
• Софтверски инжењеринг фокусиран на системски развој софтвера. Кодирање или програмирање је кључна компонента софтверског инжењеринга.
• Софтверски инжењеринг се може посматрати као примена теорије рачунања (на пример, ефикасност алгоритма се може мерити сложеношћу, која је описана у теорији рачунарске науке, али је примена у домену софтверског инжењерства тамо где је најприкладнији алгоритам изабрано помоћу сложености).