ściągnij PDF
1) Jakie są ważne kategorie oprogramowania?
- Oprogramowanie systemowe
- Oprogramowanie
- Wbudowane oprogramowanie
- Aplikacje internetowe
- Oprogramowanie sztucznej inteligencji
- Oprogramowanie naukowe.
2) Jaka jest główna różnica między programem komputerowym a oprogramowaniem komputerowym?
Program komputerowy to fragment kodu programistycznego. Wykonuje dobrze zdefiniowane zadanie. Z drugiej strony oprogramowanie zawiera kod programowania, dokumentację i podręcznik użytkownika.
3) Co to jest re-engineering oprogramowania?
Jest to proces tworzenia oprogramowania, który ma na celu poprawę łatwości utrzymania systemu oprogramowania.
4) Opisz w skrócie proces tworzenia oprogramowania:
Rozwój oprogramowania to cykl życia, który składa się z następujących etapów:
- Analiza wymagań
- Specyfikacja
- Architektura oprogramowania
- Realizacja
- Testowanie
- Dokumentacja
- Szkolenie i wsparcie
- Konserwacja
5) Jakie są dostępne modele SDLC?
Model wodospadu, model spiralny, model dużej torby, model iteracyjny i model V to tylko niektóre ze słynnych modeli SDLC.
6) Co to jest weryfikacja i walidacja?
Weryfikacja:
Weryfikacja to termin odnoszący się do zestawu czynności, które zapewniają, że oprogramowanie realizuje określoną funkcję.
Uprawomocnienie:
Odnosi się do zestawu działań, które zapewniają, że oprogramowanie zostało zbudowane zgodnie z potrzebami klientów.
7) Jakie jest znaczenie debugowania w procesie tworzenia oprogramowania?
Debugowanie to proces, który powoduje usunięcie błędu. Jest to bardzo ważna część pomyślnego testowania.
8) Jak możesz upewnić się, że Twój kod jest bezpieczny i szybki?
W oprogramowaniu bezpieczeństwo programowania jest zawsze na pierwszym miejscu. Jeśli więc wykonanie programu jest powolne, spróbuję zidentyfikować przyczyny jego złożoności czasowej.
9) Wymień dwa narzędzia, które są używane do śledzenia wymagań oprogramowania?
Istnieje wiele sposobów śledzenia wymagań.
Dwa powszechnie używane to:
- Sporządź dokument specyfikacji wymagań, aby wymienić wszystkie wymagania.
- Utwórz arkusz Excela, aby wyświetlić listę wymagań, typu, zależności, priorytetu itp.
10) Jaka jest główna różnica między kikutami, makietami?
Kod pośredniczący to minimalna implementacja interfejsu, która generalnie zwraca zakodowane dane, podczas gdy mock zwykle weryfikuje dane wyjściowe pod kątem oczekiwań. Te oczekiwania są określone w teście.
11) W jakim języku lubisz pisać algorytmy programowania?
Każdy programista ma swoje poglądy, jeśli chodzi o wybór języka programowania. Chociaż należy preferować języki wysokiego poziomu, ponieważ są one dynamiczne. Podobnie jak języki C i C ++.
12) Co to jest oprogramowanie komputerowe?
Oprogramowanie komputerowe to pakiet zawierający program, jego dokumentację oraz instrukcję obsługi oprogramowania.
13) Który model SDLC według Ciebie jest najlepszy?
Nie ma takiego rankingu, ponieważ modele SDLC są przyjmowane zgodnie z potrzebą procesu deweloperskiego. Oprogramowanie może się różnić.
14) Kim jest kierownik projektu oprogramowania? Jaka jest jego rola?
Kierownik projektu oprogramowania to osoba odpowiedzialna za zarządzanie projektem związanym z tworzeniem oprogramowania.
Kierownik projektu zajmuje się planowaniem projektu, monitorowaniem postępów, komunikacją. Zarządza również ryzykiem i zasobami, aby zrealizować projekt z zachowaniem ograniczeń czasowych, kosztowych i jakościowych.
15) Co oznacza zakres oprogramowania?
Zakres oprogramowania to dobrze zdefiniowana granica. Obejmuje wszelkiego rodzaju działania, które są wykonywane w celu opracowania i dostarczenia oprogramowania.
Zakres oprogramowania definiuje wszystkie funkcje i artefakty, które mają być dostarczane jako część oprogramowania. Zakres określa również, co zrobi produkt? Co nie jest częścią projektu? Co to jest wycena projektu?
Ten proces jest pomocny w ocenie różnych aspektów oprogramowania. O szacunku można zdecydować konsultując się z ekspertami lub stosując predefiniowane wzory.
16) Jak sprawdzić rozmiar oprogramowania?
Rozmiar oprogramowania można obliczyć za pomocą dwóch metod
- Liczenie wierszy dostarczonego kodu
- Zliczanie dostarczonych punktów funkcyjnych
17) Co to są punkty funkcyjne?
Punkty funkcyjne to funkcje oferowane przez oprogramowanie. Jest uważany za najważniejszy pomiar rozmiaru oprogramowania.
18) Jakie są dostępne techniki szacowania projektów oprogramowania?
Najpopularniejsze techniki szacowania to:
- Technika rozkładu
- Technika empiryczna
19) Co to jest zarządzanie konfiguracją oprogramowania?
Zarządzanie konfiguracją oprogramowania to proces śledzenia i kontrolowania zmian zachodzących w oprogramowaniu.
Kontrola zmian to funkcja, która zapewnia, że wszystkie zmiany wprowadzone w systemie oprogramowania są spójne i tworzone zgodnie z zasadami i regulacjami organizacyjnymi.
20) Jak możesz zmierzyć wykonanie projektu?
Możemy mierzyć wykonanie projektu za pomocą monitorowania aktywności, raportów stanu i list kontrolnych.
21) Opowiedz mi o niektórych narzędziach do zarządzania projektami.
Istnieje wiele rodzajów narzędzi do zarządzania używanych zgodnie z potrzebą projektu oprogramowania. Niektóre z nich to wykres Pert, wykres Gantta, histogram zasobów, raporty o stanie itp.
22) Jakie są wymagania dotyczące oprogramowania?
Wymagania programowe to funkcjonalny opis proponowanego systemu oprogramowania. Przyjmuje się, że jest to opis systemu docelowego, jego funkcjonalności i właściwości.
23) Co to jest studium wykonalności?
Jest to środek pozwalający dowiedzieć się, jak praktyczne i korzystne będzie opracowanie projektu oprogramowania dla organizacji. Analizator oprogramowania przeprowadza badanie, aby poznać ekonomiczną, techniczną i operacyjną wykonalność projektu.
-
Ekonomiczny: obejmuje koszt szkolenia, koszt dodatkowych i narzędzi oraz ogólne oszacowanie kosztów i korzyści projektu.
-
Techniczne: Ocenia aspekt techniczny. Czy można rozwinąć ten system? Ocena przydatności maszyny (maszyn) i systemu operacyjnego, na którym będzie działać oprogramowanie, znajomość tworzenia oprogramowania i narzędzi dostępnych dla tego projektu.
-
Operacyjne: w tym przypadku analityk musi ocenić, czy organizacja będzie w stanie płynnie dostosować się do wprowadzonych zmian zgodnie z zapotrzebowaniem na projekt. Czy warto rozwiązać problem za szacunkowy koszt?
Po przestudiowaniu tego wszystkiego tworzony jest ostateczny raport wykonalności.
24) Jakie są wymagania funkcjonalne i niefunkcjonalne?
Wymagania funkcjonalne to cechy funkcjonalne, których użytkownicy oczekują od proponowanego oprogramowania.
Wymagania niefunkcjonalne są związane z bezpieczeństwem, wydajnością, wyglądem i działaniem interfejsu użytkownika.
25) Co to jest metryka oprogramowania?
Software Metrics oferuje miary dla różnych aspektów procesu tworzenia oprogramowania, które są podzielone na:
- Miary wymagań: wymagania dotyczące długości, kompletność
- Metryki produktu: liczba linii kodowania, metryki zorientowane obiektowo, metryki projektowe i testowe.
26) Co to jest modularyzacja?
Modularyzacja to technika, która służy do dzielenia systemu oprogramowania na różne dyskretne moduły. Oczekuje się, że zadania będą wykonywane niezależnie.
27) Co to jest spójność?
Spójność to miara określająca współzależność między elementami modułu.
28) Wspomina o narzędziach do analizy i projektowania oprogramowania?
Niektóre z najważniejszych narzędzi do analizy i projektowania oprogramowania to:
- Diagramy przepływu danych
- Wykresy strukturalne
- Strukturalny angielski
- Słownik danych
- Diagramy hierarchicznych procesów wejściowych i wyjściowych
- Diagramy powiązań encji i tabele decyzyjne
29) Co oznacza diagram przepływu danych poziomu-0?
Najwyższy poziom abstrakcji nazywany jest poziomem 0 DFD. Nazywa się to również DFD na poziomie kontekstu. Przedstawia cały system informacyjny jako jeden diagram.
30) Jaka jest główna różnica między ustrukturyzowanym angielskim a pseudo kodem?
Angielski strukturalny jest rodzimym językiem angielskim. Służy do zapisania struktury modułu programu. Wykorzystuje słowa kluczowe języka programowania. Z drugiej strony, pseudokod bardziej przypomina język programowania bez składni żadnego konkretnego języka.
31) Co to jest projektowanie strukturalne?
Projektowanie strukturalne jest konceptualizacją problemu. Nazywało się to również projektowaniem rozwiązań, które opiera się na strategii „dziel i rządź”.
32) Co to jest programowanie funkcyjne?
Jest to metoda programowania wykorzystująca koncepcje funkcji matematycznej. Zapewnia środki obliczeniowe jako funkcje matematyczne, które również dają wyniki niezależnie od stanu programu.
33) Co to jest zapewnienie jakości, a co kontrola jakości?
Quality Assurance sprawdza, czy podczas tworzenia oprogramowania przestrzegany jest właściwy proces, podczas gdy Quality Control zajmuje się utrzymaniem jakości oprogramowania.
34) Czym są narzędzia CASE?
CASE oznacza inżynierię oprogramowania wspomaganą komputerowo. Są zbiorem zautomatyzowanych programów użytkowych, które służą do wspierania, ulepszania i wzmacniania działań SDLC.
35) Który model procesu usuwa defekty, zanim oprogramowanie wpadnie w kłopoty?
Metoda inżynierii oprogramowania w pomieszczeniach czystych usuwa defekty, zanim oprogramowanie wpadnie w kłopoty.
36) Rozwiąż ten problem
W szufladzie w jednym ciemnym pokoju jest dwadzieścia różnych skarpet dwóch rodzajów. Jaka jest minimalna liczba skarpet, które musisz zabrać, aby mieć pasującą parę? ”
Jeśli weźmiesz trzy skarpetki, mogą być tego samego typu, nawet jeśli szanse wynoszą 50%. Szanse nigdy nie są równą rzeczywistością. Dlatego jedynym sposobem, aby „upewnić się, że masz pasującą parę”, jest zebranie co najmniej 11 liczby wstrząsów.
37) W jaki sposób możesz upewnić się, że Twój napisany kod radzi sobie z różnymi rodzajami błędów?
Potrafię napisać testy określające oczekiwane sytuacje błędów.
38) Wyjaśnij różnice między wątkiem a procesem?
Proces jest instancją programu komputerowego. W jednym programie można mieć jeden lub więcej wątków.
39) Powiedz mi, jaka jest różnica między plikami EXE i DLL?
Plik exe to program wykonywalny, podczas gdy biblioteka DLL to plik, który może być ładowany i wykonywany dynamicznie przez programy. Jest to zewnętrzne repozytorium kodu dla programów. Ponieważ oba są różnymi programami, użyj ponownie tej samej biblioteki DLL, zamiast umieszczać ten kod w swoim pliku. Zmniejsza również wymaganą przestrzeń magazynową.
40) Co to jest pisanie silnie i słabo? Który jest preferowany? Dlaczego?
Silne wpisywanie sprawdza typy zmiennych w czasie kompilacji. Z drugiej strony słabe pisanie sprawdza typy systemu w czasie wykonywania. Wśród nich zawsze preferowane jest silne pisanie, ponieważ minimalizuje błędy.
41) Opisz różnicę między programowaniem zorientowanym na interfejs, obiektowym i aspektowym.
- Programowanie interfejsów jest oparte na umowie.
- Zorientowany obiektowo to sposób pisania obiektów ziarnistych, które mają jeden cel.
- Programowanie zorientowane aspektowo polega na segregowaniu kodu w taki sposób, że różne obiekty wykonują główne zadania, a zadania pomocnicze są wykonywane przez niezależne obiekty.
42) Dlaczego używanie catch (wyjątku) jest zawsze złym pomysłem?
To zły pomysł, ponieważ:
- Ponieważ nie ma zdefiniowanej zmiennej, nie można odczytać wyjątku
- Dobrze jest użyć wyjątku, gdy znasz znane typy wyjątków.
43) Jaki typ danych jest przekazywany przez nagłówki HTTP?
Skrypt i metadane przekazywane przez nagłówki HTTP.
44) Jak ustalacie priorytety wymagań?
Najpierw musisz zaprojektować system, oceniając strukturę danych. Następnie należy przejść do struktury kodu potrzebnej do jej obsługi.
45) Podaj mi różnice między projektowaniem obiektowym a opartym na komponentach?
Projekt zorientowany obiektowo można łatwo do pewnego stopnia zamknąć w projekcie opartym na komponentach.
46) Kiedy używasz polimorfizmu?
Polimorfizm jest używany, gdy istnieje potrzeba przesłonięcia funkcjonalności podczas dziedziczenia klasy. Chodzi o wspólne zajęcia i wspólne kontrakty.
47) Jaka jest różnica między stosem a kolejką?
- Kolejka jest zawsze pierwsza weszła, pierwsza wyszła
- Stos jest zawsze ostatni na wejściu, pierwszy na wyjściu
48) Co jest niezbędne do testowania jakości kodu?
Według mnie framework do testów jednostkowych jest niezbędny do testowania jakości kodu.
49) Czy uważasz, że utrzymanie oprogramowania jest drogie?
Według mnie utrzymanie oprogramowania nigdy nie będzie drogie, jeśli zastosujemy odpowiedni proces rozwoju.
50) Podaj mi różnice między tagami i gałęziami?
Tagi służą do wersjonowania wydań, które są tymczasowymi miejscami przechowywania do robienia takich rzeczy. Jednak gałęzie są usuwane po scaleniu tych zmian z linią główną.
51) Gdzie jest dostępna chroniona zmienna na poziomie klasy?
Chronione zmienne na poziomie klasy są dostępne dla każdej podklasy pochodzącej z klasy bazowej.
52) Czy jest możliwe wykonanie wielu bloków catch dla jednej instrukcji try?
Tak. Dla jednej instrukcji try można wykonać wiele bloków catch.
53) Kiedy należy zadeklarować klasę jako abstrakcyjną?
Powinniśmy zadeklarować klasę jako abstrakcyjną w następujących sytuacjach:
- Gdy klasa jest dziedziczona z klasy abstrakcyjnej, ale nie wszystkie metody abstrakcyjne zostały nadpisane.
- W przypadku, gdy przynajmniej jedna z metod w klasie jest zadeklarowana jako abstrakcyjna.
54) Opracuj algorytm, który wyświetli Twoją aktualną lokalizację i listę lokalizacji bankomatów w tym obszarze. Znajdź najbliższe bankomaty K do Twojej lokalizacji.
Utwórz metodę getDistance (a, b), która oblicza odległość między a i b.
Kod:
import java.util.HashMap;import java.util.Map;import java.util.PriorityQueue;public class PrioRQueueExample {public static void main(String[] args){PriorityQueuepq = new PriorityQueue ((x,y)-> {Double z = y-x;return z.intValue(); });PrioRQueueExample pqe = new PrioRQueueExample();//Number of ATMs to return i.e. Kint num_ATMs = 3;double curr_loc = 0.00;Map nallATMLocs = new HashMap ();//Map of ATM names and their distance co-ordinatesnallATMLocs.put("atm1",45.0);nallATMLocs.put("atm2",78.0);nallATMLocs.put("atm3",54.0);nallATMLocs.put("atm4",64.0);nallATMLocs.put("atm5",35.0);nallATMLocs.put("atm6",42.0);nallATMLocs.put("atm7",57.0);nallATMLocs.put("atm7",1.00);nallATMLocs.forEach((atm,dist) ->{if(pq.size() < num_ATMs){pq.add(pqe.getLocation(curr_loc,dist));}else{if( pq.peek() > pqe.getLocation(curr_loc,dist)){pq.poll();pq.add(pqe.getLocation(curr_loc,dist));}}});pq.forEach(atmLoc -> System.out.println(atmLoc));}private double getLocation(double curr,double atm){return atm - curr;}}