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


