Czym jest Inżynieria Oprogramowania

05:58 Jakub Bauman 10 Comments

Niniejszy artykuł można traktować jako wprowadzenie do Inżynierii Oprogramowania. Autor przedstawia swoje przemyślenia na temat przedmiotu w odniesieniu do praktyki stosowania jego metod.

Aby zdefiniować Inżynierię Oprogramowania należy najpierw zdefiniować samą Inżynierię.
Słowo inżynieria pojawia się w określeniu wielu dyscyplin.  Mamy np. Inżynierię Lądową, Inżynierię Środowiska, Inżynierię medyczną, Inżynierię Środowiska i wiele, wiele innych. Co oznacza to magiczne słowo "Inżynieria"?  Otóż jest to określenie działalności polegającej na projektowaniu, konstruowaniu, utrzymaniu efektywnych rozwiązań w oparciu o wiedzę naukową i techniczną. Trzeba również podkreślić, że inżynieria odnosi się do działań praktycznych, teoria naukowa może być dla niej tylko źródłem wiedzy.
Rozwijając tę myśl można powiedzieć że inżynier, jako człowiek zajmujący się inżynierią jest praktykiem, posiada nie tylko wiedzę teoretyczną ale potrafi ją wykorzystać w praktyce.

Przejdźmy do Inżynierii Oprogramowania. Wiemy już czym jest inżynieria, a czym jest Inżynieria Oprogramowania? Otóż jest to Inżynieria dotycząca oprogramowania. Zatem będzie się ona zajmowała projektowaniem, rozwojem i utrzymaniem oprogramowania.

Należy podkreślić, że inżynieria oprogramowania to nie tylko sztuka programowania. Obejmuje ona znacznie szerszy zakres zagadnień związanych z wytwarzaniem oprogramowania. Między innymi takich jak:
  • specyfikacja wymagań dla oprogramowania
  • projektowanie oprogramowania
  • jakość oprogramowania
  • testowanie oprogramowania
  • wdrożenia oprogramowania
  • prowadzenie projektów informatycznych
Inżynieria Oprogramowania jako dyscyplina praktyczna wykorzystuje szereg metod opracowanych bądź przez teoretyków, bądź też sprawdzonych w praktyce przy realizacji przedsięwzięć informatycznych. 

Mówiąc o Inżynierii Oprogramowania trudno nie odnieść jej do jej praktykantów czyli do inżynierów - najczęściej inżynierów informatyków.
Jakie cechy powinien mieć taki inżynier i jaką wiedzę powinien posiadać aby odnajdywał się w Inżynierii Oprogramowania.

Oprogramowanie jako takie jest tworzone w jakimś konkretnym celu. W znakomitej większości ma służyć usprawnieniu pewnych procesów. Czasem tylko rozrywce. 
Większość zamówień na oprogramowanie pochodzi z biznesu. Ma ono usprawniać procesy biznesowe aby organizacja działała lepiej, wydajniej, taniej ... 

I co na to programista? Sama umiejętność programowania nie pozwoli na napisanie np. oprogramowania dla księgowości. Trzeba trochę,  a może nawet całkiem sporo o tej księgowości wiedzieć. Podobnie z innymi elementami biznesu.
Gdyby nawet wykonywać oprogramowanie specjalistyczne np. do projektowania mostów. Wówczas trzeba mieć wiedzę o projektowaniu mostów.

Pewne narzędzia inżynierii oprogramowania takie jak np. język UML są tworzone po to aby przekładać zagadnienie biznesowe na język zrozumiały dla informatyków. Są one niewątpliwą pomocą jednak zdaniem autora, które wyrobił sobie pracując z programistami przy wytwarzaniu oprogramowania, nie zastąpią zrozumienia i znajomości problemu. Nawet najdoskonalszy projekt nie umożliwi napisania dobrego oprogramowania przez ludzi nie mających pojęcia o zagadnieniu jakie programują. A konsekwencje związane z fiaskiem takiego przedsięwzięcia oczywiście spadną na projektanta.

Informatyku: Aby zaprojektować algorytm trzeba znać problem jaki ma rozwiązywać. 

Zatem można powiedzieć, że prawdziwy inżynier oprogramowania musi mieć szeroką wiedzę z zakresu innych inżynierii, musi mieć w ogóle obszerną wiedzę techniczną choć nie tylko techniczną, a przede wszystkim musi być na wiedzę otwarty. 
Dobry inżynier informatyk interesuje się wszystkim i ciągle zastanawia się jak to wszystko można usprawnić z zastosowaniem informatyki. 

Należy również wiedzieć, że inżynieria oprogramowania to nie to samo co informatyka. Informatyka zajmuje się między innymi:
- algorytmami,
- złożonością obliczeniową,
- strukturami danych.
Inżynieria oprogramowania natomiast reprezentuje podejście praktyczne czyli: jak zaprojektować, napisać, wdrożyć dobry program.

Jako dyscyplina praktyczna Inżynieria Oprogramowania jest trudna do usystematyzować. Jednak ze względu na to, że ludzie zajmują się nią już od pewnego czasu powstały liczne techniki i metody pozwalające w sposób systematyczny i zdyscyplinowany podchodzić do rozwoju, eksploatacji i utrzymania oprogramowania.

Inżynieria oprogramowania jest dyscypliną wiecznie żywą i rozwijającą się. Niektóre techniki czy metody opracowane powiedzmy 20 lat temu nie są już zupełnie stosowane albo ich przydatność jest znikoma. Zamiast nich pojawiają się zupełnie nowe. Zmiany te wywoływane są poprzez różne czynniki, np zmiany paradygmatów programowania, rozwój narzędzi, ale również przez różne trendy związane z zarządzaniem projektami.

W kolejnych artykułach zostaną omówione zagadnienia z zakresu Inżynierii Oprogramowania ze szczególnym uwzględnieniem specyfiki oprogramowania dla biznesu.




10 komentarzy:

  1. Właśnie optymalizacji procesów miało służyć u nas wdrożenie microsoft <a href="https://ax-dynamics.com/dynamics-365/enterprise-edition</a>dynamics 365 enterprise edition</a>. Zdecydowanie był to świetny krok dla firmy i bardzo duże usprawnienie. Ważne jednak, by dobrze zaplanować cały proces wdrożenia i szkolenia.

    OdpowiedzUsuń
  2. Na tej stronie www można przeczytać wiele o wdrożeniach ERP. Warto sprawdzić tego typu rozwiązanie.

    OdpowiedzUsuń
  3. Ten komentarz został usunięty przez autora.

    OdpowiedzUsuń
  4. W sumie ja się na samym oprogramowaniu nie znam, ale muszę przyznać, że chętnie korzystam z takich rozwiązań. Dlatego ja właśnie korzystam z systemów firmy https://www.connecto.pl/ i muszę przyznać, że jest to bardzo fajne rozwiązanie dla każdego właściciela firmy.

    OdpowiedzUsuń
  5. Nie do końca jestem zaznajomiona w tego typu tematem, dlatego zaufałam profesjonalistom i cenię sobie rozwiązania proponowane przez System eDokumenty Od lat korzystam i jestem bardzo zadowolona.

    OdpowiedzUsuń
  6. Moim zdaniem bardzo fajnie opisany problem. Pozdrawiam serdecznie.

    OdpowiedzUsuń
  7. W sumie nie słyszałem nigdy takiego określenia i jak widzę jest bardzo ciekawe. Muszę przyznać, że jak czytałem także na stronie http://affmarketing.pl/jaki-system-wideokonferencyjny-dla-malych-firm/ to świetną sprawą jest posiadanie dobrego systemu do wideokonferencji.

    OdpowiedzUsuń
  8. Ten komentarz został usunięty przez autora.

    OdpowiedzUsuń
  9. Nie do końca ten temat leży w gestii moich kompetencji, ale jeśli mogłabym polecić ciekawe oprogramowanie, z którego na co dzień korzystam, to zachęcam do wypróbowania systemu elektronicznego obiegu dokumentów W końcu mam pełną kontrolę nad wszystkimi dokumentami, które do mnie trafiają, nic się nie gubi, nic nie utknie u kogoś na biurku.

    OdpowiedzUsuń
  10. Best casinos for poker players - Dr. McD
    It is always 충청남도 출장마사지 a good thing to practice playing 평택 출장샵 at the casino without 전주 출장샵 a real money bet, and you 공주 출장샵 will not want to leave the house without 광주광역 출장샵 having

    OdpowiedzUsuń