Pytania na egzamin Inżynieria Oprogramowania

4
Pytania na egzamin Inżynieria Oprogramowania 2011-01-27 1. SDK zestaw programów SDK (Software Development Kit) - pakiet programów zawierających API, narzędzia programistyczne oraz dokumentację umożliwiający programiście tworzenie aplikacji dla danej platformy. 2. IDE Integrated Development Environment - Zintegrowane środowisko programistyczne, jest to aplikacja lub zestaw aplikacji, które pozwalają na tworzenie, debugowanie, kompilację i testowanie kodu. (NetBeans IDE, Eclipse, InteliJ Idea) 3. ETAPY INŻYNIERII OPROGRAMOWANIA specyfikacja – na tym etapie następuje określenie i ustalenie wymagań, które musi spełniać oprogramowanie projektowanie – ustalenie ogólnej architektury systemu, wymagań dla poszczególnych jego składowych implementacja – realizacja ustalonej architektury poprzez implementację składowych (modułów) i połączeń między nimi. integracja – zintegrowanie poszczególnych składowych w jeden system, testowanie całego systemu ewolucja – uruchomienie systemu, usuwanie wykrytych podczas jego używania błędów, rozszerzanie systemu 4. PROJEKTOWANIE OPROGRAMOWANIA Projektowanie obiektowe - paradygmat programowania, w którym programy definiuje się za pomocą obiektów Projektowanie proceduralne - 5. OOP Programowanie obiektowe (ang. Object-Oriented Programming) — paradygmat programowania, w którym programy definiuje się za pomocą obiektów — elementów łączących stan (czyli dane, nazywane najczęściej polami) i zachowanie (czyli procedury, tu: metody). Obiektowy program komputerowy wyrażony jest jako zbiór takich obiektów, komunikujących się pomiędzy sobą w celu wykonywania zadań. 6. DZIEDZICZENIE OOP Umożliwia definiowanie i tworzenie specjalizowanych obiektów na podstawie bardziej ogólnych. Dla obiektów specjalizowanych nie trzeba definiować całej funkcjonalności, lecz tylko te, której nie ma obiekt ogólniejszy. W typowym przypadku powstają grupy obiektów zwane klasami, oraz grupy klas zwane drzewami. Odzwierciedlają one wspólne cechy obiektów. Porządkuje i wspomaga polimorfizm i enkapsulację 7. HERMETYZACJA OOP Czyli ukrywanie implementacji, enkapsulacja. Zapewnia, że obiekt nie może zmieniać stanu wewnętrznego innych obiektów w nieoczekiwany sposób. Tylko wewnętrzne metody obiektu są uprawnione do zmiany jego stanu. Każdy typ obiektu prezentuje innym obiektom swój interfejs, który określa dopuszczalne metody współpracy. 8. ABSTRAKCJA OOP Każdy obiekt w systemie służy jako model abstrakcyjnego "wykonawcy", który może wykonywać pracę, opisywać i zmieniać swój stan oraz komunikować się z innymi obiektami w systemie, bez ujawniania, w jaki sposób zaimplementowano dane cechy. Procesy, funkcje lub

description

Podstawowe pojęcia Inżynieria Oprogramowania.

Transcript of Pytania na egzamin Inżynieria Oprogramowania

Page 1: Pytania na egzamin Inżynieria Oprogramowania

Pytania na egzamin Inżynieria Oprogramowania 2011-01-27

1. SDK• zestaw programów SDK (Software Development Kit) - pakiet programów zawierających API,

narzędzia programistyczne oraz dokumentację umożliwiający programiście tworzenie aplikacji dla danej platformy.

2. IDE• Integrated Development Environment - Zintegrowane środowisko programistyczne, jest to

aplikacja lub zestaw aplikacji, które pozwalają na tworzenie, debugowanie, kompilację i testowanie kodu. (NetBeans IDE, Eclipse, InteliJ Idea)

3. ETAPY INŻYNIERII OPROGRAMOWANIA• specyfikacja – na tym etapie następuje określenie i ustalenie wymagań, które musi spełniać

oprogramowanie• projektowanie – ustalenie ogólnej architektury systemu, wymagań dla poszczególnych jego

składowych• implementacja – realizacja ustalonej architektury poprzez implementację składowych

(modułów) i połączeń między nimi.• integracja – zintegrowanie poszczególnych składowych w jeden system, testowanie całego

systemu• ewolucja – uruchomienie systemu, usuwanie wykrytych podczas jego używania błędów,

rozszerzanie systemu

4. PROJEKTOWANIE OPROGRAMOWANIA• Projektowanie obiektowe - paradygmat programowania, w którym programy definiuje się za

pomocą obiektów• Projektowanie proceduralne -

5. OOP• Programowanie obiektowe (ang. Object-Oriented Programming) — paradygmat

programowania, w którym programy definiuje się za pomocą obiektów — elementów łączących stan (czyli dane, nazywane najczęściej polami) i zachowanie (czyli procedury, tu: metody). Obiektowy program komputerowy wyrażony jest jako zbiór takich obiektów, komunikujących się pomiędzy sobą w celu wykonywania zadań.

6. DZIEDZICZENIE OOP• Umożliwia definiowanie i tworzenie specjalizowanych obiektów na podstawie bardziej

ogólnych. Dla obiektów specjalizowanych nie trzeba definiować całej funkcjonalności, lecz tylko te, której nie ma obiekt ogólniejszy. W typowym przypadku powstają grupy obiektów zwane klasami, oraz grupy klas zwane drzewami. Odzwierciedlają one wspólne cechy obiektów. Porządkuje i wspomaga polimorfizm i enkapsulację

7. HERMETYZACJA OOP• Czyli ukrywanie implementacji, enkapsulacja. Zapewnia, że obiekt nie może zmieniać stanu

wewnętrznego innych obiektów w nieoczekiwany sposób. Tylko wewnętrzne metody obiektu są uprawnione do zmiany jego stanu. Każdy typ obiektu prezentuje innym obiektom swój interfejs, który określa dopuszczalne metody współpracy.

8. ABSTRAKCJA OOP• Każdy obiekt w systemie służy jako model abstrakcyjnego "wykonawcy", który może

wykonywać pracę, opisywać i zmieniać swój stan oraz komunikować się z innymi obiektami w systemie, bez ujawniania, w jaki sposób zaimplementowano dane cechy. Procesy, funkcje lub

Page 2: Pytania na egzamin Inżynieria Oprogramowania

metody mogą być również abstrahowane, a kiedy tak się dzieje, konieczne są rozmaite techniki rozszerzania abstrakcji.

9. API• (Application Programming Interface) - interfejs programowania aplikacji, sposób, w jaki

komunikuje się ona z systemem operacyjnym i innymi programami. Jako przykłady API można podać międzynarodowy standard POSIX, a także opracowany przez Microsoft interfejs Win32 API.

10. JAVA• obiektowy język programowania stworzony przez grupę roboczą pod kierunkiem Jamesa

Goslinga z firmy Sun Microsystems. Java jest językiem tworzenia programów źródłowych kompilowanych do kodu bajtowego, czyli postaci wykonywanej przez maszynę wirtualną. Język cechuje się silnym typowaniem. Jego podstawowe koncepcje zostały przejęte z języka Smalltalk (maszyna wirtualna, zarządzanie pamięcią) oraz z języka C++ (duża część składni i słów kluczowych).

11. MASZYNA WIRTUALNA• (Virtual Machine, VM) - ogólna nazwa dla programów tworzących środowisko uruchomieniowe

dla innych programów. Maszyna wirtualna kontroluje wszystkie odwołania uruchamianego programu bezpośrednio do sprzętu lub systemu operacyjnego i zapewnia ich obsługę. Dzięki temu program uruchomiony na maszynie wirtualnej "myśli", że działa na rzeczywistym sprzęcie, podczas gdy w istocie pracuje na sprzęcie wirtualnym, "udawanym" przez odpowiednie oprogramowanie (maszynę wirtualną).

12. KOD POŚREDNI• Inaczej „Kod bajtowy”. (Bytecode) - nazwa reprezentacji kodu używanej przez maszyny

wirtualne oraz przez niektóre kompilatory. Kod składa się z ciągu instrukcji (których kody operacji mają zwykle długość jednego bajta, stąd nazwa), które nie odpowiadają bezpośrednio instrukcjom procesora i mogą zawierać instrukcje wysokiego poziomu (takie jak np. stwórz obiekt klasy X, połącz dwa łańcuchy itd.), jednak w przeciwieństwie do kodu źródłowego wymagają analizy tylko pojedynczych poszczególnych operacji. W przeciwieństwie do maszyn fizycznych, które prawie zawsze są maszynami rejestrowymi, większość (choć nie wszystkie) maszyn wirtualnych to maszyny stosowe.

13. XML• Extensible Markup Language, w wolnym tłumaczeniu (Rozszerzalny Język Znaczników) –

uniwersalny język formalny przeznaczony do reprezentowania różnych danych w strukturalizowany sposób. XML jest niezależny od platformy, co umożliwia łatwą wymianę dokumentów pomiędzy heterogenicznymi (różnymi) systemami i znacząco przyczyniło się do popularności tego języka w dobie Internetu. XML jest standardem rekomendowanym oraz specyfikowanym przez organizację W3C.

14. UNICODE• Komputerowy zestaw znaków mający w zamierzeniu obejmować wszystkie pisma używane na

świecie. Definiują go dwa standardy – Unicode oraz ISO 10646. Znaki obu standardów są identyczne. Standardy te różnią się w drobnych kwestiach, m.in. Unicode określa sposób składu. Rozwijany jest przez konsorcjum, w którego skład wchodzą ważne firmy komputerowe, producenci oprogramowania, instytuty naukowe, agencje międzynarodowe oraz grupy zainteresowanych użytkowników. Konsorcjum współpracuje z organizacją ISO.

15. HTML• HyperText Markup Language, (pol. język znaczników hipertekstu) – dominujący język

wykorzystywany do tworzenia stron internetowych. Pozwala opisać strukturę informacji zawartych w dokumencie nadając znaczenie poszczególnym fragmentom tekstu (formując linki,

Page 3: Pytania na egzamin Inżynieria Oprogramowania

nagłówki, akapity, listy, itp.) oraz osadzić w tekście dodatkowe obiekty np. statyczne grafiki, interaktywne formularze, dynamiczne animacje.

16. XHTML• XHTML (ang. Extensible HyperText Markup Language, rozszerzalny język znaczników

hipertekstowych) – język służący do tworzenia stron WWW ogólnego przeznaczenia. Specyfikacje XHTML przygotowuje organizacja W3C. XHTML/1.0 nie jest następcą HTML, a jedynie przedstawieniem HTML 4.01 w postaci XML. XHTML/2.0 miał być następcą HTML, niekompatybilnym wstecz, ale ze względu na niekompatybilność Internet Explorera, a co za tym idzie niechęć użytkowników, W3C zadecydowało o kontynuowaniu linii XHTML/1.0 i HTML 4 jako XHTML 1.1 i HTML 5.

17. CSS• Kaskadowe arkusze stylów (ang. Cascading Style Sheets, CSS) to język służący do opisu formy

prezentacji (wyświetlania) stron WWW. CSS został opracowany przez organizację W3C w 1996 r. jako potomek języka DSSSL przeznaczony do używania w połączeniu z SGML-em. Pierwszy szkic CSS zaproponował w 1994 r. Håkon Wium Lie[1]. Definiuje sposób prezentacji elementów na stronie.

• CSS został stworzony w celu odseparowania struktury dokumentu od formy jego prezentacji. Separacja ta zwiększa zakres dostępności witryny, zmniejsza zawiłość dokumentu, ułatwia wprowadzanie zmian w strukturze dokumentu. CSS ułatwia także zmiany w renderowaniu strony w zależności od obsługiwanego medium (ekran, palmtop, dokument w druku, czytnik ekranowy). Stosowanie zewnętrznych arkuszy CSS daje możliwość zmiany wyglądu wielu stron naraz bez ingerowania w sam kod (X)HTML, ponieważ arkusze mogą być wspólne dla wielu dokumentów.

18. SVG• Scalable Vector Graphics) – uniwersalny format dwuwymiarowej grafiki wektorowej

(statycznej i animowanej), nieobwarowany licencjami i patentami.• Format SVG powstał z myślą o zastosowaniu na stronach WWW. Używany jest również jako

niezależny od platformy systemowej format grafiki wektorowej. SVG należy do rodziny XML, więc może być integrowany z innymi językami, jak na przykład XHTML.

19. CSV• Comma Separated Values – (wartości rozdzielone przecinkiem) - format przechowywania

danych w plikach tekstowych i odpowiadający mu typ MIME text/csv.

20. UTF USC• Metody kodowania standardu Unicode

o UTF - Unicode Transformation Formato USC - Universal Character Set

21. UTF BOM• BOM (ang. Byte Order Mark - znacznik kolejności bajtów) – w wielobajtowym kodowaniu

znaków o stałej długości (tj. w którym każdy znak jest zapisany za pomocą takiej samej liczby bajtów, np. UTF-16 - 2 bajty, UTF-32 - 4 bajty) pojawia się problem interpretacji kolejności bajtów w znaku. Rozwiązaniem tego problemu jest właśnie BOM. Na początku strumienia bajtów (np. początek pliku) zapisuje się znacznik kolejności bajtów (BOM), informujący w jakiej kolejności należy ustawić bajty, aby uzyskać kod znaku. BOM umożliwia również automatyczną detekcję kodowania pomiędzy UTF-8, UTF-16LE, UTF-16BE, UTF-32LE i UTF-32BE oraz pozwala na odróżnienie od tekstu ASCII, co jest przydatne na przykład w edytorach plików tekstowych obsługujących wiele kodowań.

22. APPLET

Page 4: Pytania na egzamin Inżynieria Oprogramowania

• (ang. applet – zdrobnienie od aplikacja) – zwykle niewielki program napisany w taki sposób, by:

• mógł zostać osadzony w stronie WWW wprost i wykonany przez przeglądarkę internetową na komputerze, na którym jest ona uruchomiona – najczęściej jest to kod JavaScript, ale też JScript, VBScript, Tcl, kontrolek ActiveX (stosowanych tylko w przeglądarce MS Internet Explorer z ogólnym zaleceniem ich wyłączenia ze względu na bezpieczeństwo)

23. OPENDOCUMENT• (pełna nazwa: Open Document Format for Office Applications) to otwarty standard ISO

formatu plików pakietów biurowych. Obejmuje dokumenty tekstowe, arkusze kalkulacyjne, wykresy i prezentacje multimedialne. Pierwsza wersja formatu bazowała na XML-owym formacie pakietu OpenOffice.org. Obecnie OpenDocument jest rozwijany przez niezależną organizację OASIS (Organization for the Advancement of Structured Information Standards).

24. OPEN XML• Office Open XML (ISO/IEC 29500, nazywany też OOXML, OpenXML lub MSOOXML) –

otwarty standard ISO dokumentów elektronicznych, takich jak dokumenty tekstowe, arkusze kalkulacyjne czy prezentacje multimedialne. Specyfikacja została opracowana i promowana przez Microsoft. Według firmy głównym celem jest wsteczna zgodność z istniejącymi dokumentami w formatach Microsoft Office oraz pełna obsługa funkcji oferowanych przez ten pakiet.[1] Według założeń[2], Office Open XML ma uwzględnić także takie potrzeby, jak:

o automatyczne generowanie dokumentów na podstawie danych biznesowych,o wydobywanie danych biznesowych z dokumentów przez aplikacje biznesowe,o uczynienie zastosowań dostępnymi na różnych urządzeniach, także mobilnych,o utrzymanie i konserwacja dokumentów.

25. RODZAJE BŁĘDÓW PROGRAMISTYCZNYCH• Z reguły wyróżnia się dwa główne typy błędów:

o Błędy składniowe – nie pozwalają na kompilację programu – np. literówka w wywołaniu zmiennej. Są one najczęściej dość łatwe do usunięcia, zazwyczaj wynikają z drobnych pomyłek programisty.

o Błędy logiczne – nie przerywają kompilacji, lecz powodują niewłaściwe działanie warstwy logicznej – np. niepoprawne liczenie pozycji gracza (które także może być spowodowane literówką – jak np. wpisanie znaku „+” zamiast „-”). Ten typ błędów jest znacznie trudniejszy do wykrycia i usunięcia; często błąd tkwi w jednym źle zapisanym znaku, lecz programista musi do tego znaku sam dojść (w przypadku błędu składniowego znak jest wskazywany przez komunikat kompilatora).