Powrót do wiedza

Wszystko, co musisz wiedzieć o inżynierii oprogramowania

Zastanawiałeś się kiedyś, jak powstała przeglądarka internetowa, z której właśnie korzystasz? Albo jakie poszczególne kroki trzeba było wykonać, by na Twoim smartfonie pojawił Facebook lub Instagram? Powstanie aplikacji to nie tylko skomponowanie jej magicznego kodu przez sprawne ręce programisty. To...

Zastanawiałeś się kiedyś, jak powstała przeglądarka internetowa, z której właśnie korzystasz? Albo jakie poszczególne kroki trzeba było wykonać, by na Twoim smartfonie pojawił Facebook lub Instagram? Powstanie aplikacji to nie tylko skomponowanie jej magicznego kodu przez sprawne ręce programisty. To szereg działań, jakie należy wykonać, by śmiało mówić o gotowym oprogramowaniu. Tym się właśnie zajmuje inżynieria oprogramowania.

 

Jak już dobrze się domyślasz, stworzenie aplikacji komputerowej lub mobilnej zupełnie od zera jest procesem złożonym i czasochłonnym. Aby wszystko powstało zgodnie z głównymi założeniami, pod konkretne wymagania i działało bez zarzutu, trzeba poświęcić na pracę odpowiednią ilość czasu. Warto także znać odpowiednie metody i narzędzia wspomagające programowanie. 

Czym jest inżynieria oprogramowania?

Inżynieria oprogramowania jest dziedziną inżynierii, która kompleksowo obejmuje wszelkie aspekty tworzenia oprogramowania – od fazy pierwszej, czyli planowania, analizowania, a także określenia wymagań przez omówienie szczegółów projektowania i wdrażania po nanoszenie poprawek i etapy rozwojowe. Co ważne, inżynierii oprogramowania nie należy mylić z informatyką! Informatyka zajmuje się czysto teoretycznymi teoriami i zasadami działania komputerów, skupia się na teoretycznych aspektach powstawania oprogramowania. Inżynieria oprogramowania to coś więcej. Koncentruje się ona na stronie praktycznej, sfokusowana jest na rzeczywiste rozwiązywanie problemów i efektywne działania związane z tworzeniem nowego softu.

Po raz pierwszy terminu “inżynieria oprogramowania” użyto w latach 60. XX wieku podczas tzw. “kryzysu oprogramowania”. Zauważono wtedy, że zdolność do tworzenia nowych rozwiązań nie nadąża za rozwojem sprzętu. Inżynieria oprogramowania zorientowana jest zatem na tworzenie oprogramowania w oparciu o niezbędne warunki, które muszą zostać spełnione, by można było mówić o gotowym i dopracowanym produkcie.

 

Oprogramowanie, które nazywamy dobrym, jest zatem:

  • efektywne powinno wykorzystywać tyle zasobów sprzętowych, ile w danym czasie potrzebuje,
  • ergonomiczne i skrojone pod wymagania użytkownika zarówno interfejsy, jak i najważniejsze funkcje powinny być ukazane w sposób jasny,
  • niezawodne nie spowoduje żadnych ekonomicznych tudzież fizycznych strat w przypadku awarii,
  • rozwojowe możliwość ewolucji, czyli rozwoju oprogramowania o kolejne elementy powinno być zgodne z potrzebami klienta.

Zobacz także:Czym jest Agile?

Proces tworzenia oprogramowania

W inżynierii oprogramowania ważną rolę odgrywa proces produkcji. Dzieli się on na poszczególne fazy, które należy wykonywać w odpowiedniej kolejności. Typowy podział opiera się na:

  1. Specyfikacja podczas tego etapu należy dokładnie określić i ustalić wymagania stawiane przed oprogramowaniem, co powinno być jego głównym rdzeniem, jakie funkcje powinno oferować, w jaki sposób powinno działać.
  2. Projektowanie określenie architektury systemu, postawienie wymagać przed każdą z części składowych.
  3. Implementacja trzymanie się ustalonych w fazie projektowania zasad poprzez implementację poszczególnych modułów i niezbędnych pomiędzy nimi połączeń.
  4. Integracja w tej fazie następuje złożenie składowych elementów oprogramowania w całość, rozpoczynają się testy.
  5. Ewolucja ostatnia faza to uruchomienie systemu, obserwowanie jego działania, eliminacja błędów, a także pole do rozwoju i rozszerzenia funkcjonalności.

Metody inżynierii oprogramowania

W inżynierii oprogramowania wyróżniamy konkretne modele, które w formie uproszczonych, wizualnych prezentacji pozwalają przeprowadzić proces.

Model kaskadowy

Model kaskadowy jest najprostszym modelem, który zapożyczono z innych działów inżynierii. Opiera się na:

  • określeniu wymagań,
  • projektowaniu,
  • Implementacji,
  • testowaniu,
  • Konserwacji.

 

Należy pamiętać, że w przypadku modelu kaskadowego po “przeskoku” z jednego poziomu projektu na kolejny, nie można wrócić do poprzedniego!

 

Zalety modelu kaskadowego: prostota, łatwość jego prowadzenia, implementacja w pełni zaprojektowanego systemu.


Wady modelu kaskadowego: ścisła kolejność wykonywanych prac, brak kontaktu z klientem przez dłuższy czas, brak możliwości powrotu do poprzednich faz, co może generować olbrzymie koszty.

Model prototypowy

Model oparty na prototypowaniu dzieli się na poszczególne etapy:

  • określenie ogólnych wymagań oprogramowania,
  • stworzenie prototypu,
  • weryfikacja prototypu i feedback od klienta,
  • sprecyzowanie wymagań oprogramowania,
  • realizacja zlecenie w zgodzie z modelem kaskadowym!

Widzimy, że model prototypowy zakłada większe skupienie się na wymaganiach stawianych przez klienta, a także na powrocie w końcowej fazie na pracy zgodnie z modelem kaskadowym.

 

Zalety modelu prototypowego: sfokusowanie się na celu klienta, szybka demonstracja wczesnej wersji systemu, możliwość skonfrontowania produktu z oczekiwaniami i jego poprawa.

 

Wady modelu prototypowego: dochodzi koszt stworzenia prototypowego oprogramowania, wydłużony czas realizacja zamówienia.

Zobacz również: Podstawy modelowania systemów w języku UML

Udostępnij