print
A A A

Wstęp

We wstępie omówimy czym zajmuje się przedmiot Inżynierii Oprogramowania oraz pojęcia wstępne:

Przedmiot inżynierii oprogramowania

Oprogramowanie (software)

Pojęcie podstawowe (do oprogramowania włącza się niekiedy, oprócz np. plików binarnych i z kodem źródłowym, także dokumentację, pliki konfiguracyjne, przykładowe dane itp.)

Inżynieria oprogramowania (IO, software engineering)

Dziedzina inżynierii związana z wytwarzaniem oprogramowania we wszystkich fazach jego cyklu życia. Jako dziedzina inżynierii IO rozważa w kontekście praktycznym rozmaite aspekty wytwarzania oprogramowania (techniczny, organizacyjny, finansowy itp.)

Cel inżynierii oprogramowania

  • Dostarczenie zasad organizacji procesu wytwarzania oprogramowania (software development) w oparciu o istniejące teorie, modele, metody i narzędzia (podejście może być tutaj mniej lub bardziej formalne)
  • W końcowym efekcie proces wytwarzania oprogramowania ma w sposób efektywny doprowadzić do powstania produktu wysokiej jakości
  • Inżynieria oprogramowania jest częścią szerszej dyscypliny – inżynierii systemów (system engineering), w jej aspekcie dotyczącym oprogramowania

Cechy dobrego oprogramowania (Sommerville):

  • poprawność, zgodność z wymaganiami użytkowników
  • łatwość pielęgnacji (konserwacji), dokonywania zmian
  • niezawodność (availability, reliability), bezpieczeństwo (w obu znaczeniach – safety, security)
  • wydajność, efektywne wykorzystanie zasobów
  • łatwość stosowania, ergonomiczność

Problemy inżynierii oprogramowania:

  • złożoność programów
  • złożoność systemów, w ramach których funkcjonują programy (ludzie, sprzęt, instytucje, procesy produkcyjne, itp.)
  • zmienność systemów
  • złożoność procesów składających się na wytwarzanie oprogramowania (w przeciwieństwie do prostoty samego pisania kodu)
  • łatwość i praktyczna nieuniknioność popełniania błędów przy wytwarzaniu oprogramowania

Specyfika oprogramowania jako produktu (w odróżnieniu od produktów w innych gałęziach inżynierii):

  • systemy w ramach których stosuje się oprogramowanie są często nowatorskie lub jednorazowe, co utrudnia identyfikację wymagań (często oprogramowanie istotnie zmienia system, w którym znajduje zastosowanie)
  • przy tworzeniu oprogramowania łatwo popełnia się błędy
  • oprogramowanie jako produkt nie daje się jednorazowo oglądnąć, przez co trudno śledzi się tok jego rozwoju i wykrywa pojawiające się błędy
  • brak jest sprawdzonych standardów wytwarzania oprogramowania (inżynieria oprogramowania jest wciąż młoda...)

Odpowiedzialność zawodowa inżynierów oprogramowania:

  • odpowiedzialność prawna
  • aspekty ekonomiczne
  • prawa autorskie
  • kanony postępowania (“codes of ethics”)

Cykl życia oprogramowania»