Co to jest jest oprogramowanie? 8. Co to jest inżynieria oprogramowania? 9. Jaka jest różnica pomiędzy inżynierią oprogramowania a informatyką?

Wielkość: px
Rozpocząć pokaz od strony:

Download "Co to jest jest oprogramowanie? 8. Co to jest inżynieria oprogramowania? 9. Jaka jest różnica pomiędzy inżynierią oprogramowania a informatyką?"

Transkrypt

1 ROZDZIAŁ1 Podstawy inżynierii oprogramowania: - Cele 2 - Zawartość 3 - Inżynieria oprogramowania 4 - Koszty oprogramowania 5 - FAQ o inżynierii oprogramowania: Co to jest jest oprogramowanie? 8 Co to jest inżynieria oprogramowania? 9 Jaka jest różnica pomiędzy inżynierią oprogramowania a informatyką? 10 Jaka jest różnica pomiędzy inżynierią a inżynierią systemów oprogramowania? 11 Co to jest proces tworzenia oprogramowania? 12 Co to jest model procesu tworzenia oprogramowania? 13 Jakie są koszty inżynierii oprogramowania? 14!!! Co to są metody inżynierii oprogramowania? 15 Co to jest CASE (Computer-Aided Software Engineering)? 16 Jakie właściwości ma dobre oprogramowanie? 17 Jakie są najistotniejsze wyzwania dla inżynierów oprogramowania? 18 Odpowiedzialność etyczna i zawodowa 19 Zasady zawodowej odpowiedzialności 20 Kodeksy etyczne i zawodowe 22 Kodeks etyki i zawodowej praktyki (wersja skrócona) 23 Etyczne dylematy 27 Główne tezy 28

2 RODZIAŁ 2 Inżynieria systemów komputerowych 1 Cele 2 Zawartość 3 Co to jest system? 4 Problemy instrukcji systemów 5 Oprogramowanie, a inżynieria systemowa 6 Właściwości systemów 7 Przykłady 8 Typy pojawiających się właściwości systemu 9 Niezawodność systemu 10 Czynniki wpływające na niezawodność całego systemu 11 Zależność czynników niezawodności 12 Efektywność i użyteczność, bezpieczeństwo i zabezpieczenia 13 Systemy i ich środowiska 14 Hierarchia systemów ( rys.) 15 Ludzkie i organizacyjne czynniki obecne w środowisku systemu 16 Modelowanie systemu 17 Prosty system antywłamaniowy (rys.) 18 Komponenty funkcjonalne systemu 19 Przykłady komponentów funkcjonalnych systemu 20 Charakterystyka procesu inżynierii systemów 22 Proces inżynierii systemów ( rys.) 23 Interdyscyplinarna zawiłość inżynierii systemów (rys.) 24 Rodzaje wymagań systemowych 25 Dwojaki sposób definiowania wymagań systemowych 26

3 Trudność z określaniem wymagań stawianych systemowi 27 Proces projektowania systemu 28 Diagram procesu projektowania systemu (rys.) 29 Trudności z określaniem wymagań stawianych systemowi 30 Tworzenie podsystemów 31 Integracja systemu 32 Problemy instalacji 33 Działanie systemu 34 Ewolucja systemu 35 Likwidacja systemu 36 Zaopatrywanie w system 37 Proces zaopatrywania w system ( rys.) 38 Problemy zaopatrywania 39 Wykonawcy i podwykonawcy 40 Model wykonawca podwykonawca ( rys.) 41 Główne tezy ROZDZIAŁ 3 Proces tworzenia oprogramowania 1 Cele 2 Zawartość 3 Zasadnicze czynności w procesie tworzenia oprogramowania 4 Modele procesów tworzenia oprogramowania 5 Model kaskadowy procesu tworzenia oprogramowania (rys.) 6 Problemy modelu kaskadowego 7 Tworzenie ewolucyjne 8 Tworzenie ewolucyjne (rys.) 9

4 Typy tworzenia ewolucyjnego 10 Tworzenie ewolucyjne ( problemy, stosowanie ) 11 Tworzenie formalne systemów 12 Tworzenie formalne systemów ( rys.) 13 Przekształcenie formalne (rys.) 14 Problemy i stosowalność 15 Tworzenie z użyciem wielokrotnym 16 Tworzenie z użyciem wielokrotnym (rys.) 17 Iteracja procesu 18 Tworzenie przyrostowe 19 Tworzenie przyrostowe ( rys.) 20 Zalety procesu tworzenia przyrostowego 21 Programowanie ekstremalne (XP) 22 Tworzenie spiralne 23 Model spiralny procesu tworzenia oprogramowania ( rys.) 24 Każda pętla spirali jest podzielona na cztery sektory: 25 Specyfikowanie oprogramowania 26 Proces inżynierii wymagań ( rys.) 27 Projektowanie i implementowanie wymagań 28 Charakterystyczne czynności procesu projektowania 29 Ogólny model procesu projektowania ( rys.) 30 Metody projektowania 31 Programowanie i wyszukiwanie błędów 32 Proces usuwania błędów ( rys.) 33 Zatwierdzanie oprogramowania 34 Proces testowania (rys.) 35 Fazy procesu testowania 36

5 Fazy testowania w procesie tworzenia oprogramowania ( rys.) 37 Testowanie alfa i beta 38 Ewolucja oprogramowania 39 Ewolucja systemu (rys.) 40 Zautomatyzowane wspomaganie procesu tworzenia oprogramowania 41 Technologia CASE 42 Klasyfikacja narzędzi CASE 43 Klasyfikacja narzędzi CASE względem ich funkcjonalności 44 Klasyfikacja narzędzi CASE względem ich funkcji 45 Podział systemów CASE ze względu na zakres wspomagania 46 Narzędzia, warsztaty i środowiska (rys.) 47 Główne tezy 48 RODZIAŁ 4 Zarządzanie przedsięwzięciami 1 Cele wykładu 2 Zawartość wykładu 3 Zarządzanie przedsięwzięciami c.d 4 Wyróżniki zarządzania programowaniem 5 Czynności zarządzania 6 Uwagi dot. zarządzania projektem programistycznym 7 Personel 8 Planowanie przedsięwzięcia 9 Typy planów (tabela) 10 Pseudokod z zapisem procesu planowanie przedsięwzięcia 11 Plan przedsięwzięcia 12 Etapy i produkty 13

6 Etapy w procesie określania wymagań 14 Tworzenie harmonogramu przedsięwzięcia 15 Proces tworzenia harmonogramu przedsięwzięcia 16 Problemy 17 Wykresy paskowe i sieci działań 18 Zbiór zadań, ich czas trwania zależności (tabela) 19 Sieć działań 20 Diagram paskowy czynności ( rys.) 21 Przydział personelu na tle wykresu czasu (rys.) 22 Zarządzanie zagrożeniami 23 Możliwe zagrożenia w wytwarzaniu oprogramowania 24 Proces zarządzania zagrożeniami 25 Proces zarządzania zagrożeniami (rys.) 26 Identyfikacja zagrożeń 27 Zagrożenia i ich typy 28 Analiza zagrożeń 29 Analiza zagrożeń (tab.) 30 Planowanie przeciwdziałania zagrożeniom 31 Strategie zarządzania zagrożeniami 32 Monitorowanie zagrożeń 33 Czynniku ryzyka (tab.) 34 Główne tezy 35 ROZDZIAŁ 8 Prototypowanie oprogramowania 1 Cele 2 Zawartość 3

7 Budowa prototypów 4 Użycie prototypów oprogramowania 5 Stosowanie prototypu systemu 6 Stosowanie prototypu systemu 7 Korzyści 8 Prototypowanie w procesie tworzenia oprogramowania 9 Cele prototypowania 10 Prototypowanie ewolucyjne i z porzuceniem 11 Prototypowanie ewolucyjne 12 Prototypowanie ewolucyjne (rys.) 13 Zalety stosowania prototypowania ewolucyjnego 14 Metody prototypowania ewolucyjnego 15 Główne problemy z prototypowaniem ewolucyjnym 16 Weryfikacja i zatwierdzanie systemu zbudowanego z zastosowaniem prototypownia ewolucyjnego 17 Tworzenie przyrostowe 18 Przyrostowy proces tworzenia 19 Prototypowanie z porzuceniem 20 Proces wytwarzania oprogramowania z prototypowaniem z porzuceniem (rys.) 21 Wady prototypowania z porzuceniem 22 Metody błyskawicznego prototypowania 23 Tworzenie za pomocą dynamicznych języków wysokiego poziomu 24 Języki wysokiego poziomu do prototypowania (tab.) 25 Wybór języka do prototypowania 26 Programowanie baz danych 27 Komponenty języków czwartej generacji (rys.) 28 Scalanie komponentów i programów użytkowych 29

8 Wspomaganie prototypowania z komponentami użycia wielokrotnego 30 Scalanie komponentów użycia wielokrotnego 31 Dokument złożony 32 Przypisanie programów użytkowych (rys.) 33 Wspomaganie procesu scalania komponentów za pomocą systemów tworzenia graficznego 34 Programowanie graficzne z użyciem wielokrotnym (rys.) 35 Problemy z użyciem systemów programowania graficznego 36 Prototypowanie interfejsu użytkownika 37 Główne tezy ROZDZIAŁ 5 Wymagania stawiane oprogramowaniu 1 Cele 2 Zawartość 3 Inżynieria wymagań 4 Co to jest wymóg? 5 Dlaczego występują rozbieżności (Davis,1993) 6 Typy wymagań 7 Wymagania użytkownika systemu 8 Czytelnicy różnych rodzajów specyfikacji 9 Wymagania stawiane systemom oprogramowania 10 Wymagania funkcjonalne 11 Przykłady wymagań systemowych 12 Problemy wynikające z braku ścisłego określania specyfikacji wymagań 13 Kompletność i spójność specyfikacji wymagań funkcjonalnych 14 Wymagania niefunkcjonalne 15 Klasyfikacja wymagań niefunkcjonalnych 16

9 Typy wymagań niefunkcjonalnych (rys.) 17 Przykłady wymagań niefunkcjonalnych 18 Problemy związane z wymaganiami niefunkcjonalnymi 19 Przykłady 20 Miary do specyfikowania wymagań niefunkcjonalnych 21 Trudności z określeniem wymagań 22 Wymagania dziedzinowe 23 Przykład: wymagania stawiane systemowi biblioteki 24 Wymagania dziedzinowe z systemu bezpieczeństwa ruchu pociągów 25 Zasadnicze problemy z wymaganiami dziedzinowymi 26 Wymagania użytkownika 27 Problemy z językiem naturalnym 28 Przykład: wymaganie stawiane bazie danych 29 Przykład: wymaganie użytkownika stawiane siatce edytora 30 Problemy przy stawianiu wymagań 31 Definicja siatki w edytorze 32 Wymagania użytkownika wobec dodawania węzłów 33 Rady do zapisywania wymagań użytkownika 34 Wymagania systemowe 35 Wymagania, a projekt 36 Zapis wymagań systemowych w języku naturalnym 37 Notacje specyfikacji wymagań 38 Strukturalny język naturalny 39 Formularz do definiowania wymagań funkcjonalnych 40 Specyfikacja wymagań systemu z użyciem standardowego formularza 41 Specyfikacje wymagań w PDL 42

10 Część opisu działania bankomatu za pomocą PDL 43 Pewne wady użycia PDL do specyfikowania wymagań 44 Specyfikacja interfejsów 45 Opis interfejsu serwera drukowania za pomocą PDL opartego na Javie 46 Dokumentacja wymagań stawianych oprogramowaniu 47 Wymagania, które powinny być spełnione przez dokumentację wymagań (rys.) 49 Standard wymogów IEEE 50 Struktura dokumentacji wymagań 51 Główne tezy Główne tezy