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

Spisie treści:

Anonim

Co to jest inżynieria oprogramowania?

Inżynieria oprogramowania jest definiowana jako proces analizy wymagań użytkownika, a następnie projektowania, budowania i testowania aplikacji, która będzie spełniała te wymagania.

Spójrzmy na różne definicje inżynierii oprogramowania:

  • IEEE w swojej normie 610.12-1990 definiuje inżynierię oprogramowania jako stosowanie systematycznego, zdyscyplinowanego, które jest obliczalnym podejściem do rozwoju, eksploatacji i utrzymania oprogramowania.
  • Fritz Bauer zdefiniował to jako „ustanowienie i stosowanie standardowych zasad inżynierii. Pomaga w uzyskaniu ekonomicznie niezawodnego i wydajnego oprogramowania na rzeczywistych maszynach ”.
  • Boehm definiuje inżynierię oprogramowania, która obejmuje „praktyczne zastosowanie wiedzy naukowej do kreatywnego projektowania i tworzenia programów komputerowych. Zawiera również powiązaną dokumentację potrzebną do ich opracowywania, obsługi i konserwacji ”.

W tym samouczku inżynierii oprogramowania dowiesz się:

  • Co to jest inżynieria oprogramowania?
  • Dlaczego inżynieria oprogramowania? Kryzys oprogramowania i jego rozwiązanie
  • Dlaczego inżynieria oprogramowania jest popularna?
  • Związek inżynierii oprogramowania z innymi dyscyplinami
  • Wyzwania inżynierii oprogramowania
  • Atrybuty produktów oprogramowania
  • Charakterystyka dobrego oprogramowania

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

Na czym polegał kryzys oprogramowania?

  • To było pod koniec lat 60., kiedy wiele projektów oprogramowania zakończyło się niepowodzeniem.
  • Wiele programów przekroczyło budżet. Wynik był zawodnym oprogramowaniem, które jest drogie w utrzymaniu.
  • Większe oprogramowanie było trudne i dość drogie w utrzymaniu.
  • Wiele programów nie jest w stanie zaspokoić rosnących wymagań klienta.
  • Złożoność projektów oprogramowania rosła wraz ze wzrostem możliwości sprzętowych.
  • Zapotrzebowanie na nowe oprogramowanie rosło szybciej w porównaniu z możliwością generowania nowego oprogramowania.

Wszystkie powyższe kwestie prowadzą do „Kryzysu oprogramowania”.

Rozwiązanie

Rozwiązaniem problemu było przekształcenie niezorganizowanych wysiłków związanych z kodowaniem 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 na szeroką skalę zaczęto stosować zasady inżynierii oprogramowania.
  • W latach osiemdziesiątych XX wieku nastąpiła automatyzacja procesu inżynierii oprogramowania i rozwój (CASE) wspomaganej komputerowo inżynierii oprogramowania.
  • Lata 90-te przyniosły zwiększony nacisk na aspekty „zarządzania” w projektach, standardach jakości i procesach, podobnie jak ISO 9001

Dlaczego inżynieria oprogramowania jest popularna?

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

  • Duże oprogramowanie - W naszym prawdziwym życiu znacznie wygodniej jest zbudować ścianę niż dom czy budynek. W ten sam sposób, gdy rozmiar oprogramowania staje się duży, inżynieria oprogramowania pomaga w jego tworzeniu.
  • Skalowalność - jeśli proces tworzenia oprogramowania był oparty na koncepcjach naukowych i inżynieryjnych, łatwiej jest odtworzyć nowe oprogramowanie w celu skalowania już istniejącego.
  • Możliwość adaptacji : zawsze, gdy proces tworzenia oprogramowania był oparty na nauce i inżynierii, łatwo jest odtworzyć nowe oprogramowanie za pomocą inżynierii oprogramowania.
  • Koszty - branża sprzętu pokazała swoje umiejętności, a ogromna produkcja obniżyła koszt komputerów i sprzętu elektronicznego.
  • Dynamiczna natura - stale się rozwija i dostosowuje charakter 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

Oto jak inżynieria oprogramowania odnosi się do innych dyscyplin:

  • Informatyka: daje naukowe podstawy oprogramowania, ponieważ elektrotechnika zależy głównie od fizyki.
  • Nauki o zarządzaniu: Inżynieria oprogramowania jest pracochłonną pracą, która wymaga zarówno kontroli technicznej, jak i kierowniczej. Dlatego jest szeroko stosowany w naukach o zarządzaniu.
  • Ekonomia: w tym sektorze inżynieria oprogramowania pomaga w szacowaniu zasobów i kontroli kosztów. System obliczeniowy musi być rozwijany, a dane powinny być regularnie aktualizowane w ramach określonego budżetu.
  • Inżynieria systemu: Większość oprogramowania jest składnikiem znacznie większego systemu. Na przykład oprogramowanie w przemysłowym systemie monitorowania lub oprogramowanie lotnicze w samolocie. Do badania tego typu systemów należy zastosować metody inżynierii oprogramowania.

Wyzwania inżynierii oprogramowania

Oto kilka krytycznych wyzwań, przed którymi stoją inżynierowie oprogramowania:

  • W obszarach krytycznych dla bezpieczeństwa, takich jak kosmos, lotnictwo, elektrownie jądrowe itp., Koszty awarii oprogramowania mogą być ogromne, ponieważ zagrożone jest życie.
  • Zwiększone zapotrzebowanie rynku na szybki czas realizacji.
  • Radzenie sobie ze zwiększoną złożonością oprogramowania potrzebnego do nowych aplikacji.
  • Różnorodność systemów oprogramowania powinna komunikować się ze sobą.

Atrybuty produktów oprogramowania

Charakterystyka każdego oprogramowania obejmuje funkcje, które są wyświetlane przez produkt podczas jego instalacji i użytkowania.

Nie są to usługi świadczone przez produkt. Zamiast tego odnosili się do dynamicznego zachowania produktów i wykorzystania produktu.

Przykładami tych atrybutów są:

Efficiency, reliability, robustness, maintainability, etc.

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

Charakterystyka produktu Opis
Konserwowalność Oprogramowanie powinno ewoluować, aby sprostać zmieniającym się wymaganiom klientów.
Rzetelność Niezawodność obejmuje różne cechy. Niezawodne oprogramowanie nigdy nie powinno powodować żadnych fizycznych ani ekonomicznych szkód w momencie awarii systemu.
Wydajność Aplikacja powinna nadużywać zasobów systemowych, takich 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 należy oceniać na podstawie tego, co oferuje i jakie metody pomagają w jego użyciu.

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

  • Operacyjny
  • Przejściowy
  • Konserwacja

Oto kilka ważnych cech dobrego oprogramowania opracowanego przez specjalistów ds. Oprogramowania

Operacyjny

Ta cecha pozwala nam wiedzieć, jak dobrze działa oprogramowanie w operacjach, które można zmierzyć na:

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

Przejściowy

Jest to istotny aspekt, gdy oprogramowanie jest przenoszone z jednej platformy na drugą:

  • Interoperacyjność
  • Możliwość ponownego użycia
  • Ruchliwość
  • Zdolność adaptacji

Konserwacja

Ten aspekt mówi o tym, jak dobrze oprogramowanie ma możliwości dostosowywania się w szybko zmieniającym się środowisku:

  • Elastyczność
  • Konserwowalność
  • Modułowość
  • Skalowalność

Podsumowanie

  • Inżynieria oprogramowania to proces analizy wymagań użytkownika, a następnie projektowania, budowania i testowania aplikacji, która będzie spełniała te wymagania
  • Ważnymi powodami używania inżynierii oprogramowania są: 1) duże oprogramowanie, 2) skalowalność, 3) zdolność adaptacji, 4) koszt i 5) dynamiczny charakter.
  • Pod koniec lat 60. wiele programów przekroczyło budżet. Dlatego oferuje zawodne oprogramowanie, które jest drogie w utrzymaniu.
  • Pod koniec lat siedemdziesiątych XX wieku na szeroką skalę zaczęto stosować zasady inżynierii oprogramowania.
  • Koncepcja inżynierii oprogramowania 1) Informatyka 2) Nauki o zarządzaniu 3) Inżynieria systemów i 4) Ekonomia
  • Zwiększone zapotrzebowanie rynku na szybki czas realizacji jest największym wyzwaniem w dziedzinie inżynierii oprogramowania.
  • 1) Łatwość utrzymania, 2) Niezawodność, 3) Wydajność i 4) Użyteczność to najważniejsze cechy oprogramowania.
  • Trzy najważniejsze cechy dobrego oprogramowania to: 1) Operacyjny 2) Przejściowy 3) Konserwacja.