Какво е софтуерно инженерство? Определение, основи, характеристики

Какво е софтуерно инженерство?

Софтуерното инженерство се определя като процес на анализиране на потребителските изисквания и след това проектиране, изграждане и тестване на софтуерно приложение, което ще задоволи тези изисквания.

Нека да разгледаме различните дефиниции на софтуерното инженерство:

  • IEEE, в своя стандарт 610.12-1990, дефинира софтуерното инженерство като прилагане на систематичен, дисциплиниран, който е изчислим подход за разработване, експлоатация и поддръжка на софтуер.
  • Фриц Бауер го определи като „учредяване и използване на стандартни инженерни принципи“. Помага ви да получите икономично софтуер, който е надежден и работи ефективно на реални машини.
  • Boehm дефинира софтуерното инженерство, което включва „практическото приложение на научните знания за творческото проектиране и изграждане на компютърни програми“. Той също така включва свързаната документация, необходима за разработването, експлоатацията и поддръжката им.'

Защо софтуерно инженерство? Софтуерна криза и нейното решение

Какво беше софтуерната криза?

  • Беше в края на 1960-те години, когато много софтуерни проекти се провалиха.
  • Много софтуер стана над бюджета. Резултатът беше ненадежден софтуер, чиято поддръжка е скъпа.
  • По-големият софтуер беше труден и доста скъп за поддръжка.
  • Много софтуер, който не може да задоволи нарастващите изисквания на клиента.
  • Сложността на софтуерните проекти се увеличаваше, когато хардуерните възможности се увеличаваха.
  • Търсенето на нов софтуер нараства по-бързо в сравнение с възможността за генериране на нов софтуер.

Всички горепосочени проблеми водят до „Софтуерна криза“.

Решението

Решението на проблема беше трансформирането на неорганизираното усилие по кодиране в дисциплина на софтуерното инженерство. Тези инженерни модели помогнаха на компаниите да рационализират операциите и да доставят софтуер, отговарящ на изискванията на клиентите.

  • В края на 1970-те години се наблюдава широкото използване на принципите на софтуерното инженерство.
  • През 1980-те години се наблюдава автоматизиране на процеса на софтуерно инженерство и разрастване на (CASE) компютърно подпомагано софтуерно инженерство.
  • През 1990-те години на миналия век се наблюдава повишен акцент върху аспектите на „управление“ на стандарта за качество на проектите и процесите точно като ISO 9001

Защо софтуерното инженерство е популярно?

Ето важните причини за популярността на софтуерното инженерство:

Защо софтуерното инженерство е популярно

  • Голям софтуер – В нашия реален живот е доста по-удобно да се построи стена, отколкото къща или сграда. По същия начин, когато размерът на софтуера стане голям, софтуерното инженерство ви помага да изградите софтуер.
  • мащабируемост- Ако процесът на разработка на софтуер се основава на научни и инженерни концепции, е по-лесно да се създаде нов софтуер, за да се мащабира съществуващ.
  • Приспособимост: Когато софтуерният процес се основава на наука и инженерство, е лесно да се пресъздаде нов софтуер с помощта на софтуерно инженерство.
  • цена- Хардуерната индустрия показа своите умения и огромното производство намали цената на компютърния и електронния хардуер.
  • Динамична природа– Постоянно нарастващ и адаптиращ се характер на софтуера. Зависи от средата, в която работи потребителят.
  • Управление на качеството: Предлага по-добър метод за разработка на софтуер за предоставяне на качествени софтуерни продукти.

Връзка на софтуерното инженерство с други дисциплини

Ето как софтуерното инженерство е свързано с други дисциплини:

  • Информатика: Дава научната основа за софтуера, тъй като електротехниката зависи главно от физиката.
  • Наука за управление: Софтуерното инженерство е трудоемка работа, която изисква както технически, така и управленски контрол. Поради това се използва широко в науката за управление.
  • икономика: В този сектор софтуерното инженерство ви помага при оценката на ресурсите и контрола на разходите. Компютърната система трябва да бъде разработена и данните трябва да се поддържат редовно в рамките на даден бюджет.
  • Системно инженерство: Повечето софтуери са компоненти на много по-големи системи. Например софтуерът в система за наблюдение на индустрията или софтуерът за полет на самолет. Методите на софтуерното инженерство трябва да се прилагат при изследването на този тип системи.

Предизвикателства на софтуерното инженерство

Ето някои критични предизвикателства, пред които са изправени софтуерните инженери:

  • В критични за безопасността области като космоса, авиацията, атомните електроцентрали и т.н. цената на софтуерния срив може да бъде огромна, защото животите са изложени на риск.
  • Повишени пазарни изисквания за бързо изпълнение.
  • Справяне с повишената сложност на нуждата от софтуер за нови приложения.
  • Разнообразието от софтуерни системи трябва да комуникира помежду си.

Атрибути за софтуерни продукти

Характеристиките на всеки софтуерен продукт включват функции, които се показват от продукта, когато е инсталиран и пуснат в употреба.

Те не са услугите, които се предоставят от продукта. Вместо това те са свързани с динамичното поведение на продукта и употребата на продукта.

Примери за тези атрибути са:

Efficiency, reliability, robustness, maintainability, etc. 

Относителното значение на тези характеристики обаче варира от една софтуерна система до друга.

Характеристика на продукта Descriptйон
ремонтопригодност Софтуерът трябва да се развива, за да отговори на променящите се изисквания на клиентите.
Надеждност Надеждността включва различни характеристики. Надеждният софтуер никога не трябва да причинява физически или икономически щети по време на повреда на системата.
Ефективност Софтуерното приложение трябва да използва прекалено много системни ресурси като памет и цикъл на процесора.
Ползваемост Софтуерното приложение трябва да има специфичен потребителски интерфейс и документация.

Оптимизирането на горния атрибут е много предизвикателство. Например предлагането на по-добър потребителски интерфейс може да намали ефективността на системата.

Характеристики на добрия софтуер

Всеки софтуер трябва да се оценява според това какво предлага и какви са методите, които ви помагат да го използвате.

Всеки софтуер трябва да отговаря на следните характеристики:

  • Operaналното
  • преходен
  • поддръжка

Ето някои важни характеристики на добрия софтуер, разработен от софтуерни професионалисти

Operaналното

Тази характеристика ни позволява да разберем колко добре работи софтуерът в операциите, които могат да бъдат измерени на:

  • Бюджет
  • Ефективност
  • Ползваемост
  • Надеждност
  • правилност
  • Функционалност
  • Безопасност
  • Охрана

преходен

Това е съществен аспект, когато софтуерът се премества от една платформа на друга:

  • Оперативна съвместимост
  • Реус Възможност
  • Преносимост
  • Приспособимост

поддръжка

Този аспект говори за това колко добре софтуерът има възможностите да се адаптира в бързо променящата се среда:

  • Гъвкавост
  • ремонтопригодност
  • модулност
  • скалируемост

Oбобщение

  • Софтуерното инженерство е процес на анализиране на потребителските изисквания и след това проектиране, изграждане и тестване на софтуерно приложение, което ще удовлетвори тези изисквания
  • Важни причини за използването на софтуерно инженерство са: 1) Голям софтуер, 2) Мащабируемост 3) Адаптивност 4) Цена и 5) Динамичен характер.
  • В края на 1960-те много софтуер става над бюджета. Поради това предлага ненадежден софтуер, чиято поддръжка е скъпа.
  • В края на 1970-те години се наблюдава широкото използване на принципите на софтуерното инженерство.
  • Концепция за софтуерно инженерство 1) Компютърни науки 2) Наука за управление 3) Системно инженерство и 4) Икономика
  • Повишените пазарни изисквания за бързо изпълнение са най-големите предизвикателства в областта на софтуерното инженерство.
  • 1) Поддържаемост, 2) Надеждност, 3) Ефективност и, 4) Използваемост са най-важните атрибути на софтуерните продукти.
  • Трите най-важни характеристики на добрия софтуер са 1) Operaционен 2)Преходен 3)Поддръжка.