Inżynieria oprogramowania - Wprowadzenie do inżynierii oprogramowania

1. Inżynieria oprogramowania to wiedza techniczna, która dotyczy wszystkich faz cyklu życia oprogramowania. Traktuje oprogramowanie jako produkt, który ma spełniać potrzeby techniczne, ekonomiczne lub społeczne. Dobre oprogramowanie powinno być:
  • zgodne z wymaganiami użytkownika
  • niezawodne
  • efektywne
  • łatwe w konserwacji
  • ergonomiczne
2. Inżynieria oprogramowania jest wiedzą empiryczną, czyli taką, która polega na poznaniu oraz opiera się na doświadczeniu, eksperymentach i obserwacji.

3. Podstawowym powodem kryzysu oprogramowania jest złożoność produktów informatyki i procesów ich wytwarzania.


4. Jak walczyć ze złożonością?
  • zasada dekompozycji (rozdzielenie złożonego problemu na podproblemy, które można rozpatrywać i rozwiązywać niezależnie od siebie i niezależnie od całości)
  • zasada abstrakcji (eliminacja, ukrycie lub pominięcie mniej istotnych szczegółów rozważanego przedmiotu lub mniej istotnej informacji; wyodrębnienie cech wspólnych i niezmiennych dla pewnego zbioru bytów i wprowadzaniu pojęć lub symboli oznaczających takie zasady)
  • zasada ponownego użycia (wykorzystanie wcześniej wytworzonych schematów, metod, wzorców, komponentów projektu, komponentów oprogramowania itd.)
  • zasada sprzyjania naturalnym ludzkim własnościom (dopasowanie modeli pojęciowych i modeli realizacyjnych systemów do wrodzonych ludzkich własności psychologicznych, instynktów oraz mentalnych mechanizmów percepcji i rozumienia świata)
5. Modelowanie pojęciowe służy do przedstawienia rzeczywistości opisywanej przez dane, procesów zachodzących w rzeczywistości, struktur danych oraz programów składających się na konstrukcję systemu. 

6. Metodyka jest to zestaw pojęć, notacji, modeli, języków, technik i sposobów postępowania służący do analizy dziedziny stanowiącej przedmiot projektowanego systemu oraz do projektowania pojęciowego, logicznego i/lub fizycznego.

7. CYKL ŻYCIA OPROGRAMOWANIA:

ETAP 1: Faza strategiczna: określenie strategicznych celów, planowanie i definicja projektu
ETAP 2: Określenie wymagań
ETAP 3: Analiza: dziedziny przedsiębiorczości, wymagań systemowych
ETAP 4: Projektowanie: projektowanie pojęciowe, projektowanie logiczne
ETAP 5: Implementacja/konstrukcja: rozwijanie, testowanie, dokumentacja
ETAP 6: Testowanie
ETAP 7: Dokumentacja
ETAP 8: Instalacja
ETAP 9: Przygotowanie użytkowników, akceptacja, szkolenie
ETAP 10: Działanie, włączając wspomaganie tworzenia aplikacji
ETAP 11: Utrzymanie, konserwacja, pielęgnacja

8. Modele cyklu życia oprogramowania:
  • model kaskadowy (wodospadowy)
  • model spiralny
  • protypowanie
  • montaż z gotowych komponentów