Co to jest inżynieria oprogramowania? Definicja, podstawy, cechy

Co to jest inżynieria oprogramowania?

Inżynierię oprogramowania definiuje się jako proces analizy wymagań użytkownika, a następnie projektowania, budowania i testowania aplikacji, która spełni te wymagania.

Przyjrzyjmy się różnym definicjom inżynierii oprogramowania:

  • IEEE w swojej normie 610.12-1990 definiuje inżynierię oprogramowania jako stosowanie systematycznego, zdyscyplinowanego, a więc obliczeniowego podejścia do tworzenia, obsługi i konserwacji oprogramowania.
  • Fritz Bauer zdefiniował to jako „ustanowienie i zastosowanie standardowych zasad inżynieryjnych”. Pomaga uzyskać ekonomiczne oprogramowanie, które jest niezawodne i działa wydajnie na rzeczywistych maszynach.
  • Boehm definiuje inżynierię oprogramowania, która obejmuje „praktyczne zastosowanie wiedzy naukowej do kreatywnego projektowania i tworzenia programów komputerowych. Obejmuje również powiązaną dokumentację potrzebną do ich opracowywania, obsługi i konserwacji”.

Dlaczego inżynieria oprogramowania? Kryzys oprogramowania i jego rozwiązanie

Czym był kryzys oprogramowania?

  • Wiele projektów oprogramowania zakończyło się niepowodzeniem pod koniec lat sześćdziesiątych.
  • Budżet wielu programów został przekroczony. Wynikiem było zawodne oprogramowanie, które jest drogie w utrzymaniu.
  • Większe oprogramowanie było trudne i dość drogie w utrzymaniu.
  • Mnóstwo oprogramowania nie jest w stanie sprostać rosnącym wymaganiom klientów.
  • Złożoność projektów programistycznych wzrastała wraz ze zwiększaniem się możliwości sprzętowych.
  • Zapotrzebowanie na nowe oprogramowanie rosło szybciej w porównaniu z możliwościami generowania nowego oprogramowania.

Wszystkie powyższe problemy prowadzą do „kryzysu oprogramowania”.

Rozwiązanie

Rozwiązaniem problemu było przekształcenie niezorganizowanego wysiłku kodowania w dyscyplinę inżynierii oprogramowania. Te modele inżynieryjne pomogły firmom usprawnić operacje i dostarczać oprogramowanie spełniające wymagania klientów.

  • Pod koniec lat siedemdziesiątych XX wieku zaczęto powszechnie stosować zasady inżynierii oprogramowania.
  • W latach 1980. XX wieku nastąpiła automatyzacja procesu inżynierii oprogramowania i rozwój inżynierii oprogramowania wspomaganego komputerowo (CASE).
  • W latach 1990. XX wieku położono większy nacisk na aspekty „zarządzania” projektami, standardy jakości i procesów, takie jak ISO 9001

Dlaczego inżynieria oprogramowania jest popularna?

Oto ważne powody popularności inżynierii oprogramowania:

Dlaczego inżynieria oprogramowania jest popularna

  • Duże oprogramowanie – W prawdziwym życiu o wiele wygodniej jest zbudować ścianę niż dom lub budynek. W ten sam sposób, gdy rozmiar oprogramowania staje się duży, inżynieria oprogramowania pomaga w jego tworzeniu.
  • Skalowalność- Gdyby proces tworzenia oprogramowania opierał się na koncepcjach naukowych i inżynieryjnych, łatwiej byłoby tworzyć nowe oprogramowanie w celu dostosowania go do skali już istniejącego.
  • Zdolność adaptacji: Zawsze, gdy proces tworzenia oprogramowania opierał się na podstawach naukowych i inżynieryjnych, łatwo jest odtworzyć nowe oprogramowanie za pomocą inżynierii oprogramowania.
  • Koszt- Przemysł sprzętowy wykazał się swoimi umiejętnościami, a ogromny rozwój produkcji obniżył koszty komputerów i sprzętu elektronicznego.
  • Dynamiczna natura– Ciągle rosnąca i adaptacyjna natura oprogramowania. Zależy to od środowiska, w którym pracuje użytkownik.
  • Zarządzanie jakością: Oferuje lepszą metodę tworzenia oprogramowania w celu zapewnienia wysokiej jakości oprogramowania.

Związek inżynierii oprogramowania z innymi dyscyplinami

Tutaj jak inżynieria oprogramowania jest powiązana z innymi dyscyplinami:

  • Informatyka: Zapewnia naukowe podstawy oprogramowania, gdyż elektrotechnika opiera się głównie na fizyce.
  • Nauka o zarządzaniu: Inżynieria oprogramowania to pracochłonna praca wymagająca kontroli technicznej i zarządczej. Dlatego jest szeroko stosowana w naukach o zarządzaniu.
  • Ekonomia: W tym sektorze inżynieria oprogramowania pomaga w szacowaniu zasobów i kontroli kosztów. Należy rozbudować system obliczeniowy, a dane utrzymywać na bieżąco w ramach danego budżetu.
  • Inżynieria systemu: Większość oprogramowania jest składnikiem znacznie większego systemu. Na przykład oprogramowanie w branżowym systemie monitorowania lub oprogramowanie lotu w samolocie. Do badania tego typu systemów należy zastosować metody inżynierii oprogramowania.

Wyzwania inżynierii oprogramowania

Oto kilka kluczowych wyzwań stojących przed inżynierami oprogramowania:

  • W obszarach krytycznych dla bezpieczeństwa, takich jak przestrzeń kosmiczna, lotnictwo, elektrownie jądrowe itp., koszty awarii oprogramowania mogą być ogromne, ponieważ zagrożone jest życie.
  • Zwiększone wymagania rynku dotyczące szybkiego czasu realizacji.
  • Radzenie sobie ze wzrastającą złożonością oprogramowania wymaganą dla nowych aplikacji.
  • Różnorodność systemów oprogramowania powinna komunikować się ze sobą.

Atrybuty oprogramowania

Do cech charakterystycznych każdego produktu programowego zaliczają się funkcje wyświetlane przez produkt po jego zainstalowaniu i uruchomieniu.

Nie są to usługi świadczone przez produkt. Zamiast tego odnoszą się do dynamicznego zachowania produktu i sposobu jego wykorzystania.

Przykładami tych atrybutów są:

Efficiency, reliability, robustness, maintainability, etc. 

Jednakże względne znaczenie tych cech różni się w zależności od systemu oprogramowania.

Charakterystyka produktu Opis
Łatwość utrzymania Oprogramowanie powinno ewoluować, aby sprostać zmieniającym się wymaganiom klientów.
Niezawodność Niezawodność obejmuje różne cechy. Niezawodne oprogramowanie nigdy nie powinno powodować żadnych szkód fizycznych ani ekonomicznych w momencie awarii systemu.
Wydajność: Aplikacja powinna nadmiernie wykorzystywać zasoby systemowe, takie jak pamięć i cykl procesora.
Użyteczność Aplikacja powinna mieć określony interfejs użytkownika i dokumentację.

Optymalizacja powyższego atrybutu jest bardzo trudna. Na przykład oferowanie lepszego interfejsu użytkownika może zmniejszyć wydajność systemu.

Charakterystyka dobrego oprogramowania

Każde oprogramowanie powinno być oceniane na podstawie tego, co oferuje i metod, które pomagają z niego korzystać.

Każde oprogramowanie musi spełniać następujące cechy:

  • Operanarodowa
  • Przejściowy
  • Konserwacja

Oto kilka ważnych cech dobrego oprogramowania opracowanego przez profesjonalistów zajmujących się oprogramowaniem

Operanarodowa

Ta cecha pozwala nam dowiedzieć się, jak dobrze oprogramowanie sprawdza się w operacjach, co można zmierzyć na podstawie:

  • Budżet
  • Wydajność:
  • Użyteczność
  • Niezawodność
  • Poprawność
  • Funkcjonalność
  • Bezpieczeństwo
  • Bezpieczeństwo

Przejściowy

Jest to istotny aspekt w przypadku przenoszenia oprogramowania z jednej platformy na drugą:

  • Interoperacyjność
  • Wielokrotny użytek
  • Przenośność
  • Zdolność adaptacji

Konserwacja

Ten aspekt mówi o tym, jak dobrze oprogramowanie może dostosować się do szybko zmieniającego się środowiska:

  • Elastyczność
  • Łatwość utrzymania
  • Modułowość
  • Skalowalność

Podsumowanie

  • Inżynieria oprogramowania to proces analizy wymagań użytkownika, a następnie projektowania, budowania i testowania aplikacji, która spełni te wymagania
  • Ważnymi powodami stosowania inżynierii oprogramowania są: 1) Duże oprogramowanie, 2) Skalowalność 3) Możliwość adaptacji 4) Koszt i 5) Dynamiczny charakter.
  • Pod koniec lat 1960. budżet wielu programów przekraczał budżet. Dlatego oferuje zawodne oprogramowanie, które jest drogie w utrzymaniu.
  • Pod koniec lat siedemdziesiątych XX wieku zaczęto powszechnie stosować zasady inżynierii oprogramowania.
  • Koncepcja inżynierii oprogramowania 1) Informatyka 2) Nauka o zarządzaniu 3) Inżynieria systemów i 4) Ekonomia
  • Zwiększone wymagania rynku dotyczące szybkiego czasu realizacji to największe wyzwania w dziedzinie inżynierii oprogramowania.
  • 1) Łatwość konserwacji, 2) Niezawodność, 3) Wydajność i 4) Użyteczność to najważniejsze atrybuty oprogramowania.
  • Trzy najważniejsze cechy dobrego oprogramowania to 1) Opera2)Przejściowe 3)Konserwacja.