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.