Pytania na egzamin Inżynieria Oprogramowania
description
Transcript of 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
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,
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
• (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).