Czym jest inżynieria oprogramowania? Charakterystyka, definicja

⚡ Inteligentne podsumowanie

Inżynieria oprogramowania to zdyscyplinowany proces analizy wymagań, a następnie projektowania, tworzenia i testowania oprogramowania, które je spełnia. W tym materiale wyjaśniono definicje inżynierii, kryzys oprogramowania, który ją wywołał, jej popularność, powiązane dyscypliny, wyzwania oraz cechy dobrego oprogramowania.

  • 📘 Definicja podstawowa: Inżynieria oprogramowania wykorzystuje systematyczne, zdyscyplinowane zasady inżynieryjne w celu tworzenia, obsługi i utrzymywania niezawodnego oprogramowania.
  • ⚠️ Kryzys oprogramowania: Niepowodzenia projektów pod koniec lat 1960. i rosnące koszty stworzyły potrzebę stworzenia ustrukturyzowanej dyscypliny inżynierskiej.
  • 📈 Dlaczego jest to ważne: Umożliwia tworzenie dużego, skalowalnego, elastycznego i ekonomicznego oprogramowania przy jednoczesnym zachowaniu spójnego zarządzania jakością.
  • 🔗 Pokrewne dyscypliny: Opiera się na informatyce, naukach o zarządzaniu, ekonomii i inżynierii systemów.
  • Dobre oprogramowanie: Wysokiej jakości oprogramowanie jest funkcjonalne, przejściowe i łatwe w utrzymaniu w zmieniających się warunkach.

Czym jest inżynieria oprogramowania

Co to jest inżynieria oprogramowania?

Inżynierię oprogramowania definiuje się jako proces analizy wymagań użytkowników, a następnie projektowania, tworzenia 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 zastosowanie systematycznego, zdyscyplinowanego i obliczeniowego podejścia do tworzenia, obsługi i konserwacji oprogramowania.
  • Fritz Bauer zdefiniował to jako „ustanowienie i stosowanie standardowych zasad inżynieryjnych. Pomaga to w ekonomiczny sposób uzyskać oprogramowanie, które jest niezawodne i działa wydajnie na rzeczywistych maszynach”.
  • Boehm definiuje inżynierię oprogramowania jako „praktyczne zastosowanie wiedzy naukowej do kreatywnego projektowania i tworzenia programów komputerowych”. Obejmuje ona również powiązaną dokumentację potrzebną do rozwojuping, ich 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.
  • Wiele programów przekroczyło budżet. W rezultacie powstało oprogramowanie zawodne, którego utrzymanie było kosztowne.
  • Większe oprogramowanie było trudne i dość drogie w utrzymaniu.
  • Wiele oprogramowań nie było w stanie sprostać rosnącym wymaganiom klientów.
  • Złożoność projektów programistycznych wzrastała wraz ze wzrostem 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 doprowadziły do ​​„kryzysu oprogramowania”.

Rozwiązanie

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

  • Pod koniec lat 1970. zasady inżynierii oprogramowania zaczęto stosować na szeroką skalę.
  • Lata 1980. XX wieku były świadkiem automatyzacji procesu inżynierii oprogramowania i rozwoju technologii komputerowego wspomagania inżynierii oprogramowania (CASE).
  • W latach 1990. XX wieku zaczęto kłaść większy nacisk na aspekty zarządzania projektami oraz standardy jakości i procesów, podobnie jak w przypadku normy 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 rzeczywistości o wiele łatwiej jest zbudować mur niż dom czy budynek. Podobnie, gdy oprogramowanie staje się duże, inżynieria oprogramowania pomaga w jego tworzeniu.
  • Skalowalność – Jeśli proces tworzenia oprogramowania opiera się na koncepcjach naukowych i inżynieryjnych, łatwiej jest tworzyć nowe oprogramowanie w celu dostosowania go do już istniejącego.
  • Zdolność adaptacji – Gdy proces tworzenia oprogramowania opiera się na zasadach naukowych i inżynieryjnych, łatwo jest tworzyć nowe oprogramowanie za pomocą inżynierii oprogramowania.
  • Koszty: – Przemysł sprzętowy pokazał swoje umiejętności, a ogromny rozwój produkcji obniżył koszty komputerów i sprzętu elektronicznego.
  • Dynamiczna natura – Oprogramowanie charakteryzuje się ciągłym rozwojem i adaptacją. Zależy to od środowiska, w którym pracuje użytkownik.
  • Zarządzanie jakością – Oferuje lepszą metodę tworzenia oprogramowania, pozwalającą na dostarczanie wysokiej jakości produktów programistycznych.

Związek inżynierii oprogramowania z innymi dyscyplinami

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

  • Informatyka: Stanowi naukową podstawę oprogramowania, tak jak fizyka stanowi podstawę elektrotechniki.
  • Nauka o zarządzaniu: Inżynieria oprogramowania to pracochłonna praca, wymagająca zarówno kontroli technicznej, jak 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. Konieczne jest opracowanie systemu obliczeniowego i regularne aktualizowanie danych w ramach określonego budżetu.
  • Inżynieria systemu: Większość oprogramowania jest elementem znacznie większego systemu, na przykład oprogramowania w przemysłowym systemie monitoringu lub oprogramowania pokładowego w samolocie. Do badania tego typu systemów należy stosować metody inżynierii oprogramowania.

Wyzwania inżynierii oprogramowania

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

  • W obszarach, w których bezpieczeństwo ma kluczowe znaczenie, takich jak przestrzeń kosmiczna, lotnictwo i elektrownie jądrowe, koszty awarii oprogramowania mogą być ogromne, ponieważ zagrożone jest ludzkie życie.
  • Zwiększone wymagania rynku dotyczące szybkiego czasu realizacji.
  • Radzenie sobie ze wzrastającą złożonością oprogramowania niezbędnego do tworzenia nowych aplikacji.
  • Różnorodność systemów oprogramowania, które powinny się ze sobą komunikować.

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. Są one natomiast związane z dynamicznym zachowaniem produktu i sposobem jego użytkowania.

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 nie powinna nadmiernie wykorzystywać zasobów systemowych, takich jak pamięć i cykle procesora.
Użyteczność Aplikacja programowa powinna mieć odpowiedni interfejs użytkownika i dokumentację.

Optymalizacja powyższych atrybutów jest bardzo trudna. Na przykład, zaoferowanie lepszego interfejsu użytkownika może obniżyć wydajność systemu.

Charakterystyka dobrego oprogramowania

Oprogramowanie należy oceniać pod kątem tego, co oferuje i metod, które ułatwiają jego użytkowanie.

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

  • Operanarodowa
  • Przejściowy
  • Konserwacja

Oto kilka ważnych cech dobrego oprogramowania tworzonego przez profesjonalistów.

Operanarodowa

Cecha ta 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
  • Ochrona

Przejściowy

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

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

Konserwacja

Aspekt ten mówi o tym, w jakim stopniu oprogramowanie potrafi dostosowywać się do szybko zmieniającego się otoczenia:

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

FAQ

Sztuczna inteligencja wspomaga generowanie kodu, automatyczne testowanie i wykrywanie błędów. Wykonuje rutynowe zadania, pozwalając inżynierom skupić się na projektowaniu, architekturze i rozwiązywaniu złożonych problemów, jednocześnie wymagając ludzkiej kontroli jakości i poprawności.

Nie. Sztuczna inteligencja zwiększa produktywność, ale nie może zastąpić ludzkiego osądu w gromadzeniu wymagań, projektowaniu architektury, rozważaniu etycznych kompromisów i podejmowaniu złożonych decyzji. Inżynierowie coraz częściej kierują i weryfikują wyniki generowane przez narzędzia sztucznej inteligencji.

Programowanie koncentruje się na pisaniu kodu. Inżynieria oprogramowania stosuje zdyscyplinowane procesy w całym cyklu życia, obejmujące wymagania, projektowanie, testowanie i konserwację, aby dostarczać niezawodne oprogramowanie na dużą skalę, w ramach budżetu i ograniczeń czasowych.

Podstawowy cykl życia obejmuje analizę wymagań, projektowanie, kodowanie, testowanie, wdrażanie i utrzymanie. Każda faza bazuje na poprzedniej, aby zapewnić niezawodność, łatwość utrzymania i spełnienie potrzeb użytkowników gotowego oprogramowania.

Podsumuj ten post następująco: