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:
- 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.