Moja inżynieria oprogramowania


1. Co to jest oprogramowanie ?

Są to programy komputerowe, cała związana z nimi dokumentacja i dane konfiguracyjne

Rodzaje produktów oprogramowania :

- Powszechne

- Dostosowane (na zamówienie)

2. Wymienić etyczne dylematy inżynierii oprogramowania.

- zasadnicza niezgodność z poglądami przełożonego

- nieetyczne zachowanie pracodawcy, np. fałszowanie dzienników kontroli przy testowaniu krytycznego systemu

- uczestnictwo w tworzeniu systemów wojskowych i nuklearnych

3. Omówić podstawowe właściwości systemów.

Niefunkcjonalne :

Są związane z zachowaniem się w środowisku jego pracy. Często są zasadnicze dla sys. komputerowych, ponieważ niepowodzenie w osiągnięciu pewnego zdefiniowanego min. ich poziomu może sprawić, iż system będzie bezużyteczny.

Funkcjonalne - które są widoczne, gdy wszystkie części sys. współpracują, by osiągnąć jakiś cel. Cechą funkcjonalną roweru jest bycie środkiem transportu po złożeniu wszystkich jego elementów.

4. Co to jest tworzenie ewolucyjne ?

Tworzenie badawcze - celem procesu jest praca z klientem, polegająca na badaniu wymagań i dostarczenie ostatecznego systemu. Tworzenie rozpoczyna się od tych części które są dobrze rozpoznane. System ewoluuje poprzez dodawanie nowych cech, które proponuje klient.

Prototypowanie z porzuceniem - celem tworzenia ewolucyjnego jest zrozumienie wymagań klienta i wypracowanie lepszej definicji wymagań stawianych systemowi. Budowanie prototypu ma na celu eksperymentowanie z tymi wymaganiami klienta, które są niejasne.

Problemy:

0x01 graphic

Stosowanie:

5. Wymień podstawowe metody projektowania.

Metody projektowania - są zbiorem notacji i porad dla projektantów oprogramowania.

Użycie metod strukturalnych polega zwykle na opracowaniu graficznych modeli systemu i prowadzi do ogromnej ilości dokumentacji projektowej.

Modele:

6. Dokonać podziału systemów CASE.

CASE (Computer-Aided Systems Engineering) - oprogramowanie używane do komputerowego wspomagania projektowania oprogramowania.

Podział:

7. Omówić wymagania funkcjonalne i niefunkcjonalne.

Wymagania funkcjonalne - są stwierdzeniami jakie usługi ma oferować system, jak ma reagować na określone dane wejściowe, oraz jak ma się zachowywać w określonych sytuacjach. W niektórych przypadkach wymagania funkcjonalne określają czego system nie powinien robić.

Wymagania niefunkcjonalne - to ograniczenia usług i funkcji systemu. Obejmują ograniczenia czasowe, ograniczenia dotyczące procesu tworzenia, standardy itp.

8. Co to jest model procesu i na czym polega ?

Jest to uproszczona prezentacja procesu tworzenia oprogramowania. Modele ze swej natury są uproszczeniami .

Przykłady:

Przykłady ogólnych modeli (paradygmatów) tworzenia oprogramowania:

9. Programowanie baz danych.

Większość gospodarczych programów użytkowych obejmuje przetwarzanie danych z bazy danych i generowanie wyników, które polega na organizowaniu i formatowaniu danych.

Programowanie bazy danych jest wykonywane w specjalizowanym języku, który ma wbudowaną wiedzę o bazie danych i zawiera operacje służące do pracy z bazą danych.

Pojęcie język czwartej generacji (4GL) obejmuje zarówno język programowania bazy danych, jak i wspomagające go środowisko.

Baza danych powinna wspomagać generowanie obiektów sterujących i konfiguracyjnych, tzn. obiektów, które same są grupami innych obiektów bazy danych.

Udogodnienia do sterowania konfiguracją powinny umożliwiać dostęp do obiektów w pewnej wersji grupy za pomocą niepełnej nazwy.

10. Zalety sys. obiektywnych. (obiektowych)

11. Omówić proces tworzenia oprogramowania.

12. Co rozumiemy pod pojęciem odpowiedzialność etyczna i zawodowa ?

Muszą postępować etycznie i moralnie, jeśli chcą być uważani za profesjonalistów.

Zachowywać się etycznie, to więcej niż tylko przestrzegać obowiązujące prawo.

Inżynierowie oprogramowania powinni postępować dla dobra społeczeństwa.

Inżynierowie oprogramowania powinni zachowywać rozsądek i niezależność swoich sądów.

Zarządzający inżynierami oprogramowania i zwierzchnicy powinni przyjąć i promować etykę w zarządzaniu tworzeniem i pielęgnacją oprogramowania.

Inżynierowie oprogramowania powinni być uczciwi i chętni do pomocy swoim kolegom.

Zasady odpowiedzialności zawodowej:

13. Co rozumiemy pod pojęciem niezawodność systemu ?

Niezawodność jest złożonym pojęciem, które zawsze należy badać na poziomie systemu, a nie jego poszczególnych komponentów.

Komponenty w systemie są od siebie zależne, a zatem awarie w jednym z nich mogą przenosić się na cały system i mieć wpływ na operacje innych systemów.

Często projektanci systemu nie są w stanie przewidzieć, jak konsekwencje awarii przenoszą się na cały system .

Nie mogą zatem podać wiarygodnych oszacowań niezawodności systemu.

14. Ewolucja systemu - podaj przykład.

Czas życia wielkich złożonych systemów jest bardzo długi. W trakcie swego działania systemy te musza ewoluować.

Ewolucja oprogramowania jest ze swej natury kosztowna:

Przykładem może tu posłużyć system operacyjny firmy Microsoft - Windows XP, który ewoluował poprzez dostarczane nieodpłatnie przez producenta, pakiety zwane Service Pack (1-3), zawierające nowe funkcje i/lub zbiorczą aktualizację bezpieczeństwa dla oprogramowania, udostępnione najczęściej w postaci pojedynczego, łatwego do zainstalowania pliku.

15. Omów tworzenie formalne systemów.

Tworzenie formalne systemów jest podejściem, które ma wiele wspólnego z modelem kaskadowym. Proces tworzenia jest tu jednak oparty na matematycznych przekształceniach specyfikacji systemu w program wykonywalny.

W procesie przekształcania formalna matematyczna reprezentacja systemu jest metodycznie przekształcana w bardziej szczegółowe, ale wciąż matematycznie poprawne reprezentacje systemu.

W systemach, w których nie można dopuścić do awarii, użycie metod formalnych może być uzasadnione i opłacalne.

Metody formalne są coraz częściej stosowane w wyspecjalizowanej dziedzinie tworzenia systemów krytycznych.

Oprócz specjalistycznych dziedzin procesy oparte na przekształceniach formalnych są używane rzadko.

Wymagają specjalistycznej wiedzy i w praktyce okazuje się, że w wypadku większości systemów nie powodują zmniejszenia kosztów lub polepszenia jakości w porównaniu z innymi podejściami.

Interakcje systemów nie poddają się łatwo specyfikowaniu formalnemu.

16. Omów projektowanie i wyszukiwanie błędów.

Programiści wykonują pewne testy kodu, który napisali. Często prowadzi to do wykrycia błędów, które należy usunąć z programu.

Testowanie usterek i usuwanie błędów to dwa różne procesy.

Lokalizacja błędu może wymaga nowych przypadków testowych.

0x01 graphic

17. Co to jest etnografia.

To metoda obserwacji, która może służyć do rozpoznawania wymagań społecznych i organizacyjnych.

Analityk pogrąża się w środowisku pracy, w którym system będzie używany.

Obserwuje codzienną pracę i odnotowuje podstawowe zadania wykonywane przez pracowników.

Zaleta etnografii jest to, że pomaga odkrywać niejawne wymagania systemowe odzwierciedlające rzeczywiste, a nie formalne procesy, w których biorą udział ludzie.

18. Co to są metody formalne ?

Analiza matematyczna stanowi rutynowa składową procesu opracowywania i zatwierdzania projektu produktu.

Pojęcie „metod formalnych” obejmuje:

19. Wymienić zalety jawnego projektowania.

20. Omówić architekturę zintegrowanego zestawu narzędzi CASE.

0x01 graphic

21. Co to jest CASE ?

CASE (Computer-Aided Software Engineering)

CASE obejmuje rożne programy wykorzystywane do wspomagania czynności procesu tworzenia oprogramowania (np. edytory notacji, generatory kodów, narzędzia do modelowania w UML).

22. Jakie są podstawowe cele inżynierii systemów komputerowych ?

Inżynieria systemów - to czynność specyfikowania, projektowania, implementowania, weryfikowania, wdrażania i pielęgnacji systemów postrzegana jako całość.

23. Czynniki wpływające na niezawodność całego systemu.

Jakie jest prawdopodobieństwo awarii komponentu sprzętowego i jak długi jest czas jego naprawy?

Jakie jest prawdopodobieństwo wytworzenia przez komponent programowy błędnych danych wyjściowych? Awarie oprogramowania istotnie różnią się od awarii sprzętu, ponieważ oprogramowanie nie zużywa się.

Jakie jest prawdopodobieństwo błędu operatora systemu?

24. Omówić model wykonawca - podwykonawca.

Bardzo wiele firm może samodzielnie projektować, tworzyć i przetestować wszystkie komponenty wielkiego złożonego systemu.

Wykonawca, którego zwykle nazywamy generalnym, może podpisać kontrakt na zbudowanie rozmaitych podsystemów z pewna liczbą podwykonawców.

Takie konsorcjum powinno być zdolne do wykonania wszystkich prac związanych z tym typem systemu.

0x01 graphic

25. Omówić tworzenie z użyciem wielokrotnym.

W większości przedsięwzięć programistycznych występuje użycie wielokrotne oprogramowania.

Etapy procesu :

Zakłada się istnienie wielkiego zbioru dostępnych komponentów programowych użycia wielokrotnego oraz integrującej je struktury.

26. Podstawowe wymagania stawiane oprogramowaniu.

27. Omówić model maszyn stanowych.

Służą do opisywania zachowania systemu, gdy reaguje na wewnętrzne lub zewnętrzne zdarzenia.

Zawierają stany i zdarzenia, które powodują przejścia z jednego stanu do innego.

Nie obejmuje przepływu danych w ramach systemu.

Modele maszyn stanowych są integralna częścią metod projektowania systemów czasu rzeczywistego.

W metodzie Harela wprowadzono tzw. grafy stanów (statecharts), które są podstawą notacji do modelowania maszyn stanowych w UML.

28. Co to jest prototypowanie oprogramowania ?

Prototyp jest początkowa wersją systemu oprogramowania, która służy do prezentacji założeń, do wypróbowania wariantów projektu, a bardziej ogólnie do coraz lepszego poznawania problemu i jego możliwych rozwiązań.

Bardzo ważne jest szybkie tworzenie prototypu, ponieważ umożliwia panowanie nad kosztami i umożliwia eksperymentowanie użytkownikom we wczesnej fazie procesu tworzenia oprogramowania.

29. Co to jest architektura sys. rozproszonych ?

Niemal wszystkie współczesne systemy komputerowe są systemami rozproszonymi.

W systemie rozproszonym przetwarzanie informacji jest wykonywane na kilku komputerach, a nie przydzielone do jednej maszyny.

Istotne cechy sys. rozproszonego:

Wady:

Architektury sys. rozproszonych:

30. Omówić strategie obiektowe.

31. Omówić proces tworzenia oprogramowania.

Patrz pkt. 11

32. Co to jest sys. komputerowy ?

System komputerowy (ang. computer system) - układ współdziałania dwóch składowych: sprzętu komputerowego oraz oprogramowania, działających coraz częściej również w ramach sieci komputerowej.

Warstwy systemu komputerowego:

33. Podać przykład hierarchii systemów.

0x01 graphic

34. Omówić proces tworzenia oprogramowania.

Patrz pkt. 11

35. Co to jest tworzenie spiralne ?

0x01 graphic

Każda pętla spirali reprezentuje jedną fazę procesu.

Najbardziej wewnętrzna pętla może być poświęcona wykonalności systemu, następna definicji wymagań stawianych systemowi, kolejna projektowaniu itd.

36. Omówić technologię CASE.

Technologia CASE - zapewnia zautomatyzowane wspomaganie procesu tworzenia oprogramowania.

Narzędzia CASE wspomagają poszczególne czynności procesu. Warsztaty CASE wspomagają zbiory powiązanych czynności. Środowiska CASE wspomagają większość lub nawet wszystkie czynności procesu tworzenia oprogramowania.

37. Specyfikacje wymagań w PDL.

PDL (Program Description Language) - niejednoznaczności charakterystycznych dla języka naturalnego można uniknąć przez opisywanie wymagań za pomocą ` języka opisu programów '.

Proponuje się używać PDL w dwóch następujących sytuacjach:

38. Omówić notację UML.

Notacja - czyli zbiór oznaczeń, jest wykorzystywana do dokumentowania wyników poszczególnych faz projektu -pośrednich i końcowych. Notacja służy jako środek wspomagający ludzką pamięć i wyobraźnię, a także jako środek ułatwiający komunikację zarówno między członkami zespołu projektowego, jak i między zespołem projektowym a klientem.

Rodzaje notacji:

Elementy UML-a w diagramach przepływu danych:

39. Zalety stosowania prototypowania ewolucyjnego.

40. Omówić proces projektowania obiektowego.

To strategia projektowania, w ramach której projektanci systemu myślą w kategoriach „bytów”, a nie operacji albo funkcji.

Działający system składa się z oddziałujących na siebie obiektów, które przechowują swój lokalny stan i oferują operacje na tej informacji o stanie.

Obiekty ukrywają informację o reprezentacji stanu i w ten sposób ograniczają do niego dostęp.

Proces projektowania obiektowego obejmuje zaprojektowanie klas obiektów i związków między tymi klasami.

Gdy projekt przybierze już postać działającego programu, potrzebne obiekty są tworzone na podstawie definicji klas.

Etapy procesu:



Wyszukiwarka

Podobne podstrony:
sciąga moja, Informatyka SGGW, Semestr 4, Inżynieria oprogramowania, Od starszego rocznika
sciąga moja, Informatyka SGGW, Semestr 4, Inżynieria oprogramowania, Od starszego rocznika
sciąga moja, Informatyka SGGW, Semestr 4, Inżynieria oprogramowania, Od starszego rocznika
Inzynieria oprogramowania w ujeciu obiektowym UML wzorce projektowe i Java iowuje
ZadanieNaZaliczenie, WAT, semestr IV, Inżynieria oprogramowania
Rafał Polak 12k2 lab8, Inżynieria Oprogramowania - Informatyka, Semestr III, Systemy Operacyjne, Spr
zagadnienia egzaminacyjne z przedmiotu inżynieria oprogramowania zIO
Inżynieria oprogramowania Diagramy ERD
2006 06 Wstęp do Scrum [Inzynieria Oprogramowania]
Tworzenie oprogramowania, Semestr 5, Inżynieria oprogramowania
2007 05 Mechanizm koncepcji w języku C nowe oblicze szablonów [Inzynieria Oprogramowania]
Inżynieria oprogramowania syllabus IV niestac 07 08, Prywatne, WAT, SEMESTR IV, IO, io, Materiały od
Rafał Polak 12k2 lab9, Inżynieria Oprogramowania - Informatyka, Semestr III, Systemy Operacyjne, Spr
inżynieria oprogramowani5s 3D2LFW6JYNMO6D276CSZQV5ONUNVXOTKWFXHA3A
inżynieria oprogramowani1 2EM7Y2ON72DKTCAQF3UOSCLXHY5636FZE7C7PUQ
inżynieria oprogramowani5 G46UQE27RE6UDINZWBW2TXNEOUUYOYV2MMVZ2NI
2008 06 Java Microedition – metody integracji aplikacji [Inzynieria Oprogramowania]
Inżynieria oprogramowania II

więcej podobnych podstron